@semcore/button 17.0.0-prerelease.29 → 17.0.0-prerelease.31

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 (56) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/component/Button/Button.js +121 -18
  3. package/lib/cjs/component/Button/Button.js.map +1 -1
  4. package/lib/cjs/component/Button/Button.type.js.map +1 -1
  5. package/lib/cjs/component/Button/SpinButton.js.map +1 -0
  6. package/lib/cjs/component/ButtonLink/ButtonLink.js +28 -54
  7. package/lib/cjs/component/ButtonLink/ButtonLink.js.map +1 -1
  8. package/lib/cjs/component/ButtonLink/ButtonLink.type.js.map +1 -1
  9. package/lib/cjs/component/ButtonLink/buttonLink.shadow.css +10 -140
  10. package/lib/cjs/index.js +3 -4
  11. package/lib/cjs/index.js.map +1 -1
  12. package/lib/es6/component/Button/Button.js +123 -20
  13. package/lib/es6/component/Button/Button.js.map +1 -1
  14. package/lib/es6/component/Button/Button.type.js.map +1 -1
  15. package/lib/es6/component/Button/SpinButton.js.map +1 -0
  16. package/lib/es6/component/ButtonLink/ButtonLink.js +29 -56
  17. package/lib/es6/component/ButtonLink/ButtonLink.js.map +1 -1
  18. package/lib/es6/component/ButtonLink/ButtonLink.type.js.map +1 -1
  19. package/lib/es6/component/ButtonLink/buttonLink.shadow.css +10 -140
  20. package/lib/es6/index.js +1 -2
  21. package/lib/es6/index.js.map +1 -1
  22. package/lib/esm/component/Button/Button.mjs +121 -17
  23. package/lib/esm/component/ButtonLink/ButtonLink.mjs +29 -54
  24. package/lib/esm/component/ButtonLink/buttonLink.shadow.css +10 -140
  25. package/lib/esm/index.mjs +1 -2
  26. package/lib/types/component/Button/Button.d.ts +28 -1
  27. package/lib/types/component/Button/Button.type.d.ts +40 -23
  28. package/lib/types/component/ButtonLink/ButtonLink.type.d.ts +14 -19
  29. package/lib/types/index.d.ts +1 -2
  30. package/package.json +7 -5
  31. package/src/component/Button/Button.tsx +148 -10
  32. package/src/component/Button/Button.type.ts +46 -34
  33. package/src/component/ButtonLink/ButtonLink.tsx +22 -26
  34. package/src/component/ButtonLink/ButtonLink.type.ts +15 -26
  35. package/src/component/ButtonLink/buttonLink.shadow.css +10 -140
  36. package/src/index.ts +1 -2
  37. package/lib/cjs/component/AbstractButton/AbstractButton.js +0 -124
  38. package/lib/cjs/component/AbstractButton/AbstractButton.js.map +0 -1
  39. package/lib/cjs/component/AbstractButton/AbstractButton.type.js +0 -2
  40. package/lib/cjs/component/AbstractButton/AbstractButton.type.js.map +0 -1
  41. package/lib/cjs/component/AbstractButton/SpinButton.js.map +0 -1
  42. package/lib/es6/component/AbstractButton/AbstractButton.js +0 -117
  43. package/lib/es6/component/AbstractButton/AbstractButton.js.map +0 -1
  44. package/lib/es6/component/AbstractButton/AbstractButton.type.js +0 -2
  45. package/lib/es6/component/AbstractButton/AbstractButton.type.js.map +0 -1
  46. package/lib/es6/component/AbstractButton/SpinButton.js.map +0 -1
  47. package/lib/esm/component/AbstractButton/AbstractButton.mjs +0 -119
  48. package/lib/types/component/AbstractButton/AbstractButton.d.ts +0 -23
  49. package/lib/types/component/AbstractButton/AbstractButton.type.d.ts +0 -36
  50. package/src/component/AbstractButton/AbstractButton.tsx +0 -161
  51. package/src/component/AbstractButton/AbstractButton.type.ts +0 -42
  52. /package/lib/cjs/component/{AbstractButton → Button}/SpinButton.js +0 -0
  53. /package/lib/es6/component/{AbstractButton → Button}/SpinButton.js +0 -0
  54. /package/lib/esm/component/{AbstractButton → Button}/SpinButton.mjs +0 -0
  55. /package/lib/types/component/{AbstractButton → Button}/SpinButton.d.ts +0 -0
  56. /package/src/component/{AbstractButton → Button}/SpinButton.tsx +0 -0
@@ -1,9 +1,14 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { sstyled as _sstyled } from "@semcore/core";
3
+ import { assignProps as _assignProps3 } from "@semcore/core";
3
4
  import { assignProps as _assignProps2 } from "@semcore/core";
4
5
  import { assignProps as _assignProps } from "@semcore/core";
5
- import { Box } from '@semcore/base-components';
6
- import { createComponent, sstyled, Root } from '@semcore/core';
6
+ import { NeighborLocation, Box, Hint } from '@semcore/base-components';
7
+ import { Component, CORE_INSTANCE, createComponent, Root, sstyled } from '@semcore/core';
8
+ import addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';
9
+ import hasLabels from '@semcore/core/lib/utils/hasLabels';
10
+ import logger from '@semcore/core/lib/utils/logger';
11
+ import { Text } from '@semcore/typography';
7
12
  import React from 'react';
8
13
  /*!__reshadow-styles__:"./button.shadow.css"*/
