@charcoal-ui/react-sandbox 2.4.0 → 2.6.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 (54) hide show
  1. package/dist/_lib/compat.d.ts +14 -14
  2. package/dist/components/Carousel/index.d.ts +39 -39
  3. package/dist/components/Carousel/index.d.ts.map +1 -1
  4. package/dist/components/Carousel/index.story.d.ts +6 -6
  5. package/dist/components/CarouselButton/index.d.ts +20 -20
  6. package/dist/components/CarouselButton/index.story.d.ts +9 -9
  7. package/dist/components/Filter/index.d.ts +19 -19
  8. package/dist/components/Filter/index.story.d.ts +8 -8
  9. package/dist/components/HintText/index.d.ts +9 -9
  10. package/dist/components/HintText/index.d.ts.map +1 -1
  11. package/dist/components/HintText/index.story.d.ts +11 -11
  12. package/dist/components/Layout/index.d.ts +67 -67
  13. package/dist/components/Layout/index.story.d.ts +13 -13
  14. package/dist/components/LeftMenu/index.d.ts +11 -11
  15. package/dist/components/MenuListItem/index.d.ts +34 -34
  16. package/dist/components/MenuListItem/index.story.d.ts +17 -17
  17. package/dist/components/Pager/index.d.ts +14 -14
  18. package/dist/components/Pager/index.story.d.ts +31 -31
  19. package/dist/components/SwitchCheckbox/index.d.ts +8 -8
  20. package/dist/components/SwitchCheckbox/index.story.d.ts +10 -10
  21. package/dist/components/TextEllipsis/helper.d.ts +3 -3
  22. package/dist/components/TextEllipsis/index.d.ts +10 -10
  23. package/dist/components/TextEllipsis/index.story.d.ts +8 -8
  24. package/dist/components/WithIcon/index.d.ts +27 -27
  25. package/dist/components/WithIcon/index.story.d.ts +14 -14
  26. package/dist/components/icons/Base.d.ts +15 -15
  27. package/dist/components/icons/Base.d.ts.map +1 -1
  28. package/dist/components/icons/DotsIcon.d.ts +11 -11
  29. package/dist/components/icons/InfoIcon.d.ts +1 -1
  30. package/dist/components/icons/NextIcon.d.ts +11 -11
  31. package/dist/components/icons/WedgeIcon.d.ts +19 -19
  32. package/dist/foundation/contants.d.ts +3 -3
  33. package/dist/foundation/hooks.d.ts +28 -28
  34. package/dist/foundation/support.d.ts +2 -2
  35. package/dist/foundation/utils.d.ts +22 -22
  36. package/dist/hooks/index.d.ts +3 -0
  37. package/dist/hooks/index.d.ts.map +1 -0
  38. package/dist/index.cjs.js +1871 -0
  39. package/dist/index.cjs.js.map +1 -0
  40. package/dist/index.d.ts +13 -13
  41. package/dist/index.esm.js +1816 -0
  42. package/dist/index.esm.js.map +1 -0
  43. package/dist/misc/storybook-helper.d.ts +2 -2
  44. package/dist/styled.d.ts +94 -92
  45. package/dist/styled.d.ts.map +1 -1
  46. package/package.json +18 -18
  47. package/src/components/Carousel/index.tsx +5 -10
  48. package/src/hooks/index.ts +4 -0
  49. package/dist/index.cjs +0 -1814
  50. package/dist/index.cjs.map +0 -1
  51. package/dist/index.modern.js +0 -2273
  52. package/dist/index.modern.js.map +0 -1
  53. package/dist/index.module.js +0 -1766
  54. package/dist/index.module.js.map +0 -1
