@app-studio/web 0.8.91 → 0.8.92

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/components/Title/Title/Title.props.d.ts +26 -27
  2. package/dist/components/Title/Title/Title.state.d.ts +4 -118
  3. package/dist/components/Title/Title/Title.type.d.ts +1 -9
  4. package/dist/components/Title/Title/Title.view.d.ts +0 -5
  5. package/dist/components/Title/Title/TypewriterEffect.d.ts +17 -0
  6. package/dist/components/Title/examples/alternating.d.ts +1 -1
  7. package/dist/components/Title/examples/animated.d.ts +1 -1
  8. package/dist/components/Title/examples/custom.d.ts +1 -1
  9. package/dist/components/Title/examples/default.d.ts +1 -1
  10. package/dist/components/Title/examples/directAnimation.d.ts +1 -1
  11. package/dist/components/Title/examples/{gradientTest.d.ts → gradient.d.ts} +1 -1
  12. package/dist/components/Title/examples/hero.d.ts +1 -1
  13. package/dist/components/Title/examples/{highlightTest.d.ts → highlight.d.ts} +1 -1
  14. package/dist/components/Title/examples/highlightStyles.d.ts +5 -0
  15. package/dist/components/Title/examples/highlighted.d.ts +1 -1
  16. package/dist/components/Title/examples/index.d.ts +4 -2
  17. package/dist/components/Title/examples/responsive.d.ts +1 -1
  18. package/dist/components/Title/examples/typewriterHighlight.d.ts +5 -0
  19. package/dist/web.cjs.development.js +257 -371
  20. package/dist/web.cjs.development.js.map +1 -1
  21. package/dist/web.cjs.production.min.js +1 -1
  22. package/dist/web.cjs.production.min.js.map +1 -1
  23. package/dist/web.esm.js +257 -371
  24. package/dist/web.esm.js.map +1 -1
  25. package/dist/web.umd.development.js +257 -371
  26. package/dist/web.umd.development.js.map +1 -1
  27. package/dist/web.umd.production.min.js +1 -1
  28. package/dist/web.umd.production.min.js.map +1 -1
  29. package/package.json +2 -2
  30. package/dist/components/Title/examples/animationTest.d.ts +0 -5
