@sellmate/design-system 0.0.56 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/dist/cjs/{select-keyboard-navigation-6fO_V4En.js → base-dropdown-event-Dc6AuxR4.js} +26 -26
  2. package/dist/cjs/base-dropdown-event-Dc6AuxR4.js.map +1 -0
  3. package/dist/cjs/design-system.cjs.js +2 -2
  4. package/dist/cjs/{index-B7tkxTye.js → index-D_J8ScR5.js} +3 -3
  5. package/dist/cjs/index-D_J8ScR5.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/{resolveColor-DxvExwgo.js → resolveColor-B7Ku3IGq.js} +4 -5
  8. package/dist/{esm/resolveColor-BYf-ybt2.js.map → cjs/resolveColor-B7Ku3IGq.js.map} +1 -1
  9. package/dist/cjs/sd-badge.cjs.entry.js +4 -4
  10. package/dist/cjs/{sd-button_24.cjs.entry.js → sd-button_6.cjs.entry.js} +292 -2842
  11. package/dist/cjs/sd-card.cjs.entry.js +3 -3
  12. package/dist/cjs/sd-checkbox.cjs.entry.js +89 -0
  13. package/dist/cjs/sd-date-box.cjs.entry.js +10 -10
  14. package/dist/cjs/sd-date-picker.cjs.entry.js +5 -5
  15. package/dist/cjs/sd-date-range-picker.cjs.entry.js +8 -8
  16. package/dist/cjs/sd-field_3.cjs.entry.js +422 -0
  17. package/dist/cjs/sd-file-picker.cjs.entry.js +121 -0
  18. package/dist/cjs/sd-form.cjs.entry.js +74 -0
  19. package/dist/cjs/sd-guide.cjs.entry.js +81 -0
  20. package/dist/cjs/sd-loading-spinner_2.cjs.entry.js +195 -0
  21. package/dist/cjs/sd-modal-card.cjs.entry.js +8 -8
  22. package/dist/cjs/sd-number-input.cjs.entry.js +261 -0
  23. package/dist/cjs/sd-popover.cjs.entry.js +7 -7
  24. package/dist/cjs/sd-progress.cjs.entry.js +3 -3
  25. package/dist/cjs/sd-radio-button-group.cjs.entry.js +8 -21
  26. package/dist/cjs/sd-radio-group.cjs.entry.js +71 -0
  27. package/dist/cjs/sd-select-dropdown_3.cjs.entry.js +266 -0
  28. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +446 -0
  29. package/dist/cjs/sd-select-multiple.cjs.entry.js +74 -152
  30. package/dist/cjs/sd-select-option-group.cjs.entry.js +69 -0
  31. package/dist/cjs/sd-table.cjs.entry.js +515 -85
  32. package/dist/cjs/sd-tabs.cjs.entry.js +66 -0
  33. package/dist/cjs/sd-tag.cjs.entry.js +57 -0
  34. package/dist/cjs/sd-toast-message.cjs.entry.js +61 -0
  35. package/dist/cjs/sd-toggle-button.cjs.entry.js +50 -0
  36. package/dist/cjs/sd-toggle.cjs.entry.js +46 -0
  37. package/dist/cjs/{tooltipArrow-8I9A3AOE.js → tooltipArrow-DU2DB2AD.js} +3 -3
  38. package/dist/cjs/{tooltipArrow-8I9A3AOE.js.map → tooltipArrow-DU2DB2AD.js.map} +1 -1
  39. package/dist/collection/collection-manifest.json +7 -8
  40. package/dist/collection/components/sd-badge/sd-badge.css +8 -9
  41. package/dist/collection/components/sd-badge/sd-badge.js +1 -2
  42. package/dist/collection/components/sd-badge/sd-badge.js.map +1 -1
  43. package/dist/collection/components/sd-button/sd-button.css +2 -1
  44. package/dist/collection/components/sd-button/sd-button.js +2 -34
  45. package/dist/collection/components/sd-button/sd-button.js.map +1 -1
  46. package/dist/collection/components/sd-card/sd-card.css +1 -0
  47. package/dist/collection/components/sd-card/sd-card.js +1 -1
  48. package/dist/collection/components/sd-checkbox/sd-checkbox.js +16 -16
  49. package/dist/collection/components/sd-checkbox/sd-checkbox.js.map +1 -1
  50. package/dist/collection/components/sd-date-box/sd-date-box.css +1 -0
  51. package/dist/collection/components/sd-date-box/sd-date-box.js +8 -8
  52. package/dist/collection/components/sd-date-box/sd-date-box.js.map +1 -1
  53. package/dist/collection/components/sd-date-picker/sd-date-picker.js +5 -5
  54. package/dist/collection/components/sd-date-picker/sd-date-picker.js.map +1 -1
  55. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.css +9 -6
  56. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +8 -8
  57. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js.map +1 -1
  58. package/dist/collection/components/sd-field/sd-field.css +100 -0
  59. package/dist/collection/components/sd-field/sd-field.js +472 -0
  60. package/dist/collection/components/sd-field/sd-field.js.map +1 -0
  61. package/dist/collection/components/sd-file-picker/sd-file-picker.css +6 -0
  62. package/dist/collection/components/sd-file-picker/sd-file-picker.js +8 -8
  63. package/dist/collection/components/sd-file-picker/sd-file-picker.js.map +1 -1
  64. package/dist/collection/components/sd-floating-portal/sd-floating-portal.css +103 -0
  65. package/dist/collection/components/{sd-tooltip-portal/sd-tooltip-portal.js → sd-floating-portal/sd-floating-portal.js} +18 -9
  66. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js.map +1 -0
  67. package/dist/collection/components/sd-form/sd-form.js +200 -0
  68. package/dist/collection/components/sd-form/sd-form.js.map +1 -0
  69. package/dist/collection/components/sd-guide/sd-guide.css +3 -2
  70. package/dist/collection/components/sd-guide/sd-guide.js +7 -8
  71. package/dist/collection/components/sd-guide/sd-guide.js.map +1 -1
  72. package/dist/collection/components/sd-icon/sd-icon.js +1 -1
  73. package/dist/collection/components/sd-input/sd-input.css +43 -100
  74. package/dist/collection/components/sd-input/sd-input.js +285 -114
  75. package/dist/collection/components/sd-input/sd-input.js.map +1 -1
  76. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
  77. package/dist/collection/components/sd-modal-card/sd-modal-card.css +1 -0
  78. package/dist/collection/components/sd-modal-card/sd-modal-card.js +5 -5
  79. package/dist/collection/components/sd-modal-card/sd-modal-card.js.map +1 -1
  80. package/dist/collection/components/sd-number-input/sd-number-input.js +18 -84
  81. package/dist/collection/components/sd-number-input/sd-number-input.js.map +1 -1
  82. package/dist/collection/components/sd-pagination/sd-pagination.js +4 -3
  83. package/dist/collection/components/sd-pagination/sd-pagination.js.map +1 -1
  84. package/dist/collection/components/sd-popover/sd-popover.css +2 -2
  85. package/dist/collection/components/sd-popover/sd-popover.js +4 -5
  86. package/dist/collection/components/sd-popover/sd-popover.js.map +1 -1
  87. package/dist/collection/components/sd-portal/sd-portal.js +4 -4
  88. package/dist/collection/components/sd-portal/sd-portal.js.map +1 -1
  89. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  90. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js +9 -30
  91. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js.map +1 -1
  92. package/dist/collection/components/sd-radio-group/sd-radio-group.js +5 -5
  93. package/dist/collection/components/sd-radio-group/sd-radio-group.js.map +1 -1
  94. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.css +52 -0
  95. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +441 -0
  96. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js.map +1 -0
  97. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +4 -4
  98. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js.map +1 -1
  99. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.css +11 -3
  100. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +15 -15
  101. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js.map +1 -1
  102. package/dist/collection/components/sd-select/sd-select.css +9 -97
  103. package/dist/collection/components/sd-select/sd-select.js +320 -219
  104. package/dist/collection/components/sd-select/sd-select.js.map +1 -1
  105. package/dist/collection/components/sd-select-multiple/sd-select-multiple.css +16 -102
  106. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +328 -179
  107. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js.map +1 -1
  108. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +8 -45
  109. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +265 -47
  110. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js.map +1 -1
  111. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  112. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js.map +1 -1
  113. package/dist/collection/components/sd-table/sd-table.css +121 -30
  114. package/dist/collection/components/sd-table/sd-table.js +629 -92
  115. package/dist/collection/components/sd-table/sd-table.js.map +1 -1
  116. package/dist/collection/components/sd-tabs/sd-tabs.css +10 -7
  117. package/dist/collection/components/sd-tabs/sd-tabs.js +10 -17
  118. package/dist/collection/components/sd-tabs/sd-tabs.js.map +1 -1
  119. package/dist/collection/components/sd-tag/sd-tag.js +1 -1
  120. package/dist/collection/components/sd-textarea/sd-textarea.css +66 -0
  121. package/dist/collection/components/sd-textarea/sd-textarea.js +400 -0
  122. package/dist/collection/components/sd-textarea/sd-textarea.js.map +1 -0
  123. package/dist/collection/components/sd-toast-message/sd-toast-message.js +11 -11
  124. package/dist/collection/components/sd-toast-message/sd-toast-message.js.map +1 -1
  125. package/dist/collection/components/sd-toggle/sd-toggle.js +8 -14
  126. package/dist/collection/components/sd-toggle/sd-toggle.js.map +1 -1
  127. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +5 -5
  128. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js.map +1 -1
  129. package/dist/collection/components/sd-tooltip/sd-tooltip.css +6 -65
  130. package/dist/collection/components/sd-tooltip/sd-tooltip.js +12 -29
  131. package/dist/collection/components/sd-tooltip/sd-tooltip.js.map +1 -1
  132. package/dist/collection/types/select.js.map +1 -1
  133. package/dist/components/index.js +1 -1
  134. package/dist/components/p-7xekTQRB.js +104 -0
  135. package/dist/components/p-7xekTQRB.js.map +1 -0
  136. package/dist/components/{p-BDkKpeVz.js → p-BKSlQGJv.js} +3 -3
  137. package/dist/components/{p-BDkKpeVz.js.map → p-BKSlQGJv.js.map} +1 -1
  138. package/dist/components/{p-C5U6Otnl.js → p-CVMprLsE.js} +17 -15
  139. package/dist/components/p-CVMprLsE.js.map +1 -0
  140. package/dist/components/p-CdGD6AqM.js +92 -0
  141. package/dist/components/p-CdGD6AqM.js.map +1 -0
  142. package/dist/components/p-CpRkV7pg.js +201 -0
  143. package/dist/components/p-CpRkV7pg.js.map +1 -0
  144. package/dist/components/p-D2movWkD.js +289 -0
  145. package/dist/components/p-D2movWkD.js.map +1 -0
  146. package/dist/components/p-D54IEoI6.js +238 -0
  147. package/dist/components/p-D54IEoI6.js.map +1 -0
  148. package/dist/components/{p-B8yBkdjE.js → p-DbebUQwg.js} +7 -7
  149. package/dist/components/{p-B8yBkdjE.js.map → p-DbebUQwg.js.map} +1 -1
  150. package/dist/components/{p-BYf-ybt2.js → p-DcGvp3RM.js} +5 -5
  151. package/dist/components/p-DcGvp3RM.js.map +1 -0
  152. package/dist/components/{p-CfivfPAO.js → p-DdKGhMHk.js} +5 -5
  153. package/dist/components/{p-CfivfPAO.js.map → p-DdKGhMHk.js.map} +1 -1
  154. package/dist/components/{p-BxPT3VKO.js → p-DlJtPR_C.js} +12 -12
  155. package/dist/components/p-DlJtPR_C.js.map +1 -0
  156. package/dist/components/{p-BHHbLFXg.js → p-DnQF6htq.js} +5 -5
  157. package/dist/components/{p-BHHbLFXg.js.map → p-DnQF6htq.js.map} +1 -1
  158. package/dist/components/{p-BA38jFi5.js → p-DssRJcAn.js} +4 -4
  159. package/dist/components/{p-BA38jFi5.js.map → p-DssRJcAn.js.map} +1 -1
  160. package/dist/components/{p-B3H_uLbl.js → p-Dt-KAeBx.js} +3 -3
  161. package/dist/components/{p-B3H_uLbl.js.map → p-Dt-KAeBx.js.map} +1 -1
  162. package/dist/components/{p-BREduhZA.js → p-DxSmO6Tr.js} +8 -7
  163. package/dist/components/p-DxSmO6Tr.js.map +1 -0
  164. package/dist/components/{p-O3tgQfvT.js → p-JF61vPAh.js} +9 -9
  165. package/dist/components/p-JF61vPAh.js.map +1 -0
  166. package/dist/components/p-RhBqdixM.js +102 -0
  167. package/dist/components/p-RhBqdixM.js.map +1 -0
  168. package/dist/components/{p-Bj4u0G5b.js → p-UZEmuyIR.js} +19 -19
  169. package/dist/components/p-UZEmuyIR.js.map +1 -0
  170. package/dist/components/{p-CQBrru3e.js → p-YLoygqPr.js} +3 -3
  171. package/dist/components/p-YLoygqPr.js.map +1 -0
  172. package/dist/components/p-s4Mg_xSz.js +260 -0
  173. package/dist/components/p-s4Mg_xSz.js.map +1 -0
  174. package/dist/components/{p-w5tohH2H.js → p-zvZtN3nR.js} +8 -8
  175. package/dist/components/{p-w5tohH2H.js.map → p-zvZtN3nR.js.map} +1 -1
  176. package/dist/components/sd-badge.js +5 -5
  177. package/dist/components/sd-badge.js.map +1 -1
  178. package/dist/components/sd-button.js +1 -1
  179. package/dist/components/sd-card.js +3 -3
  180. package/dist/components/sd-card.js.map +1 -1
  181. package/dist/components/sd-checkbox.js +1 -1
  182. package/dist/components/sd-date-box.js +1 -1
  183. package/dist/components/sd-date-picker.js +37 -13
  184. package/dist/components/sd-date-picker.js.map +1 -1
  185. package/dist/components/sd-date-range-picker.js +41 -17
  186. package/dist/components/sd-date-range-picker.js.map +1 -1
  187. package/dist/components/{sd-td.d.ts → sd-field.d.ts} +4 -4
  188. package/dist/components/sd-field.js +9 -0
  189. package/dist/components/sd-field.js.map +1 -0
  190. package/dist/components/sd-file-picker.js +10 -10
  191. package/dist/components/sd-file-picker.js.map +1 -1
  192. package/dist/components/{sd-table-backup.d.ts → sd-floating-portal.d.ts} +4 -4
  193. package/dist/components/sd-floating-portal.js +9 -0
  194. package/dist/components/sd-floating-portal.js.map +1 -0
  195. package/dist/components/{sd-th.d.ts → sd-form.d.ts} +4 -4
  196. package/dist/components/sd-form.js +99 -0
  197. package/dist/components/sd-form.js.map +1 -0
  198. package/dist/components/sd-guide.js +12 -13
  199. package/dist/components/sd-guide.js.map +1 -1
  200. package/dist/components/sd-icon.js +1 -1
  201. package/dist/components/sd-input.js +1 -1
  202. package/dist/components/sd-loading-spinner.js +1 -1
  203. package/dist/components/sd-modal-card.js +10 -10
  204. package/dist/components/sd-modal-card.js.map +1 -1
  205. package/dist/components/sd-number-input.js +19 -43
  206. package/dist/components/sd-number-input.js.map +1 -1
  207. package/dist/components/sd-pagination.js +1 -1
  208. package/dist/components/sd-popover.js +14 -15
  209. package/dist/components/sd-popover.js.map +1 -1
  210. package/dist/components/sd-portal.js +1 -1
  211. package/dist/components/sd-progress.js +3 -3
  212. package/dist/components/sd-radio-button-group.js +10 -26
  213. package/dist/components/sd-radio-button-group.js.map +1 -1
  214. package/dist/components/sd-radio-group.js +5 -5
  215. package/dist/components/sd-radio-group.js.map +1 -1
  216. package/dist/components/{sd-tbody.d.ts → sd-select-dropdown.d.ts} +4 -4
  217. package/dist/components/sd-select-dropdown.js +9 -0
  218. package/dist/components/sd-select-dropdown.js.map +1 -0
  219. package/dist/components/sd-select-multiple-group.js +97 -40
  220. package/dist/components/sd-select-multiple-group.js.map +1 -1
  221. package/dist/components/sd-select-multiple.js +133 -168
  222. package/dist/components/sd-select-multiple.js.map +1 -1
  223. package/dist/components/sd-select-option-group.js +1 -1
  224. package/dist/components/sd-select-option.js +1 -1
  225. package/dist/components/sd-select-search-input.js +1 -1
  226. package/dist/components/sd-select.js +1 -1
  227. package/dist/components/sd-table.js +555 -113
  228. package/dist/components/sd-table.js.map +1 -1
  229. package/dist/components/sd-tabs.js +13 -16
  230. package/dist/components/sd-tabs.js.map +1 -1
  231. package/dist/components/sd-tag.js +1 -1
  232. package/dist/components/{sd-tr.d.ts → sd-textarea.d.ts} +4 -4
  233. package/dist/components/sd-textarea.js +145 -0
  234. package/dist/components/sd-textarea.js.map +1 -0
  235. package/dist/components/sd-toast-message.js +14 -14
  236. package/dist/components/sd-toast-message.js.map +1 -1
  237. package/dist/components/sd-toggle-button.js +5 -5
  238. package/dist/components/sd-toggle-button.js.map +1 -1
  239. package/dist/components/sd-toggle.js +9 -11
  240. package/dist/components/sd-toggle.js.map +1 -1
  241. package/dist/components/sd-tooltip.js +1 -1
  242. package/dist/design-system/design-system.css +1 -1
  243. package/dist/design-system/design-system.esm.js +1 -1
  244. package/dist/design-system/p-02e23509.entry.js +2 -0
  245. package/dist/design-system/p-02e23509.entry.js.map +1 -0
  246. package/dist/design-system/p-0a2f733d.entry.js +2 -0
  247. package/dist/design-system/p-0a2f733d.entry.js.map +1 -0
  248. package/dist/design-system/p-0d3f019d.entry.js +2 -0
  249. package/dist/design-system/p-0d3f019d.entry.js.map +1 -0
  250. package/dist/design-system/p-15dd1289.entry.js +2 -0
  251. package/dist/design-system/p-15dd1289.entry.js.map +1 -0
  252. package/dist/design-system/p-216c6543.entry.js +2 -0
  253. package/dist/design-system/p-216c6543.entry.js.map +1 -0
  254. package/dist/design-system/p-2400d67b.entry.js +2 -0
  255. package/dist/design-system/p-2400d67b.entry.js.map +1 -0
  256. package/dist/design-system/p-282f4087.entry.js +2 -0
  257. package/dist/design-system/{p-ddfe63b8.entry.js.map → p-282f4087.entry.js.map} +1 -1
  258. package/dist/design-system/{p-b5720c60.entry.js → p-388d5b9f.entry.js} +2 -2
  259. package/dist/design-system/p-4d7bb5b6.entry.js +2 -0
  260. package/dist/design-system/p-4d7bb5b6.entry.js.map +1 -0
  261. package/dist/design-system/p-53972259.entry.js +2 -0
  262. package/dist/design-system/p-53972259.entry.js.map +1 -0
  263. package/dist/design-system/p-6277b220.entry.js +2 -0
  264. package/dist/design-system/p-6277b220.entry.js.map +1 -0
  265. package/dist/design-system/p-652c4d37.entry.js +2 -0
  266. package/dist/design-system/p-652c4d37.entry.js.map +1 -0
  267. package/dist/design-system/p-661c4553.entry.js +2 -0
  268. package/dist/design-system/p-661c4553.entry.js.map +1 -0
  269. package/dist/design-system/p-686958c5.entry.js +2 -0
  270. package/dist/design-system/p-686958c5.entry.js.map +1 -0
  271. package/dist/design-system/p-811c5aa4.entry.js +2 -0
  272. package/dist/design-system/p-811c5aa4.entry.js.map +1 -0
  273. package/dist/design-system/p-827ca975.entry.js +2 -0
  274. package/dist/design-system/p-827ca975.entry.js.map +1 -0
  275. package/dist/design-system/p-8df72aa2.entry.js +2 -0
  276. package/dist/design-system/p-8df72aa2.entry.js.map +1 -0
  277. package/dist/design-system/p-9d2459ed.entry.js +2 -0
  278. package/dist/design-system/p-9d2459ed.entry.js.map +1 -0
  279. package/dist/design-system/p-BShXSO5x.js +2 -0
  280. package/dist/design-system/p-BShXSO5x.js.map +1 -0
  281. package/dist/design-system/{p-7X2nzJWz.js → p-C3qNZ7Qh.js} +3 -3
  282. package/dist/design-system/p-C3qNZ7Qh.js.map +1 -0
  283. package/dist/design-system/{p-CdbtuKYR.js → p-DPxE68eG.js} +2 -2
  284. package/dist/design-system/{p-CdbtuKYR.js.map → p-DPxE68eG.js.map} +1 -1
  285. package/dist/design-system/{p-BYf-ybt2.js → p-DcGvp3RM.js} +2 -2
  286. package/dist/design-system/{p-BYf-ybt2.js.map → p-DcGvp3RM.js.map} +1 -1
  287. package/dist/design-system/p-a7d4c6bd.entry.js +2 -0
  288. package/dist/design-system/p-a7d4c6bd.entry.js.map +1 -0
  289. package/dist/design-system/p-ac29c52c.entry.js +2 -0
  290. package/dist/design-system/p-ac29c52c.entry.js.map +1 -0
  291. package/dist/design-system/{p-7a424f6b.entry.js → p-b0277422.entry.js} +2 -2
  292. package/dist/design-system/p-b0277422.entry.js.map +1 -0
  293. package/dist/design-system/p-c25c4bd6.entry.js +2 -0
  294. package/dist/design-system/p-c25c4bd6.entry.js.map +1 -0
  295. package/dist/design-system/p-c3061828.entry.js +2 -0
  296. package/dist/design-system/p-c3061828.entry.js.map +1 -0
  297. package/dist/design-system/p-cde56c79.entry.js +2 -0
  298. package/dist/design-system/{p-5576f0f0.entry.js.map → p-cde56c79.entry.js.map} +1 -1
  299. package/dist/design-system/p-d77422e4.entry.js +2 -0
  300. package/dist/design-system/p-d77422e4.entry.js.map +1 -0
  301. package/dist/design-system/p-dc410414.entry.js +2 -0
  302. package/dist/design-system/p-dc410414.entry.js.map +1 -0
  303. package/dist/design-system/p-f254b09a.entry.js +2 -0
  304. package/dist/design-system/p-f254b09a.entry.js.map +1 -0
  305. package/dist/design-system/p-f3287206.entry.js +2 -0
  306. package/dist/design-system/p-f3287206.entry.js.map +1 -0
  307. package/dist/esm/{select-keyboard-navigation-C2JaR3A6.js → base-dropdown-event-BShXSO5x.js} +26 -26
  308. package/dist/esm/base-dropdown-event-BShXSO5x.js.map +1 -0
  309. package/dist/esm/design-system.js +3 -3
  310. package/dist/esm/{index-7X2nzJWz.js → index-C3qNZ7Qh.js} +3 -3
  311. package/dist/esm/index-C3qNZ7Qh.js.map +1 -0
  312. package/dist/esm/loader.js +3 -3
  313. package/dist/esm/{resolveColor-BYf-ybt2.js → resolveColor-DcGvp3RM.js} +5 -5
  314. package/dist/{cjs/resolveColor-DxvExwgo.js.map → esm/resolveColor-DcGvp3RM.js.map} +1 -1
  315. package/dist/esm/sd-badge.entry.js +4 -4
  316. package/dist/esm/sd-badge.entry.js.map +1 -1
  317. package/dist/esm/{sd-button_24.entry.js → sd-button_6.entry.js} +291 -2823
  318. package/dist/esm/sd-card.entry.js +3 -3
  319. package/dist/esm/sd-card.entry.js.map +1 -1
  320. package/dist/esm/sd-checkbox.entry.js +87 -0
  321. package/dist/esm/sd-checkbox.entry.js.map +1 -0
  322. package/dist/esm/sd-date-box.entry.js +10 -10
  323. package/dist/esm/sd-date-box.entry.js.map +1 -1
  324. package/dist/esm/sd-date-picker.entry.js +5 -5
  325. package/dist/esm/sd-date-picker.entry.js.map +1 -1
  326. package/dist/esm/sd-date-range-picker.entry.js +8 -8
  327. package/dist/esm/sd-date-range-picker.entry.js.map +1 -1
  328. package/dist/esm/sd-field_3.entry.js +418 -0
  329. package/dist/esm/sd-file-picker.entry.js +119 -0
  330. package/dist/esm/sd-file-picker.entry.js.map +1 -0
  331. package/dist/esm/sd-form.entry.js +72 -0
  332. package/dist/esm/sd-form.entry.js.map +1 -0
  333. package/dist/esm/sd-guide.entry.js +79 -0
  334. package/dist/esm/sd-guide.entry.js.map +1 -0
  335. package/dist/esm/sd-loading-spinner_2.entry.js +192 -0
  336. package/dist/esm/sd-modal-card.entry.js +8 -8
  337. package/dist/esm/sd-modal-card.entry.js.map +1 -1
  338. package/dist/esm/sd-number-input.entry.js +259 -0
  339. package/dist/esm/sd-number-input.entry.js.map +1 -0
  340. package/dist/esm/sd-popover.entry.js +7 -7
  341. package/dist/esm/sd-popover.entry.js.map +1 -1
  342. package/dist/esm/sd-progress.entry.js +3 -3
  343. package/dist/esm/sd-radio-button-group.entry.js +8 -21
  344. package/dist/esm/sd-radio-button-group.entry.js.map +1 -1
  345. package/dist/esm/sd-radio-group.entry.js +69 -0
  346. package/dist/esm/sd-radio-group.entry.js.map +1 -0
  347. package/dist/esm/sd-select-dropdown_3.entry.js +262 -0
  348. package/dist/esm/sd-select-multiple-group.entry.js +444 -0
  349. package/dist/esm/sd-select-multiple-group.entry.js.map +1 -0
  350. package/dist/esm/sd-select-multiple.entry.js +72 -150
  351. package/dist/esm/sd-select-multiple.entry.js.map +1 -1
  352. package/dist/esm/sd-select-option-group.entry.js +67 -0
  353. package/dist/esm/sd-select-option-group.entry.js.map +1 -0
  354. package/dist/esm/sd-table.entry.js +515 -85
  355. package/dist/esm/sd-table.entry.js.map +1 -1
  356. package/dist/esm/sd-tabs.entry.js +64 -0
  357. package/dist/esm/sd-tabs.entry.js.map +1 -0
  358. package/dist/esm/sd-tag.entry.js +55 -0
  359. package/dist/esm/sd-tag.entry.js.map +1 -0
  360. package/dist/esm/sd-toast-message.entry.js +59 -0
  361. package/dist/esm/sd-toast-message.entry.js.map +1 -0
  362. package/dist/esm/sd-toggle-button.entry.js +48 -0
  363. package/dist/esm/sd-toggle-button.entry.js.map +1 -0
  364. package/dist/esm/sd-toggle.entry.js +44 -0
  365. package/dist/esm/sd-toggle.entry.js.map +1 -0
  366. package/dist/esm/{tooltipArrow-DFRZWz6D.js → tooltipArrow-Ck_14rXC.js} +3 -3
  367. package/dist/esm/{tooltipArrow-DFRZWz6D.js.map → tooltipArrow-Ck_14rXC.js.map} +1 -1
  368. package/dist/types/components/sd-button/sd-button.d.ts +0 -3
  369. package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -2
  370. package/dist/types/components/sd-date-box/sd-date-box.d.ts +2 -2
  371. package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +1 -1
  372. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +1 -1
  373. package/dist/types/components/sd-field/sd-field.d.ts +34 -0
  374. package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +1 -1
  375. package/dist/types/components/{sd-tooltip-portal/sd-tooltip-portal.d.ts → sd-floating-portal/sd-floating-portal.d.ts} +2 -2
  376. package/dist/types/components/sd-form/sd-form.d.ts +23 -0
  377. package/dist/types/components/sd-input/sd-input.d.ts +23 -14
  378. package/dist/types/components/sd-modal-card/sd-modal-card.d.ts +2 -2
  379. package/dist/types/components/sd-number-input/sd-number-input.d.ts +4 -14
  380. package/dist/types/components/sd-portal/sd-portal.d.ts +1 -1
  381. package/dist/types/components/sd-radio-button-group/sd-radio-button-group.d.ts +2 -4
  382. package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +1 -1
  383. package/dist/types/components/sd-select/sd-select-dropdown/sd-select-dropdown.d.ts +41 -0
  384. package/dist/types/components/sd-select/sd-select-option/sd-select-option.d.ts +1 -1
  385. package/dist/types/components/sd-select/sd-select-search-input/sd-select-search-input.d.ts +4 -4
  386. package/dist/types/components/sd-select/sd-select.d.ts +28 -21
  387. package/dist/types/components/sd-select-multiple/sd-select-multiple.d.ts +26 -20
  388. package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +19 -4
  389. package/dist/types/components/sd-table/sd-table.d.ts +62 -3
  390. package/dist/types/components/sd-tabs/sd-tabs.d.ts +1 -2
  391. package/dist/types/components/sd-textarea/sd-textarea.d.ts +32 -0
  392. package/dist/types/components/sd-toast-message/sd-toast-message.d.ts +3 -3
  393. package/dist/types/components/sd-toggle/sd-toggle.d.ts +1 -2
  394. package/dist/types/components/sd-toggle-button/sd-toggle-button.d.ts +1 -1
  395. package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +14 -2
  396. package/dist/types/components.d.ts +703 -397
  397. package/dist/types/types/form.d.ts +1 -0
  398. package/dist/types/types/select.d.ts +1 -1
  399. package/hydrate/index.js +1397 -1325
  400. package/hydrate/index.mjs +1397 -1325
  401. package/package.json +4 -3
  402. package/dist/cjs/index-B7tkxTye.js.map +0 -1
  403. package/dist/cjs/sd-tbody_3.cjs.entry.js +0 -44
  404. package/dist/cjs/sd-td.cjs.entry.js +0 -26
  405. package/dist/cjs/select-keyboard-navigation-6fO_V4En.js.map +0 -1
  406. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.css +0 -3
  407. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +0 -18
  408. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js.map +0 -1
  409. package/dist/collection/components/sd-table/sd-td/sd-td.css +0 -9
  410. package/dist/collection/components/sd-table/sd-td/sd-td.js +0 -111
  411. package/dist/collection/components/sd-table/sd-td/sd-td.js.map +0 -1
  412. package/dist/collection/components/sd-table/sd-th/sd-th.css +0 -8
  413. package/dist/collection/components/sd-table/sd-th/sd-th.js +0 -18
  414. package/dist/collection/components/sd-table/sd-th/sd-th.js.map +0 -1
  415. package/dist/collection/components/sd-table/sd-tr/sd-tr.css +0 -3
  416. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +0 -18
  417. package/dist/collection/components/sd-table/sd-tr/sd-tr.js.map +0 -1
  418. package/dist/collection/components/sd-table-backup/sd-table-backup.css +0 -309
  419. package/dist/collection/components/sd-table-backup/sd-table-backup.js +0 -1219
  420. package/dist/collection/components/sd-table-backup/sd-table-backup.js.map +0 -1
  421. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js.map +0 -1
  422. package/dist/components/p-6qJVnQg4.js +0 -34
  423. package/dist/components/p-6qJVnQg4.js.map +0 -1
  424. package/dist/components/p-BREduhZA.js.map +0 -1
  425. package/dist/components/p-BYf-ybt2.js.map +0 -1
  426. package/dist/components/p-Bj4u0G5b.js.map +0 -1
  427. package/dist/components/p-BxPT3VKO.js.map +0 -1
  428. package/dist/components/p-C4kdHNdl.js +0 -175
  429. package/dist/components/p-C4kdHNdl.js.map +0 -1
  430. package/dist/components/p-C5U6Otnl.js.map +0 -1
  431. package/dist/components/p-CNrsaSqW.js +0 -34
  432. package/dist/components/p-CNrsaSqW.js.map +0 -1
  433. package/dist/components/p-CQBrru3e.js.map +0 -1
  434. package/dist/components/p-D8KGixEs.js +0 -326
  435. package/dist/components/p-D8KGixEs.js.map +0 -1
  436. package/dist/components/p-DLrb7Zq3.js +0 -102
  437. package/dist/components/p-DLrb7Zq3.js.map +0 -1
  438. package/dist/components/p-K42WRBPA.js +0 -121
  439. package/dist/components/p-K42WRBPA.js.map +0 -1
  440. package/dist/components/p-O3tgQfvT.js.map +0 -1
  441. package/dist/components/p-QpwY2yqY.js +0 -78
  442. package/dist/components/p-QpwY2yqY.js.map +0 -1
  443. package/dist/components/p-xme-KFvK.js +0 -34
  444. package/dist/components/p-xme-KFvK.js.map +0 -1
  445. package/dist/components/sd-table-backup.js +0 -802
  446. package/dist/components/sd-table-backup.js.map +0 -1
  447. package/dist/components/sd-tbody.js +0 -9
  448. package/dist/components/sd-tbody.js.map +0 -1
  449. package/dist/components/sd-td.js +0 -50
  450. package/dist/components/sd-td.js.map +0 -1
  451. package/dist/components/sd-th.js +0 -9
  452. package/dist/components/sd-th.js.map +0 -1
  453. package/dist/components/sd-tooltip-portal.d.ts +0 -11
  454. package/dist/components/sd-tooltip-portal.js +0 -9
  455. package/dist/components/sd-tooltip-portal.js.map +0 -1
  456. package/dist/components/sd-tr.js +0 -9
  457. package/dist/components/sd-tr.js.map +0 -1
  458. package/dist/design-system/p-0893dbd0.entry.js +0 -2
  459. package/dist/design-system/p-0893dbd0.entry.js.map +0 -1
  460. package/dist/design-system/p-2633690f.entry.js +0 -2
  461. package/dist/design-system/p-2633690f.entry.js.map +0 -1
  462. package/dist/design-system/p-27985b84.entry.js +0 -2
  463. package/dist/design-system/p-27985b84.entry.js.map +0 -1
  464. package/dist/design-system/p-5576f0f0.entry.js +0 -2
  465. package/dist/design-system/p-7X2nzJWz.js.map +0 -1
  466. package/dist/design-system/p-7a424f6b.entry.js.map +0 -1
  467. package/dist/design-system/p-7ca988ab.entry.js +0 -2
  468. package/dist/design-system/p-7ca988ab.entry.js.map +0 -1
  469. package/dist/design-system/p-9ade8cd7.entry.js +0 -2
  470. package/dist/design-system/p-9ade8cd7.entry.js.map +0 -1
  471. package/dist/design-system/p-C2JaR3A6.js +0 -2
  472. package/dist/design-system/p-C2JaR3A6.js.map +0 -1
  473. package/dist/design-system/p-a7bdb6ba.entry.js +0 -2
  474. package/dist/design-system/p-a7bdb6ba.entry.js.map +0 -1
  475. package/dist/design-system/p-b1b828e6.entry.js +0 -2
  476. package/dist/design-system/p-b1b828e6.entry.js.map +0 -1
  477. package/dist/design-system/p-bdd9afaf.entry.js +0 -2
  478. package/dist/design-system/p-bdd9afaf.entry.js.map +0 -1
  479. package/dist/design-system/p-ddfe63b8.entry.js +0 -2
  480. package/dist/design-system/p-de826a92.entry.js +0 -2
  481. package/dist/design-system/p-de826a92.entry.js.map +0 -1
  482. package/dist/design-system/p-e180c69c.entry.js +0 -2
  483. package/dist/design-system/p-e180c69c.entry.js.map +0 -1
  484. package/dist/esm/index-7X2nzJWz.js.map +0 -1
  485. package/dist/esm/sd-tbody_3.entry.js +0 -40
  486. package/dist/esm/sd-td.entry.js +0 -24
  487. package/dist/esm/sd-td.entry.js.map +0 -1
  488. package/dist/esm/select-keyboard-navigation-C2JaR3A6.js.map +0 -1
  489. package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +0 -3
  490. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +0 -7
  491. package/dist/types/components/sd-table/sd-th/sd-th.d.ts +0 -3
  492. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +0 -3
  493. package/dist/types/components/sd-table-backup/sd-table-backup.d.ts +0 -135
  494. /package/dist/design-system/{p-b5720c60.entry.js.map → p-388d5b9f.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sd-toggle-button.js","sourceRoot":"","sources":["../../../src/components/sd-toggle-button/sd-toggle-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAM/E,MAAM,OAAO,cAAc;IACc,KAAK,GAAY,KAAK,CAAC;IAEvD,KAAK,GAAW,EAAE,CAAC;IAEnB,QAAQ,GAAY,KAAK,CAAC;IAEjB,QAAQ,GAAY,KAAK,CAAC;IAElC,QAAQ,CAAyB;IAE1C,iBAAiB;QAChB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,iBAAiB,CAAC,KAAc;QACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAY,aAAa;QACxB,MAAM,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,YAAY,GAAG,GAAG,EAAE;QAC3B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM;QACL,OAAO,CACN,8DACC,KAAK,EAAE,IAAI,CAAC,aAAa,EACzB,IAAI,EAAC,QAAQ,kBACC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAC3B,IAAI,CAAC,KAAK,IAAI,eAAe;YAExC,IAAI,CAAC,KAAK;YACX,8DAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,CAAC,YAAY,GAAI,CAC1E,CACR,CAAC;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Prop, h, Event, EventEmitter, State } from '@stencil/core';\n\n@Component({\n tag: 'sd-toggle-button',\n styleUrl: 'sd-toggle-button.scss',\n})\nexport class SdToggleButton {\n @Prop({ mutable: true, reflect: true }) value: boolean = false;\n\n @Prop() label: string = '';\n\n @Prop() disabled: boolean = false;\n\n @State() private isActive: boolean = false;\n\n @Event() sdChange!: EventEmitter<boolean>;\n\n componentWillLoad() {\n this.updateActiveState(this.value);\n }\n\n componentWillRender() {\n this.updateActiveState(this.value);\n }\n\n private updateActiveState(value: boolean) {\n this.isActive = value;\n }\n\n private get buttonClasses(): string {\n const classes = ['sd-toggle-button'];\n\n if (this.isActive) {\n classes.push('sd-toggle-button--active');\n }\n\n if (this.disabled) {\n classes.push('sd-toggle-button--disabled');\n }\n\n return classes.join(' ');\n }\n\n private handleChange = () => {\n if (this.disabled) return;\n\n const newValue = !this.value;\n this.value = newValue;\n this.sdChange.emit(newValue);\n };\n\n render() {\n return (\n <label\n class={this.buttonClasses}\n role=\"button\"\n aria-pressed={this.isActive.toString()}\n aria-disabled={this.disabled.toString()}\n aria-label={this.label || 'toggle button'}\n >\n {this.label}\n <input style={{ display: 'none' }} type=\"checkbox\" onInput={this.handleChange} />\n </label>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"sd-toggle-button.js","sourceRoot":"","sources":["../../../src/components/sd-toggle-button/sd-toggle-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAM/E,MAAM,OAAO,cAAc;IACc,KAAK,GAAY,KAAK,CAAC;IAEvD,KAAK,GAAW,EAAE,CAAC;IAEnB,QAAQ,GAAY,KAAK,CAAC;IAEjB,QAAQ,GAAY,KAAK,CAAC;IAET,MAAM,CAAyB;IAEjE,iBAAiB;QAChB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,iBAAiB,CAAC,KAAc;QACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAY,aAAa;QACxB,MAAM,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,YAAY,GAAG,GAAG,EAAE;QAC3B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM;QACL,OAAO,CACN,8DACC,KAAK,EAAE,IAAI,CAAC,aAAa,gBAIb,IAAI,CAAC,KAAK,IAAI,eAAe;YAExC,IAAI,CAAC,KAAK;YACX,8DAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,CAAC,YAAY,GAAI,CAC1E,CACR,CAAC;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Prop, h, Event, EventEmitter, State } from '@stencil/core';\n\n@Component({\n tag: 'sd-toggle-button',\n styleUrl: 'sd-toggle-button.scss',\n})\nexport class SdToggleButton {\n @Prop({ mutable: true, reflect: true }) value: boolean = false;\n\n @Prop() label: string = '';\n\n @Prop() disabled: boolean = false;\n\n @State() private isActive: boolean = false;\n\n @Event({ eventName: 'sdUpdate' }) change!: EventEmitter<boolean>;\n\n componentWillLoad() {\n this.updateActiveState(this.value);\n }\n\n componentWillRender() {\n this.updateActiveState(this.value);\n }\n\n private updateActiveState(value: boolean) {\n this.isActive = value;\n }\n\n private get buttonClasses(): string {\n const classes = ['sd-toggle-button'];\n\n if (this.isActive) {\n classes.push('sd-toggle-button--active');\n }\n\n if (this.disabled) {\n classes.push('sd-toggle-button--disabled');\n }\n\n return classes.join(' ');\n }\n\n private handleChange = () => {\n if (this.disabled) return;\n\n const newValue = !this.value;\n this.value = newValue;\n this.change.emit(newValue);\n };\n\n render() {\n return (\n <label\n class={this.buttonClasses}\n // role=\"button\"\n // aria-pressed={this.isActive.toString()}\n // aria-disabled={this.disabled.toString()}\n aria-label={this.label || 'toggle button'}\n >\n {this.label}\n <input style={{ display: 'none' }} type=\"checkbox\" onInput={this.handleChange} />\n </label>\n );\n }\n}\n"]}
@@ -1,5 +1,9 @@
1
- sd-tooltip [slot=content] {
2
- display: none;
1
+ sd-tooltip {
2
+ visibility: hidden !important;
3
+ display: inline-flex;
4
+ }
5
+ sd-tooltip.visible {
6
+ visibility: visible !important;
3
7
  }
4
8
  sd-tooltip .sd-tooltip {
5
9
  position: relative;
@@ -7,67 +11,4 @@ sd-tooltip .sd-tooltip {
7
11
  display: inline-flex;
8
12
  align-items: center;
9
13
  justify-content: center;
10
- }
11
-
12
- .sd-tooltip-menu {
13
- width: fit-content;
14
- padding: 8px 16px;
15
- border-radius: 4px;
16
- font-size: 12px;
17
- position: relative;
18
- box-sizing: border-box;
19
- display: flex;
20
- align-items: start;
21
- justify-content: center;
22
- gap: 12px;
23
- }
24
- .sd-tooltip-menu--with-close {
25
- padding-right: 12px !important;
26
- }
27
- .sd-tooltip-menu__arrow {
28
- position: absolute;
29
- display: flex;
30
- width: 9.6px;
31
- height: 7.2px;
32
- }
33
- .sd-tooltip-menu__arrow svg {
34
- width: 100%;
35
- height: 100%;
36
- }
37
- .sd-tooltip-menu__arrow--top {
38
- bottom: -7.2px;
39
- left: 50%;
40
- transform: translateX(-50%);
41
- }
42
- .sd-tooltip-menu__arrow--bottom {
43
- top: -7.2px;
44
- left: 50%;
45
- transform: translateX(-50%) rotate(180deg);
46
- }
47
- .sd-tooltip-menu__arrow--left {
48
- right: -7.2px;
49
- top: 50%;
50
- transform: translateY(-50%) rotate(-90deg);
51
- }
52
- .sd-tooltip-menu__arrow--right {
53
- left: -7.2px;
54
- top: 50%;
55
- transform: translateY(-50%) rotate(90deg);
56
- }
57
- .sd-tooltip-menu__content {
58
- line-height: 20px;
59
- font-weight: 500;
60
- }
61
- .sd-tooltip-menu__content p {
62
- margin: 0;
63
- }
64
- .sd-tooltip-menu__close-button {
65
- padding-top: 4px;
66
- display: flex;
67
- }
68
- .sd-tooltip-menu__close-button button {
69
- padding: 0;
70
- background: none;
71
- border: none;
72
- cursor: pointer;
73
14
  }
@@ -14,25 +14,16 @@ export class SdTooltip {
14
14
  noHover = true;
15
15
  useClose = false;
16
16
  showTooltip = false;
17
- slotContent = null;
18
- static COLOR_OF_TYPE = {
19
- default: { background: 'oceanblue_85', text: 'white' },
20
- caution: { background: 'red_20', text: 'red_70' },
21
- notice: { background: 'orange_10', text: 'orange_65' },
22
- accent: { background: 'brilliantblue_20', text: 'brilliantblue_75' },
23
- };
17
+ slotContentHTML = '';
24
18
  buttonEl;
25
19
  handleClose = () => {
26
20
  this.showTooltip = false;
27
21
  };
28
- // 현재 tooltip popover가 조건부 렌더링이여서 초기 slot이 렌더링 되지 않은 시점에
29
- // 데이터 매핑에 실패 (light dom에 저장된 slot내용을 shadow dom을 찾지못해 매핑 실패)
30
- // 따라서 slot내용을 받은 후에 복제하여 state에 저장
31
22
  componentWillLoad() {
32
- const contentEl = this.el.querySelector('[slot="content"]');
33
- if (contentEl) {
34
- this.slotContent = contentEl.cloneNode(true);
35
- }
23
+ this.slotContentHTML = this.el.innerHTML;
24
+ this.el.replaceChildren();
25
+ // 깜빡이는 현상을 막기 위해 기본으로 <sd-tooltip></sd-tooltip> hidden이 된 elment를 visible로 만들어줌
26
+ this.el.classList.toggle('visible', true);
36
27
  }
37
28
  render() {
38
29
  const handleTrigger = this.trigger === 'hover'
@@ -43,20 +34,12 @@ export class SdTooltip {
43
34
  : {
44
35
  onClick: () => (this.showTooltip = !this.showTooltip),
45
36
  };
46
- return (h(Fragment, { key: '1016ad941100e902068b5a7d7773a2dbf7ab0667' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-tooltip-portal", { key: '8370b55d3bafa7a5ca429ee17c7555cfdb9e51a2', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, h("div", { key: '94a8d13f88050792b3e307901c2545995d92fdaf', class: {
47
- 'sd-tooltip-menu': true,
48
- [`sd-tooltip-menu--${this.type}`]: true,
49
- [`sd-tooltip-menu--${this.placement}`]: true,
50
- 'sd-tooltip-menu--with-close': this.useClose,
51
- [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
52
- [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
53
- } }, h("i", { key: 'b13f215dc7f51af86e7748a0ac565f62cbd936ef', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: 'a043ccc525e18baed8c9b4d5cdd7651c4600b4e4', class: {
54
- [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
55
- } })), h("div", { key: '60e67cc4620b07153a8cef098446e0a292f08230', class: "sd-tooltip-menu__content", ref: el => {
56
- if (el && this.slotContent && !el.hasChildNodes()) {
57
- el.appendChild(this.slotContent.cloneNode(true));
58
- }
59
- } }, !this.slotContent && h("span", { key: 'e2e2afd2e2607be01d474c9329cd15b280214cd0' }, this.el.textContent)), this.useClose && (h("div", { key: '25962f34a91f8838e32c25529cacf048b2bbcf6b', class: "sd-tooltip-menu__close-button" }, h("button", { key: '5e37a4c9bace03a0c2a26edb0125ac0f25c65784', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, h("sd-icon", { key: 'ed7c97b16a507b8fad10d58f4e5a38061517b88a', name: "close", size: "12", color: "#AAAAAA" })))))))));
37
+ return (h(Fragment, { key: 'd0db4bd2d57b38eae1522abd96c2776d6ffdd7c7' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-floating-portal", { key: 'ef5951d34aa4a0b5b831eadf464ab2c6711b9320', parentRef: this.buttonEl, onSdClose: this.handleClose.bind(this), placement: this.placement }, h("div", { key: '07f7090e1de9461d1a67b092631e1c8daae1abaa', class: {
38
+ 'sd-floating-menu': true,
39
+ [`sd-floating-menu--${this.type}`]: true,
40
+ [`sd-floating-menu--${this.placement}`]: true,
41
+ 'sd-floating-menu--with-close': this.useClose,
42
+ } }, h("i", { key: '2e8a1f6d7c2159ed48819229ee41ab75237ad2c2', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '8bc18f6aeb197026ead06ef02837a70f924752f5' })), h("div", { key: 'cb91d969f481e7e1cf22e4a84aed3237b7b22376', class: "sd-floating-menu__content", innerHTML: this.slotContentHTML }), this.useClose && (h("div", { key: '856bf6d63862406177c32400e3d919f5fcd1c8df', class: "sd-floating-menu__close-button" }, h("button", { key: '83e107c58f9bc7927c449a186b19e6fa4730e53f', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: this.handleClose.bind(this) }, h("sd-icon", { key: 'dc9dc331be0c6eb3ae96150ea50515f021746260', name: "close", size: "12", color: "#AAAAAA" })))))))));
60
43
  }
61
44
  static get is() { return "sd-tooltip"; }
62
45
  static get originalStyleUrls() {
@@ -313,7 +296,7 @@ export class SdTooltip {
313
296
  static get states() {
314
297
  return {
315
298
  "showTooltip": {},
316
- "slotContent": {}
299
+ "slotContentHTML": {}
317
300
  };
318
301
  }
319
302
  static get elementRef() { return "el"; }
@@ -1 +1 @@
1
- {"version":3,"file":"sd-tooltip.js","sourceRoot":"","sources":["../../../src/components/sd-tooltip/sd-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Fragment, Prop, State, h } from '@stencil/core';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nimport { ButtonSize, ButtonVariant } from '../sd-button/sd-button';\nimport { TooltipArrow } from '../assets/tooltipArrow';\n\n@Component({\n tag: 'sd-tooltip',\n styleUrl: 'sd-tooltip.scss',\n})\nexport class SdTooltip {\n @Element() el!: HTMLElement;\n\n @Prop() trigger: 'hover' | 'click' = 'hover';\n @Prop() placement: 'top' | 'bottom' | 'left' | 'right' = 'top';\n @Prop() color: string = '#01BB4B';\n @Prop() type: 'default' | 'caution' | 'notice' | 'accent' = 'default';\n\n @Prop() icon: IconName = 'helpOutline';\n @Prop() iconSize: number = 12;\n\n @Prop() label: string = '';\n @Prop() buttonSize: ButtonSize = 'sm';\n @Prop() buttonVariant: ButtonVariant = 'primary';\n\n @Prop() noHover: boolean = true;\n\n @Prop() useClose: boolean = false;\n\n @State() showTooltip: boolean = false;\n @State() slotContent: HTMLElement | null = null;\n\n private static readonly COLOR_OF_TYPE = {\n default: { background: 'oceanblue_85', text: 'white' },\n caution: { background: 'red_20', text: 'red_70' },\n notice: { background: 'orange_10', text: 'orange_65' },\n accent: { background: 'brilliantblue_20', text: 'brilliantblue_75' },\n };\n\n private buttonEl?: HTMLStencilElement;\n\n private handleClose = () => {\n this.showTooltip = false;\n };\n\n // 현재 tooltip popover가 조건부 렌더링이여서 초기 slot이 렌더링 되지 않은 시점에\n // 데이터 매핑에 실패 (light dom에 저장된 slot내용을 shadow dom을 찾지못해 매핑 실패)\n // 따라서 slot내용을 받은 후에 복제하여 state에 저장\n componentWillLoad() {\n const contentEl = this.el.querySelector('[slot=\"content\"]');\n if (contentEl) {\n this.slotContent = contentEl.cloneNode(true) as HTMLElement;\n }\n }\n\n render() {\n const handleTrigger =\n this.trigger === 'hover'\n ? {\n onMouseEnter: () => (this.showTooltip = true),\n onMouseLeave: () => (this.showTooltip = false),\n }\n : {\n onClick: () => (this.showTooltip = !this.showTooltip),\n };\n\n return (\n <Fragment>\n {this.label ? (\n <sd-button\n ref={el => (this.buttonEl = el)}\n label={this.label}\n icon={this.icon}\n size={this.buttonSize}\n color={this.color}\n variant={this.buttonVariant}\n class=\"sd-tooltip\"\n {...handleTrigger}\n ></sd-button>\n ) : (\n <sd-icon\n ref={el => (this.buttonEl = el)}\n name={this.icon}\n size={this.iconSize}\n color={this.color}\n class=\"sd-tooltip\"\n {...handleTrigger}\n ></sd-icon>\n )}\n\n {this.showTooltip && (\n <sd-tooltip-portal\n parentRef={this.buttonEl}\n onSdClose={() => this.handleClose()}\n placement={this.placement}\n >\n <div\n class={{\n 'sd-tooltip-menu': true,\n [`sd-tooltip-menu--${this.type}`]: true,\n [`sd-tooltip-menu--${this.placement}`]: true,\n 'sd-tooltip-menu--with-close': this.useClose,\n [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,\n [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,\n }}\n >\n <i class={`sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}`}>\n <TooltipArrow\n class={{\n [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,\n }}\n ></TooltipArrow>\n </i>\n\n <div\n class=\"sd-tooltip-menu__content\"\n ref={el => {\n if (el && this.slotContent && !el.hasChildNodes()) {\n el.appendChild(this.slotContent.cloneNode(true));\n }\n }}\n >\n {!this.slotContent && <span>{this.el.textContent}</span>}\n </div>\n\n {this.useClose && (\n <div class=\"sd-tooltip-menu__close-button\">\n <button\n type=\"button\"\n aria-label=\"Close tooltip\"\n title=\"Close tooltip\"\n onClick={() => this.handleClose()}\n >\n <sd-icon name=\"close\" size=\"12\" color=\"#AAAAAA\"></sd-icon>\n </button>\n </div>\n )}\n </div>\n </sd-tooltip-portal>\n )}\n </Fragment>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"sd-tooltip.js","sourceRoot":"","sources":["../../../src/components/sd-tooltip/sd-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Fragment, Prop, State, h } from '@stencil/core';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nimport { ButtonSize, ButtonVariant } from '../sd-button/sd-button';\nimport { TooltipArrow } from '../assets/tooltipArrow';\n\nexport interface SdTooltipProps {\n trigger?: 'hover' | 'click';\n placement?: 'top' | 'bottom' | 'left' | 'right';\n color?: string;\n type?: 'default' | 'caution' | 'notice' | 'accent';\n icon?: IconName;\n iconSize?: number;\n label?: string;\n buttonSize?: ButtonSize;\n buttonVariant?: ButtonVariant;\n noHover?: boolean;\n useClose?: boolean;\n}\n\n@Component({\n tag: 'sd-tooltip',\n styleUrl: 'sd-tooltip.scss',\n})\nexport class SdTooltip {\n @Element() el!: HTMLElement;\n\n @Prop() trigger: 'hover' | 'click' = 'hover';\n @Prop() placement: 'top' | 'bottom' | 'left' | 'right' = 'top';\n @Prop() color: string = '#01BB4B';\n @Prop() type: 'default' | 'caution' | 'notice' | 'accent' = 'default';\n\n @Prop() icon: IconName = 'helpOutline';\n @Prop() iconSize: number = 12;\n\n @Prop() label: string = '';\n @Prop() buttonSize: ButtonSize = 'sm';\n @Prop() buttonVariant: ButtonVariant = 'primary';\n\n @Prop() noHover: boolean = true;\n\n @Prop() useClose: boolean = false;\n\n @State() showTooltip: boolean = false;\n @State() slotContentHTML: string = '';\n\n private buttonEl?: HTMLStencilElement;\n\n private handleClose = () => {\n this.showTooltip = false;\n };\n\n componentWillLoad() {\n this.slotContentHTML = this.el.innerHTML;\n this.el.replaceChildren();\n // 깜빡이는 현상을 막기 위해 기본으로 <sd-tooltip></sd-tooltip> hidden이 elment를 visible로 만들어줌\n this.el.classList.toggle('visible', true);\n }\n\n render() {\n const handleTrigger =\n this.trigger === 'hover'\n ? {\n onMouseEnter: () => (this.showTooltip = true),\n onMouseLeave: () => (this.showTooltip = false),\n }\n : {\n onClick: () => (this.showTooltip = !this.showTooltip),\n };\n\n return (\n <Fragment>\n {this.label ? (\n <sd-button\n ref={el => (this.buttonEl = el)}\n label={this.label}\n icon={this.icon}\n size={this.buttonSize}\n color={this.color}\n variant={this.buttonVariant}\n class=\"sd-tooltip\"\n {...handleTrigger}\n ></sd-button>\n ) : (\n <sd-icon\n ref={el => (this.buttonEl = el)}\n name={this.icon}\n size={this.iconSize}\n color={this.color}\n class=\"sd-tooltip\"\n {...handleTrigger}\n ></sd-icon>\n )}\n\n {this.showTooltip && (\n <sd-floating-portal\n parentRef={this.buttonEl}\n onSdClose={this.handleClose.bind(this)}\n placement={this.placement}\n >\n <div\n class={{\n 'sd-floating-menu': true,\n [`sd-floating-menu--${this.type}`]: true,\n [`sd-floating-menu--${this.placement}`]: true,\n 'sd-floating-menu--with-close': this.useClose,\n }}\n >\n <i class={`sd-floating-menu__arrow sd-floating-menu__arrow--${this.placement}`}>\n <TooltipArrow></TooltipArrow>\n </i>\n\n <div class=\"sd-floating-menu__content\" innerHTML={this.slotContentHTML}></div>\n\n {this.useClose && (\n <div class=\"sd-floating-menu__close-button\">\n <button\n type=\"button\"\n aria-label=\"Close tooltip\"\n title=\"Close tooltip\"\n onClick={this.handleClose.bind(this)}\n >\n <sd-icon name=\"close\" size=\"12\" color=\"#AAAAAA\"></sd-icon>\n </button>\n </div>\n )}\n </div>\n </sd-floating-portal>\n )}\n </Fragment>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/types/select.ts"],"names":[],"mappings":"","sourcesContent":["export interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup extends SelectOption {\n type: 'group' | 'subgroup' | 'item';\n parent?: string;\n}\n\nexport interface SelectStyleProps {\n containerStyle?: { [key: string]: string };\n triggerStyle?: { [key: string]: string };\n dropdownStyle?: { [key: string]: string };\n optionStyle?: { [key: string]: string };\n labelStyle?: { [key: string]: string };\n}\n\nexport interface SelectEvents {\n sdChange: {\n value: string | number | null;\n option: SelectOption | null;\n };\n dropDownShow: { isOpen: boolean };\n}\n\nexport interface SelectMultipleEvents extends Pick<SelectEvents, 'dropDownShow' | 'dropDownShow'> {\n sdChange: SelectOption[] | null;\n}\n"]}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/types/select.ts"],"names":[],"mappings":"","sourcesContent":["export interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup extends SelectOption {\n type: 'group' | 'subgroup' | 'item';\n parent?: string;\n}\n\nexport interface SelectStyleProps {\n containerStyle?: { [key: string]: string };\n triggerStyle?: { [key: string]: string };\n dropdownStyle?: { [key: string]: string };\n optionStyle?: { [key: string]: string };\n labelStyle?: { [key: string]: string };\n}\n\nexport interface SelectEvents {\n sdChange: {\n value: string | number | null;\n option: SelectOption | null;\n };\n dropDownShow: { isOpen: boolean };\n}\n\nexport interface SelectMultipleEvents extends Pick<SelectEvents, 'dropDownShow' | 'dropDownShow'> {\n sdUpdate: SelectOption[] | null;\n}\n"]}
@@ -1,4 +1,4 @@
1
- export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-CQBrru3e.js';
1
+ export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-YLoygqPr.js';
2
2
 
3
3
  function format(first, middle, last) {
4
4
  return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
@@ -0,0 +1,104 @@
1
+ import { p as proxyCustomElement, H, h, F as Fragment, t as transformTag } from './p-YLoygqPr.js';
2
+ import { T as TooltipArrow } from './p-BKSlQGJv.js';
3
+ import { d as defineCustomElement$3 } from './p-CdGD6AqM.js';
4
+ import { d as defineCustomElement$2 } from './p-CVMprLsE.js';
5
+ import { d as defineCustomElement$1 } from './p-DnQF6htq.js';
6
+
7
+ const sdTooltipCss = () => `sd-tooltip{visibility:hidden !important;display:inline-flex}sd-tooltip.visible{visibility:visible !important}sd-tooltip .sd-tooltip{position:relative;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}`;
8
+
9
+ const SdTooltip = /*@__PURE__*/ proxyCustomElement(class SdTooltip extends H {
10
+ constructor(registerHost) {
11
+ super();
12
+ if (registerHost !== false) {
13
+ this.__registerHost();
14
+ }
15
+ }
16
+ get el() { return this; }
17
+ trigger = 'hover';
18
+ placement = 'top';
19
+ color = '#01BB4B';
20
+ type = 'default';
21
+ icon = 'helpOutline';
22
+ iconSize = 12;
23
+ label = '';
24
+ buttonSize = 'sm';
25
+ buttonVariant = 'primary';
26
+ noHover = true;
27
+ useClose = false;
28
+ showTooltip = false;
29
+ slotContentHTML = '';
30
+ buttonEl;
31
+ handleClose = () => {
32
+ this.showTooltip = false;
33
+ };
34
+ componentWillLoad() {
35
+ this.slotContentHTML = this.el.innerHTML;
36
+ this.el.replaceChildren();
37
+ // 깜빡이는 현상을 막기 위해 기본으로 <sd-tooltip></sd-tooltip> hidden이 된 elment를 visible로 만들어줌
38
+ this.el.classList.toggle('visible', true);
39
+ }
40
+ render() {
41
+ const handleTrigger = this.trigger === 'hover'
42
+ ? {
43
+ onMouseEnter: () => (this.showTooltip = true),
44
+ onMouseLeave: () => (this.showTooltip = false),
45
+ }
46
+ : {
47
+ onClick: () => (this.showTooltip = !this.showTooltip),
48
+ };
49
+ return (h(Fragment, { key: 'd0db4bd2d57b38eae1522abd96c2776d6ffdd7c7' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-floating-portal", { key: 'ef5951d34aa4a0b5b831eadf464ab2c6711b9320', parentRef: this.buttonEl, onSdClose: this.handleClose.bind(this), placement: this.placement }, h("div", { key: '07f7090e1de9461d1a67b092631e1c8daae1abaa', class: {
50
+ 'sd-floating-menu': true,
51
+ [`sd-floating-menu--${this.type}`]: true,
52
+ [`sd-floating-menu--${this.placement}`]: true,
53
+ 'sd-floating-menu--with-close': this.useClose,
54
+ } }, h("i", { key: '2e8a1f6d7c2159ed48819229ee41ab75237ad2c2', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '8bc18f6aeb197026ead06ef02837a70f924752f5' })), h("div", { key: 'cb91d969f481e7e1cf22e4a84aed3237b7b22376', class: "sd-floating-menu__content", innerHTML: this.slotContentHTML }), this.useClose && (h("div", { key: '856bf6d63862406177c32400e3d919f5fcd1c8df', class: "sd-floating-menu__close-button" }, h("button", { key: '83e107c58f9bc7927c449a186b19e6fa4730e53f', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: this.handleClose.bind(this) }, h("sd-icon", { key: 'dc9dc331be0c6eb3ae96150ea50515f021746260', name: "close", size: "12", color: "#AAAAAA" })))))))));
55
+ }
56
+ static get style() { return sdTooltipCss(); }
57
+ }, [768, "sd-tooltip", {
58
+ "trigger": [1],
59
+ "placement": [1],
60
+ "color": [1],
61
+ "type": [1],
62
+ "icon": [1],
63
+ "iconSize": [2, "icon-size"],
64
+ "label": [1],
65
+ "buttonSize": [1, "button-size"],
66
+ "buttonVariant": [1, "button-variant"],
67
+ "noHover": [4, "no-hover"],
68
+ "useClose": [4, "use-close"],
69
+ "showTooltip": [32],
70
+ "slotContentHTML": [32]
71
+ }]);
72
+ function defineCustomElement() {
73
+ if (typeof customElements === "undefined") {
74
+ return;
75
+ }
76
+ const components = ["sd-tooltip", "sd-button", "sd-floating-portal", "sd-icon"];
77
+ components.forEach(tagName => { switch (tagName) {
78
+ case "sd-tooltip":
79
+ if (!customElements.get(transformTag(tagName))) {
80
+ customElements.define(transformTag(tagName), SdTooltip);
81
+ }
82
+ break;
83
+ case "sd-button":
84
+ if (!customElements.get(transformTag(tagName))) {
85
+ defineCustomElement$3();
86
+ }
87
+ break;
88
+ case "sd-floating-portal":
89
+ if (!customElements.get(transformTag(tagName))) {
90
+ defineCustomElement$2();
91
+ }
92
+ break;
93
+ case "sd-icon":
94
+ if (!customElements.get(transformTag(tagName))) {
95
+ defineCustomElement$1();
96
+ }
97
+ break;
98
+ } });
99
+ }
100
+
101
+ export { SdTooltip as S, defineCustomElement as d };
102
+ //# sourceMappingURL=p-7xekTQRB.js.map
103
+
104
+ //# sourceMappingURL=p-7xekTQRB.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-7xekTQRB.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-tooltip/sd-tooltip.scss?tag=sd-tooltip","src/components/sd-tooltip/sd-tooltip.tsx"],"sourcesContent":["sd-tooltip {\n visibility: hidden !important;\n display: inline-flex;\n\n &.visible {\n visibility: visible !important;\n }\n\n .sd-tooltip {\n position: relative;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n}\n","import { Component, Element, Fragment, Prop, State, h } from '@stencil/core';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nimport { ButtonSize, ButtonVariant } from '../sd-button/sd-button';\nimport { TooltipArrow } from '../assets/tooltipArrow';\n\nexport interface SdTooltipProps {\n trigger?: 'hover' | 'click';\n placement?: 'top' | 'bottom' | 'left' | 'right';\n color?: string;\n type?: 'default' | 'caution' | 'notice' | 'accent';\n icon?: IconName;\n iconSize?: number;\n label?: string;\n buttonSize?: ButtonSize;\n buttonVariant?: ButtonVariant;\n noHover?: boolean;\n useClose?: boolean;\n}\n\n@Component({\n tag: 'sd-tooltip',\n styleUrl: 'sd-tooltip.scss',\n})\nexport class SdTooltip {\n @Element() el!: HTMLElement;\n\n @Prop() trigger: 'hover' | 'click' = 'hover';\n @Prop() placement: 'top' | 'bottom' | 'left' | 'right' = 'top';\n @Prop() color: string = '#01BB4B';\n @Prop() type: 'default' | 'caution' | 'notice' | 'accent' = 'default';\n\n @Prop() icon: IconName = 'helpOutline';\n @Prop() iconSize: number = 12;\n\n @Prop() label: string = '';\n @Prop() buttonSize: ButtonSize = 'sm';\n @Prop() buttonVariant: ButtonVariant = 'primary';\n\n @Prop() noHover: boolean = true;\n\n @Prop() useClose: boolean = false;\n\n @State() showTooltip: boolean = false;\n @State() slotContentHTML: string = '';\n\n private buttonEl?: HTMLStencilElement;\n\n private handleClose = () => {\n this.showTooltip = false;\n };\n\n componentWillLoad() {\n this.slotContentHTML = this.el.innerHTML;\n this.el.replaceChildren();\n // 깜빡이는 현상을 막기 위해 기본으로 <sd-tooltip></sd-tooltip> hidden이 된 elment를 visible로 만들어줌\n this.el.classList.toggle('visible', true);\n }\n\n render() {\n const handleTrigger =\n this.trigger === 'hover'\n ? {\n onMouseEnter: () => (this.showTooltip = true),\n onMouseLeave: () => (this.showTooltip = false),\n }\n : {\n onClick: () => (this.showTooltip = !this.showTooltip),\n };\n\n return (\n <Fragment>\n {this.label ? (\n <sd-button\n ref={el => (this.buttonEl = el)}\n label={this.label}\n icon={this.icon}\n size={this.buttonSize}\n color={this.color}\n variant={this.buttonVariant}\n class=\"sd-tooltip\"\n {...handleTrigger}\n ></sd-button>\n ) : (\n <sd-icon\n ref={el => (this.buttonEl = el)}\n name={this.icon}\n size={this.iconSize}\n color={this.color}\n class=\"sd-tooltip\"\n {...handleTrigger}\n ></sd-icon>\n )}\n\n {this.showTooltip && (\n <sd-floating-portal\n parentRef={this.buttonEl}\n onSdClose={this.handleClose.bind(this)}\n placement={this.placement}\n >\n <div\n class={{\n 'sd-floating-menu': true,\n [`sd-floating-menu--${this.type}`]: true,\n [`sd-floating-menu--${this.placement}`]: true,\n 'sd-floating-menu--with-close': this.useClose,\n }}\n >\n <i class={`sd-floating-menu__arrow sd-floating-menu__arrow--${this.placement}`}>\n <TooltipArrow></TooltipArrow>\n </i>\n\n <div class=\"sd-floating-menu__content\" innerHTML={this.slotContentHTML}></div>\n\n {this.useClose && (\n <div class=\"sd-floating-menu__close-button\">\n <button\n type=\"button\"\n aria-label=\"Close tooltip\"\n title=\"Close tooltip\"\n onClick={this.handleClose.bind(this)}\n >\n <sd-icon name=\"close\" size=\"12\" color=\"#AAAAAA\"></sd-icon>\n </button>\n </div>\n )}\n </div>\n </sd-floating-portal>\n )}\n </Fragment>\n );\n }\n}\n"],"version":3}
@@ -1,8 +1,8 @@
1
- import { h } from './p-CQBrru3e.js';
1
+ import { h } from './p-YLoygqPr.js';
2
2
 
3
3
  const TooltipArrow = (props) => (h("svg", { width: "16", height: "12", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, 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" })));
4
4
 
5
5
  export { TooltipArrow as T };
6
- //# sourceMappingURL=p-BDkKpeVz.js.map
6
+ //# sourceMappingURL=p-BKSlQGJv.js.map
7
7
 
8
- //# sourceMappingURL=p-BDkKpeVz.js.map
8
+ //# sourceMappingURL=p-BKSlQGJv.js.map
@@ -1 +1 @@
1
- {"file":"p-BDkKpeVz.js","mappings":";;AAEa,MAAA,YAAY,GAAG,CAAC,KAAe,MAC3C,CACC,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,KAC9B,KAAK,EAAA,EAET,CACC,CAAA,MAAA,EAAA,EAAA,CAAC,EAAC,iHAAiH,EACnH,IAAI,EAAC,cAAc,EAAA,CAClB,CACG;;;;","names":[],"sources":["src/components/assets/tooltipArrow.tsx"],"sourcesContent":["import { h } from '@stencil/core';\n\nexport const TooltipArrow = (props: SVGProps) => (\n <svg\n width=\"16\"\n height=\"12\"\n viewBox=\"0 0 16 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"version":3}
1
+ {"file":"p-BKSlQGJv.js","mappings":";;AAEa,MAAA,YAAY,GAAG,CAAC,KAAe,MAC3C,CACC,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,KAC9B,KAAK,EAAA,EAET,CACC,CAAA,MAAA,EAAA,EAAA,CAAC,EAAC,iHAAiH,EACnH,IAAI,EAAC,cAAc,EAAA,CAClB,CACG;;;;","names":[],"sources":["src/components/assets/tooltipArrow.tsx"],"sourcesContent":["import { h } from '@stencil/core';\n\nexport const TooltipArrow = (props: SVGProps) => (\n <svg\n width=\"16\"\n height=\"12\"\n viewBox=\"0 0 16 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"version":3}
@@ -1,13 +1,14 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, t as transformTag } from './p-CQBrru3e.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, t as transformTag } from './p-YLoygqPr.js';
2
2
 
3
- const SdTooltipPortal = /*@__PURE__*/ proxyCustomElement(class SdTooltipPortal extends H {
3
+ const sdFloatingPortalCss = () => `.sd-floating-menu{width:fit-content;padding:12px 20px;border-radius:4px;font-size:12px;position:relative;box-sizing:border-box;background:#07284a;color:#ffffff}.sd-floating-menu .sd-floating-menu__arrow{color:#07284a}.sd-floating-menu--default{background:#07284a;color:#ffffff}.sd-floating-menu--default .sd-floating-menu__arrow{color:#07284a}.sd-floating-menu--caution{background:#fce6e6;color:#fb4444}.sd-floating-menu--caution .sd-floating-menu__arrow{color:#fce6e6}.sd-floating-menu--notice{background:#ffead7;color:#ff6b00}.sd-floating-menu--notice .sd-floating-menu__arrow{color:#ffead7}.sd-floating-menu--accent{background:#e6f1ff;color:#0075ff}.sd-floating-menu--accent .sd-floating-menu__arrow{color:#e6f1ff}.sd-floating-menu__arrow{position:absolute;display:flex;width:9.6px;height:7.2px}.sd-floating-menu__arrow svg{width:100%;height:100%}.sd-floating-menu__arrow--top{bottom:-7.2px;left:50%;transform:translateX(-50%)}.sd-floating-menu__arrow--bottom{top:-7.2px;left:50%;transform:translateX(-50%) rotate(180deg)}.sd-floating-menu__arrow--left{right:-7.2px;top:50%;transform:translateY(-50%) rotate(-90deg)}.sd-floating-menu__arrow--right{left:-7.2px;top:50%;transform:translateY(-50%) rotate(90deg)}.sd-floating-menu__content{font-size:12px;line-height:20px}.sd-floating-menu__content .sd-floating-menu__title{font-weight:700;margin-bottom:4px}.sd-floating-menu__content .sd-floating-menu__messages{font-weight:500}.sd-floating-menu__content .sd-floating-menu__buttons{margin-top:12px;display:flex;gap:8px;align-items:center}.sd-floating-menu__content .sd-floating-menu__buttons--1{justify-content:flex-end}.sd-floating-menu__content .sd-floating-menu__buttons--2{justify-content:space-between}.sd-floating-menu__close-button{position:absolute;top:16px;right:12px;padding:0;background:none;border:none;cursor:pointer}`;
4
+
5
+ const SdFloatingPopover = /*@__PURE__*/ proxyCustomElement(class SdFloatingPopover extends H {
4
6
  constructor(registerHost) {
5
7
  super();
6
8
  if (registerHost !== false) {
7
9
  this.__registerHost();
8
10
  }
9
- this.__attachShadow();
10
- this.sdClose = createEvent(this, "sdClose");
11
+ this.close = createEvent(this, "sdClose");
11
12
  }
12
13
  get el() { return this; }
13
14
  to = 'body';
@@ -16,7 +17,7 @@ const SdTooltipPortal = /*@__PURE__*/ proxyCustomElement(class SdTooltipPortal e
16
17
  zIndex = 9999;
17
18
  placement = 'bottom';
18
19
  open = false;
19
- sdClose;
20
+ close;
20
21
  container;
21
22
  wrapper;
22
23
  rafId;
@@ -95,7 +96,7 @@ const SdTooltipPortal = /*@__PURE__*/ proxyCustomElement(class SdTooltipPortal e
95
96
  if (!rect.width && !rect.height)
96
97
  return; // 요소가 보이지 않는 경우
97
98
  const [offsetX, offsetY] = this.offset;
98
- const ARROW_SIZE = SdTooltipPortal.ARROW_SIZE;
99
+ const ARROW_SIZE = SdFloatingPopover.ARROW_SIZE;
99
100
  let top = 0;
100
101
  let left = 0;
101
102
  switch (this.placement) {
@@ -150,12 +151,13 @@ const SdTooltipPortal = /*@__PURE__*/ proxyCustomElement(class SdTooltipPortal e
150
151
  }
151
152
  if (this.wrapper?.contains(e.target))
152
153
  return;
153
- this.sdClose.emit();
154
+ this.close.emit();
154
155
  }
155
156
  render() {
156
- return h("slot", { key: 'f26d3228d5c0965c2303e599259a6e93307009dc' });
157
+ return h("slot", { key: 'f2000891d7d3bd71982f591bf953d1421f67fb5e' });
157
158
  }
158
- }, [769, "sd-tooltip-portal", {
159
+ static get style() { return sdFloatingPortalCss(); }
160
+ }, [772, "sd-floating-portal", {
159
161
  "to": [1],
160
162
  "parentRef": [16],
161
163
  "offset": [16],
@@ -167,17 +169,17 @@ function defineCustomElement() {
167
169
  if (typeof customElements === "undefined") {
168
170
  return;
169
171
  }
170
- const components = ["sd-tooltip-portal"];
172
+ const components = ["sd-floating-portal"];
171
173
  components.forEach(tagName => { switch (tagName) {
172
- case "sd-tooltip-portal":
174
+ case "sd-floating-portal":
173
175
  if (!customElements.get(transformTag(tagName))) {
174
- customElements.define(transformTag(tagName), SdTooltipPortal);
176
+ customElements.define(transformTag(tagName), SdFloatingPopover);
175
177
  }
176
178
  break;
177
179
  } });
178
180
  }
179
181
 
180
- export { SdTooltipPortal as S, defineCustomElement as d };
181
- //# sourceMappingURL=p-C5U6Otnl.js.map
182
+ export { SdFloatingPopover as S, defineCustomElement as d };
183
+ //# sourceMappingURL=p-CVMprLsE.js.map
182
184
 
183
- //# sourceMappingURL=p-C5U6Otnl.js.map
185
+ //# sourceMappingURL=p-CVMprLsE.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-CVMprLsE.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-floating-portal/sd-floating-portal.scss?tag=sd-floating-portal","src/components/sd-floating-portal/sd-floating-portal.tsx"],"sourcesContent":["@import 'variables';\n\n.sd-floating-menu {\n width: fit-content;\n padding: 12px 20px;\n border-radius: 4px;\n font-size: 12px;\n position: relative;\n box-sizing: border-box;\n background: $oceanblue_85;\n color: $white;\n\n .sd-floating-menu__arrow {\n color: $oceanblue_85;\n }\n\n &--default {\n background: $oceanblue_85;\n color: $white;\n .sd-floating-menu__arrow {\n color: $oceanblue_85;\n }\n }\n\n &--caution {\n background: $red_20;\n color: $red_70;\n .sd-floating-menu__arrow {\n color: $red_20;\n }\n }\n\n &--notice {\n background: $orange_10;\n color: $orange_65;\n .sd-floating-menu__arrow {\n color: $orange_10;\n }\n }\n\n &--accent {\n background: $brilliantblue_20;\n color: $brilliantblue_75;\n .sd-floating-menu__arrow {\n color: $brilliantblue_20;\n }\n }\n\n &__arrow {\n position: absolute;\n display: flex;\n width: 9.6px;\n height: 7.2px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n\n &--top {\n bottom: -7.2px;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &--bottom {\n top: -7.2px;\n left: 50%;\n transform: translateX(-50%) rotate(180deg);\n }\n\n &--left {\n right: -7.2px;\n top: 50%;\n transform: translateY(-50%) rotate(-90deg);\n }\n\n &--right {\n left: -7.2px;\n top: 50%;\n transform: translateY(-50%) rotate(90deg);\n }\n }\n\n &__content {\n font-size: 12px;\n line-height: 20px;\n\n .sd-floating-menu__title {\n font-weight: 700;\n margin-bottom: 4px;\n }\n\n .sd-floating-menu__messages {\n font-weight: 500;\n }\n\n .sd-floating-menu__buttons {\n margin-top: 12px;\n display: flex;\n gap: 8px;\n align-items: center;\n\n &--1 {\n justify-content: flex-end;\n }\n\n &--2 {\n justify-content: space-between;\n }\n }\n }\n\n &__close-button {\n position: absolute;\n top: 16px;\n right: 12px;\n padding: 0;\n background: none;\n border: none;\n cursor: pointer;\n }\n}\n","import { Component, Element, Event, EventEmitter, Listen, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'sd-floating-portal',\n styleUrl: 'sd-floating-portal.scss',\n})\nexport class SdFloatingPopover {\n @Element() el!: HTMLElement;\n @Prop() to: HTMLElement | string = 'body';\n @Prop() parentRef: HTMLElement | null = null;\n @Prop() offset: [number, number] = [0, 0];\n @Prop() zIndex: number = 9999;\n @Prop() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n @Prop() open: boolean = false;\n\n @Event({ eventName: 'sdClose' }) close!: EventEmitter<void>;\n\n private container?: HTMLElement;\n private wrapper?: HTMLElement;\n private rafId?: number;\n private isInsideClick = false;\n\n private resizeObserver?: ResizeObserver;\n private mutationObserver?: MutationObserver;\n\n private static readonly ARROW_SIZE = 11.2;\n\n componentDidLoad() {\n this.container = this.resolveContainer();\n this.createWrapper();\n this.moveSlotContent();\n\n // DOM이 완전히 렌더링된 후 위치 계산\n requestAnimationFrame(() => {\n this.updatePosition();\n if (this.wrapper) {\n this.wrapper.style.visibility = 'visible'; // 위치 계산 후 표시\n }\n });\n\n this.observeParent();\n }\n\n componentDidRender() {\n if (!this.wrapper) return;\n\n // this.wrapper.style.display = this.open ? 'block' : 'none';\n // if (this.open) this.updatePosition();\n\n if (this.open) {\n this.wrapper.style.display = 'block';\n // RAF를 사용해서 다음 프레임에 위치 업데이트\n requestAnimationFrame(() => {\n this.updatePosition();\n if (this.wrapper) {\n this.wrapper.style.visibility = 'visible';\n }\n });\n } else {\n this.wrapper.style.display = 'none';\n this.wrapper.style.visibility = 'hidden';\n }\n }\n\n disconnectedCallback() {\n if (this.rafId) cancelAnimationFrame(this.rafId);\n this.unobserveParent();\n this.wrapper?.remove();\n }\n\n private resolveContainer(): HTMLElement {\n const el = typeof this.to === 'string' ? document.querySelector(this.to) : this.to;\n return el instanceof HTMLElement ? el : document.body;\n }\n\n private createWrapper() {\n this.wrapper = document.createElement('div');\n Object.assign(this.wrapper.style, {\n position: 'absolute',\n zIndex: this.zIndex.toString(),\n transition: 'opacity 0.4s',\n top: '-9999px',\n left: '-9999px',\n });\n this.container!.appendChild(this.wrapper);\n }\n\n private moveSlotContent() {\n if (!this.wrapper) return;\n const nodes = Array.from(this.el.childNodes).filter(n => n.nodeType !== Node.COMMENT_NODE);\n nodes.forEach(n => this.wrapper!.appendChild(n));\n }\n\n // 위치 갱신 (scroll / resize)\n @Listen('scroll', { target: 'window' })\n @Listen('resize', { target: 'window' })\n updatePosition() {\n if (this.rafId) cancelAnimationFrame(this.rafId);\n\n this.rafId = requestAnimationFrame(() => {\n if (!this.parentRef || !this.wrapper) return;\n\n const rect = this.parentRef.getBoundingClientRect();\n if (!rect.width && !rect.height) return; // 요소가 보이지 않는 경우\n\n const [offsetX, offsetY] = this.offset;\n const ARROW_SIZE = SdFloatingPopover.ARROW_SIZE;\n\n let top = 0;\n let left = 0;\n\n switch (this.placement) {\n case 'top':\n top = rect.top + window.scrollY - this.wrapper.offsetHeight + offsetY - ARROW_SIZE;\n left = rect.left + window.scrollX + rect.width / 2 - this.wrapper.offsetWidth / 2 + offsetX;\n break;\n\n case 'bottom':\n top = rect.bottom + window.scrollY + offsetY + ARROW_SIZE;\n left = rect.left + window.scrollX + rect.width / 2 - this.wrapper.offsetWidth / 2 + offsetX;\n break;\n\n case 'left':\n top = rect.top + window.scrollY + rect.height / 2 - this.wrapper.offsetHeight / 2 + offsetY;\n left = rect.left + window.scrollX - this.wrapper.offsetWidth - offsetX - ARROW_SIZE;\n break;\n\n case 'right':\n top = rect.top + window.scrollY + rect.height / 2 - this.wrapper.offsetHeight / 2 + offsetY;\n left = rect.right + window.scrollX + offsetX + ARROW_SIZE;\n break;\n }\n\n Object.assign(this.wrapper!.style, {\n top: `${top}px`,\n left: `${left}px`,\n });\n });\n }\n\n // parentRef의 이동 / 크기변경 감지\n private observeParent() {\n if (!this.parentRef) return;\n\n this.resizeObserver = new ResizeObserver(() => this.updatePosition());\n this.resizeObserver.observe(this.parentRef);\n\n this.mutationObserver = new MutationObserver(() => this.updatePosition());\n this.mutationObserver.observe(document.body, {\n childList: true,\n subtree: true,\n });\n }\n\n private unobserveParent() {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n }\n\n // 외부 클릭 감지\n @Listen('mousedown', { target: 'window' })\n handleMouseDown(e: MouseEvent) {\n this.isInsideClick = !!(\n (this.wrapper && this.wrapper.contains(e.target as Node)) ||\n (this.parentRef && this.parentRef.contains(e.target as Node))\n );\n }\n\n @Listen('click', { target: 'window' })\n handleWindowClick(e: MouseEvent) {\n if (this.isInsideClick) {\n this.isInsideClick = false;\n return;\n }\n if (this.wrapper?.contains(e.target as Node)) return;\n this.close.emit();\n }\n\n render() {\n return <slot></slot>;\n }\n}\n"],"version":3}
@@ -0,0 +1,92 @@
1
+ import { p as proxyCustomElement, H, h, t as transformTag } from './p-YLoygqPr.js';
2
+ import { r as resolveColor } from './p-DcGvp3RM.js';
3
+ import { d as defineCustomElement$1 } from './p-DnQF6htq.js';
4
+
5
+ const sdButtonCss = () => `sd-button{display:inline-flex;width:fit-content;height:fit-content}.sd-button{text-decoration:none;cursor:pointer;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;display:inline-flex;align-items:center;justify-content:center;border:none}.sd-button--xs{padding:0 8px;font-size:12px;font-weight:500;line-height:20px;min-height:24px}.sd-button--sm{padding:0 12px;font-size:12px;font-weight:500;line-height:20px;min-height:28px}.sd-button--md{padding:0 20px;font-size:16px;font-weight:500;line-height:26px;min-height:34px}.sd-button--lg{padding:0 28px;font-size:18px;font-weight:500;line-height:30px;min-height:62px}.sd-button--primary{background-color:var(--button-color);color:white;transition:filter 0.2s ease}.sd-button--primary::before{content:"";position:absolute;inset:0;background:#000000;opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--primary:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.25}.sd-button--outline{background:white;border:1px solid var(--button-color);color:var(--button-color)}.sd-button--outline::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--outline:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--outline .sd-button__content{position:relative;z-index:1}.sd-button--ghost{background-color:transparent;color:var(--button-color);border-color:transparent}.sd-button--ghost::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--ghost:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--ghost .sd-button__content{position:relative;z-index:1}.sd-button--disabled{border:1px solid #cccccc;background:#e1e1e1;color:#888888;cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:fit-content;height:fit-content;aspect-ratio:1/1}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:4px;z-index:1;font-weight:500}`;
6
+
7
+ const ICON_SIZES = {
8
+ xs: 12,
9
+ sm: 16,
10
+ md: 20,
11
+ lg: 24,
12
+ };
13
+ const SdButton = /*@__PURE__*/ proxyCustomElement(class SdButton extends H {
14
+ constructor(registerHost) {
15
+ super();
16
+ if (registerHost !== false) {
17
+ this.__registerHost();
18
+ }
19
+ }
20
+ get el() { return this; }
21
+ variant = 'primary';
22
+ size = 'sm';
23
+ color = '#025497';
24
+ label = '';
25
+ disabled = false;
26
+ type = 'button';
27
+ icon;
28
+ iconColor;
29
+ iconSize;
30
+ iconRight;
31
+ noHover = false;
32
+ class = '';
33
+ getButtonClasses() {
34
+ const classes = ['sd-button'];
35
+ classes.push(`sd-button--${this.variant}`);
36
+ classes.push(`sd-button--${this.size}`);
37
+ classes.push(`sd-button--color-${this.color}`);
38
+ if (this.disabled) {
39
+ classes.push('sd-button--disabled');
40
+ }
41
+ if (!this.label && (this.icon || this.iconRight)) {
42
+ classes.push('sd-button--icon-only');
43
+ }
44
+ if (this.noHover) {
45
+ classes.push('sd-button--no-hover');
46
+ }
47
+ return classes.join(' ');
48
+ }
49
+ render() {
50
+ const buttonClasses = this.getButtonClasses();
51
+ // 유틸로 색상 키 -> HEX 매핑 (없으면 원본 그대로)
52
+ const resolvedColor = resolveColor(this.color);
53
+ return (h("button", { key: '9b92f98528d06453492eab68bb6137bcaefbf656', class: `${buttonClasses} ${this.class}`, type: this.type, disabled: this.disabled, style: { '--button-color': resolvedColor } }, h("div", { key: 'a7dae76ec9112b95c2ee765cb2f9b0b4fe5f705a', class: "sd-button__content" }, this.icon && (h("sd-icon", { key: '71784bfcb2d08c77305a70311192dfc2c059ff0a', class: "sd-button__icon sd-button__icon--left", name: this.icon, size: this.iconSize ?? ICON_SIZES[this.size], color: this.iconColor ?? (this.variant === 'primary' ? '#fff' : resolvedColor) })), this.label && h("div", { key: 'bc4b7dec430602765e98fa484d397b141686d8e7', class: "sd-button__label" }, this.label), this.iconRight && (h("sd-icon", { key: '26744c6ace43cbbfc9758a8fdf0174b49f24cd2c', class: "sd-button__icon sd-button__icon--right", name: this.iconRight, size: ICON_SIZES[this.size], color: this.variant === 'primary' ? '#fff' : resolvedColor })))));
54
+ }
55
+ static get style() { return sdButtonCss(); }
56
+ }, [768, "sd-button", {
57
+ "variant": [1],
58
+ "size": [1],
59
+ "color": [1],
60
+ "label": [1],
61
+ "disabled": [4],
62
+ "type": [1],
63
+ "icon": [1],
64
+ "iconColor": [1, "icon-color"],
65
+ "iconSize": [2, "icon-size"],
66
+ "iconRight": [1, "icon-right"],
67
+ "noHover": [4, "no-hover"],
68
+ "class": [1]
69
+ }]);
70
+ function defineCustomElement() {
71
+ if (typeof customElements === "undefined") {
72
+ return;
73
+ }
74
+ const components = ["sd-button", "sd-icon"];
75
+ components.forEach(tagName => { switch (tagName) {
76
+ case "sd-button":
77
+ if (!customElements.get(transformTag(tagName))) {
78
+ customElements.define(transformTag(tagName), SdButton);
79
+ }
80
+ break;
81
+ case "sd-icon":
82
+ if (!customElements.get(transformTag(tagName))) {
83
+ defineCustomElement$1();
84
+ }
85
+ break;
86
+ } });
87
+ }
88
+
89
+ export { SdButton as S, defineCustomElement as d };
90
+ //# sourceMappingURL=p-CdGD6AqM.js.map
91
+
92
+ //# sourceMappingURL=p-CdGD6AqM.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-CdGD6AqM.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-button/sd-button.scss?tag=sd-button","src/components/sd-button/sd-button.tsx"],"sourcesContent":["@import 'variables';\n\nsd-button {\n display: inline-flex;\n width: fit-content;\n height: fit-content;\n}\n\n.sd-button {\n text-decoration: none;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.2s ease-in-out;\n position: relative;\n overflow: hidden;\n white-space: nowrap;\n -webkit-user-select: none;\n user-select: none;\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n &--xs {\n padding: 0 8px;\n font-size: 12px;\n font-weight: 500;\n line-height: 20px;\n min-height: 24px;\n }\n &--sm {\n padding: 0 12px;\n font-size: 12px;\n font-weight: 500;\n line-height: 20px;\n min-height: 28px;\n }\n &--md {\n padding: 0 20px;\n font-size: 16px;\n font-weight: 500;\n line-height: 26px;\n min-height: 34px;\n }\n &--lg {\n padding: 0 28px;\n font-size: 18px;\n font-weight: 500;\n line-height: 30px;\n min-height: 62px;\n }\n &--primary {\n background-color: var(--button-color);\n color: white;\n transition: filter 0.2s ease;\n\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n background: #000000;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 0;\n }\n\n &:hover:not(.sd-button--disabled):not(.sd-button--loading)::before {\n opacity: 0.25;\n }\n }\n\n &--outline {\n background: white;\n border: 1px solid var(--button-color);\n color: var(--button-color);\n\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n background: var(--button-color);\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 0;\n }\n\n &:hover:not(.sd-button--disabled):not(.sd-button--loading)::before {\n opacity: 0.15;\n }\n\n .sd-button__content {\n position: relative;\n z-index: 1;\n }\n }\n &--ghost {\n background-color: transparent;\n color: var(--button-color);\n border-color: transparent;\n\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n background: var(--button-color);\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 0;\n }\n\n &:hover:not(.sd-button--disabled):not(.sd-button--loading)::before {\n opacity: 0.15;\n }\n\n .sd-button__content {\n position: relative;\n z-index: 1;\n }\n }\n &--disabled {\n border: 1px solid $grey_45;\n background: $grey_30;\n color: $grey_65;\n cursor: not-allowed !important;\n }\n &--icon-only {\n padding: 0;\n width: fit-content;\n height: fit-content;\n aspect-ratio: 1 / 1;\n }\n &--no-hover {\n &:hover::before {\n opacity: 0 !important;\n }\n }\n\n .sd-button__content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n\n z-index: 1;\n font-weight: 500;\n }\n}\n\n// /* Focus styles */\n// .sd-button:focus-visible {\n// outline: 2px solid $primary;\n// outline-offset: 2px;\n// }\n\n// /* High contrast mode support */\n// @media (prefers-contrast: high) {\n// .sd-button {\n// border-width: 2px;\n// }\n// }\n","import { Component, Prop, h, Element } from '@stencil/core';\nimport { resolveColor } from '../../utils/color';\n\nexport type ButtonVariant = 'primary' | 'outline' | 'ghost';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\n\nconst ICON_SIZES: { [key in ButtonSize]: number } = {\n xs: 12,\n sm: 16,\n md: 20,\n lg: 24,\n};\n\n@Component({\n tag: 'sd-button',\n styleUrl: 'sd-button.scss',\n})\nexport class SdButton {\n @Element() el!: HTMLElement;\n\n @Prop() variant?: ButtonVariant = 'primary';\n @Prop() size: ButtonSize = 'sm';\n @Prop() color: string = '#025497';\n @Prop() label: string = '';\n @Prop() disabled: boolean = false;\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\n @Prop() icon?: IconName;\n @Prop() iconColor?: string;\n @Prop() iconSize?: number;\n @Prop() iconRight?: IconName;\n @Prop() noHover: boolean = false;\n @Prop() class: string = '';\n\n private getButtonClasses(): string {\n const classes = ['sd-button'];\n\n classes.push(`sd-button--${this.variant}`);\n classes.push(`sd-button--${this.size}`);\n classes.push(`sd-button--color-${this.color}`);\n\n if (this.disabled) {\n classes.push('sd-button--disabled');\n }\n\n if (!this.label && (this.icon || this.iconRight)) {\n classes.push('sd-button--icon-only');\n }\n\n if (this.noHover) {\n classes.push('sd-button--no-hover');\n }\n\n return classes.join(' ');\n }\n\n render() {\n const buttonClasses = this.getButtonClasses();\n // 유틸로 색상 키 -> HEX 매핑 (없으면 원본 그대로)\n const resolvedColor = resolveColor(this.color);\n\n return (\n <button\n class={`${buttonClasses} ${this.class}`}\n type={this.type}\n disabled={this.disabled}\n style={{ '--button-color': resolvedColor }}\n >\n <div class=\"sd-button__content\">\n {this.icon && (\n <sd-icon\n class=\"sd-button__icon sd-button__icon--left\"\n name={this.icon}\n size={this.iconSize ?? ICON_SIZES[this.size!]}\n color={this.iconColor ?? (this.variant === 'primary' ? '#fff' : resolvedColor)}\n ></sd-icon>\n )}\n\n {this.label && <div class=\"sd-button__label\">{this.label}</div>}\n\n {this.iconRight && (\n <sd-icon\n class=\"sd-button__icon sd-button__icon--right\"\n name={this.iconRight}\n size={ICON_SIZES[this.size!]}\n color={this.variant === 'primary' ? '#fff' : resolvedColor}\n ></sd-icon>\n )}\n </div>\n </button>\n );\n }\n}\n"],"version":3}