@sellmate/design-system 1.0.21 → 1.0.23

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 (222) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  2. package/dist/cjs/{select-keyboard-navigation-CtstKOb3.js → base-dropdown-event-BTPlZ1KF.js} +0 -38
  3. package/dist/cjs/component.button-C6xBMwHf.js +115 -0
  4. package/dist/cjs/design-system.cjs.js +4 -3
  5. package/dist/cjs/{index-D-PnW6jc.js → index-Qvv0fGgj.js} +9 -117
  6. package/dist/cjs/loader.cjs.js +4 -3
  7. package/dist/cjs/sd-badge.cjs.entry.js +2 -2
  8. package/dist/cjs/sd-button-v2.cjs.entry.js +86 -0
  9. package/dist/cjs/sd-button-v2.config-BK45EPK_.js +203 -0
  10. package/dist/cjs/sd-button_21.cjs.entry.js +121 -67
  11. package/dist/cjs/sd-card.cjs.entry.js +2 -2
  12. package/dist/cjs/sd-date-picker.cjs.entry.js +2 -2
  13. package/dist/cjs/sd-dropdown-button.cjs.entry.js +274 -0
  14. package/dist/cjs/sd-file-picker.cjs.entry.js +4 -4
  15. package/dist/cjs/sd-form.cjs.entry.js +1 -1
  16. package/dist/cjs/sd-guide.cjs.entry.js +3 -3
  17. package/dist/cjs/sd-popover.cjs.entry.js +4 -4
  18. package/dist/cjs/sd-progress.cjs.entry.js +3 -3
  19. package/dist/cjs/sd-radio-button-group.cjs.entry.js +1 -1
  20. package/dist/cjs/sd-radio-group.cjs.entry.js +1 -1
  21. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +4 -3
  22. package/dist/cjs/sd-select-multiple.cjs.entry.js +5 -4
  23. package/dist/cjs/sd-select-option-group.cjs.entry.js +4 -4
  24. package/dist/cjs/sd-tabs.cjs.entry.js +7 -9
  25. package/dist/cjs/sd-tag.cjs.entry.js +96 -38
  26. package/dist/cjs/sd-toast.cjs.entry.js +3 -3
  27. package/dist/cjs/sd-toggle-button.cjs.entry.js +2 -2
  28. package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
  29. package/dist/cjs/select-keyboard-navigation-s2wP37xZ.js +40 -0
  30. package/dist/cjs/{tooltipArrow-CMyNLSC-.js → tooltipArrow-Mb2Dhc7T.js} +1 -1
  31. package/dist/collection/collection-manifest.json +4 -2
  32. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  33. package/dist/collection/components/sd-button-v2/sd-button-v2.config.js +190 -0
  34. package/dist/collection/components/sd-button-v2/sd-button-v2.css +120 -0
  35. package/dist/collection/components/sd-button-v2/sd-button-v2.js +249 -0
  36. package/dist/collection/components/sd-card/sd-card.js +1 -1
  37. package/dist/collection/components/sd-date-picker/sd-date-picker.js +1 -1
  38. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
  39. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +62 -0
  40. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.css +171 -0
  41. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +384 -0
  42. package/dist/collection/components/sd-field/sd-field.js +3 -3
  43. package/dist/collection/components/sd-file-picker/sd-file-picker.js +3 -3
  44. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  45. package/dist/collection/components/sd-guide/sd-guide.js +2 -2
  46. package/dist/collection/components/sd-icon/sd-icon.js +1 -1
  47. package/dist/collection/components/sd-input/sd-input.js +1 -1
  48. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
  49. package/dist/collection/components/sd-number-input/sd-number-input.js +4 -4
  50. package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
  51. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  52. package/dist/collection/components/sd-portal/sd-portal.js +89 -19
  53. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  54. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +2 -2
  55. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  56. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +3 -3
  57. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +1 -1
  58. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  59. package/dist/collection/components/sd-tabs/sd-tabs.js +6 -8
  60. package/dist/collection/components/sd-tag/sd-tag.config.js +70 -0
  61. package/dist/collection/components/sd-tag/sd-tag.css +26 -56
  62. package/dist/collection/components/sd-tag/sd-tag.js +51 -104
  63. package/dist/collection/components/sd-textarea/sd-textarea.js +2 -2
  64. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  65. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  66. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +1 -1
  67. package/dist/components/index.js +1 -1
  68. package/dist/components/{p-DdOM8yc2.js → p-2FdkYfts.js} +1 -1
  69. package/dist/components/{p-CWg2auF3.js → p-B1o7vc2v.js} +1 -1
  70. package/dist/components/p-B1vJXa29.js +1 -0
  71. package/dist/components/p-BFO8hHjW.js +1 -0
  72. package/dist/components/{p-CbQobmaB.js → p-BKTfQGcR.js} +1 -1
  73. package/dist/components/{p-D0U1cMbs.js → p-BNuWMSR_.js} +1 -1
  74. package/dist/components/{p-B-UC5tW2.js → p-BxXKe48B.js} +1 -1
  75. package/dist/components/p-CAZeEBeS.js +1 -0
  76. package/dist/components/{p-D35gOcGh.js → p-CDzGasXW.js} +1 -1
  77. package/dist/components/{p-MmKik3mL.js → p-CVvYLd5J.js} +1 -1
  78. package/dist/components/{p-CU5TiEeI.js → p-CdCMe4bN.js} +1 -1
  79. package/dist/components/{p-rn5S2icF.js → p-CwM24aVj.js} +1 -1
  80. package/dist/components/p-Cy6HMEsK.js +1 -0
  81. package/dist/components/{p-BVFlD1Lp.js → p-CzHa12Ax.js} +1 -1
  82. package/dist/components/{p-Cef06v8S.js → p-Czq-8oT7.js} +1 -1
  83. package/dist/components/{p-DdNQILvd.js → p-D-ian_bu.js} +1 -1
  84. package/dist/components/{p-qSu-ayDy.js → p-D9mJxIjm.js} +1 -1
  85. package/dist/components/{p-J-Yn0oS3.js → p-DYoNy5I7.js} +1 -1
  86. package/dist/components/p-Dc4UTGgQ.js +1 -0
  87. package/dist/components/p-Dun2lZmi.js +1 -0
  88. package/dist/components/{p-C1XPuuO-.js → p-G4t0nGLP.js} +1 -1
  89. package/dist/components/p-NAapFxTw.js +1 -0
  90. package/dist/components/p-VKF2AWs1.js +1 -0
  91. package/dist/components/{p-C0yQ73oI.js → p-hfbNb5UF.js} +1 -1
  92. package/dist/components/sd-badge.js +1 -1
  93. package/dist/components/sd-button-v2.d.ts +11 -0
  94. package/dist/components/sd-button-v2.js +1 -0
  95. package/dist/components/sd-button.js +1 -1
  96. package/dist/components/sd-card.js +1 -1
  97. package/dist/components/sd-checkbox.js +1 -1
  98. package/dist/components/sd-date-box.js +1 -1
  99. package/dist/components/sd-date-picker.js +1 -1
  100. package/dist/components/sd-date-range-picker.js +1 -1
  101. package/dist/components/sd-dropdown-button.d.ts +11 -0
  102. package/dist/components/sd-dropdown-button.js +1 -0
  103. package/dist/components/sd-field.js +1 -1
  104. package/dist/components/sd-file-picker.js +1 -1
  105. package/dist/components/sd-floating-portal.js +1 -1
  106. package/dist/components/sd-form.js +1 -1
  107. package/dist/components/sd-guide.js +1 -1
  108. package/dist/components/sd-icon.js +1 -1
  109. package/dist/components/sd-input.js +1 -1
  110. package/dist/components/sd-loading-spinner.js +1 -1
  111. package/dist/components/sd-modal-card.js +1 -1
  112. package/dist/components/sd-number-input.js +1 -1
  113. package/dist/components/sd-pagination.js +1 -1
  114. package/dist/components/sd-popover.js +1 -1
  115. package/dist/components/sd-portal.js +1 -1
  116. package/dist/components/sd-progress.js +1 -1
  117. package/dist/components/sd-radio-button-group.js +1 -1
  118. package/dist/components/sd-radio-group.js +1 -1
  119. package/dist/components/sd-radio.js +1 -1
  120. package/dist/components/sd-select-dropdown.js +1 -1
  121. package/dist/components/sd-select-multiple-group.js +1 -1
  122. package/dist/components/sd-select-multiple.js +1 -1
  123. package/dist/components/sd-select-option-group.js +1 -1
  124. package/dist/components/sd-select-option.js +1 -1
  125. package/dist/components/sd-select-search-input.js +1 -1
  126. package/dist/components/sd-select.js +1 -1
  127. package/dist/components/sd-table.js +1 -1
  128. package/dist/components/sd-tabs.js +1 -1
  129. package/dist/components/sd-tag.js +1 -1
  130. package/dist/components/sd-textarea.js +1 -1
  131. package/dist/components/sd-toast.js +1 -1
  132. package/dist/components/sd-toggle-button.js +1 -1
  133. package/dist/components/sd-toggle.js +1 -1
  134. package/dist/components/sd-tooltip.js +1 -1
  135. package/dist/design-system/design-system.esm.js +1 -1
  136. package/dist/design-system/{p-3d03b19e.entry.js → p-02c5ab69.entry.js} +1 -1
  137. package/dist/design-system/{p-3301c280.entry.js → p-1b80635f.entry.js} +1 -1
  138. package/dist/design-system/p-285cc646.entry.js +1 -0
  139. package/dist/design-system/{p-8fde8570.entry.js → p-3565f871.entry.js} +1 -1
  140. package/dist/design-system/{p-0406b7f9.entry.js → p-5032c700.entry.js} +1 -1
  141. package/dist/design-system/{p-d6b38732.entry.js → p-5094848f.entry.js} +1 -1
  142. package/dist/design-system/p-59a52297.entry.js +1 -0
  143. package/dist/design-system/p-712c1ef1.entry.js +1 -0
  144. package/dist/design-system/{p-3e07e92a.entry.js → p-83f320e6.entry.js} +1 -1
  145. package/dist/design-system/{p-32c27eca.entry.js → p-8b013328.entry.js} +1 -1
  146. package/dist/design-system/{p-d021a375.entry.js → p-9563ffe1.entry.js} +1 -1
  147. package/dist/design-system/p-B8tGP77V.js +2 -0
  148. package/dist/design-system/p-BeCHKP_I.js +1 -0
  149. package/dist/design-system/p-CRdYeSBK.js +1 -0
  150. package/dist/design-system/p-DQuL1Twl.js +1 -0
  151. package/dist/design-system/p-Dc4UTGgQ.js +1 -0
  152. package/dist/design-system/p-VKF2AWs1.js +1 -0
  153. package/dist/design-system/p-a3025f1f.entry.js +1 -0
  154. package/dist/design-system/p-b1e45f3f.entry.js +1 -0
  155. package/dist/design-system/{p-d344fa9d.entry.js → p-c0655cd1.entry.js} +1 -1
  156. package/dist/design-system/p-d8a141e7.entry.js +1 -0
  157. package/dist/design-system/p-df3d3a2a.entry.js +1 -0
  158. package/dist/design-system/{p-8f99cd66.entry.js → p-e6d84ecf.entry.js} +1 -1
  159. package/dist/design-system/p-e7d7ceb4.entry.js +1 -0
  160. package/dist/design-system/{p-646ed990.entry.js → p-ea26b8e9.entry.js} +1 -1
  161. package/dist/design-system/p-f1b31194.entry.js +1 -0
  162. package/dist/design-system/p-f81d3798.entry.js +1 -0
  163. package/dist/design-system/p-xxEHPVkL.js +1 -0
  164. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  165. package/dist/esm/{select-keyboard-navigation-D8-D-mJX.js → base-dropdown-event-CRdYeSBK.js} +1 -37
  166. package/dist/esm/component.button-Dc4UTGgQ.js +113 -0
  167. package/dist/esm/design-system.js +4 -3
  168. package/dist/esm/{index-C_an1PQ3.js → index-B8tGP77V.js} +10 -117
  169. package/dist/esm/loader.js +4 -3
  170. package/dist/esm/sd-badge.entry.js +2 -2
  171. package/dist/esm/sd-button-v2.config-BWmcscrt.js +193 -0
  172. package/dist/esm/sd-button-v2.entry.js +84 -0
  173. package/dist/esm/sd-button_21.entry.js +116 -62
  174. package/dist/esm/sd-card.entry.js +2 -2
  175. package/dist/esm/sd-date-picker.entry.js +2 -2
  176. package/dist/esm/sd-dropdown-button.entry.js +272 -0
  177. package/dist/esm/sd-file-picker.entry.js +4 -4
  178. package/dist/esm/sd-form.entry.js +1 -1
  179. package/dist/esm/sd-guide.entry.js +3 -3
  180. package/dist/esm/sd-popover.entry.js +4 -4
  181. package/dist/esm/sd-progress.entry.js +3 -3
  182. package/dist/esm/sd-radio-button-group.entry.js +1 -1
  183. package/dist/esm/sd-radio-group.entry.js +1 -1
  184. package/dist/esm/sd-select-multiple-group.entry.js +3 -2
  185. package/dist/esm/sd-select-multiple.entry.js +4 -3
  186. package/dist/esm/sd-select-option-group.entry.js +4 -4
  187. package/dist/esm/sd-tabs.entry.js +7 -9
  188. package/dist/esm/sd-tag.entry.js +96 -38
  189. package/dist/esm/sd-toast.entry.js +3 -3
  190. package/dist/esm/sd-toggle-button.entry.js +2 -2
  191. package/dist/esm/sd-toggle.entry.js +2 -2
  192. package/dist/esm/select-keyboard-navigation-xxEHPVkL.js +37 -0
  193. package/dist/esm/{tooltipArrow-BTp0AVR2.js → tooltipArrow-Pdc3NIc9.js} +1 -1
  194. package/dist/types/components/sd-button-v2/sd-button-v2.config.d.ts +178 -0
  195. package/dist/types/components/sd-button-v2/sd-button-v2.d.ts +18 -0
  196. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +55 -0
  197. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.d.ts +34 -0
  198. package/dist/types/components/sd-portal/sd-portal.d.ts +9 -0
  199. package/dist/types/components/sd-tabs/sd-tabs.d.ts +1 -1
  200. package/dist/types/components/sd-tag/sd-tag.config.d.ts +23 -0
  201. package/dist/types/components/sd-tag/sd-tag.d.ts +6 -10
  202. package/dist/types/components.d.ts +168 -27
  203. package/dist/types/index.d.ts +2 -0
  204. package/hydrate/index.js +1069 -755
  205. package/hydrate/index.mjs +1069 -755
  206. package/package.json +2 -2
  207. package/dist/components/p-B82gJZ4z.js +0 -1
  208. package/dist/components/p-C6J-ZZxF.js +0 -1
  209. package/dist/components/p-CDehvEQ5.js +0 -1
  210. package/dist/components/p-CHAh-_qx.js +0 -1
  211. package/dist/components/p-CaEyReID.js +0 -1
  212. package/dist/design-system/p-103de692.entry.js +0 -1
  213. package/dist/design-system/p-3edd59b5.entry.js +0 -1
  214. package/dist/design-system/p-55c13597.entry.js +0 -1
  215. package/dist/design-system/p-679e4367.entry.js +0 -1
  216. package/dist/design-system/p-822233ee.entry.js +0 -1
  217. package/dist/design-system/p-Bak0zfmv.js +0 -1
  218. package/dist/design-system/p-C_an1PQ3.js +0 -2
  219. package/dist/design-system/p-D8-D-mJX.js +0 -1
  220. package/dist/design-system/p-ab3b6f63.entry.js +0 -1
  221. package/dist/design-system/p-de339565.entry.js +0 -1
  222. package/dist/design-system/p-fc0e636b.entry.js +0 -1