@@ -13645,227 +13645,66 @@ var TabsComponent = _ref => {
13645
13645
  var Tabs = /*#__PURE__*/React__default.memo(TabsComponent);
13646
13646
 
13647
13647
  /**
13648
- * Custom hook for managing Title component state and animations
13648
+ * Custom hook for managing Title component state
13649
13649
  */
13650
13650
  var useTitleState = props => {
13651
13651
  var {
13652
- animation = 'none',
13653
- animationDirection = 'left',
13654
- animationDuration = '1s',
13655
- animationDelay = '0s',
13656
13652
  children,
13653
+ // Original children
13657
13654
  _isInView = false,
13658
13655
  alternateHighlightText = [],
13659
13656
  alternateAnimation = false,
13657
+ // Default to false as per prop definition
13660
13658
  alternateDuration = 3000,
13661
- highlightText
13659
+ highlightText: initialHighlightText,
13660
+ // Renamed to avoid confusion with the dynamic target
13661
+ highlightTypewriter = false,
13662
+ highlightTypewriterDuration = 1500
13662
13663
  } = props;
13663
- // State for typewriter animation
13664
- var [displayText, setDisplayText] = React.useState('');
13665
- // State for alternating highlight text
13666
- var [currentHighlightText, setCurrentHighlightText] = React.useState(highlightText);
13667
- // State for the alternating text content
13668
- var [alternatingContent, setAlternatingContent] = React.useState(children);
13664
+ // State for the final text to be displayed (could be original children or alternating text)
13665
+ var [finalDisplayedText, setFinalDisplayedText] = React.useState(children);
13666
+ // State for the text that should be actively highlighted (could be initialHighlightText or a word from alternateHighlightText)
13667
+ var [activeHighlightTarget, setActiveHighlightTarget] = React.useState(initialHighlightText);
13668
+ // We don't need state for typewriter text anymore as we're using the TypewriterEffect component
13669
13669
  // Handle alternating highlight text animation
13670
13670
  React.useEffect(() => {
13671
- // Initialize with the provided highlightText
13672
- setCurrentHighlightText(highlightText);
13673
- // If not using alternating animation or no alternateHighlightText provided, return early
13674
- if (!alternateAnimation || alternateHighlightText.length === 0 || !_isInView) {
13671
+ // If not using alternating animation or conditions not met, reset to initial/non-alternating state
13672
+ if (!alternateAnimation || alternateHighlightText.length === 0 || !_isInView || typeof children !== 'string' ||
13673
+ // Base text must be a string for replacement
13674
+ typeof initialHighlightText !== 'string' // Placeholder must be a string
13675
+ ) {
13676
+ setFinalDisplayedText(children);
13677
+ setActiveHighlightTarget(initialHighlightText);
13675
13678
  return () => {};
13676
13679
  }
13677
- // Only proceed if children is a string
13678
- if (typeof children !== 'string') {
13679
- return () => {};
13680
- }
13681
- // Set initial content with the first alternating text
13680
+ // Proceed with alternating animation
13682
13681
  var baseText = children;
13682
+ var placeholder = initialHighlightText;
13683
13683
  var currentIndex = 0;
13684
- // Function to update the content with the current alternating text
13685
- var updateContent = index => {
13686
- if (highlightText && typeof highlightText === 'string') {
13687
- // Replace the highlightText with the current alternating text
13688
- var regex = new RegExp(highlightText, 'gi');
13689
- var newContent = baseText.replace(regex, alternateHighlightText[index]);
13690
- setAlternatingContent(newContent);
13691
- }
13684
+ // Function to update the state for alternating text
13685
+ var updateAlternatingState = index => {
13686
+ var currentWordToHighlight = alternateHighlightText[index];
13687
+ // Replace the placeholder in the baseText with the current alternating word
13688
+ var regex = new RegExp(placeholder, 'gi');
13689
+ var newContent = baseText.replace(regex, currentWordToHighlight);
13690
+ setFinalDisplayedText(newContent);
13691
+ setActiveHighlightTarget(currentWordToHighlight); // Set the current word as the highlight target
13692
13692
  };
13693
- // Set initial content
13694
- updateContent(currentIndex);
13693
+ // Set initial alternating state
13694
+ updateAlternatingState(currentIndex);
13695
13695
  // Create interval to cycle through the alternateHighlightText array
13696
13696
  var interval = setInterval(() => {
13697
13697
  currentIndex = (currentIndex + 1) % alternateHighlightText.length;
13698
- updateContent(currentIndex);
13698
+ updateAlternatingState(currentIndex);
13699
13699
  }, alternateDuration);
13700
13700
  return () => clearInterval(interval);
13701
- }, [alternateAnimation, alternateHighlightText, alternateDuration, highlightText, children, _isInView]);
13702
- // Handle typewriter animation
13703
- React.useEffect(() => {
13704
- // Only start the typewriter animation when the component is in view
13705
- if (animation === 'typewriter' && typeof children === 'string' && _isInView) {
13706
- var text = children;
13707
- var currentIndex = 0;
13708
- setDisplayText('');
13709
- var interval = setInterval(() => {
13710
- if (currentIndex <= text.length) {
13711
- setDisplayText(text.substring(0, currentIndex));
13712
- currentIndex++;
13713
- } else {
13714
- clearInterval(interval);
13715
- }
13716
- }, 100);
13717
- return () => clearInterval(interval);
13718
- }
13719
- // Reset the text if not in view
13720
- if (animation === 'typewriter' && !_isInView) {
13721
- setDisplayText('');
13722
- }
13723
- return () => {};
13724
- }, [animation, children, _isInView]);
13725
- // Get animation configuration based on animation type
13726
- var getAnimation = () => {
13727
- // For typewriter animation, we handle it separately with useState and useEffect
13728
- if (animation === 'typewriter') {
13729
- return undefined;
13730
- }
13731
- switch (animation) {
13732
- case 'fadeIn':
13733
- return {
13734
- from: {
13735
- opacity: 0
13736
- },
13737
- to: {
13738
- opacity: 1
13739
- },
13740
- duration: animationDuration,
13741
- delay: animationDelay,
13742
- // iterationCount: 'infinite',
13743
- direction: 'alternate'
13744
- };
13745
- case 'slideIn':
13746
- switch (animationDirection) {
13747
- case 'left':
13748
- return {
13749
- from: {
13750
- transform: 'translateX(-100%)'
13751
- },
13752
- to: {
13753
- transform: 'translateX(0)'
13754
- },
13755
- duration: animationDuration,
13756
- delay: animationDelay,
13757
- // iterationCount: 'infinite',
13758
- direction: 'alternate'
13759
- };
13760
- case 'right':
13761
- return {
13762
- from: {
13763
- transform: 'translateX(100%)'
13764
- },
13765
- to: {
13766
- transform: 'translateX(0)'
13767
- },
13768
- duration: animationDuration,
13769
- delay: animationDelay,
13770
- // iterationCount: 'infinite',
13771
- direction: 'alternate'
13772
- };
13773
- case 'top':
13774
- return {
13775
- from: {
13776
- transform: 'translateY(-100%)'
13777
- },
13778
- to: {
13779
- transform: 'translateY(0)'
13780
- },
13781
- duration: animationDuration,
13782
- delay: animationDelay,
13783
- // iterationCount: 'infinite',
13784
- direction: 'alternate'
13785
- };
13786
- case 'bottom':
13787
- return {
13788
- from: {
13789
- transform: 'translateY(100%)'
13790
- },
13791
- to: {
13792
- transform: 'translateY(0)'
13793
- },
13794
- duration: animationDuration,
13795
- delay: animationDelay,
13796
- // iterationCount: 'infinite',
13797
- direction: 'alternate'
13798
- };
13799
- default:
13800
- return {
13801
- from: {
13802
- transform: 'translateX(-100%)'
13803
- },
13804
- to: {
13805
- transform: 'translateX(0)'
13806
- },
13807
- duration: animationDuration,
13808
- delay: animationDelay,
13809
- // iterationCount: 'infinite',
13810
- direction: 'alternate'
13811
- };
13812
- }
13813
- case 'bounce':
13814
- return {
13815
- from: {
13816
- transform: 'translateY(0)'
13817
- },
13818
- '20%': {
13819
- transform: 'translateY(-30px)'
13820
- },
13821
- '40%': {
13822
- transform: 'translateY(0)'
13823
- },
13824
- '60%': {
13825
- transform: 'translateY(-15px)'
13826
- },
13827
- '80%': {
13828
- transform: 'translateY(0)'
13829
- },
13830
- to: {
13831
- transform: 'translateY(0)'
13832
- },
13833
- duration: animationDuration,
13834
- delay: animationDelay,
13835
- iterationCount: '1'
13836
- };
13837
- case 'highlight':
13838
- return {
13839
- from: {
13840
- backgroundSize: '0 100%'
13841
- },
13842
- to: {
13843
- backgroundSize: '100% 100%'
13844
- },
13845
- duration: animationDuration,
13846
- delay: animationDelay
13847
- };
13848
- case 'reveal':
13849
- return {
13850
- from: {
13851
- clipPath: 'polygon(0 0, 0 0, 0 100%, 0% 100%)'
13852
- },
13853
- to: {
13854
- clipPath: 'polygon(0 0, 100% 0, 100% 100%, 0 100%)'
13855
- },
13856
- duration: animationDuration,
13857
- delay: animationDelay
13858
- };
13859
- case 'none':
13860
- default:
13861
- return undefined;
13862
- }
13863
- };
13701
+ }, [alternateAnimation, alternateHighlightText, alternateDuration, initialHighlightText, children, _isInView]);
13702
+ // We don't need a separate effect for typewriter animation anymore
13703
+ // as we're using the TypewriterEffect component directly in the view
13864
13704
  return {
13865
- displayText,
13866
- getAnimation,
13867
- currentHighlightText,
13868
- alternatingContent
13705
+ finalDisplayedText,
13706
+ activeHighlightTarget,
13707
+ highlightTypewriter
13869
13708
  };
13870
13709
  };
13871
13710
 
@@ -13891,8 +13730,13 @@ var LineHeights$1 = {
13891
13730
  xs: 24,
13892
13731
  sm: 28,
13893
13732
  md: 32,
13894
- lg: 64,
13895
- xl: 88
13733
+ lg: 40,
13734
+ xl: 48,
13735
+ '2xl': 56,
13736
+ '3xl': 64,
13737
+ '4xl': 72,
13738
+ '5xl': 80,
13739
+ '6xl': 88
13896
13740
  };
13897
13741
  /**
13898
13742
  * Default styles for different highlight types
@@ -13912,11 +13756,12 @@ var HighlightStyles = {
13912
13756
  }),
13913
13757
  gradient: (color, secondaryColor) => ({
13914
13758
  background: "linear-gradient(135deg, " + color + ", " + (secondaryColor || color) + ")",
13915
- webkitBackgroundClip: 'text',
13916
- webkitTextFillColor: 'transparent',
13917
13759
  backgroundClip: 'text',
13760
+ webkitBackgroundClip: 'text',
13918
13761
  color: 'transparent',
13919
- display: 'inline-block'
13762
+ webkitTextFillColor: 'transparent',
13763
+ display: 'inline-block',
13764
+ textShadow: 'none'
13920
13765
  }),
13921
13766
  outline: color => ({
13922
13767
  webkitTextStroke: "1px " + color,
@@ -13930,12 +13775,91 @@ var HighlightStyles = {
13930
13775
  })
13931
13776
  };
13932
13777
 
13933
- var _excluded$L = ["children", "highlightText", "highlightStyle", "highlightColor", "highlightSecondaryColor", "animation", "size", "centered", "views"];
13778
+ var _excluded$L = ["text", "typingSpeed", "pauseTime", "onComplete", "showCursor", "cursorColor", "textStyle", "as"];
13934
13779
  /**
13935
- * Title View Component
13936
- *
13937
- * Renders a title with optional highlighting and animations for hero sections.
13780
+ * A component that creates a typewriter effect for text
13938
13781
  */
13782
+ var TypewriterEffect = _ref => {
13783
+ var {
13784
+ text,
13785
+ typingSpeed = 50,
13786
+ pauseTime = 500,
13787
+ onComplete,
13788
+ showCursor = true,
13789
+ cursorColor = 'currentColor',
13790
+ textStyle
13791
+ } = _ref,
13792
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$L);
13793
+ // Convert text to array if it's a string
13794
+ var textArray = Array.isArray(text) ? text : [text];
13795
+ // State for the currently displayed text
13796
+ var [displayedText, setDisplayedText] = React.useState(textArray.map(() => ''));
13797
+ // State to track if typing is complete
13798
+ var [isComplete, setIsComplete] = React.useState(false);
13799
+ // State to track which text item we're currently typing
13800
+ var [currentTextIndex, setCurrentTextIndex] = React.useState(0);
13801
+ // State to track the character position within the current text
13802
+ var [charIndex, setCharIndex] = React.useState(0);
13803
+ React.useEffect(() => {
13804
+ // Reset state when text changes
13805
+ setDisplayedText(textArray.map(() => ''));
13806
+ setIsComplete(false);
13807
+ setCurrentTextIndex(0);
13808
+ setCharIndex(0);
13809
+ }, [text]);
13810
+ React.useEffect(() => {
13811
+ // If all text is typed, call onComplete and return
13812
+ if (isComplete) {
13813
+ if (onComplete) onComplete();
13814
+ return;
13815
+ }
13816
+ // Get the current text we're typing
13817
+ var currentText = textArray[currentTextIndex];
13818
+ // If we've typed all characters in the current text
13819
+ if (charIndex >= currentText.length) {
13820
+ // If we've typed all texts, we're done
13821
+ if (currentTextIndex >= textArray.length - 1) {
13822
+ setIsComplete(true);
13823
+ return;
13824
+ }
13825
+ // Otherwise, move to the next text after a pause
13826
+ var _timeout = setTimeout(() => {
13827
+ setCurrentTextIndex(prev => prev + 1);
13828
+ setCharIndex(0);
13829
+ }, pauseTime);
13830
+ return () => clearTimeout(_timeout);
13831
+ }
13832
+ // Type the next character
13833
+ var timeout = setTimeout(() => {
13834
+ setDisplayedText(prev => {
13835
+ var newText = [...prev];
13836
+ newText[currentTextIndex] = currentText.substring(0, charIndex + 1);
13837
+ return newText;
13838
+ });
13839
+ setCharIndex(prev => prev + 1);
13840
+ }, typingSpeed);
13841
+ return () => clearTimeout(timeout);
13842
+ }, [textArray, currentTextIndex, charIndex, isComplete, onComplete, pauseTime, typingSpeed]);
13843
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, displayedText.map((text, index) => (/*#__PURE__*/React__default.createElement(React__default.Fragment, {
13844
+ key: index
13845
+ }, text, showCursor && index === currentTextIndex && !isComplete && (/*#__PURE__*/React__default.createElement(appStudio.Text, {
13846
+ as: "span",
13847
+ display: "inline-block",
13848
+ width: "0.1em",
13849
+ height: "1em",
13850
+ backgroundColor: cursorColor,
13851
+ style: Object.assign({
13852
+ animation: 'blink 1s step-end infinite',
13853
+ verticalAlign: 'text-bottom',
13854
+ marginLeft: '1px'
13855
+ }, textStyle)
13856
+ }))))));
13857
+ };
13858
+
13859
+ var _excluded$M = ["children", "highlightText", "highlightStyle", "highlightColor", "highlightSecondaryColor", "size", "centered", "views", "highlightAnimate", "animate", "highlightTypewriter", "highlightTypewriterDuration"];
13860
+ function escapeRegExp(string) {
13861
+ return string.replace(/[.*+?^${}()|[\\]\\/g, '\\$&');
13862
+ }
13939
13863
  var TitleView = _ref => {
13940
13864
  var {
13941
13865
  children,
@@ -13943,150 +13867,112 @@ var TitleView = _ref => {
13943
13867
  highlightStyle = 'background',
13944
13868
  highlightColor = 'theme.primary',
13945
13869
  highlightSecondaryColor,
13946
- animation = 'none',
13947
13870
  size = 'xl',
13948
13871
  centered = false,
13949
- views
13872
+ views,
13873
+ highlightAnimate,
13874
+ animate,
13875
+ highlightTypewriter: propHighlightTypewriter = false,
13876
+ highlightTypewriterDuration = 3000
13950
13877
  } = _ref,
13951
- props = _objectWithoutPropertiesLoose(_ref, _excluded$L);
13952
- // Use the inView hook to detect when the component is visible
13878
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$M);
13953
13879
  var {
13954
13880
  ref,
13955
13881
  inView
13956
13882
  } = appStudio.useInView();
13957
- // Get theme utilities
13958
13883
  var {
13959
13884
  getColor,
13960
- themeMode: contextThemeMode
13885
+ themeMode: ctxMode
13961
13886
  } = appStudio.useTheme();
13962
- var themeMode = props.themeMode || contextThemeMode;
13963
- // Resolve theme colors
13964
- var resolvedHighlightColor = getColor(highlightColor, {
13965
- themeMode
13966
- });
13967
- var resolvedSecondaryColor = highlightSecondaryColor ? getColor(highlightSecondaryColor, {
13968
- themeMode
13969
- }) : undefined;
13970
- // Get state and animation functions from custom hook
13887
+ var themeMode = props.themeMode || ctxMode;
13888
+ // Resolve colors, handling both theme colors and direct hex values
13889
+ var resolveColorValue = colorValue => {
13890
+ // If it's already a hex color, return it directly
13891
+ if (colorValue.startsWith('#')) {
13892
+ return colorValue;
13893
+ }
13894
+ // Otherwise, use the theme's getColor function
13895
+ return getColor(colorValue, {
13896
+ themeMode
13897
+ });
13898
+ };
13899
+ var resolvedColor = resolveColorValue(highlightColor);
13900
+ var resolvedSecondary = highlightSecondaryColor ? resolveColorValue(highlightSecondaryColor) : undefined;
13971
13901
  var {
13972
- displayText,
13973
- getAnimation,
13974
- currentHighlightText,
13975
- alternatingContent
13902
+ finalDisplayedText,
13903
+ activeHighlightTarget,
13904
+ highlightTypewriter
13976
13905
  } = useTitleState(Object.assign({
13977
13906
  children,
13978
13907
  highlightText,
13979
- highlightStyle,
13980
- highlightColor: resolvedHighlightColor,
13981
- animation,
13982
- _isInView: inView
13908
+ _isInView: inView,
13909
+ highlightTypewriter: propHighlightTypewriter,
13910
+ highlightTypewriterDuration
13983
13911
  }, props));
13984
- // Get animation configuration only when the component is in view
13985
- // For typewriter animation, we don't need an animation config as it's handled by useState/useEffect
13986
- var animationConfig = inView && animation !== 'typewriter' ? getAnimation() : undefined;
13987
- // Get highlight styles
13988
- var highlightStyleProps = HighlightStyles[highlightStyle](resolvedHighlightColor, resolvedSecondaryColor);
13989
- // Get font size and line height based on size prop
13990
13912
  var fontSize = TitleSizes[size];
13991
13913
  var lineHeight = LineHeights$1[size];
13992
- // For typewriter animation, use the displayText state
13993
- // For alternating animation, use the alternatingContent state
13994
- var content = animation === 'typewriter' ? displayText : props.alternateAnimation && typeof alternatingContent === 'string' ? alternatingContent : children;
13995
- // If the content is a simple string and we have highlight text
13996
- if (typeof children === 'string' && currentHighlightText) {
13997
- var text = children;
13998
- // For a single highlight text
13999
- if (typeof currentHighlightText === 'string') {
14000
- // Create a regex pattern to match the highlight text
14001
- // Use a more flexible approach that can match within words
14002
- var pattern = new RegExp("(" + currentHighlightText + ")", 'gi');
14003
- // Check if the pattern matches anything in the text
14004
- if (pattern.test(text)) {
14005
- // Reset the regex pattern's lastIndex property
14006
- pattern.lastIndex = 0;
14007
- // Split the text by the pattern and keep the matches
14008
- var parts = [];
14009
- var lastIndex = 0;
14010
- var match;
14011
- while ((match = pattern.exec(text)) !== null) {
14012
- // Add the text before the match
14013
- if (match.index > lastIndex) {
14014
- parts.push(text.substring(lastIndex, match.index));
14015
- }
14016
- // Add the match as a special part to be highlighted
14017
- parts.push({
14018
- highlight: true,
14019
- text: match[0]
14020
- });
14021
- lastIndex = match.index + match[0].length;
14022
- }
14023
- // Add any remaining text after the last match
14024
- if (lastIndex < text.length) {
14025
- parts.push(text.substring(lastIndex));
14026
- }
14027
- return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
14028
- ref: ref,
14029
- as: "h1",
14030
- fontSize: fontSize,
14031
- lineHeight: lineHeight + "px",
14032
- fontWeight: "bold",
14033
- textAlign: centered ? 'center' : 'left',
14034
- animate: animationConfig
14035
- }, props, views == null ? void 0 : views.container), parts.map((part, index) => (/*#__PURE__*/React__default.createElement(React__default.Fragment, {
14036
- key: index
14037
- }, typeof part === 'string' ? part : (/*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
14038
- as: "span",
14039
- display: "inline"
14040
- }, highlightStyleProps, views == null ? void 0 : views.highlight), part.text))))));
13914
+ // Get the text to display
13915
+ var text = typeof finalDisplayedText === 'string' ? finalDisplayedText : typeof children === 'string' ? children : '';
13916
+ if (typeof text === 'string' && activeHighlightTarget) {
13917
+ var pattern = new RegExp("(" + escapeRegExp(Array.isArray(activeHighlightTarget) ? activeHighlightTarget.join('|') : activeHighlightTarget) + ")", 'gi');
13918
+ var parts = [];
13919
+ var lastIndex = 0;
13920
+ var match;
13921
+ while (match = pattern.exec(text)) {
13922
+ if (match.index > lastIndex) {
13923
+ parts.push(text.substring(lastIndex, match.index));
14041
13924
  }
13925
+ parts.push({
13926
+ highlight: true,
13927
+ text: match[0]
13928
+ });
13929
+ lastIndex = match.index + match[0].length;
14042
13930
  }
14043
- // For multiple highlight texts
14044
- if (Array.isArray(currentHighlightText)) {
14045
- // Create a regex pattern to match any of the highlight texts
14046
- // Use a more flexible approach that can match within words
14047
- var _pattern = new RegExp("(" + currentHighlightText.join('|') + ")", 'gi');
14048
- // Check if the pattern matches anything in the text
14049
- if (_pattern.test(text)) {
14050
- // Reset the regex pattern's lastIndex property
14051
- _pattern.lastIndex = 0;
14052
- // Split the text by the pattern and keep the matches
14053
- var _parts = [];
14054
- var _lastIndex = 0;
14055
- var _match;
14056
- while ((_match = _pattern.exec(text)) !== null) {
14057
- // Add the text before the match
14058
- if (_match.index > _lastIndex) {
14059
- _parts.push(text.substring(_lastIndex, _match.index));
14060
- }
14061
- // Add the match as a special part to be highlighted
14062
- _parts.push({
14063
- highlight: true,
14064
- text: _match[0]
14065
- });
14066
- _lastIndex = _match.index + _match[0].length;
14067
- }
14068
- // Add any remaining text after the last match
14069
- if (_lastIndex < text.length) {
14070
- _parts.push(text.substring(_lastIndex));
14071
- }
14072
- return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
14073
- ref: ref,
14074
- as: "h1",
14075
- fontSize: fontSize,
14076
- lineHeight: lineHeight + "px",
14077
- fontWeight: "bold",
14078
- textAlign: centered ? 'center' : 'left',
14079
- animate: animationConfig
14080
- }, props, views == null ? void 0 : views.container), _parts.map((part, index) => (/*#__PURE__*/React__default.createElement(React__default.Fragment, {
14081
- key: index
14082
- }, typeof part === 'string' ? part : (/*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
14083
- as: "span",
14084
- display: "inline"
14085
- }, highlightStyleProps, views == null ? void 0 : views.highlight), part.text))))));
14086
- }
13931
+ if (lastIndex < text.length) {
13932
+ parts.push(text.substring(lastIndex));
14087
13933
  }
13934
+ return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
13935
+ ref: ref,
13936
+ as: "h1",
13937
+ fontSize: fontSize,
13938
+ lineHeight: lineHeight + "px",
13939
+ fontWeight: "bold",
13940
+ textAlign: centered ? 'center' : 'left',
13941
+ animate: inView ? animate : undefined
13942
+ }, views == null ? void 0 : views.container, props), parts.map((part, idx) => typeof part === 'string' ? part : (/*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
13943
+ key: part.text + "-" + idx,
13944
+ as: "span",
13945
+ display: "inline",
13946
+ animate: inView ? highlightAnimate : undefined
13947
+ }, HighlightStyles[highlightStyle](resolvedColor, resolvedSecondary), views == null ? void 0 : views.highlight), highlightTypewriter ? (/*#__PURE__*/React__default.createElement(TypewriterEffect, {
13948
+ text: part.text,
13949
+ typingSpeed: Math.max(30, highlightTypewriterDuration / (part.text.length * 10)),
13950
+ showCursor: true,
13951
+ cursorColor: "currentColor"
13952
+ })) : part.text))));
13953
+ }
13954
+ // If highlightStyle is provided but no highlightText, apply the style to the entire title
13955
+ if (highlightStyle && !activeHighlightTarget) {
13956
+ return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
13957
+ ref: ref,
13958
+ as: "h1",
13959
+ fontSize: fontSize,
13960
+ lineHeight: lineHeight + "px",
13961
+ fontWeight: "bold",
13962
+ textAlign: centered ? 'center' : 'left',
13963
+ animate: inView ? animate : undefined
13964
+ }, views == null ? void 0 : views.container, props), /*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
13965
+ as: "span",
13966
+ display: "inline",
13967
+ animate: inView ? highlightAnimate : undefined
13968
+ }, HighlightStyles[highlightStyle](resolvedColor, resolvedSecondary), views == null ? void 0 : views.highlight), highlightTypewriter ? (/*#__PURE__*/React__default.createElement(TypewriterEffect, {
13969
+ text: text,
13970
+ typingSpeed: Math.max(30, highlightTypewriterDuration / (text.length * 10)),
13971
+ showCursor: true,
13972
+ cursorColor: "currentColor"
13973
+ })) : text));
14088
13974
  }
