@app-studio/web 0.8.72 → 0.8.73

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 (43) hide show
  1. package/dist/components/Form/Password/Password/Password.state.d.ts +1 -1
  2. package/dist/components/HoverCard/HoverCard/HoverCard.props.d.ts +65 -0
  3. package/dist/components/HoverCard/HoverCard/HoverCard.state.d.ts +5 -0
  4. package/dist/components/HoverCard/HoverCard/HoverCard.style.d.ts +3 -0
  5. package/dist/components/HoverCard/HoverCard/HoverCard.type.d.ts +6 -0
  6. package/dist/components/HoverCard/HoverCard/HoverCard.view.d.ts +10 -0
  7. package/dist/components/HoverCard/HoverCard.d.ts +2 -0
  8. package/dist/components/HoverCard/examples/default.d.ts +2 -0
  9. package/dist/components/HoverCard/examples/index.d.ts +1 -0
  10. package/dist/components/Slider/Slider/Slider.props.d.ts +112 -0
  11. package/dist/components/Slider/Slider/Slider.state.d.ts +14 -0
  12. package/dist/components/Slider/Slider/Slider.style.d.ts +11 -0
  13. package/dist/components/Slider/Slider/Slider.type.d.ts +18 -0
  14. package/dist/components/Slider/Slider/Slider.view.d.ts +3 -0
  15. package/dist/components/Slider/Slider.d.ts +6 -0
  16. package/dist/components/Slider/SliderDemo.d.ts +3 -0
  17. package/dist/components/Slider/examples/controlled.d.ts +2 -0
  18. package/dist/components/Slider/examples/custom.d.ts +2 -0
  19. package/dist/components/Slider/examples/default.d.ts +2 -0
  20. package/dist/components/Slider/examples/disabled.d.ts +2 -0
  21. package/dist/components/Slider/examples/range.d.ts +2 -0
  22. package/dist/components/Slider/examples/shapes.d.ts +2 -0
  23. package/dist/components/Slider/examples/sizes.d.ts +2 -0
  24. package/dist/components/Slider/examples/stepValues.d.ts +3 -0
  25. package/dist/components/Slider/examples/tooltip.d.ts +2 -0
  26. package/dist/components/Slider/examples/variants.d.ts +2 -0
  27. package/dist/components/Slider/examples/vertical.d.ts +2 -0
  28. package/dist/components/Slider/index.d.ts +1 -0
  29. package/dist/components/Table/Table.d.ts +8 -8
  30. package/dist/components/index.d.ts +3 -0
  31. package/dist/pages/hoverCard.page.d.ts +3 -0
  32. package/dist/pages/slider.page.d.ts +3 -0
  33. package/dist/web.cjs.development.js +713 -13
  34. package/dist/web.cjs.development.js.map +1 -1
  35. package/dist/web.cjs.production.min.js +1 -1
  36. package/dist/web.cjs.production.min.js.map +1 -1
  37. package/dist/web.esm.js +712 -14
  38. package/dist/web.esm.js.map +1 -1
  39. package/dist/web.umd.development.js +716 -17
  40. package/dist/web.umd.development.js.map +1 -1
  41. package/dist/web.umd.production.min.js +1 -1
  42. package/dist/web.umd.production.min.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('core-js/modules/es.symbol.description.js'), require('react'), require('core-js/modules/es.object.assign.js'), require('app-studio'), require('core-js/modules/es.array.iterator.js'), require('core-js/modules/es.parse-float.js'), require('core-js/modules/web.dom-collections.iterator.js'), require('core-js/modules/es.array.includes.js'), require('react-router-dom'), require('core-js/modules/es.string.includes.js'), require('core-js/modules/es.string.starts-with.js'), require('date-fns/format'), require('formik'), require('core-js/modules/web.url.js'), require('core-js/modules/web.url.to-json.js'), require('core-js/modules/web.url-search-params.js'), require('zustand'), require('src/components/Layout')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'core-js/modules/es.symbol.description.js', 'react', 'core-js/modules/es.object.assign.js', 'app-studio', 'core-js/modules/es.array.iterator.js', 'core-js/modules/es.parse-float.js', 'core-js/modules/web.dom-collections.iterator.js', 'core-js/modules/es.array.includes.js', 'react-router-dom', 'core-js/modules/es.string.includes.js', 'core-js/modules/es.string.starts-with.js', 'date-fns/format', 'formik', 'core-js/modules/web.url.js', 'core-js/modules/web.url.to-json.js', 'core-js/modules/web.url-search-params.js', 'zustand', 'src/components/Layout'], factory) :
