@lumx/react 2.1.8 → 2.1.9-alpha-thumbnail4

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 (64) hide show
  1. package/esm/_internal/Avatar2.js +1 -5
  2. package/esm/_internal/Avatar2.js.map +1 -1
  3. package/esm/_internal/DragHandle.js +1 -1
  4. package/esm/_internal/DragHandle.js.map +1 -1
  5. package/esm/_internal/Flag2.js +1 -3
  6. package/esm/_internal/Flag2.js.map +1 -1
  7. package/esm/_internal/Icon2.js +9 -1
  8. package/esm/_internal/Icon2.js.map +1 -1
  9. package/esm/_internal/ImageBlock.js +0 -1
  10. package/esm/_internal/ImageBlock.js.map +1 -1
  11. package/esm/_internal/List2.js.map +1 -1
  12. package/esm/_internal/Message2.js +2 -2
  13. package/esm/_internal/Message2.js.map +1 -1
  14. package/esm/_internal/Slider2.js +21 -2
  15. package/esm/_internal/Slider2.js.map +1 -1
  16. package/esm/_internal/Thumbnail2.js +61 -764
  17. package/esm/_internal/Thumbnail2.js.map +1 -1
  18. package/esm/_internal/UserBlock.js +14 -45
  19. package/esm/_internal/UserBlock.js.map +1 -1
  20. package/esm/_internal/avatar.js +0 -3
  21. package/esm/_internal/avatar.js.map +1 -1
  22. package/esm/_internal/comment-block.js +0 -3
  23. package/esm/_internal/comment-block.js.map +1 -1
  24. package/esm/_internal/image-block.js +0 -3
  25. package/esm/_internal/image-block.js.map +1 -1
  26. package/esm/_internal/link-preview.js +0 -3
  27. package/esm/_internal/link-preview.js.map +1 -1
  28. package/esm/_internal/mdi.js +2 -2
  29. package/esm/_internal/mdi.js.map +1 -1
  30. package/esm/_internal/mosaic.js +0 -3
  31. package/esm/_internal/mosaic.js.map +1 -1
  32. package/esm/_internal/post-block.js +0 -3
  33. package/esm/_internal/post-block.js.map +1 -1
  34. package/esm/_internal/slider.js +1 -2
  35. package/esm/_internal/slider.js.map +1 -1
  36. package/esm/_internal/thumbnail.js +0 -3
  37. package/esm/_internal/thumbnail.js.map +1 -1
  38. package/esm/_internal/user-block.js +0 -4
  39. package/esm/_internal/user-block.js.map +1 -1
  40. package/esm/index.js +1 -3
  41. package/esm/index.js.map +1 -1
  42. package/package.json +4 -4
  43. package/src/components/avatar/Avatar.tsx +0 -8
  44. package/src/components/drag-handle/DragHandle.tsx +5 -1
  45. package/src/components/flag/Flag.test.tsx +1 -2
  46. package/src/components/flag/Flag.tsx +2 -10
  47. package/src/components/flag/__snapshots__/Flag.test.tsx.snap +0 -15
  48. package/src/components/icon/Icon.tsx +10 -1
  49. package/src/components/image-block/ImageBlock.tsx +0 -1
  50. package/src/components/message/Message.tsx +2 -2
  51. package/src/components/thumbnail/Thumbnail.stories.tsx +399 -59
  52. package/src/components/thumbnail/Thumbnail.test.tsx +6 -6
  53. package/src/components/thumbnail/Thumbnail.tsx +35 -34
  54. package/src/components/thumbnail/__snapshots__/Thumbnail.test.tsx.snap +6 -53
  55. package/src/components/thumbnail/useFocusPoint.ts +18 -10
  56. package/src/components/thumbnail/useImageLoad.ts +23 -22
  57. package/src/components/user-block/UserBlock.stories.tsx +4 -30
  58. package/src/components/user-block/UserBlock.tsx +16 -41
  59. package/src/components/user-block/__snapshots__/UserBlock.test.tsx.snap +145 -244
  60. package/src/hooks/useOnResize.ts +6 -0
  61. package/src/stories/knobs/image.ts +35 -3
  62. package/types.d.ts +2 -8
  63. package/esm/_internal/clamp.js +0 -22
  64. package/esm/_internal/clamp.js.map +0 -1
@@ -7,12 +7,9 @@ import 'lodash/isBoolean';
7
7
  import 'lodash/isEmpty';