package/dist/index.cjs DELETED
@@ -1,1814 +0,0 @@
1
- var React = require('react');
2
- var styled = require('styled-components');
3
- var react = require('@charcoal-ui/react');
4
- var utils = require('@charcoal-ui/utils');
5
- var styled$1 = require('@charcoal-ui/styled');
6
- var foundation = require('@charcoal-ui/foundation');
7
- var ReactDOM = require('react-dom');
8
- var reactSpring = require('react-spring');
9
- var warning = require('warning');
10
-
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
15
- var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
16
- var warning__default = /*#__PURE__*/_interopDefaultLegacy(warning);
17
-
18
- function _extends() {
19
- _extends = Object.assign ? Object.assign.bind() : function (target) {
20
- for (var i = 1; i < arguments.length; i++) {
21
- var source = arguments[i];
22
-
23
- for (var key in source) {
24
- if (Object.prototype.hasOwnProperty.call(source, key)) {
25
- target[key] = source[key];
26
- }
27
- }
28
- }
29
-
30
- return target;
31
- };
32
- return _extends.apply(this, arguments);
33
- }
34
-
35
- function _objectWithoutPropertiesLoose(source, excluded) {
36
- if (source == null) return {};
37
- var target = {};
38
- var sourceKeys = Object.keys(source);
39
- var key, i;
40
-
41
- for (i = 0; i < sourceKeys.length; i++) {
42
- key = sourceKeys[i];
43
- if (excluded.indexOf(key) >= 0) continue;
44
- target[key] = source[key];
45
- }
46
-
47
- return target;
48
- }
49
-
50
- function _taggedTemplateLiteralLoose(strings, raw) {
51
- if (!raw) {
52
- raw = strings.slice(0);
53
- }
54
-
55
- strings.raw = raw;
56
- return strings;
57
- }
58
-
59
- var _templateObject$e, _templateObject2$a, _templateObject3$9, _templateObject4$8, _templateObject5$6, _templateObject6$5, _templateObject7$5, _templateObject8$5, _templateObject9$5;
60
-
61
- var _excluded$3 = ["onClick", "children", "active", "hover", "reactive"];
62
- var FilterButton = React__default["default"].forwardRef(function FilterButton(_ref, ref) {
63
- var onClick = _ref.onClick,
64
- children = _ref.children,
65
- _ref$active = _ref.active,
66
- active = _ref$active === void 0 ? false : _ref$active,
67
- hover = _ref.hover,
68
- _ref$reactive = _ref.reactive,
69
- reactive = _ref$reactive === void 0 ? false : _ref$reactive;
70
- return /*#__PURE__*/React__default["default"].createElement(ButtonLike, {
71
- active: active,
72
- reactive: reactive,
73
- hover: hover,
74
- onClick: active && !reactive ? undefined : onClick,
75
- ref: ref
76
- }, children);
77
- });
78
- var FilterIconButton = React__default["default"].forwardRef(function FilterIconButton(_ref2, ref) {
79
- var onClick = _ref2.onClick,
80
- children = _ref2.children,
81
- _ref2$active = _ref2.active,
82
- active = _ref2$active === void 0 ? false : _ref2$active,
83
- hover = _ref2.hover,
84
- _ref2$reactive = _ref2.reactive,
85
- reactive = _ref2$reactive === void 0 ? false : _ref2$reactive,
86
- width = _ref2.width,
87
- height = _ref2.height;
88
- return /*#__PURE__*/React__default["default"].createElement(StyledButtonLike, {
89
- active: active,
90
- reactive: reactive,
91
- hover: hover,
92
- onClick: active && !reactive ? undefined : onClick,
93
- ref: ref,
94
- buttonWidth: width,
95
- buttonHeight: height
96
- }, children);
97
- });
98
- var FilterLink = React__default["default"].forwardRef(function FilterLink(_ref3, ref) {
99
- var onClick = _ref3.onClick,
100
- children = _ref3.children,
101
- _ref3$active = _ref3.active,
102
- active = _ref3$active === void 0 ? false : _ref3$active,
103
- hover = _ref3.hover,
104
- _ref3$reactive = _ref3.reactive,
105
- reactive = _ref3$reactive === void 0 ? false : _ref3$reactive,
106
- props = _objectWithoutPropertiesLoose(_ref3, _excluded$3);
107
-
108
- var _useComponentAbstract = react.useComponentAbstraction(),
109
- Link = _useComponentAbstract.Link;
110
-
111
- if (active && !reactive) {
112
- return /*#__PURE__*/React__default["default"].createElement(PlainElement, {
113
- active: true,
114
- hover: hover,
115
- ref: ref
116
- }, children);
117
- } else {
118
- return /*#__PURE__*/React__default["default"].createElement(Link, _extends({}, props, {
119
- onClick: onClick
120
- }), /*#__PURE__*/React__default["default"].createElement(PlainElement, {
121
- active: active,
122
- reactive: reactive,
123
- hover: hover,
124
- ref: ref
125
- }, children));
126
- }
127
- });
128
- var buttonCss = styled.css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n display: block;\n outline: none;\n border: none;\n padding: 9px 24px;\n font-size: 14px;\n line-height: 22px;\n font-weight: bold;\n border-radius: /* absurd radius, but ensures rounded corners */ 2000px;\n transition: color 0.2s;\n color: ", ";\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n\n &:hover {\n color: ", ";\n }\n\n ", "\n\n ", "\n\n ", "\n\n @media ", " {\n padding: 5px 16px;\n }\n"])), function (_ref4) {
129
- var theme = _ref4.theme;
130
- return theme.color.text3;
131
- }, function (_ref5) {
132
- var theme = _ref5.theme;
133
- return theme.color.text2;
134
- }, function (_ref6) {
135
- var _ref6$hover = _ref6.hover,
136
- hover = _ref6$hover === void 0 ? false : _ref6$hover;
137
- return hover && styled.css(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), function (_ref7) {
138
- var theme = _ref7.theme;
139
- return theme.color.text2;
140
- });
141
- }, function (_ref8) {
142
- var _ref8$active = _ref8.active,
143
- active = _ref8$active === void 0 ? false : _ref8$active;
144
- return active && styled.css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n color: ", ";\n "])), function (_ref9) {
145
- var theme = _ref9.theme;
146
- return theme.color.surface3;
147
- }, function (_ref10) {
148
- var theme = _ref10.theme;
149
- return theme.color.text2;
150
- });
151
- }, function (_ref11) {
152
- var _ref11$active = _ref11.active,
153
- active = _ref11$active === void 0 ? false : _ref11$active,
154
- _ref11$reactive = _ref11.reactive,
155
- reactive = _ref11$reactive === void 0 ? false : _ref11$reactive;
156
- return active && !reactive && styled.css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteralLoose(["\n cursor: default;\n "])));
157
- }, function (_ref12) {
158
- var theme = _ref12.theme;
159
- return utils.maxWidth(theme.breakpoint.screen1);
160
- });
161
- var padding0Css = styled.css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteralLoose(["\n padding: 0;\n\n @media ", " {\n padding: 0;\n }\n"])), function (_ref13) {
162
- var theme = _ref13.theme;
163
- return utils.maxWidth(theme.breakpoint.screen1);
164
- });
165
- var ButtonLike = styled__default["default"].button(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteralLoose(["\n ", "\n"])), buttonCss);
166
- var PlainElement = styled__default["default"].span(_templateObject7$5 || (_templateObject7$5 = _taggedTemplateLiteralLoose(["\n ", "\n"])), buttonCss);
167
- var StyledButtonLike = styled__default["default"](ButtonLike)(_templateObject8$5 || (_templateObject8$5 = _taggedTemplateLiteralLoose(["\n ", ";\n ", "\n ", "\n"])), padding0Css, function (p) {
168
- return p.buttonWidth !== undefined && "width: " + p.buttonWidth + "px;";
169
- }, function (p) {
170
- return p.buttonHeight !== undefined && "height: " + p.buttonHeight + "px;";
171
- });
172
- var Filter = styled__default["default"].div(_templateObject9$5 || (_templateObject9$5 = _taggedTemplateLiteralLoose(["\n display: flex;\n"])));
173
-
174
- var theme = styled$1.createTheme(styled__default["default"]);
175
-
176
- var _templateObject$d;
177
- function IconBase(_ref) {
178
- var _ref$size = _ref.size,
179
- size = _ref$size === void 0 ? 24 : _ref$size,
180
- viewBoxSize = _ref.viewBoxSize,
181
- currentColor = _ref.currentColor,
182
- path = _ref.path,
183
- transform = _ref.transform,
184
- fillRule = _ref.fillRule,
185
- clipRule = _ref.clipRule;
186
- return /*#__PURE__*/React__default["default"].createElement(Icon$2, {
187
- viewBox: "0 0 " + viewBoxSize + " " + viewBoxSize,
188
- size: size,
189
- currentColor: currentColor
190
- }, /*#__PURE__*/React__default["default"].createElement(IconBasePath, {
191
- path: path,
192
- transform: transform,
193
- fillRule: fillRule,
194
- clipRule: clipRule
195
- }));
196
- }
197
- var Icon$2 = styled__default["default"].svg(_templateObject$d || (_templateObject$d = _taggedTemplateLiteralLoose(["\n stroke: none;\n fill: ", ";\n width: ", "px;\n height: ", "px;\n line-height: 0;\n font-size: 0;\n vertical-align: middle;\n"])), function (_ref2) {
198
- var _ref2$currentColor = _ref2.currentColor,
199
- currentColor = _ref2$currentColor === void 0 ? false : _ref2$currentColor,
200
- theme = _ref2.theme;
201
- return currentColor ? 'currentColor' : theme.color.text2;
202
- }, function (props) {
203
- return props.size;
204
- }, function (props) {
205
- return props.size;
206
- });
207
- var IconBasePath = function IconBasePath(_ref3) {
208
- var path = _ref3.path,
209
- transform = _ref3.transform,
210
- fillRule = _ref3.fillRule,
211
- clipRule = _ref3.clipRule;
212
-
213
- if (typeof path === 'string') {
214
- return /*#__PURE__*/React__default["default"].createElement("path", {
215
- d: path,
216
- transform: transform,
217
- fillRule: fillRule,
218
- clipRule: clipRule
219
- });
220
- } else {
221
- // eslint-disable-next-line react/jsx-no-useless-fragment
222
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, path);
223
- }
224
- };
225
-
226
- var _templateObject$c;
227
- var size$1 = 16;
228
- function InfoIcon() {
229
- var path = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("path", {
230
- d: "M8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8C16 12.4183 12.4183 16 8 16Z"
231
- }), /*#__PURE__*/React__default["default"].createElement(Path, {
232
- d: "M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8ZM8 6.25C8.69036 6.25 9.25 5.69036 9.25 5C9.25 4.30964 8.69036 3.75 8 3.75C7.30964 3.75 6.75 4.30964 6.75 5C6.75 5.69036 7.30964 6.25 8 6.25ZM7 7.75V11.25C7 11.8023 7.44772 12.25 8 12.25C8.55228 12.25 9 11.8023 9 11.25V7.75C9 7.19772 8.55228 6.75 8 6.75C7.44772 6.75 7 7.19772 7 7.75Z"
233
- }));
234
- return /*#__PURE__*/React__default["default"].createElement(IconBase, {
235
- viewBoxSize: size$1,
236
- size: size$1,
237
- currentColor: true,
238
- path: path
239
- });
240
- }
241
- var Path = styled__default["default"].path(_templateObject$c || (_templateObject$c = _taggedTemplateLiteralLoose(["\n fill: ", ";\n fill-rule: evenodd;\n"])), function (_ref) {
242
- var theme = _ref.theme;
243
- return theme.color.surface1;
244
- });
245
-
246
- var _templateObject$b, _templateObject2$9, _templateObject3$8, _templateObject4$7;
247
- function HintText(_ref) {
248
- var children = _ref.children,
249
- context = _ref.context,
250
- className = _ref.className;
251
- return /*#__PURE__*/React__default["default"].createElement(Container$2, {
252
- className: className,
253
- context: context
254
- }, /*#__PURE__*/React__default["default"].createElement(IconWrap, null, /*#__PURE__*/React__default["default"].createElement(InfoIcon, null)), /*#__PURE__*/React__default["default"].createElement(Text$2, null, children));
255
- }
256
- var Container$2 = styled__default["default"].div.attrs(styledProps)(_templateObject$b || (_templateObject$b = _taggedTemplateLiteralLoose(["\n ", "\n\n @media ", " {\n ", "\n }\n\n display: flex;\n align-items: flex-start;\n ", "\n"])), function (p) {
257
- return theme(function (o) {
258
- return [o.bg.surface3, o.borderRadius(8), o.padding.vertical(p["default"].vertical), o.padding.horizontal(p["default"].horizontal)];
259
- });
260
- }, function (_ref2) {
261
- var t = _ref2.theme;
262
- return utils.maxWidth(t.breakpoint.screen1);
263
- }, function (p) {
264
- return theme(function (o) {
265
- return [o.padding.vertical(p.screen1.vertical), o.padding.horizontal(p.screen1.horizontal)];
266
- });
267
- }, function (p) {
268
- return p.context === 'page' && styled.css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteralLoose(["\n justify-content: center;\n "])));
269
- });
270
- var IconWrap = styled__default["default"].div(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n color: ", ";\n height: 22px;\n margin: -4px 4px -4px 0;\n"])), function (p) {
271
- return p.theme.color.text4;
272
- });
273
- var Text$2 = styled__default["default"].p(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteralLoose(["\n ", "\n margin: 0;\n"])), theme(function (o) {
274
- return [o.font.text2, o.typography(14)];
275
- }));
276
-
277
- function styledProps(props) {
278
- return _extends({}, props, contextToProps(props.context));
279
- }
280
-
281
- function contextToProps(context) {
282
- switch (context) {
283
- case 'page':
284
- return {
285
- "default": {
286
- horizontal: 40,
287
- vertical: 24
288
- },
289
- screen1: {
290
- horizontal: 16,
291
- vertical: 16
292
- }
293
- };
294
-
295
- case 'section':
296
- return {
297
- "default": {
298
- horizontal: 16,
299
- vertical: 16
300
- },
301
- screen1: {
302
- horizontal: 16,
303
- vertical: 16
304
- }
305
- };
306
- }
307
- }
308
-
309
- var MAIN_COLUMN_HORIZONTAL_MIN_MARGIN = 72;
310
- var RESPONSIVE_LEFT_WIDTH = foundation.columnSystem(2, foundation.COLUMN_UNIT, foundation.GUTTER_UNIT) + foundation.GUTTER_UNIT;
311
- var RESPONSIVE_MAIN_MAX_WIDTH = foundation.columnSystem(12, foundation.COLUMN_UNIT, foundation.GUTTER_UNIT);
312
-
313
- /**
314
- * 現在の画面幅がモバイル幅かどうかを返す
315
- */
316
-
317
- function useMediaScreen1() {
318
- return useMedia(utils.maxWidth(styled.useTheme().breakpoint.screen1));
319
- }
320
- /**
321
- * Returns a dynamically-updating media query result.
322
- *
323
- * When the media query's matching state changes, this hook's result
324
- * will update with sync priority.
325
- *
326
- * @param query A full media query (the string written between `@media` and the `{` in CSS)
327
- * @returns true if the query matches, false if it doesn't
328
- */
329
-
330
- function useMedia(query) {
331
- var matcher = React.useMemo(function () {
332
- return __TEST__ ? {
333
- matches: false,
334
- addListener: function addListener() {// do nothing
335
- },
336
- removeListener: function removeListener() {// do nothing
337
- }
338
- } : matchMedia(query);
339
- }, [query]);
340
-
341
- var _useState = React.useState(matcher.matches),
342
- matches = _useState[0],
343
- setMatches = _useState[1]; // can only happen if/when the query changes
344
-
345
-
346
- if (matcher.matches !== matches) {
347
- setMatches(matcher.matches);
348
- }
349
-
350
- var callback = function callback(e) {
351
- // We're not on a React event listener, so React doesn't know the priority of the setState call
352
- // Media query updates _are_ very high priority to avoid FOUC
353
- // so we need to emit a sync priority update
354
- try {
355
- // However, flushSync may throw if the matcher is triggered by a
356
- // forced relayout that happens during a React lifecycle handler.
357
- // Try to be resilient and retry without flushSync if flushSync throws.
358
- ReactDOM__default["default"].flushSync(function () {
359
- setMatches(e.matches);
360
- });
361
- } catch (_unused) {
362
- setMatches(e.matches);
363
- }
364
- };
365
-
366
- React.useLayoutEffect(function () {
367
- matcher.addListener(callback); // sync update
368
-
369
- setMatches(matcher.matches);
370
- return function () {
371
- matcher.removeListener(callback);
372
- };
373
- }, [matcher]);
374
- React.useDebugValue(query + ": " + matches.toString());
375
- return matches;
376
- }
377
-
378
- function measure(ref) {
379
- return ref !== null ? ref.getBoundingClientRect() : undefined;
380
- }
381
-
382
- function useElementSize(ref, // eslint-disable-next-line @typescript-eslint/no-explicit-any
383
- deps) {
384
- if (deps === void 0) {
385
- deps = [];
386
- }
387
-
388
- // _don't_ call measure synchronously here even if you somehow can
389
- // measurement has to be done outside the render phase, either
390
- // as the resize observer callback or as a layout effect
391
- var _useReducer = React.useReducer(function (state, next) {
392
- // width, height, etc are not own properties but getters in the prototype
393
- // can't use shallowEqual or other iterative checks
394
- if (state === undefined || next === undefined) {
395
- return next;
396
- }
397
-
398
- if (state.height === next.height && state.width === next.width) {
399
- return state;
400
- }
401
-
402
- return next;
403
- }, undefined),
404
- size = _useReducer[0],
405
- setSize = _useReducer[1];
406
-
407
- var _useState2 = React.useState(null),
408
- watch = _useState2[0],
409
- setWatch = _useState2[1];
410
-
411
- React.useLayoutEffect(function () {
412
- if (watch === null) {
413
- return;
414
- }
415
-
416
- var observer = new ResizeObserver(function () {
417
- // NOTE: the ResizeObserverCallback receives a rect,
418
- // but it's not measured in the same way as getBoundingClientRect,
419
- // which causes unstable layout
420
- var newSize = measure(watch);
421
- setSize(newSize);
422
- }); // The ResizeObserver is supposed to call handleResize on observe
423
-
424
- observer.observe(watch);
425
- return function () {
426
- // this will correctly unobserve if either the observer
427
- // or the current changes, and even on unmount
428
- // no need for an observer.disconnect() 🎉
429
- observer.unobserve(watch);
430
- setSize(undefined);
431
- };
432
- }, [watch]); // eslint-disable-next-line react-hooks/exhaustive-deps
433
-
434
- React.useLayoutEffect(function () {
435
- if (ref.current !== watch) {
436
- setWatch(ref.current);
437
- }
438
- });
439
- React.useLayoutEffect(function () {
440
- if (deps.length > 0) {
441
- // Sync measuring
442
- setSize(measure(ref.current));
443
- } // eslint-disable-next-line react-hooks/exhaustive-deps
444
-
445
- }, deps);
446
- React.useDebugValue(size);
447
- return size;
448
- }
449
- /**
450
- * Debounce version of setState with `requestAnimationFrame`
451
- *
452
- * @param defaultValue Default value for `useState`
453
- */
454
-
455
- function useDebounceAnimationState(defaultValue) {
456
- var _useState3 = React.useState(defaultValue),
457
- state = _useState3[0],
458
- setState = _useState3[1];
459
-
460
- var timer = React.useRef(); // typescript bug? (any when omitting type annotation)
461
- // eslint-disable-next-line @typescript-eslint/no-inferrable-types
462
-
463
- var setDebounceState = React.useCallback(function (value, force) {
464
- if (force === void 0) {
465
- force = false;
466
- }
467
-
468
- if (force) {
469
- setState(value);
470
- return;
471
- }
472
-
473
- if (timer.current !== undefined) {
474
- return;
475
- }
476
-
477
- timer.current = requestAnimationFrame(function () {
478
- setState(value);
479
-
480
- if (timer.current !== undefined) {
481
- timer.current = undefined;
482
- }
483
- });
484
- }, []);
485
- return [state, setDebounceState];
486
- }
487
-
488
- var _templateObject$a, _templateObject2$8, _templateObject3$7, _templateObject4$6, _templateObject5$5, _templateObject6$4, _templateObject7$4, _templateObject8$4, _templateObject9$4, _templateObject10$4, _templateObject11$1, _templateObject12$1, _templateObject13$1, _templateObject14, _templateObject15;
489
- var LayoutConfigContext = React__default["default"].createContext({
490
- wide: false,
491
- center: false,
492
- withLeft: false
493
- });
494
- function Layout(_ref) {
495
- var menu = _ref.menu,
496
- children = _ref.children,
497
- header = _ref.header,
498
- _ref$center = _ref.center,
499
- center = _ref$center === void 0 ? false : _ref$center,
500
- wide = _ref.wide,
501
- _ref$isHeaderTopMenu = _ref.isHeaderTopMenu,
502
- isHeaderTopMenu = _ref$isHeaderTopMenu === void 0 ? false : _ref$isHeaderTopMenu;
503
- var config = {
504
- center: center,
505
- wide: center ? true : wide != null ? wide : false,
506
- withLeft: menu != null && !isHeaderTopMenu
507
- };
508
- return /*#__PURE__*/React__default["default"].createElement(LayoutRoot, null, /*#__PURE__*/React__default["default"].createElement(LayoutConfigContext.Provider, {
509
- value: config
510
- }, config.withLeft && /*#__PURE__*/React__default["default"].createElement(LeftArea, null, menu), /*#__PURE__*/React__default["default"].createElement(MainArea, {
511
- center: center
512
- }, header != null && /*#__PURE__*/React__default["default"].createElement(Header, null, header), isHeaderTopMenu && /*#__PURE__*/React__default["default"].createElement(HeaderTopMenuContainer, null, menu), /*#__PURE__*/React__default["default"].createElement(Grid, null, children))), /*#__PURE__*/React__default["default"].createElement(GlobalStyle, null));
513
- }
514
- var HeaderTopMenuContainer = styled__default["default"].div(_templateObject$a || (_templateObject$a = _taggedTemplateLiteralLoose(["\n margin-bottom: 40px;\n overflow-x: auto;\n word-break: keep-all;\n\n @media ", " {\n margin-bottom: 0;\n padding-left: 16px;\n padding-bottom: 16px;\n background-color: ", ";\n }\n"])), function (_ref2) {
515
- var theme = _ref2.theme;
516
- return utils.maxWidth(theme.breakpoint.screen1);
517
- }, function (_ref3) {
518
- var theme = _ref3.theme;
519
- return theme.color.surface2;
520
- });
521
- var GlobalStyle = styled.createGlobalStyle(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteralLoose(["\n :root {\n background-color: ", ";\n\n @media ", " {\n background-color: ", ";\n }\n }\n"])), function (_ref4) {
522
- var theme = _ref4.theme;
523
- return theme.color.background2;
524
- }, function (_ref5) {
525
- var theme = _ref5.theme;
526
- return utils.maxWidth(theme.breakpoint.screen1);
527
- }, function (_ref6) {
528
- var theme = _ref6.theme;
529
- return theme.color.background1;
530
- });
531
- var LayoutRoot = styled__default["default"].div(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteralLoose(["\n display: flex;\n background-color: ", ";\n\n @media ", " {\n background-color: ", ";\n }\n"])), function (_ref7) {
532
- var theme = _ref7.theme;
533
- return theme.color.background2;
534
- }, function (_ref8) {
535
- var theme = _ref8.theme;
536
- return utils.maxWidth(theme.breakpoint.screen1);
537
- }, function (_ref9) {
538
- var theme = _ref9.theme;
539
- return theme.color.background1;
540
- });
541
- var LeftArea = styled__default["default"].div(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteralLoose(["\n min-width: ", "px;\n padding: 40px 0 40px ", "px;\n box-sizing: border-box;\n\n @media ", " {\n display: none;\n }\n"])), RESPONSIVE_LEFT_WIDTH, foundation.GUTTER_UNIT, function (_ref10) {
542
- var theme = _ref10.theme;
543
- return theme.breakpoint.screen3;
544
- });
545
- var MainArea = styled__default["default"].div(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteralLoose(["\n flex-grow: 1;\n /* https://www.w3.org/TR/css-flexbox-1/#min-size-auto */\n min-width: 0;\n max-width: ", "px;\n padding: 40px ", "px;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n\n @media ", " {\n padding: 0;\n }\n"])), function (p) {
546
- return p.center ? foundation.columnSystem(6, foundation.COLUMN_UNIT, foundation.GUTTER_UNIT) : RESPONSIVE_MAIN_MAX_WIDTH;
547
- }, MAIN_COLUMN_HORIZONTAL_MIN_MARGIN, function (_ref11) {
548
- var theme = _ref11.theme;
549
- return utils.maxWidth(theme.breakpoint.screen1);
550
- });
551
- var Header = styled__default["default"].div(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteralLoose(["\n font-weight: bold;\n margin-bottom: 12px;\n font-size: 20px;\n line-height: 28px;\n color: ", ";\n\n @media ", " {\n margin-bottom: 0;\n padding: 12px;\n font-size: 16px;\n line-height: 24px;\n display: flex;\n justify-content: center;\n background-color: ", ";\n }\n"])), function (_ref12) {
552
- var theme = _ref12.theme;
553
- return theme.color.text2;
554
- }, function (_ref13) {
555
- var theme = _ref13.theme;
556
- return utils.maxWidth(theme.breakpoint.screen1);
557
- }, function (_ref14) {
558
- var theme = _ref14.theme;
559
- return theme.color.surface2;
560
- });
561
- var Grid = styled__default["default"].div(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteralLoose(["\n display: grid;\n gap: ", "px;\n grid-template-columns: 1fr;\n grid-auto-columns: 1fr;\n grid-auto-rows: auto;\n\n @media ", " {\n gap: 0;\n background-color: ", ";\n padding-bottom: 60px;\n }\n"])), foundation.GUTTER_UNIT, function (_ref15) {
562
- var theme = _ref15.theme;
563
- return utils.maxWidth(theme.breakpoint.screen1);
564
- }, function (_ref16) {
565
- var theme = _ref16.theme;
566
- return theme.color.background1;
567
- });
568
- var LayoutItem = React__default["default"].forwardRef(function LayoutItem(_ref17, ref) {
569
- var span = _ref17.span,
570
- children = _ref17.children;
571
-
572
- var _useContext = React.useContext(LayoutConfigContext),
573
- withLeft = _useContext.withLeft;
574
-
575
- return /*#__PURE__*/React__default["default"].createElement(StyledLayoutItem, {
576
- span: span,
577
- withLeft: withLeft,
578
- ref: ref
579
- }, children);
580
- });
581
- var StyledLayoutItem = styled__default["default"].div(_templateObject8$4 || (_templateObject8$4 = _taggedTemplateLiteralLoose(["\n grid-column-start: auto;\n grid-column-end: span ", ";\n border-radius: 24px;\n color: ", ";\n background-color: ", ";\n /* https://www.w3.org/TR/css-grid-1/#min-size-auto */\n min-width: 0;\n\n @media ", " {\n ", "\n }\n\n @media ", " {\n ", "\n\n border-radius: 0;\n padding-bottom: 40px;\n }\n"])), function (p) {
582
- return p.span;
583
- }, function (_ref18) {
584
- var theme = _ref18.theme;
585
- return theme.color.text2;
586
- }, function (_ref19) {
587
- var theme = _ref19.theme;
588
- return theme.color.background1;
589
- }, function (p) {
590
- return p.withLeft ? p.theme.breakpoint.screen4 : p.theme.breakpoint.screen3;
591
- }, function (p) {
592
- return p.span > 2 && styled.css(_templateObject9$4 || (_templateObject9$4 = _taggedTemplateLiteralLoose(["\n grid-column-end: span 2;\n "])));
593
- }, function (_ref20) {
594
- var theme = _ref20.theme;
595
- return utils.maxWidth(theme.breakpoint.screen1);
596
- }, function (p) {
597
- return p.span > 1 && styled.css(_templateObject10$4 || (_templateObject10$4 = _taggedTemplateLiteralLoose(["\n grid-column-end: span 1;\n "])));
598
- });
599
- function LayoutItemHeader(_ref21) {
600
- var children = _ref21.children;
601
-
602
- var _useContext2 = React.useContext(LayoutConfigContext),
603
- wide = _useContext2.wide,
604
- center = _useContext2.center;
605
-
606
- return /*#__PURE__*/React__default["default"].createElement(StyledLayoutItemHeader, {
607
- wide: wide,
608
- center: center
609
- }, children);
610
- }
611
- var StyledLayoutItemHeader = styled__default["default"].div(_templateObject11$1 || (_templateObject11$1 = _taggedTemplateLiteralLoose(["\n padding: 0 ", "px;\n height: ", "px;\n display: grid;\n align-items: center;\n font-size: 16px;\n line-height: 24px;\n font-weight: bold;\n background-color: ", ";\n color: ", ";\n border-radius: 24px 24px 0 0;\n ", "\n\n @media ", " {\n margin-top: 4px;\n padding: 0 16px;\n background: none;\n overflow-x: auto;\n border-radius: unset;\n ", "\n }\n"])), function (p) {
612
- return p.wide ? 40 : 24;
613
- }, function (p) {
614
- return p.wide ? 64 : 48;
615
- }, function (_ref22) {
616
- var theme = _ref22.theme;
617
- return theme.color.surface2;
618
- }, function (_ref23) {
619
- var theme = _ref23.theme;
620
- return theme.color.text2;
621
- }, function (p) {
622
- return p.center && styled.css(_templateObject12$1 || (_templateObject12$1 = _taggedTemplateLiteralLoose(["\n justify-content: center;\n "])));
623
- }, function (_ref24) {
624
- var theme = _ref24.theme;
625
- return utils.maxWidth(theme.breakpoint.screen1);
626
- }, function (p) {
627
- return p.wide && styled.css(_templateObject13$1 || (_templateObject13$1 = _taggedTemplateLiteralLoose(["\n height: 48px;\n margin-top: 0;\n "])));
628
- });
629
- var LAYOUT_ITEM_BODY_PADDING = {
630
- wide: {
631
- x: 40,
632
- y: 40
633
- },
634
- "default": {
635
- x: 24,
636
- y: 24
637
- },
638
- column1: {
639
- x: 16,
640
- y: 16
641
- },
642
- narrow: {
643
- x: 24,
644
- yTop: 12,
645
- yBottom: 20
646
- },
647
- narrowColumn1: {
648
- x: 16,
649
- yTop: 4,
650
- yBottom: 0
651
- }
652
- };
653
- function LayoutItemBody(_ref25) {
654
- var children = _ref25.children,
655
- _ref25$horizontal = _ref25.horizontal,
656
- horizontal = _ref25$horizontal === void 0 ? false : _ref25$horizontal,
657
- _ref25$narrow = _ref25.narrow,
658
- narrow = _ref25$narrow === void 0 ? false : _ref25$narrow;
659
-
660
- var _useContext3 = React.useContext(LayoutConfigContext),
661
- wide = _useContext3.wide;
662
-
663
- return /*#__PURE__*/React__default["default"].createElement(StyledLayoutItemBody, {
664
- wide: wide,
665
- horizontal: horizontal,
666
- narrow: narrow
667
- }, children);
668
- }
669
- var StyledLayoutItemBody = styled__default["default"].div(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n padding: ", ";\n\n @media ", " {\n padding: ", ";\n }\n\n width: 100%;\n box-sizing: border-box;\n"])), function (p) {
670
- return p.narrow ? LAYOUT_ITEM_BODY_PADDING.narrow.yTop + "px " + (p.horizontal ? 0 : LAYOUT_ITEM_BODY_PADDING.narrow.x) + "px " + LAYOUT_ITEM_BODY_PADDING.narrow.yBottom + "px" : p.wide ? (p.horizontal ? 0 : LAYOUT_ITEM_BODY_PADDING.wide.y) + "px " + LAYOUT_ITEM_BODY_PADDING.wide.x + "px" : (p.horizontal ? 0 : LAYOUT_ITEM_BODY_PADDING["default"].y) + "px " + LAYOUT_ITEM_BODY_PADDING["default"].x + "px";
671
- }, function (_ref26) {
672
- var theme = _ref26.theme;
673
- return utils.maxWidth(theme.breakpoint.screen1);
674
- }, function (p) {
675
- return p.narrow ? LAYOUT_ITEM_BODY_PADDING.narrowColumn1.yTop + "px " + (p.horizontal ? 0 : LAYOUT_ITEM_BODY_PADDING.narrowColumn1.x) + "px " + LAYOUT_ITEM_BODY_PADDING.narrowColumn1.yBottom + "px" : LAYOUT_ITEM_BODY_PADDING.column1.y + "px " + LAYOUT_ITEM_BODY_PADDING.column1.x + "px " + 0;
676
- });
677
- function useLayoutItemBodyPadding() {
678
- var _useContext4 = React.useContext(LayoutConfigContext),
679
- wide = _useContext4.wide;
680
-
681
- return useMediaScreen1() ? LAYOUT_ITEM_BODY_PADDING.column1 : wide ? LAYOUT_ITEM_BODY_PADDING.wide : LAYOUT_ITEM_BODY_PADDING["default"];
682
- }
683
- function CancelLayoutItemBodyPadding(_ref27) {
684
- var children = _ref27.children,
685
- cancelTop = _ref27.cancelTop;
686
-
687
- var _useContext5 = React.useContext(LayoutConfigContext),
688
- wide = _useContext5.wide;
689
-
690
- return /*#__PURE__*/React__default["default"].createElement(StyledCancelLayoutItemBodyPadding, {
691
- wide: wide,
692
- cancelTop: cancelTop
693
- }, children);
694
- }
695
- /* eslint-disable max-len */
696
-
697
- var StyledCancelLayoutItemBodyPadding = styled__default["default"].div(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n margin: 0 -", "px;\n margin-top: -", "px;\n\n @media ", " {\n margin: 0 -", "px;\n margin-top: -", "px;\n }\n"])), function (p) {
698
- return p.wide ? LAYOUT_ITEM_BODY_PADDING.wide.x : LAYOUT_ITEM_BODY_PADDING["default"].x;
699
- }, function (_ref28) {
700
- var _ref28$cancelTop = _ref28.cancelTop,
701
- cancelTop = _ref28$cancelTop === void 0 ? false : _ref28$cancelTop,
702
- wide = _ref28.wide;
703
- return !cancelTop ? 0 : wide ? LAYOUT_ITEM_BODY_PADDING.wide.y : LAYOUT_ITEM_BODY_PADDING["default"].y;
704
- }, function (_ref29) {
705
- var theme = _ref29.theme;
706
- return utils.maxWidth(theme.breakpoint.screen1);
707
- }, LAYOUT_ITEM_BODY_PADDING.column1.x, function (_ref30) {
708
- var _ref30$cancelTop = _ref30.cancelTop,
709
- cancelTop = _ref30$cancelTop === void 0 ? false : _ref30$cancelTop;
710
- return !cancelTop ? 0 : LAYOUT_ITEM_BODY_PADDING.column1.x;
711
- });
712
- /* eslint-enable max-len */
713
-
714
- // https://github.com/fernandopasik/react-children-utilities/blob/971d8a0324e6183734d8d1af9a65dbad18ab3d00/src/lib/onlyText.ts
715
-
716
- var hasChildren = function hasChildren(element) {
717
- return React.isValidElement(element) && Boolean(element.props.children);
718
- };
719
-
720
- var childToString = function childToString( // eslint-disable-next-line @typescript-eslint/ban-types
721
- child) {
722
- if (typeof child === 'undefined' || child === null || typeof child === 'boolean') {
723
- return '';
724
- }
725
-
726
- if (JSON.stringify(child) === '{}') {
727
- return '';
728
- }
729
-
730
- return child.toString();
731
- };
732
- var onlyText = function onlyText(children) {
733
- if (!Array.isArray(children) && !React.isValidElement(children)) {
734
- return childToString(children);
735
- }
736
-
737
- return React.Children.toArray(children).reduce(function (text, child) {
738
- var newText = '';
739
-
740
- if (React.isValidElement(child) && hasChildren(child)) {
741
- newText = onlyText(child.props.children);
742
- } else if (React.isValidElement(child) && !hasChildren(child)) {
743
- newText = '';
744
- } else {
745
- newText = childToString(child);
746
- }
747
-
748
- return text.concat(newText);
749
- }, '');
750
- };
751
-
752
- var _templateObject$9, _templateObject2$7, _templateObject3$6;
753
- /**
754
- * 複数行のテキストに表示行数制限を設けて`...`で省略する
755
- */
756
-
757
- var TextEllipsis = styled__default["default"].div.attrs(function (_ref) {
758
- var children = _ref.children,
759
- _ref$title = _ref.title,
760
- title = _ref$title === void 0 ? onlyText(children) : _ref$title;
761
- return {
762
- title: title !== '' ? title : undefined
763
- };
764
- })(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteralLoose(["\n overflow: hidden;\n line-height: ", "px;\n /* For english */\n overflow-wrap: break-word;\n\n ", "\n"])), function (props) {
765
- return props.lineHeight;
766
- }, function (_ref2) {
767
- var _ref2$lineLimit = _ref2.lineLimit,
768
- lineLimit = _ref2$lineLimit === void 0 ? 1 : _ref2$lineLimit,
769
- lineHeight = _ref2.lineHeight;
770
- return lineLimit === 1 ? styled.css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteralLoose(["\n text-overflow: ellipsis;\n white-space: nowrap;\n "]))) : styled.css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: ", ";\n /* Fallback for -webkit-line-clamp */\n max-height: ", "px;\n "])), lineLimit, lineHeight * lineLimit);
771
- });
772
-
773
- var _excluded$2 = ["link", "onClick", "disabled", "primary", "secondary", "gtmClass", "noHover", "children"],
774
- _excluded2 = ["icon", "primary"],
775
- _excluded3 = ["icon", "primary"];
776
-
777
- var _templateObject$8, _templateObject2$6, _templateObject3$5, _templateObject4$5, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$3, _templateObject10$3;
778
- var MenuListItemContext = React__default["default"].createContext({
779
- padding: 24
780
- });
781
- function MenuListItem(_ref) {
782
- var primary = _ref.primary,
783
- secondary = _ref.secondary,
784
- _onClick = _ref.onClick,
785
- _ref$disabled = _ref.disabled,
786
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
787
- _ref$noHover = _ref.noHover,
788
- noHover = _ref$noHover === void 0 ? false : _ref$noHover,
789
- gtmClass = _ref.gtmClass,
790
- children = _ref.children;
791
-
792
- var _useContext = React.useContext(MenuListItemContext),
793
- padding = _useContext.padding;
794
-
795
- return /*#__PURE__*/React__default["default"].createElement(Item, {
796
- hasSubLabel: secondary !== undefined,
797
- onClick: function onClick(e) {
798
- return !disabled && _onClick && _onClick(e);
799
- },
800
- sidePadding: padding,
801
- noHover: noHover,
802
- noClick: _onClick === undefined,
803
- "aria-disabled": disabled,
804
- role: _onClick !== undefined ? 'button' : undefined,
805
- className: gtmClass !== undefined ? "gtm-" + gtmClass : undefined
806
- }, /*#__PURE__*/React__default["default"].createElement(Labels, null, /*#__PURE__*/React__default["default"].createElement(PrimaryText, null, /*#__PURE__*/React__default["default"].createElement(TextEllipsis, {
807
- lineHeight: 22,
808
- lineLimit: 1
809
- }, primary)), secondary !== undefined && /*#__PURE__*/React__default["default"].createElement(SecondaryText, null, /*#__PURE__*/React__default["default"].createElement(TextEllipsis, {
810
- lineHeight: 22,
811
- lineLimit: 1
812
- }, secondary))), children);
813
- }
814
- var Item = styled__default["default"].div(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteralLoose(["\n display: flex;\n height: ", "px;\n align-items: center;\n justify-content: space-between;\n padding: 0 ", "px;\n user-select: none;\n cursor: ", ";\n transition: 0.2s background-color;\n\n &:hover {\n ", "\n }\n\n ", "\n\n ", " {\n cursor: default;\n pointer-events: none;\n\n &:hover {\n background-color: unset;\n }\n }\n"])), function (p) {
815
- return p.hasSubLabel ? 56 : 40;
816
- }, function (p) {
817
- return p.sidePadding;
818
- }, function (p) {
819
- return p.noClick ? 'default' : 'pointer';
820
- }, function (p) {
821
- return !p.noHover && styled.css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n "])), function (_ref2) {
822
- var theme = _ref2.theme;
823
- return theme.color.surface3;
824
- });
825
- }, theme(function (o) {
826
- return o.disabled;
827
- }), utils.disabledSelector);
828
- var Labels = styled__default["default"].div(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n"])));
829
- var PrimaryText = styled__default["default"].div(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteralLoose(["\n color: ", ";\n line-height: 22px;\n font-size: 14px;\n display: grid;\n"])), function (p) {
830
- return p.theme.color.text2;
831
- });
832
- var SecondaryText = styled__default["default"].div(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n color: ", ";\n line-height: 18px;\n font-size: 10px;\n"])), function (p) {
833
- return p.theme.color.text3;
834
- });
835
- function MenuListLinkItem(_ref3) {
836
- var link = _ref3.link,
837
- onClick = _ref3.onClick,
838
- _ref3$disabled = _ref3.disabled,
839
- disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
840
- primary = _ref3.primary,
841
- secondary = _ref3.secondary,
842
- gtmClass = _ref3.gtmClass,
843
- noHover = _ref3.noHover,
844
- children = _ref3.children,
845
- linkProps = _objectWithoutPropertiesLoose(_ref3, _excluded$2);
846
-
847
- var _useComponentAbstract = react.useComponentAbstraction(),
848
- Link = _useComponentAbstract.Link;
849
-
850
- var props = {
851
- disabled: disabled,
852
- primary: primary,
853
- secondary: secondary,
854
- gtmClass: gtmClass,
855
- noHover: noHover,
856
- children: children
857
- };
858
- return disabled ? /*#__PURE__*/React__default["default"].createElement("span", {
859
- onClick: onClick
860
- }, /*#__PURE__*/React__default["default"].createElement(MenuListItem, props)) : /*#__PURE__*/React__default["default"].createElement(A, _extends({
861
- as: Link,
862
- to: link,
863
- onClick: onClick
864
- }, linkProps), /*#__PURE__*/React__default["default"].createElement(MenuListItem, _extends({
865
- onClick: function onClick() {
866
- return void 0;
867
- }
868
- }, props)));
869
- }
870
- var A = styled__default["default"].a(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteralLoose(["\n display: block;\n"])));
871
- function MenuListLinkItemWithIcon(_ref4) {
872
- var icon = _ref4.icon,
873
- text = _ref4.primary,
874
- props = _objectWithoutPropertiesLoose(_ref4, _excluded2);
875
-
876
- var primary = /*#__PURE__*/React__default["default"].createElement(IconContainer, null, /*#__PURE__*/React__default["default"].createElement(Icon$1, null, icon), text);
877
- return /*#__PURE__*/React__default["default"].createElement(MenuListLinkItem, _extends({
878
- primary: primary
879
- }, props));
880
- }
881
- function MenuListItemWithIcon(_ref5) {
882
- var icon = _ref5.icon,
883
- text = _ref5.primary,
884
- props = _objectWithoutPropertiesLoose(_ref5, _excluded3);
885
-
886
- var primary = /*#__PURE__*/React__default["default"].createElement(IconContainer, null, /*#__PURE__*/React__default["default"].createElement(Icon$1, null, icon), text);
887
- return /*#__PURE__*/React__default["default"].createElement(MenuListItem, _extends({
888
- primary: primary
889
- }, props));
890
- }
891
- var IconContainer = styled__default["default"].div(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteralLoose(["\n display: grid;\n gap: 8px;\n grid-auto-flow: column;\n align-items: center;\n"])));
892
- var Icon$1 = styled__default["default"].div(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteralLoose(["\n color: ", ";\n display: flex;\n"])), function (_ref6) {
893
- var theme = _ref6.theme;
894
- return theme.color.text3;
895
- });
896
- var MenuListSpacer = styled__default["default"].div(_templateObject9$3 || (_templateObject9$3 = _taggedTemplateLiteralLoose(["\n height: 24px;\n"])));
897
- var MenuListLabel = styled__default["default"].div(_templateObject10$3 || (_templateObject10$3 = _taggedTemplateLiteralLoose(["\n padding: 0 16px;\n font-size: 12px;\n line-height: 16px;\n color: ", ";\n margin-top: -2px;\n margin-bottom: 6px;\n"])), function (_ref7) {
898
- var theme = _ref7.theme;
899
- return theme.color.text3;
900
- });
901
-
902
- var _templateObject$7, _templateObject2$5;
903
- function LeftMenu(_ref) {
904
- var links = _ref.links,
905
- active = _ref.active;
906
-
907
- var _useComponentAbstract = react.useComponentAbstraction(),
908
- Link = _useComponentAbstract.Link;
909
-
910
- return /*#__PURE__*/React__default["default"].createElement(Container$1, null, links.map(function (link, index) {
911
- return /*#__PURE__*/React__default["default"].createElement(Link, {
912
- to: link.to,
913
- key: index
914
- }, /*#__PURE__*/React__default["default"].createElement(LinkItem, {
915
- "aria-current": link.id === active || undefined
916
- }, link.text));
917
- }));
918
- }
919
- function LeftMenuContent(_ref2) {
920
- var links = _ref2.links;
921
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, links.map(function (link, index) {
922
- return /*#__PURE__*/React__default["default"].createElement(MenuListLinkItem, {
923
- link: link.to,
924
- key: index,
925
- primary: link.text
926
- });
927
- }));
928
- }
929
- var Container$1 = styled__default["default"].div(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n"])));
930
- var LinkItem = styled__default["default"].div(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n color: ", ";\n border-radius: 24px;\n font-weight: bold;\n font-size: 14px;\n line-height: 22px;\n padding: 0 16px;\n height: 40px;\n transition: 0.2s color;\n &:hover {\n transition: 0.2s color;\n color: ", ";\n }\n &[aria-current] {\n color: ", ";\n background-color: ", ";\n }\n"])), function (_ref3) {
931
- var theme = _ref3.theme;
932
- return theme.color.text3;
933
- }, function (_ref4) {
934
- var theme = _ref4.theme;
935
- return theme.color.text2;
936
- }, function (_ref5) {
937
- var theme = _ref5.theme;
938
- return theme.color.text2;
939
- }, function (_ref6) {
940
- var theme = _ref6.theme;
941
- return theme.color.surface3;
942
- });
943
-
944
- var _templateObject$6, _templateObject2$4, _templateObject3$4, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7$2, _templateObject8$2, _templateObject9$2, _templateObject10$2;
945
-
946
- var _excluded$1 = ["gtmClass", "flex", "rowReverse", "children", "disabled"];
947
- var index$2 = React__default["default"].forwardRef(function SwitchCheckbox(_ref, ref) {
948
- var gtmClass = _ref.gtmClass,
949
- _ref$flex = _ref.flex,
950
- flex = _ref$flex === void 0 ? false : _ref$flex,
951
- _ref$rowReverse = _ref.rowReverse,
952
- rowReverse = _ref$rowReverse === void 0 ? false : _ref$rowReverse,
953
- children = _ref.children,
954
- disabled = _ref.disabled,
955
- props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
956
-
957
- return /*#__PURE__*/React__default["default"].createElement(Label, {
958
- className: gtmClass !== undefined ? "gtm-" + gtmClass : '',
959
- flex: flex,
960
- rowReverse: rowReverse,
961
- "aria-disabled": disabled
962
- }, /*#__PURE__*/React__default["default"].createElement(SwitchOuter, null, /*#__PURE__*/React__default["default"].createElement(SwitchInput, _extends({}, props, {
963
- disabled: disabled,
964
- ref: ref
965
- })), /*#__PURE__*/React__default["default"].createElement(SwitchInner, null, /*#__PURE__*/React__default["default"].createElement(SwitchInnerKnob, null))), children != null && /*#__PURE__*/React__default["default"].createElement(Children, {
966
- rowReverse: rowReverse
967
- }, children));
968
- });
969
- var Children = styled__default["default"].span(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (p) {
970
- return p.rowReverse ? styled.css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n margin-right: 8px;\n "]))) : styled.css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteralLoose(["\n margin-left: 8px;\n "])));
971
- });
972
- var Label = styled__default["default"].label(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n ", "\n ", "\n cursor: pointer;\n outline: 0;\n\n &[aria-disabled='true'] {\n cursor: auto;\n }\n"])), function (_ref2) {
973
- var flex = _ref2.flex;
974
- return flex && styled.css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: space-between;\n "])));
975
- }, function (_ref3) {
976
- var rowReverse = _ref3.rowReverse;
977
- return styled.css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteralLoose(["\n flex-direction: ", ";\n "])), rowReverse ? 'row-reverse' : 'row');
978
- });
979
- var SwitchOuter = styled__default["default"].span(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n position: relative;\n z-index: 0;\n"])));
980
- var SwitchInner = styled__default["default"].div(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteralLoose(["\n position: relative;\n box-sizing: border-box;\n width: 28px;\n height: 16px;\n border-radius: 16px;\n border: 2px solid transparent;\n background: ", ";\n transition: box-shadow 0.2s, background-color 0.2s;\n"])), function (_ref4) {
981
- var theme = _ref4.theme;
982
- return theme.color.text4;
983
- });
984
- var SwitchInnerKnob = styled__default["default"].div(_templateObject9$2 || (_templateObject9$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 12px;\n height: 12px;\n background-color: ", ";\n border-radius: 50%;\n transform: translateX(0);\n transition: transform 0.2s;\n"])), function (_ref5) {
985
- var theme = _ref5.theme;
986
- return theme.color.text5;
987
- });
988
- var SwitchInput = styled__default["default"].input.attrs({
989
- type: 'checkbox'
990
- })(_templateObject10$2 || (_templateObject10$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n /* NOTE: this is contained by the GraphicCheckboxOuter */\n z-index: 1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n /* just to control the clickable area if used standalone */\n border-radius: 16px;\n opacity: 0;\n appearance: none;\n outline: none;\n cursor: pointer;\n\n &:checked {\n ~ ", " {\n background-color: ", ";\n\n ", " {\n transform: translateX(12px);\n }\n }\n }\n\n &:disabled {\n cursor: auto;\n\n ~ ", " {\n opacity: ", ";\n }\n }\n\n &:not(:disabled):focus {\n ~ ", " {\n box-shadow: 0 0 0 4px\n ", ";\n }\n }\n"])), SwitchInner, function (_ref6) {
991
- var theme = _ref6.theme;
992
- return theme.color.brand;
993
- }, SwitchInnerKnob, SwitchInner, function (_ref7) {
994
- var theme = _ref7.theme;
995
- return theme.elementEffect.disabled.opacity;
996
- }, SwitchInner, function (_ref8) {
997
- var theme = _ref8.theme;
998
- return utils.applyEffect(theme.color.brand, theme.elementEffect.disabled);
999
- });
1000
-
1001
- var _templateObject$5, _templateObject2$3, _templateObject3$3, _templateObject4$3, _templateObject5$2, _templateObject6$1, _templateObject7$1, _templateObject8$1, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13;
1002
- var index$1 = React__default["default"].memo(function WithIcon(_ref) {
1003
- var children = _ref.children,
1004
- icon = _ref.icon,
1005
- _ref$show = _ref.show,
1006
- show = _ref$show === void 0 ? true : _ref$show,
1007
- _ref$prefix = _ref.prefix,
1008
- pre = _ref$prefix === void 0 ? false : _ref$prefix,
1009
- width = _ref.width,
1010
- _ref$fit = _ref.fit,
1011
- fit = _ref$fit === void 0 ? false : _ref$fit,
1012
- _ref$fixed = _ref.fixed,
1013
- fixed = _ref$fixed === void 0 ? false : _ref$fixed;
1014
- var node = fit ? width === undefined ? /*#__PURE__*/React__default["default"].createElement(AutoWidthIconAnchor, {
1015
- show: show,
1016
- pre: pre
1017
- }, icon) : /*#__PURE__*/React__default["default"].createElement(IconAnchor, {
1018
- width: width,
1019
- show: show,
1020
- pre: pre
1021
- }, /*#__PURE__*/React__default["default"].createElement(Icon, null, icon)) : /*#__PURE__*/React__default["default"].createElement(IconAnchorNaive, {
1022
- show: show,
1023
- pre: pre
1024
- }, /*#__PURE__*/React__default["default"].createElement(IconNaive, null, icon));
1025
- return /*#__PURE__*/React__default["default"].createElement(Root, null, pre && node, /*#__PURE__*/React__default["default"].createElement(Text$1, {
1026
- fixed: fixed
1027
- }, children), !pre && node);
1028
- });
1029
- var Root = styled__default["default"].div(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n"])));
1030
- var Text$1 = styled__default["default"].div(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteralLoose(["\n ", "\n white-space: nowrap;\n text-overflow: ellipsis;\n"])), function (p) {
1031
- return !p.fixed && styled.css(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteralLoose(["\n min-width: 0;\n overflow: hidden;\n "])));
1032
- });
1033
-
1034
- function AutoWidthIconAnchor(_ref2) {
1035
- var _useElementSize$width, _useElementSize;
1036
-
1037
- var children = _ref2.children,
1038
- show = _ref2.show,
1039
- pre = _ref2.pre;
1040
- var ref = React.useRef(null); // depsを空配列にしないことで初回だけ同期で幅を計算させるテクニック
1041
-
1042
- var width = (_useElementSize$width = (_useElementSize = useElementSize(ref, [null])) == null ? void 0 : _useElementSize.width) != null ? _useElementSize$width : 0;
1043
- return /*#__PURE__*/React__default["default"].createElement(IconAnchor, {
1044
- width: width,
1045
- show: show,
1046
- pre: pre
1047
- }, /*#__PURE__*/React__default["default"].createElement(Icon, {
1048
- ref: ref
1049
- }, children));
1050
- }
1051
-
1052
- var forceCenteringCss = styled.css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n > svg {\n display: block;\n }\n"])));
1053
- var iconAnchorCss = styled.css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n ", ";\n ", "\n"])), function (p) {
1054
- return p.show === 'collapse' ? styled.css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n display: none;\n "]))) : styled.css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteralLoose(["\n visibility: ", ";\n "])), p.show ? 'visible' : 'hidden');
1055
- }, function (p) {
1056
- return p.pre ? styled.css(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteralLoose(["\n margin-right: 4px;\n "]))) : styled.css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteralLoose(["\n margin-left: 4px;\n "])));
1057
- });
1058
- var IconAnchorNaive = styled__default["default"].div(_templateObject10$1 || (_templateObject10$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n\n ", "\n"])), iconAnchorCss);
1059
- var IconNaive = styled__default["default"].div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n\n ", "\n"])), forceCenteringCss);
1060
- var IconAnchor = styled__default["default"].div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n display: flex;\n position: relative;\n /* Icon\u3092line-height\u306B\u95A2\u4E0E\u3055\u305B\u306A\u3044 */\n height: 0;\n /* \u6A2A\u65B9\u5411\u306E\u9818\u57DF\u306F\u78BA\u4FDD\u3059\u308B */\n width: ", "px;\n\n ", "\n"])), function (p) {
1061
- return p.width;
1062
- }, iconAnchorCss);
1063
- var Icon = styled__default["default"].div(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n position: absolute;\n transform: translateY(-50%);\n\n ", "\n"])), forceCenteringCss);
1064
-
1065
- var passiveEventsResult; // eslint-disable-line no-var
1066
-
1067
- function passiveEvents() {
1068
- if (passiveEventsResult !== undefined) {
1069
- return passiveEventsResult;
1070
- }
1071
-
1072
- passiveEventsResult = false;
1073
-
1074
- try {
1075
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
1076
- var options = Object.defineProperty({}, 'passive', {
1077
- get: function get() {
1078
- return passiveEventsResult = true;
1079
- }
1080
- });
1081
- window.addEventListener('test', test, options);
1082
- window.removeEventListener('test', test);
1083
- } catch (_unused) {// test fail
1084
- }
1085
-
1086
- return passiveEventsResult;
1087
-
1088
- function test() {
1089
- /* empty */
1090
- }
1091
- }
1092
- var isEdge = function isEdge() {
1093
- return navigator.userAgent.includes('Edge/');
1094
- };
1095
-
1096
- function unreachable(value) {
1097
- throw new Error(arguments.length === 0 ? 'unreachable' : "unreachable (" + JSON.stringify(value) + ")");
1098
- }
1099
-
1100
- var WedgeDirection$1;
1101
-
1102
- (function (WedgeDirection) {
1103
- WedgeDirection["Up"] = "up";
1104
- WedgeDirection["Down"] = "down";
1105
- WedgeDirection["Left"] = "left";
1106
- WedgeDirection["Right"] = "right";
1107
- })(WedgeDirection$1 || (WedgeDirection$1 = {})); // eslint-disable-next-line max-len
1108
-
1109
-
1110
- var path = "M8.08579 16.5858C7.30474 17.3668 7.30474 18.6332 8.08579 19.4142C8.86684 20.1953 10.1332 20.1953 10.9142 19.4142L18.3284 12L10.9142 4.58579C10.1332 3.80474 8.86684 3.80474 8.08579 4.58579C7.30474 5.36684 7.30474 6.63317 8.08579 7.41421L12.6716 12L8.08579 16.5858Z";
1111
- var size = 24;
1112
- function NextIcon(_ref) {
1113
- var direction = _ref.direction;
1114
- var transform = directionToTransform$1(direction);
1115
- return /*#__PURE__*/React__default["default"].createElement(IconBase, {
1116
- viewBoxSize: size,
1117
- size: size,
1118
- currentColor: true,
1119
- path: path,
1120
- transform: transform
1121
- });
1122
- }
1123
-
1124
- function directionToTransform$1(direction) {
1125
- // "5 4" is the center point of the "0 0 10 8" viewBox
1126
- switch (direction) {
1127
- case WedgeDirection$1.Up:
1128
- return 'rotate(270 12 12)';
1129
-
1130
- case WedgeDirection$1.Down:
1131
- return 'rotate(90 12 12)';
1132
-
1133
- case WedgeDirection$1.Left:
1134
- return 'rotate(180 12 12)';
1135
-
1136
- case WedgeDirection$1.Right:
1137
- return undefined;
1138
-
1139
- default:
1140
- return unreachable(direction);
1141
- }
1142
- }
1143
-
1144
- var _templateObject$4, _templateObject2$2, _templateObject3$2, _templateObject4$2, _templateObject5$1;
1145
- var Direction;
1146
-
1147
- (function (Direction) {
1148
- Direction["Right"] = "right";
1149
- Direction["Left"] = "left";
1150
- })(Direction || (Direction = {}));
1151
-
1152
- function CarouselButton(_ref) {
1153
- var direction = _ref.direction,
1154
- show = _ref.show,
1155
- _ref$offset = _ref.offset,
1156
- offset = _ref$offset === void 0 ? 0 : _ref$offset,
1157
- _ref$padding = _ref.padding,
1158
- padding = _ref$padding === void 0 ? 0 : _ref$padding,
1159
- _ref$bottomOffset = _ref.bottomOffset,
1160
- bottom = _ref$bottomOffset === void 0 ? 0 : _ref$bottomOffset,
1161
- _ref$gradient = _ref.gradient,
1162
- gradient = _ref$gradient === void 0 ? false : _ref$gradient,
1163
- onClick = _ref.onClick;
1164
- var offsetStyle = direction === Direction.Left ? {
1165
- left: gradient ? offset - 72 : offset,
1166
- paddingLeft: Math.max(padding, 0),
1167
- paddingBottom: bottom
1168
- } : {
1169
- right: gradient ? offset - 72 : offset,
1170
- paddingRight: Math.max(padding, 0),
1171
- paddingBottom: bottom
1172
- };
1173
- return /*#__PURE__*/React__default["default"].createElement(Button, {
1174
- type: "button",
1175
- onClick: onClick,
1176
- hide: !show,
1177
- style: offsetStyle,
1178
- css: onlyNonTouchDevice
1179
- }, /*#__PURE__*/React__default["default"].createElement(CarouselButtonIcon, null, /*#__PURE__*/React__default["default"].createElement(NextIcon, {
1180
- direction: direction === Direction.Right ? WedgeDirection$1.Right : // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
1181
- direction === Direction.Left ? WedgeDirection$1.Left : unreachable()
1182
- })));
1183
- }
1184
- var CAROUSEL_BUTTON_SIZE = 40;
1185
- var CarouselButtonIcon = styled__default["default"].div(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: ", "px;\n height: ", "px;\n border-radius: 50%;\n background-color: ", ";\n transition: 0.4s visibility, 0.4s opacity, 0.2s background-color, 0.2s color;\n color: ", ";\n"])), CAROUSEL_BUTTON_SIZE, CAROUSEL_BUTTON_SIZE, function (_ref2) {
1186
- var theme = _ref2.theme;
1187
- return theme.color.surface4;
1188
- }, function (_ref3) {
1189
- var theme = _ref3.theme;
1190
- return theme.color.text5;
1191
- });
1192
- var Button = styled__default["default"].button(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n padding: 0;\n min-width: 40px;\n border: none;\n outline: 0;\n background: transparent;\n cursor: pointer;\n transition: 0.4s visibility, 0.4s opacity;\n /* \u3064\u3089\u3044 */\n /* \u3053\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306FCarousel\u3067\u3057\u304B\u4F7F\u308F\u308C\u3066\u306A\u3044\u306E\u3067\u305D\u3063\u3061\u3067\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u5207\u308B */\n z-index: 1;\n\n &:hover ", " {\n background-color: ", ";\n color: ", ";\n }\n\n &:active ", " {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n"])), CarouselButtonIcon, function (_ref4) {
1193
- var theme = _ref4.theme;
1194
- return utils.applyEffect(theme.color.surface4, theme.effect.hover);
1195
- }, function (_ref5) {
1196
- var theme = _ref5.theme;
1197
- return utils.applyEffect(theme.color.text5, theme.effect.hover);
1198
- }, CarouselButtonIcon, function (_ref6) {
1199
- var theme = _ref6.theme;
1200
- return utils.applyEffect(theme.color.surface4, theme.effect.press);
1201
- }, function (_ref7) {
1202
- var theme = _ref7.theme;
1203
- return utils.applyEffect(theme.color.text5, theme.effect.press);
1204
- }, function (p) {
1205
- return p.hide && styled.css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteralLoose(["\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n "])));
1206
- });
1207
- styled__default["default"](CarouselButtonIcon)(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n\n &:active {\n background-color: ", ";\n color: ", ";\n }\n"])), function (_ref9) {
1208
- var theme = _ref9.theme;
1209
- return utils.applyEffect(theme.color.surface4, theme.effect.hover);
1210
- }, function (_ref10) {
1211
- var theme = _ref10.theme;
1212
- return utils.applyEffect(theme.color.text5, theme.effect.hover);
1213
- }, function (_ref11) {
1214
- var theme = _ref11.theme;
1215
- return utils.applyEffect(theme.color.surface4, theme.effect.press);
1216
- }, function (_ref12) {
1217
- var theme = _ref12.theme;
1218
- return utils.applyEffect(theme.color.text5, theme.effect.press);
1219
- });
1220
- var onlyNonTouchDevice = styled.css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteralLoose(["\n @media (hover: none) and (pointer: coarse) {\n display: none;\n }\n"])));
1221
-
1222
- var _templateObject$3, _templateObject2$1, _templateObject3$1, _templateObject4$1, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
1223
-
1224
- var _excluded = ["buttonOffset", "buttonPadding", "bottomOffset", "defaultScroll", "onScroll", "onResize", "children", "centerItems", "onScrollStateChange", "scrollAmountCoef"];
1225
- var GRADIENT_WIDTH = 72;
1226
- /**
1227
- * カルーセル系のスクロール量の定数
1228
- *
1229
- * @example
1230
- * const scrollAmount = containerElm.clientWidth * SCROLL_AMOUNT_COEF
1231
- */
1232
-
1233
- var SCROLL_AMOUNT_COEF = 0.75;
1234
- function Carousel(_ref) {
1235
- var _ref$buttonOffset = _ref.buttonOffset,
1236
- buttonOffset = _ref$buttonOffset === void 0 ? 0 : _ref$buttonOffset,
1237
- _ref$buttonPadding = _ref.buttonPadding,
1238
- buttonPadding = _ref$buttonPadding === void 0 ? 16 : _ref$buttonPadding,
1239
- _ref$bottomOffset = _ref.bottomOffset,
1240
- bottomOffset = _ref$bottomOffset === void 0 ? 0 : _ref$bottomOffset,
1241
- _ref$defaultScroll = _ref.defaultScroll;
1242
- _ref$defaultScroll = _ref$defaultScroll === void 0 ? {} : _ref$defaultScroll;
1243
-
1244
- var _ref$defaultScroll$al = _ref$defaultScroll.align,
1245
- align = _ref$defaultScroll$al === void 0 ? 'left' : _ref$defaultScroll$al,
1246
- _ref$defaultScroll$of = _ref$defaultScroll.offset,
1247
- scrollOffset = _ref$defaultScroll$of === void 0 ? 0 : _ref$defaultScroll$of,
1248
- onScroll = _ref.onScroll,
1249
- onResize = _ref.onResize,
1250
- children = _ref.children,
1251
- centerItems = _ref.centerItems,
1252
- onScrollStateChange = _ref.onScrollStateChange,
1253
- _ref$scrollAmountCoef = _ref.scrollAmountCoef,
1254
- scrollAmountCoef = _ref$scrollAmountCoef === void 0 ? SCROLL_AMOUNT_COEF : _ref$scrollAmountCoef,
1255
- options = _objectWithoutPropertiesLoose(_ref, _excluded);
1256
-
1257
- // スクロール位置を保存する
1258
- // アニメーション中の場合は、アニメーション終了時のスクロール位置が保存される
1259
- var _useDebounceAnimation = useDebounceAnimationState(0),
1260
- scrollLeft = _useDebounceAnimation[0],
1261
- setScrollLeft = _useDebounceAnimation[1]; // アニメーション中かどうか
1262
-
1263
-
1264
- var animation = React.useRef(false); // スクロール可能な領域を保存する
1265
-
1266
- var _useState = React.useState(0),
1267
- maxScrollLeft = _useState[0],
1268
- setMaxScrollLeft = _useState[1]; // 左右のボタンの表示状態を保存する
1269
-
1270
-
1271
- var _useState2 = React.useState(false),
1272
- leftShow = _useState2[0],
1273
- setLeftShow = _useState2[1];
1274
-
1275
- var _useState3 = React.useState(false),
1276
- rightShow = _useState3[0],
1277
- setRightShow = _useState3[1]; // const [props, set, stop] = useSpring(() => ({
1278
- // scroll: 0
1279
- // }))
1280
-
1281
-
1282
- var _useSpring = reactSpring.useSpring(function () {
1283
- return {
1284
- scroll: 0
1285
- };
1286
- }),
1287
- styles = _useSpring[0],
1288
- set = _useSpring[1];
1289
-
1290
- var ref = React.useRef(null);
1291
- var visibleAreaRef = React.useRef(null);
1292
- var innerRef = React.useRef(null);
1293
- var handleRight = React.useCallback(function () {
1294
- if (visibleAreaRef.current === null) {
1295
- return;
1296
- }
1297
-
1298
- var clientWidth = visibleAreaRef.current.clientWidth; // スクロール領域を超えないように、アニメーションを開始
1299
- // アニメーション中にアニメーションが開始されたときに、アニメーション終了予定の位置から再度計算するようにする
1300
-
1301
- var scroll = Math.min(scrollLeft + clientWidth * scrollAmountCoef, maxScrollLeft);
1302
- setScrollLeft(scroll, true);
1303
- set({
1304
- scroll: scroll,
1305
- from: {
1306
- scroll: scrollLeft
1307
- },
1308
- reset: !animation.current
1309
- });
1310
- animation.current = true;
1311
- }, [animation, maxScrollLeft, scrollLeft, set, scrollAmountCoef, setScrollLeft]);
1312
- var handleLeft = React.useCallback(function () {
1313
- if (visibleAreaRef.current === null) {
1314
- return;
1315
- }
1316
-
1317
- var clientWidth = visibleAreaRef.current.clientWidth;
1318
- var scroll = Math.max(scrollLeft - clientWidth * scrollAmountCoef, 0);
1319
- setScrollLeft(scroll, true);
1320
- set({
1321
- scroll: scroll,
1322
- from: {
1323
- scroll: scrollLeft
1324
- },
1325
- reset: !animation.current
1326
- });
1327
- animation.current = true;
1328
- }, [animation, scrollLeft, set, scrollAmountCoef, setScrollLeft]); // スクロール可能な場合にボタンを表示する
1329
- // scrollLeftが変化したときに処理する (アニメーション開始時 & 手動スクロール時)
1330
-
1331
- React.useEffect(function () {
1332
- var newleftShow = scrollLeft > 0;
1333
- var newrightShow = scrollLeft < maxScrollLeft && maxScrollLeft > 0;
1334
-
1335
- if (newleftShow !== leftShow || newrightShow !== rightShow) {
1336
- setLeftShow(newleftShow);
1337
- setRightShow(newrightShow);
1338
- onScrollStateChange == null ? void 0 : onScrollStateChange(newleftShow || newrightShow);
1339
- }
1340
- }, [leftShow, maxScrollLeft, onScrollStateChange, rightShow, scrollLeft]);
1341
- var handleScroll = React.useCallback(function () {
1342
- if (ref.current === null) {
1343
- return;
1344
- } // 手動でスクロールが開始されたときにアニメーションを中断
1345
-
1346
-
1347
- if (animation.current) {
1348
- styles.scroll.stop();
1349
- animation.current = false;
1350
- } // スクロール位置を保存 (アニメーションの基準になる)
1351
-
1352
-
1353
- var manualScrollLeft = ref.current.scrollLeft; // 過剰にsetStateが走らないようにDebouceする
1354
-
1355
- setScrollLeft(manualScrollLeft);
1356
- }, [animation, setScrollLeft, styles]); // リサイズが起きたときに、アニメーション用のスクロール領域 & ボタンの表示状態 を再計算する
1357
-
1358
- var handleResize = React.useCallback(function () {
1359
- if (ref.current === null) {
1360
- return;
1361
- }
1362
-
1363
- var _ref$current = ref.current,
1364
- clientWidth = _ref$current.clientWidth,
1365
- scrollWidth = _ref$current.scrollWidth;
1366
- var newMaxScrollLeft = scrollWidth - clientWidth;
1367
- setMaxScrollLeft(newMaxScrollLeft);
1368
-
1369
- if (onResize) {
1370
- onResize(clientWidth);
1371
- }
1372
- }, [onResize]);
1373
- React.useLayoutEffect(function () {
1374
- var elm = ref.current;
1375
- var innerElm = innerRef.current;
1376
-
1377
- if (elm === null || innerElm === null) {
1378
- return;
1379
- }
1380
-
1381
- elm.addEventListener('wheel', handleScroll, passiveEvents() && {
1382
- passive: true
1383
- });
1384
- var resizeObserver = new ResizeObserver(handleResize);
1385
- resizeObserver.observe(elm);
1386
- var resizeObserverInner = new ResizeObserver(handleResize);
1387
- resizeObserverInner.observe(innerElm);
1388
- return function () {
1389
- elm.removeEventListener('wheel', handleScroll);
1390
- resizeObserver.disconnect();
1391
- resizeObserverInner.disconnect();
1392
- };
1393
- }, [handleResize, handleScroll]); // 初期スクロールを行う
1394
-
1395
- React.useLayoutEffect(function () {
1396
- if (align !== 'left' || scrollOffset !== 0) {
1397
- var scroll = ref.current;
1398
-
1399
- if (scroll !== null) {
1400
- var scrollLength = Math.max(0, Math.min(align === 'left' && scrollOffset > 0 ? scrollOffset : align === 'center' ? maxScrollLeft / 2 + scrollOffset : align === 'right' && scrollOffset <= maxScrollLeft ? maxScrollLeft - scrollOffset / 2 : 0, maxScrollLeft));
1401
- scroll.scrollLeft = scrollLength;
1402
- setScrollLeft(scrollLength, true);
1403
- }
1404
- } // eslint-disable-next-line react-hooks/exhaustive-deps
1405
-
1406
- }, [ref.current]);
1407
- var handleScrollMove = React.useCallback(function () {
1408
- if (ref.current === null) {
1409
- return;
1410
- }
1411
-
1412
- if (onScroll) {
1413
- onScroll(ref.current.scrollLeft);
1414
- }
1415
- }, [onScroll]);
1416
-
1417
- var _useState4 = React.useState(false),
1418
- disableGradient = _useState4[0],
1419
- setDisableGradient = _useState4[1];
1420
-
1421
- React.useLayoutEffect(function () {
1422
- if (isEdge()) {
1423
- setDisableGradient(true);
1424
- }
1425
- }, []); // NOTE: Edgeではmaskを使うと要素のレンダリングがバグる(場合によっては画像が表示されない)のでグラデーションを無効にする
1426
-
1427
- if (!disableGradient && options.hasGradient === true) {
1428
- var _options$fadeInGradie;
1429
-
1430
- var fadeInGradient = (_options$fadeInGradie = options.fadeInGradient) != null ? _options$fadeInGradie : false;
1431
- var overflowGradient = !fadeInGradient;
1432
- return /*#__PURE__*/React__default["default"].createElement(Container, {
1433
- ref: visibleAreaRef
1434
- }, /*#__PURE__*/React__default["default"].createElement(GradientContainer, {
1435
- fadeInGradient: fadeInGradient
1436
- }, /*#__PURE__*/React__default["default"].createElement(RightGradient, null, /*#__PURE__*/React__default["default"].createElement(LeftGradient, {
1437
- show: overflowGradient || scrollLeft > 0
1438
- }, /*#__PURE__*/React__default["default"].createElement(ScrollArea, {
1439
- ref: ref,
1440
- scrollLeft: styles.scroll,
1441
- onScroll: handleScrollMove
1442
- }, /*#__PURE__*/React__default["default"].createElement(CarouselContainer, {
1443
- ref: innerRef,
1444
- centerItems: centerItems
1445
- }, children))))), /*#__PURE__*/React__default["default"].createElement(ButtonsContainer, null, /*#__PURE__*/React__default["default"].createElement(CarouselButton, {
1446
- direction: Direction.Left,
1447
- show: leftShow,
1448
- offset: buttonOffset,
1449
- bottomOffset: bottomOffset,
1450
- padding: buttonPadding,
1451
- gradient: overflowGradient,
1452
- onClick: handleLeft
1453
- }), /*#__PURE__*/React__default["default"].createElement(CarouselButton, {
1454
- direction: Direction.Right,
1455
- show: rightShow,
1456
- offset: buttonOffset,
1457
- bottomOffset: bottomOffset,
1458
- padding: buttonPadding,
1459
- gradient: true,
1460
- onClick: handleRight
1461
- })));
1462
- }
1463
-
1464
- return /*#__PURE__*/React__default["default"].createElement(Container, {
1465
- ref: visibleAreaRef
1466
- }, /*#__PURE__*/React__default["default"].createElement(ScrollArea // eslint-disable-next-line @typescript-eslint/ban-ts-comment
1467
- // @ts-expect-error
1468
- , {
1469
- ref: ref,
1470
- scrollLeft: styles.scroll,
1471
- onScroll: handleScrollMove
1472
- }, /*#__PURE__*/React__default["default"].createElement(CarouselContainer, {
1473
- ref: innerRef,
1474
- centerItems: centerItems
1475
- }, children)), /*#__PURE__*/React__default["default"].createElement(ButtonsContainer, null, /*#__PURE__*/React__default["default"].createElement(CarouselButton, {
1476
- direction: Direction.Left,
1477
- show: leftShow,
1478
- offset: buttonOffset,
1479
- bottomOffset: bottomOffset,
1480
- padding: buttonPadding,
1481
- onClick: handleLeft
1482
- }), /*#__PURE__*/React__default["default"].createElement(CarouselButton, {
1483
- direction: Direction.Right,
1484
- show: rightShow,
1485
- offset: buttonOffset,
1486
- bottomOffset: bottomOffset,
1487
- padding: buttonPadding,
1488
- onClick: handleRight
1489
- })));
1490
- }
1491
- var CarouselContainer = styled__default["default"].ul(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteralLoose(["\n vertical-align: top;\n overflow: hidden;\n list-style: none;\n padding: 0;\n\n /* \u6700\u5C0F\u5E45\u3092100%\u306B\u3057\u3066\u89AA\u8981\u7D20\u306B\u3074\u3063\u305F\u308A\u304F\u3063\u3064\u3051\u308B\u3053\u3068\u3067\u5B50\u8981\u7D20\u3067\u8981\u7D20\u3092\u5747\u7B49\u306B\u5272\u308A\u4ED8\u3051\u308B\u306A\u3069\u3092\u51FA\u6765\u308B\u3088\u3046\u306B\u3057\u3066\u3042\u308B */\n min-width: 100%;\n box-sizing: border-box;\n\n ", "\n"])), function (_ref2) {
1492
- var _ref2$centerItems = _ref2.centerItems,
1493
- centerItems = _ref2$centerItems === void 0 ? false : _ref2$centerItems;
1494
- return centerItems ? styled.css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n width: max-content;\n margin: 0 auto;\n "]))) : styled.css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n margin: 0;\n "])));
1495
- });
1496
- var ButtonsContainer = styled__default["default"].div(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteralLoose(["\n opacity: 0;\n transition: 0.4s opacity;\n"])));
1497
- var Container = styled__default["default"].div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n &:hover ", " {\n opacity: 1;\n }\n\n /* CarouselButton\u306E\u4E2D\u306Bz-index:1\u304C\u3042\u308B\u306E\u3067\u3053\u3053\u3067\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u5207\u308B */\n position: relative;\n z-index: 0;\n"])), ButtonsContainer);
1498
- var ScrollArea = styled__default["default"](reactSpring.animated.div)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n overflow-x: auto;\n padding: 0;\n margin: 0;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n scrollbar-width: none;\n"])));
1499
- var GradientContainer = styled__default["default"].div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n /* NOTE: LeftGradient\u304C\u306F\u307F\u51FA\u308B\u305F\u3081hidden */\n overflow: hidden;\n ", "\n\n margin-right: ", "px;\n /* stylelint-disable-next-line no-duplicate-selectors */\n ", " {\n padding-right: ", "px;\n }\n"])), function (p) {
1500
- return !p.fadeInGradient && styled.css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n margin-left: ", "px;\n ", " {\n padding-left: ", "px;\n }\n "])), -GRADIENT_WIDTH, CarouselContainer, GRADIENT_WIDTH);
1501
- }, -GRADIENT_WIDTH, CarouselContainer, GRADIENT_WIDTH);
1502
- var RightGradient = styled__default["default"].div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n mask-image: linear-gradient(\n to right,\n #000 calc(100% - ", "px),\n transparent\n );\n"])), GRADIENT_WIDTH);
1503
- var LeftGradient = styled__default["default"].div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n /* NOTE: mask-position \u304C left \u2192 negative px \u306E\u6642\u3001right \u2192 abs(negative px) \u306E\u4F4D\u7F6E\u306B\u8868\u793A\u3055\u308C\u308B\u305F\u3081 */\n margin-right: ", "px;\n padding-right: ", "px;\n /* NOTE: mask-position \u306B transition \u3092\u3064\u3051\u305F\u3044\u304C vender prefixes \u5BFE\u7B56\u3067 all \u306B\u3064\u3051\u308B */\n transition: 0.2s all ease-in;\n mask: linear-gradient(to right, transparent, #000 ", "px)\n ", "px 0;\n"])), -GRADIENT_WIDTH, GRADIENT_WIDTH, GRADIENT_WIDTH, function (p) {
1504
- return p.show ? 0 : -GRADIENT_WIDTH;
1505
- });
1506
-
1507
- var _templateObject$2;
1508
-
1509
- function DotsIcon(_ref) {
1510
- var size = _ref.size;
1511
- return /*#__PURE__*/React__default["default"].createElement(StyledSVG, {
1512
- viewBox: "0 0 20 6",
1513
- width: size,
1514
- height: size
1515
- }, /*#__PURE__*/React__default["default"].createElement("path", {
1516
- fillRule: "evenodd",
1517
- d: "M5,14.5 C3.61928813,14.5 2.5,13.3807119 2.5,12 C2.5,10.6192881 3.61928813,9.5 5,9.5\n C6.38071187,9.5 7.5,10.6192881 7.5,12 C7.5,13.3807119 6.38071187,14.5 5,14.5 Z M12,14.5\n C10.6192881,14.5 9.5,13.3807119 9.5,12 C9.5,10.6192881 10.6192881,9.5 12,9.5\n C13.3807119,9.5 14.5,10.6192881 14.5,12 C14.5,13.3807119 13.3807119,14.5 12,14.5 Z M19,14.5\n C17.6192881,14.5 16.5,13.3807119 16.5,12 C16.5,10.6192881 17.6192881,9.5 19,9.5\n C20.3807119,9.5 21.5,10.6192881 21.5,12 C21.5,13.3807119 20.3807119,14.5 19,14.5 Z",
1518
- transform: "translate(-2 -9)"
1519
- }));
1520
- }
1521
-
1522
- DotsIcon.defaultProps = {
1523
- size: 16
1524
- };
1525
- var StyledSVG = styled__default["default"].svg(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteralLoose(["\n fill: currentColor;\n"])));
1526
-
1527
- var _templateObject$1;
1528
- var WedgeDirection;
1529
-
1530
- (function (WedgeDirection) {
1531
- WedgeDirection["Up"] = "up";
1532
- WedgeDirection["Down"] = "down";
1533
- WedgeDirection["Left"] = "left";
1534
- WedgeDirection["Right"] = "right";
1535
- })(WedgeDirection || (WedgeDirection = {}));
1536
-
1537
- function WedgeIcon(_ref) {
1538
- var size = _ref.size,
1539
- direction = _ref.direction;
1540
- return (
1541
- /*#__PURE__*/
1542
- // NOTE: directionToTransform depends on the value of viewBox
1543
- React__default["default"].createElement("svg", {
1544
- viewBox: "0 0 10 8",
1545
- width: size,
1546
- height: size
1547
- }, /*#__PURE__*/React__default["default"].createElement(StyledPolyline, {
1548
- strokeWidth: "2",
1549
- points: "1,2 5,6 9,2",
1550
- transform: directionToTransform(direction)
1551
- }))
1552
- );
1553
- }
1554
- WedgeIcon.defaultProps = {
1555
- size: 16,
1556
- white: false,
1557
- lightGray: false
1558
- };
1559
-
1560
- function directionToTransform(direction) {
1561
- // "5 4" is the center point of the "0 0 10 8" viewBox
1562
- switch (direction) {
1563
- case WedgeDirection.Up:
1564
- return 'rotate(180 5 4)';
1565
-
1566
- case WedgeDirection.Down:
1567
- return undefined;
1568
-
1569
- case WedgeDirection.Left:
1570
- return 'rotate(90 5 4)';
1571
-
1572
- case WedgeDirection.Right:
1573
- return 'rotate(-90 5 4)';
1574
-
1575
- default:
1576
- return unreachable(direction);
1577
- }
1578
- }
1579
-
1580
- var StyledPolyline = styled__default["default"].polyline(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose(["\n fill: none;\n stroke-linejoin: round;\n stroke-linecap: round;\n stroke: currentColor;\n"])));
1581
-
1582
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
1583
-
1584
- function usePagerWindow(page, pageCount, windowSize) {
1585
- if (windowSize === void 0) {
1586
- windowSize = 7;
1587
- }
1588
-
1589
- // ページャーのリンク生成例:
1590
- //
1591
- // < [ 1 ] [*2*] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] >
1592
- //
1593
- // < [ 1 ] [ 2 ] [ 3 ] [*4*] [ 5 ] [ 6 ] [ 7 ] >
1594
- //
1595
- // < [ 1 ] ... [ 4 ] [*5*] [ 6 ] [ 7 ] [ 8 ] >
1596
- //
1597
- // < [ 1 ] ... [ 99 ] [*100*] [ 101 ] [ 102 ] [ 103 ] >
1598
- //
1599
- // < [ 1 ] ... [ 99 ] [ 100 ] [ 101 ] [ 102 ] [*103*]
1600
- //
1601
- // [*1*] [ 2 ] >
1602
- //
1603
- // デザインの意図: 前後移動時のカーソル移動を最小限にする。
1604
- if (process.env.NODE_ENV !== 'production') {
1605
- warning__default["default"]((page | 0) === page, "`page` must be interger (" + page + ")");
1606
- warning__default["default"]((pageCount | 0) === pageCount, "`pageCount` must be interger (" + pageCount + ")");
1607
- }
1608
-
1609
- var window = React.useMemo(function () {
1610
- var visibleFirstPage = 1;
1611
- var visibleLastPage = Math.min(pageCount, Math.max(page + Math.floor(windowSize / 2), windowSize));
1612
-
1613
- if (visibleLastPage <= windowSize) {
1614
- // 表示範囲が1-7ページなら省略は無い。
1615
- return Array.from({
1616
- length: 1 + visibleLastPage - visibleFirstPage
1617
- }, function (_, i) {
1618
- return visibleFirstPage + i;
1619
- });
1620
- } else {
1621
- var start = visibleLastPage - (windowSize - 1) + 2;
1622
- return [// 表示範囲が1-7ページを超えるなら、
1623
- // - 1ページ目は固定で表示する
1624
- visibleFirstPage, // - 2ページ目から現在のページの直前までは省略する
1625
- '...'].concat(Array.from({
1626
- length: 1 + visibleLastPage - start
1627
- }, function (_, i) {
1628
- return start + i;
1629
- }));
1630
- }
1631
- }, [page, pageCount, windowSize]);
1632
- React.useDebugValue(window);
1633
- return window;
1634
- } // this pager is just regular buttons; for links use LinkPager
1635
-
1636
-
1637
- var index = React__default["default"].memo(function Pager(_ref) {
1638
- var page = _ref.page,
1639
- pageCount = _ref.pageCount,
1640
- onChange = _ref.onChange;
1641
- // TODO: refactor Pager and LinkPager to use a common parent component
1642
- var window = usePagerWindow(page, pageCount);
1643
- var makeClickHandler = React.useCallback(function (value) {
1644
- return function () {
1645
- onChange(value);
1646
- };
1647
- }, [onChange]);
1648
- var hasNext = page < pageCount;
1649
- var hasPrev = page > 1;
1650
- return /*#__PURE__*/React__default["default"].createElement(PagerContainer, null, /*#__PURE__*/React__default["default"].createElement(CircleButton, {
1651
- type: "button",
1652
- hidden: !hasPrev,
1653
- disabled: !hasPrev,
1654
- onClick: makeClickHandler(Math.max(1, page - 1)),
1655
- noBackground: true
1656
- }, /*#__PURE__*/React__default["default"].createElement(WedgeIcon, {
1657
- size: 16,
1658
- direction: WedgeDirection.Left
1659
- })), window.map(function (p) {
1660
- return p === '...' ? /*#__PURE__*/React__default["default"].createElement(Spacer, {
1661
- key: p
1662
- }, /*#__PURE__*/React__default["default"].createElement(DotsIcon, {
1663
- size: 20
1664
- })) : p === page ?
1665
- /*#__PURE__*/
1666
- // we remove the onClick but don't mark it as disabled to preserve keyboard focus
1667
- // not doing so causes the focus ring to flicker in and out of existence
1668
- React__default["default"].createElement(CircleButton, {
1669
- key: p,
1670
- type: "button",
1671
- "aria-current": true
1672
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, p)) : /*#__PURE__*/React__default["default"].createElement(CircleButton, {
1673
- key: p,
1674
- type: "button",
1675
- onClick: makeClickHandler(p)
1676
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, p));
1677
- }), /*#__PURE__*/React__default["default"].createElement(CircleButton, {
1678
- type: "button",
1679
- hidden: !hasNext,
1680
- disabled: !hasNext,
1681
- onClick: makeClickHandler(Math.min(pageCount, page + 1)),
1682
- noBackground: true
1683
- }, /*#__PURE__*/React__default["default"].createElement(WedgeIcon, {
1684
- size: 16,
1685
- direction: WedgeDirection.Right
1686
- })));
1687
- });
1688
- function LinkPager(_ref2) {
1689
- var page = _ref2.page,
1690
- pageCount = _ref2.pageCount,
1691
- makeUrl = _ref2.makeUrl;
1692
-
1693
- var _useComponentAbstract = react.useComponentAbstraction(),
1694
- Link = _useComponentAbstract.Link;
1695
-
1696
- var window = usePagerWindow(page, pageCount);
1697
- var hasNext = page < pageCount;
1698
- var hasPrev = page > 1;
1699
- return /*#__PURE__*/React__default["default"].createElement(PagerContainer, null, /*#__PURE__*/React__default["default"].createElement(Link, {
1700
- to: makeUrl(Math.max(1, page - 1))
1701
- }, /*#__PURE__*/React__default["default"].createElement(CircleButton, {
1702
- hidden: !hasPrev,
1703
- "aria-disabled": !hasPrev,
1704
- noBackground: true
1705
- }, /*#__PURE__*/React__default["default"].createElement(WedgeIcon, {
1706
- size: 16,
1707
- direction: WedgeDirection.Left
1708
- }))), window.map(function (p) {
1709
- return p === '...' ? /*#__PURE__*/React__default["default"].createElement(Spacer, {
1710
- key: p
1711
- }, /*#__PURE__*/React__default["default"].createElement(DotsIcon, {
1712
- size: 20,
1713
- subLink: true
1714
- })) : p === page ? /*#__PURE__*/React__default["default"].createElement(CircleButton, {
1715
- key: p,
1716
- type: "button",
1717
- "aria-current": true
1718
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, p)) : /*#__PURE__*/React__default["default"].createElement(Link, {
1719
- key: p,
1720
- to: makeUrl(p)
1721
- }, /*#__PURE__*/React__default["default"].createElement(CircleButton, {
1722
- type: "button"
1723
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, p)));
1724
- }), /*#__PURE__*/React__default["default"].createElement(Link, {
1725
- to: makeUrl(Math.min(pageCount, page + 1))
1726
- }, /*#__PURE__*/React__default["default"].createElement(CircleButton, {
1727
- hidden: !hasNext,
1728
- "aria-disabled": !hasNext,
1729
- noBackground: true
1730
- }, /*#__PURE__*/React__default["default"].createElement(WedgeIcon, {
1731
- size: 16,
1732
- direction: WedgeDirection.Right
1733
- }))));
1734
- }
1735
- var PagerContainer = styled__default["default"].nav(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n align-items: center;\n"])));
1736
- var CircleButton = styled__default["default"].button(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n font-size: 1rem;\n line-height: calc(1em + 8px);\n text-decoration: none;\n border: none;\n outline: none;\n touch-action: manipulation;\n user-select: none;\n transition: box-shadow 0.2s ease 0s, color 0.2s ease 0s,\n background 0.2s ease 0s, opacity 0.2s ease 0s;\n\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: content-box;\n min-width: 24px;\n min-height: 24px;\n padding: 8px;\n cursor: pointer;\n font-weight: bold;\n /* HACK:\n * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.\n * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.\n */\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-transform: translateZ(0);\n\n &[hidden] {\n visibility: hidden;\n display: block;\n }\n\n border-radius: 48px;\n\n background: transparent;\n color: ", ";\n\n &:hover {\n background: ", ";\n color: ", ";\n }\n\n &[aria-current] {\n background-color: ", ";\n color: ", ";\n }\n\n &[aria-current]:hover {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n"])), function (_ref3) {
1737
- var theme = _ref3.theme;
1738
- return theme.color.text3;
1739
- }, function (_ref4) {
1740
- var theme = _ref4.theme;
1741
- return theme.color.surface3;
1742
- }, function (_ref5) {
1743
- var theme = _ref5.theme;
1744
- return theme.color.text2;
1745
- }, function (_ref6) {
1746
- var theme = _ref6.theme;
1747
- return theme.color.surface6;
1748
- }, function (_ref7) {
1749
- var theme = _ref7.theme;
1750
- return theme.color.text5;
1751
- }, function (_ref8) {
1752
- var theme = _ref8.theme;
1753
- return theme.color.surface6;
1754
- }, function (_ref9) {
1755
- var theme = _ref9.theme;
1756
- return theme.color.text5;
1757
- }, function (_ref10) {
1758
- var _ref10$noBackground = _ref10.noBackground,
1759
- noBackground = _ref10$noBackground === void 0 ? false : _ref10$noBackground;
1760
- return noBackground && styled.css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n /* stylelint-disable-next-line no-duplicate-selectors */\n &:hover {\n background: transparent;\n }\n "])));
1761
- });
1762
- var Spacer = styled__default["default"](CircleButton).attrs({
1763
- type: 'button',
1764
- disabled: true
1765
- })(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n && {\n color: ", ";\n background: none;\n }\n"])), function (_ref11) {
1766
- var theme = _ref11.theme;
1767
- return theme.color.text3;
1768
- });
1769
- var Text = 'span';
1770
-
1771
- Object.defineProperty(exports, 'ComponentAbstraction', {
1772
- enumerable: true,
1773
- get: function () { return react.ComponentAbstraction; }
1774
- });
1775
- Object.defineProperty(exports, 'useComponentAbstraction', {
1776
- enumerable: true,
1777
- get: function () { return react.useComponentAbstraction; }
1778
- });
1779
- exports.CancelLayoutItemBodyPadding = CancelLayoutItemBodyPadding;
1780
- exports.Carousel = Carousel;
1781
- exports.Filter = Filter;
1782
- exports.FilterButton = FilterButton;
1783
- exports.FilterIconButton = FilterIconButton;
1784
- exports.FilterLink = FilterLink;
1785
- exports.HintText = HintText;
1786
- exports.LAYOUT_ITEM_BODY_PADDING = LAYOUT_ITEM_BODY_PADDING;
1787
- exports.Layout = Layout;
1788
- exports.LayoutItem = LayoutItem;
1789
- exports.LayoutItemBody = LayoutItemBody;
1790
- exports.LayoutItemHeader = LayoutItemHeader;
1791
- exports.LeftMenu = LeftMenu;
1792
- exports.LeftMenuContent = LeftMenuContent;
1793
- exports.LinkPager = LinkPager;
1794
- exports.MAIN_COLUMN_HORIZONTAL_MIN_MARGIN = MAIN_COLUMN_HORIZONTAL_MIN_MARGIN;
1795
- exports.MenuListItem = MenuListItem;
1796
- exports.MenuListItemContext = MenuListItemContext;
1797
- exports.MenuListItemWithIcon = MenuListItemWithIcon;
1798
- exports.MenuListLabel = MenuListLabel;
1799
- exports.MenuListLinkItem = MenuListLinkItem;
1800
- exports.MenuListLinkItemWithIcon = MenuListLinkItemWithIcon;
1801
- exports.MenuListSpacer = MenuListSpacer;
1802
- exports.Pager = index;
1803
- exports.RESPONSIVE_LEFT_WIDTH = RESPONSIVE_LEFT_WIDTH;
1804
- exports.RESPONSIVE_MAIN_MAX_WIDTH = RESPONSIVE_MAIN_MAX_WIDTH;
1805
- exports.StyledCancelLayoutItemBodyPadding = StyledCancelLayoutItemBodyPadding;
1806
- exports.StyledLayoutItemBody = StyledLayoutItemBody;
1807
- exports.SwitchCheckbox = index$2;
1808
- exports.TextEllipsis = TextEllipsis;
1809
- exports.WithIcon = index$1;
1810
- exports.useElementSize = useElementSize;
1811
- exports.useLayoutItemBodyPadding = useLayoutItemBodyPadding;
1812
- exports.useMedia = useMedia;
1813
- exports.useMediaScreen1 = useMediaScreen1;
1814
- //# sourceMappingURL=index.cjs.map