pebble-web 2.2.9 → 2.4.0

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 (40) hide show
  1. package/dist/components/Option.d.ts +2 -10
  2. package/dist/components/Rating.d.ts +9 -0
  3. package/dist/components/index.d.ts +2 -1
  4. package/dist/components/styles/Button.styles.d.ts +3 -3
  5. package/dist/components/styles/Rating.styles.d.ts +4 -0
  6. package/dist/components/typings/Option.d.ts +1 -0
  7. package/dist/components/typings/OptionGroupCheckBox.d.ts +1 -0
  8. package/dist/components/typings/Rating.d.ts +13 -0
  9. package/dist/components/typings/Search.d.ts +1 -0
  10. package/dist/pebble-web.dev.js +208 -93
  11. package/dist/pebble-web.dev.js.map +1 -1
  12. package/dist/pebble-web.es.dev.js +143 -45
  13. package/dist/pebble-web.es.dev.js.map +1 -1
  14. package/dist/pebble-web.es.js +108 -13
  15. package/dist/pebble-web.es.js.map +1 -1
  16. package/dist/pebble-web.js +173 -61
  17. package/dist/pebble-web.js.map +1 -1
  18. package/dist/pebble-web.module.dev.js +208 -94
  19. package/dist/pebble-web.module.dev.js.map +1 -1
  20. package/dist/pebble-web.module.js +173 -62
  21. package/dist/pebble-web.module.js.map +1 -1
  22. package/dist/pebble-web.umd.dev.js +208 -93
  23. package/dist/pebble-web.umd.dev.js.map +1 -1
  24. package/dist/pebble-web.umd.js +173 -61
  25. package/dist/pebble-web.umd.js.map +1 -1
  26. package/package.json +3 -4
  27. package/src/components/Option.tsx +7 -8
  28. package/src/components/OptionGroupCheckBox.tsx +10 -2
  29. package/src/components/Rating.tsx +82 -0
  30. package/src/components/Search.tsx +5 -1
  31. package/src/components/__tests__/__snapshots__/option.test.tsx.snap +24 -42
  32. package/src/components/__tests__/__snapshots__/optionGroup.test.tsx.snap +24 -42
  33. package/src/components/__tests__/rating.test.tsx +35 -0
  34. package/src/components/index.ts +2 -0
  35. package/src/components/styles/Options.styles.ts +1 -1
  36. package/src/components/styles/Rating.styles.ts +22 -0
  37. package/src/components/typings/Option.ts +1 -0
  38. package/src/components/typings/OptionGroupCheckBox.ts +1 -0
  39. package/src/components/typings/Rating.ts +12 -0
  40. package/src/components/typings/Search.ts +1 -0