9
14
  const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButton_1vv7x_gg_{position:relative;display:inline-block;align-items:center;justify-content:center;padding:0;margin:0;white-space:nowrap;font-family:inherit;line-height:normal;-webkit-text-decoration:none;text-decoration:none;text-align:center;vertical-align:middle;border:1px solid transparent;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-weight:var(--intergalactic-medium, 500);color:var(--intergalactic-text-secondary, #6c6e79);min-width:-moz-fit-content;min-width:fit-content}.___SButton_1vv7x_gg_::-moz-focus-inner{padding:0;border:0}.___SButton_1vv7x_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_1vv7x_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_1vv7x_gg_.__disabled_1vv7x_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;box-shadow:none;z-index:0}.___SButton_1vv7x_gg_._size_s_1vv7x_gg_{width:var(--intergalactic-form-control-s, 20px);height:var(--intergalactic-form-control-s, 20px);border-radius:var(--intergalactic-addon-rounded, 4px)}.___SButton_1vv7x_gg_._size_m_1vv7x_gg_{height:var(--intergalactic-form-control-m, 28px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-200, 14px)}.___SButton_1vv7x_gg_._size_l_1vv7x_gg_{height:var(--intergalactic-form-control-l, 40px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-300, 16px)}.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info-hover, #006dca)}}.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info-active, #044792)}.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success, #009f81)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success-hover, #007c65)}}.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success-active, #055345)}.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand, #ff642d)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-hover, #c33909)}}.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-active, #8b1500)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-hover, #c33909)}}.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-active, #8b1500)}.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical, #ff4953)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical-hover, #d1002f)}}.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical-active, #8e0016)}.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert, #ffffff)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert-hover, #f4f5f9)}}.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert-active, #e0e1e9)}.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_{color:var(--intergalactic-text-secondary, #6c6e79);border-color:var(--intergalactic-border-primary, #c4c7cf);background-color:var(--intergalactic-control-secondary-neutral, rgba(138, 142, 155, 0.1))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:hover{background-color:var(--intergalactic-control-secondary-neutral-hover,\n rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:active{background-color:var(--intergalactic-control-secondary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_{background-color:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));color:var(--intergalactic-text-link, #006dca);border-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_:active{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-secondary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);border-color:var(--intergalactic-border-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert, rgba(255, 255, 255, 0.05))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert-active,\n rgba(255, 255, 255, 0.3))}.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info, rgba(0, 143, 248, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_:active{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-control-tertiary-neutral, rgba(138, 142, 155, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_:hover{background-color:var(--intergalactic-control-tertiary-neutral-hover, rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_:active{background-color:var(--intergalactic-control-tertiary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert, rgba(255, 255, 255, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}.___SButton_1vv7x_gg_._neighborLocation_right_1vv7x_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_{border-radius:0;margin-left:-1px}.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_{position:relative}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_:after,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_:after{background-color:var(--intergalactic-border-primary-invert, #ffffff)}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:after,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:after{background-color:var(--intergalactic-border-primary, #c4c7cf)}.___SButton_1vv7x_gg_+.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_:after,.___SButton_1vv7x_gg_+.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_:after{content:\"\";position:absolute;top:-1px;left:-1px;width:1px;height:calc(100% + 2px)}.___SSpin_1vv7x_gg_{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.___SInner_1vv7x_gg_{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%}.___SInner_1vv7x_gg_.__loading_1vv7x_gg_{visibility:hidden}.___SText_1vv7x_gg_{display:inline-flex}.___SText_1vv7x_gg_._size_l_1vv7x_gg_,.___SText_1vv7x_gg_._size_m_1vv7x_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SText_1vv7x_gg_._size_m_1vv7x_gg_{line-height:var(--intergalactic-lh-200, 142%)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_{line-height:var(--intergalactic-lh-300, 150%)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SAddon_1vv7x_gg_{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:only-child{margin-left:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_gg_:only-child{margin-left:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px)}", /*__inner_css_end__*/"1vv7x_gg_"),
@@ -36,10 +41,110 @@ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/
36
41
  "_theme_tertiary-muted": "_theme_tertiary-muted_1vv7x_gg_",
37
42
  "_theme_tertiary-invert": "_theme_tertiary-invert_1vv7x_gg_"
38
43
  });