14089
- // Default rendering for non-string children or no highlighting
13975
+ // Default case - no highlighting
14090
13976
  return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
14091
13977
  ref: ref,
14092
13978
  as: "h1",
@@ -14094,8 +13980,8 @@ var TitleView = _ref => {
14094
13980
  lineHeight: lineHeight + "px",
14095
13981
  fontWeight: "bold",
14096
13982
  textAlign: centered ? 'center' : 'left',
14097
- animate: animationConfig
14098
- }, props, views == null ? void 0 : views.container), content);
13983
+ animate: inView ? animate : undefined
13984
+ }, views == null ? void 0 : views.container, props), text);
14099
13985
  };
14100
13986
 
14101
13987
  /**
@@ -14160,7 +14046,7 @@ var useToggleState = defaultToggled => {
14160
14046
  };
14161
14047
  };
14162
14048
 
14163
- var _excluded$M = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views"];
14049
+ var _excluded$N = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views"];
14164
14050
  var ToggleView = _ref => {
14165
14051
  var {
14166
14052
  children,
@@ -14174,7 +14060,7 @@ var ToggleView = _ref => {
14174
14060
  onToggle,
14175
14061
  views
14176
14062
  } = _ref,
14177
- props = _objectWithoutPropertiesLoose(_ref, _excluded$M);
14063
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$N);
14178
14064
  var toggleColor = !isDisabled ? 'color.trueGray.400' : 'theme.disabled';
14179
14065
  var isActive = !!(isToggle || isHovered);
14180
14066
  var toggleVariants = {
@@ -14217,7 +14103,7 @@ var ToggleView = _ref => {
14217
14103
  }, toggleVariants[variant], props, views == null ? void 0 : views.container), children);
14218
14104
  };
14219
14105
 
14220
- var _excluded$N = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
14106
+ var _excluded$O = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
14221
14107
  // Destructuring properties from ToggleProps to be used within the ToggleComponent.
14222
14108
  var ToggleComponent = _ref => {
14223
14109
  var {
@@ -14229,7 +14115,7 @@ var ToggleComponent = _ref => {
14229
14115
  isToggled = false,
14230
14116
  onToggle
14231
14117
  } = _ref,
14232
- props = _objectWithoutPropertiesLoose(_ref, _excluded$N);
14118
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$O);
14233
14119
  // Initializing toggle state and set state functions using the custom hook useToggleState.
14234
14120
  var {
14235
14121
  isHovered,
@@ -14620,7 +14506,7 @@ var getDropdownPosition = function getDropdownPosition(side, align) {
14620
14506
  return positions[side];
14621
14507
  };
14622
14508
 
14623
- var _excluded$O = ["children", "views"],
14509
+ var _excluded$P = ["children", "views"],
14624
14510
  _excluded2$d = ["items", "side", "align", "views"],
14625
14511
  _excluded3$9 = ["item", "views"],
14626
14512
  _excluded4$8 = ["views"],
@@ -14658,7 +14544,7 @@ var DropdownMenuTrigger = _ref2 => {
14658
14544
  children,
14659
14545
  views
14660
14546
  } = _ref2,
14661
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$O);
14547
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$P);
14662
14548
  var {
14663
14549
  isOpen,
14664
14550
  setIsOpen
@@ -14818,7 +14704,7 @@ var DropdownMenuView = _ref6 => {
14818
14704
  }));
14819
14705
  };
14820
14706
 
14821
- var _excluded$P = ["trigger", "items", "size", "variant", "side", "align", "defaultOpen", "views"];
14707
+ var _excluded$Q = ["trigger", "items", "size", "variant", "side", "align", "defaultOpen", "views"];
14822
14708
  /**
14823
14709
  * DropdownMenu component for displaying a menu when clicking on a trigger element.
14824
14710
  */