8
8
  import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
- import './constants.js';
11
10
  import './mergeRefs.js';
12
11
  import './Icon2.js';
13
12
  import 'lodash/take';
14
13
  export { M as Mosaic } from './Mosaic2.js';
15
- import './clamp.js';
16
14
  import './Thumbnail2.js';
17
- import 'lodash';
18
15
  //# sourceMappingURL=mosaic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mosaic.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"mosaic.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -7,13 +7,10 @@ import 'lodash/isBoolean';
7
7
  import 'lodash/isEmpty';
8
8
  import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
- import './constants.js';
11
10
  import './mergeRefs.js';
12
11
  import './Icon2.js';
13
12
  import 'lodash/isObject';
14
13
  export { P as PostBlock } from './PostBlock.js';
15
- import './clamp.js';
16
14
  import './Thumbnail2.js';
17
- import 'lodash';
18
15
  import './types.js';
19
16
  //# sourceMappingURL=post-block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"post-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"post-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -9,6 +9,5 @@ import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
10
  import './InputHelper.js';
11
11
  import './InputLabel.js';
12
- export { S as Slider } from './Slider2.js';
13
- export { c as clamp } from './clamp.js';
12
+ export { S as Slider, c as clamp } from './Slider2.js';
14
13
  //# sourceMappingURL=slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"slider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -7,11 +7,8 @@ import 'lodash/isBoolean';
7
7
  import 'lodash/isEmpty';
8
8
  import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
- import './constants.js';
11
10
  import './mergeRefs.js';
12
11
  import './Icon2.js';
13
- import './clamp.js';
14
12
  export { T as Thumbnail } from './Thumbnail2.js';
15
- import 'lodash';
16
13
  export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './types.js';
17
14
  //# sourceMappingURL=thumbnail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thumbnail.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"thumbnail.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -7,13 +7,9 @@ import 'lodash/isBoolean';
7
7
  import 'lodash/isEmpty';
8
8
  import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
- import './constants.js';
11
10
  import './mergeRefs.js';
12
11
  import './Avatar2.js';
13
- import './renderLink.js';
14
12
  import './Icon2.js';
15
- import './clamp.js';
16
13
  import './Thumbnail2.js';
17
- import 'lodash';
18
14
  export { U as UserBlock } from './UserBlock.js';
19
15
  //# sourceMappingURL=user-block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"user-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
package/esm/index.js CHANGED
@@ -74,15 +74,13 @@ export { R as RadioButton, a as RadioGroup } from './_internal/RadioGroup.js';
74
74
  export { a as Select, c as SelectMultiple, b as SelectMultipleField, S as SelectVariant } from './_internal/SelectMultiple.js';
75
75
  export { S as SideNavigation, a as SideNavigationItem } from './_internal/SideNavigationItem.js';
76
76
  export { S as SkeletonCircle, b as SkeletonRectangle, a as SkeletonRectangleVariant, c as SkeletonTypography } from './_internal/SkeletonTypography.js';
77
- export { S as Slider } from './_internal/Slider2.js';
78
- export { c as clamp } from './_internal/clamp.js';
77
+ export { S as Slider, c as clamp } from './_internal/Slider2.js';
79
78
  export { S as Slideshow, b as SlideshowControls, a as SlideshowItem } from './_internal/SlideshowControls.js';
80
79
  export { S as Switch } from './_internal/Switch2.js';
81
80
  export { T as Table, a as TableBody, d as TableCell, c as TableCellVariant, e as TableHeader, f as TableRow, b as ThOrder } from './_internal/TableRow.js';
82
81
  export { c as Tab, b as TabList, a as TabListLayout, d as TabPanel, T as TabProvider } from './_internal/TabPanel.js';
83
82
  export { T as TextField } from './_internal/TextField.js';
84
83
  export { T as Thumbnail } from './_internal/Thumbnail2.js';
85
- import 'lodash';
86
84
  export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './_internal/types.js';
87
85
  export { T as Toolbar } from './_internal/Toolbar2.js';
88
86
  export { T as Tooltip } from './_internal/Tooltip2.js';
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "dependencies": {
9
9
  "@juggle/resize-observer": "^3.2.0",
10
- "@lumx/core": "^2.1.8",
11
- "@lumx/icons": "^2.1.8",
10
+ "@lumx/core": "^2.1.9-alpha-thumbnail4",
11
+ "@lumx/icons": "^2.1.9-alpha-thumbnail4",
12
12
  "@popperjs/core": "^2.5.4",
13
13
  "body-scroll-lock": "^3.1.5",
14
14
  "classnames": "^2.2.6",
@@ -120,6 +120,6 @@
120
120
  "build:storybook": "cd storybook && ./build"
121
121
  },