39
- import { AbstractButton } from '../AbstractButton/AbstractButton';
40
- class RootButton extends AbstractButton {
41
- getTextColor() {
42
- return undefined;
44
+ import SpinButton from './SpinButton';
45
+ export const MAP_USE_DEFAULT_THEME = {
46
+ primary: 'info',
47
+ secondary: 'muted',
48
+ tertiary: 'info'
49
+ };
50
+ export class RootButton extends Component {
51
+ constructor(...args) {
52
+ super(...args);
53
+ _defineProperty(this, "containerRef", /*#__PURE__*/React.createRef());
54
+ _defineProperty(this, "state", {
55
+ ariaLabelledByContent: null
56
+ });
57
+ }
58
+ getTextProps() {
59
+ const {
60
+ size
61
+ } = this.asProps;
62
+ return {
63
+ size,
64
+ 'hint:triggerRef': this.containerRef
65
+ };
66
+ }
67
+ getAddonProps() {
68
+ const {
69
+ size
70
+ } = this.asProps;
71
+ return {
72
+ size
73
+ };
74
+ }
75
+ componentDidMount() {
76
+ if (process.env.NODE_ENV !== 'production') {
77
+ logger.warn(this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title, `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`, this.asProps['data-ui-name'] || RootButton.displayName);
78
+ }
79
+ const ariaLabelledby = this.asProps['aria-labelledby'];
80
+ if (ariaLabelledby) {
81
+ setTimeout(() => {
82
+ this.setState({
83
+ ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? ''
84
+ });
85
+ }, 0);
86
+ }
87
+ }
88
+ render() {
89
+ var _ref = this.asProps;
90
+ const {
91
+ styles,
92
+ use,
93
+ theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],
94
+ loading,
95
+ disabled = loading,
96
+ size,
97
+ neighborLocation,
98
+ children,
99
+ title,
100
+ ['aria-label']: ariaLabel,
101
+ Children,
102
+ addonLeft: AddonLeft,
103
+ addonRight: AddonRight,
104
+ hintPlacement
105
+ } = this.asProps;
106
+ const SButton = Box;
107
+ // @ts-ignore
108
+ const Button = this[CORE_INSTANCE];
109
+ const useTheme = use && theme ? `${use}-${theme}` : false;
110
+ const SInner = Box;
111
+ const SSpin = Box;
112
+ const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';
113
+ const showHint = children === undefined || title;
114
+ return /*#__PURE__*/React.createElement(NeighborLocation.Detect, {
115
+ neighborLocation: neighborLocation
116
+ }, neighborLocation => {
117
+ var _ref4;
118
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SButton, _ref4.cn("SButton", {
119
+ ..._assignProps({
120
+ "invertOutline": theme === 'invert',
121
+ "type": 'button',
122
+ "tag": 'button',
123
+ "tabIndex": 0,
124
+ "disabled": disabled,
125
+ "use:theme": useTheme,
126
+ "ref": this.containerRef,
127
+ "aria-busy": loading,
128
+ "__excludeProps": ['title'],
129
+ "aria-label": showHint ? buttonAriaLabel : undefined,
130
+ "neighborLocation": neighborLocation
131
+ }, _ref)
132
+ }), /*#__PURE__*/React.createElement(SInner, _ref4.cn("SInner", {
133
+ "tag": 'span',
134
+ "loading": loading,
135
+ "data-ui-name": `${this.asProps['data-ui-name']}.InnerWrapper`
136
+ }), AddonLeft ? /*#__PURE__*/React.createElement(Button.Addon, null, /*#__PURE__*/React.createElement(AddonLeft, _ref4.cn("AddonLeft", {}))) : null, addonTextChildren(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/React.createElement(Button.Addon, null, /*#__PURE__*/React.createElement(AddonRight, _ref4.cn("AddonRight", {}))) : null), loading && /*#__PURE__*/React.createElement(SSpin, _ref4.cn("SSpin", {
137
+ "tag": 'span'
138
+ }), /*#__PURE__*/React.createElement(SpinButton, _ref4.cn("SpinButton", {
139
+ "centered": true,
140
+ "size": size,
141
+ "theme": useTheme
142
+ })))), showHint && /*#__PURE__*/React.createElement(Hint, _ref4.cn("Hint", {
143
+ "triggerRef": this.containerRef,
144
+ "timeout": [250, 50],
145
+ "placement": hintPlacement
146
+ }), buttonAriaLabel));
147
+ });
43
148
  }
44
149
  }
45
150
  _defineProperty(RootButton, "displayName", 'Button');
@@ -48,28 +153,26 @@ _defineProperty(RootButton, "defaultProps", {
48
153
  use: 'secondary',
49
154
  size: 'm'
50
155
  });