4
- (global = global || self, factory(global['@app-studio/web'] = {}, null, global.React, null, global.appStudio, null, null, null, null, global.reactRouterDom, null, null, global.format, global.formik, null, null, null, global.zustand, global.Layout));
5
- }(this, (function (exports, es_symbol_description_js, React, es_object_assign_js, appStudio, es_array_iterator_js, es_parseFloat_js, web_domCollections_iterator_js, es_array_includes_js, reactRouterDom, es_string_includes_js, es_string_startsWith_js, format, formik, web_url_js, web_url_toJson_js, web_urlSearchParams_js, zustand, Layout) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('core-js/modules/es.symbol.description.js'), require('react'), require('core-js/modules/es.object.assign.js'), require('app-studio'), require('core-js/modules/es.array.iterator.js'), require('core-js/modules/es.parse-float.js'), require('core-js/modules/web.dom-collections.iterator.js'), require('core-js/modules/es.array.includes.js'), require('react-router-dom'), require('core-js/modules/es.string.includes.js'), require('core-js/modules/es.string.starts-with.js'), require('date-fns/format'), require('formik'), require('core-js/modules/es.number.to-fixed.js'), require('core-js/modules/web.url.js'), require('core-js/modules/web.url.to-json.js'), require('core-js/modules/web.url-search-params.js'), require('zustand'), require('src/components/Layout')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'core-js/modules/es.symbol.description.js', 'react', 'core-js/modules/es.object.assign.js', 'app-studio', 'core-js/modules/es.array.iterator.js', 'core-js/modules/es.parse-float.js', 'core-js/modules/web.dom-collections.iterator.js', 'core-js/modules/es.array.includes.js', 'react-router-dom', 'core-js/modules/es.string.includes.js', 'core-js/modules/es.string.starts-with.js', 'date-fns/format', 'formik', 'core-js/modules/es.number.to-fixed.js', 'core-js/modules/web.url.js', 'core-js/modules/web.url.to-json.js', 'core-js/modules/web.url-search-params.js', 'zustand', 'src/components/Layout'], factory) :
4
+ (global = global || self, factory(global['@app-studio/web'] = {}, null, global.React, null, global.appStudio, null, null, null, null, global.reactRouterDom, null, null, global.format, global.formik, null, null, null, null, global.zustand, global.Layout));
5
+ }(this, (function (exports, es_symbol_description_js, React, es_object_assign_js, appStudio, es_array_iterator_js, es_parseFloat_js, web_domCollections_iterator_js, es_array_includes_js, reactRouterDom, es_string_includes_js, es_string_startsWith_js, format, formik, es_number_toFixed_js, web_url_js, web_url_toJson_js, web_urlSearchParams_js, zustand, Layout) { 'use strict';
6
6
 
7
7
  var React__default = 'default' in React ? React['default'] : React;
8
8
  format = format && Object.prototype.hasOwnProperty.call(format, 'default') ? format['default'] : format;
@@ -706,7 +706,7 @@
706
706
  d: "M0 0h24v24H0z",
707
707
  fill: "none"
708
708
  }), /*#__PURE__*/React__default.createElement("path", {
709
- d: "M19 7.5c-1.333 -3 -3.667 -4.5 -7 -4.5c-5 0 -8 2.5 -8 9s3.5 9 8 9s7 -3 7\n -5s-1 -5 -7 -5c-2.5 0 -3 1.25 -3 2.5c0 1.5 1 2.5 2.5 2.5c2.5 0 3.5 -1.5 \n 3.5 -5s-2 -4 -3 -4s-1.833 .333 -2.5 1"
709
+ d: "M19 7.5c-1.333 -3 -3.667 -4.5 -7 -4.5c-5 0 -8 2.5 -8 9s3.5 9 8 9s7 -3 7\n -5s-1 -5 -7 -5c-2.5 0 -3 1.25 -3 2.5c0 1.5 1 2.5 2.5 2.5c2.5 0 3.5 -1.5\n 3.5 -5s-2 -4 -3 -4s-1.833 .333 -2.5 1"
710
710
  })));
711
711
  };
712
712
  // Example Refactored Icon: MinusIcon without undefined 'padding' prop
@@ -1392,7 +1392,9 @@
1392
1392
  viewBox: "0 0 24 24",
1393
1393
  "aria-hidden": "false",
1394
1394
  focusable: "false"
1395
- }, getSvgProps(filled, color, strokeWidth)), /*#__PURE__*/React__default.createElement("rect", {
1395
+ }, getSvgProps(filled, color, strokeWidth)), filled ? (/*#__PURE__*/React__default.createElement("path", {
1396
+ d: "M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"
1397
+ })) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("rect", {
1396
1398
  x: "3",
1397
1399
  y: "11",
1398
1400
  width: "18",
@@ -1401,7 +1403,11 @@
1401
1403
  ry: "2"
1402
1404
  }), /*#__PURE__*/React__default.createElement("path", {
1403
1405
  d: "M7 11V7a5 5 0 0 1 10 0v4"
1404
- })));
1406
+ }), /*#__PURE__*/React__default.createElement("circle", {
1407
+ cx: "12",
1408
+ cy: "16",
1409
+ r: "1.5"
1410
+ })))));
1405
1411
  };
1406
1412
  var MicrophoneIcon = _ref43 => {
1407
1413
  var {
@@ -1671,7 +1677,9 @@
1671
1677
  viewBox: "0 0 24 24",
1672
1678
  "aria-hidden": "false",
1673
1679
  focusable: "false"
1674
- }, getSvgProps(filled, color, strokeWidth)), /*#__PURE__*/React__default.createElement("rect", {
1680
+ }, getSvgProps(filled, color, strokeWidth)), filled ? (/*#__PURE__*/React__default.createElement("path", {
1681
+ d: "M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2z"
1682
+ })) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("rect", {
1675
1683
  x: "3",
1676
1684
  y: "11",
1677
1685
  width: "18",
@@ -1680,7 +1688,11 @@
1680
1688
  ry: "2"
1681
1689
  }), /*#__PURE__*/React__default.createElement("path", {
1682
1690
  d: "M7 11V7a5 5 0 0 1 9.9-1"
1683
- })));
1691
+ }), /*#__PURE__*/React__default.createElement("circle", {
1692
+ cx: "12",
1693
+ cy: "16",
1694
+ r: "1.5"
1695
+ })))));
1684
1696
  };