122
122
  "sideEffects": false,
123
- "version": "2.1.8",
124
- "gitHead": "e4e589f8924784b34e3a0dcdbbb71f0ed0ae82b8"
123
+ "version": "2.1.9-alpha-thumbnail4",
124
+ "gitHead": "fa5191f099b3ac41f36405aeb23d0f6d254d4d39"
125
125
  }
@@ -36,10 +36,6 @@ export interface AvatarProps extends GenericProps {
36
36
  ThumbnailProps,
37
37
  'image' | 'alt' | 'size' | 'theme' | 'align' | 'fillHeight' | 'variant' | 'aspectRatio'
38
38
  >;
39
- /** Props to pass to the link wrapping the thumbnail. */
40
- linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
41
- /** Custom react component for the link (can be used to inject react router Link). */
42
- linkAs?: 'a' | any;
43
39
  }
44
40
 
45
41
  /**
@@ -79,8 +75,6 @@ export const Avatar: Comp<AvatarProps, HTMLDivElement> = forwardRef((props, ref)
79
75
  size,
80
76
  theme,
81
77
  thumbnailProps,
82
- linkProps,
83
- linkAs,
84
78
  ...forwardedProps
85
79
  } = props;
86
80
 
@@ -91,8 +85,6 @@ export const Avatar: Comp<AvatarProps, HTMLDivElement> = forwardRef((props, ref)
91
85
  className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, size, theme }))}
92
86
  >
93
87
  <Thumbnail
94
- linkProps={linkProps}
95
- linkAs={linkAs}
96
88
  className={`${CLASSNAME}__thumbnail`}
97
89
  onClick={onClick}
98
90
  onKeyPress={onKeyPress}
@@ -40,7 +40,11 @@ export const DragHandle: Comp<DragHandleProps, HTMLDivElement> = forwardRef((pro
40
40
  {...forwardedProps}
41
41
  className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }))}
42
42
  >
43
- <Icon icon={mdiDragVertical} color={theme === Theme.dark ? ColorPalette.light : undefined} size={Size.xs} />
43
+ <Icon
44
+ icon={mdiDragVertical}
45
+ color={theme === Theme.dark ? ColorPalette.light : ColorPalette.dark}
46
+ size={Size.xs}
47
+ />
44
48
  </div>
45
49
  );
46
50
  });
@@ -69,9 +69,8 @@ describe(`<${Flag.displayName} />`, () => {
69
69
 
70
70
  it('should use the color', () => {
71
71
  const color = ColorPalette.green;
72
- const { wrapper, iconEl } = setup({ icon: mdiAbTesting, color });
72
+ const { wrapper } = setup({ icon: mdiAbTesting, color });
73
73
 
74
- expect(iconEl.prop('color')).toEqual(color);
75
74
  expect(wrapper).toHaveClassName(
76
75
  getBasicClass({
77
76
  prefix: CLASSNAME,
@@ -1,7 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import classNames from 'classnames';
3
3
 
4
- import { ColorPalette, ColorVariant, Icon, Size, Theme } from '@lumx/react';
4
+ import { ColorPalette, Icon, Size, Theme } from '@lumx/react';
5
5
  import { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';
6
6
 
7
7
  export interface FlagProps extends GenericProps {
@@ -38,15 +38,7 @@ export const Flag: Comp<FlagProps, HTMLDivElement> = forwardRef((props, ref) =>
38
38
  className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, color: flagColor }))}
39
39
  ref={ref}
40
40
  >
41
- {icon && (
42
- <Icon
43
- icon={icon}
44
- color={color}
45
- colorVariant={ColorVariant.D2}
46
- size={Size.xxs}
47
- className={`${CLASSNAME}__icon`}
48
- />
49
- )}
41
+ {icon && <Icon icon={icon} size={Size.xxs} className={`${CLASSNAME}__icon`} />}
50
42
  <span className={`${CLASSNAME}__label`}>{label}</span>
51
43
  </div>
52
44
  );
@@ -19,8 +19,6 @@ Array [
19
19
  >
20
20
  <Icon
21
21
  className="lumx-flag__icon"
22
- color="blue"
23
- colorVariant="D2"
24
22
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
25
23
  size="xxs"
26
24
  />
@@ -35,8 +33,6 @@ Array [
35
33
  >
36
34
  <Icon
37
35
  className="lumx-flag__icon"
38
- color="dark"
39
- colorVariant="D2"
40
36
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
41
37
  size="xxs"
42
38
  />
@@ -51,8 +47,6 @@ Array [
51
47
  >
52
48
  <Icon
53
49
  className="lumx-flag__icon"
54
- color="green"
55
- colorVariant="D2"
56
50
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
57
51
  size="xxs"
58
52
  />
@@ -67,8 +61,6 @@ Array [
67
61
  >
68
62
  <Icon
69
63
  className="lumx-flag__icon"
70
- color="primary"
71
- colorVariant="D2"
72
64
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
73
65
  size="xxs"
74
66
  />
@@ -83,8 +75,6 @@ Array [
83
75
  >
84
76
  <Icon
85
77
  className="lumx-flag__icon"
86
- color="red"
87
- colorVariant="D2"
88
78
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
89
79
  size="xxs"
90
80
  />
@@ -99,8 +89,6 @@ Array [
99
89
  >
100
90
  <Icon
101
91
  className="lumx-flag__icon"
102
- color="secondary"
103
- colorVariant="D2"
104
92
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
105
93
  size="xxs"
106
94
  />
@@ -115,8 +103,6 @@ Array [
115
103
  >
116
104
  <Icon
117
105
  className="lumx-flag__icon"
118
- color="yellow"
119
- colorVariant="D2"
120
106
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
121
107
  size="xxs"
122
108
  />
@@ -135,7 +121,6 @@ exports[`<Flag /> Snapshots and structure should render story 'withIcon' 1`] = `
135
121
  >
136
122
  <Icon
137
123
  className="lumx-flag__icon"
138
- colorVariant="D2"
139
124
  icon="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z"
140
125
  size="xxs"
141
126
  />
@@ -52,11 +52,20 @@ const DEFAULT_PROPS: Partial<IconProps> = {};
52
52
  */