@@ -14833,7 +14719,7 @@ var DropdownMenuComponent = _ref => {
14833
14719
  defaultOpen = false,
14834
14720
  views
14835
14721
  } = _ref,
14836
- props = _objectWithoutPropertiesLoose(_ref, _excluded$P);
14722
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$Q);
14837
14723
  var {
14838
14724
  isOpen,
14839
14725
  setIsOpen,
@@ -15031,7 +14917,7 @@ var useRect = ref => {
15031
14917
  return rect;
15032
14918
  };
15033
14919
 
15034
- var _excluded$Q = ["children", "views", "asChild"],
14920
+ var _excluded$R = ["children", "views", "asChild"],
15035
14921
  _excluded2$e = ["children", "views", "side", "align", "sideOffset", "style", "backgroundColor", "borderRadius", "boxShadow", "padding", "minWidth", "maxWidth"];
15036
14922
  // Create context for the HoverCard
15037
14923
  var HoverCardContext = /*#__PURE__*/React.createContext({
@@ -15070,7 +14956,7 @@ var HoverCardTrigger = _ref2 => {
15070
14956
  views,
15071
14957
  asChild = false
15072
14958
  } = _ref2,
15073
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$Q);
14959
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$R);
15074
14960
  var {
15075
14961
  openCard,
15076
14962
  closeCard,
@@ -15157,7 +15043,7 @@ var HoverCardContent = _ref3 => {
15157
15043
  }, views == null ? void 0 : views.container, props), children);