1685
1697
  var WifiIcon = _ref56 => {
1686
1698
  var {
@@ -6974,6 +6986,540 @@
6974
6986
  */
6975
6987
  var FormikComboBox = ComboBoxComponent$1;
6976
6988
 
6989
+ // Clamp value between min and max
6990
+ var clamp = (value, min, max) => Math.min(Math.max(value, min), max);
6991
+ // Calculate value based on position, track dimensions, min, max, step
6992
+ var calculateValue = (position, trackRect, min, max, step, orientation, stepValues) => {
6993
+ var range = max - min;
6994
+ var percentage;
6995
+ if (orientation === 'horizontal') {
6996
+ var trackLength = trackRect.width;
6997
+ var relativePosition = position - trackRect.left;
6998
+ percentage = clamp(relativePosition / trackLength, 0, 1);
6999
+ } else {
7000
+ // Vertical: top is max, bottom is min (reversed from the provided code)
7001
+ var _trackLength = trackRect.height;
7002
+ var _relativePosition = trackRect.bottom - position; // Y position relative to track bottom
7003
+ percentage = clamp(_relativePosition / _trackLength, 0, 1);
7004
+ }
7005
+ // If stepValues are provided, find the closest value in the array
7006
+ if (stepValues && stepValues.length > 0) {
7007
+ var rawValue = min + percentage * range;
7008
+ // Find the closest value in stepValues
7009
+ var closestValue = stepValues[0];
7010
+ var minDistance = Math.abs(rawValue - closestValue);
7011
+ for (var i = 1; i < stepValues.length; i++) {
7012
+ var distance = Math.abs(rawValue - stepValues[i]);
7013
+ if (distance < minDistance) {
7014
+ minDistance = distance;
7015
+ closestValue = stepValues[i];
7016
+ }
7017
+ }
7018
+ return closestValue;
7019
+ } else {
7020
+ // Use regular step logic
7021
+ var _rawValue = min + percentage * range;
7022
+ var steppedValue = Math.round(_rawValue / step) * step;
7023
+ // Final clamp to ensure step rounding doesn't exceed bounds
7024
+ return clamp(steppedValue, min, max);
7025
+ }
7026
+ };
7027
+ var useSliderState = _ref => {
7028
+ var _ref2;
7029
+ var {
7030
+ min = 0,
7031
+ max = 100,
7032
+ step = 1,
7033
+ value: controlledValue = 0,
7034
+ defaultValue,
7035
+ onChange,
7036
+ onDrag,
7037
+ orientation = 'horizontal',
7038
+ isDisabled = false,
7039
+ stepValues
7040
+ } = _ref;
7041
+ var initialValue = clamp((_ref2 = controlledValue != null ? controlledValue : defaultValue) != null ? _ref2 : min, min, max);
7042
+ var [internalValue, setInternalValue] = React.useState(initialValue);
7043
+ var [isDragging, setIsDragging] = React.useState(false);
7044
+ var [isHovered, setIsHovered] = React.useState(false);
7045
+ var trackRef = React.useRef(null);
7046
+ var thumbRef = React.useRef(null);
7047
+ var isControlled = controlledValue !== undefined;
7048
+ var currentValue = isControlled ? controlledValue : internalValue;
7049
+ // Update internal state if controlled value changes
7050
+ React.useEffect(() => {
7051
+ if (isControlled) {
7052
+ setInternalValue(clamp(controlledValue, min, max));
7053
+ }
7054
+ }, [controlledValue, isControlled, min, max]);
7055
+ var updateValue = React.useCallback(newValue => {
7056
+ var clampedValue = clamp(newValue, min, max);
7057
+ if (!isControlled) {
7058
+ setInternalValue(clampedValue);
7059
+ }
7060
+ if (onChange && clampedValue !== currentValue) {
7061
+ onChange(clampedValue);
7062
+ }
7063
+ if (isDragging && onDrag) {
7064
+ onDrag(clampedValue);
7065
+ }
7066
+ }, [isControlled, min, max, onChange, currentValue, isDragging, onDrag]);
7067
+ var handleInteraction = React.useCallback(event => {
7068
+ if (isDisabled || !trackRef.current) return;
7069
+ var trackRect = trackRef.current.getBoundingClientRect();
7070
+ var position;
7071
+ if ('touches' in event) {
7072
+ position = orientation === 'horizontal' ? event.touches[0].clientX : event.touches[0].clientY;
7073
+ } else {
7074
+ position = orientation === 'horizontal' ? event.clientX : event.clientY;
7075
+ }
7076
+ var newValue = calculateValue(position, trackRect, min, max, step, orientation, stepValues);
7077
+ updateValue(newValue);
7078
+ }, [min, max, step, orientation, updateValue, isDisabled, stepValues]);
7079
+ var handleMouseDown = React.useCallback(event => {
7080
+ if (isDisabled) return;
7081
+ event.preventDefault(); // Prevent text selection during drag
7082
+ setIsDragging(true);
7083
+ handleInteraction(event); // Update value immediately on click/touch
7084
+ var handleMouseMove = moveEvent => {
7085
+ handleInteraction(moveEvent);
7086
+ };
7087
+ var handleMouseUp = () => {
7088
+ setIsDragging(false);
7089
+ document.removeEventListener('mousemove', handleMouseMove);
7090
+ document.removeEventListener('mouseup', handleMouseUp);
7091
+ document.removeEventListener('touchmove', handleMouseMove);
7092
+ document.removeEventListener('touchend', handleMouseUp);
7093
+ };
7094
+ document.addEventListener('mousemove', handleMouseMove);
7095
+ document.addEventListener('mouseup', handleMouseUp);
7096
+ document.addEventListener('touchmove', handleMouseMove);
7097
+ document.addEventListener('touchend', handleMouseUp);
7098
+ }, [handleInteraction, isDisabled]);
7099
+ // Allow clicking directly on the track
7100
+ var handleTrackMouseDown = React.useCallback(event => {
7101
+ // Prevent triggering if click is on the thumb itself
7102
+ if (thumbRef.current && thumbRef.current.contains(event.target)) {
7103
+ return;
7104
+ }
7105
+ handleMouseDown(event);
7106
+ }, [handleMouseDown]);
7107
+ var handleKeyDown = React.useCallback(event => {
7108
+ if (isDisabled) return;
7109
+ var newValue = currentValue;
7110
+ switch (event.key) {
7111
+ case 'ArrowLeft':
7112
+ case 'ArrowDown':
7113
+ newValue = currentValue - step;
7114
+ break;
7115
+ case 'ArrowRight':
7116
+ case 'ArrowUp':
7117
+ newValue = currentValue + step;
7118
+ break;
7119
+ case 'Home':
7120
+ newValue = min;
7121
+ break;
7122
+ case 'End':
7123
+ newValue = max;
7124
+ break;
7125
+ default:
7126
+ return;
7127
+ // Exit if key is not handled
7128
+ }
7129
+ event.preventDefault(); // Prevent page scroll
7130
+ updateValue(newValue);
7131
+ }, [currentValue, min, max, step, updateValue, isDisabled]);
7132
+ var range = max - min;
7133
+ var thumbPositionPercent = range === 0 ? 0 : (currentValue - min) / range * 100;
7134
+ return {
7135
+ currentValue,
7136
+ isDragging,
7137
+ isHovered,
7138
+ setIsHovered,
7139
+ trackRef,
7140
+ thumbRef,
7141
+ handleThumbMouseDown: handleMouseDown,
7142
+ handleTrackMouseDown,
7143
+ handleKeyDown,
7144
+ thumbPositionPercent
7145
+ };
7146
+ };
7147
+
7148
+ var SliderSizes$1 = {
7149
+ xs: {
7150
+ height: 4,
7151
+ width: '100%'
7152
+ },
7153
+ sm: {
7154
+ height: 6,
7155
+ width: '100%'
7156
+ },
7157
+ md: {
7158
+ height: 8,
7159
+ width: '100%'
7160
+ },
7161
+ lg: {
7162
+ height: 10,
7163
+ width: '100%'
7164
+ },
7165
+ xl: {
7166
+ height: 12,
7167
+ width: '100%'
7168
+ }
7169
+ };
7170
+ var ThumbSizes = {
7171
+ xs: {
7172
+ width: 12,
7173
+ height: 12
7174
+ },
7175
+ sm: {
7176
+ width: 16,
7177
+ height: 16
7178
+ },
7179
+ md: {
7180
+ width: 20,
7181
+ height: 20
7182
+ },
7183
+ lg: {
7184
+ width: 24,
7185
+ height: 24
7186
+ },
7187
+ xl: {
7188
+ width: 28,
7189
+ height: 28
7190
+ }
7191
+ };
7192
+ var SliderShapes = {
7193
+ sharp: 0,
7194
+ rounded: 4,
7195
+ pillShaped: 24
7196
+ };
7197
+ var SliderVariants = {
7198
+ default: {
7199
+ backgroundColor: 'color.blueGray.200'
7200
+ },
7201
+ outline: {
7202
+ backgroundColor: 'transparent',
7203
+ borderWidth: 1,
7204
+ borderStyle: 'solid',
7205
+ borderColor: 'color.blueGray.300'
7206
+ }
7207
+ };
7208
+ // Maps Size enum to track height/width and thumb size for the new implementation
7209
+ var EnhancedSliderSizes = {
7210
+ xs: {
7211
+ trackCrossAxisSize: 4,
7212
+ thumbSize: 12
7213
+ },
7214
+ sm: {
7215
+ trackCrossAxisSize: 6,
7216
+ thumbSize: 16
7217
+ },
7218
+ md: {
7219
+ trackCrossAxisSize: 8,
7220
+ thumbSize: 20
7221
+ },
7222
+ lg: {
7223
+ trackCrossAxisSize: 10,
7224
+ thumbSize: 24
7225
+ },
7226
+ xl: {
7227
+ trackCrossAxisSize: 12,
7228
+ thumbSize: 28
7229
+ }
7230
+ };
7231
+ // Basic styles for horizontal and vertical orientation
7232
+ var OrientationStyles = {
7233
+ horizontal: {
7234
+ width: '100%',
7235
+ minWidth: '120px',
7236
+ height: 'auto',
7237
+ flexDirection: 'row',
7238
+ paddingVertical: 8
7239
+ },
7240
+ vertical: {
7241
+ height: '100%',
7242
+ minHeight: '120px',
7243
+ width: 'auto',
7244
+ flexDirection: 'column-reverse',
7245
+ paddingHorizontal: 8
7246
+ }
7247
+ };
7248
+
7249
+ var _excluded$y = ["min", "max", "step", "currentValue", "stepValues", "shape", "size", "variant", "orientation", "isDisabled", "showValue", "showTooltip", "colorScheme", "label", "helperText", "themeMode", "shadow", "isDragging", "isHovered", "setIsHovered", "trackRef", "thumbRef", "handleThumbMouseDown", "handleTrackMouseDown", "handleKeyDown", "thumbPositionPercent", "ariaLabel", "views"];
7250
+ var SliderView = _ref => {
7251
+ var _views$tooltip, _views$tooltip2;
7252
+ var {
7253
+ min = 0,
7254
+ max = 100,
7255
+ step = 1,
7256
+ currentValue,
7257
+ stepValues,
7258
+ shape = 'rounded',
7259
+ size = 'md',
7260
+ variant = 'default',
7261
+ orientation = 'horizontal',
7262
+ isDisabled = false,
7263
+ showValue = false,
7264
+ showTooltip = false,
7265
+ colorScheme = 'theme.primary',
7266
+ label,
7267
+ helperText,
7268
+ themeMode: elementMode,
7269
+ shadow = {},
7270
+ isDragging,
7271
+ isHovered,
7272
+ setIsHovered,
7273
+ trackRef,
7274
+ thumbRef,
7275
+ handleThumbMouseDown,
7276
+ handleTrackMouseDown,
7277
+ handleKeyDown,
7278
+ thumbPositionPercent,
7279
+ ariaLabel = 'Slider',
7280
+ views = {
7281
+ container: {},
7282
+ track: {},
7283
+ progress: {},
7284
+ filledTrack: {},
7285
+ thumb: {},
7286
+ label: {},
7287
+ valueLabel: {},
7288
+ stepMarks: {},
7289
+ tooltip: {}
7290
+ }
7291
+ } = _ref,
7292
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$y);
7293
+ var {
7294
+ getColor,
7295
+ themeMode
7296
+ } = appStudio.useTheme();
7297
+ var themeColor = getColor(colorScheme, elementMode || themeMode);
7298
+ var disabledColor = getColor('theme.disabled', elementMode || themeMode);
7299
+ var trackColor = getColor(SliderVariants[variant].backgroundColor, elementMode || themeMode);
7300
+ var isVertical = orientation === 'vertical';
7301
+ var {
7302
+ trackCrossAxisSize,
7303
+ thumbSize
7304
+ } = EnhancedSliderSizes[size] || {
7305
+ trackCrossAxisSize: SliderSizes$1[size].height,
7306
+ thumbSize: ThumbSizes[size].width || 16
7307
+ };
7308
+ // For backward compatibility with the old implementation
7309
+ var legacyView = /*#__PURE__*/React__default.createElement(Vertical, Object.assign({
7310
+ width: "100%",
7311
+ gap: 8
7312
+ }, views.container, props), label && (/*#__PURE__*/React__default.createElement(Horizontal, {
7313
+ justifyContent: "space-between",
7314
+ alignItems: "center"
7315
+ }, /*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
7316
+ fontSize: 14,
7317
+ fontWeight: 500
7318
+ }, views.label), label), showValue && (/*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
7319
+ fontSize: 14,
7320
+ color: "color.blueGray.500"
7321
+ }, views.valueLabel), currentValue)))), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7322
+ ref: trackRef,
7323
+ position: "relative",
7324
+ cursor: isDisabled ? 'not-allowed' : 'pointer',
7325
+ opacity: isDisabled ? 0.6 : 1,
7326
+ onMouseDown: handleTrackMouseDown,
7327
+ onMouseEnter: () => setIsHovered(true),
7328
+ onMouseLeave: () => setIsHovered(false)
7329
+ }, SliderSizes$1[size], {
7330
+ borderRadius: SliderShapes[shape],
7331
+ backgroundColor: trackColor
7332
+ }, SliderVariants[variant], shadow, views.track), stepValues && stepValues.length > 0 && (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, stepValues.map(stepValue => {
7333
+ var stepPercentage = (stepValue - min) / (max - min) * 100;
7334
+ return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7335
+ key: stepValue,
7336
+ position: "absolute",
7337
+ top: "50%",
7338
+ left: stepPercentage + "%",
7339
+ transform: "translate(-50%, -50%)",
7340
+ width: 4,
7341
+ height: 4,
7342
+ borderRadius: "50%",
7343
+ backgroundColor: isDisabled ? disabledColor : themeColor,
7344
+ zIndex: 1
7345
+ }, views.stepMarks));
7346
+ }))), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7347
+ position: "absolute",
7348
+ top: 0,
7349
+ left: 0,
7350
+ height: "100%",
7351
+ width: thumbPositionPercent + "%",
7352
+ backgroundColor: isDisabled ? disabledColor : themeColor,
7353
+ borderRadius: SliderShapes[shape],
7354
+ transition: "width 0.1s ease-in-out"
7355
+ }, views.progress, views.filledTrack)), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7356
+ ref: thumbRef,
7357
+ role: "slider",
7358
+ tabIndex: isDisabled ? -1 : 0,
7359
+ "aria-valuemin": min,
7360
+ "aria-valuemax": max,
7361
+ "aria-valuenow": currentValue,
7362
+ "aria-orientation": orientation,
7363
+ "aria-disabled": isDisabled,
7364
+ "aria-label": ariaLabel,
7365
+ position: "absolute",
7366
+ top: "50%",
7367
+ left: thumbPositionPercent + "%",
7368
+ borderRadius: "50%",
7369
+ backgroundColor: "white",
7370
+ boxShadow: "0 2px 4px rgba(0, 0, 0, 0.2)",
7371
+ border: "2px solid " + (isDisabled ? disabledColor : themeColor),
7372
+ transition: isDragging ? 'none' : 'transform 0.1s ease-in-out',
7373
+ transform: isHovered ? 'translate(-50%, -50%) scale(1.1)' : 'translate(-50%, -50%)',
7374
+ zIndex: 2,
7375
+ onMouseDown: handleThumbMouseDown,
7376
+ onTouchStart: handleThumbMouseDown,
7377
+ onKeyDown: handleKeyDown
7378
+ }, ThumbSizes[size], views.thumb), showTooltip && (isHovered || isDragging) && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7379
+ position: "absolute",
7380
+ bottom: "100%",
7381
+ left: "50%",
7382
+ transform: "translateX(-50%)",
7383
+ marginBottom: 8,
7384
+ padding: "4px 8px",
7385
+ backgroundColor: "color.black",
7386
+ color: "color.white",
7387
+ borderRadius: 4,
7388
+ fontSize: 12,
7389
+ whiteSpace: "nowrap",
7390
+ zIndex: 3
7391
+ }, views.tooltip), /*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({}, (_views$tooltip = views.tooltip) == null ? void 0 : _views$tooltip.text), currentValue == null ? void 0 : currentValue.toFixed(step < 1 ? 1 : 0)))))), helperText && /*#__PURE__*/React__default.createElement(HelperText, null, helperText));
7392
+ // Enhanced view with vertical support and other features
7393
+ var enhancedView = /*#__PURE__*/React__default.createElement(Center
7394
+ // Use Center to easily manage orientation layout
7395
+ , Object.assign({}, OrientationStyles[orientation], {
7396
+ position: "relative" // Needed for absolute positioning of thumb/tooltip
7397
+ ,
7398
+ onMouseEnter: () => !isDisabled && setIsHovered(true),
7399
+ onMouseLeave: () => !isDisabled && setIsHovered(false)
7400
+ }, props, views == null ? void 0 : views.container), label && (/*#__PURE__*/React__default.createElement(Horizontal, {
7401
+ justifyContent: "space-between",
7402
+ alignItems: "center",
7403
+ marginBottom: 8,
7404
+ width: "100%"
7405
+ }, /*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
7406
+ fontSize: 14,
7407
+ fontWeight: 500
7408
+ }, views.label), label), showValue && (/*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({
7409
+ fontSize: 14,
7410
+ color: "color.blueGray.500"
7411
+ }, views.valueLabel), currentValue)))), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7412
+ ref: trackRef,
7413
+ position: "relative",
7414
+ borderRadius: trackCrossAxisSize / 2,
7415
+ backgroundColor: isDisabled ? disabledColor : trackColor,
7416
+ cursor: isDisabled ? 'not-allowed' : 'pointer',
7417
+ width: isVertical ? trackCrossAxisSize + "px" : '100%',
7418
+ height: isVertical ? '100%' : trackCrossAxisSize + "px",
7419
+ onMouseDown: handleTrackMouseDown,
7420
+ onTouchStart: handleTrackMouseDown
7421
+ }, views == null ? void 0 : views.track), stepValues && stepValues.length > 0 && (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, stepValues.map(stepValue => {
7422
+ var stepPercentage = (stepValue - min) / (max - min) * 100;
7423
+ return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7424
+ key: stepValue,
7425
+ position: "absolute",
7426
+ width: 4,
7427
+ height: 4,
7428
+ borderRadius: "50%",
7429
+ backgroundColor: isDisabled ? disabledColor : themeColor,
7430
+ zIndex: 1
7431
+ }, isVertical ? {
7432
+ bottom: stepPercentage + "%",
7433
+ left: '50%',
7434
+ transform: 'translate(-50%, 50%)'
7435
+ } : {
7436
+ left: stepPercentage + "%",
7437
+ top: '50%',
7438
+ transform: 'translate(-50%, -50%)'
7439
+ }, views.stepMarks));
7440
+ }))), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7441
+ position: "absolute",
7442
+ borderRadius: trackCrossAxisSize / 2,
7443
+ backgroundColor: isDisabled ? disabledColor : themeColor
7444
+ }, isVertical ? {
7445
+ bottom: 0,
7446
+ left: 0,
7447
+ width: '100%',
7448
+ height: thumbPositionPercent + "%"
7449
+ } : {
7450
+ top: 0,
7451
+ left: 0,
7452
+ height: '100%',
7453
+ width: thumbPositionPercent + "%"
7454
+ }, views == null ? void 0 : views.filledTrack, views == null ? void 0 : views.progress)), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7455
+ ref: thumbRef,
7456
+ role: "slider",
7457
+ tabIndex: isDisabled ? -1 : 0,
7458
+ "aria-valuemin": min,
7459
+ "aria-valuemax": max,
7460
+ "aria-valuenow": currentValue,
7461
+ "aria-orientation": orientation,
7462
+ "aria-disabled": isDisabled,
7463
+ "aria-label": ariaLabel,
7464
+ position: "absolute",
7465
+ width: thumbSize + "px",
7466
+ height: thumbSize + "px",
7467
+ borderRadius: "50%",
7468
+ backgroundColor: isDisabled ? disabledColor : themeColor,
7469
+ border: "2px solid " + getColor('color.white'),
7470
+ boxShadow: "0 1px 3px rgba(0, 0, 0, 0.2)",
7471
+ cursor: isDisabled ? 'not-allowed' : 'grab',
7472
+ transform: isVertical ? 'translateX(-50%)' : 'translateY(-50%)',
7473
+ zIndex: 2,
7474
+ transition: isDragging ? 'none' : 'left 0.1s, bottom 0.1s'
7475
+ }, isVertical ? {
7476
+ left: '50%',
7477
+ bottom: thumbPositionPercent + "%"
7478
+ } : {
7479
+ top: '50%',
7480
+ left: thumbPositionPercent + "%"
7481
+ }, {
7482
+ onMouseDown: handleThumbMouseDown,
7483
+ onTouchStart: handleThumbMouseDown,
7484
+ onKeyDown: handleKeyDown
7485
+ }, views == null ? void 0 : views.thumb), showTooltip && (isHovered || isDragging) && (/*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
7486
+ position: "absolute",
7487
+ padding: "4px 8px",
7488
+ backgroundColor: getColor('color.black'),
7489
+ color: getColor('color.white'),
7490
+ borderRadius: "4px",
7491
+ fontSize: "12px",
7492
+ whiteSpace: "nowrap",
7493
+ zIndex: 3
7494
+ }, isVertical ? {
7495
+ left: '100%',
7496
+ marginLeft: '8px',
7497
+ bottom: '0',
7498
+ transform: 'translateY(50%)'
7499
+ } : {
7500
+ bottom: '100%',
7501
+ left: '50%',
7502
+ marginBottom: '8px',
7503
+ transform: 'translateX(-50%)'
7504
+ }, views == null ? void 0 : views.tooltip), /*#__PURE__*/React__default.createElement(appStudio.Text, Object.assign({}, views == null || (_views$tooltip2 = views.tooltip) == null ? void 0 : _views$tooltip2.text), currentValue == null ? void 0 : currentValue.toFixed(step < 1 ? 1 : 0)))))), helperText && /*#__PURE__*/React__default.createElement(HelperText, {
7505
+ marginTop: 8
7506
+ }, helperText));
7507
+ // Use the enhanced view if orientation is vertical or showTooltip is true
7508
+ // Otherwise use the legacy view for backward compatibility
7509
+ return isVertical || showTooltip ? enhancedView : legacyView;
7510
+ };
7511
+
7512
+ var SliderComponent = props => {
7513
+ // Get state and handlers from the custom hook
7514
+ var sliderState = useSliderState(props);
7515
+ // Render the view component, passing down props and state
7516
+ return /*#__PURE__*/React__default.createElement(SliderView, Object.assign({}, props, sliderState));
7517
+ };
7518
+ /**
7519
+ * Slider allows users to select a value from a range by moving a handle.
7520
+ */
7521
+ var Slider = SliderComponent;
7522
+
6977
7523
  // Create your store with the initial state and actions.
6978
7524
  var useMessageStore = /*#__PURE__*/zustand.create(set => ({
6979
7525
  // initial state
@@ -7506,7 +8052,7 @@
7506
8052
  }, views == null ? void 0 : views.view)));