@@ -0,0 +1,249 @@
1
+ import { h } from "@stencil/core";
2
+ import { BUTTON_CONFIG, BUTTON_FOCUS_RING_COLOR, BUTTON_ICON_SIZES, DISABLED_CONTENT, PRESET_BORDER_COLORS, PRESET_CONTENT_COLORS, PRESET_HOVER_BACKGROUNDS, getPresetName, isButtonV2Name, } from "./sd-button-v2.config";
3
+ export class SdButtonV2 {
4
+ name = 'primary_sm';
5
+ label = '';
6
+ icon;
7
+ ariaLabel = '';
8
+ disabled = false;
9
+ type = 'button';
10
+ click;
11
+ hasWarnedMissingAriaLabel = false;
12
+ handleClick = (event) => {
13
+ if (this.disabled) {
14
+ event.preventDefault();
15
+ return;
16
+ }
17
+ this.click.emit(event);
18
+ };
19
+ get resolvedConfig() {
20
+ if (!isButtonV2Name(this.name)) {
21
+ throw new Error(`Invalid sd-button-v2 name: ${this.name}`);
22
+ }
23
+ const config = BUTTON_CONFIG[this.name];
24
+ const preset = getPresetName(this.name);
25
+ return {
26
+ config,
27
+ preset,
28
+ };
29
+ }
30
+ getButtonClasses(preset, size, hasLabel, iconOnly) {
31
+ const classes = ['sd-button-v2', `sd-button-v2--${preset}`, `sd-button-v2--${size}`];
32
+ if (this.disabled) {
33
+ classes.push('sd-button-v2--disabled');
34
+ }
35
+ if (iconOnly) {
36
+ classes.push('sd-button-v2--icon-only');
37
+ }
38
+ if (hasLabel) {
39
+ classes.push('sd-button-v2--has-label');
40
+ }
41
+ return classes.join(' ');
42
+ }
43
+ componentWillRender() {
44
+ this.warnIfMissingAriaLabel();
45
+ }
46
+ warnIfMissingAriaLabel() {
47
+ const iconOnly = !this.label && Boolean(this.icon);
48
+ const missingAriaLabel = iconOnly && !this.ariaLabel.trim();
49
+ if (!missingAriaLabel) {
50
+ this.hasWarnedMissingAriaLabel = false;
51
+ return;
52
+ }
53
+ if (this.hasWarnedMissingAriaLabel) {
54
+ return;
55
+ }
56
+ console.warn(`[sd-button-v2] icon-only buttons require \`ariaLabel\`. Received name="${this.name}" icon="${this.icon}".`);
57
+ this.hasWarnedMissingAriaLabel = true;
58
+ }
59
+ render() {
60
+ const { config, preset } = this.resolvedConfig;
61
+ const hasLabel = Boolean(this.label);
62
+ const iconOnly = !this.label && Boolean(this.icon);
63
+ const accessibleName = iconOnly && this.ariaLabel.trim() ? this.ariaLabel : undefined;
64
+ const iconColor = this.disabled ? DISABLED_CONTENT : PRESET_CONTENT_COLORS[preset];
65
+ return (h("button", { key: '9adec3868e5337822463a5a37a741ef146a081be', class: this.getButtonClasses(preset, config.size, hasLabel, iconOnly), type: this.type, disabled: this.disabled, "aria-label": accessibleName, style: {
66
+ '--sd-button-v2-bg': config.variant === 'primary' ? config.color : '#FFFFFF',
67
+ '--sd-button-v2-bg-hover': PRESET_HOVER_BACKGROUNDS[preset],
68
+ '--sd-button-v2-border': PRESET_BORDER_COLORS[preset],
69
+ '--sd-button-v2-content': PRESET_CONTENT_COLORS[preset],
70
+ '--sd-button-v2-accent': BUTTON_FOCUS_RING_COLOR,
71
+ }, onClick: this.handleClick }, h("span", { key: '849c90886e77e792e4e34ef064352361a29664f0', class: "sd-button-v2__content" }, this.icon && (h("sd-icon", { key: '5c5bc61ab43aa17124337a7107a3e6ab82f566ae', class: "sd-button-v2__icon", name: this.icon, size: BUTTON_ICON_SIZES[config.size], color: iconColor })), this.label && h("span", { key: 'e2d1a5ce465f07310a4d03966609baaf7e968b0e', class: "sd-button-v2__label" }, this.label))));
72
+ }
73
+ static get is() { return "sd-button-v2"; }
74
+ static get originalStyleUrls() {
75
+ return {
76
+ "$": ["sd-button-v2.scss"]
77
+ };
78
+ }
79
+ static get styleUrls() {
80
+ return {
81
+ "$": ["sd-button-v2.css"]
82
+ };
83
+ }
84
+ static get properties() {
85
+ return {
86
+ "name": {
87
+ "type": "string",
88
+ "mutable": false,
89
+ "complexType": {
90
+ "original": "ButtonV2Name",
91
+ "resolved": "\"danger_lg\" | \"danger_md\" | \"danger_outline_lg\" | \"danger_outline_md\" | \"danger_outline_sm\" | \"danger_outline_xs\" | \"danger_sm\" | \"danger_xs\" | \"neutral_lg\" | \"neutral_md\" | \"neutral_outline_lg\" | \"neutral_outline_md\" | \"neutral_outline_sm\" | \"neutral_outline_xs\" | \"neutral_sm\" | \"neutral_xs\" | \"primary_lg\" | \"primary_md\" | \"primary_outline_lg\" | \"primary_outline_md\" | \"primary_outline_sm\" | \"primary_outline_xs\" | \"primary_sm\" | \"primary_xs\" | \"secondary_lg\" | \"secondary_md\" | \"secondary_sm\" | \"secondary_xs\"",
92
+ "references": {
93
+ "ButtonV2Name": {
94
+ "location": "import",
95
+ "path": "./sd-button-v2.config",
96
+ "id": "src/components/sd-button-v2/sd-button-v2.config.ts::ButtonV2Name",
97
+ "referenceLocation": "ButtonV2Name"
98
+ }
99
+ }
100
+ },
101
+ "required": false,
102
+ "optional": false,
103
+ "docs": {
104
+ "tags": [],
105
+ "text": ""
106
+ },
107
+ "getter": false,
108
+ "setter": false,
109
+ "reflect": false,
110
+ "attribute": "name",
111
+ "defaultValue": "'primary_sm'"
112
+ },
113
+ "label": {
114
+ "type": "string",
115
+ "mutable": false,
116
+ "complexType": {
117
+ "original": "string",
118
+ "resolved": "string",
119
+ "references": {}
120
+ },
121
+ "required": false,
122
+ "optional": false,
123
+ "docs": {
124
+ "tags": [],
125
+ "text": ""
126
+ },
127
+ "getter": false,
128
+ "setter": false,
129
+ "reflect": false,
130
+ "attribute": "label",
131
+ "defaultValue": "''"
132
+ },
133
+ "icon": {
134
+ "type": "string",
135
+ "mutable": false,
136
+ "complexType": {
137
+ "original": "IconName",
138
+ "resolved": "\"add\" | \"alert\" | \"alignKorean\" | \"archive\" | \"arrow2Down\" | \"arrow2Left\" | \"arrow2Right\" | \"arrow2Up\" | \"arrow2UpDown\" | \"arrowDown\" | \"arrowLeft\" | \"arrowLeftEnd\" | \"arrowRight\" | \"arrowRightEnd\" | \"arrowUp\" | \"attachFile\" | \"badgeNew\" | \"barcode\" | \"bell\" | \"board\" | \"box\" | \"cancelFilled\" | \"cancelOutline\" | \"caretDown\" | \"caretLeft\" | \"caretRight\" | \"caretUp\" | \"check\" | \"checkFilled\" | \"checkOutline\" | \"clockFilled\" | \"clockOutline\" | \"close\" | \"copy\" | \"dashboard\" | \"date\" | \"download\" | \"drag\" | \"etc\" | \"event\" | \"global\" | \"helpFilled\" | \"helpOutline\" | \"history\" | \"imageFill\" | \"imageLine\" | \"inline\" | \"line\" | \"location\" | \"logout\" | \"minus\" | \"notificationFilled\" | \"notificationOutline\" | \"notion\" | \"outLine\" | \"pageEdit\" | \"pageMove\" | \"pdf\" | \"remove\" | \"reset\" | \"robot\" | \"row\" | \"search\" | \"setting\" | \"star\" | \"synchronize\" | \"user\" | \"visibilityOff\" | \"visibilityOn\" | \"warehouseLine\" | \"warehouseSolid\" | \"warningFilled\" | \"warningOutline\" | \"youtube\" | undefined",
139
+ "references": {
140
+ "IconName": {
141
+ "location": "global",
142
+ "id": "global::IconName"
143
+ }
144
+ }
145
+ },
146
+ "required": false,
147
+ "optional": true,
148
+ "docs": {
149
+ "tags": [],
150
+ "text": ""
151
+ },
152
+ "getter": false,
153
+ "setter": false,
154
+ "reflect": false,
155
+ "attribute": "icon"
156
+ },
157
+ "ariaLabel": {
158
+ "type": "string",
159
+ "mutable": false,
160
+ "complexType": {
161
+ "original": "string",
162
+ "resolved": "string",
163
+ "references": {}
164
+ },
165
+ "required": false,
166
+ "optional": false,
167
+ "docs": {
168
+ "tags": [],
169
+ "text": ""
170
+ },
171
+ "getter": false,
172
+ "setter": false,
173
+ "reflect": false,
174
+ "attribute": "aria-label",
175
+ "defaultValue": "''"
176
+ },
177
+ "disabled": {
178
+ "type": "boolean",
179
+ "mutable": false,
180
+ "complexType": {
181
+ "original": "boolean",
182
+ "resolved": "boolean",
183
+ "references": {}
184
+ },
185
+ "required": false,
186
+ "optional": false,
187
+ "docs": {
188
+ "tags": [],
189
+ "text": ""
190
+ },
191
+ "getter": false,
192
+ "setter": false,
193
+ "reflect": false,
194
+ "attribute": "disabled",
195
+ "defaultValue": "false"
196
+ },
197
+ "type": {
198
+ "type": "string",
199
+ "mutable": false,
200
+ "complexType": {
201
+ "original": "ButtonV2Type",
202
+ "resolved": "\"button\" | \"reset\" | \"submit\"",
203
+ "references": {
204
+ "ButtonV2Type": {
205
+ "location": "import",
206
+ "path": "./sd-button-v2.config",
207
+ "id": "src/components/sd-button-v2/sd-button-v2.config.ts::ButtonV2Type",
208
+ "referenceLocation": "ButtonV2Type"
209
+ }
210
+ }
211
+ },
212
+ "required": false,
213
+ "optional": false,
214
+ "docs": {
215
+ "tags": [],
216
+ "text": ""
217
+ },
218
+ "getter": false,
219
+ "setter": false,
220
+ "reflect": false,
221
+ "attribute": "type",
222
+ "defaultValue": "'button'"
223
+ }
224
+ };
225
+ }
226
+ static get events() {
227
+ return [{
228
+ "method": "click",
229
+ "name": "sdClick",
230
+ "bubbles": true,
231
+ "cancelable": true,
232
+ "composed": true,
233
+ "docs": {
234
+ "tags": [],
235
+ "text": ""
236
+ },
237
+ "complexType": {
238
+ "original": "MouseEvent",
239
+ "resolved": "MouseEvent",
240
+ "references": {
241
+ "MouseEvent": {
242
+ "location": "global",
243
+ "id": "global::MouseEvent"
244
+ }
245
+ }
246
+ }
247
+ }];
248
+ }
249
+ }
@@ -3,7 +3,7 @@ export class SdCard {
3
3
  bordered = false;
4
4
  sdClass = '';
5
5
  render() {
6
- return (h(Fragment, { key: '155504b50cb1c21fc1f847af8a9e8b685f7881ef' }, h("div", { key: 'c461e3e40da44586da5e02ad508bf59942a9e82a', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, h("slot", { key: '0c0ee023155c08c565c3496c44699a900666b084' }))));
6
+ return (h(Fragment, { key: '3999f64f54054b3a1662fac4aacf9f6898acb957' }, h("div", { key: '666b8e849b92a5e75d259ff079237911fd591cdd', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, h("slot", { key: 'dc8f4ae80e9aca7a0aecaed81f45d40e7df2c067' }))));
7
7
  }
8
8
  static get is() { return "sd-card"; }
9
9
  static get originalStyleUrls() {
@@ -76,7 +76,7 @@ export class SdDatePicker {
76
76
  this.isOpen = false;
77
77
  };
78
78
  render() {
79
- return (h("div", { key: 'bb17d32f08d998e599c90cf1a7a35b17e19d3dc4', class: { 'sd-date-picker': true, 'sd-date-picker--disabled': this.disabled } }, h("sd-input", { key: 'ae028d5999a8df40a83b0d77d2dd5c2e0d0d8eb0', ref: el => (this.inputEl = el), value: this.value, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-picker__input", onClick: () => this.openMenu() }, h("sd-icon", { key: 'fbb954703d19161ab4507696a21278d5b4962b25', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: 'a335d5d317718e30be14fdb4aa1a63cb1347b929', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '38deef7127db10c91a51b8d6cb017d85fce25888', class: "sd-date-picker__menu" }, h("div", { key: 'f2ef8eb33086103df65b434360ecc1aac2949bf9', class: "sd-date-picker__header" }, h("div", { key: '8b949551a157de1e2ded7f1de621ccacd136126e', class: "year-nav" }, h("button", { key: 'b1bbd712094885223c21f030c32914d14f3904c2', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, h("sd-icon", { key: '7bb6f5f216d02cde59eff87fcaebc32eccbaac25', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: '645c12556fe1b9f1d1c8f7c4cfe73c3b65ad7431', class: "year-nav__current" }, this.currentYear), h("button", { key: 'f6cb58c23effd1aa0566aaacf41170482f03df51', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, h("sd-icon", { key: 'e92ef17b8d50e5115a159d2dd984e738a920f065', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '73018a9ca04929f4be017631e8e49a73cef71855', class: "month-nav" }, h("button", { key: '0983ca35486b8ad29c09740848b4288b602d0cd9', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, h("sd-icon", { key: '2c9257564786287f825c83391f3e05745c23cf9a', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: '0b9e048eeea62c452671b74db468aa5587e8ddbf', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), h("button", { key: '3ead15a341d5e361e7fb9b1cb2842e5a38b0e03c', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, h("sd-icon", { key: 'a3dbd8606dd51f72f1c315f2eea7ff089a95e6fa', name: "arrowRight", size: "12", color: "#CCCCCC" })))), h("div", { key: '6bbadc79157ae64bf492a965b78d014dcd968ea6', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("div", { key: day, class: "day" }, day)))), h("div", { key: '972c00769b40eff8015b68e0a9479a6c7c6009db', class: "sd-date-picker__body" }, [
79
+ return (h("div", { key: 'cd2f9c240e1e67806d1d9334937a905330d29a1f', class: { 'sd-date-picker': true, 'sd-date-picker--disabled': this.disabled } }, h("sd-input", { key: '1d77404494bd1fadf15d82dfabecbf61b73e5da8', ref: el => (this.inputEl = el), value: this.value, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-picker__input", onClick: () => this.openMenu() }, h("sd-icon", { key: '627b76b7d276cff34224a130bb2596ca6f2ff49e', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: '9dd006a9051c22dd8084ae9cb72e82c9c0b9be2b', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '5090eb945c7241f3224b3d2c7a5a96221cc46c04', class: "sd-date-picker__menu" }, h("div", { key: 'fa127745062937dfe4f04773b7d6afa74d13bd7a', class: "sd-date-picker__header" }, h("div", { key: '7c59917872614d1351a3dfe3783017bd6bc6b75c', class: "year-nav" }, h("button", { key: '9e27d2d76ca72820d57c2d9ebc40fa842129da22', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, h("sd-icon", { key: '17c8f872b7cfb2825d4c9528b5838487b97529f0', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: '41999c78367c90bc4d1d9bfdeb6e3d29d44df2c2', class: "year-nav__current" }, this.currentYear), h("button", { key: '52953ec66118afd480e7ce6207a551f18b61ac6d', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, h("sd-icon", { key: 'e740bcc2a23f4df850b4e2579ce0cae14419313c', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '7fac86c6405a3936a1f0bdb51e5ca61463ef463a', class: "month-nav" }, h("button", { key: '62e22a2063c7ea972bf74ea08af0d519a5250b3f', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, h("sd-icon", { key: 'fa53cbb5f2e61a3b1f0807639ce2c81516a1ca57', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: '57eb7eaf1e3a11ba69cf4ef4af9852541abd7902', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), h("button", { key: '08a783b73efd7a5df2638df7c8bcac5411b2e642', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, h("sd-icon", { key: '4a5bb4f4e6f3105fc9fda008eb51a47efe606b81', name: "arrowRight", size: "12", color: "#CCCCCC" })))), h("div", { key: '8dd540a7188716446b2e9bcda707d7458a2ea817', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("div", { key: day, class: "day" }, day)))), h("div", { key: 'f2da8d2325cb2fb9cb89d9c93d850cefc62235bf', class: "sd-date-picker__body" }, [
80
80
  ...this.calendar.prevMonthDays,
81
81
  ...this.calendar.days,
82
82
  ...this.calendar.afterMonthDays,
@@ -155,10 +155,10 @@ export class SdDateRangePicker {
155
155
  this.setHoverDate(hoverDate);
156
156
  }
157
157
  render() {
158
- return (h("div", { key: '96cd4e99ae976517e7b24c5ff3046af976adc5cb', class: {
158
+ return (h("div", { key: '1862958ea2e972700ea83ed61f0285f09cf52c02', class: {
159
159
  'sd-date-range-picker': true,
160
160
  'sd-date-range-picker--disabled': this.disabled,
161
- } }, h("sd-input", { key: 'a84838a1a84d990b289f0b753ccf3e2f45da4770', ref: el => (this.inputEl = el), value: !!this.dateRange[0] ? `${this.dateRange[0]} ~ ${this.dateRange[1]}` : '', label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-range-picker__input", onClick: () => this.openMenu() }, h("sd-icon", { key: 'd926c672dcf457a68ebe644b32c90a03ba29b175', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: '0af519c7ac2ade00972e23b9ecb0344989d87f51', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.closeMenu }, h("div", { key: 'd9109e573215092c6b386ae27ac7377c4347df4c', class: "sd-date-range-picker__menu" }, h("div", { key: 'ca4743a26ed0571bc3b63218a32a113e50dbd81a', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, h("button", { key: '6f0fe1ede6d171e749a241fbeec32056250709b9', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, h("sd-icon", { key: '821526a069a845f271b0e5db607f747efe4e610c', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("div", { key: 'e9402009c8b034953d7ff4be5a4eea64d7fed21d', class: "header-label" }, this.prevYear), h("button", { key: 'b752631ab64e32a4a39c13898cc3db5e25897c4b', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, h("sd-icon", { key: '62c6e0004ff1a0d8f260e11b9d17ea7ccca942ee', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '3a05a7e02664be8d9dfb85d0bada03a2d352af12', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index) => (h(Fragment, null, index === 1 && h("div", { class: "separator" }), h("div", { key: index, class: "calendar-container" }, h("div", { class: "calendar-header" }, h("button", { type: "button", name: "month", title: "Month", class: index === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index === 0 ? 'prev' : 'next') }, h("sd-icon", { name: index === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index === 0
161
+ } }, h("sd-input", { key: '808670f22b59401c0125dd1191a6180cc6f72799', ref: el => (this.inputEl = el), value: !!this.dateRange[0] ? `${this.dateRange[0]} ~ ${this.dateRange[1]}` : '', label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-range-picker__input", onClick: () => this.openMenu() }, h("sd-icon", { key: '123e8beb77c3fceaaa3a8d994f8a8539fe35d317', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: '448c174030598565f910df316002d78bdfec3f89', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.closeMenu }, h("div", { key: 'b5cf493587c7831e59a6156df87cb56be6bd585b', class: "sd-date-range-picker__menu" }, h("div", { key: 'c044d5377d0d88affecaa61eec2a2239b87158d8', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, h("button", { key: 'c497891fe1d06b8f6c1a79000edc0e4f4fd79735', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, h("sd-icon", { key: 'ad899e9daec0752b744bc73e9cbd99c6a731b7db', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("div", { key: '595ac699adc90e8b15775ce47a2cda8bbc2f5c25', class: "header-label" }, this.prevYear), h("button", { key: '684ce75f14b08cd57ce6f019a1dfb3ab384b0c11', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, h("sd-icon", { key: '31dde7526d0ee3e7abf965eea6f825d557e7c745', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '3e70334c95d29f302f2dc6d1cb7fbb3603c74a48', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index) => (h(Fragment, null, index === 1 && h("div", { class: "separator" }), h("div", { key: index, class: "calendar-container" }, h("div", { class: "calendar-header" }, h("button", { type: "button", name: "month", title: "Month", class: index === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index === 0 ? 'prev' : 'next') }, h("sd-icon", { name: index === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index === 0
162
162
  ? `${this.prevYear}.${String(this.prevMonth).padStart(2, '0')}`
163
163
  : `${this.nextYear}.${String(this.nextMonth).padStart(2, '0')}`), h("div", { class: "calendar-days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("sd-date-box", { key: day, date: day, disabled: true, class: "day" })))), h("div", { class: "calendar-body mt-12pxr grid grid-cols-7 gap-y-8pxr" }, [...calendar.prevMonthDays, ...calendar.days, ...calendar.afterMonthDays].map((day, idx) => (h("sd-date-box", { key: `prev${day}_${idx}`, date: !day ? '' : Number(day), selected: this.dateRange.some(date => date === this.formatDate(index, Number(day))), type: this.getDateBoxType(this.formatDate(index, Number(day))), isToday: today === this.formatDate(index, Number(day)), disabled: !day ? true : this.isDisabledDate(this.formatDate(index, Number(day))), inRange: this.isDateInRange(this.formatDate(index, Number(day))), isStartDate: this.dateRange[0] === this.formatDate(index, Number(day)), isEndDate: this.dateRange[1] === this.formatDate(index, Number(day)), onSdClick: () => this.handleDateClick(index, Number(day)), onSdMouseOver: () => this.handleDateHover(index, Number(day)) }))))))))))))));
164
164
  }
@@ -0,0 +1,62 @@
1
+ import buttonTokens from "../../tokens/generated/component.button.json";
2
+ import systemTokens from "../../tokens/generated/system.json";
3
+ import { BUTTON_CONFIG, PRESET_BORDER_COLORS as BUTTON_PRESET_BORDER_COLORS, PRESET_CONTENT_COLORS as BUTTON_PRESET_CONTENT_COLORS, PRESET_HOVER_BACKGROUNDS as BUTTON_PRESET_HOVER_BACKGROUNDS, getPresetName, } from "../sd-button-v2/sd-button-v2.config";
4
+ const UNSUPPORTED_DROPDOWN_BUTTON_NAMES = new Set([
5
+ 'neutral_xs',
6
+ 'neutral_sm',
7
+ 'neutral_md',
8
+ ]);
9
+ const DROPDOWN_BUTTON_NAMES = Object.keys(BUTTON_CONFIG).filter((name) => !name.endsWith('_lg') && !UNSUPPORTED_DROPDOWN_BUTTON_NAMES.has(name));
10
+ export const DROPDOWN_BUTTON_CONFIG = Object.fromEntries(DROPDOWN_BUTTON_NAMES.map(name => [name, BUTTON_CONFIG[name]]));
11
+ export const DROPDOWN_BUTTON_MIN_WIDTHS = {
12
+ xs: buttonTokens.dropdown.xs.minWidth,
13
+ sm: buttonTokens.dropdown.sm.minWidth,
14
+ md: buttonTokens.dropdown.md.minWidth,
15
+ };
16
+ export const PRESET_HOVER_BACKGROUNDS = BUTTON_PRESET_HOVER_BACKGROUNDS;
17
+ export const PRESET_CONTENT_COLORS = BUTTON_PRESET_CONTENT_COLORS;
18
+ export const PRESET_BORDER_COLORS = BUTTON_PRESET_BORDER_COLORS;
19
+ export const PRESET_DIVIDER_COLORS = {
20
+ primary: buttonTokens.brand.strong.dropdown.divider,
21
+ secondary: buttonTokens.brand.subtle.dropdown.divider,
22
+ primary_outline: PRESET_BORDER_COLORS.primary_outline,
23
+ neutral: buttonTokens.neutral.outline.border,
24
+ neutral_outline: PRESET_BORDER_COLORS.neutral_outline,
25
+ danger: buttonTokens.danger.strong.dropdown.divider,
26
+ danger_outline: PRESET_BORDER_COLORS.danger_outline,
27
+ };
28
+ const MENU_ITEM_COLOR = systemTokens.color.text.secondary;
29
+ const MENU_ITEM_ACTIVE_BACKGROUND = systemTokens.color.bg.accent.default;
30
+ const MENU_ITEM_ACTIVE_COLOR = systemTokens.color.text.inverse;
31
+ export const PRESET_MENU_ITEM_COLORS = {
32
+ primary: MENU_ITEM_COLOR,
33
+ secondary: MENU_ITEM_COLOR,
34
+ primary_outline: MENU_ITEM_COLOR,
35
+ neutral: MENU_ITEM_COLOR,
36
+ neutral_outline: MENU_ITEM_COLOR,
37
+ danger: MENU_ITEM_COLOR,
38
+ danger_outline: MENU_ITEM_COLOR,
39
+ };
40
+ export const PRESET_MENU_ITEM_ACTIVE_BACKGROUNDS = {
41
+ primary: MENU_ITEM_ACTIVE_BACKGROUND,
42
+ secondary: MENU_ITEM_ACTIVE_BACKGROUND,
43
+ primary_outline: MENU_ITEM_ACTIVE_BACKGROUND,
44
+ neutral: MENU_ITEM_ACTIVE_BACKGROUND,
45
+ neutral_outline: MENU_ITEM_ACTIVE_BACKGROUND,
46
+ danger: MENU_ITEM_ACTIVE_BACKGROUND,
47
+ danger_outline: MENU_ITEM_ACTIVE_BACKGROUND,
48
+ };
49
+ export const PRESET_MENU_ITEM_ACTIVE_COLORS = {
50
+ primary: MENU_ITEM_ACTIVE_COLOR,
51
+ secondary: MENU_ITEM_ACTIVE_COLOR,
52
+ primary_outline: MENU_ITEM_ACTIVE_COLOR,
53
+ neutral: MENU_ITEM_ACTIVE_COLOR,
54
+ neutral_outline: MENU_ITEM_ACTIVE_COLOR,
55
+ danger: MENU_ITEM_ACTIVE_COLOR,
56
+ danger_outline: MENU_ITEM_ACTIVE_COLOR,
57
+ };
58
+ export const DROPDOWN_DISABLED_BACKGROUND = buttonTokens.bg.disabled;
59
+ export const DROPDOWN_DISABLED_CONTENT = buttonTokens.content.disabled;
60
+ export const DROPDOWN_DISABLED_BORDER = buttonTokens.border.disabled;
61
+ export const isDropdownButtonName = (value) => value in DROPDOWN_BUTTON_CONFIG;
62
+ export const getDropdownButtonPreset = (value) => getPresetName(value);
@@ -0,0 +1,171 @@
1
+ sd-dropdown-button {
2
+ display: inline-flex;
3
+ width: fit-content;
4
+ height: fit-content;
5
+ }
6
+
7
+ .sd-dropdown-button {
8
+ display: inline-flex;
9
+ position: relative;
10
+ }
11
+
12
+ .sd-dropdown-button__trigger {
13
+ --sd-dropdown-button-height: var(--sd-button-md-height, 34px);
14
+ --sd-dropdown-button-padding-x: var(--sd-button-md-padding-x, 20px);
15
+ --sd-dropdown-button-gap: var(--sd-button-md-gap, 8px);
16
+ --sd-dropdown-button-font-family: var(--sd-button-md-typography-font-family, inherit);
17
+ --sd-dropdown-button-font-size: var(--sd-button-md-typography-font-size, 12px);
18
+ --sd-dropdown-button-font-weight: var(--sd-button-md-typography-font-weight, 500);
19
+ --sd-dropdown-button-text-decoration: var(--sd-button-md-typography-text-decoration, none);
20
+ --sd-dropdown-button-bg: #025497;
21
+ --sd-dropdown-button-bg-hover: #004177;
22
+ --sd-dropdown-button-border: transparent;
23
+ --sd-dropdown-button-content: #ffffff;
24
+ --sd-dropdown-button-divider: #006ac1;
25
+ --sd-dropdown-button-accent: #006ac1;
26
+ --sd-dropdown-button-min-width: 106px;
27
+ --sd-dropdown-button-disabled-bg: var(--sd-button-bg-disabled, $grey_30);
28
+ --sd-dropdown-button-disabled-content: var(--sd-button-content-disabled, $grey_65);
29
+ --sd-dropdown-button-disabled-border: var(--sd-button-border-disabled, $grey_45);
30
+ display: inline-flex;
31
+ align-items: stretch;
32
+ justify-content: space-between;
33
+ min-width: var(--sd-dropdown-button-min-width);
34
+ min-height: var(--sd-dropdown-button-height);
35
+ padding: 0;
36
+ border: var(--sd-button-border-width-default, 1px) solid var(--sd-dropdown-button-border);
37
+ border-radius: var(--sd-button-radius-default, 4px);
38
+ background: var(--sd-dropdown-button-bg);
39
+ color: var(--sd-dropdown-button-content);
40
+ cursor: pointer;
41
+ box-sizing: border-box;
42
+ font-family: var(--sd-dropdown-button-font-family);
43
+ font-size: var(--sd-dropdown-button-font-size);
44
+ font-weight: var(--sd-dropdown-button-font-weight);
45
+ line-height: 1;
46
+ text-decoration: var(--sd-dropdown-button-text-decoration);
47
+ transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
48
+ white-space: nowrap;
49
+ }
50
+ .sd-dropdown-button__trigger:hover:not(.sd-dropdown-button__trigger--disabled) {
51
+ background: var(--sd-dropdown-button-bg-hover);
52
+ }
53
+ .sd-dropdown-button__trigger:focus-visible {
54
+ outline: 0;
55
+ box-shadow: 0 0 0 2px var(--sd-dropdown-button-accent);
56
+ }
57
+ .sd-dropdown-button__trigger--xs {
58
+ --sd-dropdown-button-height: var(--sd-button-xs-height, 24px);
59
+ --sd-dropdown-button-padding-x: var(--sd-button-xs-padding-x, 8px);
60
+ --sd-dropdown-button-gap: var(--sd-button-xs-gap, 4px);
61
+ --sd-dropdown-button-font-family: var(--sd-button-xs-typography-font-family, inherit);
62
+ --sd-dropdown-button-font-size: var(--sd-button-xs-typography-font-size, 12px);
63
+ --sd-dropdown-button-font-weight: var(--sd-button-xs-typography-font-weight, 500);
64
+ --sd-dropdown-button-text-decoration: var(--sd-button-xs-typography-text-decoration, none);
65
+ }
66
+ .sd-dropdown-button__trigger--sm {
67
+ --sd-dropdown-button-height: var(--sd-button-sm-height, 28px);
68
+ --sd-dropdown-button-padding-x: var(--sd-button-sm-padding-x, 12px);
69
+ --sd-dropdown-button-gap: var(--sd-button-sm-gap, 6px);
70
+ --sd-dropdown-button-font-family: var(--sd-button-sm-typography-font-family, inherit);
71
+ --sd-dropdown-button-font-size: var(--sd-button-sm-typography-font-size, 12px);
72
+ --sd-dropdown-button-font-weight: var(--sd-button-sm-typography-font-weight, 500);
73
+ --sd-dropdown-button-text-decoration: var(--sd-button-sm-typography-text-decoration, none);
74
+ }
75
+ .sd-dropdown-button__trigger--md {
76
+ --sd-dropdown-button-height: var(--sd-button-md-height, 34px);
77
+ --sd-dropdown-button-padding-x: var(--sd-button-md-padding-x, 20px);
78
+ --sd-dropdown-button-gap: var(--sd-button-md-gap, 8px);
79
+ --sd-dropdown-button-font-family: var(--sd-button-md-typography-font-family, inherit);
80
+ --sd-dropdown-button-font-size: var(--sd-button-md-typography-font-size, 16px);
81
+ --sd-dropdown-button-font-weight: var(--sd-button-md-typography-font-weight, 500);
82
+ --sd-dropdown-button-text-decoration: var(--sd-button-md-typography-text-decoration, none);
83
+ }
84
+ .sd-dropdown-button__trigger--disabled {
85
+ border-color: var(--sd-dropdown-button-disabled-border);
86
+ background: var(--sd-dropdown-button-disabled-bg);
87
+ color: var(--sd-dropdown-button-disabled-content);
88
+ cursor: not-allowed;
89
+ }
90
+ .sd-dropdown-button__trigger--disabled .sd-dropdown-button__trigger-divider {
91
+ background: var(--sd-dropdown-button-disabled-border);
92
+ }
93
+
94
+ .sd-dropdown-button__trigger-label,
95
+ .sd-dropdown-button__trigger-icon {
96
+ display: inline-flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ }
100
+
101
+ .sd-dropdown-button__trigger-label {
102
+ flex: 1 1 auto;
103
+ min-width: 0;
104
+ padding: 0 var(--sd-dropdown-button-padding-x);
105
+ }
106
+
107
+ .sd-dropdown-button__trigger-divider {
108
+ align-self: stretch;
109
+ width: 1px;
110
+ height: auto;
111
+ background: var(--sd-dropdown-button-divider);
112
+ opacity: 0.9;
113
+ }
114
+
115
+ .sd-dropdown-button__trigger-icon {
116
+ flex: 0 0 auto;
117
+ min-width: calc(var(--sd-dropdown-button-height) - 2px);
118
+ padding: 0 calc(var(--sd-dropdown-button-gap) + 2px);
119
+ }
120
+
121
+ .sd-dropdown-button__menu {
122
+ display: grid;
123
+ width: max-content;
124
+ min-width: max-content;
125
+ max-width: calc(100vw - 24px);
126
+ padding: 4px 0;
127
+ border: 0;
128
+ border-radius: 4px;
129
+ background: #FFFFFF;
130
+ box-shadow: 2px 2px 12px 2px rgba(0, 0, 0, 0.1019607843);
131
+ box-sizing: border-box;
132
+ overflow: hidden;
133
+ }
134
+
135
+ .sd-dropdown-button__menu-item {
136
+ display: inline-flex;
137
+ align-items: center;
138
+ gap: 8px;
139
+ min-height: 28px;
140
+ width: 100%;
141
+ padding: 0 12px;
142
+ border: 0;
143
+ border-radius: 0;
144
+ background: transparent;
145
+ color: var(--sd-dropdown-button-menu-item-color);
146
+ cursor: pointer;
147
+ box-sizing: border-box;
148
+ font: inherit;
149
+ text-align: left;
150
+ transition: background-color 0.15s ease, color 0.15s ease;
151
+ }
152
+ .sd-dropdown-button__menu-item--active {
153
+ background: var(--sd-dropdown-button-menu-item-active-bg);
154
+ color: var(--sd-dropdown-button-menu-item-active-color);
155
+ }
156
+ .sd-dropdown-button__menu-item--disabled {
157
+ color: var(--sd-dropdown-button-disabled-content);
158
+ cursor: not-allowed;
159
+ }
160
+
161
+ .sd-dropdown-button__menu-item-icon {
162
+ flex: 0 0 auto;
163
+ }
164
+
165
+ .sd-dropdown-button__menu-item-label {
166
+ display: inline-flex;
167
+ align-items: center;
168
+ min-width: 0;
169
+ white-space: nowrap;
170
+ font-size: 12px;
171
+ }