@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
@@ -1,54 +1,112 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D-PnW6jc.js');
3
+ var index = require('./index-Qvv0fGgj.js');
4
4
 
5
- const sdTagCss = () => `:host{display:inline-block}:host([full-width]){display:block}.sd-tag{display:inline-flex;width:100%;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid transparent;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box}.sd-tag__content{display:inline-block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sd-tag--custom-color{background:var(--tag-bg-color);color:var(--tag-text-color)}.sd-tag--sm{padding:0 6px;font-size:11px;line-height:18px;height:20px;border-radius:4px}.sd-tag--md{padding:0 8px;font-size:12px;font-weight:700;line-height:20px;height:24px;border-radius:4px}.sd-tag--lg{padding:0 10px;font-size:14px;font-weight:700;line-height:24px;min-height:28px;border-radius:5px}.sd-tag--rounded.sd-tag--sm{border-radius:20px}.sd-tag--rounded.sd-tag--md{border-radius:20px}.sd-tag--rounded.sd-tag--lg{border-radius:15px}`;
6
-
7
- const TAG_COLORS = {
8
- grey: 'bg-grey_20 text-grey_70',
9
- red: 'bg-red_15 text-red_70',
10
- orange: 'bg-orange_10 text-orange_65',
11
- yellow: 'bg-yellow_10 text-yellow_70',
12
- green: 'bg-green_15 text-green_75',
13
- blue: 'bg-brilliantblue_20 text-brilliantblue_75',
14
- darkblue: 'bg-oceanblue_15 text-oceanblue_70',
15
- indigo: 'bg-brilliantblue_10 text-brilliantblue_85',
5
+ const TAG_SHAPES = ['square', 'pill'];
6
+ const TAG_SIZES = ['sm', 'md', 'lg'];
7
+ const TAG_COLORS = [
8
+ 'grey',
9
+ 'red',
10
+ 'orange',
11
+ 'yellow',
12
+ 'green',
13
+ 'blue',
14
+ 'darkblue',
15
+ 'indigo',
16
+ ];
17
+ const TAG_COLOR_CONFIG = {
18
+ grey: { background: '#EEEEEE', content: '#737373', icon: '#737373' },
19
+ red: { background: '#FCEFEF', content: '#FB4444', icon: '#FB4444' },
20
+ orange: { background: '#FEF1EA', content: '#FF6B00', icon: '#FF6B00' },
21
+ yellow: { background: '#FFF7DD', content: '#916C0D', icon: '#CA9611' },
22
+ green: { background: '#E8F9EF', content: '#00973C', icon: '#12B553' },
23
+ blue: { background: '#E6F1FF', content: '#0075FF', icon: '#0075FF' },
24
+ darkblue: { background: '#EAF5FE', content: '#006AC1', icon: '#006AC1' },
25
+ indigo: { background: '#EFF6FF', content: '#004290', icon: '#004290' },
26
+ };
27
+ const SQUARE_SIZE_CONFIG = {
28
+ sm: {
29
+ height: '20px',
30
+ paddingX: '6px',
31
+ gap: '4px',
32
+ fontSize: '11px',
33
+ fontWeight: '500',
34
+ iconSize: 12,
35
+ radius: '4px',
36
+ },
37
+ md: {
38
+ height: '24px',
39
+ paddingX: '8px',
40
+ gap: '4px',
41
+ fontSize: '12px',
42
+ fontWeight: '700',
43
+ iconSize: 16,
44
+ radius: '4px',
45
+ },
46
+ lg: {
47
+ height: '28px',
48
+ paddingX: '10px',
49
+ gap: '4px',
50
+ fontSize: '14px',
51
+ fontWeight: '700',
52
+ iconSize: 16,
53
+ radius: '5px',
54
+ },
16
55
  };
56
+ const PILL_SIZE_CONFIG = {
57
+ sm: { ...SQUARE_SIZE_CONFIG.sm, radius: '999px' },
58
+ md: { ...SQUARE_SIZE_CONFIG.md, radius: '999px' },
59
+ lg: { ...SQUARE_SIZE_CONFIG.lg, radius: '999px' },
60
+ };
61
+ const TAG_CONFIG = Object.fromEntries(TAG_SHAPES.flatMap(shape => TAG_SIZES.flatMap(size => TAG_COLORS.map(color => {
62
+ const sizeConfig = shape === 'square' ? SQUARE_SIZE_CONFIG[size] : PILL_SIZE_CONFIG[size];
63
+ return [
64
+ `${shape}_${size}_${color}`,
65
+ {
66
+ shape,
67
+ size,
68
+ color,
69
+ ...sizeConfig,
70
+ ...TAG_COLOR_CONFIG[color],
71
+ },
72
+ ];
73
+ }))));
74
+ const isTagName = (value) => Object.prototype.hasOwnProperty.call(TAG_CONFIG, value);
75
+
76
+ const sdTagCss = () => `sd-tag{display:inline-flex;width:fit-content;height:fit-content}.sd-tag{display:inline-flex;align-items:center;justify-content:center;gap:var(--sd-tag-gap, 5px);min-height:var(--sd-tag-height, 24px);padding:0 var(--sd-tag-padding-x, 8px);border-radius:var(--sd-tag-radius, 4px);background:var(--sd-tag-background, #f3f3f3);color:var(--sd-tag-content, #7a7a7a);box-sizing:border-box;white-space:nowrap;-webkit-user-select:none;user-select:none}.sd-tag__icon{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center}.sd-tag__label{display:inline-flex;align-items:center;justify-content:center;min-width:0;font-size:var(--sd-tag-font-size, 12px);font-weight:var(--sd-tag-font-weight, 700);line-height:1}`;
77
+
17
78
  const SdTag = class {
18
79
  constructor(hostRef) {
19
80
  index.registerInstance(this, hostRef);
20
81
  }
21
- get el() { return index.getElement(this); }
22
- size = 'md';
23
- color = 'grey';
24
- rounded = false;
82
+ name = 'square_md_grey';
25
83
  label = '';
26
- bgColor;
27
- textColor;
28
- getTagClasses() {
29
- const classes = ['sd-tag', `sd-tag--${this.size}`];
30
- if (this.rounded) {
31
- classes.push('sd-tag--rounded');
32
- }
33
- if (this.color && !this.bgColor && !this.textColor) {
34
- classes.push(TAG_COLORS[this.color]);
35
- }
36
- if (this.bgColor || this.textColor) {
37
- classes.push('sd-tag--custom-color');
84
+ icon;
85
+ isLeft = true;
86
+ get resolvedConfig() {
87
+ if (!isTagName(this.name)) {
88
+ throw new Error(`Invalid sd-tag name: ${this.name}`);
38
89
  }
39
- return classes.join(' ');
90
+ return TAG_CONFIG[this.name];
40
91
  }
41
- renderContent() {
42
- return [
43
- index.h("span", { class: "sd-tag__content" }, index.h("slot", null, this.label)),
44
- ];
92
+ renderIcon(color, size) {
93
+ if (!this.icon)
94
+ return null;
95
+ return index.h("sd-icon", { class: "sd-tag__icon", name: this.icon, size: size, color: color });
45
96
  }
46
97
  render() {
47
- const tagClasses = this.getTagClasses();
48
- return (index.h("span", { key: '9745415753fe657bf5e7e5ca9eb6e02f8c953bfd', class: tagClasses, style: {
49
- '--tag-bg-color': this.bgColor,
50
- '--tag-text-color': this.textColor,
51
- }, "aria-label": this.label || 'tag' }, this.renderContent()));
98
+ const config = this.resolvedConfig;
99
+ const iconNode = this.renderIcon(config.icon, config.iconSize);
100
+ return (index.h("span", { key: '5f9ee005b146997dd13bb3e6a06680ff8574bd14', class: "sd-tag", style: {
101
+ '--sd-tag-background': config.background,
102
+ '--sd-tag-content': config.content,
103
+ '--sd-tag-height': config.height,
104
+ '--sd-tag-padding-x': config.paddingX,
105
+ '--sd-tag-gap': config.gap,
106
+ '--sd-tag-font-size': config.fontSize,
107
+ '--sd-tag-font-weight': config.fontWeight,
108
+ '--sd-tag-radius': config.radius,
109
+ }, "aria-label": this.label || 'tag' }, this.icon && this.isLeft && iconNode, index.h("span", { key: 'b123ab6ac015db640e4dc3edc5e2cf90ec5e0ecf', class: "sd-tag__label" }, this.label), this.icon && !this.isLeft && iconNode));
52
110
  }
53
111
  };
54
112
  SdTag.style = sdTagCss();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D-PnW6jc.js');
3
+ var index = require('./index-Qvv0fGgj.js');
4
4
  var resolveColor = require('./resolveColor-4RlaGD62.js');
5
5
 
6
6
  const sdToastCss = () => `sd-toast{display:block;width:fit-content;height:fit-content}sd-toast .sd-toast{display:flex;width:fit-content;align-items:center;gap:16px;padding:12px 24px;border-radius:4px;background-color:var(--sd-toast-bg);color:var(--sd-toast-text);transition:opacity 0.2s ease, visibility 0.2s ease;box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}sd-toast .sd-toast--hidden{opacity:0;visibility:hidden;pointer-events:none}sd-toast .sd-toast__icon{display:flex;align-items:center;flex-shrink:0}sd-toast .sd-toast__content{display:flex;flex:1}sd-toast .sd-toast__message{font-size:14px;line-height:20px;font-weight:400}sd-toast .sd-toast__link{font-size:14px;line-height:20px;color:var(--sd-toast-text);text-decoration:underline;cursor:pointer;transition:opacity 0.2s ease;margin-left:4px}sd-toast .sd-toast__link:hover{opacity:0.8}sd-toast .sd-toast__button{flex-shrink:0}sd-toast .sd-toast__button button{color:var(--button-text-color, inherit) !important}sd-toast .sd-toast__close{display:flex;align-items:center;justify-content:center;padding:4px;background-color:transparent;border:none;cursor:pointer;transition:opacity 0.2s ease;flex-shrink:0}sd-toast .sd-toast__close:hover{opacity:0.7}sd-toast .sd-toast__close:active{opacity:0.5}`;
@@ -49,10 +49,10 @@ const SdToast = class {
49
49
  background: resolveColor.resolveColor(colorTokens.background),
50
50
  text: resolveColor.resolveColor(colorTokens.text),
51
51
  };
52
- return (index.h("div", { key: '8118f67a55a3080ea91ffdfbd929bbe3464ab044', style: {
52
+ return (index.h("div", { key: '16579a21c0eec78e609b0cf82fcf2d040b8b3388', style: {
53
53
  '--sd-toast-bg': colors.background,
54
54
  '--sd-toast-text': colors.text,
55
- } }, index.h("div", { key: 'f05c16b0c8ef6de2d62161f80591cb3a82c24434', class: this.getContainerClasses(), role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (index.h("div", { key: 'b16fee2031c4093c263229d2ef07ad8f6e69778b', class: "sd-toast__icon" }, index.h("sd-icon", { key: 'cd8b4c4d9cbc329fdfc99236ca56a49658c0ca8c', name: this.icon, size: 16, color: colors.text }))), index.h("div", { key: '888748872d886745ace2ef8491d7098528df8a46', class: "sd-toast__content" }, index.h("span", { key: '31b285a6b6a03b833577b4a9fb860fd76e066cb6', class: "sd-toast__message" }, this.message)), this.link && (index.h("a", { key: '61d1aacf70e7062abbedd2364474e7da990f485f', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (index.h("sd-button", { key: '94aa75ef25ee18f0577d5539337152d654dab5c1', class: `sd-toast__button ${this.type === 'basicLight' ? 'text-white' : ''}`, label: this.buttonLabel, variant: "primary", color: this.type === 'basicLight' ? 'oceanblue_75' : 'white', size: "sm", onSdClick: this.handleButtonClick, style: this.type !== 'basicLight' ? { '--button-text-color': resolveColor.resolveColor('grey_95') } : {} })), this.useClose && (index.h("button", { key: 'db0b83f7030feb5459597156c2d25f3437b91904', type: "button", class: "sd-toast__close", onClick: this.handleClose, "aria-label": "Close", title: "Close" }, index.h("sd-icon", { key: 'a3aab6c19c32043182f2d05d2583271520458493', name: "close", size: 12, color: colors.text }))))));
55
+ } }, index.h("div", { key: '108e47983e1ad99ed462a4fa00c29aa9e3393b8b', class: this.getContainerClasses(), role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (index.h("div", { key: 'd034c9aaafc272d51de96de6ccefe49208aba7e3', class: "sd-toast__icon" }, index.h("sd-icon", { key: '14b97c4cbe7134f67d919abcf4e10cf673dd909d', name: this.icon, size: 16, color: colors.text }))), index.h("div", { key: '1cecb89bdb19742a7df04625e8f070cd2c207b5e', class: "sd-toast__content" }, index.h("span", { key: '1daf2a2bea963b7b68c580b30c4c8fa2f3a26c8f', class: "sd-toast__message" }, this.message)), this.link && (index.h("a", { key: '8f7961c2c14806aa1323e378f57d74e47614772c', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (index.h("sd-button", { key: '89cba5e58ff368aea05130b799d903d4cf85b120', class: `sd-toast__button ${this.type === 'basicLight' ? 'text-white' : ''}`, label: this.buttonLabel, variant: "primary", color: this.type === 'basicLight' ? 'oceanblue_75' : 'white', size: "sm", onSdClick: this.handleButtonClick, style: this.type !== 'basicLight' ? { '--button-text-color': resolveColor.resolveColor('grey_95') } : {} })), this.useClose && (index.h("button", { key: '0e7fc0737824b61166cbff82a410948ca1745842', type: "button", class: "sd-toast__close", onClick: this.handleClose, "aria-label": "Close", title: "Close" }, index.h("sd-icon", { key: '82d203f6eb584cb04566e8f3b1bd7a86ca50bba4', name: "close", size: 12, color: colors.text }))))));
56
56
  }
57
57
  };
58
58
  SdToast.style = sdToastCss();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D-PnW6jc.js');
3
+ var index = require('./index-Qvv0fGgj.js');
4
4
 
5
5
  const sdToggleButtonCss = () => `sd-toggle-button{display:inline-block;line-height:0}.sd-toggle-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:4px 12px;gap:6px;border-radius:14px;border:1px solid #888888;background-color:#FFFFFF;color:#737373;font-size:12px;line-height:20px;font-weight:400;cursor:pointer;transition:border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;white-space:nowrap;user-select:none;box-sizing:border-box}.sd-toggle-button--active{border-color:#0075FF;color:#0075FF}.sd-toggle-button--disabled{background-color:#EEEEEE;border-color:#CCCCCC;color:#888888;cursor:not-allowed}.sd-toggle-button--disabled.sd-toggle-button--active{background-color:#EEEEEE;border-color:#CCCCCC;color:#888888}.sd-toggle-button:hover:not(.sd-toggle-button--disabled):not(.sd-toggle-button--active){border-color:#737373}.sd-toggle-button:hover:not(.sd-toggle-button--disabled).sd-toggle-button--active{border-color:#005CC9;color:#005CC9}`;
6
6
 
@@ -41,7 +41,7 @@ const SdToggleButton = class {
41
41
  this.change.emit(newValue);
42
42
  };
43
43
  render() {
44
- return (index.h("label", { key: '6f8d9e738490ef344ff26a4026b9de17af68041e', class: this.buttonClasses, "aria-label": this.label || 'toggle button' }, this.label, index.h("input", { key: '6d9d45c451301c4635e610fd70280be1fe65b316', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
44
+ return (index.h("label", { key: '174a62904591e559232574d207ff4ad9c0113ad8', class: this.buttonClasses, "aria-label": this.label || 'toggle button' }, this.label, index.h("input", { key: '7bbd96a0563a8cadcfb7ab9d8e1fb3767508d6bf', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
45
45
  }
46
46
  };
47
47
  SdToggleButton.style = sdToggleButtonCss();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D-PnW6jc.js');
3
+ var index = require('./index-Qvv0fGgj.js');
4
4
 
5
5
  const sdToggleCss = () => `sd-toggle{display:inline-block;height:20px;line-height:0}sd-toggle .sd-toggle{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px}sd-toggle .sd-toggle>input{display:none}sd-toggle .sd-toggle__label{font-size:12px;color:#333333;line-height:20px}sd-toggle .sd-toggle__track{width:36px;height:20px;border-radius:12px;background:#CCCCCC;position:relative;transition:background-color 0.2s ease}sd-toggle .sd-toggle__thumb{width:16px;height:16px;border-radius:50%;background:white;position:absolute;top:2px;left:2px;transition:transform 0.2s ease}sd-toggle .sd-toggle--checked .sd-toggle__track{background:#0075FF}sd-toggle .sd-toggle--checked .sd-toggle__thumb{transform:translateX(16px)}sd-toggle .sd-toggle--disabled{cursor:not-allowed}sd-toggle .sd-toggle--disabled.sd-toggle--checked .sd-toggle__track{background:#BBDAFF}sd-toggle .sd-toggle--disabled.sd-toggle--unchecked .sd-toggle__track{background:#EEEEEE}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--checked .sd-toggle__track{background:#005CC9}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--unchecked .sd-toggle__track{background:#BBBBBB}`;
6
6
 
@@ -37,7 +37,7 @@ const SdToggle = class {
37
37
  this.change.emit(newValue);
38
38
  };
39
39
  render() {
40
- return (index.h("label", { key: 'c0fcd12c231fdb995b5edae756157c58b352fd0f', "aria-label": this.label || 'toggle', class: this.toggleClasses }, index.h("input", { key: 'e50042ae04830f4c276d8140725ab62cc2d0490d', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), this.label && index.h("span", { key: '99f9506a2dcea8cfd85aabf6b71243c116a2bf11', class: "sd-toggle__label" }, this.label), index.h("div", { key: '424e1ae78d5684051bd7a2b3ba89f6760f773f1c', class: "sd-toggle__track" }, index.h("div", { key: '29aab89e58022ce22f026fb694bb9b1e4531d8cf', class: "sd-toggle__thumb" }))));
40
+ return (index.h("label", { key: '9a8a0221e093040e446bc193f682070aa1f95c6c', "aria-label": this.label || 'toggle', class: this.toggleClasses }, index.h("input", { key: '4a2e3c626bfa4e439676cc40df619bd284d0178a', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), this.label && index.h("span", { key: '1eecfd810c17610604d6cf93c6f664690f17ff6a', class: "sd-toggle__label" }, this.label), index.h("div", { key: '9f082e2f6036e338f2afb6fb719b4ff8d3a01d99', class: "sd-toggle__track" }, index.h("div", { key: '1d8b1bd11b05091a368c681ead7e79a0e453d510', class: "sd-toggle__thumb" }))));
41
41
  }
42
42
  };
43
43
  SdToggle.style = sdToggleCss();
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ /* @ts-self-types="./index.d.ts" */
4
+ let urlAlphabet =
5
+ 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
6
+ let nanoid = (size = 21) => {
7
+ let id = '';
8
+ let i = size | 0;
9
+ while (i--) {
10
+ id += urlAlphabet[(Math.random() * 64) | 0];
11
+ }
12
+ return id
13
+ };
14
+
15
+ class SelectKeyboardNavigation {
16
+ isSearchable;
17
+ filteredOptions;
18
+ constructor(isSearchable, filteredOptions) {
19
+ this.isSearchable = isSearchable;
20
+ this.filteredOptions = filteredOptions;
21
+ }
22
+ getNavigationBounds() {
23
+ return {
24
+ minIndex: this.isSearchable ? -1 : 0,
25
+ maxIndex: this.filteredOptions.length - 1,
26
+ };
27
+ }
28
+ getNextIndex(currentIndex, direction) {
29
+ const { minIndex, maxIndex } = this.getNavigationBounds();
30
+ if (direction === 'ArrowUp') {
31
+ return currentIndex > minIndex ? currentIndex - 1 : maxIndex;
32
+ }
33
+ else {
34
+ return currentIndex < maxIndex ? currentIndex + 1 : minIndex;
35
+ }
36
+ }
37
+ }
38
+
39
+ exports.SelectKeyboardNavigation = SelectKeyboardNavigation;
40
+ exports.nanoid = nanoid;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D-PnW6jc.js');
3
+ var index = require('./index-Qvv0fGgj.js');
4
4
 
5
5
  const TooltipArrow = (props) => (index.h("svg", { width: "16", height: "12", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, index.h("path", { d: "M8.83205 10.7519C8.43623 11.3457 7.56377 11.3457 7.16795 10.7519L1.04907e-06 -1.39876e-06L16 0L8.83205 10.7519Z", fill: "currentColor" })));
6
6
 
@@ -13,12 +13,14 @@
13
13
  "components/sd-select-multiple-group/sd-select-multiple-group.js",
14
14
  "components/sd-table/sd-table.js",
15
15
  "components/sd-tabs/sd-tabs.js",
16
- "components/sd-tag/sd-tag.js",
17
16
  "components/sd-toast/sd-toast.js",
18
17
  "components/sd-badge/sd-badge.js",
18
+ "components/sd-button-v2/sd-button-v2.js",
19
19
  "components/sd-card/sd-card.js",
20
20
  "components/sd-date-picker/sd-date-picker.js",
21
21
  "components/sd-date-range-picker/sd-date-range-picker.js",
22
+ "components/sd-portal/sd-portal.js",
23
+ "components/sd-dropdown-button/sd-dropdown-button.js",
22
24
  "components/sd-field/sd-field.js",
23
25
  "components/sd-file-picker/sd-file-picker.js",
24
26
  "components/sd-floating-portal/sd-floating-portal.js",
@@ -29,13 +31,13 @@
29
31
  "components/sd-number-input/sd-number-input.js",
30
32
  "components/sd-pagination/sd-pagination.js",
31
33
  "components/sd-popover/sd-popover.js",
32
- "components/sd-portal/sd-portal.js",
33
34
  "components/sd-progress/sd-progress.js",
34
35
  "components/sd-select/sd-select-dropdown/sd-select-dropdown.js",
35
36
  "components/sd-select/sd-select-option/sd-select-option.js",
36
37
  "components/sd-select/sd-select-search-input/sd-select-search-input.js",
37
38
  "components/sd-select-multiple/sd-select-multiple.js",
38
39
  "components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js",
40
+ "components/sd-tag/sd-tag.js",
39
41
  "components/sd-textarea/sd-textarea.js",
40
42
  "components/sd-toggle/sd-toggle.js",
41
43
  "components/sd-toggle-button/sd-toggle-button.js"
@@ -6,7 +6,7 @@ export class SdBadge {
6
6
  label = '';
7
7
  render() {
8
8
  const resolvedColor = resolveColor(this.color);
9
- return (h("div", { key: 'eeb4866526fa9e628da7182d6caca317015d6452', class: `sd-badge sd-badge--${this.size}`, style: { '--sd-badge-color': resolvedColor } }, h("div", { key: 'b14add6e76ab27eba5883c641e0ffa840e170ba2', class: "sd-badge__dot" }), h("div", { key: 'a53d4d487a6c97f87189c555f0a95640186fdf93', class: "sd-badge__label" }, this.label)));
9
+ return (h("div", { key: 'a83ffeb7171c32bafc3312d95c9fed576d676a0d', class: `sd-badge sd-badge--${this.size}`, style: { '--sd-badge-color': resolvedColor } }, h("div", { key: 'b6d84b2391d0e03edcab957b4edf73c765c04c35', class: "sd-badge__dot" }), h("div", { key: 'f06b5639135d87d7346b46c90a28ddeb40b05c9f', class: "sd-badge__label" }, this.label)));
10
10
  }
11
11
  static get is() { return "sd-badge"; }
12
12
  static get originalStyleUrls() {
@@ -0,0 +1,190 @@
1
+ import buttonTokens from "../../tokens/generated/component.button.json";
2
+ export const BUTTON_FOCUS_RING_COLOR = '#0075FF';
3
+ const PRESET_DEFAULT_COLORS = {
4
+ primary: buttonTokens.brand.strong.bg.default,
5
+ secondary: buttonTokens.brand.subtle.bg.default,
6
+ primary_outline: buttonTokens.brand.outline.bg.default,
7
+ neutral: buttonTokens.neutral.subtle.bg.default,
8
+ neutral_outline: buttonTokens.neutral.outline.bg.default,
9
+ danger: buttonTokens.danger.strong.bg.default,
10
+ danger_outline: buttonTokens.danger.outline.bg.default,
11
+ };
12
+ export const BUTTON_CONFIG = {
13
+ primary_xs: {
14
+ variant: 'primary',
15
+ size: 'xs',
16
+ color: PRESET_DEFAULT_COLORS.primary,
17
+ },
18
+ secondary_xs: {
19
+ variant: 'primary',
20
+ size: 'xs',
21
+ color: PRESET_DEFAULT_COLORS.secondary,
22
+ },
23
+ primary_outline_xs: {
24
+ variant: 'outline',
25
+ size: 'xs',
26
+ color: PRESET_DEFAULT_COLORS.primary_outline,
27
+ },
28
+ neutral_xs: {
29
+ variant: 'primary',
30
+ size: 'xs',
31
+ color: PRESET_DEFAULT_COLORS.neutral,
32
+ },
33
+ neutral_outline_xs: {
34
+ variant: 'outline',
35
+ size: 'xs',
36
+ color: PRESET_DEFAULT_COLORS.neutral_outline,
37
+ },
38
+ danger_xs: {
39
+ variant: 'primary',
40
+ size: 'xs',
41
+ color: PRESET_DEFAULT_COLORS.danger,
42
+ },
43
+ danger_outline_xs: {
44
+ variant: 'outline',
45
+ size: 'xs',
46
+ color: PRESET_DEFAULT_COLORS.danger_outline,
47
+ },
48
+ primary_sm: {
49
+ variant: 'primary',
50
+ size: 'sm',
51
+ color: PRESET_DEFAULT_COLORS.primary,
52
+ },
53
+ secondary_sm: {
54
+ variant: 'primary',
55
+ size: 'sm',
56
+ color: PRESET_DEFAULT_COLORS.secondary,
57
+ },
58
+ primary_outline_sm: {
59
+ variant: 'outline',
60
+ size: 'sm',
61
+ color: PRESET_DEFAULT_COLORS.primary_outline,
62
+ },
63
+ neutral_sm: {
64
+ variant: 'primary',
65
+ size: 'sm',
66
+ color: PRESET_DEFAULT_COLORS.neutral,
67
+ },
68
+ neutral_outline_sm: {
69
+ variant: 'outline',
70
+ size: 'sm',
71
+ color: PRESET_DEFAULT_COLORS.neutral_outline,
72
+ },
73
+ danger_sm: {
74
+ variant: 'primary',
75
+ size: 'sm',
76
+ color: PRESET_DEFAULT_COLORS.danger,
77
+ },
78
+ danger_outline_sm: {
79
+ variant: 'outline',
80
+ size: 'sm',
81
+ color: PRESET_DEFAULT_COLORS.danger_outline,
82
+ },
83
+ primary_md: {
84
+ variant: 'primary',
85
+ size: 'md',
86
+ color: PRESET_DEFAULT_COLORS.primary,
87
+ },
88
+ secondary_md: {
89
+ variant: 'primary',
90
+ size: 'md',
91
+ color: PRESET_DEFAULT_COLORS.secondary,
92
+ },
93
+ primary_outline_md: {
94
+ variant: 'outline',
95
+ size: 'md',
96
+ color: PRESET_DEFAULT_COLORS.primary_outline,
97
+ },
98
+ neutral_md: {
99
+ variant: 'primary',
100
+ size: 'md',
101
+ color: PRESET_DEFAULT_COLORS.neutral,
102
+ },
103
+ neutral_outline_md: {
104
+ variant: 'outline',
105
+ size: 'md',
106
+ color: PRESET_DEFAULT_COLORS.neutral_outline,
107
+ },
108
+ danger_md: {
109
+ variant: 'primary',
110
+ size: 'md',
111
+ color: PRESET_DEFAULT_COLORS.danger,
112
+ },
113
+ danger_outline_md: {
114
+ variant: 'outline',
115
+ size: 'md',
116
+ color: PRESET_DEFAULT_COLORS.danger_outline,
117
+ },
118
+ primary_lg: {
119
+ variant: 'primary',
120
+ size: 'lg',
121
+ color: PRESET_DEFAULT_COLORS.primary,
122
+ },
123
+ secondary_lg: {
124
+ variant: 'primary',
125
+ size: 'lg',
126
+ color: PRESET_DEFAULT_COLORS.secondary,
127
+ },
128
+ primary_outline_lg: {
129
+ variant: 'outline',
130
+ size: 'lg',
131
+ color: PRESET_DEFAULT_COLORS.primary_outline,
132
+ },
133
+ neutral_lg: {
134
+ variant: 'primary',
135
+ size: 'lg',
136
+ color: PRESET_DEFAULT_COLORS.neutral,
137
+ },
138
+ neutral_outline_lg: {
139
+ variant: 'outline',
140
+ size: 'lg',
141
+ color: PRESET_DEFAULT_COLORS.neutral_outline,
142
+ },
143
+ danger_lg: {
144
+ variant: 'primary',
145
+ size: 'lg',
146
+ color: PRESET_DEFAULT_COLORS.danger,
147
+ },
148
+ danger_outline_lg: {
149
+ variant: 'outline',
150
+ size: 'lg',
151
+ color: PRESET_DEFAULT_COLORS.danger_outline,
152
+ },
153
+ };
154
+ export const BUTTON_ICON_SIZES = {
155
+ xs: Number(buttonTokens.size.xs.icon),
156
+ sm: Number(buttonTokens.size.sm.icon),
157
+ md: Number(buttonTokens.size.md.icon),
158
+ lg: Number(buttonTokens.size.lg.icon),
159
+ };
160
+ export const PRESET_HOVER_BACKGROUNDS = {
161
+ primary: buttonTokens.brand.strong.bg.hover,
162
+ secondary: buttonTokens.brand.subtle.bg.hover,
163
+ primary_outline: buttonTokens.brand.outline.bg.hover,
164
+ neutral: buttonTokens.neutral.subtle.bg.hover,
165
+ neutral_outline: buttonTokens.neutral.outline.bg.hover,
166
+ danger: buttonTokens.danger.strong.bg.hover,
167
+ danger_outline: buttonTokens.danger.outline.bg.hover,
168
+ };
169
+ export const PRESET_CONTENT_COLORS = {
170
+ primary: buttonTokens.brand.strong.content,
171
+ secondary: buttonTokens.brand.subtle.content,
172
+ primary_outline: buttonTokens.brand.outline.content,
173
+ neutral: buttonTokens.neutral.subtle.content,
174
+ neutral_outline: buttonTokens.neutral.outline.content,
175
+ danger: buttonTokens.danger.strong.content,
176
+ danger_outline: buttonTokens.danger.outline.content,
177
+ };
178
+ export const PRESET_BORDER_COLORS = {
179
+ primary: 'transparent',
180
+ secondary: 'transparent',
181
+ primary_outline: buttonTokens.brand.outline.border,
182
+ neutral: 'transparent',
183
+ neutral_outline: buttonTokens.neutral.outline.border,
184
+ danger: 'transparent',
185
+ danger_outline: buttonTokens.danger.outline.border,
186
+ };
187
+ export const DISABLED_CONTENT = buttonTokens.content.disabled;
188
+ const SIZE_SUFFIX_PATTERN = /_(xs|sm|md|lg)$/;
189
+ export const isButtonV2Name = (value) => value in BUTTON_CONFIG;
190
+ export const getPresetName = (value) => value.replace(SIZE_SUFFIX_PATTERN, '');
@@ -0,0 +1,120 @@
1
+ sd-button-v2 {
2
+ display: inline-flex;
3
+ width: fit-content;
4
+ height: fit-content;
5
+ }
6
+
7
+ .sd-button-v2 {
8
+ --sd-button-v2-height: 34px;
9
+ --sd-button-v2-padding-x: 20px;
10
+ --sd-button-v2-gap: 8px;
11
+ --sd-button-v2-font-family: inherit;
12
+ --sd-button-v2-font-size: 16px;
13
+ --sd-button-v2-font-weight: 500;
14
+ --sd-button-v2-text-decoration: none;
15
+ --sd-button-v2-label-min-width: auto;
16
+ --sd-button-v2-icon-only-size: var(--sd-button-v2-height);
17
+ --sd-button-v2-bg: #025497;
18
+ --sd-button-v2-bg-hover: #004177;
19
+ --sd-button-v2-border: transparent;
20
+ --sd-button-v2-content: #ffffff;
21
+ display: inline-flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ min-height: var(--sd-button-v2-height);
25
+ min-width: var(--sd-button-v2-min-width, auto);
26
+ padding: 0 var(--sd-button-v2-padding-x);
27
+ border: var(--sd-button-border-width-default, 1px) solid var(--sd-button-v2-border);
28
+ border-radius: var(--sd-button-radius-default, 4px);
29
+ background: var(--sd-button-v2-bg);
30
+ color: var(--sd-button-v2-content);
31
+ cursor: pointer;
32
+ box-sizing: border-box;
33
+ font-family: var(--sd-button-v2-font-family);
34
+ font-size: var(--sd-button-v2-font-size);
35
+ font-weight: var(--sd-button-v2-font-weight);
36
+ line-height: 1;
37
+ text-decoration: var(--sd-button-v2-text-decoration);
38
+ transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
39
+ white-space: nowrap;
40
+ -webkit-user-select: none;
41
+ user-select: none;
42
+ }
43
+ .sd-button-v2:hover:not(.sd-button-v2--disabled) {
44
+ background: var(--sd-button-v2-bg-hover);
45
+ }
46
+ .sd-button-v2:focus-visible {
47
+ outline: 0;
48
+ box-shadow: 0 0 0 2px var(--sd-button-v2-accent);
49
+ }
50
+ .sd-button-v2--xs {
51
+ --sd-button-v2-height: var(--sd-button-xs-height, 24px);
52
+ --sd-button-v2-padding-x: var(--sd-button-xs-padding-x, 8px);
53
+ --sd-button-v2-gap: var(--sd-button-xs-gap, 4px);
54
+ --sd-button-v2-font-family: var(--sd-button-xs-typography-font-family, inherit);
55
+ --sd-button-v2-font-size: var(--sd-button-xs-typography-font-size, 12px);
56
+ --sd-button-v2-font-weight: var(--sd-button-xs-typography-font-weight, 500);
57
+ --sd-button-v2-text-decoration: var(--sd-button-xs-typography-text-decoration, none);
58
+ --sd-button-v2-label-min-width: var(--sd-button-label-xs-min-width, auto);
59
+ --sd-button-v2-icon-only-size: var(--sd-button-icon-only-xs-width, var(--sd-button-v2-height));
60
+ }
61
+ .sd-button-v2--sm {
62
+ --sd-button-v2-height: var(--sd-button-sm-height, 28px);
63
+ --sd-button-v2-padding-x: var(--sd-button-sm-padding-x, 12px);
64
+ --sd-button-v2-gap: var(--sd-button-sm-gap, 6px);
65
+ --sd-button-v2-font-family: var(--sd-button-sm-typography-font-family, inherit);
66
+ --sd-button-v2-font-size: var(--sd-button-sm-typography-font-size, 12px);
67
+ --sd-button-v2-font-weight: var(--sd-button-sm-typography-font-weight, 500);
68
+ --sd-button-v2-text-decoration: var(--sd-button-sm-typography-text-decoration, none);
69
+ --sd-button-v2-label-min-width: var(--sd-button-label-sm-min-width, auto);
70
+ --sd-button-v2-icon-only-size: var(--sd-button-icon-only-sm-width, var(--sd-button-v2-height));
71
+ }
72
+ .sd-button-v2--md {
73
+ --sd-button-v2-height: var(--sd-button-md-height, 34px);
74
+ --sd-button-v2-padding-x: var(--sd-button-md-padding-x, 20px);
75
+ --sd-button-v2-gap: var(--sd-button-md-gap, 8px);
76
+ --sd-button-v2-font-family: var(--sd-button-md-typography-font-family, inherit);
77
+ --sd-button-v2-font-size: var(--sd-button-md-typography-font-size, 16px);
78
+ --sd-button-v2-font-weight: var(--sd-button-md-typography-font-weight, 500);
79
+ --sd-button-v2-text-decoration: var(--sd-button-md-typography-text-decoration, none);
80
+ --sd-button-v2-label-min-width: var(--sd-button-label-md-min-width, auto);
81
+ --sd-button-v2-icon-only-size: var(--sd-button-icon-only-md-width, var(--sd-button-v2-height));
82
+ }
83
+ .sd-button-v2--lg {
84
+ --sd-button-v2-height: var(--sd-button-lg-height, 62px);
85
+ --sd-button-v2-padding-x: var(--sd-button-lg-padding-x, 28px);
86
+ --sd-button-v2-gap: var(--sd-button-lg-gap, 12px);
87
+ --sd-button-v2-font-family: var(--sd-button-lg-typography-font-family, inherit);
88
+ --sd-button-v2-font-size: var(--sd-button-lg-typography-font-size, 18px);
89
+ --sd-button-v2-font-weight: var(--sd-button-lg-typography-font-weight, 500);
90
+ --sd-button-v2-text-decoration: var(--sd-button-lg-typography-text-decoration, none);
91
+ --sd-button-v2-label-min-width: var(--sd-button-label-lg-min-width, auto);
92
+ --sd-button-v2-icon-only-size: var(--sd-button-icon-only-lg-width, var(--sd-button-v2-height));
93
+ }
94
+ .sd-button-v2--has-label {
95
+ --sd-button-v2-min-width: var(--sd-button-v2-label-min-width, auto);
96
+ }
97
+ .sd-button-v2--icon-only {
98
+ width: var(--sd-button-v2-icon-only-size, var(--sd-button-v2-height));
99
+ min-width: var(--sd-button-v2-icon-only-size, var(--sd-button-v2-height));
100
+ height: var(--sd-button-v2-icon-only-size, var(--sd-button-v2-height));
101
+ padding: 0;
102
+ }
103
+ .sd-button-v2--icon-only .sd-button-v2__content {
104
+ gap: 0;
105
+ }
106
+ .sd-button-v2--disabled {
107
+ border-color: var(--sd-button-border-disabled, #CCCCCC);
108
+ background: var(--sd-button-bg-disabled, #E1E1E1);
109
+ color: var(--sd-button-content-disabled, #888888);
110
+ cursor: not-allowed;
111
+ }
112
+ .sd-button-v2 .sd-button-v2__content {
113
+ display: inline-flex;
114
+ align-items: center;
115
+ justify-content: center;
116
+ gap: var(--sd-button-v2-gap);
117
+ }
118
+ .sd-button-v2 .sd-button-v2__label {
119
+ font: inherit;
120
+ }