@app-studio/web 0.9.79 → 0.9.81

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 (38) hide show
  1. package/dist/components/Accordion/Accordion/Accordion.type.d.ts +1 -1
  2. package/dist/components/Accordion/Accordion/Accordion.view.d.ts +1 -1
  3. package/dist/components/Badge/Badge/Badge.type.d.ts +1 -1
  4. package/dist/components/Card/Card/Card.style.d.ts +0 -4
  5. package/dist/components/Card/Card/Card.type.d.ts +1 -1
  6. package/dist/components/ChatInput/ChatInput/ChatInput.type.d.ts +1 -1
  7. package/dist/components/ColorPicker/ColorPicker/ColorPicker.type.d.ts +1 -1
  8. package/dist/components/EmojiPicker/EmojiPicker/EmojiPicker.type.d.ts +1 -1
  9. package/dist/components/Form/ColorInput/ColorInput/ColorInput.type.d.ts +1 -1
  10. package/dist/components/Form/Switch/Switch/Switch.style.d.ts +3 -6
  11. package/dist/components/Form/TagInput/TagInput/TagInput.type.d.ts +1 -1
  12. package/dist/components/Form/TextArea/TextArea/TextArea.type.d.ts +1 -1
  13. package/dist/components/Input/Input.type.d.ts +1 -1
  14. package/dist/components/Message/Message/Message.type.d.ts +1 -1
  15. package/dist/components/Modal/Modal/Modal.props.d.ts +2 -2
  16. package/dist/components/Slider/Slider/Slider.type.d.ts +1 -1
  17. package/dist/components/Title/Title/Title.props.d.ts +0 -5
  18. package/dist/components/Toggle/Toggle/Toggle.type.d.ts +1 -1
  19. package/dist/components/ToggleGroup/ToggleGroup/ToggleGroup.type.d.ts +1 -1
  20. package/dist/pages/tabs.page.d.ts +1 -1
  21. package/dist/providers/index.d.ts +5 -0
  22. package/dist/web.cjs.development.js +170 -155
  23. package/dist/web.cjs.development.js.map +1 -1
  24. package/dist/web.cjs.production.min.js +1 -1
  25. package/dist/web.cjs.production.min.js.map +1 -1
  26. package/dist/web.esm.js +170 -155
  27. package/dist/web.esm.js.map +1 -1
  28. package/dist/web.umd.development.js +170 -155
  29. package/dist/web.umd.development.js.map +1 -1
  30. package/dist/web.umd.production.min.js +1 -1
  31. package/dist/web.umd.production.min.js.map +1 -1
  32. package/docs/components/Background.mdx +133 -134
  33. package/docs/components/Button.mdx +154 -131
  34. package/docs/components/Chart.mdx +93 -368
  35. package/docs/components/ProgressBar.mdx +77 -394
  36. package/docs/components/Title.mdx +102 -290
  37. package/package.json +1 -1
  38. package/docs/components/ChatInput.mdx +0 -1039
package/dist/web.esm.js CHANGED
@@ -177,7 +177,7 @@ var useAccordionState = _ref => {
177
177
  };
178
178
 