51
- function Text(props) {
52
- var _ref = arguments[0],
53
- _ref3;
54
- const SText = Box;
55
- return _ref3 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref3.cn("SText", {
56
- ..._assignProps({
57
- "tag": 'span'
58
- }, _ref)
156
+ function ButtonText(props) {
157
+ var _ref2 = arguments[0],
158
+ _ref5;
159
+ const SText = Text;
160
+ return _ref5 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref5.cn("SText", {
161
+ ..._assignProps2({}, _ref2)
59
162
  }));
60
163
  }
61
164
  function Addon(props) {
62
- var _ref2 = arguments[0],
63
- _ref4;
165
+ var _ref3 = arguments[0],
166
+ _ref6;
64
167
  const SAddon = Box;
65
- return _ref4 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref4.cn("SAddon", {
66
- ..._assignProps2({
168
+ return _ref6 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref6.cn("SAddon", {
169
+ ..._assignProps3({
67
170
  "tag": 'span'
68
- }, _ref2)
171
+ }, _ref3)
69
172
  }));
70
173
  }
71
174
  const Button = createComponent(RootButton, {
72
- Text,
175
+ Text: ButtonText,
73
176
  Addon
74
177
  });
75
178
  export default Button;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["Box","createComponent","sstyled","Root","React","style","_sstyled","insert","AbstractButton","RootButton","getTextColor","undefined","_defineProperty","use","size","Text","props","_ref","arguments[0]","_ref3","SText","styles","createElement","cn","_assignProps","Addon","_ref2","_ref4","SAddon","_assignProps2","Button"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonAddonProps, ButtonComponent, ButtonTextProps } from './Button.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nclass RootButton extends AbstractButton {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n protected getTextColor(): string | undefined {\n return undefined;\n }\n}\n\nfunction Text(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":";;;;AAAA,SAASA,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAC9D,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1B,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,MAAMC,UAAU,SAASD,cAAc,CAAC;EAQ5BE,YAAYA,CAAA,EAAuB;IAC3C,OAAOC,SAAS;EAClB;AACF;AAACC,eAAA,CAXKH,UAAU,iBACO,QAAQ;AAAAG,eAAA,CADzBH,UAAU,WAECJ,KAAK;AAAAO,eAAA,CAFhBH,UAAU,kBAGQ;EACpBI,GAAG,EAAE,WAAW;EAChBC,IAAI,EAAE;AACR,CAAC;AAOH,SAASC,IAAIA,CAACC,KAAsB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACpC,MAAMC,KAAK,GACiCpB,GAAG;EAA/C,OAAAmB,KAAA,GAAOjB,OAAO,CAACc,KAAK,CAACK,MAAM,CAAC,eAACjB,KAAA,CAAAkB,aAAA,CAACF,KAAK,EAAAD,KAAA,CAAAI,EAAA;IAAA,GAAAC,YAAA;MAAA,OAAkB;IAAM,GAAAP,IAAA;EAAA,EAAE,CAAC;AAChE;AAEA,SAASQ,KAAKA,CAACT,KAAuB,EAAE;EAAA,IAAAU,KAAA,GAAAR,YAAA;IAAAS,KAAA;EACtC,MAAMC,MAAM,GACiC5B,GAAG;EAAhD,OAAA2B,KAAA,GAAOzB,OAAO,CAACc,KAAK,CAACK,MAAM,CAAC,eAACjB,KAAA,CAAAkB,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,GAAAM,aAAA;MAAA,OAAkB;IAAM,GAAAH,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,MAAMI,MAAM,GAAG7B,eAAe,CAACQ,UAAU,EAAE;EACzCM,IAAI;EACJU;AACF,CAAC,CAAoB;AAErB,eAAeK,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"Button.js","names":["NeighborLocation","Box","Hint","Component","CORE_INSTANCE","createComponent","Root","sstyled","addonTextChildren","hasLabels","logger","Text","React","style","_sstyled","insert","SpinButton","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","RootButton","constructor","args","_defineProperty","createRef","ariaLabelledByContent","getTextProps","size","asProps","containerRef","getAddonProps","componentDidMount","process","env","NODE_ENV","warn","current","title","displayName","ariaLabelledby","setTimeout","setState","document","getElementById","textContent","render","_ref","styles","use","theme","loading","disabled","neighborLocation","children","ariaLabel","Children","addonLeft","AddonLeft","addonRight","AddonRight","hintPlacement","SButton","Button","useTheme","SInner","SSpin","buttonAriaLabel","state","showHint","undefined","createElement","Detect","_ref4","Fragment","cn","_assignProps","Addon","ButtonText","props","_ref2","arguments[0]","_ref5","SText","_assignProps2","_ref3","_ref6","SAddon","_assignProps3"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { NeighborLocation, Box, Hint } from '@semcore/base-components';\nimport { Component, CORE_INSTANCE, createComponent, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonProps, ButtonAddonProps, ButtonTextProps, ButtonComponent } from './Button.type';\nimport SpinButton from './SpinButton';\n\nexport const MAP_USE_DEFAULT_THEME: Record<string, string> = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\ntype State = {\n ariaLabelledByContent: null | string;\n};\n\nexport class RootButton extends Component<ButtonProps, [], never, {}, State> {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n ariaLabelledByContent: null,\n };\n\n getTextProps() {\n const { size } = this.asProps;\n\n return {\n size,\n 'hint:triggerRef': this.containerRef,\n };\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title,\n `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || RootButton.displayName,\n );\n }\n\n const ariaLabelledby = this.asProps['aria-labelledby'];\n\n if (ariaLabelledby) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n render() {\n const {\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n children,\n title,\n ['aria-label']: ariaLabel,\n Children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n hintPlacement,\n } = this.asProps;\n const SButton = Root;\n // @ts-ignore\n const Button = this[CORE_INSTANCE];\n const useTheme = use && theme ? `${use}-${theme}` : false;\n const SInner = Box;\n const SSpin = Box;\n const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n const showHint = (children === undefined || title);\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) => {\n return sstyled(styles)(\n <>\n <SButton\n render={Box}\n invertOutline={theme === 'invert'}\n type='button'\n tag='button'\n tabIndex={0}\n disabled={disabled}\n use:theme={useTheme}\n ref={this.containerRef}\n aria-busy={loading}\n __excludeProps={['title']}\n aria-label={showHint ? buttonAriaLabel : undefined}\n neighborLocation={neighborLocation}\n >\n {/* @ts-ignore */}\n <SInner tag='span' loading={loading} data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}>\n {AddonLeft\n ? (\n <Button.Addon>\n <AddonLeft />\n </Button.Addon>\n )\n : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight\n ? (\n <Button.Addon>\n <AddonRight />\n </Button.Addon>\n )\n : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>\n {showHint && (\n <Hint\n triggerRef={this.containerRef}\n timeout={[250, 50]}\n placement={hintPlacement}\n >\n {buttonAriaLabel}\n </Hint>\n )}\n </>,\n );\n }}\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction ButtonText(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text: ButtonText,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button size\n * @default m\n */\nexport type ButtonSize = 'l' | 'm';\n/**\n * Button type\n * @default secondary\n */\ntype Use = 'primary' | 'secondary' | 'tertiary';\n\n/** Button theme */\ntype Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n\nexport type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme>;\n\nexport type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;\n\nexport type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;\n\nexport type ButtonContext = AbstractButtonContext;\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';\nimport type { Intergalactic, PropGetterFn } from '@semcore/core';\nimport type { TextProps } from '@semcore/typography';\nimport type React from 'react';\n\nexport type ButtonProps = BoxProps &\n NeighborItemProps & {\n /** Button activity state */\n active?: boolean;\n /** Disabled button state */\n disabled?: boolean;\n /** Loading button state */\n loading?: boolean;\n /** Tag for the left Addon */\n addonLeft?: React.ElementType;\n /** Tag for the right Addon */\n addonRight?: React.ElementType;\n /**\n * Placement for hint\n * @default top\n */\n hintPlacement?: SimpleHintPopperProps['placement'];\n\n /** Button size.\n * @default `m`\n */\n size?: 'l' | 'm';\n /** Button usage.\n * @default `primary`\n */\n use?: 'primary' | 'secondary' | 'tertiary';\n /** Button theme.\n * @default undefined\n */\n theme?: 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n };\n\nexport type ButtonTextProps = TextProps;\n\nexport type ButtonAddonProps = BoxProps;\n\nexport type ButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & ButtonChildren;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpinButton.js","names":["Spin","React","SPIN_SIZE_MAP","xl","l","m","s","SpinButton","theme","size","others","createElement","_extends"],"sources":["../../../../src/component/Button/SpinButton.tsx"],"sourcesContent":["import Spin from '@semcore/spin';\nimport React from 'react';\n\nexport const SPIN_SIZE_MAP: Record<string, string> = {\n xl: 'm',\n l: 's',\n m: 'xs',\n s: 'xxs',\n};\n\nexport default function SpinButton({ theme, size, ...others }: any) {\n return (\n <Spin\n size={typeof size === 'string' ? SPIN_SIZE_MAP[size] : size}\n theme='currentColor'\n {...others}\n />\n );\n}\n"],"mappings":";AAAA,OAAOA,IAAI,MAAM,eAAe;AAChC,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,aAAqC,GAAG;EACnDC,EAAE,EAAE,GAAG;EACPC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAC;AAED,eAAe,SAASC,UAAUA,CAAC;EAAEC,KAAK;EAAEC,IAAI;EAAE,GAAGC;AAAY,CAAC,EAAE;EAClE,oBACET,KAAA,CAAAU,aAAA,CAACX,IAAI,EAAAY,QAAA;IACHH,IAAI,EAAE,OAAOA,IAAI,KAAK,QAAQ,GAAGP,aAAa,CAACO,IAAI,CAAC,GAAGA,IAAK;IAC5DD,KAAK,EAAC;EAAc,GAChBE,MAAM,CACX,CAAC;AAEN","ignoreList":[]}
@@ -1,75 +1,48 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { sstyled as _sstyled } from "@semcore/core";
3
- import { assignProps as _assignProps2 } from "@semcore/core";
4
3
  import { assignProps as _assignProps } from "@semcore/core";
5
- import { Box } from '@semcore/base-components';
6
- import { createComponent, sstyled, Root } from '@semcore/core';
7
- import resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';
4
+ import { createComponent, sstyled, Root, Component } from '@semcore/core';
5
+ import Link from '@semcore/link';
8
6
  import React from 'react';
9
7
  /*!__reshadow-styles__:"./buttonLink.shadow.css"*/
10
- const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButton_uv2ud_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_uv2ud_gg_,.___SButton_uv2ud_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_uv2ud_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_uv2ud_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_uv2ud_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_uv2ud_gg_.__active_uv2ud_gg_ .___SText_uv2ud_gg_,.___SButton_uv2ud_gg_:active .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_uv2ud_gg_:hover .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_uv2ud_gg_.__disabled_uv2ud_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_uv2ud_gg_,.___SInner_uv2ud_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_uv2ud_gg_{height:100%;width:100%}.___SAddon_uv2ud_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_{color:var(--text-color_uv2ud)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:active{color:var(--text-color_uv2ud);filter:brightness(.8)}@media (hover:hover){.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:hover{color:var(--text-color_uv2ud);filter:brightness(.8)}}.___SButton_uv2ud_gg_._size_100_uv2ud_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_uv2ud_gg_._size_200_uv2ud_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_uv2ud_gg_._size_300_uv2ud_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_uv2ud_gg_._size_400_uv2ud_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_uv2ud_gg_._size_500_uv2ud_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_uv2ud_gg_._size_600_uv2ud_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_uv2ud_gg_._size_700_uv2ud_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_uv2ud_gg_._size_800_uv2ud_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_uv2ud_gg_,.___SText_uv2ud_gg_{transition:none}}", /*__inner_css_end__*/"uv2ud_gg_"),
8
+ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButtonLink_3pzzd_gg_{border:0;font-family:inherit}.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_){color:var(--intergalactic-text-link, #006dca)}.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_.__active_3pzzd_gg_:not(.__color_3pzzd_gg_),.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_):active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_):hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_){color:var(--intergalactic-text-hint, #6c6e79)}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_.__active_3pzzd_gg_:not(.__color_3pzzd_gg_),.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_):active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_):hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_ .___SText_3pzzd_gg_{text-decoration-style:dashed;text-decoration-color:currentColor}", /*__inner_css_end__*/"3pzzd_gg_"),
11
9
  /*__reshadow_css_end__*/
12
10
  {
13
- "__SButton": "___SButton_uv2ud_gg_",
14
- "_disabled": "__disabled_uv2ud_gg_",
15
- "__SInner": "___SInner_uv2ud_gg_",
16
- "__SAddon": "___SAddon_uv2ud_gg_",
17
- "_size_100": "_size_100_uv2ud_gg_",
18
- "_size_200": "_size_200_uv2ud_gg_",
19
- "_size_300": "_size_300_uv2ud_gg_",
20
- "_size_400": "_size_400_uv2ud_gg_",
21
- "_size_500": "_size_500_uv2ud_gg_",
22
- "_size_600": "_size_600_uv2ud_gg_",
23
- "_size_700": "_size_700_uv2ud_gg_",
24
- "_size_800": "_size_800_uv2ud_gg_",
25
- "__SText": "___SText_uv2ud_gg_",
26
- "_active": "__active_uv2ud_gg_",
27
- "_enableVisited": "__enableVisited_uv2ud_gg_",
28
- "_use_secondary": "_use_secondary_uv2ud_gg_",
29
- "_text-color": "__text-color_uv2ud_gg_",
30
- "--text-color": "--text-color_uv2ud"
11
+ "__SButtonLink": "___SButtonLink_3pzzd_gg_",
12
+ "_use_secondary": "_use_secondary_3pzzd_gg_",
13
+ "__SText": "___SText_3pzzd_gg_",
14
+ "_use_primary": "_use_primary_3pzzd_gg_",
15
+ "_color": "__color_3pzzd_gg_",
16
+ "_active": "__active_3pzzd_gg_"
31
17
  });
32
- import { AbstractButton } from '../AbstractButton/AbstractButton';
33
- const enhance = {
34
- resolveColor: resolveColorEnhance()
35
- };
36
- class RootButtonLink extends AbstractButton {
37
- getTextColor() {
18
+ class RootButtonLink extends Component {
19
+ render() {
20
+ var _ref = this.asProps,
21
+ _ref2;
22
+ const SButtonLink = Link;
38
23
  const {
39
- color,
40
- resolveColor
24
+ disabled
41
25
  } = this.asProps;
42
- return resolveColor(color);
26
+ return _ref2 = sstyled(style), /*#__PURE__*/React.createElement(SButtonLink, _ref2.cn("SButtonLink", {
27
+ ..._assignProps({
28
+ "tag": 'button',
29
+ "type": 'button',
30
+ "use:disabled": disabled,
31
+ "use:tabIndex": 0
32
+ }, _ref)
33
+ }));
43
34
  }
44
35
  }
45
36
  _defineProperty(RootButtonLink, "displayName", 'ButtonLink');
46
- _defineProperty(RootButtonLink, "enhance", Object.values(enhance));
47
37
  _defineProperty(RootButtonLink, "style", style);
48
38
  _defineProperty(RootButtonLink, "defaultProps", {
49
- use: 'primary'
39
+ use: 'primary',
40
+ size: 200
50
41
  });
51
- function Text(props) {
52
- var _ref = arguments[0],
53
- _ref3;
54
- const SText = Box;
55
- return _ref3 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref3.cn("SText", {
56
- ..._assignProps({
57
- "tag": 'span'
58
- }, _ref)
59
- }));
60
- }
61
- function Addon(props) {
62
- var _ref2 = arguments[0],
63
- _ref4;
64
- const SAddon = Box;
65
- return _ref4 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref4.cn("SAddon", {
66
- ..._assignProps2({
67
- "tag": 'span'
68
- }, _ref2)
69
- }));
70
- }
71
42
  export const ButtonLink = createComponent(RootButtonLink, {
72
- Text,
73
- Addon
43
+ Text: Link.Text,
44
+ Addon: Link.Addon
45
+ }, {
46
+ parent: Link
74
47
  });
75
48
  //# sourceMappingURL=ButtonLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.js","names":["Box","createComponent","sstyled","Root","resolveColorEnhance","React","style","_sstyled","insert","AbstractButton","enhance","resolveColor","RootButtonLink","getTextColor","color","asProps","_defineProperty","Object","values","use","Text","props","_ref","arguments[0]","_ref3","SText","styles","createElement","cn","_assignProps","Addon","_ref2","_ref4","SAddon","_assignProps2","ButtonLink"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkAddonProps, ButtonLinkComponent, ButtonLinkTextProps } from './ButtonLink.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nconst enhance = {\n resolveColor: resolveColorEnhance(),\n};\n\nclass RootButtonLink extends AbstractButton {\n static displayName = 'ButtonLink';\n static enhance = Object.values(enhance);\n static style = style;\n static defaultProps = {\n use: 'primary',\n };\n\n protected getTextColor(): string | undefined {\n const { color, resolveColor } = this.asProps as any;\n return resolveColor(color);\n }\n}\n\nfunction Text(props: ButtonLinkTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: ButtonLinkAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text,\n Addon,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;AAAA,SAASA,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAC9D,OAAOC,mBAAmB,MAAM,sDAAsD;AACtF,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1B,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,MAAMC,OAAO,GAAG;EACdC,YAAY,EAAEP,mBAAmB,CAAC;AACpC,CAAC;AAED,MAAMQ,cAAc,SAASH,cAAc,CAAC;EAQhCI,YAAYA,CAAA,EAAuB;IAC3C,MAAM;MAAEC,KAAK;MAAEH;IAAa,CAAC,GAAG,IAAI,CAACI,OAAc;IACnD,OAAOJ,YAAY,CAACG,KAAK,CAAC;EAC5B;AACF;AAACE,eAAA,CAZKJ,cAAc,iBACG,YAAY;AAAAI,eAAA,CAD7BJ,cAAc,aAEDK,MAAM,CAACC,MAAM,CAACR,OAAO,CAAC;AAAAM,eAAA,CAFnCJ,cAAc,WAGHN,KAAK;AAAAU,eAAA,CAHhBJ,cAAc,kBAII;EACpBO,GAAG,EAAE;AACP,CAAC;AAQH,SAASC,IAAIA,CAACC,KAA0B,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACxC,MAAMC,KAAK,GACiCzB,GAAG;EAA/C,OAAAwB,KAAA,GAAOtB,OAAO,CAACmB,KAAK,CAACK,MAAM,CAAC,eAACrB,KAAA,CAAAsB,aAAA,CAACF,KAAK,EAAAD,KAAA,CAAAI,EAAA;IAAA,GAAAC,YAAA;MAAA,OAAkB;IAAM,GAAAP,IAAA;EAAA,EAAE,CAAC;AAChE;AAEA,SAASQ,KAAKA,CAACT,KAA2B,EAAE;EAAA,IAAAU,KAAA,GAAAR,YAAA;IAAAS,KAAA;EAC1C,MAAMC,MAAM,GACiCjC,GAAG;EAAhD,OAAAgC,KAAA,GAAO9B,OAAO,CAACmB,KAAK,CAACK,MAAM,CAAC,eAACrB,KAAA,CAAAsB,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,GAAAM,aAAA;MAAA,OAAkB;IAAM,GAAAH,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,OAAO,MAAMI,UAAU,GAAGlC,eAAe,CAACW,cAAc,EAAE;EACxDQ,IAAI;EACJU;AACF,CAAC,CAAwB","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.js","names":["createComponent","sstyled","Root","Component","Link","React","style","_sstyled","insert","RootButtonLink","render","_ref","asProps","_ref2","SButtonLink","disabled","createElement","cn","_assignProps","_defineProperty","use","size","ButtonLink","Text","Addon","parent"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { createComponent, sstyled, Root, Component } from '@semcore/core';\nimport Link from '@semcore/link';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkComponent, ButtonLinkProps } from './ButtonLink.type';\n\nclass RootButtonLink extends Component<ButtonLinkProps> {\n static displayName = 'ButtonLink';\n static style = style;\n static defaultProps = {\n use: 'primary',\n size: 200,\n };\n\n render(): React.ReactNode {\n const SButtonLink = Root;\n const { disabled } = this.asProps;\n\n return sstyled(style)(\n <SButtonLink\n render={Link}\n tag='button'\n type='button'\n use:disabled={disabled}\n use:tabIndex={0}\n />,\n );\n }\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text: Link.Text,\n Addon: Link.Addon,\n}, {\n parent: Link,\n}) as ButtonLinkComponent;\n"],"mappings":";;;AAAA,SAASA,eAAe,EAAEC,OAAO,EAAEC,IAAI,EAAEC,SAAS,QAAQ,eAAe;AACzE,OAAOC,IAAI,MAAM,eAAe;AAChC,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAK1B,MAAMC,cAAc,SAASN,SAAS,CAAkB;EAQtDO,MAAMA,CAAA,EAAoB;IAAA,IAAAC,IAAA,QAAAC,OAAA;MAAAC,KAAA;IACxB,MAAMC,WAAW,GAKLV,IAAI;IAJhB,MAAM;MAAEW;IAAS,CAAC,GAAG,IAAI,CAACH,OAAO;IAEjC,OAAAC,KAAA,GAAOZ,OAAO,CAACK,KAAK,CAAC,eACnBD,KAAA,CAAAW,aAAA,CAACF,WAAW,EAAAD,KAAA,CAAAI,EAAA;MAAA,GAAAC,YAAA;QAAA,OAEN,QAAQ;QAAA,QACP,QAAQ;QAAA,gBACCH,QAAQ;QAAA,gBACR;MAAC,GAAAJ,IAAA;IAAA,EAChB,CAAC;EAEN;AACF;AAACQ,eAAA,CAtBKV,cAAc,iBACG,YAAY;AAAAU,eAAA,CAD7BV,cAAc,WAEHH,KAAK;AAAAa,eAAA,CAFhBV,cAAc,kBAGI;EACpBW,GAAG,EAAE,SAAS;EACdC,IAAI,EAAE;AACR,CAAC;AAkBH,OAAO,MAAMC,UAAU,GAAGtB,eAAe,CAACS,cAAc,EAAE;EACxDc,IAAI,EAAEnB,IAAI,CAACmB,IAAI;EACfC,KAAK,EAAEpB,IAAI,CAACoB;AACd,CAAC,EAAE;EACDC,MAAM,EAAErB;AACV,CAAC,CAAwB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button link size\n */\nexport type ButtonLinkSize = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;\n/**\n * Button link type\n * @default primary\n */\ntype Use = 'primary' | 'secondary';\n\nexport type ButtonLinkProps = AbstractButtonProps<ButtonLinkSize, Use, never>;\n\nexport type ButtonLinkTextProps = AbstractButtonTextProps<ButtonLinkSize>;\n\nexport type ButtonLinkAddonProps = AbstractButtonAddonProps<ButtonLinkSize>;\n\nexport type ButtonLinkContext = AbstractButtonContext;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonLinkContext\n> & {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { BoxProps } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { LinkProps } from '@semcore/link';\nimport type { TextProps } from '@semcore/typography';\n\nimport type { ButtonContext } from '../Button/Button.type';\n\nexport type ButtonLinkProps = Intergalactic.InternalTypings.EfficientOmit<LinkProps, 'enableVisited'> & {\n /**\n * Button link type\n * @default primary\n */\n use?: 'primary' | 'secondary';\n};\n\nexport type ButtonLinkTextProps = TextProps;\n\nexport type ButtonLinkAddonProps = BoxProps;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonContext\n> & ButtonLinkChildren;\n"],"mappings":"","ignoreList":[]}
@@ -1,59 +1,19 @@
1
- SButton {
2
- display: inline-flex;
1
+ SButtonLink {
2
+ border: none;
3
3
  font-family: inherit;
4
- font-size: var(--intergalactic-fs-200, 14px);
4
+ }
5
+
6
+ SButtonLink[use='primary']:not([color]) {
5
7
  color: var(--intergalactic-text-link, #006dca);
6
- line-height: normal;
7
- position: relative;
8
- cursor: pointer;
9
- text-decoration: none;
10
- border: none;
11
- padding: 0;
12
- margin: 0;
13
- box-shadow: none;
14
- -webkit-tap-highlight-color: transparent;
15
- background: none;
16
- transition: color 0.15s ease-in-out;
17
8
 
9
+ &[active],
18
10
  &:active,
19
11
  &:hover {
20
- text-decoration: none;
21
- }
22
-
23
- &::-moz-focus-inner {
24
- border: none;
25
- padding: 0;
26
- }
27
-
28
- &[active],
29
- &:hover,
30
- &:active {
31
12
  color: var(--intergalactic-text-link-hover-active, #044792);
32
-
33
- & SText {
34
- box-shadow: 0 1px 0 0 currentColor;
35
- }
36
- }
37
-
38
- &[enableVisited]:visited,
39
- &[enableVisited]:visited:hover {
40
- color: var(--intergalactic-text-link-visited, #8649e1);
41
13
  }
42
-
43
- SText {
44
- box-shadow: 0 1px 0 0 transparent;
45
- transition: box-shadow 0.15s ease-in-out;
46
- }
47
- }
48
-
49
- SButton[disabled] {
50
- opacity: var(--intergalactic-disabled-opacity, 0.3);
51
- cursor: default;
52
- /* Disable link interactions */
53
- pointer-events: none;
54
14
  }
55
15
 
56
- SButton[use='secondary'] {
16
+ SButtonLink[use='secondary']:not([color]) {
57
17
  color: var(--intergalactic-text-hint, #6c6e79);
58
18
 
59
19
  &[active],
@@ -61,99 +21,9 @@ SButton[use='secondary'] {
61
21
  &:hover {
62
22
  color: var(--intergalactic-text-hint-hover-active, #484a54);
63
23
  }
64
-
65
- SText {
66
- box-shadow: none;
67
- border-bottom-width: 1px;
68
- border-bottom-style: dashed;
69
- border-color: currentColor;
70
- }
71
- }
72
-
73
- SInner {
74
- display: inline-flex;
75
- align-items: baseline;
76
- justify-content: center;
77
- height: 100%;
78
- width: 100%;
79
- }
80
-
81
- SAddon {
82
- display: inline-flex;
83
- justify-content: center;
84
- align-items: baseline;
85
- vertical-align: middle;
86
- pointer-events: none;
87
- align-self: center;
88
- }
89
-
90
- SButton SAddon {
91
- &:not(:only-child):first-child {
92
- margin-right: var(--intergalactic-spacing-1x, 4px);
93
- }
94
-
95
- &:not(:only-child):last-child {
96
- margin-left: var(--intergalactic-spacing-1x, 4px);
97
- }
98
- }
99
-
100
- SButton[text-color] {
101
- color: var(--text-color);
102
-
103
- &[active],
104
- &:hover,
105
- &:active {
106
- color: var(--text-color);
107
- filter: brightness(0.8);
108
- }
109
- }
110
-
111
- SButton[size='100'] {
112
- font-size: var(--intergalactic-fs-100, 12px);
113
- line-height: var(--intergalactic-lh-100, 133%);
114
- }
115
-
116
- SButton[size='200'] {
117
- font-size: var(--intergalactic-fs-200, 14px);
118
- line-height: var(--intergalactic-lh-200, 142%);
119
- }
120
-
121
- SButton[size='300'] {
122
- font-size: var(--intergalactic-fs-300, 16px);
123
- line-height: var(--intergalactic-lh-300, 150%);
124
24
  }
125
25
 
126
- SButton[size='400'] {
127
- font-size: var(--intergalactic-fs-400, 20px);
128
- line-height: var(--intergalactic-lh-400, 120%);
129
- }
130
-
131
- SButton[size='500'] {
132
- font-size: var(--intergalactic-fs-500, 24px);
133
- line-height: var(--intergalactic-lh-500, 117%);
134
- }
135
-
136
- SButton[size='600'] {
137
- font-size: var(--intergalactic-fs-600, 32px);
138
- line-height: var(--intergalactic-lh-600, 125%);
139
- }
140
-
141
- SButton[size='700'] {
142
- font-size: var(--intergalactic-fs-700, 36px);
143
- line-height: var(--intergalactic-lh-700, 110%);
144
- }
145
-
146
- SButton[size='800'] {
147
- font-size: var(--intergalactic-fs-800, 48px);
148
- line-height: var(--intergalactic-lh-800, 117%);
149
- }
150
-
151
- @media (prefers-reduced-motion) {
152
- SButton {
153
- transition: none;
154
- }
155
-
156
- SText {
157
- transition: none;
158
- }
26
+ SButtonLink[use='secondary'] SText {
27
+ text-decoration-style: dashed;
28
+ text-decoration-color: currentColor;
159
29
  }
package/lib/es6/index.js CHANGED
@@ -1,6 +1,5 @@
1
- export { default } from './component/Button/Button';
1
+ export { default, MAP_USE_DEFAULT_THEME } from './component/Button/Button';
2
2
  export * from './component/Button/Button.type';
3
3
  export * from './component/ButtonLink/ButtonLink';
4
4
  export * from './component/ButtonLink/ButtonLink.type';
5
- export { MAP_USE_DEFAULT_THEME } from './component/AbstractButton/AbstractButton';
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","MAP_USE_DEFAULT_THEME"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './component/Button/Button';\nexport * from './component/Button/Button.type';\nexport * from './component/ButtonLink/ButtonLink';\nexport * from './component/ButtonLink/ButtonLink.type';\nexport { MAP_USE_DEFAULT_THEME } from './component/AbstractButton/AbstractButton';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,2BAA2B;AACnD,cAAc,gCAAgC;AAC9C,cAAc,mCAAmC;AACjD,cAAc,wCAAwC;AACtD,SAASC,qBAAqB,QAAQ,2CAA2C","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","MAP_USE_DEFAULT_THEME"],"sources":["../../src/index.ts"],"sourcesContent":["export { default, MAP_USE_DEFAULT_THEME } from './component/Button/Button';\nexport * from './component/Button/Button.type';\nexport * from './component/ButtonLink/ButtonLink';\nexport * from './component/ButtonLink/ButtonLink.type';\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,qBAAqB,QAAQ,2BAA2B;AAC1E,cAAc,gCAAgC;AAC9C,cAAc,mCAAmC;AACjD,cAAc,wCAAwC","ignoreList":[]}