@burdenoff/microfe-brainyrich 2026.706.1 → 2026.706.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/__vite-optional-peer-dep_@emotion/is-prop-valid_framer-motion.js +10 -0
- package/dist/_virtual/__vite-optional-peer-dep_@emotion/is-prop-valid_framer-motion.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.js +20 -0
- package/dist/brainyrich/components/LoadMore.js.map +1 -1
- package/dist/brainyrich/components/index.js +1 -0
- package/dist/brainyrich/components/pickers.js.map +1 -1
- package/dist/brainyrich/components/reuse/CommentThread.js.map +1 -1
- package/dist/brainyrich/components/reuse/DocumentsPanel.js.map +1 -1
- package/dist/brainyrich/components/reuse/TagField.js.map +1 -1
- package/dist/brainyrich/components/viz.js +628 -0
- package/dist/brainyrich/components/viz.js.map +1 -0
- package/dist/brainyrich/hooks/useBrainyRichApi.js.map +1 -1
- package/dist/brainyrich/pages/AccountsPage.js +732 -530
- package/dist/brainyrich/pages/AccountsPage.js.map +1 -1
- package/dist/brainyrich/pages/AiAssistantPage.js +475 -343
- package/dist/brainyrich/pages/AiAssistantPage.js.map +1 -1
- package/dist/brainyrich/pages/AnalyticsPage.js +555 -392
- package/dist/brainyrich/pages/AnalyticsPage.js.map +1 -1
- package/dist/brainyrich/pages/DashboardPage.js +318 -194
- package/dist/brainyrich/pages/DashboardPage.js.map +1 -1
- package/dist/brainyrich/pages/FamilyPage.js +723 -355
- package/dist/brainyrich/pages/FamilyPage.js.map +1 -1
- package/dist/brainyrich/pages/GoalsPage.js +573 -419
- package/dist/brainyrich/pages/GoalsPage.js.map +1 -1
- package/dist/brainyrich/pages/InvestmentsPage.js +357 -213
- package/dist/brainyrich/pages/InvestmentsPage.js.map +1 -1
- package/dist/brainyrich/pages/PortfoliosPage.js +525 -399
- package/dist/brainyrich/pages/PortfoliosPage.js.map +1 -1
- package/dist/brainyrich/pages/ReportsPage.js +844 -258
- package/dist/brainyrich/pages/ReportsPage.js.map +1 -1
- package/dist/brainyrich/pages/RiskPage.js +667 -346
- package/dist/brainyrich/pages/RiskPage.js.map +1 -1
- package/dist/brainyrich/pages/TaxPage.js +687 -347
- package/dist/brainyrich/pages/TaxPage.js.map +1 -1
- package/dist/brainyrich/pages/_shared.js +81 -101
- package/dist/brainyrich/pages/_shared.js.map +1 -1
- package/dist/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/d3-array/src/ascending.js +8 -0
- package/dist/node_modules/d3-array/src/ascending.js.map +1 -0
- package/dist/node_modules/d3-array/src/bisect.js +10 -0
- package/dist/node_modules/d3-array/src/bisect.js.map +1 -0
- package/dist/node_modules/d3-array/src/bisector.js +43 -0
- package/dist/node_modules/d3-array/src/bisector.js.map +1 -0
- package/dist/node_modules/d3-array/src/descending.js +8 -0
- package/dist/node_modules/d3-array/src/descending.js.map +1 -0
- package/dist/node_modules/d3-array/src/max.js +14 -0
- package/dist/node_modules/d3-array/src/max.js.map +1 -0
- package/dist/node_modules/d3-array/src/min.js +14 -0
- package/dist/node_modules/d3-array/src/min.js.map +1 -0
- package/dist/node_modules/d3-array/src/number.js +15 -0
- package/dist/node_modules/d3-array/src/number.js.map +1 -0
- package/dist/node_modules/d3-array/src/quantile.js +25 -0
- package/dist/node_modules/d3-array/src/quantile.js.map +1 -0
- package/dist/node_modules/d3-array/src/quickselect.js +26 -0
- package/dist/node_modules/d3-array/src/quickselect.js.map +1 -0
- package/dist/node_modules/d3-array/src/range.js +10 -0
- package/dist/node_modules/d3-array/src/range.js.map +1 -0
- package/dist/node_modules/d3-array/src/sort.js +17 -0
- package/dist/node_modules/d3-array/src/sort.js.map +1 -0
- package/dist/node_modules/d3-array/src/ticks.js +34 -0
- package/dist/node_modules/d3-array/src/ticks.js.map +1 -0
- package/dist/node_modules/d3-color/src/color.js +291 -0
- package/dist/node_modules/d3-color/src/color.js.map +1 -0
- package/dist/node_modules/d3-color/src/define.js +13 -0
- package/dist/node_modules/d3-color/src/define.js.map +1 -0
- package/dist/node_modules/d3-format/src/defaultLocale.js +15 -0
- package/dist/node_modules/d3-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/d3-format/src/exponent.js +9 -0
- package/dist/node_modules/d3-format/src/exponent.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatDecimal.js +13 -0
- package/dist/node_modules/d3-format/src/formatDecimal.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatGroup.js +11 -0
- package/dist/node_modules/d3-format/src/formatGroup.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatNumerals.js +12 -0
- package/dist/node_modules/d3-format/src/formatNumerals.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js +13 -0
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatRounded.js +12 -0
- package/dist/node_modules/d3-format/src/formatRounded.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatSpecifier.js +29 -0
- package/dist/node_modules/d3-format/src/formatSpecifier.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatTrim.js +20 -0
- package/dist/node_modules/d3-format/src/formatTrim.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatTypes.js +23 -0
- package/dist/node_modules/d3-format/src/formatTypes.js.map +1 -0
- package/dist/node_modules/d3-format/src/identity.js +8 -0
- package/dist/node_modules/d3-format/src/identity.js.map +1 -0
- package/dist/node_modules/d3-format/src/locale.js +86 -0
- package/dist/node_modules/d3-format/src/locale.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionFixed.js +9 -0
- package/dist/node_modules/d3-format/src/precisionFixed.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionPrefix.js +9 -0
- package/dist/node_modules/d3-format/src/precisionPrefix.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionRound.js +9 -0
- package/dist/node_modules/d3-format/src/precisionRound.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/array.js +15 -0
- package/dist/node_modules/d3-interpolate/src/array.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/basis.js +16 -0
- package/dist/node_modules/d3-interpolate/src/basis.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/basisClosed.js +13 -0
- package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/color.js +25 -0
- package/dist/node_modules/d3-interpolate/src/color.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/constant.js +6 -0
- package/dist/node_modules/d3-interpolate/src/constant.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/date.js +11 -0
- package/dist/node_modules/d3-interpolate/src/date.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/number.js +10 -0
- package/dist/node_modules/d3-interpolate/src/number.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/numberArray.js +16 -0
- package/dist/node_modules/d3-interpolate/src/numberArray.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/object.js +14 -0
- package/dist/node_modules/d3-interpolate/src/object.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/piecewise.js +14 -0
- package/dist/node_modules/d3-interpolate/src/piecewise.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/rgb.js +19 -0
- package/dist/node_modules/d3-interpolate/src/rgb.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/round.js +10 -0
- package/dist/node_modules/d3-interpolate/src/round.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/string.js +28 -0
- package/dist/node_modules/d3-interpolate/src/string.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/value.js +18 -0
- package/dist/node_modules/d3-interpolate/src/value.js.map +1 -0
- package/dist/node_modules/d3-path/src/path.js +65 -0
- package/dist/node_modules/d3-path/src/path.js.map +1 -0
- package/dist/node_modules/d3-scale/src/band.js +52 -0
- package/dist/node_modules/d3-scale/src/band.js.map +1 -0
- package/dist/node_modules/d3-scale/src/constant.js +10 -0
- package/dist/node_modules/d3-scale/src/constant.js.map +1 -0
- package/dist/node_modules/d3-scale/src/continuous.js +73 -0
- package/dist/node_modules/d3-scale/src/continuous.js.map +1 -0
- package/dist/node_modules/d3-scale/src/diverging.js +82 -0
- package/dist/node_modules/d3-scale/src/diverging.js.map +1 -0
- package/dist/node_modules/d3-scale/src/identity.js +20 -0
- package/dist/node_modules/d3-scale/src/identity.js.map +1 -0
- package/dist/node_modules/d3-scale/src/init.js +29 -0
- package/dist/node_modules/d3-scale/src/init.js.map +1 -0
- package/dist/node_modules/d3-scale/src/linear.js +36 -0
- package/dist/node_modules/d3-scale/src/linear.js.map +1 -0
- package/dist/node_modules/d3-scale/src/log.js +77 -0
- package/dist/node_modules/d3-scale/src/log.js.map +1 -0
- package/dist/node_modules/d3-scale/src/nice.js +10 -0
- package/dist/node_modules/d3-scale/src/nice.js.map +1 -0
- package/dist/node_modules/d3-scale/src/number.js +8 -0
- package/dist/node_modules/d3-scale/src/number.js.map +1 -0
- package/dist/node_modules/d3-scale/src/ordinal.js +31 -0
- package/dist/node_modules/d3-scale/src/ordinal.js.map +1 -0
- package/dist/node_modules/d3-scale/src/pow.js +37 -0
- package/dist/node_modules/d3-scale/src/pow.js.map +1 -0
- package/dist/node_modules/d3-scale/src/quantile.js +37 -0
- package/dist/node_modules/d3-scale/src/quantile.js.map +1 -0
- package/dist/node_modules/d3-scale/src/quantize.js +33 -0
- package/dist/node_modules/d3-scale/src/quantize.js.map +1 -0
- package/dist/node_modules/d3-scale/src/radial.js +39 -0
- package/dist/node_modules/d3-scale/src/radial.js.map +1 -0
- package/dist/node_modules/d3-scale/src/sequential.js +67 -0
- package/dist/node_modules/d3-scale/src/sequential.js.map +1 -0
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js +30 -0
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +1 -0
- package/dist/node_modules/d3-scale/src/symlog.js +30 -0
- package/dist/node_modules/d3-scale/src/symlog.js.map +1 -0
- package/dist/node_modules/d3-scale/src/threshold.js +25 -0
- package/dist/node_modules/d3-scale/src/threshold.js.map +1 -0
- package/dist/node_modules/d3-scale/src/tickFormat.js +31 -0
- package/dist/node_modules/d3-scale/src/tickFormat.js.map +1 -0
- package/dist/node_modules/d3-scale/src/time.js +47 -0
- package/dist/node_modules/d3-scale/src/time.js.map +1 -0
- package/dist/node_modules/d3-scale/src/utcTime.js +19 -0
- package/dist/node_modules/d3-scale/src/utcTime.js.map +1 -0
- package/dist/node_modules/d3-shape/src/area.js +55 -0
- package/dist/node_modules/d3-shape/src/area.js.map +1 -0
- package/dist/node_modules/d3-shape/src/array.js +8 -0
- package/dist/node_modules/d3-shape/src/array.js.map +1 -0
- package/dist/node_modules/d3-shape/src/constant.js +10 -0
- package/dist/node_modules/d3-shape/src/constant.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basis.js +49 -0
- package/dist/node_modules/d3-shape/src/curve/basis.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js +50 -0
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js +46 -0
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/bump.js +40 -0
- package/dist/node_modules/d3-shape/src/curve/bump.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/linear.js +36 -0
- package/dist/node_modules/d3-shape/src/curve/linear.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js +25 -0
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/monotone.js +94 -0
- package/dist/node_modules/d3-shape/src/curve/monotone.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/natural.js +39 -0
- package/dist/node_modules/d3-shape/src/curve/natural.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/step.js +47 -0
- package/dist/node_modules/d3-shape/src/curve/step.js.map +1 -0
- package/dist/node_modules/d3-shape/src/line.js +30 -0
- package/dist/node_modules/d3-shape/src/line.js.map +1 -0
- package/dist/node_modules/d3-shape/src/math.js +8 -0
- package/dist/node_modules/d3-shape/src/math.js.map +1 -0
- package/dist/node_modules/d3-shape/src/noop.js +6 -0
- package/dist/node_modules/d3-shape/src/noop.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/expand.js +15 -0
- package/dist/node_modules/d3-shape/src/offset/expand.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/none.js +8 -0
- package/dist/node_modules/d3-shape/src/offset/none.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/silhouette.js +15 -0
- package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/wiggle.js +21 -0
- package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/order/none.js +9 -0
- package/dist/node_modules/d3-shape/src/order/none.js.map +1 -0
- package/dist/node_modules/d3-shape/src/path.js +19 -0
- package/dist/node_modules/d3-shape/src/path.js.map +1 -0
- package/dist/node_modules/d3-shape/src/point.js +11 -0
- package/dist/node_modules/d3-shape/src/point.js.map +1 -0
- package/dist/node_modules/d3-shape/src/stack.js +34 -0
- package/dist/node_modules/d3-shape/src/stack.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/circle.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/circle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/cross.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/cross.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/diamond.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/square.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/square.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/star.js +15 -0
- package/dist/node_modules/d3-shape/src/symbol/star.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/triangle.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/wye.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/wye.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol.js +23 -0
- package/dist/node_modules/d3-shape/src/symbol.js.map +1 -0
- package/dist/node_modules/d3-time/src/day.js +21 -0
- package/dist/node_modules/d3-time/src/day.js.map +1 -0
- package/dist/node_modules/d3-time/src/duration.js +6 -0
- package/dist/node_modules/d3-time/src/duration.js.map +1 -0
- package/dist/node_modules/d3-time/src/hour.js +19 -0
- package/dist/node_modules/d3-time/src/hour.js.map +1 -0
- package/dist/node_modules/d3-time/src/interval.js +28 -0
- package/dist/node_modules/d3-time/src/interval.js.map +1 -0
- package/dist/node_modules/d3-time/src/millisecond.js +14 -0
- package/dist/node_modules/d3-time/src/millisecond.js.map +1 -0
- package/dist/node_modules/d3-time/src/minute.js +19 -0
- package/dist/node_modules/d3-time/src/minute.js.map +1 -0
- package/dist/node_modules/d3-time/src/month.js +18 -0
- package/dist/node_modules/d3-time/src/month.js.map +1 -0
- package/dist/node_modules/d3-time/src/second.js +13 -0
- package/dist/node_modules/d3-time/src/second.js.map +1 -0
- package/dist/node_modules/d3-time/src/ticks.js +125 -0
- package/dist/node_modules/d3-time/src/ticks.js.map +1 -0
- package/dist/node_modules/d3-time/src/week.js +25 -0
- package/dist/node_modules/d3-time/src/week.js.map +1 -0
- package/dist/node_modules/d3-time/src/year.js +26 -0
- package/dist/node_modules/d3-time/src/year.js.map +1 -0
- package/dist/node_modules/d3-time-format/src/defaultLocale.js +62 -0
- package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/d3-time-format/src/locale.js +490 -0
- package/dist/node_modules/d3-time-format/src/locale.js.map +1 -0
- package/dist/node_modules/decimal.js-light/decimal.js +378 -0
- package/dist/node_modules/decimal.js-light/decimal.js.map +1 -0
- package/dist/node_modules/eventemitter3/index.js +95 -0
- package/dist/node_modules/eventemitter3/index.js.map +1 -0
- package/dist/node_modules/fast-equals/dist/es/index.js +267 -0
- package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js +22 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.js +8 -0
- package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/LazyContext.js +8 -0
- package/dist/node_modules/framer-motion/dist/es/context/LazyContext.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.js +12 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.js +19 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.js +8 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.js +17 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.js +8 -0
- package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.js +8 -0
- package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.js +10 -0
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/events/event-info.js +13 -0
- package/dist/node_modules/framer-motion/dist/es/events/event-info.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js +259 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.js +24 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.js +61 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/focus.js +29 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/focus.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.js +22 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.js +135 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.js +44 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/press.js +28 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/press.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.js +41 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.js +27 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animations.js +11 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animations.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.js +53 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/drag.js +17 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/drag.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.js +15 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.js +63 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout.js +11 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.js +15 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.js +48 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.js +26 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/index.js +72 -0
- package/dist/node_modules/framer-motion/dist/es/motion/index.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.js +6 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js +24 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js +60 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js +52 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.js +9 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.js +12 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.js +15 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.js +9 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.js +10 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.js +23 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.js +21 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.js +9 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.js +13 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/use-props.js +28 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/use-props.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.js +11 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.js +32 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.js +28 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.js +13 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.js +10 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/distance.js +10 -0
- package/dist/node_modules/framer-motion/dist/es/utils/distance.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.js +6 -0
- package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-browser.js +6 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-browser.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.js +8 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js +15 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-constant.js +11 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-constant.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.js +9 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.js.map +1 -0
- package/dist/node_modules/internmap/src/index.js +40 -0
- package/dist/node_modules/internmap/src/index.js.map +1 -0
- package/dist/node_modules/lodash/_DataView.js +12 -0
- package/dist/node_modules/lodash/_DataView.js.map +1 -0
- package/dist/node_modules/lodash/_Hash.js +23 -0
- package/dist/node_modules/lodash/_Hash.js.map +1 -0
- package/dist/node_modules/lodash/_ListCache.js +23 -0
- package/dist/node_modules/lodash/_ListCache.js.map +1 -0
- package/dist/node_modules/lodash/_Map.js +12 -0
- package/dist/node_modules/lodash/_Map.js.map +1 -0
- package/dist/node_modules/lodash/_MapCache.js +23 -0
- package/dist/node_modules/lodash/_MapCache.js.map +1 -0
- package/dist/node_modules/lodash/_Promise.js +12 -0
- package/dist/node_modules/lodash/_Promise.js.map +1 -0
- package/dist/node_modules/lodash/_Set.js +12 -0
- package/dist/node_modules/lodash/_Set.js.map +1 -0
- package/dist/node_modules/lodash/_SetCache.js +18 -0
- package/dist/node_modules/lodash/_SetCache.js.map +1 -0
- package/dist/node_modules/lodash/_Stack.js +20 -0
- package/dist/node_modules/lodash/_Stack.js.map +1 -0
- package/dist/node_modules/lodash/_Symbol.js +11 -0
- package/dist/node_modules/lodash/_Symbol.js.map +1 -0
- package/dist/node_modules/lodash/_Uint8Array.js +11 -0
- package/dist/node_modules/lodash/_Uint8Array.js.map +1 -0
- package/dist/node_modules/lodash/_WeakMap.js +12 -0
- package/dist/node_modules/lodash/_WeakMap.js.map +1 -0
- package/dist/node_modules/lodash/_apply.js +19 -0
- package/dist/node_modules/lodash/_apply.js.map +1 -0
- package/dist/node_modules/lodash/_arrayEvery.js +14 -0
- package/dist/node_modules/lodash/_arrayEvery.js.map +1 -0
- package/dist/node_modules/lodash/_arrayFilter.js +17 -0
- package/dist/node_modules/lodash/_arrayFilter.js.map +1 -0
- package/dist/node_modules/lodash/_arrayIncludes.js +15 -0
- package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -0
- package/dist/node_modules/lodash/_arrayIncludesWith.js +14 -0
- package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
- package/dist/node_modules/lodash/_arrayLikeKeys.js +22 -0
- package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
- package/dist/node_modules/lodash/_arrayMap.js +14 -0
- package/dist/node_modules/lodash/_arrayMap.js.map +1 -0
- package/dist/node_modules/lodash/_arrayPush.js +14 -0
- package/dist/node_modules/lodash/_arrayPush.js.map +1 -0
- package/dist/node_modules/lodash/_arraySome.js +14 -0
- package/dist/node_modules/lodash/_arraySome.js.map +1 -0
- package/dist/node_modules/lodash/_asciiToArray.js +13 -0
- package/dist/node_modules/lodash/_asciiToArray.js.map +1 -0
- package/dist/node_modules/lodash/_assocIndexOf.js +16 -0
- package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_baseAssignValue.js +20 -0
- package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -0
- package/dist/node_modules/lodash/_baseEach.js +13 -0
- package/dist/node_modules/lodash/_baseEach.js.map +1 -0
- package/dist/node_modules/lodash/_baseEvery.js +18 -0
- package/dist/node_modules/lodash/_baseEvery.js.map +1 -0
- package/dist/node_modules/lodash/_baseExtremum.js +19 -0
- package/dist/node_modules/lodash/_baseExtremum.js.map +1 -0
- package/dist/node_modules/lodash/_baseFindIndex.js +14 -0
- package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -0
- package/dist/node_modules/lodash/_baseFlatten.js +21 -0
- package/dist/node_modules/lodash/_baseFlatten.js.map +1 -0
- package/dist/node_modules/lodash/_baseFor.js +11 -0
- package/dist/node_modules/lodash/_baseFor.js.map +1 -0
- package/dist/node_modules/lodash/_baseForOwn.js +16 -0
- package/dist/node_modules/lodash/_baseForOwn.js.map +1 -0
- package/dist/node_modules/lodash/_baseGet.js +18 -0
- package/dist/node_modules/lodash/_baseGet.js.map +1 -0
- package/dist/node_modules/lodash/_baseGetAllKeys.js +17 -0
- package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
- package/dist/node_modules/lodash/_baseGetTag.js +17 -0
- package/dist/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/dist/node_modules/lodash/_baseGt.js +13 -0
- package/dist/node_modules/lodash/_baseGt.js.map +1 -0
- package/dist/node_modules/lodash/_baseHasIn.js +13 -0
- package/dist/node_modules/lodash/_baseHasIn.js.map +1 -0
- package/dist/node_modules/lodash/_baseIndexOf.js +17 -0
- package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsArguments.js +16 -0
- package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsEqual.js +16 -0
- package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsEqualDeep.js +37 -0
- package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsMatch.js +33 -0
- package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsNaN.js +13 -0
- package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsNative.js +18 -0
- package/dist/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsTypedArray.js +18 -0
- package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
- package/dist/node_modules/lodash/_baseIteratee.js +19 -0
- package/dist/node_modules/lodash/_baseIteratee.js.map +1 -0
- package/dist/node_modules/lodash/_baseKeys.js +19 -0
- package/dist/node_modules/lodash/_baseKeys.js.map +1 -0
- package/dist/node_modules/lodash/_baseLt.js +13 -0
- package/dist/node_modules/lodash/_baseLt.js.map +1 -0
- package/dist/node_modules/lodash/_baseMap.js +19 -0
- package/dist/node_modules/lodash/_baseMap.js.map +1 -0
- package/dist/node_modules/lodash/_baseMatches.js +20 -0
- package/dist/node_modules/lodash/_baseMatches.js.map +1 -0
- package/dist/node_modules/lodash/_baseMatchesProperty.js +24 -0
- package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
- package/dist/node_modules/lodash/_baseOrderBy.js +39 -0
- package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -0
- package/dist/node_modules/lodash/_baseProperty.js +15 -0
- package/dist/node_modules/lodash/_baseProperty.js.map +1 -0
- package/dist/node_modules/lodash/_basePropertyDeep.js +17 -0
- package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -0
- package/dist/node_modules/lodash/_baseRange.js +15 -0
- package/dist/node_modules/lodash/_baseRange.js.map +1 -0
- package/dist/node_modules/lodash/_baseRest.js +17 -0
- package/dist/node_modules/lodash/_baseRest.js.map +1 -0
- package/dist/node_modules/lodash/_baseSetToString.js +21 -0
- package/dist/node_modules/lodash/_baseSetToString.js.map +1 -0
- package/dist/node_modules/lodash/_baseSlice.js +16 -0
- package/dist/node_modules/lodash/_baseSlice.js.map +1 -0
- package/dist/node_modules/lodash/_baseSome.js +18 -0
- package/dist/node_modules/lodash/_baseSome.js.map +1 -0
- package/dist/node_modules/lodash/_baseSortBy.js +15 -0
- package/dist/node_modules/lodash/_baseSortBy.js.map +1 -0
- package/dist/node_modules/lodash/_baseTimes.js +14 -0
- package/dist/node_modules/lodash/_baseTimes.js.map +1 -0
- package/dist/node_modules/lodash/_baseToString.js +22 -0
- package/dist/node_modules/lodash/_baseToString.js.map +1 -0
- package/dist/node_modules/lodash/_baseTrim.js +15 -0
- package/dist/node_modules/lodash/_baseTrim.js.map +1 -0
- package/dist/node_modules/lodash/_baseUnary.js +15 -0
- package/dist/node_modules/lodash/_baseUnary.js.map +1 -0
- package/dist/node_modules/lodash/_baseUniq.js +34 -0
- package/dist/node_modules/lodash/_baseUniq.js.map +1 -0
- package/dist/node_modules/lodash/_cacheHas.js +13 -0
- package/dist/node_modules/lodash/_cacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_castPath.js +18 -0
- package/dist/node_modules/lodash/_castPath.js.map +1 -0
- package/dist/node_modules/lodash/_castSlice.js +16 -0
- package/dist/node_modules/lodash/_castSlice.js.map +1 -0
- package/dist/node_modules/lodash/_compareAscending.js +20 -0
- package/dist/node_modules/lodash/_compareAscending.js.map +1 -0
- package/dist/node_modules/lodash/_compareMultiple.js +19 -0
- package/dist/node_modules/lodash/_compareMultiple.js.map +1 -0
- package/dist/node_modules/lodash/_coreJsData.js +11 -0
- package/dist/node_modules/lodash/_coreJsData.js.map +1 -0
- package/dist/node_modules/lodash/_createBaseEach.js +20 -0
- package/dist/node_modules/lodash/_createBaseEach.js.map +1 -0
- package/dist/node_modules/lodash/_createBaseFor.js +19 -0
- package/dist/node_modules/lodash/_createBaseFor.js.map +1 -0
- package/dist/node_modules/lodash/_createCaseFirst.js +22 -0
- package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -0
- package/dist/node_modules/lodash/_createFind.js +27 -0
- package/dist/node_modules/lodash/_createFind.js.map +1 -0
- package/dist/node_modules/lodash/_createRange.js +19 -0
- package/dist/node_modules/lodash/_createRange.js.map +1 -0
- package/dist/node_modules/lodash/_createSet.js +16 -0
- package/dist/node_modules/lodash/_createSet.js.map +1 -0
- package/dist/node_modules/lodash/_defineProperty.js +17 -0
- package/dist/node_modules/lodash/_defineProperty.js.map +1 -0
- package/dist/node_modules/lodash/_equalArrays.js +42 -0
- package/dist/node_modules/lodash/_equalArrays.js.map +1 -0
- package/dist/node_modules/lodash/_equalByTag.js +42 -0
- package/dist/node_modules/lodash/_equalByTag.js.map +1 -0
- package/dist/node_modules/lodash/_equalObjects.js +39 -0
- package/dist/node_modules/lodash/_equalObjects.js.map +1 -0
- package/dist/node_modules/lodash/_freeGlobal.js +10 -0
- package/dist/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/dist/node_modules/lodash/_getAllKeys.js +17 -0
- package/dist/node_modules/lodash/_getAllKeys.js.map +1 -0
- package/dist/node_modules/lodash/_getMapData.js +16 -0
- package/dist/node_modules/lodash/_getMapData.js.map +1 -0
- package/dist/node_modules/lodash/_getMatchData.js +24 -0
- package/dist/node_modules/lodash/_getMatchData.js.map +1 -0
- package/dist/node_modules/lodash/_getNative.js +17 -0
- package/dist/node_modules/lodash/_getNative.js.map +1 -0
- package/dist/node_modules/lodash/_getPrototype.js +11 -0
- package/dist/node_modules/lodash/_getPrototype.js.map +1 -0
- package/dist/node_modules/lodash/_getRawTag.js +21 -0
- package/dist/node_modules/lodash/_getRawTag.js.map +1 -0
- package/dist/node_modules/lodash/_getSymbols.js +17 -0
- package/dist/node_modules/lodash/_getSymbols.js.map +1 -0
- package/dist/node_modules/lodash/_getTag.js +28 -0
- package/dist/node_modules/lodash/_getTag.js.map +1 -0
- package/dist/node_modules/lodash/_getValue.js +13 -0
- package/dist/node_modules/lodash/_getValue.js.map +1 -0
- package/dist/node_modules/lodash/_hasPath.js +26 -0
- package/dist/node_modules/lodash/_hasPath.js.map +1 -0
- package/dist/node_modules/lodash/_hasUnicode.js +14 -0
- package/dist/node_modules/lodash/_hasUnicode.js.map +1 -0
- package/dist/node_modules/lodash/_hashClear.js +15 -0
- package/dist/node_modules/lodash/_hashClear.js.map +1 -0
- package/dist/node_modules/lodash/_hashDelete.js +14 -0
- package/dist/node_modules/lodash/_hashDelete.js.map +1 -0
- package/dist/node_modules/lodash/_hashGet.js +20 -0
- package/dist/node_modules/lodash/_hashGet.js.map +1 -0
- package/dist/node_modules/lodash/_hashHas.js +16 -0
- package/dist/node_modules/lodash/_hashHas.js.map +1 -0
- package/dist/node_modules/lodash/_hashSet.js +16 -0
- package/dist/node_modules/lodash/_hashSet.js.map +1 -0
- package/dist/node_modules/lodash/_isFlattenable.js +17 -0
- package/dist/node_modules/lodash/_isFlattenable.js.map +1 -0
- package/dist/node_modules/lodash/_isIndex.js +15 -0
- package/dist/node_modules/lodash/_isIndex.js.map +1 -0
- package/dist/node_modules/lodash/_isIterateeCall.js +20 -0
- package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -0
- package/dist/node_modules/lodash/_isKey.js +18 -0
- package/dist/node_modules/lodash/_isKey.js.map +1 -0
- package/dist/node_modules/lodash/_isKeyable.js +14 -0
- package/dist/node_modules/lodash/_isKeyable.js.map +1 -0
- package/dist/node_modules/lodash/_isMasked.js +18 -0
- package/dist/node_modules/lodash/_isMasked.js.map +1 -0
- package/dist/node_modules/lodash/_isPrototype.js +15 -0
- package/dist/node_modules/lodash/_isPrototype.js.map +1 -0
- package/dist/node_modules/lodash/_isStrictComparable.js +15 -0
- package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheClear.js +13 -0
- package/dist/node_modules/lodash/_listCacheClear.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheDelete.js +16 -0
- package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheGet.js +16 -0
- package/dist/node_modules/lodash/_listCacheGet.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheHas.js +15 -0
- package/dist/node_modules/lodash/_listCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheSet.js +16 -0
- package/dist/node_modules/lodash/_listCacheSet.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheClear.js +21 -0
- package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheDelete.js +16 -0
- package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheGet.js +15 -0
- package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheHas.js +15 -0
- package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheSet.js +16 -0
- package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -0
- package/dist/node_modules/lodash/_mapToArray.js +16 -0
- package/dist/node_modules/lodash/_mapToArray.js.map +1 -0
- package/dist/node_modules/lodash/_matchesStrictComparable.js +15 -0
- package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
- package/dist/node_modules/lodash/_memoizeCapped.js +18 -0
- package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -0
- package/dist/node_modules/lodash/_nativeCreate.js +11 -0
- package/dist/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/dist/node_modules/lodash/_nativeKeys.js +11 -0
- package/dist/node_modules/lodash/_nativeKeys.js.map +1 -0
- package/dist/node_modules/lodash/_nodeUtil.js +16 -0
- package/dist/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/dist/node_modules/lodash/_objectToString.js +14 -0
- package/dist/node_modules/lodash/_objectToString.js.map +1 -0
- package/dist/node_modules/lodash/_overArg.js +15 -0
- package/dist/node_modules/lodash/_overArg.js.map +1 -0
- package/dist/node_modules/lodash/_overRest.js +20 -0
- package/dist/node_modules/lodash/_overRest.js.map +1 -0
- package/dist/node_modules/lodash/_root.js +12 -0
- package/dist/node_modules/lodash/_root.js.map +1 -0
- package/dist/node_modules/lodash/_setCacheAdd.js +14 -0
- package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -0
- package/dist/node_modules/lodash/_setCacheHas.js +13 -0
- package/dist/node_modules/lodash/_setCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_setToArray.js +16 -0
- package/dist/node_modules/lodash/_setToArray.js.map +1 -0
- package/dist/node_modules/lodash/_setToString.js +13 -0
- package/dist/node_modules/lodash/_setToString.js.map +1 -0
- package/dist/node_modules/lodash/_shortOut.js +21 -0
- package/dist/node_modules/lodash/_shortOut.js.map +1 -0
- package/dist/node_modules/lodash/_stackClear.js +15 -0
- package/dist/node_modules/lodash/_stackClear.js.map +1 -0
- package/dist/node_modules/lodash/_stackDelete.js +14 -0
- package/dist/node_modules/lodash/_stackDelete.js.map +1 -0
- package/dist/node_modules/lodash/_stackGet.js +13 -0
- package/dist/node_modules/lodash/_stackGet.js.map +1 -0
- package/dist/node_modules/lodash/_stackHas.js +13 -0
- package/dist/node_modules/lodash/_stackHas.js.map +1 -0
- package/dist/node_modules/lodash/_stackSet.js +23 -0
- package/dist/node_modules/lodash/_stackSet.js.map +1 -0
- package/dist/node_modules/lodash/_strictIndexOf.js +14 -0
- package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_stringToArray.js +17 -0
- package/dist/node_modules/lodash/_stringToArray.js.map +1 -0
- package/dist/node_modules/lodash/_stringToPath.js +17 -0
- package/dist/node_modules/lodash/_stringToPath.js.map +1 -0
- package/dist/node_modules/lodash/_toKey.js +17 -0
- package/dist/node_modules/lodash/_toKey.js.map +1 -0
- package/dist/node_modules/lodash/_toSource.js +22 -0
- package/dist/node_modules/lodash/_toSource.js.map +1 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js +15 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
- package/dist/node_modules/lodash/_unicodeToArray.js +24 -0
- package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -0
- package/dist/node_modules/lodash/constant.js +15 -0
- package/dist/node_modules/lodash/constant.js.map +1 -0
- package/dist/node_modules/lodash/debounce.js +57 -0
- package/dist/node_modules/lodash/debounce.js.map +1 -0
- package/dist/node_modules/lodash/eq.js +13 -0
- package/dist/node_modules/lodash/eq.js.map +1 -0
- package/dist/node_modules/lodash/every.js +20 -0
- package/dist/node_modules/lodash/every.js.map +1 -0
- package/dist/node_modules/lodash/find.js +12 -0
- package/dist/node_modules/lodash/find.js.map +1 -0
- package/dist/node_modules/lodash/findIndex.js +20 -0
- package/dist/node_modules/lodash/findIndex.js.map +1 -0
- package/dist/node_modules/lodash/flatMap.js +16 -0
- package/dist/node_modules/lodash/flatMap.js.map +1 -0
- package/dist/node_modules/lodash/get.js +16 -0
- package/dist/node_modules/lodash/get.js.map +1 -0
- package/dist/node_modules/lodash/hasIn.js +16 -0
- package/dist/node_modules/lodash/hasIn.js.map +1 -0
- package/dist/node_modules/lodash/identity.js +13 -0
- package/dist/node_modules/lodash/identity.js.map +1 -0
- package/dist/node_modules/lodash/isArguments.js +17 -0
- package/dist/node_modules/lodash/isArguments.js.map +1 -0
- package/dist/node_modules/lodash/isArray.js +10 -0
- package/dist/node_modules/lodash/isArray.js.map +1 -0
- package/dist/node_modules/lodash/isArrayLike.js +16 -0
- package/dist/node_modules/lodash/isArrayLike.js.map +1 -0
- package/dist/node_modules/lodash/isBoolean.js +16 -0
- package/dist/node_modules/lodash/isBoolean.js.map +1 -0
- package/dist/node_modules/lodash/isBuffer.js +13 -0
- package/dist/node_modules/lodash/isBuffer.js.map +1 -0
- package/dist/node_modules/lodash/isEqual.js +15 -0
- package/dist/node_modules/lodash/isEqual.js.map +1 -0
- package/dist/node_modules/lodash/isFunction.js +18 -0
- package/dist/node_modules/lodash/isFunction.js.map +1 -0
- package/dist/node_modules/lodash/isLength.js +14 -0
- package/dist/node_modules/lodash/isLength.js.map +1 -0
- package/dist/node_modules/lodash/isNaN.js +15 -0
- package/dist/node_modules/lodash/isNaN.js.map +1 -0
- package/dist/node_modules/lodash/isNil.js +13 -0
- package/dist/node_modules/lodash/isNil.js.map +1 -0
- package/dist/node_modules/lodash/isNumber.js +16 -0
- package/dist/node_modules/lodash/isNumber.js.map +1 -0
- package/dist/node_modules/lodash/isObject.js +14 -0
- package/dist/node_modules/lodash/isObject.js.map +1 -0
- package/dist/node_modules/lodash/isObjectLike.js +13 -0
- package/dist/node_modules/lodash/isObjectLike.js.map +1 -0
- package/dist/node_modules/lodash/isPlainObject.js +21 -0
- package/dist/node_modules/lodash/isPlainObject.js.map +1 -0
- package/dist/node_modules/lodash/isString.js +17 -0
- package/dist/node_modules/lodash/isString.js.map +1 -0
- package/dist/node_modules/lodash/isSymbol.js +16 -0
- package/dist/node_modules/lodash/isSymbol.js.map +1 -0
- package/dist/node_modules/lodash/isTypedArray.js +14 -0
- package/dist/node_modules/lodash/isTypedArray.js.map +1 -0
- package/dist/node_modules/lodash/keys.js +17 -0
- package/dist/node_modules/lodash/keys.js.map +1 -0
- package/dist/node_modules/lodash/last.js +14 -0
- package/dist/node_modules/lodash/last.js.map +1 -0
- package/dist/node_modules/lodash/map.js +18 -0
- package/dist/node_modules/lodash/map.js.map +1 -0
- package/dist/node_modules/lodash/mapValues.js +20 -0
- package/dist/node_modules/lodash/mapValues.js.map +1 -0
- package/dist/node_modules/lodash/max.js +17 -0
- package/dist/node_modules/lodash/max.js.map +1 -0
- package/dist/node_modules/lodash/maxBy.js +17 -0
- package/dist/node_modules/lodash/maxBy.js.map +1 -0
- package/dist/node_modules/lodash/memoize.js +22 -0
- package/dist/node_modules/lodash/memoize.js.map +1 -0
- package/dist/node_modules/lodash/min.js +17 -0
- package/dist/node_modules/lodash/min.js.map +1 -0
- package/dist/node_modules/lodash/minBy.js +17 -0
- package/dist/node_modules/lodash/minBy.js.map +1 -0
- package/dist/node_modules/lodash/noop.js +11 -0
- package/dist/node_modules/lodash/noop.js.map +1 -0
- package/dist/node_modules/lodash/now.js +14 -0
- package/dist/node_modules/lodash/now.js.map +1 -0
- package/dist/node_modules/lodash/property.js +18 -0
- package/dist/node_modules/lodash/property.js.map +1 -0
- package/dist/node_modules/lodash/range.js +11 -0
- package/dist/node_modules/lodash/range.js.map +1 -0
- package/dist/node_modules/lodash/some.js +20 -0
- package/dist/node_modules/lodash/some.js.map +1 -0
- package/dist/node_modules/lodash/sortBy.js +19 -0
- package/dist/node_modules/lodash/sortBy.js.map +1 -0
- package/dist/node_modules/lodash/stubArray.js +13 -0
- package/dist/node_modules/lodash/stubArray.js.map +1 -0
- package/dist/node_modules/lodash/stubFalse.js +13 -0
- package/dist/node_modules/lodash/stubFalse.js.map +1 -0
- package/dist/node_modules/lodash/throttle.js +22 -0
- package/dist/node_modules/lodash/throttle.js.map +1 -0
- package/dist/node_modules/lodash/toFinite.js +15 -0
- package/dist/node_modules/lodash/toFinite.js.map +1 -0
- package/dist/node_modules/lodash/toInteger.js +16 -0
- package/dist/node_modules/lodash/toInteger.js.map +1 -0
- package/dist/node_modules/lodash/toNumber.js +26 -0
- package/dist/node_modules/lodash/toNumber.js.map +1 -0
- package/dist/node_modules/lodash/toString.js +15 -0
- package/dist/node_modules/lodash/toString.js.map +1 -0
- package/dist/node_modules/lodash/uniqBy.js +16 -0
- package/dist/node_modules/lodash/uniqBy.js.map +1 -0
- package/dist/node_modules/lodash/upperFirst.js +11 -0
- package/dist/node_modules/lodash/upperFirst.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.js +109 -0
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.js +132 -0
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.js +86 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.js +30 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.js +12 -0
- package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.js +34 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.js +24 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.js +168 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.js +11 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.js +18 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.js +11 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.js +47 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.js +56 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.js +28 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.js +23 -0
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.js +63 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.js +69 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.js +20 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.js +38 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.js +24 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.js +20 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.js +27 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.js +29 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.js +7 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.js +21 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.js +18 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.js +13 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.js +37 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.js +27 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.js +26 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.js +11 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.js +19 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/events/add-dom-event.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/events/add-dom-event.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.js +32 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.js +7 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/order.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/order.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.js +35 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.js +17 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.js +12 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.js +13 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.js +38 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.js +35 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.js +23 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.js +30 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.js +18 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.js +31 -0
- package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/conversion.js +41 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/conversion.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/copy.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/copy.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.js +45 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.js +32 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.js +31 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/models.js +20 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/models.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/utils.js +30 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/utils.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.js +24 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.js +590 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/state.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/state.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.js +53 -0
- package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.js +23 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/flat-tree.js +21 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/flat-tree.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.js +20 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/Feature.js +11 -0
- package/dist/node_modules/motion-dom/dist/es/render/Feature.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.js +206 -0
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.js +30 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.js +58 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.js +37 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.js +30 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.js +37 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.js +13 -0
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/store.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/render/store.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.js +42 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.js +24 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.js +30 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.js +17 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/render.js +12 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/render.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.js +16 -0
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.js +137 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.js +21 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-variant-label.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-variant-label.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.js +24 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.js +23 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.js +13 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.js +22 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/setters.js +22 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/setters.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/shallow-compare.js +12 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/shallow-compare.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/resize/handle-element.js +39 -0
- package/dist/node_modules/motion-dom/dist/es/resize/handle-element.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/resize/handle-window.js +24 -0
- package/dist/node_modules/motion-dom/dist/es/resize/handle-window.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/resize/index.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/resize/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/stats/animation-count.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/stats/animation-count.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/stats/buffer.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/stats/buffer.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/delay.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/utils/delay.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/interpolate.js +35 -0
- package/dist/node_modules/motion-dom/dist/es/utils/interpolate.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.js +32 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.js +54 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/number.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/number.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js +16 -0
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.js +11 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.js +7 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/index.js +94 -0
- package/dist/node_modules/motion-dom/dist/es/value/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/auto.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/auto.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.js +21 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.js +23 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/index.js +17 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.js +17 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.js +18 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.js +28 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.js +54 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.js +16 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.js +18 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/int.js +10 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/int.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.js +26 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.js +66 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.js +33 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.js +17 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/test.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/test.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.js +14 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.js +8 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/utils/is-motion-value.js +6 -0
- package/dist/node_modules/motion-dom/dist/es/value/utils/is-motion-value.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/will-change/add-will-change.js +15 -0
- package/dist/node_modules/motion-dom/dist/es/value/will-change/add-will-change.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/will-change/is.js +9 -0
- package/dist/node_modules/motion-dom/dist/es/value/will-change/is.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/array.js +12 -0
- package/dist/node_modules/motion-utils/dist/es/array.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/clamp.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/clamp.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/anticipate.js +7 -0
- package/dist/node_modules/motion-utils/dist/es/easing/anticipate.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/back.js +9 -0
- package/dist/node_modules/motion-utils/dist/es/easing/back.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/circ.js +8 -0
- package/dist/node_modules/motion-utils/dist/es/easing/circ.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.js +19 -0
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/ease.js +7 -0
- package/dist/node_modules/motion-utils/dist/es/easing/ease.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/map.js +33 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/map.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/errors.js +12 -0
- package/dist/node_modules/motion-utils/dist/es/errors.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/format-error-message.js +8 -0
- package/dist/node_modules/motion-utils/dist/es/format-error-message.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/global-config.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/global-config.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/is-numerical-string.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/is-numerical-string.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/is-object.js +8 -0
- package/dist/node_modules/motion-utils/dist/es/is-object.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/memo.js +10 -0
- package/dist/node_modules/motion-utils/dist/es/memo.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/noop.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/noop.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/pipe.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/pipe.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/progress.js +9 -0
- package/dist/node_modules/motion-utils/dist/es/progress.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.js +28 -0
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/time-conversion.js +6 -0
- package/dist/node_modules/motion-utils/dist/es/time-conversion.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/velocity-per-second.js +8 -0
- package/dist/node_modules/motion-utils/dist/es/velocity-per-second.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/warn-once.js +10 -0
- package/dist/node_modules/motion-utils/dist/es/warn-once.js.map +1 -0
- package/dist/node_modules/object-assign/index.js +41 -0
- package/dist/node_modules/object-assign/index.js.map +1 -0
- package/dist/node_modules/prop-types/checkPropTypes.js +46 -0
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +49 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +272 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
- package/dist/node_modules/prop-types/index.js +16 -0
- package/dist/node_modules/prop-types/index.js.map +1 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
- package/dist/node_modules/prop-types/lib/has.js +10 -0
- package/dist/node_modules/prop-types/lib/has.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +84 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +64 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js +87 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +65 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/Animate.js +374 -0
- package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/AnimateManager.js +73 -0
- package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/configUpdate.js +173 -0
- package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/easing.js +152 -0
- package/dist/node_modules/react-smooth/es6/easing.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/index.js +9 -0
- package/dist/node_modules/react-smooth/es6/index.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js +14 -0
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/util.js +92 -0
- package/dist/node_modules/react-smooth/es6/util.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Area.js +435 -0
- package/dist/node_modules/recharts/es6/cartesian/Area.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Bar.js +387 -0
- package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Brush.js +499 -0
- package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +338 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +243 -0
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +173 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +178 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +254 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js +144 -0
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js +143 -0
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +18 -0
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js +121 -0
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +101 -0
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/AreaChart.js +22 -0
- package/dist/node_modules/recharts/es6/chart/AreaChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/BarChart.js +24 -0
- package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/PieChart.js +34 -0
- package/dist/node_modules/recharts/es6/chart/PieChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +1245 -0
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Cell.js +9 -0
- package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Cursor.js +93 -0
- package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +237 -0
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +171 -0
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Label.js +353 -0
- package/dist/node_modules/recharts/es6/component/Label.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/LabelList.js +166 -0
- package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Legend.js +234 -0
- package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +187 -0
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Text.js +225 -0
- package/dist/node_modules/recharts/es6/component/Text.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Tooltip.js +182 -0
- package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +198 -0
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -0
- package/dist/node_modules/recharts/es6/container/Layer.js +40 -0
- package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -0
- package/dist/node_modules/recharts/es6/container/Surface.js +60 -0
- package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -0
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +46 -0
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/Pie.js +435 -0
- package/dist/node_modules/recharts/es6/polar/Pie.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js +215 -0
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js +268 -0
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Cross.js +112 -0
- package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Curve.js +136 -0
- package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Dot.js +27 -0
- package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Polygon.js +112 -0
- package/dist/node_modules/recharts/es6/shape/Polygon.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Rectangle.js +205 -0
- package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Sector.js +192 -0
- package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Symbols.js +143 -0
- package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js +175 -0
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +181 -0
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/BarUtils.js +112 -0
- package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js +234 -0
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ChartUtils.js +554 -0
- package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +70 -0
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DOMUtils.js +108 -0
- package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DataUtils.js +57 -0
- package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +58 -0
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/Events.js +7 -0
- package/dist/node_modules/recharts/es6/util/Events.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/Global.js +21 -0
- package/dist/node_modules/recharts/es6/util/Global.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +9 -0
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/LogUtils.js +15 -0
- package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/PolarUtils.js +198 -0
- package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ReactUtils.js +137 -0
- package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +181 -0
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js +10 -0
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/TickUtils.js +31 -0
- package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js +25 -0
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +23 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +16 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +17 -0
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +12 -0
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/getLegendProps.js +88 -0
- package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +13 -0
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +12 -0
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js +87 -0
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/types.js +43 -0
- package/dist/node_modules/recharts/es6/util/types.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +132 -0
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/index.js +1 -0
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +32 -0
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/util/utils.js +79 -0
- package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +1716 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +13 -0
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -0
- package/dist/node_modules/victory-vendor/es/d3-scale.js +53 -0
- package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaxPage.js","names":[],"sources":["../../../src/brainyrich/pages/TaxPage.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport {\n ArrowDownRight,\n ArrowUpRight,\n Check,\n Coins,\n Landmark,\n MoreHorizontal,\n Receipt,\n ReceiptText,\n ShieldCheck,\n Sparkles,\n TrendingDown,\n TrendingUp,\n X,\n} from 'lucide-react';\nimport {\n usePagedInsights,\n useAllTransactions,\n useAllAccounts,\n usePortfolios,\n useHoldings,\n useCreateInsight,\n useAcknowledgeInsight,\n useDismissInsight,\n useResolveInsight,\n} from '../hooks/useBrainyRichApi';\nimport { LoadMore, ConfirmDialog } from '../components';\nimport type {\n BraAccount,\n BraAssetClass,\n BraHolding,\n BraInsight,\n BraInsightSeverity,\n} from '../types/bra';\nimport {\n SectionShell,\n KpiGrid,\n EmptyState,\n LoadingState,\n ErrorState,\n formatMoney,\n formatDate,\n statusBadgeVariant,\n deltaToneClass,\n} from './_shared';\n\n// ============================================================================\n// Domain helpers (derived from the SDL, never fabricated data)\n// ============================================================================\n\nconst SEVERITIES: BraInsightSeverity[] = ['INFO', 'LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];\n\n/** Turn an UPPER_SNAKE enum member into a readable label. */\nfunction humanize(value: string): string {\n return value\n .toLowerCase()\n .split('_')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n}\n\n/** Unrealized P/L for a holding = server market value − cost basis. */\nfunction unrealized(h: BraHolding): number {\n return h.marketValue - h.costBasis;\n}\n\n// ============================================================================\n// Page\n// ============================================================================\n\ninterface InsightFormState {\n title: string;\n detail: string;\n severity: BraInsightSeverity;\n /** Encoded as `${subjectType}:${id}` from the subject picker. */\n subject: string;\n}\n\nconst EMPTY_INSIGHT_FORM: InsightFormState = {\n title: '',\n detail: '',\n severity: 'MEDIUM',\n subject: '',\n};\n\nexport function TaxPage() {\n // Insights are a *Connection — paginate with LoadMore. Tax-opportunity\n // insights are client-filtered (the list query has no `type` argument).\n const {\n items: insights,\n hasMore: insightsHasMore,\n loadMore: loadMoreInsights,\n isLoading: insightsLoading,\n isFetchingNextPage: insightsFetchingMore,\n isError: insightsError,\n refetch: refetchInsights,\n } = usePagedInsights();\n\n // Realized activity + income aggregated over the FULL transaction set\n // (not a truncated first page) via the fetch-all helper.\n const {\n data: transactions,\n isLoading: txLoading,\n isError: txError,\n refetch: refetchTransactions,\n } = useAllTransactions();\n\n // ALL accounts (with holdings) — drives the portfolio-wide unrealized total.\n const { data: accounts, isLoading: accountsLoading } = useAllAccounts();\n const { data: portfolios } = usePortfolios();\n\n const createInsight = useCreateInsight();\n const acknowledgeInsight = useAcknowledgeInsight();\n const dismissInsight = useDismissInsight();\n const resolveInsight = useResolveInsight();\n\n const [createOpen, setCreateOpen] = useState(false);\n const [form, setForm] = useState<InsightFormState>(EMPTY_INSIGHT_FORM);\n const [formError, setFormError] = useState<string | null>(null);\n const [dismissTarget, setDismissTarget] = useState<BraInsight | null>(null);\n\n // ---- Tax-opportunity insights (client-filtered — the list hook has no type arg) ----\n const taxInsights = useMemo(\n () => insights.filter((i) => i.type === 'TAX_OPPORTUNITY'),\n [insights]\n );\n const openTax = taxInsights.filter((i) => i.status === 'OPEN');\n\n // ---- Realized activity partitioned from real transactions ----\n const sells = useMemo(() => transactions.filter((t) => t.type === 'SELL'), [transactions]);\n const income = useMemo(\n () => transactions.filter((t) => t.type === 'DIVIDEND' || t.type === 'INTEREST'),\n [transactions]\n );\n const realizedProceeds = sells.reduce((sum, t) => sum + t.amount, 0);\n const investmentIncome = income.reduce((sum, t) => sum + t.amount, 0);\n const moneyCurrency = sells[0]?.currency ?? income[0]?.currency ?? 'USD';\n\n // ---- Portfolio-wide unrealized P/L across EVERY account's holdings ----\n const totalUnrealizedAll = useMemo(\n () =>\n accounts.reduce(\n (sum, a) => sum + a.holdings.reduce((s, h) => s + unrealized(h), 0),\n 0\n ),\n [accounts]\n );\n const unrealizedCurrency = accounts[0]?.currency ?? moneyCurrency;\n\n const canCreate = accounts.length > 0 || portfolios.length > 0;\n\n function openCreate() {\n setForm(EMPTY_INSIGHT_FORM);\n setFormError(null);\n setCreateOpen(true);\n }\n\n function submitCreate() {\n const title = form.title.trim();\n if (!title) {\n setFormError('A title is required.');\n return;\n }\n if (!form.subject) {\n setFormError('Select the account or portfolio this opportunity applies to.');\n return;\n }\n const [subjectType, subjectId] = form.subject.split(':');\n if (!subjectType || !subjectId) {\n setFormError('Select a valid subject.');\n return;\n }\n createInsight.mutate(\n {\n type: 'TAX_OPPORTUNITY',\n severity: form.severity,\n title,\n detail: form.detail.trim() || null,\n subjectId,\n subjectType,\n },\n {\n onSuccess: () => {\n setCreateOpen(false);\n setForm(EMPTY_INSIGHT_FORM);\n },\n onError: (err: unknown) => {\n setFormError(err instanceof Error ? err.message : 'Could not create the tax insight.');\n },\n }\n );\n }\n\n const insightPending =\n acknowledgeInsight.isPending || dismissInsight.isPending || resolveInsight.isPending;\n\n return (\n <SectionShell\n title=\"Tax Center\"\n description=\"Act on tax-opportunity insights and review unrealized and realized gains — all from your live portfolio data.\"\n badges={[`${openTax.length} open opportunit${openTax.length === 1 ? 'y' : 'ies'}`]}\n actionLabel=\"New tax insight\"\n onAction={openCreate}\n >\n <KpiGrid\n items={[\n { label: 'Open tax opportunities', value: String(openTax.length) },\n { label: 'Tax insights (all)', value: String(taxInsights.length) },\n {\n label: 'Realized proceeds',\n value: formatMoney(realizedProceeds, moneyCurrency),\n trend: `${sells.length} sale${sells.length === 1 ? '' : 's'}`,\n },\n {\n label: 'Investment income',\n value: formatMoney(investmentIncome, moneyCurrency),\n trend: `${income.length} dividend/interest`,\n },\n {\n label: 'Unrealized P/L (all accounts)',\n value: accountsLoading ? '—' : formatMoney(totalUnrealizedAll, unrealizedCurrency),\n trend: accountsLoading\n ? 'Loading…'\n : totalUnrealizedAll >= 0\n ? 'Net gain'\n : 'Net loss',\n deltaTone: totalUnrealizedAll >= 0 ? 'positive' : 'negative',\n },\n ]}\n />\n\n <Tabs defaultValue=\"opportunities\" className=\"space-y-4\">\n <TabsList className=\"grid w-full grid-cols-3\">\n <TabsTrigger value=\"opportunities\">Tax Opportunities</TabsTrigger>\n <TabsTrigger value=\"unrealized\">Unrealized Gains</TabsTrigger>\n <TabsTrigger value=\"realized\">Realized Activity</TabsTrigger>\n </TabsList>\n\n {/* ---------------- Tax opportunities ---------------- */}\n <TabsContent value=\"opportunities\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Sparkles className=\"h-5 w-5\" aria-hidden=\"true\" />\n Tax-opportunity insights\n </CardTitle>\n <CardDescription>\n Tax-loss harvesting and other tax signals detected across your accounts and\n portfolios.\n </CardDescription>\n </CardHeader>\n <CardContent>\n {insightsLoading ? (\n <LoadingState />\n ) : insightsError ? (\n <ErrorState onRetry={() => refetchInsights()} />\n ) : taxInsights.length === 0 ? (\n <EmptyState\n icon={<Receipt className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No tax opportunities yet\"\n description=\"Tax-opportunity insights appear here as the backend generates them from your holdings. You can also flag one manually.\"\n action={\n canCreate ? (\n <Button size=\"sm\" onClick={openCreate}>\n <Sparkles className=\"size-4\" aria-hidden=\"true\" />\n New tax insight\n </Button>\n ) : undefined\n }\n />\n ) : (\n <div className=\"space-y-3\">\n {taxInsights.map((insight) => (\n <TaxInsightRow\n key={insight.id}\n insight={insight}\n actionPending={insightPending}\n onAcknowledge={() => acknowledgeInsight.mutate(insight.id)}\n onResolve={() => resolveInsight.mutate(insight.id)}\n onDismiss={() => setDismissTarget(insight)}\n />\n ))}\n <LoadMore\n hasMore={insightsHasMore}\n onClick={loadMoreInsights}\n loading={insightsFetchingMore}\n label=\"Load more insights\"\n />\n </div>\n )}\n </CardContent>\n </Card>\n </TabsContent>\n\n {/* ---------------- Unrealized gains ---------------- */}\n <TabsContent value=\"unrealized\">\n <UnrealizedGainsTab accounts={accounts} />\n </TabsContent>\n\n {/* ---------------- Realized activity ---------------- */}\n <TabsContent value=\"realized\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <ReceiptText className=\"h-5 w-5\" aria-hidden=\"true\" />\n Realized activity\n </CardTitle>\n <CardDescription>\n Realized sales, dividends and interest — the taxable events recorded on your\n accounts.\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-6\">\n {txLoading ? (\n <LoadingState />\n ) : txError ? (\n <ErrorState onRetry={() => refetchTransactions()} />\n ) : sells.length === 0 && income.length === 0 ? (\n <EmptyState\n icon={<ReceiptText className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No taxable activity recorded\"\n description=\"Sales, dividends and interest show up here once transactions are recorded against your accounts.\"\n />\n ) : (\n <>\n {/* Realized sales */}\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2\">\n <Landmark className=\"size-4 text-text-secondary\" aria-hidden=\"true\" />\n <h3 className=\"text-sm font-semibold text-text-primary\">Realized sales</h3>\n <Badge variant=\"secondary\">{sells.length}</Badge>\n </div>\n {sells.length === 0 ? (\n <p className=\"text-sm text-text-secondary\">No sales recorded.</p>\n ) : (\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Symbol</TableHead>\n <TableHead className=\"text-right\">Quantity</TableHead>\n <TableHead className=\"text-right\">Price</TableHead>\n <TableHead className=\"text-right\">Proceeds</TableHead>\n <TableHead>Trade date</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {sells.map((t) => (\n <TableRow key={t.id}>\n <TableCell className=\"font-medium text-text-primary\">\n {t.symbol ?? '—'}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {t.quantity}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {formatMoney(t.price, t.currency)}\n </TableCell>\n <TableCell className=\"text-right font-medium text-text-primary\">\n {formatMoney(t.amount, t.currency)}\n </TableCell>\n <TableCell className=\"text-text-secondary\">\n {formatDate(t.tradeDate)}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n\n {/* Investment income */}\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2\">\n <Coins className=\"size-4 text-text-secondary\" aria-hidden=\"true\" />\n <h3 className=\"text-sm font-semibold text-text-primary\">\n Dividends & interest\n </h3>\n <Badge variant=\"secondary\">{income.length}</Badge>\n </div>\n {income.length === 0 ? (\n <p className=\"text-sm text-text-secondary\">No income recorded.</p>\n ) : (\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Type</TableHead>\n <TableHead>Symbol</TableHead>\n <TableHead className=\"text-right\">Amount</TableHead>\n <TableHead>Trade date</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {income.map((t) => (\n <TableRow key={t.id}>\n <TableCell>\n <Badge variant=\"outline\">{humanize(t.type)}</Badge>\n </TableCell>\n <TableCell className=\"text-text-secondary\">\n {t.symbol ?? '—'}\n </TableCell>\n <TableCell className=\"text-right font-medium text-status-success-text\">\n {formatMoney(t.amount, t.currency)}\n </TableCell>\n <TableCell className=\"text-text-secondary\">\n {formatDate(t.tradeDate)}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n </>\n )}\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n\n {/* ---------------- Create tax insight dialog ---------------- */}\n <Dialog\n open={createOpen}\n onOpenChange={(open) => {\n setCreateOpen(open);\n if (!open) setFormError(null);\n }}\n >\n <DialogContent className=\"max-h-[90vh] overflow-y-auto sm:max-w-lg\">\n <DialogHeader>\n <DialogTitle>New tax insight</DialogTitle>\n <DialogDescription>\n Flag a tax opportunity against one of your accounts or portfolios.\n </DialogDescription>\n </DialogHeader>\n\n {!canCreate ? (\n <EmptyState\n title=\"No subject available\"\n description=\"Create an account or portfolio first, then flag a tax opportunity against it.\"\n />\n ) : (\n <div className=\"space-y-4 py-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-title\">Title</Label>\n <Input\n id=\"tax-title\"\n value={form.title}\n onChange={(e) => setForm((f) => ({ ...f, title: e.target.value }))}\n placeholder=\"e.g. Harvest losses in tech holdings\"\n />\n </div>\n\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-severity\">Severity</Label>\n <Select\n value={form.severity}\n onValueChange={(v) =>\n setForm((f) => ({ ...f, severity: v as BraInsightSeverity }))\n }\n >\n <SelectTrigger id=\"tax-severity\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {SEVERITIES.map((s) => (\n <SelectItem key={s} value={s}>\n {humanize(s)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-subject\">Applies to</Label>\n <Select\n value={form.subject}\n onValueChange={(v) => setForm((f) => ({ ...f, subject: v }))}\n >\n <SelectTrigger id=\"tax-subject\">\n <SelectValue placeholder=\"Select subject\" />\n </SelectTrigger>\n <SelectContent>\n {portfolios.map((p) => (\n <SelectItem key={`portfolio:${p.id}`} value={`portfolio:${p.id}`}>\n Portfolio · {p.name}\n </SelectItem>\n ))}\n {accounts.map((a) => (\n <SelectItem key={`account:${a.id}`} value={`account:${a.id}`}>\n Account · {a.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-detail\">Detail</Label>\n <Textarea\n id=\"tax-detail\"\n value={form.detail}\n onChange={(e) => setForm((f) => ({ ...f, detail: e.target.value }))}\n rows={3}\n placeholder=\"What is the opportunity and how should it be actioned?\"\n />\n </div>\n\n {formError ? (\n <p className=\"text-sm text-status-error-text\" role=\"alert\">\n {formError}\n </p>\n ) : null}\n </div>\n )}\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant=\"outline\" disabled={createInsight.isPending}>\n Cancel\n </Button>\n </DialogClose>\n <Button\n onClick={submitCreate}\n disabled={\n !canCreate || !form.title.trim() || !form.subject || createInsight.isPending\n }\n >\n {createInsight.isPending ? 'Creating…' : 'Create insight'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n\n {/* ---------------- Dismiss confirmation ---------------- */}\n <ConfirmDialog\n open={Boolean(dismissTarget)}\n onOpenChange={(open) => {\n if (!open) setDismissTarget(null);\n }}\n title=\"Dismiss tax insight?\"\n description={\n dismissTarget ? (\n <>\n “{dismissTarget.title}” will be marked as dismissed and removed from your\n open opportunities. This does not delete the underlying holdings or transactions.\n </>\n ) : undefined\n }\n confirmLabel=\"Dismiss insight\"\n pendingLabel=\"Dismissing…\"\n destructive\n pending={dismissInsight.isPending}\n onConfirm={() => {\n if (!dismissTarget) return;\n dismissInsight.mutate(dismissTarget.id, {\n onSuccess: () => setDismissTarget(null),\n });\n }}\n />\n </SectionShell>\n );\n}\n\n// ============================================================================\n// Unrealized gains tab — per-account holdings P/L (real market value − cost basis)\n// ============================================================================\n\nfunction UnrealizedGainsTab({ accounts }: { accounts: BraAccount[] }) {\n const [accountId, setAccountId] = useState<string>('');\n const selectedId = accountId || accounts[0]?.id;\n const selectedAccount = accounts.find((a) => a.id === selectedId);\n\n const { data: holdings, isLoading, isError, refetch } = useHoldings({ accountId: selectedId });\n\n const currency = selectedAccount?.currency ?? holdings[0]?.currency ?? 'USD';\n\n const totalUnrealized = holdings.reduce((sum, h) => sum + unrealized(h), 0);\n const gainers = holdings.filter((h) => unrealized(h) > 0).length;\n const losers = holdings.filter((h) => unrealized(h) < 0).length;\n\n // Group holdings by asset class with subtotals (grouped, colored by gain/loss).\n const groups = useMemo(() => {\n const map = new Map<BraAssetClass, BraHolding[]>();\n for (const h of holdings) {\n const arr = map.get(h.assetClass) ?? [];\n arr.push(h);\n map.set(h.assetClass, arr);\n }\n return Array.from(map.entries());\n }, [holdings]);\n\n if (accounts.length === 0) {\n return (\n <Card>\n <CardContent className=\"pt-6\">\n <EmptyState\n icon={<TrendingUp className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No accounts yet\"\n description=\"Add an account with holdings to see unrealized gains and losses.\"\n />\n </CardContent>\n </Card>\n );\n }\n\n return (\n <Card>\n <CardHeader className=\"flex flex-col gap-4 md:flex-row md:items-start md:justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n <TrendingUp className=\"h-5 w-5\" aria-hidden=\"true\" />\n Unrealized gains & losses\n </CardTitle>\n <CardDescription>\n Market value minus cost basis for each holding in the selected account.\n </CardDescription>\n </div>\n <div className=\"w-full md:w-64\">\n <Label htmlFor=\"unrealized-account\" className=\"sr-only\">\n Account\n </Label>\n <Select value={selectedId ?? ''} onValueChange={setAccountId}>\n <SelectTrigger id=\"unrealized-account\">\n <SelectValue placeholder=\"Select account\" />\n </SelectTrigger>\n <SelectContent>\n {accounts.map((a) => (\n <SelectItem key={a.id} value={a.id}>\n {a.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {isLoading ? (\n <LoadingState />\n ) : isError ? (\n <ErrorState onRetry={() => refetch()} />\n ) : holdings.length === 0 ? (\n <EmptyState\n icon={<TrendingUp className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No holdings in this account\"\n description=\"Unrealized gains appear once this account has holdings with a cost basis.\"\n />\n ) : (\n <>\n <KpiGrid\n items={[\n {\n label: 'Unrealized P/L',\n value: formatMoney(totalUnrealized, currency),\n trend: totalUnrealized >= 0 ? 'Net gain' : 'Net loss',\n deltaTone: totalUnrealized >= 0 ? 'positive' : 'negative',\n },\n { label: 'Holdings', value: String(holdings.length) },\n { label: 'Gainers', value: String(gainers) },\n { label: 'Losers', value: String(losers) },\n ]}\n />\n\n <div className=\"space-y-6\">\n {groups.map(([assetClass, rows]) => {\n const groupTotal = rows.reduce((sum, h) => sum + unrealized(h), 0);\n return (\n <div key={assetClass} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <h3 className=\"text-sm font-semibold text-text-primary\">\n {humanize(assetClass)}\n </h3>\n <Badge variant=\"secondary\">{rows.length}</Badge>\n </div>\n <GainLoss value={groupTotal} currency={currency} />\n </div>\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Symbol</TableHead>\n <TableHead className=\"text-right\">Quantity</TableHead>\n <TableHead className=\"text-right\">Cost basis</TableHead>\n <TableHead className=\"text-right\">Market value</TableHead>\n <TableHead className=\"text-right\">Unrealized</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {rows.map((h) => (\n <TableRow key={h.id}>\n <TableCell>\n <p className=\"font-medium text-text-primary\">{h.symbol}</p>\n {h.name ? (\n <p className=\"text-xs text-text-secondary\">{h.name}</p>\n ) : null}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {h.quantity}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {formatMoney(h.costBasis, h.currency)}\n </TableCell>\n <TableCell className=\"text-right text-text-primary\">\n {formatMoney(h.marketValue, h.currency)}\n </TableCell>\n <TableCell className=\"text-right\">\n <GainLoss value={unrealized(h)} currency={h.currency} />\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n );\n })}\n </div>\n </>\n )}\n </CardContent>\n </Card>\n );\n}\n\n/** Signed money with an arrow icon + semantic color (color is never the only signal). */\nfunction GainLoss({ value, currency }: { value: number; currency: string }) {\n const positive = value > 0;\n const negative = value < 0;\n const Icon = positive ? ArrowUpRight : negative ? ArrowDownRight : TrendingDown;\n const sign = positive ? '+' : '';\n return (\n <span\n className={`inline-flex items-center justify-end gap-1 font-semibold ${deltaToneClass(value)}`}\n >\n {value !== 0 ? <Icon className=\"size-4\" aria-hidden=\"true\" /> : null}\n {sign}\n {formatMoney(value, currency)}\n </span>\n );\n}\n\n// ============================================================================\n// Tax-insight row (acknowledge / resolve / dismiss)\n// ============================================================================\n\nfunction TaxInsightRow({\n insight,\n actionPending,\n onAcknowledge,\n onResolve,\n onDismiss,\n}: {\n insight: BraInsight;\n actionPending: boolean;\n onAcknowledge: () => void;\n onResolve: () => void;\n onDismiss: () => void;\n}) {\n const terminal = insight.status === 'RESOLVED' || insight.status === 'DISMISSED';\n return (\n <div className=\"flex items-start justify-between gap-4 rounded-lg border border-border-subtle bg-bg-surface p-4\">\n <div className=\"min-w-0 space-y-1\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <p className=\"font-medium text-text-primary\">{insight.title}</p>\n <Badge variant={statusBadgeVariant(insight.severity)}>{humanize(insight.severity)}</Badge>\n <Badge variant={statusBadgeVariant(insight.status)}>{humanize(insight.status)}</Badge>\n </div>\n {insight.detail ? <p className=\"text-sm text-text-secondary\">{insight.detail}</p> : null}\n <p className=\"text-xs text-text-muted\">\n {humanize(insight.subjectType)} · Detected {formatDate(insight.createdAt)}\n </p>\n </div>\n {terminal ? (\n <span className=\"mt-1 text-xs text-text-muted\">Closed</span>\n ) : (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={`Actions for ${insight.title}`}\n disabled={actionPending}\n >\n <MoreHorizontal className=\"size-4\" aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuLabel>Actions</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {insight.status === 'OPEN' ? (\n <DropdownMenuItem onClick={onAcknowledge}>\n <Check className=\"size-4\" aria-hidden=\"true\" />\n Acknowledge\n </DropdownMenuItem>\n ) : null}\n <DropdownMenuItem onClick={onResolve}>\n <ShieldCheck className=\"size-4\" aria-hidden=\"true\" />\n Resolve\n </DropdownMenuItem>\n <DropdownMenuItem className=\"text-status-error-text\" onClick={onDismiss}>\n <X className=\"size-4\" aria-hidden=\"true\" />\n Dismiss\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AA2FA,IAAM,KAAmC;CAAC;CAAQ;CAAO;CAAU;CAAQ;CAAW;AAGtF,SAAS,EAAS,GAAuB;AACvC,QAAO,EACJ,aAAa,CACb,MAAM,IAAI,CACV,KAAK,MAAM,EAAE,OAAO,EAAE,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,CAAC,CAClD,KAAK,IAAI;;AAId,SAAS,EAAW,GAAuB;AACzC,QAAO,EAAE,cAAc,EAAE;;AAe3B,IAAM,KAAuC;CAC3C,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACV;AAED,SAAgB,KAAU;CAGxB,IAAM,EACJ,OAAO,GACP,SAAS,GACT,UAAU,GACV,WAAW,IACX,oBAAoB,IACpB,SAAS,IACT,SAAS,OACP,GAAkB,EAIhB,EACJ,MAAM,GACN,WAAW,IACX,SAAS,GACT,SAAS,OACP,GAAoB,EAGlB,EAAE,MAAM,GAAU,WAAW,MAAoB,GAAgB,EACjE,EAAE,MAAM,MAAe,IAAe,EAEtC,IAAgB,GAAkB,EAClC,IAAqB,GAAuB,EAC5C,IAAiB,GAAmB,EACpC,KAAiB,IAAmB,EAEpC,CAAC,IAAY,MAAiB,EAAS,GAAM,EAC7C,CAAC,GAAM,KAAW,EAA2B,GAAmB,EAChE,CAAC,IAAW,KAAgB,EAAwB,KAAK,EACzD,CAAC,GAAe,MAAoB,EAA4B,KAAK,EAGrE,IAAc,QACZ,EAAS,QAAQ,MAAM,EAAE,SAAS,kBAAkB,EAC1D,CAAC,EAAS,CACX,EACK,KAAU,EAAY,QAAQ,MAAM,EAAE,WAAW,OAAO,EAGxD,IAAQ,QAAc,EAAa,QAAQ,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,EAAa,CAAC,EACpF,IAAS,QACP,EAAa,QAAQ,MAAM,EAAE,SAAS,cAAc,EAAE,SAAS,WAAW,EAChF,CAAC,EAAa,CACf,EACK,KAAmB,EAAM,QAAQ,GAAK,MAAM,IAAM,EAAE,QAAQ,EAAE,EAC9D,KAAmB,EAAO,QAAQ,GAAK,MAAM,IAAM,EAAE,QAAQ,EAAE,EAC/D,KAAgB,EAAM,IAAI,YAAY,EAAO,IAAI,YAAY,OAG7D,KAAqB,QAEvB,EAAS,QACN,GAAK,MAAM,IAAM,EAAE,SAAS,QAAQ,GAAG,MAAM,IAAI,EAAW,EAAE,EAAE,EAAE,EACnE,EACD,EACH,CAAC,EAAS,CACX,EACK,KAAqB,EAAS,IAAI,YAAY,IAE9C,KAAY,EAAS,SAAS,KAAK,EAAW,SAAS;CAE7D,SAAS,KAAa;AAGpB,EAFA,EAAQ,GAAmB,EAC3B,EAAa,KAAK,EAClB,GAAc,GAAK;;CAGrB,SAAS,KAAe;EACtB,IAAM,IAAQ,EAAK,MAAM,MAAM;AAC/B,MAAI,CAAC,GAAO;AACV,KAAa,uBAAuB;AACpC;;AAEF,MAAI,CAAC,EAAK,SAAS;AACjB,KAAa,+DAA+D;AAC5E;;EAEF,IAAM,CAAC,GAAa,KAAa,EAAK,QAAQ,MAAM,IAAI;AACxD,MAAI,CAAC,KAAe,CAAC,GAAW;AAC9B,KAAa,0BAA0B;AACvC;;AAEF,IAAc,OACZ;GACE,MAAM;GACN,UAAU,EAAK;GACf;GACA,QAAQ,EAAK,OAAO,MAAM,IAAI;GAC9B;GACA;GACD,EACD;GACE,iBAAiB;AAEf,IADA,GAAc,GAAM,EACpB,EAAQ,GAAmB;;GAE7B,UAAU,MAAiB;AACzB,MAAa,aAAe,QAAQ,EAAI,UAAU,oCAAoC;;GAEzF,CACF;;CAGH,IAAM,KACJ,EAAmB,aAAa,EAAe,aAAa,GAAe;AAE7E,QACE,kBAAC,GAAD;EACE,OAAM;EACN,aAAY;EACZ,QAAQ,CAAC,GAAG,GAAQ,OAAO,kBAAkB,GAAQ,WAAW,IAAI,MAAM,QAAQ;EAClF,aAAY;EACZ,UAAU;YALZ;GAOE,kBAAC,IAAD,EACE,OAAO;IACL;KAAE,OAAO;KAA0B,OAAO,OAAO,GAAQ,OAAO;KAAE;IAClE;KAAE,OAAO;KAAsB,OAAO,OAAO,EAAY,OAAO;KAAE;IAClE;KACE,OAAO;KACP,OAAO,EAAY,IAAkB,GAAc;KACnD,OAAO,GAAG,EAAM,OAAO,OAAO,EAAM,WAAW,IAAI,KAAK;KACzD;IACD;KACE,OAAO;KACP,OAAO,EAAY,IAAkB,GAAc;KACnD,OAAO,GAAG,EAAO,OAAO;KACzB;IACD;KACE,OAAO;KACP,OAAO,IAAkB,MAAM,EAAY,IAAoB,GAAmB;KAClF,OAAO,IACH,aACA,MAAsB,IACpB,aACA;KACN,WAAW,MAAsB,IAAI,aAAa;KACnD;IACF,EACD,CAAA;GAEF,kBAAC,IAAD;IAAM,cAAa;IAAgB,WAAU;cAA7C;KACE,kBAAC,IAAD;MAAU,WAAU;gBAApB;OACE,kBAAC,IAAD;QAAa,OAAM;kBAAgB;QAA+B,CAAA;OAClE,kBAAC,IAAD;QAAa,OAAM;kBAAa;QAA8B,CAAA;OAC9D,kBAAC,IAAD;QAAa,OAAM;kBAAW;QAA+B,CAAA;OACpD;;KAGX,kBAAC,IAAD;MAAa,OAAM;gBACjB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;OAAW,WAAU;iBAArB,CACE,kBAAC,IAAD;QAAU,WAAU;QAAU,eAAY;QAAS,CAAA,EAAA,2BAEzC;UACZ,kBAAC,GAAD,EAAA,UAAiB,2FAGC,CAAA,CACP,EAAA,CAAA,EACb,kBAAC,GAAD,EAAA,UACG,KACC,kBAAC,GAAD,EAAgB,CAAA,GACd,KACF,kBAAC,GAAD,EAAY,eAAe,IAAiB,EAAI,CAAA,GAC9C,EAAY,WAAW,IACzB,kBAAC,GAAD;OACE,MAAM,kBAAC,IAAD;QAAS,WAAU;QAAS,eAAY;QAAS,CAAA;OACvD,OAAM;OACN,aAAY;OACZ,QACE,KACE,kBAAC,GAAD;QAAQ,MAAK;QAAK,SAAS;kBAA3B,CACE,kBAAC,IAAD;SAAU,WAAU;SAAS,eAAY;SAAS,CAAA,EAAA,kBAE3C;YACP,KAAA;OAEN,CAAA,GAEF,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACG,EAAY,KAAK,MAChB,kBAAC,IAAD;QAEW;QACT,eAAe;QACf,qBAAqB,EAAmB,OAAO,EAAQ,GAAG;QAC1D,iBAAiB,GAAe,OAAO,EAAQ,GAAG;QAClD,iBAAiB,GAAiB,EAAQ;QAC1C,EANK,EAAQ,GAMb,CACF,EACF,kBAAC,IAAD;QACE,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAM;QACN,CAAA,CACE;UAEI,CAAA,CACT,EAAA,CAAA;MACK,CAAA;KAGd,kBAAC,IAAD;MAAa,OAAM;gBACjB,kBAAC,IAAD,EAA8B,aAAY,CAAA;MAC9B,CAAA;KAGd,kBAAC,IAAD;MAAa,OAAM;gBACjB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;OAAW,WAAU;iBAArB,CACE,kBAAC,IAAD;QAAa,WAAU;QAAU,eAAY;QAAS,CAAA,EAAA,oBAE5C;UACZ,kBAAC,GAAD,EAAA,UAAiB,0FAGC,CAAA,CACP,EAAA,CAAA,EACb,kBAAC,GAAD;OAAa,WAAU;iBACpB,KACC,kBAAC,GAAD,EAAgB,CAAA,GACd,IACF,kBAAC,GAAD,EAAY,eAAe,IAAqB,EAAI,CAAA,GAClD,EAAM,WAAW,KAAK,EAAO,WAAW,IAC1C,kBAAC,GAAD;QACE,MAAM,kBAAC,IAAD;SAAa,WAAU;SAAS,eAAY;SAAS,CAAA;QAC3D,OAAM;QACN,aAAY;QACZ,CAAA,GAEF,kBAAA,IAAA,EAAA,UAAA,CAEE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,OAAD;SAAK,WAAU;mBAAf;UACE,kBAAC,IAAD;WAAU,WAAU;WAA6B,eAAY;WAAS,CAAA;UACtE,kBAAC,MAAD;WAAI,WAAU;qBAA0C;WAAmB,CAAA;UAC3E,kBAAC,GAAD;WAAO,SAAQ;qBAAa,EAAM;WAAe,CAAA;UAC7C;YACL,EAAM,WAAW,IAChB,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAsB,CAAA,GAEjE,kBAAC,OAAD;SAAK,WAAU;mBACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA;UACE,kBAAC,GAAD,EAAA,UAAW,UAAkB,CAAA;UAC7B,kBAAC,GAAD;WAAW,WAAU;qBAAa;WAAoB,CAAA;UACtD,kBAAC,GAAD;WAAW,WAAU;qBAAa;WAAiB,CAAA;UACnD,kBAAC,GAAD;WAAW,WAAU;qBAAa;WAAoB,CAAA;UACtD,kBAAC,GAAD,EAAA,UAAW,cAAsB,CAAA;UACxB,EAAA,CAAA,EACC,CAAA,EACd,kBAAC,IAAD,EAAA,UACG,EAAM,KAAK,MACV,kBAAC,GAAD,EAAA,UAAA;UACE,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAE,UAAU;WACH,CAAA;UACZ,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAE;WACO,CAAA;UACZ,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAY,EAAE,OAAO,EAAE,SAAS;WACvB,CAAA;UACZ,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAY,EAAE,QAAQ,EAAE,SAAS;WACxB,CAAA;UACZ,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAW,EAAE,UAAU;WACd,CAAA;UACH,EAAA,EAhBI,EAAE,GAgBN,CACX,EACQ,CAAA,CACN,EAAA,CAAA;SACJ,CAAA,CAEJ;WAGN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,OAAD;SAAK,WAAU;mBAAf;UACE,kBAAC,IAAD;WAAO,WAAU;WAA6B,eAAY;WAAS,CAAA;UACnE,kBAAC,MAAD;WAAI,WAAU;qBAA0C;WAEnD,CAAA;UACL,kBAAC,GAAD;WAAO,SAAQ;qBAAa,EAAO;WAAe,CAAA;UAC9C;YACL,EAAO,WAAW,IACjB,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAuB,CAAA,GAElE,kBAAC,OAAD;SAAK,WAAU;mBACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA;UACE,kBAAC,GAAD,EAAA,UAAW,QAAgB,CAAA;UAC3B,kBAAC,GAAD,EAAA,UAAW,UAAkB,CAAA;UAC7B,kBAAC,GAAD;WAAW,WAAU;qBAAa;WAAkB,CAAA;UACpD,kBAAC,GAAD,EAAA,UAAW,cAAsB,CAAA;UACxB,EAAA,CAAA,EACC,CAAA,EACd,kBAAC,IAAD,EAAA,UACG,EAAO,KAAK,MACX,kBAAC,GAAD,EAAA,UAAA;UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;WAAO,SAAQ;qBAAW,EAAS,EAAE,KAAK;WAAS,CAAA,EACzC,CAAA;UACZ,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAE,UAAU;WACH,CAAA;UACZ,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAY,EAAE,QAAQ,EAAE,SAAS;WACxB,CAAA;UACZ,kBAAC,GAAD;WAAW,WAAU;qBAClB,EAAW,EAAE,UAAU;WACd,CAAA;UACH,EAAA,EAbI,EAAE,GAaN,CACX,EACQ,CAAA,CACN,EAAA,CAAA;SACJ,CAAA,CAEJ;UACL,EAAA,CAAA;OAEO,CAAA,CACT,EAAA,CAAA;MACK,CAAA;KACT;;GAGP,kBAAC,IAAD;IACE,MAAM;IACN,eAAe,MAAS;AAEtB,KADA,GAAc,EAAK,EACd,KAAM,EAAa,KAAK;;cAG/B,kBAAC,IAAD;KAAe,WAAU;eAAzB;MACE,kBAAC,IAAD,EAAA,UAAA,CACE,kBAAC,IAAD,EAAA,UAAa,mBAA6B,CAAA,EAC1C,kBAAC,IAAD,EAAA,UAAmB,sEAEC,CAAA,CACP,EAAA,CAAA;MAEb,KAMA,kBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,GAAD;UAAO,SAAQ;oBAAY;UAAa,CAAA,EACxC,kBAAC,IAAD;UACE,IAAG;UACH,OAAO,EAAK;UACZ,WAAW,MAAM,GAAS,OAAO;WAAE,GAAG;WAAG,OAAO,EAAE,OAAO;WAAO,EAAE;UAClE,aAAY;UACZ,CAAA,CACE;;QAEN,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,GAAD;WAAO,SAAQ;qBAAe;WAAgB,CAAA,EAC9C,kBAAC,GAAD;WACE,OAAO,EAAK;WACZ,gBAAgB,MACd,GAAS,OAAO;YAAE,GAAG;YAAG,UAAU;YAAyB,EAAE;qBAHjE,CAME,kBAAC,GAAD;YAAe,IAAG;sBAChB,kBAAC,GAAD,EAAe,CAAA;YACD,CAAA,EAChB,kBAAC,GAAD,EAAA,UACG,GAAW,KAAK,MACf,kBAAC,GAAD;YAAoB,OAAO;sBACxB,EAAS,EAAE;YACD,EAFI,EAEJ,CACb,EACY,CAAA,CACT;aACL;aACN,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,GAAD;WAAO,SAAQ;qBAAc;WAAkB,CAAA,EAC/C,kBAAC,GAAD;WACE,OAAO,EAAK;WACZ,gBAAgB,MAAM,GAAS,OAAO;YAAE,GAAG;YAAG,SAAS;YAAG,EAAE;qBAF9D,CAIE,kBAAC,GAAD;YAAe,IAAG;sBAChB,kBAAC,GAAD,EAAa,aAAY,kBAAmB,CAAA;YAC9B,CAAA,EAChB,kBAAC,GAAD,EAAA,UAAA,CACG,EAAW,KAAK,MACf,kBAAC,GAAD;YAAsC,OAAO,aAAa,EAAE;sBAA5D,CAAkE,gBACnD,EAAE,KACJ;cAFI,aAAa,EAAE,KAEnB,CACb,EACD,EAAS,KAAK,MACb,kBAAC,GAAD;YAAoC,OAAO,WAAW,EAAE;sBAAxD,CAA8D,cACjD,EAAE,KACF;cAFI,WAAW,EAAE,KAEjB,CACb,CACY,EAAA,CAAA,CACT;aACL;YACF;;QAEN,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,GAAD;UAAO,SAAQ;oBAAa;UAAc,CAAA,EAC1C,kBAAC,IAAD;UACE,IAAG;UACH,OAAO,EAAK;UACZ,WAAW,MAAM,GAAS,OAAO;WAAE,GAAG;WAAG,QAAQ,EAAE,OAAO;WAAO,EAAE;UACnE,MAAM;UACN,aAAY;UACZ,CAAA,CACE;;QAEL,KACC,kBAAC,KAAD;SAAG,WAAU;SAAiC,MAAK;mBAChD;SACC,CAAA,GACF;QACA;WA9EN,kBAAC,GAAD;OACE,OAAM;OACN,aAAY;OACZ,CAAA;MA8EJ,kBAAC,IAAD,EAAA,UAAA,CACE,kBAAC,IAAD;OAAa,SAAA;iBACX,kBAAC,GAAD;QAAQ,SAAQ;QAAU,UAAU,EAAc;kBAAW;QAEpD,CAAA;OACG,CAAA,EACd,kBAAC,GAAD;OACE,SAAS;OACT,UACE,CAAC,MAAa,CAAC,EAAK,MAAM,MAAM,IAAI,CAAC,EAAK,WAAW,EAAc;iBAGpE,EAAc,YAAY,cAAc;OAClC,CAAA,CACI,EAAA,CAAA;MACD;;IACT,CAAA;GAGT,kBAAC,IAAD;IACE,MAAM,EAAQ;IACd,eAAe,MAAS;AACtB,KAAK,KAAM,GAAiB,KAAK;;IAEnC,OAAM;IACN,aACE,IACE,kBAAA,IAAA,EAAA,UAAA;KAAE;KACQ,EAAc;KAAM;KAE3B,EAAA,CAAA,GACD,KAAA;IAEN,cAAa;IACb,cAAa;IACb,aAAA;IACA,SAAS,EAAe;IACxB,iBAAiB;AACV,UACL,EAAe,OAAO,EAAc,IAAI,EACtC,iBAAiB,GAAiB,KAAK,EACxC,CAAC;;IAEJ,CAAA;GACW;;;AAQnB,SAAS,GAAmB,EAAE,eAAwC;CACpE,IAAM,CAAC,GAAW,KAAgB,EAAiB,GAAG,EAChD,IAAa,KAAa,EAAS,IAAI,IACvC,IAAkB,EAAS,MAAM,MAAM,EAAE,OAAO,EAAW,EAE3D,EAAE,MAAM,GAAU,eAAW,aAAS,gBAAY,EAAY,EAAE,WAAW,GAAY,CAAC,EAExF,KAAW,GAAiB,YAAY,EAAS,IAAI,YAAY,OAEjE,IAAkB,EAAS,QAAQ,GAAK,MAAM,IAAM,EAAW,EAAE,EAAE,EAAE,EACrE,IAAU,EAAS,QAAQ,MAAM,EAAW,EAAE,GAAG,EAAE,CAAC,QACpD,IAAS,EAAS,QAAQ,MAAM,EAAW,EAAE,GAAG,EAAE,CAAC,QAGnD,IAAS,QAAc;EAC3B,IAAM,oBAAM,IAAI,KAAkC;AAClD,OAAK,IAAM,KAAK,GAAU;GACxB,IAAM,IAAM,EAAI,IAAI,EAAE,WAAW,IAAI,EAAE;AAEvC,GADA,EAAI,KAAK,EAAE,EACX,EAAI,IAAI,EAAE,YAAY,EAAI;;AAE5B,SAAO,MAAM,KAAK,EAAI,SAAS,CAAC;IAC/B,CAAC,EAAS,CAAC;AAgBd,QAdI,EAAS,WAAW,IAEpB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAa,WAAU;YACrB,kBAAC,GAAD;GACE,MAAM,kBAAC,GAAD;IAAY,WAAU;IAAS,eAAY;IAAS,CAAA;GAC1D,OAAM;GACN,aAAY;GACZ,CAAA;EACU,CAAA,EACT,CAAA,GAKT,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,WAAU;YAAtB,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GAAW,WAAU;aAArB,CACE,kBAAC,GAAD;IAAY,WAAU;IAAU,eAAY;IAAS,CAAA,EAAA,4BAE3C;MACZ,kBAAC,GAAD,EAAA,UAAiB,2EAEC,CAAA,CACd,EAAA,CAAA,EACN,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD;IAAO,SAAQ;IAAqB,WAAU;cAAU;IAEhD,CAAA,EACR,kBAAC,GAAD;IAAQ,OAAO,KAAc;IAAI,eAAe;cAAhD,CACE,kBAAC,GAAD;KAAe,IAAG;eAChB,kBAAC,GAAD,EAAa,aAAY,kBAAmB,CAAA;KAC9B,CAAA,EAChB,kBAAC,GAAD,EAAA,UACG,EAAS,KAAK,MACb,kBAAC,GAAD;KAAuB,OAAO,EAAE;eAC7B,EAAE;KACQ,EAFI,EAAE,GAEN,CACb,EACY,CAAA,CACT;MACL;KACK;KACb,kBAAC,GAAD;EAAa,WAAU;YACpB,KACC,kBAAC,GAAD,EAAgB,CAAA,GACd,KACF,kBAAC,GAAD,EAAY,eAAe,IAAS,EAAI,CAAA,GACtC,EAAS,WAAW,IACtB,kBAAC,GAAD;GACE,MAAM,kBAAC,GAAD;IAAY,WAAU;IAAS,eAAY;IAAS,CAAA;GAC1D,OAAM;GACN,aAAY;GACZ,CAAA,GAEF,kBAAA,IAAA,EAAA,UAAA,CACE,kBAAC,IAAD,EACE,OAAO;GACL;IACE,OAAO;IACP,OAAO,EAAY,GAAiB,GAAS;IAC7C,OAAO,KAAmB,IAAI,aAAa;IAC3C,WAAW,KAAmB,IAAI,aAAa;IAChD;GACD;IAAE,OAAO;IAAY,OAAO,OAAO,EAAS,OAAO;IAAE;GACrD;IAAE,OAAO;IAAW,OAAO,OAAO,EAAQ;IAAE;GAC5C;IAAE,OAAO;IAAU,OAAO,OAAO,EAAO;IAAE;GAC3C,EACD,CAAA,EAEF,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAO,KAAK,CAAC,GAAY,OAAU;IAClC,IAAM,IAAa,EAAK,QAAQ,GAAK,MAAM,IAAM,EAAW,EAAE,EAAE,EAAE;AAClE,WACE,kBAAC,OAAD;KAAsB,WAAU;eAAhC,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,MAAD;QAAI,WAAU;kBACX,EAAS,EAAW;QAClB,CAAA,EACL,kBAAC,GAAD;QAAO,SAAQ;kBAAa,EAAK;QAAe,CAAA,CAC5C;UACN,kBAAC,IAAD;OAAU,OAAO;OAAsB;OAAY,CAAA,CAC/C;SACN,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA;OACE,kBAAC,GAAD,EAAA,UAAW,UAAkB,CAAA;OAC7B,kBAAC,GAAD;QAAW,WAAU;kBAAa;QAAoB,CAAA;OACtD,kBAAC,GAAD;QAAW,WAAU;kBAAa;QAAsB,CAAA;OACxD,kBAAC,GAAD;QAAW,WAAU;kBAAa;QAAwB,CAAA;OAC1D,kBAAC,GAAD;QAAW,WAAU;kBAAa;QAAsB,CAAA;OAC/C,EAAA,CAAA,EACC,CAAA,EACd,kBAAC,IAAD,EAAA,UACG,EAAK,KAAK,MACT,kBAAC,GAAD,EAAA,UAAA;OACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAiC,EAAE;QAAW,CAAA,EAC1D,EAAE,OACD,kBAAC,KAAD;QAAG,WAAU;kBAA+B,EAAE;QAAS,CAAA,GACrD,KACM,EAAA,CAAA;OACZ,kBAAC,GAAD;QAAW,WAAU;kBAClB,EAAE;QACO,CAAA;OACZ,kBAAC,GAAD;QAAW,WAAU;kBAClB,EAAY,EAAE,WAAW,EAAE,SAAS;QAC3B,CAAA;OACZ,kBAAC,GAAD;QAAW,WAAU;kBAClB,EAAY,EAAE,aAAa,EAAE,SAAS;QAC7B,CAAA;OACZ,kBAAC,GAAD;QAAW,WAAU;kBACnB,kBAAC,IAAD;SAAU,OAAO,EAAW,EAAE;SAAE,UAAU,EAAE;SAAY,CAAA;QAC9C,CAAA;OACH,EAAA,EAnBI,EAAE,GAmBN,CACX,EACQ,CAAA,CACN,EAAA,CAAA;MACJ,CAAA,CACF;OA/CI,EA+CJ;KAER;GACE,CAAA,CACL,EAAA,CAAA;EAEO,CAAA,CACT,EAAA,CAAA;;AAKX,SAAS,GAAS,EAAE,UAAO,eAAiD;CAC1E,IAAM,IAAW,IAAQ,GAEnB,IAAO,IAAW,KADP,IAAQ,IACyB,KAAiB,IAC7D,IAAO,IAAW,MAAM;AAC9B,QACE,kBAAC,QAAD;EACE,WAAW,4DAA4D,EAAe,EAAM;YAD9F;GAGG,MAAU,IAAqD,OAAjD,kBAAC,GAAD;IAAM,WAAU;IAAS,eAAY;IAAS,CAAA;GAC5D;GACA,EAAY,GAAO,EAAS;GACxB;;;AAQX,SAAS,GAAc,EACrB,YACA,kBACA,kBACA,cACA,gBAOC;CACD,IAAM,IAAW,EAAQ,WAAW,cAAc,EAAQ,WAAW;AACrE,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,KAAD;OAAG,WAAU;iBAAiC,EAAQ;OAAU,CAAA;MAChE,kBAAC,GAAD;OAAO,SAAS,EAAmB,EAAQ,SAAS;iBAAG,EAAS,EAAQ,SAAS;OAAS,CAAA;MAC1F,kBAAC,GAAD;OAAO,SAAS,EAAmB,EAAQ,OAAO;iBAAG,EAAS,EAAQ,OAAO;OAAS,CAAA;MAClF;;IACL,EAAQ,SAAS,kBAAC,KAAD;KAAG,WAAU;eAA+B,EAAQ;KAAW,CAAA,GAAG;IACpF,kBAAC,KAAD;KAAG,WAAU;eAAb;MACG,EAAS,EAAQ,YAAY;MAAC;MAAa,EAAW,EAAQ,UAAU;MACvE;;IACA;MACL,IACC,kBAAC,QAAD;GAAM,WAAU;aAA+B;GAAa,CAAA,GAE5D,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GAAqB,SAAA;aACnB,kBAAC,GAAD;IACE,SAAQ;IACR,MAAK;IACL,cAAY,eAAe,EAAQ;IACnC,UAAU;cAEV,kBAAC,IAAD;KAAgB,WAAU;KAAS,eAAY;KAAS,CAAA;IACjD,CAAA;GACW,CAAA,EACtB,kBAAC,GAAD;GAAqB,OAAM;aAA3B;IACE,kBAAC,GAAD,EAAA,UAAmB,WAA2B,CAAA;IAC9C,kBAAC,GAAD,EAAyB,CAAA;IACxB,EAAQ,WAAW,SAClB,kBAAC,GAAD;KAAkB,SAAS;eAA3B,CACE,kBAAC,IAAD;MAAO,WAAU;MAAS,eAAY;MAAS,CAAA,EAAA,cAE9B;SACjB;IACJ,kBAAC,GAAD;KAAkB,SAAS;eAA3B,CACE,kBAAC,GAAD;MAAa,WAAU;MAAS,eAAY;MAAS,CAAA,EAAA,UAEpC;;IACnB,kBAAC,GAAD;KAAkB,WAAU;KAAyB,SAAS;eAA9D,CACE,kBAAC,IAAD;MAAG,WAAU;MAAS,eAAY;MAAS,CAAA,EAAA,UAE1B;;IACC;KACT,EAAA,CAAA,CAEb"}
|
|
1
|
+
{"version":3,"file":"TaxPage.js","names":[],"sources":["../../../src/brainyrich/pages/TaxPage.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport {\n ArrowDownRight,\n ArrowUpRight,\n Check,\n Coins,\n Landmark,\n MoreHorizontal,\n Receipt,\n ReceiptText,\n Scissors,\n ShieldCheck,\n Sparkles,\n TrendingDown,\n TrendingUp,\n X,\n} from 'lucide-react';\nimport {\n usePagedInsights,\n useAllTransactions,\n useAllAccounts,\n usePortfolios,\n useHoldings,\n useCreateInsight,\n useAcknowledgeInsight,\n useDismissInsight,\n useResolveInsight,\n} from '../hooks/useBrainyRichApi';\nimport {\n LoadMore,\n ConfirmDialog,\n DonutChart,\n MiniAreaChart,\n ProgressRing,\n LifecycleStepper,\n StatTile,\n GlassCard,\n FadeIn,\n type DonutDatum,\n type VizTone,\n} from '../components';\nimport type {\n BraAccount,\n BraAssetClass,\n BraHolding,\n BraInsight,\n BraInsightSeverity,\n} from '../types/bra';\nimport {\n SectionShell,\n AllocationBars,\n EmptyState,\n LoadingState,\n ErrorState,\n formatMoney,\n formatDate,\n statusBadgeVariant,\n deltaToneClass,\n} from './_shared';\n\n// ============================================================================\n// Domain helpers (derived from the SDL, never fabricated data)\n// ============================================================================\n\nconst SEVERITIES: BraInsightSeverity[] = ['INFO', 'LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];\n\n/** Turn an UPPER_SNAKE enum member into a readable label. */\nfunction humanize(value: string): string {\n return value\n .toLowerCase()\n .split('_')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n}\n\n/** Unrealized P/L for a holding = server market value − cost basis. */\nfunction unrealized(h: BraHolding): number {\n return h.marketValue - h.costBasis;\n}\n\n/** Severity → semantic viz tone (color is never the only signal). */\nfunction severityTone(sev: BraInsightSeverity): VizTone {\n switch (sev) {\n case 'CRITICAL':\n return 'error';\n case 'HIGH':\n return 'warning';\n case 'MEDIUM':\n return 'info';\n case 'LOW':\n return 'teal';\n default:\n return 'neutral';\n }\n}\n\n/** A real holding sitting at an unrealized loss — a tax-loss-harvest candidate. */\ninterface HarvestCandidate {\n holding: BraHolding;\n accountId: string;\n accountName: string;\n loss: number; // negative\n}\n\n// ============================================================================\n// Page\n// ============================================================================\n\ninterface InsightFormState {\n title: string;\n detail: string;\n severity: BraInsightSeverity;\n /** Encoded as `${subjectType}:${id}` from the subject picker. */\n subject: string;\n}\n\nconst EMPTY_INSIGHT_FORM: InsightFormState = {\n title: '',\n detail: '',\n severity: 'MEDIUM',\n subject: '',\n};\n\nexport function TaxPage() {\n // Insights are a *Connection — paginate with LoadMore. Tax-opportunity\n // insights are client-filtered (the list query has no `type` argument).\n const {\n items: insights,\n hasMore: insightsHasMore,\n loadMore: loadMoreInsights,\n isLoading: insightsLoading,\n isFetchingNextPage: insightsFetchingMore,\n isError: insightsError,\n refetch: refetchInsights,\n } = usePagedInsights();\n\n // Realized activity + income aggregated over the FULL transaction set\n // (not a truncated first page) via the fetch-all helper.\n const {\n data: transactions,\n isLoading: txLoading,\n isError: txError,\n refetch: refetchTransactions,\n } = useAllTransactions();\n\n // ALL accounts (with holdings) — drives the portfolio-wide unrealized total.\n const { data: accounts, isLoading: accountsLoading } = useAllAccounts();\n const { data: portfolios } = usePortfolios();\n\n const createInsight = useCreateInsight();\n const acknowledgeInsight = useAcknowledgeInsight();\n const dismissInsight = useDismissInsight();\n const resolveInsight = useResolveInsight();\n\n const [createOpen, setCreateOpen] = useState(false);\n const [form, setForm] = useState<InsightFormState>(EMPTY_INSIGHT_FORM);\n const [formError, setFormError] = useState<string | null>(null);\n const [dismissTarget, setDismissTarget] = useState<BraInsight | null>(null);\n\n // ---- Tax-opportunity insights (client-filtered — the list hook has no type arg) ----\n const taxInsights = useMemo(\n () => insights.filter((i) => i.type === 'TAX_OPPORTUNITY'),\n [insights]\n );\n const openTax = useMemo(() => taxInsights.filter((i) => i.status === 'OPEN'), [taxInsights]);\n\n // Open-tax severity mix drives the signal donut (real counts, no fabrication).\n const severityMix = useMemo<DonutDatum[]>(() => {\n const order: BraInsightSeverity[] = ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW', 'INFO'];\n return order\n .map((sev) => ({\n label: humanize(sev),\n value: openTax.filter((i) => i.severity === sev).length,\n tone: severityTone(sev),\n }))\n .filter((d) => d.value > 0);\n }, [openTax]);\n\n // ---- Realized activity partitioned from real transactions ----\n const sells = useMemo(() => transactions.filter((t) => t.type === 'SELL'), [transactions]);\n const income = useMemo(\n () => transactions.filter((t) => t.type === 'DIVIDEND' || t.type === 'INTEREST'),\n [transactions]\n );\n const realizedProceeds = sells.reduce((sum, t) => sum + t.amount, 0);\n const investmentIncome = income.reduce((sum, t) => sum + t.amount, 0);\n const moneyCurrency = sells[0]?.currency ?? income[0]?.currency ?? 'USD';\n\n // Cumulative realized-proceeds series over trade dates (spark + area chart).\n const proceedsSeries = useMemo(() => {\n const sorted = [...sells].sort(\n (a, b) => new Date(a.tradeDate).getTime() - new Date(b.tradeDate).getTime()\n );\n return sorted.reduce<{ x: string; y: number }[]>((acc, t) => {\n const prev = acc.length > 0 ? acc[acc.length - 1].y : 0;\n acc.push({ x: formatDate(t.tradeDate), y: prev + t.amount });\n return acc;\n }, []);\n }, [sells]);\n const proceedsSpark = proceedsSeries.map((p) => p.y);\n\n // ---- Portfolio-wide unrealized P/L across EVERY account's holdings ----\n const totalUnrealizedAll = useMemo(\n () => accounts.reduce((sum, a) => sum + a.holdings.reduce((s, h) => s + unrealized(h), 0), 0),\n [accounts]\n );\n const unrealizedCurrency = accounts[0]?.currency ?? moneyCurrency;\n\n // ---- Tax-loss-harvest candidates: every holding at an unrealized loss ----\n const harvestCandidates = useMemo<HarvestCandidate[]>(\n () =>\n accounts\n .flatMap((a) =>\n a.holdings\n .filter((h) => unrealized(h) < 0)\n .map((h) => ({\n holding: h,\n accountId: a.id,\n accountName: a.name,\n loss: unrealized(h),\n }))\n )\n .sort((a, b) => a.loss - b.loss),\n [accounts]\n );\n const harvestableLoss = harvestCandidates.reduce((sum, c) => sum + c.loss, 0);\n const harvestCurrency = harvestCandidates[0]?.holding.currency ?? unrealizedCurrency;\n\n const canCreate = accounts.length > 0 || portfolios.length > 0;\n\n function openCreate() {\n setForm(EMPTY_INSIGHT_FORM);\n setFormError(null);\n setCreateOpen(true);\n }\n\n /** Flag a rebalance/harvest proposal against the candidate's real account. */\n function startProposal(c: HarvestCandidate) {\n setForm({\n title: `Harvest ${c.holding.symbol} loss`,\n detail: `Tax-loss-harvest candidate: ${c.holding.symbol} is sitting at an unrealized loss of ${formatMoney(\n c.loss,\n c.holding.currency\n )}. Create a rebalance proposal to realize the loss while holding the target allocation.`,\n severity: 'MEDIUM',\n subject: `account:${c.accountId}`,\n });\n setFormError(null);\n setCreateOpen(true);\n }\n\n function submitCreate() {\n const title = form.title.trim();\n if (!title) {\n setFormError('A title is required.');\n return;\n }\n if (!form.subject) {\n setFormError('Select the account or portfolio this opportunity applies to.');\n return;\n }\n const [subjectType, subjectId] = form.subject.split(':');\n if (!subjectType || !subjectId) {\n setFormError('Select a valid subject.');\n return;\n }\n createInsight.mutate(\n {\n type: 'TAX_OPPORTUNITY',\n severity: form.severity,\n title,\n detail: form.detail.trim() || null,\n subjectId,\n subjectType,\n },\n {\n onSuccess: () => {\n setCreateOpen(false);\n setForm(EMPTY_INSIGHT_FORM);\n },\n onError: (err: unknown) => {\n setFormError(err instanceof Error ? err.message : 'Could not create the tax insight.');\n },\n }\n );\n }\n\n const insightPending =\n acknowledgeInsight.isPending || dismissInsight.isPending || resolveInsight.isPending;\n\n return (\n <SectionShell\n title=\"Tax Center\"\n description=\"Act on tax-opportunity insights and review unrealized and realized gains — all from your live portfolio data.\"\n badges={[`${openTax.length} open opportunit${openTax.length === 1 ? 'y' : 'ies'}`]}\n actionLabel=\"New tax insight\"\n onAction={openCreate}\n >\n {/* ---------------- Premium KPI band ---------------- */}\n <FadeIn>\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5\">\n <StatTile\n label=\"Open opportunities\"\n value={String(openTax.length)}\n icon={<Sparkles className=\"size-4\" aria-hidden=\"true\" />}\n glow\n />\n <StatTile\n label=\"Realized proceeds\"\n value={formatMoney(realizedProceeds, moneyCurrency)}\n icon={<Landmark className=\"size-4\" aria-hidden=\"true\" />}\n spark={proceedsSpark.length > 1 ? proceedsSpark : undefined}\n sparkTone=\"brand\"\n />\n <StatTile\n label=\"Investment income\"\n value={formatMoney(investmentIncome, moneyCurrency)}\n icon={<Coins className=\"size-4\" aria-hidden=\"true\" />}\n />\n <StatTile\n label=\"Harvestable loss\"\n value={accountsLoading ? '—' : formatMoney(harvestableLoss, harvestCurrency)}\n icon={<Scissors className=\"size-4\" aria-hidden=\"true\" />}\n />\n <StatTile\n label=\"Unrealized P/L\"\n value={accountsLoading ? '—' : formatMoney(totalUnrealizedAll, unrealizedCurrency)}\n deltaTone={totalUnrealizedAll >= 0 ? 'positive' : 'negative'}\n icon={\n totalUnrealizedAll >= 0 ? (\n <TrendingUp className=\"size-4\" aria-hidden=\"true\" />\n ) : (\n <TrendingDown className=\"size-4\" aria-hidden=\"true\" />\n )\n }\n />\n </div>\n </FadeIn>\n\n <Tabs defaultValue=\"opportunities\" className=\"space-y-4\">\n <TabsList className=\"grid w-full grid-cols-2 sm:grid-cols-4\">\n <TabsTrigger value=\"opportunities\">Opportunities</TabsTrigger>\n <TabsTrigger value=\"harvest\">Harvest</TabsTrigger>\n <TabsTrigger value=\"unrealized\">Unrealized</TabsTrigger>\n <TabsTrigger value=\"realized\">Realized</TabsTrigger>\n </TabsList>\n\n {/* ---------------- Tax opportunities ---------------- */}\n <TabsContent value=\"opportunities\">\n <div className=\"grid gap-4 lg:grid-cols-3\">\n <Card className=\"lg:col-span-2\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Sparkles className=\"h-5 w-5\" aria-hidden=\"true\" />\n Tax-opportunity insights\n </CardTitle>\n <CardDescription>\n Tax-loss harvesting and other tax signals detected across your accounts and\n portfolios.\n </CardDescription>\n </CardHeader>\n <CardContent>\n {insightsLoading ? (\n <LoadingState />\n ) : insightsError ? (\n <ErrorState onRetry={() => refetchInsights()} />\n ) : taxInsights.length === 0 ? (\n <EmptyState\n icon={<Receipt className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No tax opportunities yet\"\n description=\"Tax-opportunity insights appear here as the backend generates them from your holdings. You can also flag one manually.\"\n action={\n canCreate ? (\n <Button size=\"sm\" onClick={openCreate}>\n <Sparkles className=\"size-4\" aria-hidden=\"true\" />\n New tax insight\n </Button>\n ) : undefined\n }\n />\n ) : (\n <div className=\"space-y-3\">\n {taxInsights.map((insight, i) => (\n <FadeIn key={insight.id} index={i}>\n <TaxInsightRow\n insight={insight}\n actionPending={insightPending}\n onAcknowledge={() => acknowledgeInsight.mutate(insight.id)}\n onResolve={() => resolveInsight.mutate(insight.id)}\n onDismiss={() => setDismissTarget(insight)}\n />\n </FadeIn>\n ))}\n <LoadMore\n hasMore={insightsHasMore}\n onClick={loadMoreInsights}\n loading={insightsFetchingMore}\n label=\"Load more insights\"\n />\n </div>\n )}\n </CardContent>\n </Card>\n\n {/* Signal mix + TLH lifecycle */}\n <div className=\"space-y-4\">\n <GlassCard glow>\n <div className=\"space-y-1\">\n <p className=\"text-sm font-semibold text-text-primary\">Open-signal mix</p>\n <p className=\"text-xs text-text-secondary\">\n Live tax opportunities grouped by severity.\n </p>\n </div>\n <div className=\"mt-4\">\n {severityMix.length === 0 ? (\n <p className=\"py-6 text-center text-sm text-text-secondary\">\n No open opportunities.\n </p>\n ) : (\n <DonutChart\n data={severityMix}\n centerValue={String(openTax.length)}\n centerLabel=\"open\"\n valueFormatter={(v) => `${v} signal${v === 1 ? '' : 's'}`}\n />\n )}\n </div>\n </GlassCard>\n\n <GlassCard>\n <p className=\"text-sm font-semibold text-text-primary\">Harvesting workflow</p>\n <p className=\"mb-4 mt-1 text-xs text-text-secondary\">\n How a loss becomes a realized tax benefit.\n </p>\n <LifecycleStepper\n steps={['Detect', 'Review', 'Proposal', 'Execute']}\n current=\"Review\"\n />\n </GlassCard>\n </div>\n </div>\n </TabsContent>\n\n {/* ---------------- Harvest candidates ---------------- */}\n <TabsContent value=\"harvest\">\n <HarvestCandidatesTab\n candidates={harvestCandidates}\n harvestableLoss={harvestableLoss}\n currency={harvestCurrency}\n loading={accountsLoading}\n canCreate={canCreate}\n onCreateProposal={startProposal}\n />\n </TabsContent>\n\n {/* ---------------- Unrealized gains ---------------- */}\n <TabsContent value=\"unrealized\">\n <UnrealizedGainsTab accounts={accounts} />\n </TabsContent>\n\n {/* ---------------- Realized activity ---------------- */}\n <TabsContent value=\"realized\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <ReceiptText className=\"h-5 w-5\" aria-hidden=\"true\" />\n Realized activity\n </CardTitle>\n <CardDescription>\n Realized sales, dividends and interest — the taxable events recorded on your\n accounts.\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-6\">\n {txLoading ? (\n <LoadingState />\n ) : txError ? (\n <ErrorState onRetry={() => refetchTransactions()} />\n ) : sells.length === 0 && income.length === 0 ? (\n <EmptyState\n icon={<ReceiptText className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No taxable activity recorded\"\n description=\"Sales, dividends and interest show up here once transactions are recorded against your accounts.\"\n />\n ) : (\n <>\n {proceedsSeries.length > 1 ? (\n <div className=\"rounded-xl border border-border-subtle bg-bg-surface p-4\">\n <p className=\"text-sm font-semibold text-text-primary\">\n Cumulative realized proceeds\n </p>\n <p className=\"mb-3 text-xs text-text-secondary\">\n Running total of sale proceeds over trade dates.\n </p>\n <MiniAreaChart\n data={proceedsSeries}\n tone=\"brand\"\n valueFormatter={(v) => formatMoney(v, moneyCurrency)}\n />\n </div>\n ) : null}\n\n {/* Realized sales */}\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2\">\n <Landmark className=\"size-4 text-text-secondary\" aria-hidden=\"true\" />\n <h3 className=\"text-sm font-semibold text-text-primary\">Realized sales</h3>\n <Badge variant=\"secondary\">{sells.length}</Badge>\n </div>\n {sells.length === 0 ? (\n <p className=\"text-sm text-text-secondary\">No sales recorded.</p>\n ) : (\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Symbol</TableHead>\n <TableHead className=\"text-right\">Quantity</TableHead>\n <TableHead className=\"text-right\">Price</TableHead>\n <TableHead className=\"text-right\">Proceeds</TableHead>\n <TableHead>Trade date</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {sells.map((t) => (\n <TableRow key={t.id}>\n <TableCell className=\"font-medium text-text-primary\">\n {t.symbol ?? '—'}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {t.quantity}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {formatMoney(t.price, t.currency)}\n </TableCell>\n <TableCell className=\"text-right font-medium text-text-primary\">\n {formatMoney(t.amount, t.currency)}\n </TableCell>\n <TableCell className=\"text-text-secondary\">\n {formatDate(t.tradeDate)}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n\n {/* Investment income */}\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2\">\n <Coins className=\"size-4 text-text-secondary\" aria-hidden=\"true\" />\n <h3 className=\"text-sm font-semibold text-text-primary\">\n Dividends & interest\n </h3>\n <Badge variant=\"secondary\">{income.length}</Badge>\n </div>\n {income.length === 0 ? (\n <p className=\"text-sm text-text-secondary\">No income recorded.</p>\n ) : (\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Type</TableHead>\n <TableHead>Symbol</TableHead>\n <TableHead className=\"text-right\">Amount</TableHead>\n <TableHead>Trade date</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {income.map((t) => (\n <TableRow key={t.id}>\n <TableCell>\n <Badge variant=\"outline\">{humanize(t.type)}</Badge>\n </TableCell>\n <TableCell className=\"text-text-secondary\">\n {t.symbol ?? '—'}\n </TableCell>\n <TableCell className=\"text-right font-medium text-status-success-text\">\n {formatMoney(t.amount, t.currency)}\n </TableCell>\n <TableCell className=\"text-text-secondary\">\n {formatDate(t.tradeDate)}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n )}\n </div>\n </>\n )}\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n\n {/* ---------------- Create tax insight dialog ---------------- */}\n <Dialog\n open={createOpen}\n onOpenChange={(open) => {\n setCreateOpen(open);\n if (!open) setFormError(null);\n }}\n >\n <DialogContent className=\"max-h-[90vh] overflow-y-auto sm:max-w-lg\">\n <DialogHeader>\n <DialogTitle>New tax insight</DialogTitle>\n <DialogDescription>\n Flag a tax opportunity against one of your accounts or portfolios.\n </DialogDescription>\n </DialogHeader>\n\n {!canCreate ? (\n <EmptyState\n title=\"No subject available\"\n description=\"Create an account or portfolio first, then flag a tax opportunity against it.\"\n />\n ) : (\n <div className=\"space-y-4 py-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-title\">Title</Label>\n <Input\n id=\"tax-title\"\n value={form.title}\n onChange={(e) => setForm((f) => ({ ...f, title: e.target.value }))}\n placeholder=\"e.g. Harvest losses in tech holdings\"\n />\n </div>\n\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-severity\">Severity</Label>\n <Select\n value={form.severity}\n onValueChange={(v) =>\n setForm((f) => ({ ...f, severity: v as BraInsightSeverity }))\n }\n >\n <SelectTrigger id=\"tax-severity\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {SEVERITIES.map((s) => (\n <SelectItem key={s} value={s}>\n {humanize(s)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-subject\">Applies to</Label>\n <Select\n value={form.subject}\n onValueChange={(v) => setForm((f) => ({ ...f, subject: v }))}\n >\n <SelectTrigger id=\"tax-subject\">\n <SelectValue placeholder=\"Select subject\" />\n </SelectTrigger>\n <SelectContent>\n {portfolios.map((p) => (\n <SelectItem key={`portfolio:${p.id}`} value={`portfolio:${p.id}`}>\n Portfolio · {p.name}\n </SelectItem>\n ))}\n {accounts.map((a) => (\n <SelectItem key={`account:${a.id}`} value={`account:${a.id}`}>\n Account · {a.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"tax-detail\">Detail</Label>\n <Textarea\n id=\"tax-detail\"\n value={form.detail}\n onChange={(e) => setForm((f) => ({ ...f, detail: e.target.value }))}\n rows={3}\n placeholder=\"What is the opportunity and how should it be actioned?\"\n />\n </div>\n\n {formError ? (\n <p className=\"text-sm text-status-error-text\" role=\"alert\">\n {formError}\n </p>\n ) : null}\n </div>\n )}\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant=\"outline\" disabled={createInsight.isPending}>\n Cancel\n </Button>\n </DialogClose>\n <Button\n onClick={submitCreate}\n disabled={\n !canCreate || !form.title.trim() || !form.subject || createInsight.isPending\n }\n >\n {createInsight.isPending ? 'Creating…' : 'Create insight'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n\n {/* ---------------- Dismiss confirmation ---------------- */}\n <ConfirmDialog\n open={Boolean(dismissTarget)}\n onOpenChange={(open) => {\n if (!open) setDismissTarget(null);\n }}\n title=\"Dismiss tax insight?\"\n description={\n dismissTarget ? (\n <>\n “{dismissTarget.title}” will be marked as dismissed and removed from your\n open opportunities. This does not delete the underlying holdings or transactions.\n </>\n ) : undefined\n }\n confirmLabel=\"Dismiss insight\"\n pendingLabel=\"Dismissing…\"\n destructive\n pending={dismissInsight.isPending}\n onConfirm={() => {\n if (!dismissTarget) return;\n dismissInsight.mutate(dismissTarget.id, {\n onSuccess: () => setDismissTarget(null),\n });\n }}\n />\n </SectionShell>\n );\n}\n\n// ============================================================================\n// Harvest candidates tab — real holdings at an unrealized loss (TLH)\n// ============================================================================\n\nfunction HarvestCandidatesTab({\n candidates,\n harvestableLoss,\n currency,\n loading,\n canCreate,\n onCreateProposal,\n}: {\n candidates: HarvestCandidate[];\n harvestableLoss: number;\n currency: string;\n loading: boolean;\n canCreate: boolean;\n onCreateProposal: (c: HarvestCandidate) => void;\n}) {\n // Each candidate's share of the total harvestable loss (real proportion).\n const contributors = useMemo(\n () =>\n candidates.slice(0, 6).map((c) => ({\n label: c.holding.symbol,\n value: harvestableLoss === 0 ? 0 : (c.loss / harvestableLoss) * 100,\n tone: 'negative' as const,\n caption: formatMoney(c.loss, c.holding.currency),\n })),\n [candidates, harvestableLoss]\n );\n\n if (loading) {\n return (\n <Card>\n <CardContent className=\"pt-6\">\n <LoadingState />\n </CardContent>\n </Card>\n );\n }\n\n return (\n <div className=\"grid gap-4 lg:grid-cols-3\">\n <Card className=\"lg:col-span-2\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Scissors className=\"h-5 w-5\" aria-hidden=\"true\" />\n Harvest candidates\n </CardTitle>\n <CardDescription>\n Holdings sitting at an unrealized loss — sell to realize the loss and offset gains.\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {candidates.length === 0 ? (\n <EmptyState\n icon={<Scissors className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No harvest candidates\"\n description=\"Every holding is currently at or above its cost basis — there is nothing to harvest right now.\"\n />\n ) : (\n <>\n {contributors.length > 0 ? (\n <div className=\"rounded-xl border border-border-subtle bg-bg-surface p-4\">\n <p className=\"mb-3 text-xs font-medium uppercase tracking-wide text-text-secondary\">\n Loss by holding\n </p>\n <AllocationBars data={contributors} />\n </div>\n ) : null}\n\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Symbol</TableHead>\n <TableHead>Account</TableHead>\n <TableHead className=\"text-right\">Qty</TableHead>\n <TableHead className=\"text-right\">Market value</TableHead>\n <TableHead className=\"text-right\">Unrealized loss</TableHead>\n <TableHead className=\"text-right\">Action</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {candidates.map((c) => (\n <TableRow key={c.holding.id}>\n <TableCell>\n <p className=\"font-medium text-text-primary\">{c.holding.symbol}</p>\n {c.holding.name ? (\n <p className=\"text-xs text-text-secondary\">{c.holding.name}</p>\n ) : null}\n </TableCell>\n <TableCell className=\"text-text-secondary\">{c.accountName}</TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {c.holding.quantity}\n </TableCell>\n <TableCell className=\"text-right text-text-primary\">\n {formatMoney(c.holding.marketValue, c.holding.currency)}\n </TableCell>\n <TableCell className=\"text-right\">\n <GainLoss value={c.loss} currency={c.holding.currency} />\n </TableCell>\n <TableCell className=\"text-right\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canCreate}\n onClick={() => onCreateProposal(c)}\n >\n Create proposal\n </Button>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </>\n )}\n </CardContent>\n </Card>\n\n {/* Harvestable-loss hero + proposal CTA */}\n <div className=\"space-y-4\">\n <GlassCard glow>\n <p className=\"text-xs font-medium uppercase tracking-wide text-text-secondary\">\n Estimated harvestable loss\n </p>\n <p className=\"mt-1 text-3xl font-semibold text-status-error-text\">\n {formatMoney(harvestableLoss, currency)}\n </p>\n <p className=\"mt-1 text-xs text-text-secondary\">\n Across {candidates.length} holding{candidates.length === 1 ? '' : 's'} below cost basis.\n </p>\n <div className=\"mt-4\">\n <Button\n className=\"w-full\"\n disabled={!canCreate || candidates.length === 0}\n onClick={() => {\n if (candidates[0]) onCreateProposal(candidates[0]);\n }}\n >\n <Scissors className=\"size-4\" aria-hidden=\"true\" />\n Create rebalance proposal\n </Button>\n </div>\n </GlassCard>\n\n <GlassCard>\n <p className=\"text-sm font-semibold text-text-primary\">Suggested workflow</p>\n <p className=\"mb-4 mt-1 text-xs text-text-secondary\">\n Realize losses while holding your target allocation. Confirm wash-sale windows before\n executing.\n </p>\n <LifecycleStepper\n steps={['Detect', 'Review', 'Proposal', 'Execute']}\n current=\"Proposal\"\n />\n </GlassCard>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Unrealized gains tab — per-account holdings P/L (real market value − cost basis)\n// ============================================================================\n\nfunction UnrealizedGainsTab({ accounts }: { accounts: BraAccount[] }) {\n const [accountId, setAccountId] = useState<string>('');\n const selectedId = accountId || accounts[0]?.id;\n const selectedAccount = accounts.find((a) => a.id === selectedId);\n\n const { data: holdings, isLoading, isError, refetch } = useHoldings({ accountId: selectedId });\n\n const currency = selectedAccount?.currency ?? holdings[0]?.currency ?? 'USD';\n\n const totalUnrealized = holdings.reduce((sum, h) => sum + unrealized(h), 0);\n const gainers = holdings.filter((h) => unrealized(h) > 0).length;\n const losers = holdings.filter((h) => unrealized(h) < 0).length;\n\n // Group holdings by asset class with subtotals (grouped, colored by gain/loss).\n const groups = useMemo(() => {\n const map = new Map<BraAssetClass, BraHolding[]>();\n for (const h of holdings) {\n const arr = map.get(h.assetClass) ?? [];\n arr.push(h);\n map.set(h.assetClass, arr);\n }\n return Array.from(map.entries());\n }, [holdings]);\n\n // Market-value allocation by asset class for the donut (real values).\n const allocation = useMemo<DonutDatum[]>(\n () =>\n groups\n .map(([assetClass, rows]) => ({\n label: humanize(assetClass),\n value: rows.reduce((sum, h) => sum + h.marketValue, 0),\n }))\n .filter((d) => d.value > 0),\n [groups]\n );\n const totalMarketValue = allocation.reduce((sum, d) => sum + d.value, 0);\n\n if (accounts.length === 0) {\n return (\n <Card>\n <CardContent className=\"pt-6\">\n <EmptyState\n icon={<TrendingUp className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No accounts yet\"\n description=\"Add an account with holdings to see unrealized gains and losses.\"\n />\n </CardContent>\n </Card>\n );\n }\n\n return (\n <Card>\n <CardHeader className=\"flex flex-col gap-4 md:flex-row md:items-start md:justify-between\">\n <div>\n <CardTitle className=\"flex items-center gap-2\">\n <TrendingUp className=\"h-5 w-5\" aria-hidden=\"true\" />\n Unrealized gains & losses\n </CardTitle>\n <CardDescription>\n Market value minus cost basis for each holding in the selected account.\n </CardDescription>\n </div>\n <div className=\"w-full md:w-64\">\n <Label htmlFor=\"unrealized-account\" className=\"sr-only\">\n Account\n </Label>\n <Select value={selectedId ?? ''} onValueChange={setAccountId}>\n <SelectTrigger id=\"unrealized-account\">\n <SelectValue placeholder=\"Select account\" />\n </SelectTrigger>\n <SelectContent>\n {accounts.map((a) => (\n <SelectItem key={a.id} value={a.id}>\n {a.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {isLoading ? (\n <LoadingState />\n ) : isError ? (\n <ErrorState onRetry={() => refetch()} />\n ) : holdings.length === 0 ? (\n <EmptyState\n icon={<TrendingUp className=\"size-6\" aria-hidden=\"true\" />}\n title=\"No holdings in this account\"\n description=\"Unrealized gains appear once this account has holdings with a cost basis.\"\n />\n ) : (\n <>\n <div className=\"grid gap-4 lg:grid-cols-3\">\n <div className=\"grid grid-cols-2 gap-3 lg:col-span-2\">\n <StatTile\n label=\"Unrealized P/L\"\n value={formatMoney(totalUnrealized, currency)}\n deltaTone={totalUnrealized >= 0 ? 'positive' : 'negative'}\n icon={\n totalUnrealized >= 0 ? (\n <TrendingUp className=\"size-4\" aria-hidden=\"true\" />\n ) : (\n <TrendingDown className=\"size-4\" aria-hidden=\"true\" />\n )\n }\n />\n <StatTile label=\"Holdings\" value={String(holdings.length)} />\n <StatTile\n label=\"Gainers\"\n value={String(gainers)}\n icon={<ArrowUpRight className=\"size-4\" aria-hidden=\"true\" />}\n />\n <StatTile\n label=\"Losers\"\n value={String(losers)}\n icon={<ArrowDownRight className=\"size-4\" aria-hidden=\"true\" />}\n />\n </div>\n <div className=\"rounded-xl border border-border-subtle bg-bg-surface p-4\">\n <p className=\"mb-2 text-xs font-medium uppercase tracking-wide text-text-secondary\">\n Allocation by asset class\n </p>\n <DonutChart\n data={allocation}\n legend={false}\n height={180}\n centerValue={formatMoney(totalMarketValue, currency)}\n centerLabel=\"market value\"\n valueFormatter={(v) => formatMoney(v, currency)}\n />\n </div>\n </div>\n\n <div className=\"space-y-6\">\n {groups.map(([assetClass, rows]) => {\n const groupTotal = rows.reduce((sum, h) => sum + unrealized(h), 0);\n return (\n <div key={assetClass} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <h3 className=\"text-sm font-semibold text-text-primary\">\n {humanize(assetClass)}\n </h3>\n <Badge variant=\"secondary\">{rows.length}</Badge>\n </div>\n <GainLoss value={groupTotal} currency={currency} />\n </div>\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Symbol</TableHead>\n <TableHead className=\"text-right\">Quantity</TableHead>\n <TableHead className=\"text-right\">Cost basis</TableHead>\n <TableHead className=\"text-right\">Market value</TableHead>\n <TableHead className=\"text-right\">Unrealized</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {rows.map((h) => (\n <TableRow key={h.id}>\n <TableCell>\n <p className=\"font-medium text-text-primary\">{h.symbol}</p>\n {h.name ? (\n <p className=\"text-xs text-text-secondary\">{h.name}</p>\n ) : null}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {h.quantity}\n </TableCell>\n <TableCell className=\"text-right text-text-secondary\">\n {formatMoney(h.costBasis, h.currency)}\n </TableCell>\n <TableCell className=\"text-right text-text-primary\">\n {formatMoney(h.marketValue, h.currency)}\n </TableCell>\n <TableCell className=\"text-right\">\n <GainLoss value={unrealized(h)} currency={h.currency} />\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n );\n })}\n </div>\n </>\n )}\n </CardContent>\n </Card>\n );\n}\n\n/** Signed money with an arrow icon + semantic color (color is never the only signal). */\nfunction GainLoss({ value, currency }: { value: number; currency: string }) {\n const positive = value > 0;\n const negative = value < 0;\n const Icon = positive ? ArrowUpRight : negative ? ArrowDownRight : TrendingDown;\n const sign = positive ? '+' : '';\n return (\n <span\n className={`inline-flex items-center justify-end gap-1 font-semibold ${deltaToneClass(value)}`}\n >\n {value !== 0 ? <Icon className=\"size-4\" aria-hidden=\"true\" /> : null}\n {sign}\n {formatMoney(value, currency)}\n </span>\n );\n}\n\n// ============================================================================\n// Tax-insight row (acknowledge / resolve / dismiss)\n// ============================================================================\n\nfunction TaxInsightRow({\n insight,\n actionPending,\n onAcknowledge,\n onResolve,\n onDismiss,\n}: {\n insight: BraInsight;\n actionPending: boolean;\n onAcknowledge: () => void;\n onResolve: () => void;\n onDismiss: () => void;\n}) {\n const terminal = insight.status === 'RESOLVED' || insight.status === 'DISMISSED';\n return (\n <div className=\"flex items-start justify-between gap-4 rounded-lg border border-border-subtle bg-bg-surface p-4 transition-shadow motion-safe:hover:shadow-[var(--shadow-pop-hover,var(--shadow-elevation-2))]\">\n <div className=\"min-w-0 space-y-1\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <p className=\"font-medium text-text-primary\">{insight.title}</p>\n <Badge variant={statusBadgeVariant(insight.severity)}>{humanize(insight.severity)}</Badge>\n <Badge variant={statusBadgeVariant(insight.status)}>{humanize(insight.status)}</Badge>\n </div>\n {insight.detail ? <p className=\"text-sm text-text-secondary\">{insight.detail}</p> : null}\n <p className=\"text-xs text-text-muted\">\n {humanize(insight.subjectType)} · Detected {formatDate(insight.createdAt)}\n </p>\n </div>\n {terminal ? (\n <span className=\"mt-1 text-xs text-text-muted\">Closed</span>\n ) : (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={`Actions for ${insight.title}`}\n disabled={actionPending}\n >\n <MoreHorizontal className=\"size-4\" aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuLabel>Actions</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {insight.status === 'OPEN' ? (\n <DropdownMenuItem onClick={onAcknowledge}>\n <Check className=\"size-4\" aria-hidden=\"true\" />\n Acknowledge\n </DropdownMenuItem>\n ) : null}\n <DropdownMenuItem onClick={onResolve}>\n <ShieldCheck className=\"size-4\" aria-hidden=\"true\" />\n Resolve\n </DropdownMenuItem>\n <DropdownMenuItem className=\"text-status-error-text\" onClick={onDismiss}>\n <X className=\"size-4\" aria-hidden=\"true\" />\n Dismiss\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { motion as e } from "../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";
|
|
2
|
+
import { useReducedMotion as t } from "../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js";
|
|
3
|
+
import { Inbox as n, RefreshCw as r, TriangleAlert as i } from "lucide-react";
|
|
4
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as s, Button as c, Skeleton as l } from "@burdenoff/fe-libs/ui";
|
|
4
6
|
//#region src/brainyrich/pages/_shared.tsx
|
|
5
|
-
function
|
|
7
|
+
function u(e, t = "USD") {
|
|
6
8
|
return Number.isFinite(e) ? new Intl.NumberFormat("en-US", {
|
|
7
9
|
style: "currency",
|
|
8
10
|
currency: t,
|
|
9
11
|
maximumFractionDigits: 0
|
|
10
12
|
}).format(e) : "—";
|
|
11
13
|
}
|
|
12
|
-
function
|
|
14
|
+
function d(e, t) {
|
|
15
|
+
return Number.isFinite(e) ? new Intl.NumberFormat("en-US", {
|
|
16
|
+
notation: "compact",
|
|
17
|
+
maximumFractionDigits: 1,
|
|
18
|
+
...t ? {
|
|
19
|
+
style: "currency",
|
|
20
|
+
currency: t
|
|
21
|
+
} : {}
|
|
22
|
+
}).format(e) : "—";
|
|
23
|
+
}
|
|
24
|
+
function f(e, t = 1) {
|
|
13
25
|
return e == null || !Number.isFinite(e) ? "—" : `${e.toFixed(t)}%`;
|
|
14
26
|
}
|
|
15
|
-
function
|
|
27
|
+
function p(e) {
|
|
16
28
|
if (!e) return "—";
|
|
17
29
|
let t = new Date(e);
|
|
18
30
|
return Number.isNaN(t.getTime()) ? "—" : new Intl.DateTimeFormat("en-US", {
|
|
@@ -21,7 +33,7 @@ function h(e) {
|
|
|
21
33
|
day: "numeric"
|
|
22
34
|
}).format(t);
|
|
23
35
|
}
|
|
24
|
-
function
|
|
36
|
+
function m(e) {
|
|
25
37
|
let t = e.toUpperCase();
|
|
26
38
|
return [
|
|
27
39
|
"ACTIVE",
|
|
@@ -50,29 +62,29 @@ function g(e) {
|
|
|
50
62
|
"LOW"
|
|
51
63
|
].includes(t) ? "secondary" : "outline";
|
|
52
64
|
}
|
|
53
|
-
function
|
|
65
|
+
function h(e) {
|
|
54
66
|
return e > 0 ? "text-status-success-text" : e < 0 ? "text-status-error-text" : "text-text-secondary";
|
|
55
67
|
}
|
|
56
|
-
function
|
|
57
|
-
return /* @__PURE__ */
|
|
68
|
+
function g({ title: e, description: t, actionLabel: n, onAction: r, actions: i, badges: l = [], children: u }) {
|
|
69
|
+
return /* @__PURE__ */ o("div", {
|
|
58
70
|
className: "space-y-6 p-6",
|
|
59
|
-
children: [/* @__PURE__ */
|
|
71
|
+
children: [/* @__PURE__ */ o("div", {
|
|
60
72
|
className: "flex flex-col gap-4 md:flex-row md:items-start md:justify-between",
|
|
61
|
-
children: [/* @__PURE__ */
|
|
73
|
+
children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
62
74
|
className: "text-2xl font-semibold text-text-primary",
|
|
63
75
|
children: e
|
|
64
|
-
}), /* @__PURE__ */
|
|
76
|
+
}), /* @__PURE__ */ a("p", {
|
|
65
77
|
className: "text-sm text-text-secondary",
|
|
66
78
|
children: t
|
|
67
|
-
})] }), /* @__PURE__ */
|
|
79
|
+
})] }), /* @__PURE__ */ o("div", {
|
|
68
80
|
className: "flex items-center gap-2",
|
|
69
81
|
children: [
|
|
70
|
-
|
|
82
|
+
l.map((e) => /* @__PURE__ */ a(s, {
|
|
71
83
|
variant: "secondary",
|
|
72
84
|
children: e
|
|
73
85
|
}, e)),
|
|
74
86
|
i,
|
|
75
|
-
n ? /* @__PURE__ */
|
|
87
|
+
n ? /* @__PURE__ */ a(c, {
|
|
76
88
|
size: "sm",
|
|
77
89
|
onClick: r,
|
|
78
90
|
children: n
|
|
@@ -82,155 +94,123 @@ function v({ title: e, description: t, actionLabel: n, onAction: r, actions: i,
|
|
|
82
94
|
}), u]
|
|
83
95
|
});
|
|
84
96
|
}
|
|
85
|
-
|
|
86
|
-
return /* @__PURE__ */ o("div", {
|
|
87
|
-
className: "grid gap-4 md:grid-cols-2 xl:grid-cols-4",
|
|
88
|
-
children: e.map((e) => /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
|
|
89
|
-
className: "space-y-1 p-4",
|
|
90
|
-
children: [
|
|
91
|
-
/* @__PURE__ */ o("p", {
|
|
92
|
-
className: "text-xs text-text-secondary",
|
|
93
|
-
children: e.label
|
|
94
|
-
}),
|
|
95
|
-
/* @__PURE__ */ o("p", {
|
|
96
|
-
className: "text-2xl font-semibold text-text-primary",
|
|
97
|
-
children: e.value
|
|
98
|
-
}),
|
|
99
|
-
e.delta === void 0 ? e.trend ? /* @__PURE__ */ o("p", {
|
|
100
|
-
className: e.deltaTone === "positive" ? "text-xs text-status-success-text" : e.deltaTone === "negative" ? "text-xs text-status-error-text" : "text-xs text-text-secondary",
|
|
101
|
-
children: e.trend
|
|
102
|
-
}) : null : /* @__PURE__ */ o(b, { value: e.delta })
|
|
103
|
-
]
|
|
104
|
-
}) }, e.label))
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
function b({ value: n, suffix: i = "%", className: a = "" }) {
|
|
108
|
-
let c = n > 0, l = n < 0, u = c ? t : l ? e : r, d = c ? "text-status-success-text" : l ? "text-status-error-text" : "text-text-secondary", f = c ? "+" : "";
|
|
109
|
-
return /* @__PURE__ */ s("span", {
|
|
110
|
-
className: `inline-flex items-center gap-1 text-xs font-medium ${d} ${a}`,
|
|
111
|
-
children: [
|
|
112
|
-
/* @__PURE__ */ o(u, {
|
|
113
|
-
className: "size-3.5",
|
|
114
|
-
"aria-hidden": "true"
|
|
115
|
-
}),
|
|
116
|
-
f,
|
|
117
|
-
Number.isFinite(n) ? n.toFixed(1) : "—",
|
|
118
|
-
i
|
|
119
|
-
]
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
var x = {
|
|
97
|
+
var _ = {
|
|
123
98
|
default: "bg-primary",
|
|
124
99
|
positive: "bg-status-success-bg",
|
|
125
100
|
negative: "bg-status-error-bg",
|
|
126
101
|
warning: "bg-status-warning-bg",
|
|
127
102
|
accent: "bg-accent-teal"
|
|
128
103
|
};
|
|
129
|
-
function
|
|
130
|
-
let t =
|
|
131
|
-
return
|
|
104
|
+
function v({ data: n }) {
|
|
105
|
+
let r = t(), i = n.filter((e) => Number.isFinite(e.value));
|
|
106
|
+
return i.length === 0 ? /* @__PURE__ */ a("p", {
|
|
132
107
|
className: "text-sm text-text-secondary",
|
|
133
108
|
children: "No allocation data."
|
|
134
|
-
}) : /* @__PURE__ */
|
|
135
|
-
className: "space-y-3",
|
|
136
|
-
children:
|
|
137
|
-
let
|
|
138
|
-
return /* @__PURE__ */
|
|
139
|
-
className: "space-y-1",
|
|
140
|
-
children: [/* @__PURE__ */
|
|
109
|
+
}) : /* @__PURE__ */ a("div", {
|
|
110
|
+
className: "space-y-3.5",
|
|
111
|
+
children: i.map((t) => {
|
|
112
|
+
let n = Math.max(0, Math.min(100, t.value));
|
|
113
|
+
return /* @__PURE__ */ o("div", {
|
|
114
|
+
className: "space-y-1.5",
|
|
115
|
+
children: [/* @__PURE__ */ o("div", {
|
|
141
116
|
className: "flex items-center justify-between text-xs",
|
|
142
|
-
children: [/* @__PURE__ */
|
|
143
|
-
className: "text-text-primary",
|
|
144
|
-
children:
|
|
145
|
-
}), /* @__PURE__ */
|
|
146
|
-
className: "text-text-secondary",
|
|
147
|
-
children:
|
|
117
|
+
children: [/* @__PURE__ */ a("span", {
|
|
118
|
+
className: "font-medium text-text-primary",
|
|
119
|
+
children: t.label
|
|
120
|
+
}), /* @__PURE__ */ a("span", {
|
|
121
|
+
className: "tabular-nums text-text-secondary",
|
|
122
|
+
children: t.caption ?? f(t.value)
|
|
148
123
|
})]
|
|
149
|
-
}), /* @__PURE__ */
|
|
150
|
-
className: "h-2 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
124
|
+
}), /* @__PURE__ */ a("div", {
|
|
125
|
+
className: "h-2.5 w-full overflow-hidden rounded-full bg-bg-sunken",
|
|
151
126
|
role: "progressbar",
|
|
152
|
-
"aria-valuenow": Math.round(
|
|
127
|
+
"aria-valuenow": Math.round(n),
|
|
153
128
|
"aria-valuemin": 0,
|
|
154
129
|
"aria-valuemax": 100,
|
|
155
|
-
"aria-label":
|
|
156
|
-
children: /* @__PURE__ */
|
|
157
|
-
className: `h-full rounded-full ${
|
|
158
|
-
|
|
130
|
+
"aria-label": t.label,
|
|
131
|
+
children: /* @__PURE__ */ a(e.div, {
|
|
132
|
+
className: `h-full rounded-full ${_[t.tone ?? "default"]}`,
|
|
133
|
+
initial: r ? !1 : { width: 0 },
|
|
134
|
+
animate: { width: `${n}%` },
|
|
135
|
+
transition: {
|
|
136
|
+
duration: .4,
|
|
137
|
+
ease: "easeOut"
|
|
138
|
+
}
|
|
159
139
|
})
|
|
160
140
|
})]
|
|
161
|
-
},
|
|
141
|
+
}, t.label);
|
|
162
142
|
})
|
|
163
143
|
});
|
|
164
144
|
}
|
|
165
|
-
function
|
|
166
|
-
return /* @__PURE__ */
|
|
145
|
+
function y({ icon: e, title: t, description: r, action: i }) {
|
|
146
|
+
return /* @__PURE__ */ o("div", {
|
|
167
147
|
className: "flex flex-col items-center justify-center rounded-lg border border-dashed border-border-subtle bg-bg-surface px-6 py-12 text-center",
|
|
168
148
|
children: [
|
|
169
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ a("div", {
|
|
170
150
|
className: "mb-4 flex size-12 items-center justify-center rounded-full bg-bg-sunken text-text-secondary",
|
|
171
|
-
children: e ?? /* @__PURE__ */
|
|
151
|
+
children: e ?? /* @__PURE__ */ a(n, {
|
|
172
152
|
className: "size-6",
|
|
173
153
|
"aria-hidden": "true"
|
|
174
154
|
})
|
|
175
155
|
}),
|
|
176
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ a("h3", {
|
|
177
157
|
className: "text-base font-semibold text-text-primary",
|
|
178
158
|
children: t
|
|
179
159
|
}),
|
|
180
|
-
r ? /* @__PURE__ */
|
|
160
|
+
r ? /* @__PURE__ */ a("p", {
|
|
181
161
|
className: "mt-1 max-w-md text-sm text-text-secondary",
|
|
182
162
|
children: r
|
|
183
163
|
}) : null,
|
|
184
|
-
i ? /* @__PURE__ */
|
|
164
|
+
i ? /* @__PURE__ */ a("div", {
|
|
185
165
|
className: "mt-4",
|
|
186
166
|
children: i
|
|
187
167
|
}) : null
|
|
188
168
|
]
|
|
189
169
|
});
|
|
190
170
|
}
|
|
191
|
-
function
|
|
192
|
-
return /* @__PURE__ */
|
|
171
|
+
function b({ rows: e = 4 }) {
|
|
172
|
+
return /* @__PURE__ */ a("div", {
|
|
193
173
|
className: "space-y-3",
|
|
194
174
|
"aria-busy": "true",
|
|
195
175
|
"aria-live": "polite",
|
|
196
|
-
children: Array.from({ length: e }).map((e, t) => /* @__PURE__ */
|
|
176
|
+
children: Array.from({ length: e }).map((e, t) => /* @__PURE__ */ o("div", {
|
|
197
177
|
className: "flex items-center gap-4 rounded-lg border border-border-subtle bg-bg-surface p-4",
|
|
198
178
|
children: [
|
|
199
|
-
/* @__PURE__ */
|
|
200
|
-
/* @__PURE__ */
|
|
179
|
+
/* @__PURE__ */ a(l, { className: "size-10 rounded-full" }),
|
|
180
|
+
/* @__PURE__ */ o("div", {
|
|
201
181
|
className: "flex-1 space-y-2",
|
|
202
|
-
children: [/* @__PURE__ */
|
|
182
|
+
children: [/* @__PURE__ */ a(l, { className: "h-4 w-1/3" }), /* @__PURE__ */ a(l, { className: "h-3 w-1/2" })]
|
|
203
183
|
}),
|
|
204
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ a(l, { className: "h-4 w-16" })
|
|
205
185
|
]
|
|
206
186
|
}, t))
|
|
207
187
|
});
|
|
208
188
|
}
|
|
209
|
-
function
|
|
210
|
-
return /* @__PURE__ */
|
|
189
|
+
function x({ title: e = "Something went wrong", description: t = "We could not load this data. Please try again.", onRetry: n }) {
|
|
190
|
+
return /* @__PURE__ */ o("div", {
|
|
211
191
|
className: "flex flex-col items-center justify-center rounded-lg border border-status-error-text/40 bg-status-error-bg px-6 py-12 text-center",
|
|
212
192
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
193
|
+
/* @__PURE__ */ a("div", {
|
|
214
194
|
className: "mb-4 flex size-12 items-center justify-center rounded-full bg-bg-surface text-status-error-text",
|
|
215
|
-
children: /* @__PURE__ */
|
|
195
|
+
children: /* @__PURE__ */ a(i, {
|
|
216
196
|
className: "size-6",
|
|
217
197
|
"aria-hidden": "true"
|
|
218
198
|
})
|
|
219
199
|
}),
|
|
220
|
-
/* @__PURE__ */
|
|
200
|
+
/* @__PURE__ */ a("h3", {
|
|
221
201
|
className: "text-base font-semibold text-text-primary",
|
|
222
202
|
children: e
|
|
223
203
|
}),
|
|
224
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ a("p", {
|
|
225
205
|
className: "mt-1 max-w-md text-sm text-text-secondary",
|
|
226
206
|
children: t
|
|
227
207
|
}),
|
|
228
|
-
n ? /* @__PURE__ */
|
|
208
|
+
n ? /* @__PURE__ */ o(c, {
|
|
229
209
|
variant: "outline",
|
|
230
210
|
size: "sm",
|
|
231
211
|
className: "mt-4",
|
|
232
212
|
onClick: n,
|
|
233
|
-
children: [/* @__PURE__ */
|
|
213
|
+
children: [/* @__PURE__ */ a(r, {
|
|
234
214
|
className: "size-4",
|
|
235
215
|
"aria-hidden": "true"
|
|
236
216
|
}), "Retry"]
|
|
@@ -239,6 +219,6 @@ function T({ title: e = "Something went wrong", description: t = "We could not l
|
|
|
239
219
|
});
|
|
240
220
|
}
|
|
241
221
|
//#endregion
|
|
242
|
-
export {
|
|
222
|
+
export { v as AllocationBars, y as EmptyState, x as ErrorState, b as LoadingState, g as SectionShell, h as deltaToneClass, d as formatCompact, p as formatDate, u as formatMoney, f as formatPct, m as statusBadgeVariant };
|
|
243
223
|
|
|
244
224
|
//# sourceMappingURL=_shared.js.map
|