7507
8053
  };
7508
8054
 
7509
- var _excluded$y = ["accept", "icon", "text", "maxSize", "onFileSelect", "validateFile", "isLoading", "progress"];
8055
+ var _excluded$z = ["accept", "icon", "text", "maxSize", "onFileSelect", "validateFile", "isLoading", "progress"];
7510
8056
  var Uploader = _ref => {
7511
8057
  var {
7512
8058
  accept = '*/*',
@@ -7518,7 +8064,7 @@
7518
8064
  isLoading = false,
7519
8065
  progress = 0
7520
8066
  } = _ref,
7521
- props = _objectWithoutPropertiesLoose(_ref, _excluded$y);
8067
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$z);
7522
8068
  var {
7523
8069
  previewUrl,
7524
8070
  thumbnailUrl,
@@ -7655,7 +8201,7 @@
7655
8201
  xl: 28
7656
8202
  };
7657
8203
 
7658
- var _excluded$z = ["children", "blur", "isOpen", "isClosePrevented", "onClose", "position", "views"],
8204
+ var _excluded$A = ["children", "blur", "isOpen", "isClosePrevented", "onClose", "position", "views"],
7659
8205
  _excluded2$7 = ["children", "shadow", "isFullScreen", "shape", "views"],
7660
8206
  _excluded3$4 = ["children", "buttonColor", "iconSize", "buttonPosition", "views"],
