@beweco/aurora-ui 0.1.48 → 0.1.49

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.
Files changed (30) hide show
  1. package/dist/assets/css/styles.css +1 -1
  2. package/dist/index.cjs.js +389 -2
  3. package/dist/index.esm.js +389 -4
  4. package/dist/types/components/assistant-orb/AssistantOrb.d.ts +11 -0
  5. package/dist/types/components/assistant-orb/AssistantOrb.d.ts.map +1 -0
  6. package/dist/types/components/assistant-orb/AssistantOrb.types.d.ts +30 -0
  7. package/dist/types/components/assistant-orb/AssistantOrb.types.d.ts.map +1 -0
  8. package/dist/types/components/assistant-orb/_internal/AuraGlow.d.ts +11 -0
  9. package/dist/types/components/assistant-orb/_internal/AuraGlow.d.ts.map +1 -0
  10. package/dist/types/components/assistant-orb/_internal/SpeechBubble.d.ts +12 -0
  11. package/dist/types/components/assistant-orb/_internal/SpeechBubble.d.ts.map +1 -0
  12. package/dist/types/components/assistant-orb/_internal/index.d.ts +3 -0
  13. package/dist/types/components/assistant-orb/_internal/index.d.ts.map +1 -0
  14. package/dist/types/components/assistant-orb/assistant-orb.constants.d.ts +9 -0
  15. package/dist/types/components/assistant-orb/assistant-orb.constants.d.ts.map +1 -0
  16. package/dist/types/components/assistant-orb/index.d.ts +3 -0
  17. package/dist/types/components/assistant-orb/index.d.ts.map +1 -0
  18. package/dist/types/components/two-column-layout-agent/TwoColumnLayoutAgent.d.ts +4 -0
  19. package/dist/types/components/two-column-layout-agent/TwoColumnLayoutAgent.d.ts.map +1 -0
  20. package/dist/types/components/two-column-layout-agent/TwoColumnLayoutAgent.types.d.ts +35 -0
  21. package/dist/types/components/two-column-layout-agent/TwoColumnLayoutAgent.types.d.ts.map +1 -0
  22. package/dist/types/components/two-column-layout-agent/index.d.ts +3 -0
  23. package/dist/types/components/two-column-layout-agent/index.d.ts.map +1 -0
  24. package/dist/types/hooks/index.d.ts +2 -0
  25. package/dist/types/hooks/index.d.ts.map +1 -0
  26. package/dist/types/hooks/useMediaQuery.d.ts +5 -0
  27. package/dist/types/hooks/useMediaQuery.d.ts.map +1 -0
  28. package/dist/types/index.d.ts +2 -0
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -6,7 +6,7 @@ import { Icon } from '@iconify/react';
6
6
  export { loadIcons } from '@iconify/react';
7
7
  import React, { useId, useState, useCallback, useMemo, useEffect, createContext, useContext, memo, useRef, createElement, useLayoutEffect } from 'react';
8
8
  import { ResponsiveContainer, AreaChart, CartesianGrid, XAxis, Tooltip, Area } from 'recharts';
9
- import { LazyMotion, domAnimation, m } from 'framer-motion';
9
+ import { LazyMotion, domAnimation, m, motion, AnimatePresence } from 'framer-motion';
10
10
  import { createPortal } from 'react-dom';
11
11
  import { useTheme } from '@heroui/use-theme';
12
12
 
@@ -1823,7 +1823,7 @@ KanbanColumn.displayName = "KanbanColumn";
1823
1823
  * Traducciones por defecto en español.
1824
1824
  * Se mezclan con las traducciones proporcionadas por el usuario.
1825
1825
  */