15158
15044
  };
15159
15045
 
15160
- var _excluded$R = ["children", "views", "openDelay", "closeDelay"];
15046
+ var _excluded$S = ["children", "views", "openDelay", "closeDelay"];
15161
15047
  /**
15162
15048
  * HoverCard component displays floating content when hovering over a trigger element.
15163
15049
  * Supports configurable open and close delays for a smoother user experience.
@@ -15169,7 +15055,7 @@ var HoverCardComponent = _ref => {
15169
15055
  openDelay,
15170
15056
  closeDelay
15171
15057
  } = _ref,
15172
- props = _objectWithoutPropertiesLoose(_ref, _excluded$R);
15058
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$S);
15173
15059
  var hoverCardState = useHoverCardState({
15174
15060
  openDelay,
15175
15061
  closeDelay
@@ -15299,7 +15185,7 @@ var getMenubarContentPosition = orientation => {
15299
15185
  };
15300
15186
  };
15301
15187
 
15302
- var _excluded$S = ["children", "orientation", "size", "variant", "views"];
15188
+ var _excluded$T = ["children", "orientation", "size", "variant", "views"];
15303
15189
  // Create context for the Menubar
15304
15190
  var MenubarContext = /*#__PURE__*/React.createContext({
15305
15191
  activeMenuId: null,
@@ -15333,7 +15219,7 @@ var MenubarRoot = _ref2 => {
15333
15219
  variant = 'default',
15334
15220
  views
15335
15221
  } = _ref2,
15336
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$S);
15222
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$T);
15337
15223
  var Container = orientation === 'horizontal' ? appStudio.Horizontal : appStudio.Vertical;