@@ -1821,7 +1821,6 @@ const rowWrapper = /*#__PURE__*/css({ ...typography.normal.regular,
1821
1821
  lineHeight: "28px",
1822
1822
  zIndex: 999,
1823
1823
  ...textEllipsis,
1824
- ...flexSpaceBetween,
1825
1824
  alignItems: "center",
1826
1825
  display: "flex",
1827
1826
  "&:last-of-type": {
@@ -1832,8 +1831,8 @@ const rowWrapper = /*#__PURE__*/css({ ...typography.normal.regular,
1832
1831
  }
1833
1832
  }, ";label:rowWrapper;" + ( "" ));
1834
1833
  const labelWrap = /*#__PURE__*/css( {
1835
- name: "12vt42m-labelWrap",
1836
- styles: "user-select:none;overflow:hidden;text-overflow:ellipsis;;label:labelWrap;"
1834
+ name: "1glxdhg-labelWrap",
1835
+ styles: "user-select:none;flex-grow:1;overflow:hidden;text-overflow:ellipsis;;label:labelWrap;"
1837
1836
  } );
1838
1837
  const activeRow = /*#__PURE__*/css({
1839
1838
  backgroundColor: colors.gray.lightest
@@ -1853,7 +1852,8 @@ const defaultProps = {
1853
1852
  rightElement: ({
1854
1853
  isSelected,
1855
1854
  multiSelect,
1856
- indeterminate
1855
+ indeterminate,
1856
+ iconClassName
1857
1857
  }) => {
1858
1858
  const iconClass = cx("pi", {
1859
1859
  "pi-checkbox-selected": !indeterminate && isSelected,
@@ -1865,7 +1865,7 @@ const defaultProps = {
1865
1865
  fontSize: "20px"
1866
1866
  }, ";label:iconClass;" + ( "" )));
1867
1867
  return multiSelect ? /*#__PURE__*/createElement("i", {
1868
- className: iconClass
1868
+ className: cx(iconClass, iconClassName)
1869
1869
  }) : null;
1870
1870
  }
1871
1871
  };
@@ -1875,6 +1875,7 @@ class Option extends Component {
1875
1875
  label,
1876
1876
  isActive,
1877
1877
  isSelected,
1878
+ leftElement,
1878
1879
  rightElement,
1879
1880
  labelClassName,
1880
1881
  className
@@ -1888,7 +1889,7 @@ class Option extends Component {
1888
1889
  type: this.props.multiSelect ? "checkbox" : "radio",
1889
1890
  className: _class
1890
1891
  }), () => {
1891
- return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement("div", {
1892
+ return /*#__PURE__*/createElement(Fragment, null, leftElement && leftElement(this.props), /*#__PURE__*/createElement("div", {
1892
1893
  className: cx(labelWrap, labelClassName)
1893
1894
  }, label), rightElement(this.props), /*#__PURE__*/createElement(Ink, null));
1894
1895
  });
@@ -1967,7 +1968,8 @@ class Search extends PureComponent {
1967
1968
  showSearchIcon,
1968
1969
  className,
1969
1970
  clearable,
1970
- value
1971
+ value,
1972
+ loading
1971
1973
  } = this.props;
1972
1974
  const wrapperClassName = cx(searchWrapperStyle, {
1973
1975
  __pebble__search__small: type === "small",
@@ -1988,7 +1990,10 @@ class Search extends PureComponent {
1988
1990
  },
1989
1991
  ref: this.searchInputRef,
1990
1992
  value: value
1991
- }, inputProps)), clearable && /*#__PURE__*/createElement("div", {
1993
+ }, inputProps)), loading && /*#__PURE__*/createElement(Loader, {
1994
+ scale: 0.4,
1995
+ color: colors.violet.base
1996
+ }), clearable && /*#__PURE__*/createElement("div", {
1992
1997
  className: cx(clearContainer, {
1993
1998
  __display: !!value && !!value.length
1994
1999
  }),
@@ -2235,6 +2240,7 @@ class OptionGroupCheckBox extends PureComponent {
2235
2240
  }
2236
2241
  render() {
2237
2242
  const {
2243
+ wrapClassName,
2238
2244
  onApply,
2239
2245
  onClear,
2240
2246
  isSelected,
@@ -2247,7 +2253,7 @@ class OptionGroupCheckBox extends PureComponent {
2247
2253
  ...this.props.advancedOptionsProps
2248
2254
  };
2249
2255
  return /*#__PURE__*/createElement("div", {
2250
- className: optionGroupCheckBoxWrap
2256
+ className: cx(optionGroupCheckBoxWrap, wrapClassName)
2251
2257
  }, /*#__PURE__*/createElement(OptionGroup, Object.assign({}, rest, {
2252
2258
  advancedOptionsProps: advancedOptionsProps,
2253
2259
  isSelected: isSelected || this.isSelected,
@@ -2909,6 +2915,95 @@ class RadioGroup extends PureComponent {
2909
2915
  }
2910
2916
  }
2911
2917
 
2918
+ const wrapStyle = /*#__PURE__*/css({ ...flexRow,
2919
+ cursor: "pointer"
2920
+ }, ";label:wrapStyle;" + ( "" ));
2921
+ const disabledStyle = /*#__PURE__*/css( {
2922
+ name: "pl7a4e-disabledStyle",
2923
+ styles: "cursor:not-allowed;;label:disabledStyle;"
2924
+ } );
2925
+ const unSelectedStar = /*#__PURE__*/css({
2926
+ marginLeft: "2px",
2927
+ color: colors.gray.border,
2928
+ fontSize: "20px"
2929
+ }, ";label:unSelectedStar;" + ( "" ));
2930
+ const selectedStar = /*#__PURE__*/css({
2931
+ color: colors.yellow.base
2932
+ }, ";label:selectedStar;" + ( "" ));
2933
+
2934
+ function generateStars(maxRating, selectedValue) {
2935
+ return Array.from({
2936
+ length: maxRating
2937
+ }, (_, i) => {
2938
+ return {
2939
+ active: i + 1 <= selectedValue
2940
+ };
2941
+ });
2942
+ }
2943
+ class Rating extends PureComponent {
2944
+ constructor(props) {
2945
+ super(props);
2946
+ this.setRating = rating => {
2947
+ const {
2948
+ maxRating,
2949
+ disabled
2950
+ } = this.props;
2951
+ if (disabled) {
2952
+ return;
2953
+ }
2954
+ this.setState({
2955
+ stars: generateStars(maxRating, rating)
2956
+ });
2957
+ };
2958
+ this.state = {
2959
+ stars: generateStars(props.maxRating, props.value)
2960
+ };
2961
+ }
2962
+ componentDidUpdate(prevProps) {
2963
+ const {
2964
+ maxRating,
2965
+ value
2966
+ } = this.props;
2967
+ if (prevProps.maxRating !== maxRating) {
2968
+ this.setState({
2969
+ stars: generateStars(maxRating, value)
2970
+ });
2971
+ }
2972
+ }
2973
+ render() {
2974
+ const {
2975
+ name,
2976
+ value,
2977
+ onChange,
2978
+ disabled,
2979
+ className
2980
+ } = this.props;
2981
+ const {
2982
+ stars
2983
+ } = this.state;
2984
+ const _className = cx(wrapStyle, className, disabled && disabledStyle);
2985
+ return /*#__PURE__*/createElement("div", {
2986
+ className: _className
2987
+ }, stars.map((star, starIndex) => {
2988
+ const rating = starIndex + 1;
2989
+ return /*#__PURE__*/createElement("span", {
2990
+ key: `${name}-${rating}`,
2991
+ onMouseEnter: () => this.setRating(rating),
2992
+ onMouseLeave: () => this.setRating(value),
2993
+ onClick: () => {
2994
+ if (disabled) {
2995
+ return;
2996
+ }
2997
+ this.setRating(rating);
2998
+ onChange(rating);
2999
+ }
3000
+ }, /*#__PURE__*/createElement("i", {
3001
+ className: cx("pi pi-grade", unSelectedStar, star.active && selectedStar)
3002
+ }));
3003
+ }));
3004
+ }
3005
+ }
3006
+
2912
3007
  const inputReadOnlyStyle$1 = /*#__PURE__*/css({
2913
3008
  color: colors.gray.dark
2914
3009
  }, ";label:inputReadOnlyStyle;" + ( "" ));
@@ -3526,7 +3621,7 @@ const labelTextStyle = /*#__PURE__*/css({ ...typography.s.bold,
3526
3621
  color: colors.gray.dark,
3527
3622
  marginRight: "10px"
3528
3623
  }, ";label:labelTextStyle;" + ( "" ));
3529
- const disabledStyle = /*#__PURE__*/css( {
3624
+ const disabledStyle$1 = /*#__PURE__*/css( {
3530
3625
  name: "pl7a4e-disabledStyle",
3531
3626
  styles: "cursor:not-allowed;;label:disabledStyle;"
3532
3627
  } );
@@ -3584,14 +3679,14 @@ class Switch extends PureComponent {
3584
3679
  } = this.state;
3585
3680
  return /*#__PURE__*/createElement("label", {
3586
3681
  className: cx(className, fixedLabelStyle, {
3587
- [disabledStyle]: !!disabled
3682
+ [disabledStyle$1]: !!disabled
3588
3683
  })
3589
3684
  }, /*#__PURE__*/createElement("span", {
3590
3685
  className: labelTextStyle
3591
3686
  }, label), /*#__PURE__*/createElement("div", {
3592
3687
  className: cx(labelStyle$1, {
3593
3688
  [selectedLabel]: value,
3594
- [disabledStyle]: !!disabled
3689
+ [disabledStyle$1]: !!disabled
3595
3690
  })
3596
3691
  }, /*#__PURE__*/createElement("input", {
3597
3692
  type: "checkbox",
@@ -4052,5 +4147,5 @@ var index = /*#__PURE__*/Object.freeze({
4052
4147
  isDesktop: isDesktop
4053
4148
  });
4054
4149
 
4055
- export { BrowserBasedDateInput, Button, Calendar, Checkbox, CheckboxGroup, DateInput, DropDown, DropDownButton, Input, Loader, Logo, Message, Modal, NativeDateInput, Option, OptionGroup, OptionGroupCheckBox, OptionGroupRadio, OutsideClick, PhoneNumberInput, PopUp, PebblePopper as Popper, PresetCalendar, Radio, RadioGroup, Search, SecondaryInput, Select, SideBar, Slider, Stepper, Switch, TabSection, Tabs, Tag, Text, TimePicker, Toast, Tooltip, TypeAhead, UserAgentInfoContext, UserAgentInfoProvider, constants, mixins, styles, typography, index as utils };
4150
+ export { BrowserBasedDateInput, Button, Calendar, Checkbox, CheckboxGroup, DateInput, DropDown, DropDownButton, Input, Loader, Logo, Message, Modal, NativeDateInput, Option, OptionGroup, OptionGroupCheckBox, OptionGroupRadio, OutsideClick, PhoneNumberInput, PopUp, PebblePopper as Popper, PresetCalendar, Radio, RadioGroup, Rating, Search, SecondaryInput, Select, SideBar, Slider, Stepper, Switch, TabSection, Tabs, Tag, Text, TimePicker, Toast, Tooltip, TypeAhead, UserAgentInfoContext, UserAgentInfoProvider, constants, mixins, styles, typography, index as utils };
4056
4151
  //# sourceMappingURL=pebble-web.es.js.map