1826
- var DEFAULT_TRANSLATIONS$1 = {
1826
+ var DEFAULT_TRANSLATIONS$2 = {
1827
1827
  dropHere: "Soltar aquí",
1828
1828
  emptyMessage: "No hay elementos",
1829
1829
  };
@@ -1857,7 +1857,7 @@ var columnGapClasses = {
1857
1857
  var KanbanComponent = function (_a) {
1858
1858
  var columns = _a.columns, renderItem = _a.renderItem, onCardClick = _a.onCardClick, onItemMove = _a.onItemMove, isDraggable = _a.isDraggable, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _b = _a.columnWidth, columnWidth = _b === void 0 ? "280px" : _b, _c = _a.columnGap, columnGap = _c === void 0 ? "md" : _c, _d = _a.horizontalScroll, horizontalScroll = _d === void 0 ? true : _d, columnMaxHeight = _a.columnMaxHeight, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.translations, translations = _e === void 0 ? {} : _e, onLoadMore = _a.onLoadMore;
1859
1859
  // Mezclar traducciones del usuario con las por defecto
1860
- var t = __assign(__assign({}, DEFAULT_TRANSLATIONS$1), translations);
1860
+ var t = __assign(__assign({}, DEFAULT_TRANSLATIONS$2), translations);
1861
1861
  // Determinar si drag está habilitado
1862
1862
  var dragEnabled = isDraggable !== null && isDraggable !== void 0 ? isDraggable : !!onItemMove;
1863
1863
  // Estado del drag actual
@@ -3683,6 +3683,391 @@ function GlobalToast() {
3683
3683
  return (jsx("div", { className: "fixed top-4 right-4 z-[2000] w-full max-w-sm", children: jsx(Alert, { hideIconWrapper: true, color: toast.color, variant: "flat", title: toast.title, description: toast.description, isClosable: true, onClose: hideToast }) }));
3684
3684
  }
3685
3685
 
3686
+ /**
3687
+ * Subscribe to a CSS media query and return its current match state.
3688
+ */
3689
+ var useMediaQuery = function (query, initialValue) {
3690
+ if (initialValue === void 0) { initialValue = true; }
3691
+ var _a = useState(function () {
3692
+ if (typeof window === "undefined") {
3693
+ return initialValue;
3694
+ }
3695
+ return window.matchMedia(query).matches;
3696
+ }), matches = _a[0], setMatches = _a[1];
3697
+ useEffect(function () {
3698
+ if (typeof window === "undefined") {
3699
+ return;
3700
+ }
3701
+ var mediaQuery = window.matchMedia(query);
3702
+ var onMediaQueryChange = function (event) {
3703
+ setMatches(event.matches);
3704
+ };
3705
+ setMatches(mediaQuery.matches);
3706
+ if (typeof mediaQuery.addEventListener === "function") {
3707
+ mediaQuery.addEventListener("change", onMediaQueryChange);
3708
+ return function () { return mediaQuery.removeEventListener("change", onMediaQueryChange); };
3709
+ }
3710
+ var legacyMediaQuery = mediaQuery;
3711
+ legacyMediaQuery.addListener(onMediaQueryChange);
3712
+ return function () { return legacyMediaQuery.removeListener(onMediaQueryChange); };
3713
+ }, [query]);
3714
+ return matches;
3715
+ };
3716
+
3717
+ /** Default typing speed in milliseconds per character */
3718
+ var DEFAULT_TYPING_SPEED_MS = 20;
3719
+ /** Default system primary color token for the aura glow */
3720
+ var DEFAULT_AURA_COLOR = "hsl(var(--heroui-primary))";
3721
+ /** Default max width for the speech bubble */
3722
+ var DEFAULT_MAX_WIDTH = 420;
3723
+ /** Orb dimensions by size variant */
3724
+ var ORB_SIZES = {
3725
+ sm: 96,
3726
+ md: 128,
3727
+ lg: 160,
3728
+ xl: 192,
3729
+ };
3730
+
3731
+ var isHexColor = function (value) {
3732
+ var normalized = value.startsWith("#") ? value.slice(1) : value;
3733
+ return /^[0-9A-Fa-f]{3}$|^[0-9A-Fa-f]{6}$/.test(normalized);
3734
+ };
3735
+ var hexToRgba = function (hexColor, alpha) {
3736
+ var hex = hexColor.replace("#", "");
3737
+ var parsed = hex.length === 3
3738
+ ? hex
3739
+ .split("")
3740
+ .map(function (c) { return c + c; })
3741
+ .join("")
3742
+ : hex;
3743
+ var r = parseInt(parsed.slice(0, 2), 16);
3744
+ var g = parseInt(parsed.slice(2, 4), 16);
3745
+ var b = parseInt(parsed.slice(4, 6), 16);
3746
+ return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(alpha, ")");
3747
+ };
3748
+ var colorWithAlpha = function (color, alpha) {
3749
+ if (isHexColor(color)) {
3750
+ var normalized = color.startsWith("#") ? color : "#".concat(color);
3751
+ return hexToRgba(normalized, alpha);
3752
+ }
3753
+ return "color-mix(in srgb, ".concat(color, " ").concat(Math.round(alpha * 100), "%, transparent)");
3754
+ };
3755
+ var STATE_ANIMATIONS = {
3756
+ excited: {
3757
+ scale: [1, 1.05, 1],
3758
+ rotate: [0, 5, -5, 0],
3759
+ },
3760
+ thinking: {
3761
+ scale: [1, 0.95, 1],
3762
+ rotate: [0, 360],
3763
+ transition: {
3764
+ rotate: { duration: 8, repeat: Infinity, ease: "linear" },
3765
+ },
3766
+ },
3767
+ happy: {
3768
+ y: [0, -10, 0],
3769
+ },
3770
+ concerned: {
3771
+ scale: [1, 0.9, 1],
3772
+ opacity: [1, 0.8, 1],
3773
+ },
3774
+ learning: {
3775
+ scale: [1, 1.1, 1],
3776
+ rotate: [0, -5, 5, 0],
3777
+ },
3778
+ surprised: {
3779
+ scale: [1, 1.2, 1],
3780
+ y: [0, -15, 0],
3781
+ },
3782
+ inspired: {
3783
+ scale: [1, 1.15, 1],
3784
+ },
3785
+ };
3786
+ var AuraGlow = function (_a) {
3787
+ var _b;
3788
+ var _c = _a.state, state = _c === void 0 ? "happy" : _c, _d = _a.size, size = _d === void 0 ? "xl" : _d, _e = _a.animated, animated = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? "" : _f;
3789
+ var auraBaseColor = DEFAULT_AURA_COLOR;
3790
+ var auraStrong = colorWithAlpha(auraBaseColor, 0.6);
3791
+ var auraMedium = colorWithAlpha(auraBaseColor, 0.45);
3792
+ var auraSoft = colorWithAlpha(auraBaseColor, 0.25);
3793
+ var auraGlow = colorWithAlpha(auraBaseColor, 0.8);
3794
+ var animations = animated && STATE_ANIMATIONS[state] ? STATE_ANIMATIONS[state] : {};
3795
+ var dimension = (_b = ORB_SIZES[size]) !== null && _b !== void 0 ? _b : ORB_SIZES.xl;
3796
+ return (jsxs(motion.div, { animate: animated
3797
+ ? __assign({ y: [0, -12, 0] }, animations) : {}, transition: {
3798
+ y: { duration: 5, repeat: Infinity, ease: "easeInOut" },
3799
+ default: { duration: 0.5 },
3800
+ }, className: className, style: {
3801
+ width: "".concat(dimension, "px"),
3802
+ height: "".concat(dimension, "px"),
3803
+ position: "relative",
3804
+ background: "none",
3805
+ border: "none",
3806
+ boxShadow: "none",
3807
+ outline: "none",
3808
+ }, children: [jsx(motion.div, { animate: {
3809
+ opacity: [0.2, 0.5, 0.2],
3810
+ scale: [1, 1.3, 1],
3811
+ rotate: [0, 180, 360],
3812
+ }, transition: {
3813
+ duration: 8,
3814
+ repeat: Infinity,
3815
+ ease: "easeInOut",
3816
+ }, className: "pointer-events-none", style: {
3817
+ position: "absolute",
3818
+ top: "-50%",
3819
+ left: "-50%",
3820
+ right: "-50%",
3821
+ bottom: "-50%",
3822
+ background: "radial-gradient(circle, ".concat(auraMedium, " 0%, ").concat(auraSoft, " 50%, transparent 70%)"),
3823
+ filter: "blur(40px)",
3824
+ borderRadius: "9999px",
3825
+ border: "none",
3826
+ boxShadow: "none",
3827
+ } }), jsx(motion.div, { animate: {
3828
+ opacity: [0.4, 0.7, 0.4],
3829
+ scale: [1.1, 1.25, 1.1],
3830
+ rotate: [360, 0],
3831
+ }, transition: {
3832
+ duration: 10,
3833
+ repeat: Infinity,
3834
+ ease: "linear",
3835
+ }, className: "pointer-events-none", style: {
3836
+ position: "absolute",
3837
+ top: "-30%",
3838
+ left: "-30%",
3839
+ right: "-30%",
3840
+ bottom: "-30%",
3841
+ background: "radial-gradient(ellipse, ".concat(auraStrong, " 0%, ").concat(auraMedium, " 40%, ").concat(auraSoft, " 70%, transparent 100%)"),
3842
+ filter: "blur(30px)",
3843
+ borderRadius: "9999px",
3844
+ border: "none",
3845
+ boxShadow: "none",
3846
+ } }), jsx(motion.div, { animate: {
3847
+ opacity: [0.6, 1, 0.6],
3848
+ scale: [0.9, 1.1, 0.9],
3849
+ }, transition: {
3850
+ duration: 3,
3851
+ repeat: Infinity,
3852
+ ease: "easeInOut",
3853
+ }, className: "pointer-events-none", style: {
3854
+ position: "absolute",
3855
+ top: 0,
3856
+ left: 0,
3857
+ right: 0,
3858
+ bottom: 0,
3859
+ background: "radial-gradient(circle, ".concat(auraGlow, " 0%, ").concat(auraStrong, " 30%, ").concat(auraSoft, " 60%, transparent 100%)"),
3860
+ filter: "blur(20px)",
3861
+ borderRadius: "9999px",
3862
+ border: "none",
3863
+ boxShadow: "none",
3864
+ } }), jsx(motion.div, { animate: {
3865
+ opacity: [0.3, 0.8, 0.3],
3866
+ rotate: [0, -360],
3867
+ scale: [1, 1.15, 1],
3868
+ }, transition: {
3869
+ duration: 12,
3870
+ repeat: Infinity,
3871
+ ease: "linear",
3872
+ }, className: "pointer-events-none", style: {
3873
+ position: "absolute",
3874
+ top: "10%",
3875
+ left: "10%",
3876
+ right: "10%",
3877
+ bottom: "10%",
3878
+ background: "conic-gradient(from 0deg, transparent 0deg, ".concat(auraMedium, " 90deg, ").concat(auraSoft, " 180deg, ").concat(auraMedium, " 270deg, transparent 360deg)"),
3879
+ filter: "blur(15px)",
3880
+ mixBlendMode: "screen",
3881
+ borderRadius: "9999px",
3882
+ border: "none",
3883
+ boxShadow: "none",
3884
+ } }), __spreadArray([], Array(3), true).map(function (_, i) { return (jsx(motion.div, { animate: {
3885
+ opacity: [0, 0.6, 0],
3886
+ scale: [0.5, 1.5, 0.5],
3887
+ x: [0, (i % 2 === 0 ? 1 : -1) * (15 + i * 5)],
3888
+ y: [0, (i % 2 === 0 ? -1 : 1) * (15 + i * 5)],
3889
+ }, transition: {
3890
+ duration: 4 + i,
3891
+ repeat: Infinity,
3892
+ delay: i * 1.5,
3893
+ ease: "easeInOut",
3894
+ }, className: "absolute w-4 h-4 rounded-full", style: {
3895
+ top: "".concat(30 + i * 20, "%"),
3896
+ left: "".concat(30 + i * 20, "%"),
3897
+ background: i % 2 === 0
3898
+ ? "radial-gradient(circle, ".concat(auraGlow, ", transparent)")
3899
+ : "radial-gradient(circle, ".concat(auraMedium, ", transparent)"),
3900
+ filter: "blur(8px)",
3901
+ } }, i)); })] }));
3902
+ };
3903
+
3904
+ var toGraphemes = function (value) {
3905
+ var IntlWithSegmenter = Intl;
3906
+ if (typeof Intl !== "undefined" && IntlWithSegmenter.Segmenter) {
3907
+ var seg = new IntlWithSegmenter.Segmenter("es", { granularity: "grapheme" });
3908
+ return Array.from(seg.segment(value), function (s) { return s.segment; });
3909
+ }
3910
+ return Array.from(value); // fallback
3911
+ };
3912
+ var SpeechBubble = memo(function (_a) {
3913
+ var text = _a.text, _b = _a.typing, typing = _b === void 0 ? false : _b, _c = _a.typingSpeed, typingSpeed = _c === void 0 ? DEFAULT_TYPING_SPEED_MS : _c, _d = _a.maxWidth, maxWidth = _d === void 0 ? 700 : _d, _e = _a.className, className = _e === void 0 ? "" : _e, onTypingComplete = _a.onTypingComplete;
3914
+ var _f = useState(typing ? "" : typeof text === "string" ? text : ""), displayedText = _f[0], setDisplayedText = _f[1];
3915
+ var _g = useState(typing), isTyping = _g[0], setIsTyping = _g[1];
3916
+ var onTypingCompleteRef = useRef(onTypingComplete);
3917
+ var intervalIdRef = useRef(null);
3918
+ useEffect(function () {
3919
+ onTypingCompleteRef.current = onTypingComplete;
3920
+ }, [onTypingComplete]);
3921
+ useEffect(function () {
3922
+ var currentText = typeof text === "string" ? toGraphemes(text) : [''];
3923
+ if (!typing) {
3924
+ setDisplayedText(currentText.join(''));
3925
+ setIsTyping(false);
3926
+ return;
3927
+ }
3928
+ if (intervalIdRef.current) {
3929
+ return;
3930
+ }
3931
+ setIsTyping(true);
3932
+ setDisplayedText("");
3933
+ var cancelled = false;
3934
+ var charIndex = 0;
3935
+ intervalIdRef.current = setInterval(function () {
3936
+ var _a, _b;
3937
+ if (cancelled)
3938
+ return;
3939
+ if (charIndex >= currentText.length) {
3940
+ clearInterval((_a = intervalIdRef.current) !== null && _a !== void 0 ? _a : undefined);
3941
+ intervalIdRef.current = null;
3942
+ setIsTyping(false);
3943
+ (_b = onTypingCompleteRef.current) === null || _b === void 0 ? void 0 : _b.call(onTypingCompleteRef);
3944
+ return;
3945
+ }
3946
+ var char = currentText[charIndex];
3947
+ charIndex++;
3948
+ setDisplayedText(function (prev) { return prev + char; });
3949
+ }, typingSpeed);
3950
+ return function () {
3951
+ var _a;
3952
+ if (intervalIdRef.current) {
3953
+ clearInterval((_a = intervalIdRef.current) !== null && _a !== void 0 ? _a : undefined);
3954
+ intervalIdRef.current = null;
3955
+ }
3956
+ cancelled = true;
3957
+ };
3958
+ }, []);
3959
+ return (jsxs(motion.div, { initial: { opacity: 0, y: 12, scale: 0.97 }, animate: { opacity: 1, y: 0, scale: 1 }, transition: {
3960
+ duration: 0.6,
3961
+ ease: [0.4, 0.0, 0.2, 1],
3962
+ }, className: "relative ".concat(className), style: { maxWidth: "".concat(maxWidth, "px") }, children: [jsx("div", { className: "bg-white/85 dark:bg-gray-900/85 backdrop-blur-xl rounded-3xl px-8 py-6 shadow-[0_8px_30px_rgba(0,0,0,0.04)] dark:shadow-[0_8px_30px_rgba(0,0,0,0.3)] border border-white/50 dark:border-gray-800/50", children: jsxs("p", { className: "text-lg text-gray-800 dark:text-gray-200 leading-relaxed font-sans font-normal", children: [displayedText, isTyping && (jsx(motion.span, { animate: { opacity: [0.3, 1, 0.3] }, transition: {
3963
+ duration: 1.2,
3964
+ repeat: Infinity,
3965
+ ease: "easeInOut",
3966
+ }, className: "inline-block ml-1.5 w-0.5 h-5 bg-blue-500/50 align-middle rounded-full" }))] }) }), jsx("div", { className: "absolute -top-2 left-10 w-4 h-4 bg-white/85 dark:bg-gray-900/85 border-l border-t border-white/50 dark:border-gray-800/50 transform rotate-45 backdrop-blur-xl" })] }));
3967
+ });
3968
+
3969
+ /**
3970
+ * AssistantOrb
3971
+ *
3972
+ * A compound component that renders an animated aurora orb
3973
+ * with a speech bubble featuring a character-by-character typing effect.
3974
+ * Designed for AI assistant UIs with AuraUI system theming.
3975
+ */
3976
+ var AssistantOrb = function (_a) {
3977
+ var _b;
3978
+ var text = _a.text, _c = _a.state, state = _c === void 0 ? "happy" : _c, _d = _a.size, size = _d === void 0 ? "xl" : _d, _e = _a.animated, animated = _e === void 0 ? true : _e, _f = _a.typing, typing = _f === void 0 ? false : _f, _g = _a.typingSpeed, typingSpeed = _g === void 0 ? DEFAULT_TYPING_SPEED_MS : _g, hint = _a.hint, _h = _a.maxWidth, maxWidth = _h === void 0 ? DEFAULT_MAX_WIDTH : _h, onTypingComplete = _a.onTypingComplete, translations = _a.translations, _j = _a.className, className = _j === void 0 ? "" : _j;
3979
+ var hintText = (_b = translations === null || translations === void 0 ? void 0 : translations.hint) !== null && _b !== void 0 ? _b : hint;
3980
+ var handleTypingComplete = useCallback(function () {
3981
+ onTypingComplete === null || onTypingComplete === void 0 ? void 0 : onTypingComplete();
3982
+ }, []);
3983
+ return (jsxs("div", { className: "relative flex flex-col items-center gap-6 max-w-md ".concat(className), children: [jsx(AuraGlow, { state: state, size: size, animated: animated }), jsx(SpeechBubble, { text: text, typing: typing, typingSpeed: typingSpeed, maxWidth: maxWidth, onTypingComplete: handleTypingComplete }), hintText && (jsx(motion.p, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: {
3984
+ delay: 0.6,
3985
+ duration: 0.6,
3986
+ ease: [0.4, 0.0, 0.2, 1],
3987
+ }, className: "text-sm text-gray-500 dark:text-gray-400 text-center mt-4 font-normal", children: hintText }))] }));
3988
+ };
3989
+
3990
+ var TYPING_SPEED_MS = 15;
3991
+ var DESKTOP_BREAKPOINT_PX = 1024;
3992
+ var WELCOME_GRADIENTS = [
3993
+ "linear-gradient(135deg, rgba(59, 130, 246, 0.03) 0%, rgba(147, 51, 234, 0.02) 50%, rgba(168, 85, 247, 0.02) 100%)",
3994
+ "linear-gradient(135deg, rgba(147, 51, 234, 0.03) 0%, rgba(168, 85, 247, 0.02) 50%, rgba(59, 130, 246, 0.02) 100%)",
3995
+ "linear-gradient(135deg, rgba(168, 85, 247, 0.03) 0%, rgba(59, 130, 246, 0.02) 50%, rgba(147, 51, 234, 0.02) 100%)",
3996
+ ];
3997
+ var AURORAS = [
3998
+ {
3999
+ size: "w-[700px] h-[700px]",
4000
+ color: "from-blue-400/4 to-transparent",
4001
+ position: { top: "10%", left: "10%" },
4002
+ duration: 45,
4003
+ },
4004
+ {
4005
+ size: "w-[600px] h-[600px]",
4006
+ color: "from-purple-400/4 to-transparent",
4007
+ position: { bottom: "15%", right: "15%" },
4008
+ duration: 50,
4009
+ },
4010
+ {
4011
+ size: "w-[500px] h-[500px]",
4012
+ color: "from-violet-400/3 to-transparent",
4013
+ position: { top: "50%", left: "50%" },
4014
+ duration: 55,
4015
+ },
4016
+ ];
4017
+ var DEFAULT_TRANSLATIONS$1 = {
4018
+ backButtonLabel: "Atras",
4019
+ };
4020
+ var BackButton = function (_a) {
4021
+ var onPress = _a.onPress, _b = _a.visible, visible = _b === void 0 ? true : _b, _c = _a.className, className = _c === void 0 ? "" : _c, label = _a.label;
4022
+ if (!visible) {
4023
+ return null;
4024
+ }
4025
+ return (jsx("div", { className: "fixed top-6 left-6 z-30 ".concat(className), children: jsx(Button$1, { variant: "light", size: "sm", onPress: onPress, className: "bg-transparent hover:bg-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 px-3", startContent: jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M15 19l-7-7 7-7" }) }), children: label }) }));
4026
+ };
4027
+ var Aurora = function (_a) {
4028
+ var size = _a.size, color = _a.color, position = _a.position, duration = _a.duration, _b = _a.delay, delay = _b === void 0 ? 0 : _b;
4029
+ return (jsx(motion.div, { className: "absolute ".concat(size, " rounded-full bg-gradient-radial ").concat(color, " blur-3xl"), style: position, animate: {
4030
+ x: [0, 40, -20, 0],
4031
+ y: [0, -30, 20, 0],
4032
+ scale: [1, 1.1, 0.95, 1],
4033
+ opacity: [0.3, 0.5, 0.35, 0.3],
4034
+ }, transition: {
4035
+ duration: duration,
4036
+ repeat: Number.POSITIVE_INFINITY,
4037
+ ease: [0.4, 0.0, 0.2, 1],
4038
+ delay: delay,
4039
+ } }));
4040
+ };
4041
+ var AnimatedBackground = function (_a) {
4042
+ var _b = _a.className, className = _b === void 0 ? "" : _b;
4043
+ return (jsxs("div", { className: "absolute inset-0 z-0 overflow-hidden pointer-events-none ".concat(className), children: [jsx("div", { className: "absolute inset-0 bg-gradient-to-br from-gray-50 via-white to-gray-50 dark:from-gray-950 dark:via-gray-900 dark:to-gray-950" }), jsx(motion.div, { className: "absolute inset-0", animate: { background: WELCOME_GRADIENTS }, transition: {
4044
+ duration: 30,
4045
+ repeat: Number.POSITIVE_INFINITY,
4046
+ ease: "linear",
4047
+ } }), AURORAS.map(function (aurora, index) { return (jsx(Aurora, __assign({}, aurora, { delay: index * 5 }), aurora.duration)); })] }));
4048
+ };
4049
+ var TwoColumnLayoutAgent = function (_a) {
4050
+ var _b = _a.assistantState, assistantState = _b === void 0 ? "happy" : _b, assistantSpeech = _a.assistantSpeech, _c = _a.assistantSize, assistantSize = _c === void 0 ? "xl" : _c, assistantHint = _a.assistantHint, _d = _a.enableSequence, enableSequence = _d === void 0 ? true : _d, children = _a.children, _e = _a.showBackButton, showBackButton = _e === void 0 ? false : _e, onBack = _a.onBack, _f = _a.translations, translations = _f === void 0 ? {} : _f, _g = _a.className, className = _g === void 0 ? "" : _g;
4051
+ var _h = useState(!enableSequence), showRightContent = _h[0], setShowRightContent = _h[1];
4052
+ var isDesktop = useMediaQuery("(min-width: ".concat(DESKTOP_BREAKPOINT_PX, "px)"));
4053
+ var t = useMemo(function () { return (__assign(__assign({}, DEFAULT_TRANSLATIONS$1), translations)); }, [translations]);
4054
+ var handleBackPress = onBack !== null && onBack !== void 0 ? onBack : (function () { return undefined; });
4055
+ useEffect(function () {
4056
+ if (enableSequence && !showRightContent) {
4057
+ var safetyTimeout_1 = setTimeout(function () {
4058
+ setShowRightContent(true);
4059
+ }, 10000);
4060
+ return function () { return clearTimeout(safetyTimeout_1); };
4061
+ }
4062
+ }, [enableSequence, showRightContent]);
4063
+ var handleTypingComplete = function () {
4064
+ setTimeout(function () {
4065
+ setShowRightContent(true);
4066
+ }, 100);
4067
+ };
4068
+ return (jsxs("div", { className: "min-h-screen relative isolate overflow-hidden ".concat(className), children: [jsx(BackButton, { onPress: handleBackPress, visible: showBackButton, label: t.backButtonLabel }), jsx(AnimatedBackground, {}), jsx("div", { className: "relative z-10 flex flex-col h-screen", children: jsxs("div", { className: "flex-grow flex overflow-hidden", children: [jsx(motion.div, { initial: { opacity: 0, x: -30 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.8, ease: [0.4, 0.0, 0.2, 1] }, className: "".concat(isDesktop ? "flex w-2/5" : "hidden", " flex-col items-center justify-center p-8 xl:p-12"), children: jsx(AssistantOrb, { text: assistantSpeech, state: assistantState, size: assistantSize, animated: true, typing: enableSequence, typingSpeed: TYPING_SPEED_MS, hint: assistantHint, onTypingComplete: handleTypingComplete }) }), jsxs("div", { className: "".concat(isDesktop ? "w-3/5 p-12" : "w-full p-6 sm:p-8", " flex flex-col items-center justify-center overflow-y-auto"), children: [!isDesktop && (jsx("div", { className: "mb-8 flex flex-col items-center gap-4", children: jsx(AssistantOrb, { text: assistantSpeech, state: assistantState, size: "lg", animated: true, typing: false }) })), jsx(AnimatePresence, { mode: "wait", children: showRightContent && (jsx(motion.div, { initial: { opacity: 0, x: 30 }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: -30 }, transition: { duration: 0.6, ease: [0.4, 0.0, 0.2, 1] }, className: "w-full max-w-2xl", children: children }, "right-content")) })] })] }) })] }));
4069
+ };
4070
+
3686
4071
  // Traducciones por defecto en español
3687
4072
  var defaultTranslations$1 = {
3688
4073
  uploadText: "Da clic y selecciona tus archivos",
@@ -5230,4 +5615,4 @@ var NavigationLoadingProvider = function (_a) {
5230
5615
  return (jsxs(NavigationLoadingContext.Provider, { value: value, children: [children, jsx(NavigationLoadingOverlay, { isVisible: isVisible })] }));
5231
5616
  };
5232
5617
 
5233
- export { AccordionList, AddHolidayForm, AnalyticsCard, AuraAutocomplete, AuraTable, AuraToastProvider, BreadcrumbsComponent, Button, Card, Chip, ColorPicker, ColorSelector, ContentCarousel, DEFAULT_PREDEFINED_COLORS, DatePicker, DateRangePicker, DateSelector, DrawerFilters, GlobalToast, H1, H2, H3, H4, HeaderComponent, HolidayType, IconComponent, ImagePreview, Input, Kanban, KanbanCard, KanbanColumn, MenuComponent, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, MultiStepWizard, NavigationLoadingContext, NavigationLoadingOverlay, NavigationLoadingProvider, P, Pagination, Phone, PromotionalBanner, RangeFilter, RowSteps, ScheduleRow, SearchInput, Select, SocialMediaBar, SocialMediaCarousel, SocialMediaPreview, StepIndicator, Switch as SwitchComponent, TagsFilter, Textarea, ThemeContext, ThemePicker, ThemeProvider, TimeInput as TimeInputComponent, ToastContext, UploadFile, VerticalSteps, Wizard, WizardNavigation, WizardSidebar, defaultTranslations$4 as defaultTranslations, sizeMap, themeColors, useAuraToast, useNavigationLoading, useThemeContext };
5618
+ export { AccordionList, AddHolidayForm, AnalyticsCard, AuraAutocomplete, AuraTable, AuraToastProvider, BreadcrumbsComponent, Button, Card, Chip, ColorPicker, ColorSelector, ContentCarousel, DEFAULT_PREDEFINED_COLORS, DatePicker, DateRangePicker, DateSelector, DrawerFilters, GlobalToast, H1, H2, H3, H4, HeaderComponent, HolidayType, IconComponent, ImagePreview, Input, Kanban, KanbanCard, KanbanColumn, MenuComponent, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, MultiStepWizard, NavigationLoadingContext, NavigationLoadingOverlay, NavigationLoadingProvider, P, Pagination, Phone, PromotionalBanner, RangeFilter, RowSteps, ScheduleRow, SearchInput, Select, SocialMediaBar, SocialMediaCarousel, SocialMediaPreview, StepIndicator, Switch as SwitchComponent, TagsFilter, Textarea, ThemeContext, ThemePicker, ThemeProvider, TimeInput as TimeInputComponent, ToastContext, TwoColumnLayoutAgent, UploadFile, VerticalSteps, Wizard, WizardNavigation, WizardSidebar, defaultTranslations$4 as defaultTranslations, sizeMap, themeColors, useAuraToast, useMediaQuery, useNavigationLoading, useThemeContext };
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { AssistantOrbProps } from "./AssistantOrb.types";
3
+ /**
4
+ * AssistantOrb
5
+ *
6
+ * A compound component that renders an animated aurora orb
7
+ * with a speech bubble featuring a character-by-character typing effect.
8
+ * Designed for AI assistant UIs with AuraUI system theming.
9
+ */
10
+ export declare const AssistantOrb: React.FC<AssistantOrbProps>;
11
+ //# sourceMappingURL=AssistantOrb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantOrb.d.ts","sourceRoot":"","sources":["../../../../src/components/assistant-orb/AssistantOrb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAO9D;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwDpD,CAAC"}
@@ -0,0 +1,30 @@
1
+ export type AssistantOrbState = "excited" | "thinking" | "happy" | "concerned" | "learning" | "surprised" | "inspired";
2
+ export type AssistantOrbSize = "sm" | "md" | "lg" | "xl";
3
+ export interface AssistantOrbTranslations {
4
+ hint?: string;
5
+ }
6
+ export interface AssistantOrbProps {
7
+ /** Text to display in the speech bubble */
8
+ text: string;
9
+ /** Emotional state controlling orb animation */
10
+ state?: AssistantOrbState;
11
+ /** Size of the orb */
12
+ size?: AssistantOrbSize;
13
+ /** Enable orb animations */
14
+ animated?: boolean;
15
+ /** Enable character-by-character typing effect in the bubble */
16
+ typing?: boolean;
17
+ /** Typing speed in ms per character */
18
+ typingSpeed?: number;
19
+ /** Hint text below the speech bubble */
20
+ hint?: string;
21
+ /** Max width of the speech bubble in px */
22
+ maxWidth?: number;
23
+ /** Callback when typing effect completes */
24
+ onTypingComplete?: () => void;
25
+ /** i18n translations */
26
+ translations?: AssistantOrbTranslations;
27
+ /** Additional CSS classes */
28
+ className?: string;
29
+ }
30
+ //# sourceMappingURL=AssistantOrb.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantOrb.types.d.ts","sourceRoot":"","sources":["../../../../src/components/assistant-orb/AssistantOrb.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAC1B,SAAS,GACT,UAAU,GACV,OAAO,GACP,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IACjC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,sBAAsB;IACtB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,wBAAwB;IACxB,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { AssistantOrbState, AssistantOrbSize } from "../AssistantOrb.types";
3
+ interface AuraGlowProps {
4
+ state?: AssistantOrbState;
5
+ size?: AssistantOrbSize;
6
+ animated?: boolean;
7
+ className?: string;
8
+ }
9
+ export declare const AuraGlow: React.FC<AuraGlowProps>;
10
+ export {};
11
+ //# sourceMappingURL=AuraGlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuraGlow.d.ts","sourceRoot":"","sources":["../../../../../src/components/assistant-orb/_internal/AuraGlow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,UAAU,aAAa;IACtB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AA+DD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmL5C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ interface SpeechBubbleProps {
3
+ text: string;
4
+ typing?: boolean;
5
+ typingSpeed?: number;
6
+ maxWidth?: number;
7
+ className?: string;
8
+ onTypingComplete?: () => void;
9
+ }
10
+ export declare const SpeechBubble: React.FC<SpeechBubbleProps>;
11
+ export {};
12
+ //# sourceMappingURL=SpeechBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeechBubble.d.ts","sourceRoot":"","sources":["../../../../../src/components/assistant-orb/_internal/SpeechBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAIjE,UAAU,iBAAiB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAgBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiGnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { AuraGlow } from "./AuraGlow";
2
+ export { SpeechBubble } from "./SpeechBubble";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/assistant-orb/_internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Default typing speed in milliseconds per character */
2
+ export declare const DEFAULT_TYPING_SPEED_MS = 20;
3
+ /** Default system primary color token for the aura glow */
4
+ export declare const DEFAULT_AURA_COLOR = "hsl(var(--heroui-primary))";
5
+ /** Default max width for the speech bubble */
6
+ export declare const DEFAULT_MAX_WIDTH = 420;
7
+ /** Orb dimensions by size variant */
8
+ export declare const ORB_SIZES: Record<string, number>;
9
+ //# sourceMappingURL=assistant-orb.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-orb.constants.d.ts","sourceRoot":"","sources":["../../../../src/components/assistant-orb/assistant-orb.constants.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAE/D,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,qCAAqC;AACrC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { AssistantOrb } from "./AssistantOrb";
2
+ export type { AssistantOrbProps, AssistantOrbTranslations, AssistantOrbState, AssistantOrbSize, } from "./AssistantOrb.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/assistant-orb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACX,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type React from "react";
2
+ import type { TwoColumnLayoutAgentProps } from "./TwoColumnLayoutAgent.types";
3
+ export declare const TwoColumnLayoutAgent: React.FC<TwoColumnLayoutAgentProps>;
4
+ //# sourceMappingURL=TwoColumnLayoutAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwoColumnLayoutAgent.d.ts","sourceRoot":"","sources":["../../../../src/components/two-column-layout-agent/TwoColumnLayoutAgent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACX,yBAAyB,EAEzB,MAAM,8BAA8B,CAAC;AAiItC,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsGpE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { ReactNode } from "react";
2
+ import type { AssistantOrbSize, AssistantOrbState } from "../assistant-orb";
3
+ /**
4
+ * Traducciones disponibles para el componente.
5
+ */
6
+ export type TwoColumnLayoutAgentTranslations = {
7
+ /** Texto del botón de regreso */
8
+ backButtonLabel?: string;
9
+ };
10
+ export interface TwoColumnLayoutAgentProps {
11
+ /** Assistant emotional state */
12
+ assistantState?: AssistantOrbState;
13
+ /** Text for the speech bubble */
14
+ assistantSpeech: string;
15
+ /** Assistant orb size */
16
+ assistantSize?: AssistantOrbSize;
17
+ /** Hint text below the speech bubble */
18
+ assistantHint?: string;
19
+ /** Enable typing -> content sequence */
20
+ enableSequence?: boolean;
21
+ /** Right-side content */
22
+ children: ReactNode;
23
+ /** Show back button */
24
+ showBackButton?: boolean;
25
+ /** Back button handler */
26
+ onBack?: () => void;
27
+ /**
28
+ * Traducciones i18n del componente.
29
+ * Si no se proporciona, usa traducciones por defecto en espanol.
30
+ */
31
+ translations?: TwoColumnLayoutAgentTranslations;
32
+ /** Additional CSS classes */
33
+ className?: string;
34
+ }
35
+ //# sourceMappingURL=TwoColumnLayoutAgent.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwoColumnLayoutAgent.types.d.ts","sourceRoot":"","sources":["../../../../src/components/two-column-layout-agent/TwoColumnLayoutAgent.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC9C,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACzC,gCAAgC;IAChC,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yBAAyB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,uBAAuB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,gCAAgC,CAAC;IAChD,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ export { TwoColumnLayoutAgent } from "./TwoColumnLayoutAgent";
2
+ export type { TwoColumnLayoutAgentProps, TwoColumnLayoutAgentTranslations, } from "./TwoColumnLayoutAgent.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/two-column-layout-agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACX,yBAAyB,EACzB,gCAAgC,GAChC,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useMediaQuery } from "./useMediaQuery";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Subscribe to a CSS media query and return its current match state.
3
+ */
4
+ export declare const useMediaQuery: (query: string, initialValue?: boolean) => boolean;
5
+ //# sourceMappingURL=useMediaQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMediaQuery.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMediaQuery.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,sBAAmB,KAAG,OAkClE,CAAC"}
@@ -39,6 +39,7 @@ export * from "./components/textarea";
39
39
  export * from "./components/theme-picker";
40
40
  export * from "./components/time-input";
41
41
  export * from "./components/toast";
42
+ export * from "./components/two-column-layout-agent";
42
43
  export * from "./components/upload-file";
43
44
  export * from "./components/vertical-steps";
44
45
  export * from "./components/wizard";
@@ -69,5 +70,6 @@ export * from "./providers/navigation-loading";
69
70
  export * from "./contexts/theme";
70
71
  export * from "./contexts/toast";
71
72
  export * from "./contexts/navigation-loading";
73
+ export * from "./hooks";
72
74
  export { loadIcons } from "@iconify/react";
73
75
  //# sourceMappingURL=index.d.ts.map