@twreporter/react-components 8.17.0-rc.2 → 8.17.0-rc.3

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,34 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [8.17.0-rc.3](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.17.0-rc.2...@twreporter/react-components@8.17.0-rc.3) (2023-04-13)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * add comments ([c5db49d](https://github.com/twreporter/twreporter-npm-packages/commit/c5db49dc1fae29527e7dec334bcadba18068aea4))
12
+ * add icon toggle for TextButton story & refactor ([66b5c83](https://github.com/twreporter/twreporter-npm-packages/commit/66b5c834e6545ad1c278ac7934899ed845204c20))
13
+ * add missing releaseBranch props to image-with-fallback component ([a98c612](https://github.com/twreporter/twreporter-npm-packages/commit/a98c61215314f98de86345a41b5870b31971db08))
14
+ * address CardList defects ([5d183b0](https://github.com/twreporter/twreporter-npm-packages/commit/5d183b0f411540b66c07476b014be97703577284))
15
+ * address review comments ([539cac0](https://github.com/twreporter/twreporter-npm-packages/commit/539cac05e06e33621a9fbc4b9971e040c4560bf8))
16
+ * address review comments & fix typo ([20c1ebe](https://github.com/twreporter/twreporter-npm-packages/commit/20c1ebe273869a176bf2715bc2975fe5abcb50b6))
17
+ * define interactive style in [@twreporter](https://github.com/twreporter) core package ([0acbe56](https://github.com/twreporter/twreporter-npm-packages/commit/0acbe564eecd201e5c8d11314b8f1598892859f1))
18
+ * fix Link import path in CardList ([3667d82](https://github.com/twreporter/twreporter-npm-packages/commit/3667d82063b048f1e43e50dc8e73d19b9d08ce23))
19
+ * move size constant to @twreporter/core package ([c0e4d29](https://github.com/twreporter/twreporter-npm-packages/commit/c0e4d295a1846c6a8828970cb651854619206c5f))
20
+ * refactor ImagWithFallback into function component ([854edb7](https://github.com/twreporter/twreporter-npm-packages/commit/854edb7631b64087f7959105ca642fdb347a48fc))
21
+ * use size constant for Dialog component ([e7c1831](https://github.com/twreporter/twreporter-npm-packages/commit/e7c1831d9df727c0bdf686a8748109cfa1b5f79a))
22
+ * use size constant from core package ([be6aa4f](https://github.com/twreporter/twreporter-npm-packages/commit/be6aa4f806b95994c5acaa5d6cbe49fc2303c0c3))
23
+
24
+
25
+ ### Features
26
+
27
+ * add CardList component ([f970192](https://github.com/twreporter/twreporter-npm-packages/commit/f97019239c19451d83c42034675021a09e0004de))
28
+ * add design guideline components ([efe249d](https://github.com/twreporter/twreporter-npm-packages/commit/efe249d44f0d45f5c50ee6e69b0d7f1482270bbe))
29
+
30
+
31
+
32
+
33
+
6
34
  # [8.17.0-rc.2](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.17.0-rc.1...@twreporter/react-components@8.17.0-rc.2) (2023-04-12)
7
35
 
8
36
  **Note:** Version bump only for package @twreporter/react-components
@@ -17,12 +17,12 @@ var _theme = require("../utils/theme");
17
17
 
18
18
  var _size = require("../utils/size");
19
19
 
20
- var _size2 = require("../constants/size");
21
-
22
20
  var _type = require("../constants/type");
23
21
 
24
22
  var _theme2 = require("@twreporter/core/lib/constants/theme");
25
23
 
24
+ var _size2 = require("@twreporter/core/lib/constants/size");
25
+
26
26
  var _excluded = ["text", "iconComponent", "size", "theme", "type", "disabled"];
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -19,12 +19,14 @@ var _paragraph = require("../../text/paragraph");
19
19
 
20
20
  var _constants = require("../constants/");
21
21
 
22
- var _size2 = require("../constants/size");
23
-
24
22
  var _type = require("../constants/type");
25
23
 
26
24
  var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
27
25
 
26
+ var _size2 = require("@twreporter/core/lib/constants/size");
27
+
28
+ var _theme2 = require("@twreporter/core/lib/constants/theme");
29
+
28
30
  var _excluded = ["text", "leftIconComponent", "rightIconComponent", "size", "theme", "type", "active", "disabled"];
29
31
 
30
32
  var _templateObject;
@@ -73,7 +75,7 @@ var TextButton = function TextButton(_ref) {
73
75
  _ref$size = _ref.size,
74
76
  size = _ref$size === void 0 ? _size2.SIZE.S : _ref$size,
75
77
  _ref$theme = _ref.theme,
76
- theme = _ref$theme === void 0 ? _constants.TEXT_BUTTON_THEME.normal : _ref$theme,
78
+ theme = _ref$theme === void 0 ? _theme2.TEXT_BUTTON_THEME.normal : _ref$theme,
77
79
  _ref$type = _ref.type,
78
80
  type = _ref$type === void 0 ? _type.TYPE.primary : _ref$type,
79
81
  _ref$active = _ref.active,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TEXT_BUTTON_THEME_PROP_TYPES = exports.TEXT_BUTTON_THEME = void 0;
6
+ exports.TEXT_BUTTON_THEME_PROP_TYPES = void 0;
7
7
 
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
 
@@ -11,19 +11,6 @@ var _theme = require("@twreporter/core/lib/constants/theme");
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
-
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
-
18
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
-
20
- var TEXT_BUTTON_THEME = Object.freeze(_objectSpread(_objectSpread({}, _theme.THEME), {}, {
21
- brand: 'brand',
22
- dark: 'dark',
23
- light: 'light'
24
- }));
25
- exports.TEXT_BUTTON_THEME = TEXT_BUTTON_THEME;
26
-
27
- var TEXT_BUTTON_THEME_PROP_TYPES = _propTypes["default"].oneOf(Object.values(TEXT_BUTTON_THEME));
14
+ var TEXT_BUTTON_THEME_PROP_TYPES = _propTypes["default"].oneOf(Object.values(_theme.TEXT_BUTTON_THEME));
28
15
 
29
16
  exports.TEXT_BUTTON_THEME_PROP_TYPES = TEXT_BUTTON_THEME_PROP_TYPES;
@@ -11,10 +11,10 @@ var _pillButton = _interopRequireDefault(require("../components/pillButton"));
11
11
 
12
12
  var _icon = require("../../icon");
13
13
 
14
- var _size = require("../constants/size");
15
-
16
14
  var _type = require("../constants/type");
17
15
 
16
+ var _size = require("@twreporter/core/lib/constants/size");
17
+
18
18
  var _theme = require("@twreporter/core/lib/constants/theme");
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.withArrowIcon = exports.textButton = exports["default"] = void 0;
6
+ exports.toggleIconDisplay = exports.textButton = exports["default"] = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -11,11 +11,11 @@ var _textButton = _interopRequireDefault(require("../components/textButton"));
11
11
 
12
12
  var _icon = require("../../icon");
13
13
 
14
- var _size = require("../constants/size");
15
-
16
14
  var _type = require("../constants/type");
17
15
 
18
- var _constants = require("../constants");
16
+ var _size = require("@twreporter/core/lib/constants/size");
17
+
18
+ var _theme = require("@twreporter/core/lib/constants/theme");
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
21
 
@@ -24,14 +24,27 @@ var _default = {
24
24
  component: _textButton["default"],
25
25
  argTypes: {
26
26
  theme: {
27
- defaultValue: _constants.TEXT_BUTTON_THEME.normal,
28
- options: Object.values(_constants.TEXT_BUTTON_THEME),
27
+ defaultValue: _theme.TEXT_BUTTON_THEME.normal,
28
+ options: Object.values(_theme.TEXT_BUTTON_THEME),
29
29
  control: {
30
30
  type: 'radio'
31
31
  }
32
32
  },
33
33
  type: _type.TYPE_STORYBOOK_ARG_TYPE,
34
- size: _size.SIZE_STORYBOOK_ARG_TYPE
34
+ size: _size.SIZE_STORYBOOK_ARG_TYPE,
35
+ // showLeft & showRight args are only for storybook check
36
+ showLeft: {
37
+ defaultValue: true,
38
+ control: {
39
+ type: 'boolean'
40
+ }
41
+ },
42
+ showRight: {
43
+ defaultValue: true,
44
+ control: {
45
+ type: 'boolean'
46
+ }
47
+ }
35
48
  }
36
49
  };
37
50
  exports["default"] = _default;
@@ -45,24 +58,46 @@ exports.textButton = textButton;
45
58
  textButton.args = {
46
59
  text: '文字',
47
60
  size: _size.SIZE.S,
48
- theme: _constants.TEXT_BUTTON_THEME.normal,
61
+ theme: _theme.TEXT_BUTTON_THEME.normal,
49
62
  type: _type.TYPE.primary,
50
63
  active: false,
51
- disabled: false
52
- };
53
- var withArrowIcon = Template.bind({});
54
- exports.withArrowIcon = withArrowIcon;
55
- withArrowIcon.args = {
64
+ disabled: false,
56
65
  leftIconComponent: /*#__PURE__*/_react["default"].createElement(_icon.Arrow, {
57
66
  direction: "left"
58
67
  }),
59
68
  rightIconComponent: /*#__PURE__*/_react["default"].createElement(_icon.Arrow, {
60
69
  direction: "right"
61
- }),
70
+ })
71
+ };
72
+ textButton.parameters = {
73
+ controls: {
74
+ exclude: ['showLeft', 'showRight']
75
+ }
76
+ };
77
+
78
+ var toggleIconDisplay = function toggleIconDisplay(args) {
79
+ args.leftIconComponent = args.showLeft ? /*#__PURE__*/_react["default"].createElement(_icon.Arrow, {
80
+ direction: "left"
81
+ }) : null;
82
+ args.rightIconComponent = args.showRight ? /*#__PURE__*/_react["default"].createElement(_icon.Arrow, {
83
+ direction: "right"
84
+ }) : null;
85
+ return /*#__PURE__*/_react["default"].createElement(_textButton["default"], args);
86
+ };
87
+
88
+ exports.toggleIconDisplay = toggleIconDisplay;
89
+ toggleIconDisplay.args = {
90
+ showLeft: true,
91
+ showRight: true,
62
92
  text: '文字',
63
93
  size: _size.SIZE.S,
64
- theme: _constants.TEXT_BUTTON_THEME.normal,
94
+ theme: _theme.TEXT_BUTTON_THEME.normal,
65
95
  type: _type.TYPE.primary,
66
96
  active: false,
67
97
  disabled: false
98
+ };
99
+ toggleIconDisplay.parameters = {
100
+ controls: {
101
+ exclude: ['leftIconComponent', 'rightIconComponent']
102
+ }
68
103
  };
@@ -9,8 +9,6 @@ var _color = require("@twreporter/core/lib/constants/color");
9
9
 
10
10
  var _theme = require("@twreporter/core/lib/constants/theme");
11
11
 
12
- var _constants = require("../constants");
13
-
14
12
  // @twreporter
15
13
  var getFilledPillButtonTheme = function getFilledPillButtonTheme(theme, disabled) {
16
14
  if (disabled) {
@@ -282,37 +280,37 @@ exports.getIconWithTextButtonTheme = getIconWithTextButtonTheme;
282
280
 
283
281
  var getPrimaryTextButtonTheme = function getPrimaryTextButtonTheme(theme) {
284
282
  switch (theme) {
285
- case _constants.TEXT_BUTTON_THEME.photography:
283
+ case _theme.TEXT_BUTTON_THEME.photography:
286
284
  return {
287
285
  color: _color.colorGrayscale.white,
288
286
  hoverColor: _color.colorSupportive.main
289
287
  };
290
288
 
291
- case _constants.TEXT_BUTTON_THEME.transparent:
289
+ case _theme.TEXT_BUTTON_THEME.transparent:
292
290
  return {
293
291
  color: _color.colorGrayscale.white,
294
292
  hoverColor: _color.colorGrayscale.gray800
295
293
  };
296
294
 
297
- case _constants.TEXT_BUTTON_THEME.brand:
295
+ case _theme.TEXT_BUTTON_THEME.brand:
298
296
  return {
299
297
  color: _color.colorBrand.heavy,
300
298
  hoverColor: _color.colorBrand.dark
301
299
  };
302
300
 
303
- case _constants.TEXT_BUTTON_THEME.dark:
301
+ case _theme.TEXT_BUTTON_THEME.dark:
304
302
  return {
305
303
  color: _color.colorGrayscale.gray800,
306
304
  hoverColor: _color.colorBrand.heavy
307
305
  };
308
306
 
309
- case _constants.TEXT_BUTTON_THEME.light:
307
+ case _theme.TEXT_BUTTON_THEME.light:
310
308
  return {
311
309
  color: _color.colorGrayscale.gray600,
312
310
  hoverColor: _color.colorGrayscale.gray800
313
311
  };
314
312
 
315
- case _constants.TEXT_BUTTON_THEME.normal:
313
+ case _theme.TEXT_BUTTON_THEME.normal:
316
314
  default:
317
315
  return {
318
316
  color: _color.colorGrayscale.gray800,
@@ -325,37 +323,37 @@ exports.getPrimaryTextButtonTheme = getPrimaryTextButtonTheme;
325
323
 
326
324
  var getSecondaryTextButtonTheme = function getSecondaryTextButtonTheme(theme) {
327
325
  switch (theme) {
328
- case _constants.TEXT_BUTTON_THEME.photography:
326
+ case _theme.TEXT_BUTTON_THEME.photography:
329
327
  return {
330
328
  color: _color.colorGrayscale.gray400,
331
329
  hoverColor: _color.colorSupportive.main
332
330
  };
333
331
 
334
- case _constants.TEXT_BUTTON_THEME.transparent:
332
+ case _theme.TEXT_BUTTON_THEME.transparent:
335
333
  return {
336
334
  color: _color.colorGrayscale.gray600,
337
335
  hoverColor: _color.colorGrayscale.gray800
338
336
  };
339
337
 
340
- case _constants.TEXT_BUTTON_THEME.brand:
338
+ case _theme.TEXT_BUTTON_THEME.brand:
341
339
  return {
342
340
  color: _color.colorBrand.heavy,
343
341
  hoverColor: _color.colorBrand.dark
344
342
  };
345
343
 
346
- case _constants.TEXT_BUTTON_THEME.dark:
344
+ case _theme.TEXT_BUTTON_THEME.dark:
347
345
  return {
348
346
  color: _color.colorGrayscale.gray800,
349
347
  hoverColor: _color.colorBrand.heavy
350
348
  };
351
349
 
352
- case _constants.TEXT_BUTTON_THEME.light:
350
+ case _theme.TEXT_BUTTON_THEME.light:
353
351
  return {
354
352
  color: _color.colorGrayscale.gray600,
355
353
  hoverColor: _color.colorGrayscale.gray800
356
354
  };
357
355
 
358
- case _constants.TEXT_BUTTON_THEME.normal:
356
+ case _theme.TEXT_BUTTON_THEME.normal:
359
357
  default:
360
358
  return {
361
359
  color: _color.colorGrayscale.gray600,
@@ -368,22 +366,22 @@ exports.getSecondaryTextButtonTheme = getSecondaryTextButtonTheme;
368
366
 
369
367
  var getDisabledTextButtonTheme = function getDisabledTextButtonTheme(theme) {
370
368
  switch (theme) {
371
- case _constants.TEXT_BUTTON_THEME.photography:
369
+ case _theme.TEXT_BUTTON_THEME.photography:
372
370
  return {
373
371
  color: _color.colorGrayscale.gray600,
374
372
  hoverColor: _color.colorGrayscale.gray600
375
373
  };
376
374
 
377
- case _constants.TEXT_BUTTON_THEME.transparent:
375
+ case _theme.TEXT_BUTTON_THEME.transparent:
378
376
  return {
379
377
  color: _color.colorGrayscale.gray200,
380
378
  hoverColor: _color.colorGrayscale.gray200
381
379
  };
382
380
 
383
- case _constants.TEXT_BUTTON_THEME.brand:
384
- case _constants.TEXT_BUTTON_THEME.dark:
385
- case _constants.TEXT_BUTTON_THEME.light:
386
- case _constants.TEXT_BUTTON_THEME.normal:
381
+ case _theme.TEXT_BUTTON_THEME.brand:
382
+ case _theme.TEXT_BUTTON_THEME.dark:
383
+ case _theme.TEXT_BUTTON_THEME.light:
384
+ case _theme.TEXT_BUTTON_THEME.normal:
387
385
  default:
388
386
  return {
389
387
  color: _color.colorGrayscale.gray400,
@@ -396,37 +394,37 @@ exports.getDisabledTextButtonTheme = getDisabledTextButtonTheme;
396
394
 
397
395
  var getActiveTextButtonTheme = function getActiveTextButtonTheme(theme) {
398
396
  switch (theme) {
399
- case _constants.TEXT_BUTTON_THEME.photography:
397
+ case _theme.TEXT_BUTTON_THEME.photography:
400
398
  return {
401
399
  color: _color.colorSupportive.main,
402
400
  hoverColor: _color.colorSupportive.main
403
401
  };
404
402
 
405
- case _constants.TEXT_BUTTON_THEME.transparent:
403
+ case _theme.TEXT_BUTTON_THEME.transparent:
406
404
  return {
407
405
  color: _color.colorGrayscale.white,
408
406
  hoverColor: _color.colorGrayscale.white
409
407
  };
410
408
 
411
- case _constants.TEXT_BUTTON_THEME.brand:
409
+ case _theme.TEXT_BUTTON_THEME.brand:
412
410
  return {
413
411
  color: _color.colorBrand.dark,
414
412
  hoverColor: _color.colorBrand.dark
415
413
  };
416
414
 
417
- case _constants.TEXT_BUTTON_THEME.dark:
415
+ case _theme.TEXT_BUTTON_THEME.dark:
418
416
  return {
419
417
  color: _color.colorBrand.heavy,
420
418
  hoverColor: _color.colorBrand.heavy
421
419
  };
422
420
 
423
- case _constants.TEXT_BUTTON_THEME.light:
421
+ case _theme.TEXT_BUTTON_THEME.light:
424
422
  return {
425
423
  color: _color.colorGrayscale.gray800,
426
424
  hoverColor: _color.colorGrayscale.gray800
427
425
  };
428
426
 
429
- case _constants.TEXT_BUTTON_THEME.normal:
427
+ case _theme.TEXT_BUTTON_THEME.normal:
430
428
  default:
431
429
  return {
432
430
  color: _color.colorBrand.heavy,
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+
14
+ var _imageWithFallback = _interopRequireDefault(require("../../image-with-fallback"));
15
+
16
+ var _paragraph = require("../../text/paragraph");
17
+
18
+ var _headline = require("../../text/headline");
19
+
20
+ var _icon = require("../../icon");
21
+
22
+ var _button = require("../../button");
23
+
24
+ var _color = require("@twreporter/core/lib/constants/color");
25
+
26
+ var _theme = require("@twreporter/core/lib/constants/theme");
27
+
28
+ var _size = require("@twreporter/core/lib/constants/size");
29
+
30
+ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
31
+
32
+ var _width, _height, _marginLeft;
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
+
36
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
+
38
+ var imageStyle = {
39
+ width: (_width = {}, _defineProperty(_width, _size.SIZE.S, '72px'), _defineProperty(_width, _size.SIZE.L, '216px'), _width),
40
+ height: (_height = {}, _defineProperty(_height, _size.SIZE.S, '72px'), _defineProperty(_height, _size.SIZE.L, '144px'), _height),
41
+ marginLeft: (_marginLeft = {}, _defineProperty(_marginLeft, _size.SIZE.S, '8px'), _defineProperty(_marginLeft, _size.SIZE.L, '32px'), _marginLeft)
42
+ };
43
+
44
+ var FlexGroup = /*#__PURE__*/_styledComponents["default"].div.withConfig({
45
+ displayName: "article-card__FlexGroup",
46
+ componentId: "sc-9196c7-0"
47
+ })(["display:flex;"]);
48
+
49
+ var FlexGroupColumn = /*#__PURE__*/_styledComponents["default"].div.withConfig({
50
+ displayName: "article-card__FlexGroupColumn",
51
+ componentId: "sc-9196c7-1"
52
+ })(["display:flex;flex-direction:column;"]);
53
+
54
+ var FlexSpaceBetween = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
55
+ displayName: "article-card__FlexSpaceBetween",
56
+ componentId: "sc-9196c7-2"
57
+ })(["justify-content:space-between;"]);
58
+ var Meta = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
59
+ displayName: "article-card__Meta",
60
+ componentId: "sc-9196c7-3"
61
+ })(["color:", ";flex-direction:row;align-items:center;margin-bottom:8px;& > div{margin-right:8px;}&:last-child{margin-right:0;}", ""], _color.colorGrayscale.gray600, function (props) {
62
+ return props.hide ? "display: none;" : '';
63
+ });
64
+
65
+ var DescContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
66
+ displayName: "article-card__DescContainer",
67
+ componentId: "sc-9196c7-4"
68
+ })(["margin-top:8px;div{display:-webkit-box;text-overflow:ellipsis;overflow:hidden;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;}"]);
69
+
70
+ var BookmarkContainer = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
71
+ displayName: "article-card__BookmarkContainer",
72
+ componentId: "sc-9196c7-5"
73
+ })(["margin-top:8px;align-self:flex-end;"]);
74
+ var ImageContainer = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
75
+ displayName: "article-card__ImageContainer",
76
+ componentId: "sc-9196c7-6"
77
+ })(["flex:0 0 auto;align-self:center;width:", ";height:", ";margin-left:", ";"], function (props) {
78
+ return imageStyle.width[props.size];
79
+ }, function (props) {
80
+ return imageStyle.height[props.size];
81
+ }, function (props) {
82
+ return imageStyle.marginLeft[props.size];
83
+ });
84
+
85
+ var ArticleCard = function ArticleCard(_ref) {
86
+ var _ref$title = _ref.title,
87
+ title = _ref$title === void 0 ? '' : _ref$title,
88
+ _ref$description = _ref.description,
89
+ description = _ref$description === void 0 ? '' : _ref$description,
90
+ _ref$date = _ref.date,
91
+ date = _ref$date === void 0 ? '' : _ref$date,
92
+ _ref$image = _ref.image,
93
+ image = _ref$image === void 0 ? {} : _ref$image,
94
+ _ref$category = _ref.category,
95
+ category = _ref$category === void 0 ? '' : _ref$category,
96
+ _ref$size = _ref.size,
97
+ size = _ref$size === void 0 ? _size.SIZE.S : _ref$size,
98
+ _ref$isBookmarked = _ref.isBookmarked,
99
+ isBookmarked = _ref$isBookmarked === void 0 ? false : _ref$isBookmarked,
100
+ toggleBookmark = _ref.toggleBookmark,
101
+ _ref$releaseBranch = _ref.releaseBranch,
102
+ releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch;
103
+ var hideMeta = !category && !date;
104
+ var titleJSX = title ? /*#__PURE__*/_react["default"].createElement(_headline.H4, {
105
+ text: title,
106
+ type: "article"
107
+ }) : null;
108
+ var dateJSX = date ? /*#__PURE__*/_react["default"].createElement(_paragraph.P3, {
109
+ text: date
110
+ }) : null;
111
+ var categoryJSX = category ? /*#__PURE__*/_react["default"].createElement(_paragraph.P3, {
112
+ text: category
113
+ }) : null;
114
+ var descriptionJSX = description ? size === _size.SIZE.S ? /*#__PURE__*/_react["default"].createElement(_paragraph.P2, {
115
+ text: description
116
+ }) : /*#__PURE__*/_react["default"].createElement(_paragraph.P1, {
117
+ text: description
118
+ }) : null;
119
+
120
+ var bookmarkIcon = /*#__PURE__*/_react["default"].createElement(_icon.Bookmark, {
121
+ type: "saved",
122
+ releaseBranch: releaseBranch
123
+ });
124
+
125
+ var bookmarkButton = size === _size.SIZE.S ? /*#__PURE__*/_react["default"].createElement(_button.TextButton, {
126
+ theme: _theme.TEXT_BUTTON_THEME.light,
127
+ leftIconComponent: bookmarkIcon,
128
+ text: "\u53D6\u6D88\u6536\u85CF"
129
+ }) : /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
130
+ theme: _theme.THEME.normal,
131
+ iconComponent: bookmarkIcon
132
+ });
133
+ var bookmarkJSX = isBookmarked ? /*#__PURE__*/_react["default"].createElement(BookmarkContainer, {
134
+ onClick: toggleBookmark
135
+ }, bookmarkButton) : null;
136
+
137
+ var metaJSX = /*#__PURE__*/_react["default"].createElement(Meta, {
138
+ hide: hideMeta
139
+ }, categoryJSX, dateJSX);
140
+
141
+ var imageJSX = /*#__PURE__*/_react["default"].createElement(ImageContainer, {
142
+ size: size
143
+ }, /*#__PURE__*/_react["default"].createElement(_imageWithFallback["default"], {
144
+ src: image.src,
145
+ alt: image.alt,
146
+ releaseBranch: releaseBranch
147
+ }));
148
+
149
+ if (size === _size.SIZE.S) {
150
+ return /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, metaJSX, titleJSX), /*#__PURE__*/_react["default"].createElement(FlexGroup, null, imageJSX)), /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, /*#__PURE__*/_react["default"].createElement(DescContainer, null, descriptionJSX), bookmarkJSX));
151
+ } // L size
152
+
153
+
154
+ return /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, metaJSX, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, titleJSX, /*#__PURE__*/_react["default"].createElement(DescContainer, null, descriptionJSX), bookmarkJSX)), imageJSX);
155
+ };
156
+
157
+ ArticleCard.propTypes = {
158
+ title: _propTypes["default"].string.isRequired,
159
+ description: _propTypes["default"].string.isRequired,
160
+ date: _propTypes["default"].string,
161
+ image: _propTypes["default"].shape({
162
+ alt: _propTypes["default"].string,
163
+ src: _propTypes["default"].string.isRequired,
164
+ srcSet: _propTypes["default"].string
165
+ }),
166
+ category: _propTypes["default"].string,
167
+ size: _size.SIZE_PROP_TYPES,
168
+ isBookmarked: _propTypes["default"].bool,
169
+ toggleBookmark: _propTypes["default"].func,
170
+ releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
171
+ };
172
+ var _default = ArticleCard;
173
+ exports["default"] = _default;
@@ -13,6 +13,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
 
14
14
  var _paragraph = require("../../text/paragraph");
15
15
 
16
+ var _size = require("@twreporter/core/lib/constants/size");
17
+
16
18
  var _excluded = ["text", "size"];
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -40,10 +42,10 @@ var Dialog = function Dialog(_ref) {
40
42
  var _ref$text = _ref.text,
41
43
  text = _ref$text === void 0 ? '' : _ref$text,
42
44
  _ref$size = _ref.size,
43
- size = _ref$size === void 0 ? 'S' : _ref$size,
45
+ size = _ref$size === void 0 ? _size.SIZE.S : _ref$size,
44
46
  props = _objectWithoutProperties(_ref, _excluded);
45
47
 
46
- var textIcon = size === 'S' ? /*#__PURE__*/_react["default"].createElement(_paragraph.P2, {
48
+ var textIcon = size === _size.SIZE.S ? /*#__PURE__*/_react["default"].createElement(_paragraph.P2, {
47
49
  text: text,
48
50
  weight: "bold"
49
51
  }) : /*#__PURE__*/_react["default"].createElement(_paragraph.P1, {
@@ -55,7 +57,7 @@ var Dialog = function Dialog(_ref) {
55
57
 
56
58
  Dialog.propTypes = {
57
59
  text: _propTypes["default"].string,
58
- size: _propTypes["default"].oneOf(['S', 'L'])
60
+ size: _size.SIZE_PROP_TYPES
59
61
  };
60
62
  var _default = Dialog;
61
63
  exports["default"] = _default;
package/lib/card/index.js CHANGED
@@ -9,13 +9,22 @@ Object.defineProperty(exports, "Dialog", {
9
9
  return _dialog["default"];
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "ArticleCard", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _articleCard["default"];
16
+ }
17
+ });
12
18
  exports["default"] = void 0;
13
19
 
14
20
  var _dialog = _interopRequireDefault(require("./components/dialog"));
15
21
 
22
+ var _articleCard = _interopRequireDefault(require("./components/article-card"));
23
+
16
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
25
 
18
26
  var _default = {
19
- Dialog: _dialog["default"]
27
+ Dialog: _dialog["default"],
28
+ ArticleCard: _articleCard["default"]
20
29
  };
21
30
  exports["default"] = _default;