15338
15224
  return /*#__PURE__*/React__default.createElement(Container, Object.assign({
15339
15225
  role: "menubar",
@@ -15519,7 +15405,7 @@ var MenubarView = _ref8 => {
15519
15405
  })))))));
15520
15406
  };
15521
15407
 
15522
- var _excluded$T = ["items", "orientation", "size", "variant", "defaultActiveMenuId", "defaultOpenMenuId", "views"];
15408
+ var _excluded$U = ["items", "orientation", "size", "variant", "defaultActiveMenuId", "defaultOpenMenuId", "views"];
15523
15409
  /**
15524
15410
  * Menubar component for creating horizontal or vertical menu bars with dropdown menus.
15525
15411
  */
@@ -15533,7 +15419,7 @@ var MenubarComponent = _ref => {
15533
15419
  defaultOpenMenuId = null,
15534
15420
  views
15535
15421
  } = _ref,
15536
- props = _objectWithoutPropertiesLoose(_ref, _excluded$T);
15422
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$U);
15537
15423
  var {
15538
15424
  activeMenuId,
15539
15425
  setActiveMenuId,
@@ -15689,7 +15575,7 @@ var DisabledButtonStyles = {
15689
15575
  }
15690
15576
  };
15691
15577
 
15692
- var _excluded$U = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "visiblePageNumbers", "views"];
15578
+ var _excluded$V = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "visiblePageNumbers", "views"];
15693
15579
  var PaginationView = _ref => {
15694
15580
  var {
15695
15581
  currentPage,
@@ -15720,7 +15606,7 @@ var PaginationView = _ref => {
15720
15606
  visiblePageNumbers,
15721
15607
  views
15722
15608
  } = _ref,
15723
- props = _objectWithoutPropertiesLoose(_ref, _excluded$U);
15609
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$V);
15724
15610
  var handlePageChange = page => {
15725
15611
  if (page < 1 || page > totalPages || page === currentPage) {
15726
15612
  return;
@@ -15839,7 +15725,7 @@ var PaginationView = _ref => {
15839
15725
  }, option.label))))));