7661
8207
  _excluded4$3 = ["children", "views"],
@@ -7670,7 +8216,7 @@
7670
8216
  position = 'center',
7671
8217
  views
7672
8218
  } = _ref,
7673
- props = _objectWithoutPropertiesLoose(_ref, _excluded$z);
8219
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$A);
7674
8220
  var handleClick = () => {
7675
8221
  if (!isClosePrevented) onClose();
7676
8222
  };
@@ -8149,7 +8695,7 @@
8149
8695
  };
8150
8696
  };
8151
8697
 
8152
- var _excluded$A = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views"];
8698
+ var _excluded$B = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views"];
8153
8699
  var ToggleView = _ref => {
8154
8700
  var {
8155
8701
  children,
@@ -8163,7 +8709,7 @@
8163
8709
  onToggle,
8164
8710
  views
8165
8711
  } = _ref,
8166
- props = _objectWithoutPropertiesLoose(_ref, _excluded$A);
8712
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$B);
8167
8713
  var toggleColor = !isDisabled ? 'color.trueGray.400' : 'theme.disabled';
8168
8714
  var isActive = !!(isToggle || isHovered);
8169
8715
  var toggleVariants = {
@@ -8206,7 +8752,7 @@
8206
8752
  }, toggleVariants[variant], props, views == null ? void 0 : views.container), children);