179
179
  var AccordionShapes = {
180
- sharp: {
180
+ square: {
181
181
  borderRadius: 0
182
182
  },
183
183
  rounded: {
@@ -1292,17 +1292,14 @@ var MessageView = _ref => {
1292
1292
  width: "100%"
1293
1293
  }, /*#__PURE__*/React.createElement(Text, Object.assign({
1294
1294
  size: "md",
1295
- weight: "semiBold",
1296
- backgroundColor: Theme[variant].container.backgroundColor
1295
+ weight: "semiBold"
1297
1296
  }, views == null ? void 0 : views.title), title), subtitle && (/*#__PURE__*/React.createElement(Text, Object.assign({
1298
- size: "sm",
1299
- backgroundColor: Theme[variant].container.backgroundColor
1297
+ size: "sm"
1300
1298
  }, views == null ? void 0 : views.subtitle), subtitle))), showAction && (/*#__PURE__*/React.createElement(Text, Object.assign({
1301
1299
  marginRight: 10,
1302
1300
  onClick: action,
1303
1301
  padding: "6px 10px",
1304
- whiteSpace: "nowrap",
1305
- backgroundColor: Theme[variant].container.backgroundColor
1302
+ whiteSpace: "nowrap"
1306
1303
  }, containerStyle, views == null ? void 0 : views.actionText), actionText)), isClosable && (/*#__PURE__*/React.createElement(View, Object.assign({
1307
1304
  position: "absolute",
1308
1305
  zIndex: 10000,
@@ -2290,9 +2287,9 @@ var BadgeSizes = {
2290
2287
  * Badge shapes with consistent border radius
2291
2288
  */
2292
2289
  var BadgeShapes = {
2293
- sharp: 0,
2290
+ square: 0,
2294
2291
  rounded: '8px',
2295
- pillShaped: '9999px'
2292
+ pill: '9999px'
2296
2293
  };
2297
2294
  /**
2298
2295
  * Badge positions for absolute positioning
@@ -2370,7 +2367,7 @@ var BadgeView = _ref => {
2370
2367
  var {
2371
2368
  content,
2372
2369
  position,
2373
- shape = 'pillShaped',
2370
+ shape = 'pill',
2374
2371
  variant = 'filled',
2375
2372
  size = 'md',
2376
2373
  views,
@@ -2744,9 +2741,9 @@ var ButtonSizes = {
2744
2741
  * Button shapes with consistent border radius
2745
2742
  */
2746
2743
  var ButtonShapes = {
2747
- sharp: 0,
2744
+ square: 0,
2748
2745
  rounded: 8,
2749
- pillShaped: 999
2746
+ pill: 999
2750
2747
  };
2751
2748
  /**
2752
2749
  * Icon sizes for different button sizes
@@ -3312,11 +3309,23 @@ var ButtonView = _ref5 => {
3312
3309
  getColorHex
3313
3310
  } = useTheme();
3314
3311
  /* MAIN COLOR – determines the entire palette */
3315
- var mainColorKey = (_ref6 = backgroundColor != null ? backgroundColor : color) != null ? _ref6 : 'theme.primary';
3316
- var mainTone = getColorHex(isDisabled ? 'theme.disabled' : mainColorKey);
3312
+ // Priority: explicit backgroundColor/color prop -> theme.button.background -> theme.primary
3313
+ var mainColorKey = (_ref6 = backgroundColor != null ? backgroundColor : color) != null ? _ref6 : 'theme.button.background';
3314
+ // Decide which theme token to resolve based on state
3315
+ var stateColorKey = isDisabled ? 'theme.disabled' : isLoading ? 'theme.loading' : mainColorKey;
3316
+ // Resolve to actual hex color.
3317
+ // If 'theme.button.background' isn't defined, it falls back to 'theme.primary'
3318
+ var mainTone = getColorHex(stateColorKey);
3319
+ if (mainTone === 'theme.button.background' || mainTone === 'theme.loading') {
3320
+ mainTone = getColorHex(isLoading ? 'color.dark.500' : 'theme.primary');
3321
+ }
3317
3322
  /* text color - explicitly provided or default to white */
3318
- var resolvedTextColorKey = textColor != null ? textColor : 'color.white';
3323
+ // Priority: explicit textColor prop -> theme.button.text -> color.white
3324
+ var resolvedTextColorKey = textColor != null ? textColor : 'theme.button.text';
3319
3325
  var resolvedTextColor = getColorHex(resolvedTextColorKey);
3326
+ if (resolvedTextColor === 'theme.button.text') {
3327
+ resolvedTextColor = getColorHex('color.white');
3328
+ }
3320
3329
  /* variant palette */
3321
3330
  var palette = useMemo(() => getButtonVariants(mainTone, resolvedTextColor, reversed), [mainTone, resolvedTextColor, reversed]);
3322
3331
  var base = palette[variant];
@@ -3389,50 +3398,57 @@ var Button = ButtonComponent;
3389
3398
  * - Rounded corners: Consistent border radius
3390
3399
  * - Transitions: Subtle animations
3391
3400
  */
3401
+ /**
3402
+ * Card sizes following the 4px grid system
3403
+ */
3404
+ var CardSizes = {
3405
+ sm: {
3406
+ padding: '12px'
3407
+ },
3408
+ md: {
3409
+ padding: '16px'
3410
+ },
3411
+ lg: {
3412
+ padding: '24px'
3413
+ }
3414
+ };
3392
3415
  /**
3393
3416
  * Card shapes with consistent border radius
3394
3417
  */
3395
3418
  var CardShapes = {
3396
- sharp: 0,
3419
+ square: 0,
3397
3420
  rounded: '8px',
3398
- pillShaped: '16px'
3421
+ pill: '24px'
3399
3422
  };
3400
3423
  /**
3401
3424
  * Get card variants with consistent styling based on theme mode
3402
3425
  */
3403
3426
  var getCardVariants = themeMode => {
3427
+ var isDark = themeMode === 'dark';
3404
3428
  return {
3405
3429
  default: {
3406
- backgroundColor: 'color.white',
3430
+ backgroundColor: isDark ? 'color.gray.900' : 'color.white',
3407
3431
  border: 'none',
3408
3432
  transition: 'background-color 0.2s ease, box-shadow 0.2s ease'
3409
3433
  },
3410
3434
  outlined: {
3411
- backgroundColor: 'color.white',
3435
+ backgroundColor: isDark ? 'color.gray.900' : 'color.white',
3412
3436
  borderWidth: '1px',
3413
3437
  borderStyle: 'solid',
3414
- borderColor: 'color.gray.200',
3438
+ borderColor: isDark ? 'color.gray.700' : 'color.gray.200',
3415
3439
  transition: 'border-color 0.2s ease, box-shadow 0.2s ease',
3416
3440
  _hover: {
3417
- borderColor: 'color.gray.300',
3441
+ borderColor: isDark ? 'color.gray.600' : 'color.gray.300',
3418
3442
  boxShadow: '0px 1px 3px rgba(0, 0, 0, 0.05)'
3419
- },
3420
- _focusVisible: {
3421
- outline: 'none',
3422
- boxShadow: '0 0 0 2px rgba(255, 255, 255, 1), 0 0 0 4px rgba(0, 0, 0, 0.1)'
3423
3443
  }
3424
3444
  },
3425
3445
  elevated: {
3426
- backgroundColor: 'color.white',
3427
- boxShadow: '0px 1px 3px rgba(0, 0, 0, 0.08), 0px 1px 2px rgba(0, 0, 0, 0.06)',
3446
+ backgroundColor: isDark ? 'color.gray.900' : 'color.white',
3447
+ boxShadow: isDark ? '0px 4px 12px rgba(0, 0, 0, 0.3)' : '0px 1px 3px rgba(0, 0, 0, 0.08), 0px 1px 2px rgba(0, 0, 0, 0.06)',
3428
3448
  border: 'none',
3429
3449
  transition: 'box-shadow 0.2s ease',
3430
3450
  _hover: {
3431
- boxShadow: '0px 4px 6px rgba(0, 0, 0, 0.08), 0px 2px 4px rgba(0, 0, 0, 0.06)'
3432
- },
3433
- _focusVisible: {
3434
- outline: 'none',
3435
- boxShadow: '0 0 0 2px rgba(255, 255, 255, 1), 0 0 0 4px rgba(0, 0, 0, 0.1), 0px 4px 6px rgba(0, 0, 0, 0.08)'
3451
+ boxShadow: isDark ? '0px 8px 16px rgba(0, 0, 0, 0.4)' : '0px 4px 6px rgba(0, 0, 0, 0.08), 0px 2px 4px rgba(0, 0, 0, 0.06)'
3436
3452
  }
3437
3453
  }
3438
3454
  };
@@ -3442,50 +3458,31 @@ var getCardVariants = themeMode => {
3442
3458
  * @param theme - Theme object from useTheme hook
3443
3459
  */
3444
3460
  var getDefaultCardStyles = theme => {
3461
+ var isDark = theme.themeMode === 'dark';
3445
3462
  return {
3446
3463
  container: {
3447
- backgroundColor: 'color.white',
3448
- color: 'color.black',
3464
+ backgroundColor: isDark ? 'color.gray.900' : 'color.white',
3465
+ color: isDark ? 'color.white' : 'color.black',
3449
3466
  borderRadius: '8px',
3450
3467
  overflow: 'hidden',
3451
- transition: 'all 0.2s ease',
3452
- media: {
3453
- mobile: {
3454
- borderRadius: '4px'
3455
- }
3456
- }
3468
+ transition: 'all 0.2s ease'
3457
3469
  },
3458
3470
  header: {
3459
3471
  padding: '16px',
3460
3472
  borderBottomWidth: '1px',
3461
3473
  borderBottomStyle: 'solid',
3462
- borderBottomColor: 'color.gray.200',
3463
- color: 'color.black',
3464
- media: {
3465
- mobile: {
3466
- padding: '12px'
3467
- }
3468
- }
3474
+ borderBottomColor: isDark ? 'color.gray.800' : 'color.gray.100',
3475
+ color: 'theme.primary'
3469
3476
  },
3470
3477
  content: {
3471
3478
  padding: '16px',
3472
- color: 'color.black',
3473
- media: {
3474
- mobile: {
3475
- padding: '12px'
3476
- }
3477
- }
3479
+ color: isDark ? 'color.gray.300' : 'color.gray.600'
3478
3480
  },
3479
3481
  footer: {
3480
3482
  padding: '16px',
3481
3483
  borderTopWidth: '1px',
3482
3484
  borderTopStyle: 'solid',
3483
- borderTopColor: 'color.gray.200',
3484
- media: {
3485
- mobile: {
3486
- padding: '12px'
3487
- }
3488
- }
3485
+ borderTopColor: isDark ? 'color.gray.800' : 'color.gray.100'
3489
3486
  }
3490
3487
  };
3491
3488
  };
@@ -3510,12 +3507,14 @@ var CardHeader = _ref => {
3510
3507
  var {
3511
3508
  styles: contextStyles
3512
3509
  } = useCardContext();
3513
- var defaultStyles = getDefaultCardStyles().header;
3510
+ var defaultStyles = getDefaultCardStyles(theme).header;
3514
3511
  // Merge styles: Default < Context Override < Direct Props/Style
3515
3512
  var mergedProps = Object.assign({}, defaultStyles, contextStyles == null ? void 0 : contextStyles.header, props, {
3516
3513
  style: Object.assign({}, defaultStyles == null ? void 0 : defaultStyles.style, contextStyles == null || (_contextStyles$header = contextStyles.header) == null ? void 0 : _contextStyles$header.style, style)
3517
3514
  });
3518
- return /*#__PURE__*/React.createElement(View, Object.assign({}, mergedProps), children);
3515
+ return /*#__PURE__*/React.createElement(Vertical, Object.assign({
3516
+ gap: 8
3517
+ }, mergedProps), children);
3519
3518
  };
3520
3519
  var CardContent = _ref2 => {
3521
3520
  var _contextStyles$conten;
@@ -3528,12 +3527,14 @@ var CardContent = _ref2 => {
3528
3527
  var {
3529
3528
  styles: contextStyles
3530
3529
  } = useCardContext();
3531
- var defaultStyles = getDefaultCardStyles().content;
3530
+ var defaultStyles = getDefaultCardStyles(theme).content;
3532
3531
  // Merge styles: Default < Context Override < Direct Props/Style
3533
3532
  var mergedProps = Object.assign({}, defaultStyles, contextStyles == null ? void 0 : contextStyles.content, props, {
3534
3533
  style: Object.assign({}, defaultStyles == null ? void 0 : defaultStyles.style, contextStyles == null || (_contextStyles$conten = contextStyles.content) == null ? void 0 : _contextStyles$conten.style, style)
3535
3534
  });
3536
- return /*#__PURE__*/React.createElement(View, Object.assign({}, mergedProps), children);
3535
+ return /*#__PURE__*/React.createElement(Vertical, Object.assign({
3536
+ gap: 12
3537
+ }, mergedProps), children);
3537
3538
  };
3538
3539
  var CardFooter = _ref3 => {
3539
3540
  var _contextStyles$footer;
@@ -3546,15 +3547,17 @@ var CardFooter = _ref3 => {
3546
3547
  var {
3547
3548
  styles: contextStyles
3548
3549
  } = useCardContext();
3549
- var defaultStyles = getDefaultCardStyles().footer;
3550
+ var defaultStyles = getDefaultCardStyles(theme).footer;
3550
3551
  // Merge styles: Default < Context Override < Direct Props/Style
3551
3552
  var mergedProps = Object.assign({}, defaultStyles, contextStyles == null ? void 0 : contextStyles.footer, props, {
3552
3553
  style: Object.assign({}, defaultStyles == null ? void 0 : defaultStyles.style, contextStyles == null || (_contextStyles$footer = contextStyles.footer) == null ? void 0 : _contextStyles$footer.style, style)
3553
3554
  });
3554
- return /*#__PURE__*/React.createElement(View, Object.assign({}, mergedProps), children);
3555
+ return /*#__PURE__*/React.createElement(Vertical, Object.assign({
3556
+ gap: 8
3557
+ }, mergedProps), children);
3555
3558
  };
3556
3559
  var CardView = _ref4 => {
3557
- var _contextValue$styles$;
3560
+ var _CardSizes$size, _contextValue$styles$;
3558
3561
  var {
3559
3562
  variant = 'default',
3560
3563
  size = 'md',
@@ -3569,31 +3572,46 @@ var CardView = _ref4 => {
3569
3572
  } = _ref4,
3570
3573
  props = _objectWithoutPropertiesLoose(_ref4, _excluded4$3);
3571
3574
  var theme = useTheme();
3572
- var defaultStyles = getDefaultCardStyles();
3575
+ var defaultStyles = getDefaultCardStyles(theme);
3576
+ // Get size padding
3577
+ var sizePadding = ((_CardSizes$size = CardSizes[size]) == null ? void 0 : _CardSizes$size.padding) || '16px';
3573
3578
  // Prepare context value, merging default styles with user's `views` overrides
3574
3579
  var contextValue = useMemo(() => ({
3575
3580
  styles: {
3576
- container: Object.assign({}, defaultStyles.container, views == null ? void 0 : views.container),
3577
- header: Object.assign({}, defaultStyles.header, views == null ? void 0 : views.header),
3578
- content: Object.assign({}, defaultStyles.content, views == null ? void 0 : views.content),
3579
- footer: Object.assign({}, defaultStyles.footer, views == null ? void 0 : views.footer)
3580
- }
3581
- }), [defaultStyles, views]);
3581
+ container: Object.assign({}, defaultStyles.container, {
3582
+ borderRadius: CardShapes[shape]
3583
+ }, views == null ? void 0 : views.container),
3584
+ header: Object.assign({}, defaultStyles.header, {
3585
+ padding: sizePadding
3586
+ }, views == null ? void 0 : views.header),
3587
+ content: Object.assign({}, defaultStyles.content, {
3588
+ padding: sizePadding
3589
+ }, views == null ? void 0 : views.content),
3590
+ footer: Object.assign({}, defaultStyles.footer, {
3591
+ padding: sizePadding
3592
+ }, views == null ? void 0 : views.footer)
3593
+ }
3594
+ }), [defaultStyles, views, sizePadding, shape]);
3582
3595
  // Determine if we have explicit Card.Header, Card.Content, Card.Footer components
3583
- // or if we need to wrap children in a default layout
3584
3596
  var hasExplicitStructure = React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && (child.type === CardHeader || child.type === CardContent || child.type === CardFooter));
3585
- var variantStyles = getCardVariants()[variant];
3597
+ // Get the appropriate variant styles based on theme mode
3598
+ var {
3599
+ themeMode
3600
+ } = theme;
3601
+ var currentThemeMode = elementMode || themeMode;
3602
+ var variantStyles = getCardVariants(currentThemeMode)[variant];
3586
3603
  // Merge styles for the root element
3587
3604
  var mergedRootProps = Object.assign({
3588
3605
  width: isFullWidth ? '100%' : 'auto',
3589
- borderRadius: CardShapes[shape],
3590
3606
  overflow: 'hidden'
3591
3607
  }, variantStyles, contextValue.styles.container, props, {
3592
3608
  style: Object.assign({}, (_contextValue$styles$ = contextValue.styles.container) == null ? void 0 : _contextValue$styles$.style, style)
3593
3609
  });
3594
3610
  return /*#__PURE__*/React.createElement(CardContext.Provider, {
3595
3611
  value: contextValue
3596
- }, /*#__PURE__*/React.createElement(View, Object.assign({}, mergedRootProps), hasExplicitStructure ? children : (/*#__PURE__*/React.createElement(Vertical, null, header && /*#__PURE__*/React.createElement(CardHeader, null, header), /*#__PURE__*/React.createElement(CardContent, null, children), footer && /*#__PURE__*/React.createElement(CardFooter, null, footer)))));
3612
+ }, /*#__PURE__*/React.createElement(View, Object.assign({}, mergedRootProps), hasExplicitStructure ? children : (/*#__PURE__*/React.createElement(Vertical, {
3613
+ width: "100%"
3614
+ }, header && /*#__PURE__*/React.createElement(CardHeader, null, header), /*#__PURE__*/React.createElement(CardContent, null, children), footer && /*#__PURE__*/React.createElement(CardFooter, null, footer)))));
3597
3615
  };
3598
3616
 
3599
3617
  /**
@@ -6381,7 +6399,7 @@ var Shapes = {
6381
6399
  }
6382
6400
  }
6383
6401
  },
6384
- sharp: {
6402
+ square: {
6385
6403
  borderRadius: 0
6386
6404
  },
6387
6405
  rounded: {
@@ -6392,7 +6410,7 @@ var Shapes = {
6392
6410
  }
6393
6411
  }
6394
6412
  },
6395
- pillShaped: {
6413
+ pill: {
6396
6414
  borderRadius: '9999px'
6397
6415
  }
6398
6416
  };
@@ -7329,12 +7347,9 @@ var ColorSchemes = {
7329
7347
  // State-specific colors
7330
7348
  states: {
7331
7349
  hover: {
7332
- active: {
7333
- opacity: 0.9
7334
- },
7335
- inactive: {
7336
- backgroundColor: 'color.gray.400'
7337
- }
7350
+ active: 'theme.primary',
7351
+ inactive: 'color.gray.400',
7352
+ activeOpacity: 0.9
7338
7353
  },
7339
7354
  focus: {
7340
7355
  active: {
@@ -7348,6 +7363,17 @@ var ColorSchemes = {
7348
7363
  }
7349
7364
  }
7350
7365
  };
7366
+ /**
7367
+ * Transition styles for the Switch component
7368
+ */
7369
+ var TransitionStyles = {
7370
+ slider: {
7371
+ transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)'
7372
+ },
7373
+ knob: {
7374
+ transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)'
7375
+ }
7376
+ };
7351
7377
 
7352
7378
  var _excluded$t = ["id", "name", "label", "inActiveChild", "isChecked", "activeChild", "labelPosition", "shadow", "size", "value", "isHovered", "isDisabled", "isReadOnly", "on", "setOn", "onChange", "setValue", "setIsHovered", "helperText", "views"];
7353
7379
  var SwitchContent = props => /*#__PURE__*/React.createElement(Input, Object.assign({
@@ -7386,7 +7412,8 @@ var SwitchView = _ref => {
7386
7412
  if (onChange) onChange(newValue);
7387
7413
  }
7388
7414
  };
7389
- var handleHover = () => setIsHovered(!isHovered);
7415
+ var handleMouseEnter = () => setIsHovered(true);
7416
+ var handleMouseLeave = () => setIsHovered(false);
7390
7417
  /**
7391
7418
  * Styles for the switch component
7392
7419
  */
@@ -7408,8 +7435,8 @@ var SwitchView = _ref => {
7408
7435
  };
7409
7436
  return /*#__PURE__*/React.createElement(Label, Object.assign({
7410
7437
  htmlFor: id,
7411
- onMouseEnter: handleHover,
7412
- onMouseLeave: handleHover
7438
+ onMouseEnter: handleMouseEnter,
7439
+ onMouseLeave: handleMouseLeave
7413
7440
  }, switchStyle.container, props), /*#__PURE__*/React.createElement(SwitchContent, Object.assign({
7414
7441
  id: id,
7415
7442
  name: name,
@@ -7437,12 +7464,10 @@ var SwitchView = _ref => {
7437
7464
  borderRadius: "9999px" // Full rounded for pill shape
7438
7465
  ,
7439
7466
  backgroundColor: isDisabled ? ColorSchemes.default.disabled : value ? isHovered ? ColorSchemes.states.hover.active : ColorSchemes.default.active : isHovered ? ColorSchemes.states.hover.inactive : ColorSchemes.default.inactive,
7440
- overflow: "hidden",
7467
+ opacity: !isDisabled && value && isHovered ? ColorSchemes.states.hover.activeOpacity : 1,
7441
7468
  // State properties
7442
- cursor: "pointer",
7443
- // Animation
7444
- transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)"
7445
- }, shadow, SliderPadding[size], SliderSizes[size], views['slider']), activeChild && value && (/*#__PURE__*/React.createElement(View, {
7469
+ cursor: "pointer"
7470
+ }, TransitionStyles.slider, shadow, SliderPadding[size], SliderSizes[size], views['slider']), activeChild && value && (/*#__PURE__*/React.createElement(View, {
7446
7471
  marginLeft: 8,
7447
7472
  marginRight: 4,
7448
7473
  transition: "all 0.3s ease",
@@ -7453,8 +7478,9 @@ var SwitchView = _ref => {
7453
7478
  }, activeChild)), /*#__PURE__*/React.createElement(View, Object.assign({
7454
7479
  borderRadius: "50%",
7455
7480
  backgroundColor: ColorSchemes.default.knob,
7456
- boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
7457
- transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
7481
+ boxShadow: isHovered ? '0 2px 4px rgba(0, 0, 0, 0.2)' : '0 1px 2px rgba(0, 0, 0, 0.1)',
7482
+ transform: isHovered ? 'scale(1.05)' : 'scale(1)'
7483
+ }, TransitionStyles.knob, {
7458
7484
  zIndex: 1
7459
7485
  }, KnobSizes[size], views['circle'])), inActiveChild && !value && (/*#__PURE__*/React.createElement(View, {
7460
7486
  marginRight: 8,
@@ -8534,13 +8560,13 @@ var Shapes$1 = {
8534
8560
  default: {
8535
8561
  borderRadius: '6px'
8536
8562
  },
8537
- sharp: {
8563
+ square: {
8538
8564
  borderRadius: '0px'
8539
8565
  },
8540
8566
  rounded: {
8541
8567
  borderRadius: '8px'
8542
8568
  },
8543
- pillShaped: {
8569
+ pill: {
8544
8570
  borderRadius: '9999px'
8545
8571
  }
8546
8572
  };
@@ -11228,9 +11254,6 @@ var TagChip = _ref => {
11228
11254
  isReadOnly
11229
11255
  } = _ref;
11230
11256
  var [isRemoveHovered, setIsRemoveHovered] = React.useState(false);
11231
- var {
11232
- getColor
11233
- } = useTheme();
11234
11257
  var chipSize = {
11235
11258
  xs: {
11236
11259
  padding: '2px 8px',
@@ -11266,29 +11289,31 @@ var TagChip = _ref => {
11266
11289
  alignItems: "center",
11267
11290
  gap: 6,
11268
11291
  padding: chipSize.padding,
11269
- backgroundColor: "white",
11292
+ backgroundColor: "color.gray.100.100",
11270
11293
  borderRadius: "16px",
11271
- border: "1px solid",
11272
- borderColor: "color.black.100",
11294
+ borderWidth: "1px",
11295
+ borderStyle: "solid",
11296
+ borderColor: "color.gray.100",
11273
11297
  boxShadow: "0 1px 2px rgba(0,0,0,0.05)",
11274
11298
  transition: "all 0.2s cubic-bezier(0.4, 0, 0.2, 1)",
11275
11299
  opacity: isDisabled ? 0.6 : 1,
11276
11300
  _hover: !isDisabled && !isReadOnly ? {
11277
- borderColor: 'color.gray.300',
11301
+ backgroundColor: 'color.gray.100.200',
11302
+ borderColor: 'color.gray.200',
11278
11303
  boxShadow: '0 4px 6px rgba(0,0,0,0.05)',
11279
11304
  transform: 'translateY(-1px)'
11280
11305
  } : {}
11281
11306
  }, views == null ? void 0 : views.tag), /*#__PURE__*/React.createElement(Text, Object.assign({
11282
11307
  fontSize: chipSize.fontSize,
11283
- color: isDisabled ? 'color.gray.400' : 'color.gray.700',
11284
- fontWeight: "500",
11308
+ color: isDisabled ? 'color.gray.100' : 'theme.primary',
11285
11309
  whiteSpace: "nowrap"
11286
11310
  }, views == null ? void 0 : views.tagText), tag), isRemovable && !isDisabled && !isReadOnly && (/*#__PURE__*/React.createElement(View, Object.assign({
11287
11311
  cursor: "pointer",
11288
11312
  padding: "2px",
11289
11313
  borderRadius: "50%",
11290
11314
  transition: "all 0.2s ease",
11291
- backgroundColor: isRemoveHovered ? 'color.red.50' : 'transparent',
11315
+ backgroundColor: isRemoveHovered ? 'color.red.100' : 'transparent',
11316
+ opacity: isRemoveHovered ? 1 : 0.7,
11292
11317
  onMouseEnter: () => setIsRemoveHovered(true),
11293
11318
  onMouseLeave: () => setIsRemoveHovered(false),
11294
11319
  onClick: e => {
@@ -11355,7 +11380,7 @@ var TagInputView = _ref2 => {
11355
11380
  outline: 'none',
11356
11381
  backgroundColor: 'transparent',
11357
11382
  fontSize: Typography.fontSizes[size],
11358
- color: isDisabled ? 'color.gray.400' : 'color.gray.900',
11383
+ color: isDisabled ? 'color.gray.400' : 'color.gray.800',
11359
11384
  flex: 1,
11360
11385
  minWidth: '120px'
11361
11386
  }, views == null ? void 0 : views.input);
@@ -12775,7 +12800,7 @@ var Shapes$2 = {
12775
12800
  default: {
12776
12801
  borderRadius: '8px'
12777
12802
  },
12778
- sharp: {
12803
+ square: {
12779
12804
  borderRadius: '0px'
12780
12805
  },
12781
12806
  rounded: {
@@ -14442,9 +14467,9 @@ var ThumbSizes = {
14442
14467
  }
14443
14468
  };
14444
14469
  var SliderShapes = {
14445
- sharp: 0,
14470
+ square: 0,
14446
14471
  rounded: 4,
14447
- pillShaped: 24
14472
+ pill: 24
14448
14473
  };
14449
14474
  var getSlider = themeMode => {
14450
14475
  return {
@@ -15258,7 +15283,7 @@ var hideModal = name => {
15258
15283
  * Following the 4px grid system
15259
15284
  */
15260
15285
  var ContainerShapes = {
15261
- sharp: {
15286
+ square: {
15262
15287
  borderRadius: 0
15263
15288
  },
15264
15289
  rounded: {
@@ -16707,30 +16732,25 @@ var TabHeader = _ref => {
16707
16732
  textStyles
16708
16733
  } = _ref;
16709
16734
  // Base styles for the tab header
16735
+ // Base styles for the tab header
16710
16736
  var baseStyles = {
16711
16737
  display: 'flex',
16712
16738
  alignItems: 'center',
16713
16739
  justifyContent: 'center',
16714
- padding: '10px 16px',
16740
+ padding: '12px 16px',
16715
16741
  cursor: 'pointer',
16716
- borderTopLeftRadius: '4px',
16717
- borderTopRightRadius: '4px',
16718
- borderBottomLeftRadius: 0,
16719
- borderBottomRightRadius: 0,
16720
- borderWidth: '1px',
16721
- borderStyle: 'solid',
16722
- borderColor: isActive ? 'theme.primary' : 'transparent',
16723
- borderBottomColor: isActive ? 'transparent' : 'color.gray.200',
16724
- backgroundColor: isActive ? 'color.white' : 'transparent',
16742
+ borderBottom: '2px solid',
16743
+ borderBottomColor: isActive ? 'theme.primary' : 'transparent',
16744
+ backgroundColor: 'transparent',
16725
16745
  color: isActive ? 'theme.primary' : 'color.gray.600',
16726
- fontWeight: 'normal',
16727
- position: 'relative',
16728
- // If active, show a bottom border that matches the background color
16729
- // to create the illusion that the tab is connected to the content
16746
+ fontWeight: isActive ? '600' : '500',
16747
+ marginBottom: '-1px',
16748
+ transition: 'all 0.2s ease',
16730
16749
  // Hover state
16731
16750
  on: {
16732
16751
  hover: {
16733
- color: 'theme.primary'
16752
+ color: 'theme.primary',
16753
+ borderBottomColor: isActive ? 'theme.primary' : 'color.gray.300'
16734
16754
  }
16735
16755
  }
16736
16756
  };
@@ -16792,7 +16812,11 @@ var TabsView = _ref => {
16792
16812
  React.createElement(Vertical, Object.assign({
16793
16813
  width: "100%",
16794
16814
  height: '100%'
16795
- }, views.container), /*#__PURE__*/React.createElement(Horizontal, Object.assign({}, views.headerTabs), tabs.map(tab => {
16815
+ }, views.container), /*#__PURE__*/React.createElement(Horizontal, Object.assign({
16816
+ width: "100%",
16817
+ borderBottom: "1px solid",
16818
+ borderBottomColor: "color.gray.200"
16819
+ }, views.headerTabs), tabs.map(tab => {
16796
16820
  // Determine if the current tab in the loop is the active one
16797
16821
  var isActive = tab.title === activeTab.title;
16798
16822
  // Prepare the onClick handler for this specific tab
@@ -17366,7 +17390,7 @@ var SlideEffect = _ref => {
17366
17390
  }))))));
17367
17391
  };
17368
17392
 
17369
- var _excluded$$ = ["children", "highlightText", "highlightStyle", "highlightColor", "highlightSecondaryColor", "size", "views", "highlightAnimate", "animate", "animationLoop", "highlightAnimationLoop", "highlightTypewriter", "highlightTypewriterDuration", "highlightSlide", "highlightSlideDuration", "highlightSlideStagger", "highlightSlideSequential", "themeMode", "textComponent"];
17393
+ var _excluded$$ = ["children", "highlightText", "highlightStyle", "highlightColor", "highlightSecondaryColor", "size", "views", "highlightAnimate", "animate", "animationLoop", "highlightAnimationLoop", "highlightTypewriter", "highlightTypewriterDuration", "highlightSlide", "highlightSlideDuration", "highlightSlideStagger", "highlightSlideSequential", "themeMode"];
17370
17394
  function escapeRegExp(string) {
17371
17395
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
17372
17396
  }
@@ -17397,8 +17421,7 @@ var TitleView = _ref => {
17397
17421
  highlightSlideDuration = 500,
17398
17422
  highlightSlideStagger = 50,
17399
17423
  highlightSlideSequential = true,
17400
- themeMode: elementMode,
17401
- textComponent
17424
+ themeMode: elementMode
17402
17425
  } = _ref,
17403
17426
  props = _objectWithoutPropertiesLoose(_ref, _excluded$$);
17404
17427
  var {
@@ -17452,7 +17475,6 @@ var TitleView = _ref => {
17452
17475
  highlightSlideStagger,
17453
17476
  highlightSlideSequential
17454
17477
  }, props));
17455
- var TextComponent = textComponent || Text;
17456
17478
  var fontSize = TitleSizes[size];
17457
17479
  // Highlight style props
17458
17480
  var highlightProps = HighlightStyles[highlightStyle](resolvedHighlightColor, resolvedHighlightSecondaryColor);
@@ -17473,13 +17495,12 @@ var TitleView = _ref => {
17473
17495
  // Get the text to display
17474
17496
  var text = typeof finalDisplayedText === 'string' ? finalDisplayedText : typeof children === 'string' ? children : '';
17475
17497
  // Common container props
17476
- var containerProps = Object.assign({
17498
+ var containerProps = {
17477
17499
  ref,
17478
- animate: inView ? controlledAnimate : undefined
17479
- }, !textComponent && {
17500
+ animate: inView ? controlledAnimate : undefined,
17480
17501
  as: 'h1',
17481
17502
  fontSize
17482
- });
17503
+ };
17483
17504
  // Render highlighted text content (typewriter, slide, or plain)
17484
17505
  var renderHighlightedContent = content => {
17485
17506
  // If animations are enabled but not in view, render invisible placeholder
@@ -17495,8 +17516,7 @@ var TitleView = _ref => {
17495
17516
  return /*#__PURE__*/React.createElement(TypewriterEffect, Object.assign({
17496
17517
  text: content,
17497
17518
  typingSpeed: Math.max(30, highlightTypewriterDuration / (content.length * 10)),
17498
- cursorColor: "currentColor",
17499
- textComponent: TextComponent
17519
+ cursorColor: "currentColor"
17500
17520
  }, highlightProps));
17501
17521
  }
17502
17522
  if (highlightSlide) {
@@ -17507,8 +17527,7 @@ var TitleView = _ref => {
17507
17527
  sequential: stateHighlightSlideSequential,
17508
17528
  direction: "up",
17509
17529
  fontSize: fontSize,
17510
- wordProps: highlightProps,
17511
- textComponent: TextComponent
17530
+ wordProps: highlightProps
17512
17531
  });
17513
17532
  }
17514
17533
  return renderWithLineBreaks(content);
@@ -17528,13 +17547,11 @@ var TitleView = _ref => {
17528
17547
  lastIndex = match.index + match[0].length;
17529
17548
  }
17530
17549
  if (lastIndex < text.length) parts.push(text.substring(lastIndex));
17531
- return /*#__PURE__*/React.createElement(Element, Object.assign({
17532
- fontSize: fontSize
17533
- }, containerProps, views == null ? void 0 : views.container, props), parts.map((part, idx) => typeof part === 'string' ? (/*#__PURE__*/React.createElement(TextComponent, {
17550
+ return /*#__PURE__*/React.createElement(Element, Object.assign({}, containerProps, views == null ? void 0 : views.container, props), parts.map((part, idx) => typeof part === 'string' ? (/*#__PURE__*/React.createElement(Text, {
17534
17551
  key: "text-" + idx,
17535
17552
  as: "span",
17536
17553
  display: "inline"
17537
- }, renderWithLineBreaks(part))) : (/*#__PURE__*/React.createElement(TextComponent, Object.assign({
17554
+ }, renderWithLineBreaks(part))) : (/*#__PURE__*/React.createElement(Text, Object.assign({
17538
17555
  key: "highlight-" + idx,
17539
17556
  as: "span",
17540
17557
  display: "inline",
@@ -17543,16 +17560,14 @@ var TitleView = _ref => {
17543
17560
  }
17544
17561
  // Case 2: Has highlight style but no highlight target - apply style to entire title
17545
17562
  if (highlightStyle && !activeHighlightTarget) {
17546
- return /*#__PURE__*/React.createElement(Element, Object.assign({
17547
- fontSize: fontSize
17548
- }, containerProps, props, views == null ? void 0 : views.container), /*#__PURE__*/React.createElement(TextComponent, Object.assign({
17563
+ return /*#__PURE__*/React.createElement(Element, Object.assign({}, containerProps, props, views == null ? void 0 : views.container), /*#__PURE__*/React.createElement(Text, Object.assign({
17549
17564
  as: "span",
17550
17565
  display: "inline",
17551
17566
  animate: inView ? controlledHighlightAnimate : undefined
17552
17567
  }, !highlightSlide ? highlightProps : {}, views == null ? void 0 : views.highlight), renderHighlightedContent(text)));
17553
17568
  }
17554
17569
  // Case 3: Default - no highlighting
17555
- return /*#__PURE__*/React.createElement(TextComponent, Object.assign({}, containerProps, props, views == null ? void 0 : views.container), renderWithLineBreaks(text));
17570
+ return /*#__PURE__*/React.createElement(Text, Object.assign({}, containerProps, props, views == null ? void 0 : views.container), renderWithLineBreaks(text));
17556
17571
  };
17557
17572
 
17558
17573
  /**
@@ -17618,9 +17633,9 @@ var useToggleState = defaultToggled => {
17618
17633
  };
17619
17634
 
17620
17635
  var ToggleShapes = {
17621
- sharp: 0,
17636
+ square: 0,
17622
17637
  rounded: 4,
17623
- pillShaped: 24
17638
+ pill: 24
17624
17639
  };
17625
17640
  /**
17626
17641
  * Generate toggle variants with proper color combinations based on main color and contrast
@@ -17737,7 +17752,7 @@ var ToggleView = _ref => {
17737
17752
  };
17738
17753
  return /*#__PURE__*/React.createElement(Center, Object.assign({
17739
17754
  role: "Toggle",
17740
- padding: shape === 'pillShaped' ? '10px 12px' : '8px',
17755
+ padding: shape === 'pill' ? '10px 12px' : '8px',
17741
17756
  width: "fit-content",
17742
17757
  cursor: isDisabled ? 'not-allowed' : 'pointer',
17743
17758
  borderRadius: ToggleShapes[shape],
@@ -18646,13 +18661,13 @@ var Shapes$3 = {
18646
18661
  default: {
18647
18662
  borderRadius: '8px'
18648
18663
  },
18649
- sharp: {
18664
+ square: {
18650
18665
  borderRadius: 0
18651
18666
  },
18652
18667
  rounded: {
18653
18668
  borderRadius: '8px'
18654
18669
  },
18655
- pillShaped: {
18670
+ pill: {
18656
18671
  borderRadius: '9999px'
18657
18672
  }
18658
18673
  };
@@ -19114,13 +19129,13 @@ var Shapes$4 = {
19114
19129
  default: {
19115
19130
  borderRadius: '8px'
19116
19131
  },
19117
- sharp: {
19132
+ square: {
19118
19133
  borderRadius: 0
19119
19134
  },
19120
19135
  rounded: {
19121
19136
  borderRadius: '8px'
19122
19137
  },
19123
- pillShaped: {
19138
+ pill: {
19124
19139
  borderRadius: '9999px'
19125
19140
  }
19126
19141
  };