@app-studio/web 0.8.53 → 0.8.56

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.
@@ -4,7 +4,7 @@ export declare type FileProps = {
4
4
  src: string;
5
5
  color?: string;
6
6
  } & ViewProps;
7
- export declare const FileSVG: ({ src, color, ...props }: FileProps) => React.JSX.Element;
7
+ export declare const FileSVG: ({ src, color, themeMode: elementMode, ...props }: FileProps) => React.JSX.Element;
8
8
  export declare const FileImage: ({ path, ...props }: {
9
9
  path: string;
10
10
  } & ImageProps) => React.JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  import { ModalLayoutProps } from './Modal.props';
3
- export declare const ModalLayout: ({ modals: availableModals }: ModalLayoutProps) => React.JSX.Element | null;
3
+ export declare const ModalLayout: ({ modals: availableModals, onShow, onHide, }: ModalLayoutProps) => React.JSX.Element | null;
@@ -126,6 +126,8 @@ export interface ModalLayoutProps {
126
126
  modals: {
127
127
  [x: string]: React.FC<any>;
128
128
  };
129
+ onShow?: (name: string, props?: any) => void;
130
+ onHide?: (name?: string, props?: any) => void;
129
131
  }
130
132
  export interface ContainerProps extends Omit<ViewProps, 'size'> {
131
133
  /**
@@ -9,6 +9,10 @@ export interface ModalState {
9
9
  modals: ModalItem[];
10
10
  show: (name: string, modalProps?: any, overlayProps?: any) => void;
11
11
  hide: (name?: string) => void;
12
+ onShow: (name: string, props?: any) => void;
13
+ onHide: (name?: string) => void;
14
+ setOnShow: (onShow: (name: string, props?: any) => void) => void;
15
+ setOnHide: (onHide: (name?: string) => void) => void;
12
16
  }
13
17
  export declare const useModalStore: any;
14
18
  export declare const showModal: (name: string, modalProps?: any, overlayProps?: any) => void;
@@ -147,7 +147,6 @@ var TextView = _ref3 => {
147
147
  } : {};
148
148
  var fontSize = appStudio.Typography.fontSizes[size];
149
149
  return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
150
- role: "text",
151
150
  fontSize: fontSize,
152
151
  lineHeight: appStudio.Typography.lineHeights[size],
153
152
  fontStyle: isItalic ? 'italic' : 'normal',
@@ -2228,19 +2227,23 @@ var DefaultSpeeds = {
2228
2227
  slow: 300
2229
2228
  };
2230
2229
 
2231
- var _excluded$8 = ["size", "speed", "color"],
2232
- _excluded2$1 = ["size", "speed", "color"],
2233
- _excluded3$1 = ["size", "speed", "color"],
2230
+ var _excluded$8 = ["size", "speed", "color", "themeMode"],
2231
+ _excluded2$1 = ["size", "speed", "color", "themeMode"],
2232
+ _excluded3$1 = ["size", "speed", "color", "themeMode"],
2234
2233
  _excluded4$1 = ["size", "children", "textColor", "loaderColor", "type", "speed", "textPosition"];
2235
2234
  var DefaultSpinner = _ref => {
2236
2235
  var {
2237
2236
  size = 'md',
2238
2237
  speed = 'normal',
2239
- color = 'theme.loading'
2238
+ color = 'theme.loading',
2239
+ themeMode: elementMode
2240
2240
  } = _ref,
2241
2241
  props = _objectWithoutPropertiesLoose(_ref, _excluded$8);
2242
- var theme = appStudio.useTheme();
2243
- var colorStyle = theme.getColor(color);
2242
+ var {
2243
+ getColor,
2244
+ themeMode
2245
+ } = appStudio.useTheme();
2246
+ var colorStyle = getColor(color, elementMode ? elementMode : themeMode);
2244
2247
  var sizeStyle = typeof size === 'number' ? size : DefaultSizes[size];
2245
2248
  var [angle, setAngle] = React.useState(0);
2246
2249
  React.useEffect(() => {
@@ -2279,11 +2282,15 @@ var Dotted = _ref2 => {
2279
2282
  var {
2280
2283
  size = 'md',
2281
2284
  speed = 'normal',
2282
- color = 'theme.loading'
2285
+ color = 'theme.loading',
2286
+ themeMode: elementMode
2283
2287
  } = _ref2,
2284
2288
  props = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
2285
- var theme = appStudio.useTheme();
2286
- var colorStyle = theme.getColor(color);
2289
+ var {
2290
+ getColor,
2291
+ themeMode
2292
+ } = appStudio.useTheme();
2293
+ var colorStyle = getColor(color, elementMode ? elementMode : themeMode);
2287
2294
  var sizeStyle = typeof size === 'number' ? size : DefaultSizes[size];
2288
2295
  var [angle, setAngle] = React.useState(0);
2289
2296
  React.useEffect(() => {
@@ -2321,11 +2328,15 @@ var Quarter = _ref3 => {
2321
2328
  var {
2322
2329
  size = 'md',
2323
2330
  speed = 'normal',
2324
- color = 'theme.loading'
2331
+ color = 'theme.loading',
2332
+ themeMode: elementMode
2325
2333
  } = _ref3,
2326
2334
  props = _objectWithoutPropertiesLoose(_ref3, _excluded3$1);
2327
- var theme = appStudio.useTheme();
2328
- var colorStyle = theme.getColor(color);
2335
+ var {
2336
+ getColor,
2337
+ themeMode
2338
+ } = appStudio.useTheme();
2339
+ var colorStyle = getColor(color, elementMode ? elementMode : themeMode);
2329
2340
  var sizeStyle = typeof size === 'number' ? size : DefaultSizes[size];
2330
2341
  var [angle, setAngle] = React.useState(0);
2331
2342
  React.useEffect(() => {
@@ -2391,7 +2402,7 @@ React__default.createElement(LoaderView, Object.assign({}, props)));
2391
2402
  // Exports the LoaderComponent as Loader, making it available for use in other parts of the application.
2392
2403
  var Loader = LoaderComponent;
2393
2404
 
2394
- var _excluded$9 = ["icon", "shadow", "children", "ariaLabel", "to", "isAuto", "isFilled", "isIconRounded", "isLoading", "isDisabled", "size", "variant", "iconPosition", "colorScheme", "shape", "onClick", "loaderProps", "loaderPosition", "effect", "isHovered", "setIsHovered", "isExternal"];
2405
+ var _excluded$9 = ["icon", "shadow", "children", "ariaLabel", "to", "isAuto", "isFilled", "isIconRounded", "isLoading", "isDisabled", "size", "variant", "iconPosition", "colorScheme", "shape", "onClick", "loaderProps", "loaderPosition", "effect", "isHovered", "setIsHovered", "isExternal", "themeMode"];
2395
2406
  var contrast = /*#__PURE__*/require('contrast');
2396
2407
  var ButtonView = _ref => {
2397
2408
  var _props$onClick;
@@ -2425,14 +2436,16 @@ var ButtonView = _ref => {
2425
2436
  effect = 'default',
2426
2437
  isHovered,
2427
2438
  setIsHovered = () => {},
2428
- isExternal = false
2439
+ isExternal = false,
2440
+ themeMode: elementMode
2429
2441
  // Defines CSS properties for 'outline' variant of the button with conditional styles based on reverse state.
2430
2442
  } = _ref,
2431
2443
  props = _objectWithoutPropertiesLoose(_ref, _excluded$9);
2432
2444
  var {
2433
- getColor
2445
+ getColor,
2446
+ themeMode
2434
2447
  } = appStudio.useTheme();
2435
- var handleHover = () => setIsHovered(!isHovered);
2448
+ var handleHover = over => setIsHovered(over);
2436
2449
  var isActive = !(isDisabled || isLoading);
2437
2450
  var defaultNativeProps = {
2438
2451
  disabled: !isActive
@@ -2440,7 +2453,7 @@ var ButtonView = _ref => {
2440
2453
  var buttonColor = isActive ? colorScheme : 'theme.disabled';
2441
2454
  var hovering = isHovered && effect === 'hover';
2442
2455
  var reverse = isHovered && effect === 'reverse';
2443
- var isLight = contrast(getColor(buttonColor)) == 'light';
2456
+ var isLight = contrast(getColor(buttonColor, elementMode ? elementMode : themeMode)) == 'light';
2444
2457
  var ButtonVariants = {
2445
2458
  filled: {
2446
2459
  // Defines CSS properties for 'link' variant of the button with conditional styles based on reverse state, includes text decoration.
@@ -2491,7 +2504,6 @@ var ButtonView = _ref => {
2491
2504
  return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
2492
2505
  gap: 8,
2493
2506
  as: "button",
2494
- role: "button",
2495
2507
  border: "none",
2496
2508
  color: "color.white",
2497
2509
  display: "flex",
@@ -2501,8 +2513,8 @@ var ButtonView = _ref => {
2501
2513
  backgroundColor: buttonColor,
2502
2514
  borderRadius: ButtonShapes[shape],
2503
2515
  onClick: (_props$onClick = props.onClick) != null ? _props$onClick : onClick,
2504
- onMouseEnter: handleHover,
2505
- onMouseLeave: handleHover,
2516
+ onMouseEnter: () => handleHover(true),
2517
+ onMouseLeave: () => handleHover(false),
2506
2518
  cursor: isActive ? 'pointer' : 'default',
2507
2519
  filter: hovering ? 'brightness(0.85)' : 'brightness(1)'
2508
2520
  }, hovering && !props.isDisabled ? {
@@ -2543,20 +2555,22 @@ var ButtonComponent = props => {
2543
2555
  };
2544
2556
  var Button = ButtonComponent;
2545
2557
 
2546
- var _excluded$a = ["src", "color"],
2558
+ var _excluded$a = ["src", "color", "themeMode"],
2547
2559
  _excluded2$2 = ["path"];
2548
2560
  var FileSVG = _ref => {
2549
2561
  var {
2550
2562
  src,
2551
- color
2563
+ color,
2564
+ themeMode: elementMode
2552
2565
  } = _ref,
2553
2566
  props = _objectWithoutPropertiesLoose(_ref, _excluded$a);
2554
2567
  var {
2555
- getColor
2568
+ getColor,
2569
+ themeMode
2556
2570
  } = appStudio.useTheme();
2557
2571
  var Colorprops = color ? {
2558
- fill: getColor(color),
2559
- stroke: getColor(color)
2572
+ fill: getColor(color, elementMode ? elementMode : themeMode),
2573
+ stroke: getColor(color, elementMode ? elementMode : themeMode)
2560
2574
  } : {};
2561
2575
  return /*#__PURE__*/React__default.createElement(Center, Object.assign({}, props), /*#__PURE__*/React__default.createElement(appStudio.Image, Object.assign({}, Colorprops, {
2562
2576
  content: 'url("' + src + '")',
@@ -2694,13 +2708,13 @@ var PadddingWithLabel = {
2694
2708
  paddingTop: 14,
2695
2709
  paddingBottom: 0,
2696
2710
  paddingLeft: 16,
2697
- paddingRight: 36
2711
+ paddingRight: 16
2698
2712
  };
2699
2713
  var PaddingWithoutLabel = {
2700
2714
  paddingTop: 10,
2701
2715
  paddingBottom: 4,
2702
2716
  paddingLeft: 16,
2703
- paddingRight: 36
2717
+ paddingRight: 16
2704
2718
  };
2705
2719
 
2706
2720
  var _excluded$d = ["label", "shadow", "children", "value", "size", "shape", "variant", "error", "isWithLabel", "isFocused", "isHovered", "isDisabled", "isReadOnly", "colorScheme", "styles"];
@@ -3660,7 +3674,7 @@ var useTextFieldState = _ref => {
3660
3674
  };
3661
3675
  };
3662
3676
 
3663
- var _excluded$l = ["id", "name", "label", "hint", "value", "onChange", "left", "right", "helperText", "placeholder", "onChangeText", "shadow", "styles", "size", "shape", "variant", "colorScheme", "error", "isFocused", "isHovered", "isDisabled", "isReadOnly", "isClearable", "isAutoFocus", "setHint", "setIsFocused", "setIsHovered", "setValue", "onClick", "onFocus", "onBlur"];
3677
+ var _excluded$l = ["id", "name", "label", "hint", "value", "onChange", "left", "right", "helperText", "placeholder", "onChangeText", "shadow", "styles", "size", "shape", "variant", "colorScheme", "error", "isFocused", "isHovered", "isDisabled", "isReadOnly", "isClearable", "isAutoFocus", "setHint", "setIsFocused", "setIsHovered", "setValue", "onClick", "onFocus", "onBlur", "themeMode"];
3664
3678
  var TextFieldInput = props => /*#__PURE__*/React__default.createElement(appStudio.Input, Object.assign({
3665
3679
  type: "text"
3666
3680
  }, props));
@@ -3701,13 +3715,15 @@ var TextFieldView = _ref => {
3701
3715
  setValue = () => {},
3702
3716
  onClick = () => {},
3703
3717
  onFocus,
3704
- onBlur = () => {}
3718
+ onBlur = () => {},
3719
+ themeMode: elementMode
3705
3720
  } = _ref,
3706
3721
  props = _objectWithoutPropertiesLoose(_ref, _excluded$l);
3707
3722
  var {
3708
- getColor
3723
+ getColor,
3724
+ themeMode
3709
3725
  } = appStudio.useTheme();
3710
- var IconColor = getColor('color.blueGray.700');
3726
+ var IconColor = getColor('color.blueGray.700', elementMode ? elementMode : themeMode);
3711
3727
  var isWithLabel = !!(isFocused && label);
3712
3728
  var fieldStyles = Object.assign({
3713
3729
  margin: 0,
@@ -5478,7 +5494,7 @@ var IconSizes$4 = {
5478
5494
 
5479
5495
  var _excluded$n = ["size"],
5480
5496
  _excluded2$4 = ["size"],
5481
- _excluded3$3 = ["id", "name", "label", "value", "placeholder", "helperText", "hide", "error", "isHovered", "isFocused", "isAutoFocus", "isDisabled", "isReadOnly", "shadow", "newOptions", "size", "variant", "shape", "colorScheme", "onChange", "onBlur", "setHide", "setNewOptions", "setIsHovered", "setIsFocused", "setValue", "styles"];
5497
+ _excluded3$3 = ["id", "name", "label", "value", "placeholder", "helperText", "hide", "error", "isHovered", "isFocused", "isAutoFocus", "isDisabled", "isReadOnly", "shadow", "newOptions", "size", "variant", "shape", "colorScheme", "onChange", "onBlur", "setHide", "setNewOptions", "setIsHovered", "setIsFocused", "setValue", "styles", "themeMode"];
5482
5498
  var CountryList = _ref => {
5483
5499
  var props = _objectWithoutPropertiesLoose(_ref, _excluded$n);
5484
5500
  return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
@@ -5590,13 +5606,15 @@ var CountryPickerView = _ref5 => {
5590
5606
  dropDown: {},
5591
5607
  helperText: {},
5592
5608
  box: {}
5593
- }
5609
+ },
5610
+ themeMode: elementMode
5594
5611
  } = _ref5,
5595
5612
  props = _objectWithoutPropertiesLoose(_ref5, _excluded3$3);
5596
5613
  var {
5597
- getColor
5614
+ getColor,
5615
+ themeMode
5598
5616
  } = appStudio.useTheme();
5599
- var IconColor = getColor('color.blueGray.700');
5617
+ var IconColor = getColor('color.blueGray.700', elementMode ? elementMode : themeMode);
5600
5618
  var handleHover = () => setIsHovered(!isHovered);
5601
5619
  var handleFocus = () => setIsFocused(true);
5602
5620
  var handleCallback = option => {
@@ -6632,6 +6650,11 @@ var MessageLayout = _ref => {
6632
6650
 
6633
6651
  var useModalStore = /*#__PURE__*/zustand.create(set => ({
6634
6652
  modals: [],
6653
+ onHide: name => name,
6654
+ onShow: (name, props) => ({
6655
+ name,
6656
+ props
6657
+ }),
6635
6658
  show: function show(name, modalProps, overlayProps) {
6636
6659
  if (modalProps === void 0) {
6637
6660
  modalProps = {};
@@ -6639,7 +6662,7 @@ var useModalStore = /*#__PURE__*/zustand.create(set => ({
6639
6662
  if (overlayProps === void 0) {
6640
6663
  overlayProps = {};
6641
6664
  }
6642
- set(state => ({
6665
+ set(state => Object.assign({}, state, {
6643
6666
  modals: [...state.modals, {
6644
6667
  name,
6645
6668
  props: Object.assign({}, modalProps, {
@@ -6658,10 +6681,20 @@ var useModalStore = /*#__PURE__*/zustand.create(set => ({
6658
6681
  };
6659
6682
  }
6660
6683
  // Hide specific modal by name
6661
- return {
6684
+ return Object.assign({}, state, {
6662
6685
  modals: state.modals.filter(modal => modal.name !== name)
6663
- };
6686
+ });
6664
6687
  });
6688
+ },
6689
+ setOnHide: onHide => {
6690
+ set(state => Object.assign({}, state, {
6691
+ onHide
6692
+ }));
6693
+ },
6694
+ setOnShow: onShow => {
6695
+ set(state => Object.assign({}, state, {
6696
+ onShow
6697
+ }));
6665
6698
  }
6666
6699
  }));
6667
6700
  var showModal = function showModal(name, modalProps, overlayProps) {
@@ -6672,9 +6705,11 @@ var showModal = function showModal(name, modalProps, overlayProps) {
6672
6705
  overlayProps = {};
6673
6706
  }
6674
6707
  useModalStore.getState().show(name, modalProps, overlayProps);
6708
+ useModalStore.getState().onShow(name, modalProps);
6675
6709
  };
6676
6710
  var hideModal = name => {
6677
6711
  console.log('hideModal', name);
6712
+ useModalStore.getState().onHide(name);
6678
6713
  useModalStore.getState().hide(typeof name === 'string' ? name : undefined);
6679
6714
  };
6680
6715
 
@@ -6845,9 +6880,17 @@ var ModalFooter = _ref5 => {
6845
6880
 
6846
6881
  var ModalLayout = _ref => {
6847
6882
  var {
6848
- modals: availableModals
6883
+ modals: availableModals,
6884
+ onShow,
6885
+ onHide
6849
6886
  } = _ref;
6850
6887
  var activeModals = useModalStore(state => state.modals);
6888
+ if (onShow) {
6889
+ useModalStore.getState().setOnShow(onShow);
6890
+ }
6891
+ if (onHide) {
6892
+ useModalStore.getState().setOnHide(onHide);
6893
+ }
6851
6894
  if (activeModals.length === 0) {
6852
6895
  return null;
6853
6896
  }