15840
15726
  };
15841
15727
 
15842
- var _excluded$V = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "views"];
15728
+ var _excluded$W = ["currentPage", "totalPages", "onPageChange", "pageSize", "pageSizeOptions", "onPageSizeChange", "showPageSizeSelector", "showPageInfo", "maxPageButtons", "showFirstLastButtons", "size", "variant", "shape", "views"];
15843
15729
  /**
15844
15730
  * Pagination component for navigating through pages of content.
15845
15731
  */
@@ -15860,7 +15746,7 @@ var PaginationComponent = _ref => {
15860
15746
  shape = 'rounded',
15861
15747
  views
15862
15748
  } = _ref,
15863
- props = _objectWithoutPropertiesLoose(_ref, _excluded$V);
15749
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$W);
15864
15750
  var {
15865
15751
  visiblePageNumbers
15866
15752
  } = usePaginationState(currentPage, totalPages, maxPageButtons);
@@ -15930,7 +15816,7 @@ var DefaultSeparatorStyles = {
15930
15816
  }
15931
15817
  };
15932
15818
 
15933
- var _excluded$W = ["orientation", "variant", "thickness", "color", "spacing", "label", "decorative", "views", "themeMode"];
15819
+ var _excluded$X = ["orientation", "variant", "thickness", "color", "spacing", "label", "decorative", "views", "themeMode"];
15934
15820
  var SeparatorView = _ref => {
15935
15821
  var {
15936
15822
  orientation = 'horizontal',
@@ -15942,7 +15828,7 @@ var SeparatorView = _ref => {
15942
15828
  decorative = false,
15943
15829
  views
15944
15830
  } = _ref,
15945
- props = _objectWithoutPropertiesLoose(_ref, _excluded$W);
15831
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$X);
15946
15832
  // Access theme if needed for future enhancements
15947
15833
  var {
15948
15834
  themeMode
@@ -16180,7 +16066,7 @@ var SidebarTransitions = {
16180
16066
  bounce: 'width 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55), transform 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55)'
16181
16067
  };
16182
16068
 
16183
- var _excluded$X = ["children", "showToggleButton", "views"],
16069
+ var _excluded$Y = ["children", "showToggleButton", "views"],
16184
16070
  _excluded2$f = ["children", "views"],
16185
16071
  _excluded3$a = ["children", "views"],
16186
16072
  _excluded4$9 = ["children", "position", "size", "variant", "fixed", "hasBackdrop", "expandedWidth", "collapsedWidth", "breakpointBehavior", "elevation", "transitionPreset", "ariaLabel", "isExpanded", "isMobile", "collapse", "views", "themeMode"];
@@ -16213,7 +16099,7 @@ var SidebarHeader = _ref2 => {
16213
16099
  showToggleButton = true,
16214
16100
  views
16215
16101
  } = _ref2,
16216
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$X);
16102
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$Y);
16217
16103
  var {
16218
16104
  isExpanded,
16219
16105
  toggleExpanded,
@@ -16368,7 +16254,7 @@ var SidebarView = _ref5 => {
16368
16254
  }))));
16369
16255
  };
16370
16256
 
16371
- var _excluded$Y = ["children", "position", "size", "variant", "defaultExpanded", "expanded", "onExpandedChange", "fixed", "hasBackdrop", "showToggleButton", "expandedWidth", "collapsedWidth", "breakpoint", "breakpointBehavior", "views"];
16257
+ var _excluded$Z = ["children", "position", "size", "variant", "defaultExpanded", "expanded", "onExpandedChange", "fixed", "hasBackdrop", "showToggleButton", "expandedWidth", "collapsedWidth", "breakpoint", "breakpointBehavior", "views"];
16372
16258
  /**
16373
16259
  * Sidebar component for creating collapsible, themeable and customizable sidebars.
16374
16260
  */
@@ -16390,7 +16276,7 @@ var SidebarComponent = _ref => {
16390
16276
  breakpointBehavior = 'overlay',
16391
16277
  views
16392
16278
  } = _ref,
16393
- props = _objectWithoutPropertiesLoose(_ref, _excluded$Y);
16279
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$Z);
16394
16280
  var {
16395
16281
  isExpanded,
16396
16282
  toggleExpanded,
@@ -16855,7 +16741,7 @@ var HandleIconStyles = {
16855
16741
  }
16856
16742
  };
16857
16743
 
16858
- var _excluded$Z = ["children", "id", "defaultSize", "minSize", "maxSize", "collapsible", "defaultCollapsed", "onCollapseChange", "views"],
16744
+ var _excluded$_ = ["children", "id", "defaultSize", "minSize", "maxSize", "collapsible", "defaultCollapsed", "onCollapseChange", "views"],
16859
16745
  _excluded2$g = ["id", "position", "disabled", "withVisualIndicator", "withCollapseButton", "collapseTarget", "views"],