53
53
  export const Icon: Comp<IconProps, HTMLElement> = forwardRef((props, ref) => {
54
54
  const { className, color, colorVariant, hasShape, icon, size, theme, ...forwardedProps } = props;
55
+
55
56
  let iconColor;
57
+ let iconColorVariant;
56
58
  if (color) {
57
59
  iconColor = color;
60
+ iconColorVariant = colorVariant;
58
61
  } else if (theme) {
59
62
  iconColor = theme === Theme.light ? ColorPalette.dark : ColorPalette.light;
63
+
64
+ if (colorVariant) {
65
+ iconColorVariant = colorVariant;
66
+ } else {
67
+ iconColorVariant = Theme.light ? 'L1' : 'N';
68
+ }
60
69
  } else if (hasShape) {
61
70
  iconColor = ColorPalette.dark;
62
71
  }
@@ -86,7 +95,7 @@ export const Icon: Comp<IconProps, HTMLElement> = forwardRef((props, ref) => {
86
95
  className,
87
96
  handleBasicClasses({
88
97
  color: iconColor,
89
- colorVariant,
98
+ colorVariant: iconColorVariant,
90
99
  hasShape,
91
100
  prefix: CLASSNAME,
92
101
  size: iconSize,
@@ -118,7 +118,6 @@ export const ImageBlock: Comp<ImageBlockProps, HTMLDivElement> = forwardRef((pro
118
118
  <Thumbnail
119
119
  {...thumbnailProps}
120
120
  className={classNames(`${CLASSNAME}__image`, thumbnailProps?.className)}
121
- fillHeight={fillHeight}
122
121
  align={align}
123
122
  image={image}
124
123
  size={size}
@@ -62,8 +62,8 @@ export const Message: Comp<MessageProps, HTMLDivElement> = forwardRef((props, re
62
62
  )}
63
63
  {...forwardedProps}
64
64
  >
65
- {(customIcon || icon) && <Icon className="lumx-message__icon" icon={customIcon || icon} size={Size.xs} />}
66
- <div className="lumx-message__text">{children}</div>
65
+ {(customIcon || icon) && <Icon className={`${CLASSNAME}__icon`} icon={customIcon || icon} size={Size.xs} />}
66
+ <div className={`${CLASSNAME}__text`}>{children}</div>
67
67
  </div>
68
68
  );
69
69
  });