8207
8753
  };
8208
8754
 
8209
- var _excluded$B = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
8755
+ var _excluded$C = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
8210
8756
  // Destructuring properties from ToggleProps to be used within the ToggleComponent.
8211
8757
  var ToggleComponent = _ref => {
8212
8758
  var {
@@ -8218,7 +8764,7 @@
8218
8764
  isToggled = false,
8219
8765
  onToggle
8220
8766
  } = _ref,
8221
- props = _objectWithoutPropertiesLoose(_ref, _excluded$B);
8767
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$C);
8222
8768
  // Initializing toggle state and set state functions using the custom hook useToggleState.
8223
8769
  var {
8224
8770
  isHovered,
@@ -8458,6 +9004,157 @@
8458
9004
  };
8459
9005
  var DragAndDrop = DragAndDropComponent;
8460
9006
 
9007
+ var useHoverCardState = () => {
9008
+ var [isOpen, setIsOpen] = React.useState(false);
9009
+ return {
9010
+ isOpen,
9011
+ setIsOpen
9012
+ };
9013
+ };
9014
+
9015
+ var ContentPositions = {
9016
+ top: align => Object.assign({
9017
+ position: 'absolute',
9018
+ bottom: '100%',
9019
+ marginBottom: '8px'
9020
+ }, align === 'start' && {
9021
+ left: 0
9022
+ }, align === 'center' && {
9023
+ left: '50%',
9024
+ transform: 'translateX(-50%)'
9025
+ }, align === 'end' && {
9026
+ right: 0
9027
+ }),
9028
+ right: align => Object.assign({
9029
+ position: 'absolute',
9030
+ left: '100%',
9031
+ marginLeft: '8px'
9032
+ }, align === 'start' && {
9033
+ top: 0
9034
+ }, align === 'center' && {
9035
+ top: '50%',
9036
+ transform: 'translateY(-50%)'
9037
+ }, align === 'end' && {
9038
+ bottom: 0
9039
+ }),
9040
+ bottom: align => Object.assign({
9041
+ position: 'absolute',
9042
+ top: '100%',
9043
+ marginTop: '8px'
9044
+ }, align === 'start' && {
9045
+ left: 0
9046
+ }, align === 'center' && {
9047
+ left: '50%',
9048
+ transform: 'translateX(-50%)'
9049
+ }, align === 'end' && {
9050
+ right: 0
9051
+ }),
9052
+ left: align => Object.assign({
9053
+ position: 'absolute',
9054
+ right: '100%',
9055
+ marginRight: '8px'
9056
+ }, align === 'start' && {
9057
+ top: 0
9058
+ }, align === 'center' && {
9059
+ top: '50%',
9060
+ transform: 'translateY(-50%)'
9061
+ }, align === 'end' && {
9062
+ bottom: 0
9063
+ })
9064
+ };
9065
+
9066
+ var _excluded$D = ["children", "views"],
9067
+ _excluded2$8 = ["children", "views", "side", "align"];
9068
+ // Create context for the HoverCard
9069
+ var HoverCardContext = /*#__PURE__*/React.createContext({
9070
+ isOpen: false,
9071
+ setIsOpen: () => {}
9072
+ });
9073
+ var HoverCardProvider = _ref => {
9074
+ var {
9075
+ children,
9076
+ value
9077
+ } = _ref;
9078
+ return /*#__PURE__*/React__default.createElement(HoverCardContext.Provider, {
9079
+ value: value
9080
+ }, children);
9081
+ };
9082
+ var useHoverCardContext = () => {
9083
+ var context = React.useContext(HoverCardContext);
9084
+ if (!context) {
9085
+ throw new Error('useHoverCardContext must be used within a HoverCardProvider');
9086
+ }
9087
+ return context;
9088
+ };
9089
+ var HoverCardTrigger = _ref2 => {
9090
+ var {
9091
+ children,
9092
+ views
9093
+ } = _ref2,
9094
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$D);
9095
+ var {
9096
+ setIsOpen
9097
+ } = useHoverCardContext();
9098
+ return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
9099
+ position: "relative",
9100
+ display: "inline-block",
9101
+ onMouseEnter: () => setIsOpen(true),
9102
+ onMouseLeave: () => setIsOpen(false)
9103
+ }, views == null ? void 0 : views.container, props), children);
9104
+ };
9105
+ var HoverCardContent = _ref3 => {
9106
+ var {
9107
+ children,
9108
+ views,
9109
+ side = 'bottom',
9110
+ align = 'center'
9111
+ } = _ref3,
9112
+ props = _objectWithoutPropertiesLoose(_ref3, _excluded2$8);
9113
+ var {
9114
+ isOpen
9115
+ } = useHoverCardContext();
9116
+ if (!isOpen) {
9117
+ return null;
9118
+ }
9119
+ return /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
9120
+ backgroundColor: "white",
9121
+ borderRadius: "4px",
9122
+ boxShadow: "0px 2px 8px rgba(0, 0, 0, 0.15)",
9123
+ padding: "12px",
9124
+ minWidth: "200px",
9125
+ maxWidth: "300px",
9126
+ zIndex: 1000
9127
+ }, ContentPositions[side](align), views == null ? void 0 : views.container, props), children);
9128
+ };
9129
+
9130
+ var _excluded$E = ["children", "views"];
9131
+ /**
9132
+ * HoverCard component displays floating content when hovering over a trigger element.
9133
+ */
9134
+ var HoverCardComponent = _ref => {
9135
+ var {
9136
+ children,
9137
+ views
9138
+ } = _ref,
9139
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$E);
9140
+ var {
9141
+ isOpen,
9142
+ setIsOpen
9143
+ } = useHoverCardState();
9144
+ return /*#__PURE__*/React__default.createElement(HoverCardProvider, {
9145
+ value: {
9146
+ isOpen,
9147
+ setIsOpen
9148
+ }
9149
+ }, /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
9150
+ position: "relative",
9151
+ display: "inline-block"
9152
+ }, views == null ? void 0 : views.container, props), children));
9153
+ };
9154
+ var HoverCard = HoverCardComponent;
9155
+ HoverCard.Trigger = HoverCardTrigger;
9156
+ HoverCard.Content = HoverCardContent;
9157
+
8461
9158
  exports.Alert = Alert;
8462
9159
  exports.ArrowIcon = ArrowIcon;
8463
9160
  exports.AspectRatio = AspectRatio;
@@ -8511,6 +9208,7 @@
8511
9208
  exports.HomeIcon = HomeIcon;
8512
9209
  exports.Horizontal = Horizontal;
8513
9210
  exports.HorizontalBase = HorizontalBase;
9211
+ exports.HoverCard = HoverCard;
8514
9212
  exports.Icon = Icon;
8515
9213
  exports.ImageIcon = ImageIcon;
8516
9214
  exports.InfoIcon = InfoIcon;
@@ -8549,6 +9247,7 @@
8549
9247
  exports.SettingsIcon = SettingsIcon;
8550
9248
  exports.ShapeIcon = ShapeIcon;
8551
9249
  exports.ShareIcon = ShareIcon;
9250
+ exports.Slider = Slider;
8552
9251
  exports.SliderIcon = SliderIcon;
8553
9252
  exports.SliderVerticalIcon = SliderVerticalIcon;
8554
9253
  exports.SpinnerIcon = SpinnerIcon;