16860
16746
  _excluded3$b = ["children", "orientation", "size", "variant", "defaultSizes", "minSize", "maxSize", "collapsible", "containerRef", "autoSaveId", "views"];
16861
16747
  // Create context for the Resizable component
@@ -16900,7 +16786,7 @@ var ResizablePanel = _ref2 => {
16900
16786
  onCollapseChange,
16901
16787
  views
16902
16788
  } = _ref2,
16903
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$Z);
16789
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$_);
16904
16790
  var {
16905
16791
  orientation,
16906
16792
  registerPanel,
@@ -17115,7 +17001,7 @@ var ResizableView = _ref4 => {
17115
17001
  }, ResizableOrientations[orientation], views == null ? void 0 : views.container, props), children);
17116
17002
  };
17117
17003
 
17118
- var _excluded$_ = ["children", "orientation", "size", "variant", "defaultSizes", "onSizesChange", "minSize", "maxSize", "collapsible", "autoSaveId", "storage", "keyboardResizeBy", "views"];
17004
+ var _excluded$$ = ["children", "orientation", "size", "variant", "defaultSizes", "onSizesChange", "minSize", "maxSize", "collapsible", "autoSaveId", "storage", "keyboardResizeBy", "views"];
17119
17005
  /**
17120
17006
  * Resizable component for creating resizable panel groups and layouts.
17121
17007
  */
@@ -17135,7 +17021,7 @@ var ResizableComponent = _ref => {
17135
17021
  keyboardResizeBy = 10,
17136
17022
  views
17137
17023
  } = _ref,
17138
- props = _objectWithoutPropertiesLoose(_ref, _excluded$_);
17024
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$$);
17139
17025
  var {
17140
17026
  isResizing,
17141
17027
  setIsResizing,
@@ -17903,7 +17789,7 @@ var CommandFooterStyles = {
17903
17789
  color: 'color.gray.500'
17904
17790
  };
17905
17791
 
17906
- var _excluded$$ = ["value", "onValueChange", "placeholder", "views"],
17792
+ var _excluded$10 = ["value", "onValueChange", "placeholder", "views"],
17907
17793
  _excluded2$h = ["children", "views"],
17908
17794
  _excluded3$c = ["heading", "children", "views"],
17909
17795
  _excluded4$a = ["item", "selected", "onSelect", "views"],
@@ -17935,7 +17821,7 @@ var CommandInput = _ref2 => {
17935
17821
  placeholder = 'Type a command or search...',
17936
17822
  views
17937
17823
  } = _ref2,
17938
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$$);
17824
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$10);
17939
17825
  var inputRef = React.useRef(null);
17940
17826
  // Focus input when component mounts
17941
17827
  React__default.useEffect(() => {
@@ -18118,7 +18004,7 @@ var CommandView = _ref7 => {
18118
18004
  })))), footer && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, CommandFooterStyles, views == null ? void 0 : views.footer), footer)))));
18119
18005
  };
18120
18006
 
18121
- var _excluded$10 = ["open", "onOpenChange", "groups", "commands", "placeholder", "size", "variant", "filter", "emptyState", "footer", "views"];
18007
+ var _excluded$11 = ["open", "onOpenChange", "groups", "commands", "placeholder", "size", "variant", "filter", "emptyState", "footer", "views"];
18122
18008
  /**
18123
18009
  * Command component for displaying a command palette with search functionality.
18124
18010
  */
@@ -18136,7 +18022,7 @@ var CommandComponent = _ref => {
18136
18022
  footer,
18137
18023
  views
18138
18024
  } = _ref,
18139
- props = _objectWithoutPropertiesLoose(_ref, _excluded$10);
18025
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$11);
18140
18026
  var {
18141
18027
  search,
18142
18028
  setSearch,
@@ -18423,7 +18309,7 @@ var getArrowStyles = position => {
18423
18309
  }
18424
18310
  };
18425
18311
 
18426
- var _excluded$11 = ["children", "views", "asChild"],
18312
+ var _excluded$12 = ["children", "views", "asChild"],
18427
18313
  _excluded2$i = ["children", "views"],
18428
18314
  _excluded3$d = ["content", "children", "position", "align", "size", "variant", "showArrow", "views", "themeMode"];
18429
18315
  // Create context for the Tooltip
@@ -18459,7 +18345,7 @@ var TooltipTrigger = _ref2 => {
18459
18345
  views,
18460
18346
  asChild = false
18461
18347
  } = _ref2,
18462
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$11);
18348
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$12);
18463
18349
  var {
18464
18350
  openTooltip,
18465
18351
  closeTooltip,
@@ -18552,7 +18438,7 @@ var TooltipView = _ref4 => {
18552
18438
  }, TooltipSizes[size], TooltipVariants[variant], positionStyles, views == null ? void 0 : views.content), typeof content === 'string' ? (/*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({}, views == null ? void 0 : views.text), content)) : content, showArrow && /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({}, arrowStyles, views == null ? void 0 : views.arrow)))));
18553
18439
  };
18554
18440
 
18555
- var _excluded$12 = ["content", "children", "position", "align", "size", "variant", "openDelay", "closeDelay", "showArrow", "defaultOpen", "isDisabled", "views"];
18441
+ var _excluded$13 = ["content", "children", "position", "align", "size", "variant", "openDelay", "closeDelay", "showArrow", "defaultOpen", "isDisabled", "views"];
18556
18442
  /**
18557
18443
  * Tooltip component for displaying additional information when hovering over an element.
18558
18444
  * Supports configurable positions, delays, and styling.
@@ -18572,7 +18458,7 @@ var TooltipComponent = _ref => {
18572
18458
  isDisabled = false,
18573
18459
  views
18574
18460
  } = _ref,
18575
- props = _objectWithoutPropertiesLoose(_ref, _excluded$12);
18461
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$13);
18576
18462
  var tooltipState = useTooltipState({
18577
18463
  defaultOpen,
18578
18464
  openDelay,