@sellmate/design-system 1.4.0 → 1.5.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 (247) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/index.cjs.js +2 -2
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/sanitize-inline-html-BZCCwH_U.js +65 -0
  5. package/dist/cjs/sd-calendar_2.cjs.entry.js +7 -6
  6. package/dist/cjs/sd-callout.cjs.entry.js +152 -0
  7. package/dist/cjs/sd-card.cjs.entry.js +1 -1
  8. package/dist/cjs/sd-checkbox.cjs.entry.js +9 -4
  9. package/dist/cjs/sd-chip.cjs.entry.js +1 -1
  10. package/dist/cjs/sd-circle-progress.cjs.entry.js +2 -2
  11. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +4 -3
  12. package/dist/cjs/sd-date-picker_7.cjs.entry.js +9 -9
  13. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
  14. package/dist/cjs/sd-dropdown-button.cjs.entry.js +6 -5
  15. package/dist/cjs/sd-field_3.cjs.entry.js +7 -7
  16. package/dist/cjs/sd-guide.cjs.entry.js +5 -4
  17. package/dist/cjs/sd-key-value-table.cjs.entry.js +1 -1
  18. package/dist/cjs/sd-linear-progress.cjs.entry.js +2 -2
  19. package/dist/cjs/sd-loading-container.cjs.entry.js +2 -2
  20. package/dist/cjs/sd-pagination_4.cjs.entry.js +10 -10
  21. package/dist/cjs/sd-popup.cjs.entry.js +6 -5
  22. package/dist/cjs/sd-portal.cjs.entry.js +1 -1
  23. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +6 -6
  24. package/dist/cjs/sd-select_3.cjs.entry.js +8 -8
  25. package/dist/cjs/sd-switch.cjs.entry.js +1 -1
  26. package/dist/cjs/sd-table.cjs.entry.js +19 -16
  27. package/dist/cjs/{sd-table.config-B7psrvV4.js → sd-table.config-DqgNOdXO.js} +1 -1
  28. package/dist/cjs/sd-tabs.cjs.entry.js +1 -1
  29. package/dist/cjs/sd-tag.cjs.entry.js +4 -2
  30. package/dist/cjs/sd-td.cjs.entry.js +1 -1
  31. package/dist/cjs/sd-toast-container.cjs.entry.js +1 -1
  32. package/dist/cjs/sd-toast.cjs.entry.js +2 -2
  33. package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
  34. package/dist/cjs/{system-VmZRYp6V.js → system-wrt-tcOq.js} +12 -1
  35. package/dist/collection/collection-manifest.json +2 -1
  36. package/dist/collection/components/sd-calendar/sd-calendar.css +3 -1
  37. package/dist/collection/components/sd-calendar/sd-calendar.js +24 -3
  38. package/dist/collection/components/sd-callout/sd-callout.config.js +45 -0
  39. package/dist/collection/components/sd-callout/sd-callout.css +87 -0
  40. package/dist/collection/components/sd-callout/sd-callout.js +114 -0
  41. package/dist/collection/components/sd-card/sd-card.js +1 -1
  42. package/dist/collection/components/sd-checkbox/sd-checkbox.js +9 -4
  43. package/dist/collection/components/sd-chip/sd-chip.js +1 -1
  44. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  45. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +3 -2
  46. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  47. package/dist/collection/components/sd-date-picker/sd-date-picker.js +2 -2
  48. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +1 -1
  49. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +5 -4
  50. package/dist/collection/components/sd-field/sd-field.js +4 -4
  51. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  52. package/dist/collection/components/sd-guide/sd-guide.js +4 -3
  53. package/dist/collection/components/sd-input/sd-input.js +2 -2
  54. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  55. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  56. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
  57. package/dist/collection/components/sd-modal-container/sd-modal-container.js +8 -0
  58. package/dist/collection/components/sd-number-input/sd-number-input.js +4 -4
  59. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  60. package/dist/collection/components/sd-popup/sd-popup.config.js +3 -4
  61. package/dist/collection/components/sd-popup/sd-popup.js +4 -2
  62. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  63. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
  64. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
  65. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
  66. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
  67. package/dist/collection/components/sd-select/sd-select.js +4 -4
  68. package/dist/collection/components/sd-switch/sd-switch.js +1 -1
  69. package/dist/collection/components/sd-table/sd-table.js +17 -14
  70. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +2 -2
  71. package/dist/collection/components/sd-table/sd-td/sd-td.js +1 -1
  72. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +3 -3
  73. package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
  74. package/dist/collection/components/sd-tag/sd-tag.js +4 -2
  75. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  76. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  77. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  78. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  79. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  80. package/dist/collection/utils/html/sanitize-inline-html.js +61 -0
  81. package/dist/collection/utils/modal.js +2 -2
  82. package/dist/components/index.js +1 -1
  83. package/dist/components/{p-Da5i_Sa6.js → p-AO2RGdjH.js} +1 -1
  84. package/dist/components/{p-X-8I-A3g.js → p-B3sb3aIX.js} +1 -1
  85. package/dist/components/{p-CIUE4qr7.js → p-BGb86o0p.js} +1 -1
  86. package/dist/components/{p-C3fqSH7A.js → p-BLhu2So8.js} +1 -1
  87. package/dist/components/{p-INdVvadB.js → p-BSQsJHnV.js} +1 -1
  88. package/dist/components/{p-xX3QT-8K.js → p-BZCvsLRf.js} +1 -1
  89. package/dist/components/{p-BFC3Etk2.js → p-BqrZA_Nl.js} +1 -1
  90. package/dist/components/{p-DS7Ypvt5.js → p-C54v30vB.js} +1 -1
  91. package/dist/components/{p-DlREBZ-C.js → p-CJ-QHG0F.js} +1 -1
  92. package/dist/components/{p-kSfaCwf1.js → p-CbXb6ylI.js} +1 -1
  93. package/dist/components/{p-BRxXhFqt.js → p-CgYjGJEh.js} +1 -1
  94. package/dist/components/{p-CLxVZFEG.js → p-Co3H5873.js} +1 -1
  95. package/dist/components/{p-BRk9YZBe.js → p-Cvk-Luhs.js} +1 -1
  96. package/dist/components/{p-BeBiPTbd.js → p-D5inekTL.js} +1 -1
  97. package/dist/components/{p-Bs1Z5QtN.js → p-DChOBMCc.js} +1 -1
  98. package/dist/components/p-DGlmvjGc.js +1 -0
  99. package/dist/components/{p-DwgaMhOM.js → p-DUcbofDO.js} +1 -1
  100. package/dist/components/{p-DykVq5VY.js → p-DZbc1mgp.js} +1 -1
  101. package/dist/components/{p-t161LJqb.js → p-DeK3og10.js} +1 -1
  102. package/dist/components/{p-BjpbUGud.js → p-DmaopssQ.js} +1 -1
  103. package/dist/components/p-DopVneZA.js +1 -0
  104. package/dist/components/p-DrrsZftV.js +1 -0
  105. package/dist/components/{p-CpgTSxf0.js → p-DyZNk1VT.js} +1 -1
  106. package/dist/components/{p-oyZgWRnC.js → p-HK6Bwtz8.js} +1 -1
  107. package/dist/components/{p-Z5Vk33zf.js → p-IThoLpLs.js} +1 -1
  108. package/dist/components/{p-JlZdKw4C.js → p-J3eT660D.js} +1 -1
  109. package/dist/components/p-fpzgqVv1.js +1 -0
  110. package/dist/components/{p-DiP0LJGq.js → p-iCuIUhaK.js} +1 -1
  111. package/dist/components/p-m_OtjUs1.js +1 -0
  112. package/dist/components/{p-BwPmM1Pm.js → p-uHITnW_J.js} +1 -1
  113. package/dist/components/{p-Cx_d5vsS.js → p-yH47DvUh.js} +1 -1
  114. package/dist/components/sd-barcode-input.js +1 -1
  115. package/dist/components/sd-calendar.js +1 -1
  116. package/dist/components/sd-callout.d.ts +11 -0
  117. package/dist/components/sd-callout.js +1 -0
  118. package/dist/components/sd-card.js +1 -1
  119. package/dist/components/sd-checkbox.js +1 -1
  120. package/dist/components/sd-chip.js +1 -1
  121. package/dist/components/sd-circle-progress.js +1 -1
  122. package/dist/components/sd-confirm-modal.js +1 -1
  123. package/dist/components/sd-date-picker-trigger.js +1 -1
  124. package/dist/components/sd-date-picker.js +1 -1
  125. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  126. package/dist/components/sd-date-range-picker.js +1 -1
  127. package/dist/components/sd-dropdown-button.js +1 -1
  128. package/dist/components/sd-field.js +1 -1
  129. package/dist/components/sd-file-picker.js +1 -1
  130. package/dist/components/sd-floating-portal.js +1 -1
  131. package/dist/components/sd-guide.js +1 -1
  132. package/dist/components/sd-input.js +1 -1
  133. package/dist/components/sd-key-value-table.js +1 -1
  134. package/dist/components/sd-linear-progress.js +1 -1
  135. package/dist/components/sd-loading-container.js +1 -1
  136. package/dist/components/sd-loading-modal.js +1 -1
  137. package/dist/components/sd-modal-container.js +1 -1
  138. package/dist/components/sd-number-input.js +1 -1
  139. package/dist/components/sd-pagination.js +1 -1
  140. package/dist/components/sd-popover.js +1 -1
  141. package/dist/components/sd-popup.js +1 -1
  142. package/dist/components/sd-portal.js +1 -1
  143. package/dist/components/sd-select-list-item-search.js +1 -1
  144. package/dist/components/sd-select-list-item.js +1 -1
  145. package/dist/components/sd-select-listbox.js +1 -1
  146. package/dist/components/sd-select-trigger.js +1 -1
  147. package/dist/components/sd-select.js +1 -1
  148. package/dist/components/sd-switch.js +1 -1
  149. package/dist/components/sd-table.js +1 -1
  150. package/dist/components/sd-tabs.js +1 -1
  151. package/dist/components/sd-tag.js +1 -1
  152. package/dist/components/sd-tbody.js +1 -1
  153. package/dist/components/sd-td.js +1 -1
  154. package/dist/components/sd-textarea.js +1 -1
  155. package/dist/components/sd-thead.js +1 -1
  156. package/dist/components/sd-toast-container.js +1 -1
  157. package/dist/components/sd-toast.js +1 -1
  158. package/dist/components/sd-toggle.js +1 -1
  159. package/dist/components/sd-tooltip.js +1 -1
  160. package/dist/components/sd-tr.js +1 -1
  161. package/dist/design-system/design-system.esm.js +1 -1
  162. package/dist/design-system/index.esm.js +1 -1
  163. package/dist/design-system/{p-74bf0ed9.entry.js → p-06a6798d.entry.js} +1 -1
  164. package/dist/design-system/{p-e611dcd4.entry.js → p-0894c492.entry.js} +1 -1
  165. package/dist/design-system/p-14e30f67.entry.js +1 -0
  166. package/dist/design-system/{p-9b9bf9db.entry.js → p-1e530c87.entry.js} +1 -1
  167. package/dist/design-system/{p-84a94775.entry.js → p-2bdceecb.entry.js} +1 -1
  168. package/dist/design-system/{p-a98f9a29.entry.js → p-339cb954.entry.js} +1 -1
  169. package/dist/design-system/{p-a7ea1cf0.entry.js → p-352c68ae.entry.js} +1 -1
  170. package/dist/design-system/p-3d61e68f.entry.js +1 -0
  171. package/dist/design-system/{p-fe3ae346.entry.js → p-3f4a281f.entry.js} +1 -1
  172. package/dist/design-system/p-40bdbe5a.entry.js +1 -0
  173. package/dist/design-system/{p-481e6934.entry.js → p-435ae69e.entry.js} +1 -1
  174. package/dist/design-system/p-4473c051.entry.js +1 -0
  175. package/dist/design-system/p-61f4238b.entry.js +1 -0
  176. package/dist/design-system/p-786c72e9.entry.js +1 -0
  177. package/dist/design-system/{p-d890a680.entry.js → p-78de36f2.entry.js} +1 -1
  178. package/dist/design-system/p-795bae4c.entry.js +1 -0
  179. package/dist/design-system/{p-522d1481.entry.js → p-819e28fe.entry.js} +1 -1
  180. package/dist/design-system/{p-32e2d71e.entry.js → p-843d4b16.entry.js} +1 -1
  181. package/dist/design-system/{p-cc97f4b4.entry.js → p-8ee990bd.entry.js} +1 -1
  182. package/dist/design-system/{p-42f7febe.entry.js → p-9404ab06.entry.js} +1 -1
  183. package/dist/design-system/p-DGlmvjGc.js +1 -0
  184. package/dist/design-system/{p-DykVq5VY.js → p-DZbc1mgp.js} +1 -1
  185. package/dist/design-system/p-DopVneZA.js +1 -0
  186. package/dist/design-system/{p-e8e64511.entry.js → p-aac84d22.entry.js} +1 -1
  187. package/dist/design-system/{p-f7074386.entry.js → p-b868d747.entry.js} +1 -1
  188. package/dist/design-system/{p-3b8954d9.entry.js → p-b8e34533.entry.js} +1 -1
  189. package/dist/design-system/p-c3e4853c.entry.js +1 -0
  190. package/dist/design-system/{p-11b904a3.entry.js → p-d226bd61.entry.js} +1 -1
  191. package/dist/design-system/{p-dbeaeb31.entry.js → p-d3cc8538.entry.js} +1 -1
  192. package/dist/design-system/{p-ae117afa.entry.js → p-eae21a79.entry.js} +1 -1
  193. package/dist/design-system/{p-e23dac79.entry.js → p-fa670cc4.entry.js} +1 -1
  194. package/dist/esm/design-system.js +1 -1
  195. package/dist/esm/index.js +2 -2
  196. package/dist/esm/loader.js +1 -1
  197. package/dist/esm/sanitize-inline-html-DopVneZA.js +63 -0
  198. package/dist/esm/sd-calendar_2.entry.js +7 -6
  199. package/dist/esm/sd-callout.entry.js +150 -0
  200. package/dist/esm/sd-card.entry.js +1 -1
  201. package/dist/esm/sd-checkbox.entry.js +9 -4
  202. package/dist/esm/sd-chip.entry.js +1 -1
  203. package/dist/esm/sd-circle-progress.entry.js +2 -2
  204. package/dist/esm/sd-confirm-modal_2.entry.js +4 -3
  205. package/dist/esm/sd-date-picker_7.entry.js +9 -9
  206. package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
  207. package/dist/esm/sd-dropdown-button.entry.js +6 -5
  208. package/dist/esm/sd-field_3.entry.js +7 -7
  209. package/dist/esm/sd-guide.entry.js +5 -4
  210. package/dist/esm/sd-key-value-table.entry.js +1 -1
  211. package/dist/esm/sd-linear-progress.entry.js +2 -2
  212. package/dist/esm/sd-loading-container.entry.js +2 -2
  213. package/dist/esm/sd-pagination_4.entry.js +10 -10
  214. package/dist/esm/sd-popup.entry.js +6 -5
  215. package/dist/esm/sd-portal.entry.js +1 -1
  216. package/dist/esm/sd-select-list-item_2.entry.js +6 -6
  217. package/dist/esm/sd-select_3.entry.js +8 -8
  218. package/dist/esm/sd-switch.entry.js +1 -1
  219. package/dist/esm/{sd-table.config-DU7Pc6YH.js → sd-table.config-CFHtQ8LX.js} +1 -1
  220. package/dist/esm/sd-table.entry.js +19 -16
  221. package/dist/esm/sd-tabs.entry.js +1 -1
  222. package/dist/esm/sd-tag.entry.js +4 -2
  223. package/dist/esm/sd-td.entry.js +1 -1
  224. package/dist/esm/sd-toast-container.entry.js +1 -1
  225. package/dist/esm/sd-toast.entry.js +2 -2
  226. package/dist/esm/sd-toggle.entry.js +1 -1
  227. package/dist/esm/{system-GBlVDmy4.js → system-DGlmvjGc.js} +12 -1
  228. package/dist/types/components/sd-calendar/sd-calendar.d.ts +1 -0
  229. package/dist/types/components/sd-callout/sd-callout.config.d.ts +34 -0
  230. package/dist/types/components/sd-callout/sd-callout.d.ts +11 -0
  231. package/dist/types/components.d.ts +43 -0
  232. package/dist/types/utils/html/sanitize-inline-html.d.ts +1 -0
  233. package/hydrate/index.js +338 -95
  234. package/hydrate/index.mjs +338 -95
  235. package/package.json +1 -1
  236. package/dist/components/p-BDVrZ5mV.js +0 -1
  237. package/dist/components/p-CETxX4-M.js +0 -1
  238. package/dist/components/p-CyObYB-g.js +0 -1
  239. package/dist/components/p-GBlVDmy4.js +0 -1
  240. package/dist/design-system/p-29fd86d8.entry.js +0 -1
  241. package/dist/design-system/p-36d744fb.entry.js +0 -1
  242. package/dist/design-system/p-8f4ccae4.entry.js +0 -1
  243. package/dist/design-system/p-9f7f1b8b.entry.js +0 -1
  244. package/dist/design-system/p-GBlVDmy4.js +0 -1
  245. package/dist/design-system/p-a640e509.entry.js +0 -1
  246. package/dist/design-system/p-a97033a2.entry.js +0 -1
  247. package/dist/design-system/p-fc5c4f85.entry.js +0 -1
@@ -0,0 +1,114 @@
1
+ import { h } from "@stencil/core";
2
+ import { CALLOUT_LAYOUT, CALLOUT_TYPE_CONFIG, CALLOUT_TYPOGRAPHY, DANGER_TITLE_LABEL, TYPE_ICON, } from "./sd-callout.config";
3
+ import { sanitizeInlineHtml } from "../../utils/html/sanitize-inline-html";
4
+ export class SdCallout {
5
+ type = 'default';
6
+ message = [];
7
+ get calloutStyle() {
8
+ const typeConfig = CALLOUT_TYPE_CONFIG[this.type] ?? CALLOUT_TYPE_CONFIG.default;
9
+ return {
10
+ '--sd-callout-bg': typeConfig.bg,
11
+ '--sd-callout-border': typeConfig.border,
12
+ '--sd-callout-border-width': CALLOUT_LAYOUT.borderWidth,
13
+ '--sd-callout-content': typeConfig.content,
14
+ '--sd-callout-radius': CALLOUT_LAYOUT.radius,
15
+ '--sd-callout-body-padding-x': CALLOUT_LAYOUT.bodyPaddingX,
16
+ '--sd-callout-body-padding-y': CALLOUT_LAYOUT.bodyPaddingY,
17
+ '--sd-callout-body-gap': CALLOUT_LAYOUT.bodyGap,
18
+ '--sd-callout-body-font-family': CALLOUT_TYPOGRAPHY.body.fontFamily,
19
+ '--sd-callout-body-font-size': CALLOUT_TYPOGRAPHY.body.fontSize,
20
+ '--sd-callout-body-font-weight': CALLOUT_TYPOGRAPHY.body.fontWeight,
21
+ '--sd-callout-body-line-height': CALLOUT_TYPOGRAPHY.body.lineHeight,
22
+ '--sd-callout-title-bg': typeConfig.titleBg ?? 'transparent',
23
+ '--sd-callout-title-color': typeConfig.titleColor ?? 'inherit',
24
+ '--sd-callout-title-padding-x': CALLOUT_LAYOUT.titlePaddingX,
25
+ '--sd-callout-title-gap': CALLOUT_LAYOUT.titleGap,
26
+ '--sd-callout-title-font-family': CALLOUT_TYPOGRAPHY.title.fontFamily,
27
+ '--sd-callout-title-font-size': CALLOUT_TYPOGRAPHY.title.fontSize,
28
+ '--sd-callout-title-font-weight': CALLOUT_TYPOGRAPHY.title.fontWeight,
29
+ '--sd-callout-title-line-height': CALLOUT_TYPOGRAPHY.title.lineHeight,
30
+ };
31
+ }
32
+ renderListItem(msg, depth = 0) {
33
+ if (Array.isArray(msg)) {
34
+ return msg.flatMap(m => this.renderListItem(m, depth + 1));
35
+ }
36
+ return [this.renderLi(msg, depth)];
37
+ }
38
+ renderLi = (msg, depth) => {
39
+ const safeDepth = Math.min(Math.max(depth, 1), 2);
40
+ return (h("li", { class: `sd-callout__list__item sd-callout__list__item--depth-${safeDepth}` }, h("p", { innerHTML: sanitizeInlineHtml(msg) })));
41
+ };
42
+ renderBody() {
43
+ return h("ul", { class: "sd-callout__list" }, this.renderListItem(this.message));
44
+ }
45
+ renderTitle() {
46
+ const iconName = TYPE_ICON[this.type];
47
+ const titleColor = CALLOUT_TYPE_CONFIG[this.type].titleColor;
48
+ return (h("div", { class: "sd-callout__title" }, iconName && (h("sd-icon", { name: iconName, size: CALLOUT_LAYOUT.titleIconSize, color: titleColor })), h("span", { class: "sd-callout__title-text" }, DANGER_TITLE_LABEL)));
49
+ }
50
+ render() {
51
+ const showTitle = this.type === 'danger';
52
+ return (h("div", { key: 'ce91120e7c71907e6c07728554e340ad552d6e34', class: "sd-callout", style: this.calloutStyle, role: "note" }, showTitle && this.renderTitle(), h("div", { key: '56b55c2fed40e59023856029b8c86c35b29d26e5', class: "sd-callout__body" }, this.renderBody())));
53
+ }
54
+ static get is() { return "sd-callout"; }
55
+ static get originalStyleUrls() {
56
+ return {
57
+ "$": ["sd-callout.scss"]
58
+ };
59
+ }
60
+ static get styleUrls() {
61
+ return {
62
+ "$": ["sd-callout.css"]
63
+ };
64
+ }
65
+ static get properties() {
66
+ return {
67
+ "type": {
68
+ "type": "string",
69
+ "mutable": false,
70
+ "complexType": {
71
+ "original": "CalloutType",
72
+ "resolved": "\"danger\" | \"default\"",
73
+ "references": {
74
+ "CalloutType": {
75
+ "location": "import",
76
+ "path": "./sd-callout.config",
77
+ "id": "src/components/sd-callout/sd-callout.config.ts::CalloutType",
78
+ "referenceLocation": "CalloutType"
79
+ }
80
+ }
81
+ },
82
+ "required": false,
83
+ "optional": false,
84
+ "docs": {
85
+ "tags": [],
86
+ "text": ""
87
+ },
88
+ "getter": false,
89
+ "setter": false,
90
+ "reflect": true,
91
+ "attribute": "type",
92
+ "defaultValue": "'default'"
93
+ },
94
+ "message": {
95
+ "type": "unknown",
96
+ "mutable": false,
97
+ "complexType": {
98
+ "original": "(string | string[])[]",
99
+ "resolved": "(string | string[])[]",
100
+ "references": {}
101
+ },
102
+ "required": false,
103
+ "optional": false,
104
+ "docs": {
105
+ "tags": [],
106
+ "text": ""
107
+ },
108
+ "getter": false,
109
+ "setter": false,
110
+ "defaultValue": "[]"
111
+ }
112
+ };
113
+ }
114
+ }
@@ -3,7 +3,7 @@ export class SdCard {
3
3
  bordered = false;
4
4
  sdClass = '';
5
5
  render() {
6
- return (h(Fragment, { key: '61c364f88b03eb56b60c660a58533f417d209e6a' }, h("div", { key: 'dee3671e757c273ffec06a15a0191a798280522c', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, h("slot", { key: 'f991bf5df95f8c1bac417aa4e70f40cf68624fb8' }))));
6
+ return (h(Fragment, { key: '2700ffa3af5b6b35882c396a838d9da2e866ee4b' }, h("div", { key: '3d3aeaac318fc089c42ae4348bc72015d4476276', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, h("slot", { key: 'e72f00bc8c209644baf5f431ce485fb5b691f354' }))));
7
7
  }
8
8
  static get is() { return "sd-card"; }
9
9
  static get originalStyleUrls() {
@@ -67,7 +67,12 @@ export class SdCheckbox {
67
67
  this.hasWarnedMissingVal = true;
68
68
  }
69
69
  const valueSet = new Set(this.value);
70
- valueSet.has(this.val) ? valueSet.delete(this.val) : valueSet.add(this.val);
70
+ if (valueSet.has(this.val)) {
71
+ valueSet.delete(this.val);
72
+ }
73
+ else {
74
+ valueSet.add(this.val);
75
+ }
71
76
  newValue = Array.from(valueSet);
72
77
  }
73
78
  else if (this.value === null) {
@@ -100,13 +105,13 @@ export class SdCheckbox {
100
105
  '--sd-checkbox-inverse-icon': CHECKBOX_COLORS.checked.iconInverse,
101
106
  '--sd-checkbox-inverse-label': CHECKBOX_COLORS.labelInverse,
102
107
  };
103
- return (h("label", { key: '6fb506c448a5968d403f779d113fd60857901982', class: this.checkboxClasses, style: cssVars }, h("input", { key: 'fb08f531416255b8886d2bd2c21c3f62e8a9d47d', type: "checkbox", ref: el => {
108
+ return (h("label", { key: '1e1ba8ab22e34327cfdfb8d236aba0e1ff2806f6', class: this.checkboxClasses, style: cssVars }, h("input", { key: '82b852e0fb3ca94c460b7181ae1c575b361ddd4d', type: "checkbox", ref: el => {
104
109
  this.inputEl = el;
105
- }, value: this.val, checked: !!this.isChecked, disabled: this.disabled, onChange: this.handleChange, name: this.val?.toString() || 'checkbox', "aria-label": this.label || 'checkbox', "aria-checked": this.isChecked === null ? 'mixed' : this.isChecked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }), h("div", { key: 'e49eb38375ba680e08510f83a15ce8a6bbecd4b8', class: "sd-checkbox__bg" }, this.isChecked !== false ? (h("sd-icon", { name: this.isChecked === true ? 'checkboxCheck' : 'checkboxIndeterminate', size: Number(CHECKBOX_LAYOUT.iconSize), color: this.disabled
110
+ }, value: this.val, checked: !!this.isChecked, disabled: this.disabled, onChange: this.handleChange, name: this.val?.toString() || 'checkbox', "aria-label": this.label || 'checkbox', "aria-checked": this.isChecked === null ? 'mixed' : this.isChecked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }), h("div", { key: 'e7a32ccbb915c857d188fecde0b388e15edebdfb', class: "sd-checkbox__bg" }, this.isChecked !== false ? (h("sd-icon", { name: this.isChecked === true ? 'checkboxCheck' : 'checkboxIndeterminate', size: Number(CHECKBOX_LAYOUT.iconSize), color: this.disabled
106
111
  ? CHECKBOX_COLORS.checked.iconDisabled
107
112
  : this.inverse
108
113
  ? CHECKBOX_COLORS.checked.iconInverse
109
- : CHECKBOX_COLORS.checked.icon })) : null), this.label && h("span", { key: '92bc308561b0a7653926d751d029d80c38844b07', class: "sd-checkbox__label" }, this.label)));
114
+ : CHECKBOX_COLORS.checked.icon })) : null), this.label && h("span", { key: '396b7aa27a10428e5d9d24a3f523c3a384d4e463', class: "sd-checkbox__label" }, this.label)));
110
115
  }
111
116
  static get is() { return "sd-checkbox"; }
112
117
  static get originalStyleUrls() {
@@ -205,7 +205,7 @@ export class SdChip {
205
205
  '--sd-chip-font-weight': typography.fontWeight,
206
206
  '--sd-chip-line-height': typography.lineHeight,
207
207
  };
208
- return (h("span", { key: '3cd683af3aed7cc6e549c5fc5da1e00cda2dc2a0', class: {
208
+ return (h("span", { key: '0addb8566b639d05921b9320b99abab7f1d67899', class: {
209
209
  'sd-chip': true,
210
210
  [`sd-chip--${state}`]: true,
211
211
  'sd-chip--disabled': this.disabled,
@@ -27,7 +27,7 @@ export class SdCircleProgress {
27
27
  }
28
28
  const c = CIRCLE_PROGRESS_VIEWBOX_SIZE / 2;
29
29
  const showPercent = !this.indeterminate;
30
- return (h(Host, { key: 'd4ace6f784fd64a45baa746870a84a88b4911cf8', style: hostStyle }, h("svg", { key: '08aef376ac746abf1a9b404e37703a862f956a08', class: "sd-circle-progress", viewBox: `0 0 ${CIRCLE_PROGRESS_VIEWBOX_SIZE} ${CIRCLE_PROGRESS_VIEWBOX_SIZE}`, xmlns: "http://www.w3.org/2000/svg" }, h("circle", { key: '42411ef6f92f6427309d92dfad84ad7dc8f8c3bb', class: "sd-circle-progress__track", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH }), h("circle", { key: 'a0ae53ce4dfd557e980155cd0ff22ba064fe32dc', class: "sd-circle-progress__arc", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH, "stroke-linecap": "round", style: arcStyle })), showPercent && (h("span", { key: '0917cfd3aa460872fa4c35da61530e01080d6937', class: "sd-circle-progress__percent" }, Math.round(this.clampedValue), "%")), this.label && h("span", { key: '051756bc7b20e87205b21c735b2827a81c2a17c9', class: "sd-circle-progress__label" }, this.label)));
30
+ return (h(Host, { key: 'f92bf4d6e4f1133c4465a4fec7b2bad4549a6d06', style: hostStyle }, h("svg", { key: '669fa503cc6007f48f35474b08e4359de695026d', class: "sd-circle-progress", viewBox: `0 0 ${CIRCLE_PROGRESS_VIEWBOX_SIZE} ${CIRCLE_PROGRESS_VIEWBOX_SIZE}`, xmlns: "http://www.w3.org/2000/svg" }, h("circle", { key: '020c7d840a6592d7705b65b14d27e3b5752629bf', class: "sd-circle-progress__track", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH }), h("circle", { key: 'e409da4a5c34adcd8744f16040ae9d5d6019a415', class: "sd-circle-progress__arc", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH, "stroke-linecap": "round", style: arcStyle })), showPercent && (h("span", { key: '91c0b91e69293b67c8a0ad67a6d4b9e9db5c6d4a', class: "sd-circle-progress__percent" }, Math.round(this.clampedValue), "%")), this.label && h("span", { key: '03a5bee22a2e2f1b4ba75dbeca2ef5b4b9840aeb', class: "sd-circle-progress__label" }, this.label)));
31
31
  }
32
32
  static get is() { return "sd-circle-progress"; }
33
33
  static get originalStyleUrls() {
@@ -1,4 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
+ import { sanitizeInlineHtml } from "../../utils/html/sanitize-inline-html";
2
3
  import { CONFIRM_MODAL_DEFAULT_BUTTON, CONFIRM_MODAL_ICON_COLOR, CONFIRM_MODAL_ICON_MAP, SUB_BUTTON_PRESET, TITLE_ICON_SIZE, } from "./sd-confirm-modal.config";
3
4
  export class SdConfirmModal {
4
5
  el;
@@ -72,9 +73,9 @@ export class SdConfirmModal {
72
73
  const type = this.resolvedType;
73
74
  const iconName = CONFIRM_MODAL_ICON_MAP[type];
74
75
  const iconColor = CONFIRM_MODAL_ICON_COLOR[type];
75
- return (h("div", { key: '6dc337947f7c05799cf7c97d45b0df84c7976196', class: "sd-confirm-modal" }, h("sd-ghost-button", { key: 'b584cc4bc00191f8488be7265249922110d57d90', class: "sd-confirm-modal__close-button", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() }), iconName && (h("sd-icon", { key: '470716bef879befd1d6746bc27c10fb74d61a2b6', class: "sd-confirm-modal__icon", name: iconName, size: TITLE_ICON_SIZE, color: iconColor })), h("h2", { key: '5b0113f13b219a2e14c5d45397c293baafc28a2c', class: `sd-confirm-modal__title ${this.titleClass ?? ''}` }, this.modalTitle), h("div", { key: 'cee18d1afde384523ca0f96f4138b8854f89cb5c', class: "sd-confirm-modal__body" }, (this.topMessage ?? []).length > 0 && (h("div", { key: 'b9466be3cbb635c9b8c0a50d7023b70fa31d9f0f', class: "sd-confirm-modal__message" }, (this.topMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: msg }))))), this.showContentBox && (h("div", { key: 'f3ea52c0261a63e75b42175c2e7c602e02f82636', class: "sd-confirm-modal__content-box" }, this.tagContents ? (h("div", { class: "sd-confirm-modal__custom-content", ref: el => {
76
+ return (h("div", { key: 'f9a1d63c1cd047969c72d0e71ccd3b1cf30bac15', class: "sd-confirm-modal" }, h("sd-ghost-button", { key: '8f1e4ec22a12ad9347c8c8c843f6dbb91591b289', class: "sd-confirm-modal__close-button", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() }), iconName && (h("sd-icon", { key: '8adada47e2dc0a6677cdf004ca8cad8794123d03', class: "sd-confirm-modal__icon", name: iconName, size: TITLE_ICON_SIZE, color: iconColor })), h("h2", { key: 'ddc0636d2cd8333aa0d5a3f242dbf2d57759fc5b', class: `sd-confirm-modal__title ${this.titleClass ?? ''}` }, this.modalTitle), h("div", { key: '66d4c779f4269824937306ca34a0b51e6208d03f', class: "sd-confirm-modal__body" }, (this.topMessage ?? []).length > 0 && (h("div", { key: '87634b26cba0fb24115f0cd59fcc7956f9fde53c', class: "sd-confirm-modal__message" }, (this.topMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) }))))), this.showContentBox && (h("div", { key: '0b495d1393cf029e8b07f9041c51e344ff7cb5da', class: "sd-confirm-modal__content-box" }, this.tagContents ? (h("div", { class: "sd-confirm-modal__custom-content", ref: el => {
76
77
  this.customContentRef = el;
77
- } })) : (h("slot", { onSlotchange: () => this.syncHasSlottedContent() }, this.tagLabel && h("sd-tag", { name: this.tagPreset ?? 'square_sm_grey', label: this.tagLabel }), this.slotLabel && (h("span", { class: "sd-confirm-modal__slot-label" }, this.slotLabel)))))), (this.bottomMessage ?? []).length > 0 && (h("div", { key: 'fa33e4f68a1c36e197ff6a6f5629005fbbebcbc3', class: "sd-confirm-modal__message" }, (this.bottomMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: msg })))))), h("div", { key: '378162e9e44cefc4e61113ba927545040e6a6c6c', class: "sd-confirm-modal__button" }, this.subButtonLabel && (h("sd-button", { key: '8fb93a086c4a42063f53ed533be2774de31db81e', name: SUB_BUTTON_PRESET, label: this.subButtonLabel, onSdClick: () => this.cancel.emit() })), h("sd-button", { key: '304c80915c9a7a685bddcf2d5edf4f56119860e8', name: this.resolvedMainButton, label: this.mainButtonLabel ?? '확인', onSdClick: () => this.ok.emit() }))));
78
+ } })) : (h("slot", { onSlotchange: () => this.syncHasSlottedContent() }, this.tagLabel && (h("sd-tag", { name: this.tagPreset ?? 'square_sm_grey', label: this.tagLabel })), this.slotLabel && (h("span", { class: "sd-confirm-modal__slot-label" }, this.slotLabel)))))), (this.bottomMessage ?? []).length > 0 && (h("div", { key: '09d34f47a466e4277f1bb2215a3b087bc78e240d', class: "sd-confirm-modal__message" }, (this.bottomMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) })))))), h("div", { key: '2a62193311791f84b6eca22a49cff8a0fc65d5a7', class: "sd-confirm-modal__button" }, this.subButtonLabel && (h("sd-button", { key: '4c800376dec7ca035b2aaaaac00738851829108d', name: SUB_BUTTON_PRESET, label: this.subButtonLabel, onSdClick: () => this.cancel.emit() })), h("sd-button", { key: 'dcb473b7b6ce29983d89df6c288526071962ac01', name: this.resolvedMainButton, label: this.mainButtonLabel ?? '확인', onSdClick: () => this.ok.emit() }))));
78
79
  }
79
80
  static get is() { return "sd-confirm-modal"; }
80
81
  static get originalStyleUrls() {
@@ -33,7 +33,7 @@ export class SdDatePickerTrigger {
33
33
  ? DATEPICKER_COLORS.icon.disabled
34
34
  : DATEPICKER_COLORS.icon.default,
35
35
  };
36
- return (h("div", { key: '57a23626b1a392be20dccead71b792590fab61b8', role: "button", tabindex: this.disabled ? -1 : 0, class: {
36
+ return (h("div", { key: 'df53dd75ead71167d7089daab5718c7ff1c990ae', role: "button", tabindex: this.disabled ? -1 : 0, class: {
37
37
  'sd-date-picker-trigger': true,
38
38
  'sd-date-picker-trigger--disabled': this.disabled,
39
39
  }, style: cssVars, onClick: this.handleClick, onKeyDown: e => {
@@ -41,7 +41,7 @@ export class SdDatePickerTrigger {
41
41
  e.preventDefault();
42
42
  this.handleClick();
43
43
  }
44
- } }, h("sd-icon", { key: 'd4bb58eb97f9f2b98c27315547a85b019530ce5e', name: "date", size: Number(sizeTokens.iconSize), color: "var(--trigger-icon-color)", class: "sd-date-picker-trigger__icon" }), h("span", { key: '25222882fa966eb5d6ead15e62b65af26586afbd', class: "sd-date-picker-trigger__text" }, hasValue ? this.displayText : this.placeholder)));
44
+ } }, h("sd-icon", { key: '76f41c99e1695eaa191cbc81ae057e65cb78e955', name: "date", size: Number(sizeTokens.iconSize), color: "var(--trigger-icon-color)", class: "sd-date-picker-trigger__icon" }), h("span", { key: '4e1a4b2b41737f05dc1a4e642d317f5fc93bf9b2', class: "sd-date-picker-trigger__text" }, hasValue ? this.displayText : this.placeholder)));
45
45
  }
46
46
  static get is() { return "sd-date-picker-trigger"; }
47
47
  static get originalStyleUrls() {
@@ -93,9 +93,9 @@ export class SdDatePicker {
93
93
  '--sd-system-color-field-border-focus': DATEPICKER_COLORS.border.focus,
94
94
  '--sd-system-color-field-bg-default': DATEPICKER_COLORS.bg.default,
95
95
  };
96
- return (h("sd-field", { key: '825c845ea1ada63a9f21cfc43aad04a598325c13', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: 'b9dd1a8df29f340ad67331dbebd3ec71b79d128a', class: "sd-date-picker", ref: el => {
96
+ return (h("sd-field", { key: '35d821e9a21a09e4b2dc0d47f9a95d895c4f9dc4', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: '21fe3c0ab5dff10265139111de741216fb06e4e4', class: "sd-date-picker", ref: el => {
97
97
  this.triggerRef = el;
98
- } }, h("sd-date-picker-trigger", { key: 'b9bed57fa4a2b06b004ec5a1b723ed5af25fda19', displayText: this.value ?? '', placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: '776e0ce183edd9c7903ce1a75208addc47c20408', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, h("sd-calendar", { key: 'f86b502f6b17ee9ff262c1a64e1b0e24defc1660', value: this.value, selectable: this.selectable, onSdUpdate: this.handleSelect, onSdViewChange: this.handleViewChange })))));
98
+ } }, h("sd-date-picker-trigger", { key: 'b9fd9b90afa512aefdd4b227c66d0b4660b69318', displayText: this.value ?? '', placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: 'b6e439d2b507922cc2e345fe1fba856d77441cbc', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, h("sd-calendar", { key: 'ae09060fec5542b9e30d051133f4bca3c772f5d9', elevated: true, value: this.value, selectable: this.selectable, onSdUpdate: this.handleSelect, onSdViewChange: this.handleViewChange })))));
99
99
  }
100
100
  static get is() { return "sd-date-picker"; }
101
101
  static get originalStyleUrls() {
@@ -239,7 +239,7 @@ export class SdDateRangePickerCalendar {
239
239
  '--range-panel-gap': `${RANGE_LAYOUT.panelGap}px`,
240
240
  '--range-divider': RANGE_LAYOUT.divider,
241
241
  };
242
- return (h(Fragment, { key: 'f871d59077f63aa2f7d1bbe857a9ff095331c82d' }, h("div", { key: '47f4782b315450f07bccec8697d8e98a83e44faf', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), h("div", { key: 'cf0eb07920b298f2fce001cc8246d51e1174c27d', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), h("span", { key: 'e1d060092eb3b73c890bf0d62f6485ca2a09e187', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
242
+ return (h(Fragment, { key: 'b4082936889d6bed77917d9b06aafa3c80d413a7' }, h("div", { key: 'baf10fa376bf32982816258f950edf65d5622a99', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), h("div", { key: 'bacc88f756b64f4382b1c8c648269bb2c233dc54', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), h("span", { key: 'dcebf3cd120e2e606784c365c309d4c48296a5ae', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
243
243
  }
244
244
  static get is() { return "sd-date-range-picker-calendar"; }
245
245
  static get originalStyleUrls() {
@@ -1,5 +1,6 @@
1
1
  import { h, } from "@stencil/core";
2
2
  import { BaseDropdownEvent } from "../../utils/base-dropdown-event";
3
+ import { sanitizeInlineHtml } from "../../utils/html/sanitize-inline-html";
3
4
  import { BUTTON_FOCUS_RING_COLOR } from "../sd-button/sd-button.config";
4
5
  import { DROPDOWN_BUTTON_CONFIG, DROPDOWN_CHEVRON_ICON_SIZE, DROPDOWN_DISABLED_BACKGROUND, DROPDOWN_DISABLED_BORDER, DROPDOWN_DISABLED_TEXT, getDropdownButtonPreset, isDropdownButtonName, PRESET_BORDER_COLORS, PRESET_CONTENT_COLORS, PRESET_DIVIDER_COLORS, PRESET_HOVER_BACKGROUNDS, PRESET_MENU_ITEM_ACTIVE_BACKGROUNDS, PRESET_MENU_ITEM_ACTIVE_COLORS, PRESET_MENU_ITEM_COLORS, } from "./sd-dropdown-button.config";
5
6
  export class SdDropdownButton extends BaseDropdownEvent {
@@ -183,12 +184,12 @@ export class SdDropdownButton extends BaseDropdownEvent {
183
184
  if (!item.disabled) {
184
185
  this.itemIndex = index;
185
186
  }
186
- } }, item.icon && (h("sd-icon", { class: "sd-dropdown-button__menu-item-icon", name: item.icon, size: 12, color: "var(--sd-dropdown-button-menu-item-current-color)" })), h("span", { class: "sd-dropdown-button__menu-item-label", innerHTML: item.label })));
187
+ } }, item.icon && (h("sd-icon", { class: "sd-dropdown-button__menu-item-icon", name: item.icon, size: 12, color: "var(--sd-dropdown-button-menu-item-current-color)" })), h("span", { class: "sd-dropdown-button__menu-item-label", innerHTML: sanitizeInlineHtml(item.label) })));
187
188
  })))));
188
189
  }
189
190
  render() {
190
191
  const { config, preset } = this.resolvedConfig;
191
- return (h("div", { key: 'ac9063bf34834043d2c786b81fa487f004d54462', class: "sd-dropdown-button" }, h("button", { key: 'cff62ed70794e18627b03c22d54accab9248b235', type: "button", class: this.getTriggerClasses(preset, config.size, this.disabled, this.isOpen), disabled: this.disabled, "aria-haspopup": "menu", "aria-expanded": String(this.isOpen), onClick: this.toggleDropdown, ref: el => (this.triggerRef = el), style: {
192
+ return (h("div", { key: '69cc705c92386162bfe3eaaec92d60c5daedd673', class: "sd-dropdown-button" }, h("button", { key: 'c054cd7f979a5b5d7e6266fc098722b13f6419f6', type: "button", class: this.getTriggerClasses(preset, config.size, this.disabled, this.isOpen), disabled: this.disabled, "aria-haspopup": "menu", "aria-expanded": String(this.isOpen), onClick: this.toggleDropdown, ref: el => (this.triggerRef = el), style: {
192
193
  '--sd-dropdown-button-bg': config.color,
193
194
  '--sd-dropdown-button-bg-hover': PRESET_HOVER_BACKGROUNDS[preset],
194
195
  '--sd-dropdown-button-border': PRESET_BORDER_COLORS[preset],
@@ -198,10 +199,10 @@ export class SdDropdownButton extends BaseDropdownEvent {
198
199
  '--sd-dropdown-button-disabled-bg': DROPDOWN_DISABLED_BACKGROUND,
199
200
  '--sd-dropdown-button-disabled-content': DROPDOWN_DISABLED_TEXT,
200
201
  '--sd-dropdown-button-disabled-border': DROPDOWN_DISABLED_BORDER,
201
- } }, h("span", { key: '8c3c382c1b23f63be23936cca44175950fd636b8', class: "sd-dropdown-button__trigger-label" }, this.label), h("span", { key: '4b1e74dd6b5c680e07ef3b8391279ef4d9bb750d', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), h("span", { key: '1018c43a428abe211536f4f3f8069b70a7ff1845', class: {
202
+ } }, h("span", { key: 'de889d149ece2a5856dc37940cc8f8cc612546d7', class: "sd-dropdown-button__trigger-label" }, this.label), h("span", { key: '8ae62fe45e6f292f4269da090adda28c6fd47854', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), h("span", { key: 'c2bc641416469fc2a375f07cb68f36e1c782ba48', class: {
202
203
  'sd-dropdown-button__trigger-icon': true,
203
204
  'sd-dropdown-button__trigger-icon--open': this.isOpen,
204
- }, "aria-hidden": "true" }, h("sd-icon", { key: '64248aa427db42e8c8ef65d806befaeab0943059', name: "chevronDown", size: DROPDOWN_CHEVRON_ICON_SIZE[config.size], color: "var(--sd-dropdown-button-current-content)" }))), this.renderDropdown(preset)));
205
+ }, "aria-hidden": "true" }, h("sd-icon", { key: '46111923f6a95fdd789aa9493a6941218e1fe0f5', name: "chevronDown", size: DROPDOWN_CHEVRON_ICON_SIZE[config.size], color: "var(--sd-dropdown-button-current-content)" }))), this.renderDropdown(preset)));
205
206
  }
206
207
  static get is() { return "sd-dropdown-button"; }
207
208
  static get originalStyleUrls() {
@@ -172,20 +172,20 @@ export class SdField {
172
172
  : {}),
173
173
  }
174
174
  : {};
175
- return (h("div", { key: 'fa7d46fb1cdfa572c19fe5014c5f2df6579537fa', class: {
175
+ return (h("div", { key: '1cc135c77708546f23b699bf337c018f6c4d315e', class: {
176
176
  'sd-field': true,
177
177
  'sd-field--has-label': this.label !== '',
178
178
  'sd-field--has-addon': addon !== '',
179
179
  [this.fieldStatus]: this.fieldStatus !== '',
180
- }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars } }, h("div", { key: '92d544710c5f49f17342c2c5d9f4e499e995b3b2', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: '1740f6d0c385311cf714b7e64fd7f5513f758c3e', class: "sd-field__main", style: this.width !== '' && this.width !== 0
180
+ }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars } }, h("div", { key: '506ace23aa27ad50a8ad60dcf6c71a0bdf04d7af', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: '41b77a52c21eef8c38127362423378f1b9a6cb77', class: "sd-field__main", style: this.width !== '' && this.width !== 0
181
181
  ? {
182
182
  width: typeof this.width === 'number' ? `${this.width}px` : this.width,
183
183
  flex: 'none',
184
184
  }
185
- : {} }, h("div", { key: '1364e46db78dc55b1139035296d2e6f33cb8fbb6', class: {
185
+ : {} }, h("div", { key: '1f3c5f2009a0d96b8a3544c58b96f7ecc4ddee6b', class: {
186
186
  'sd-field__control': true,
187
187
  'sd-field__control--has-addon': addon !== '',
188
- } }, addon && h("div", { key: '638c670ec084e51af7d9ec566c93e00a3d158eef', class: "sd-field__addon" }, addon), h("slot", { key: 'e1b00ee9db0a0e8dade33166dc908183304bc37f' })), this.errorMsg !== '' || this.errorMessage !== '' ? (h("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && h("div", { class: "sd-field__hint" }, this.hint))))));
188
+ } }, addon && h("div", { key: '39a28adaa959b89d3724672910157662e50b35ed', class: "sd-field__addon" }, addon), h("slot", { key: '0c9360e8644df658c389554c13a04bc22985e84d' })), this.errorMsg !== '' || this.errorMessage !== '' ? (h("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && h("div", { class: "sd-field__hint" }, this.hint))))));
189
189
  }
190
190
  renderLabel(label) {
191
191
  if (label == null || label === '')
@@ -153,7 +153,7 @@ export class SdFloatingPopover {
153
153
  }
154
154
  }
155
155
  render() {
156
- return h("slot", { key: 'c4543ebf24c83fc67bdda0340adb00f02761b62e' });
156
+ return h("slot", { key: '5b469964bfbbdf1d40c6d7c88a266d655fe3e029' });
157
157
  }
158
158
  static get is() { return "sd-floating-portal"; }
159
159
  static get originalStyleUrls() {
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { GUIDE_CONFIG } from "./sd-guide.config";
3
+ import { sanitizeInlineHtml } from "../../utils/html/sanitize-inline-html";
3
4
  const DEFAULT_LABEL_BY_TYPE = {
4
5
  tip: '활용 TIP',
5
6
  notion: '사용법 안내',
@@ -76,10 +77,10 @@ export class SdGuide {
76
77
  const buttonClasses = ['sd-guide__button', `sd-guide__button--type-${this.type ?? 'tip'}`];
77
78
  if (isActive)
78
79
  buttonClasses.push('sd-guide__button--active');
79
- return (h("div", { key: '9d5ad3049230e61d1aae3cd9270dd84f89fb5b1c', class: "sd-guide", style: this.guideStyle }, h("sd-button", { key: 'ac55b4d96f64695a0fbfedf7bf0e451b7afdc499', ref: el => (this.guideRef = el), class: buttonClasses.join(' '), name: isActive ? 'primary_sm' : 'neutral_outline_sm', label: this.label || defaultLabel, icon: iconName, onSdClick: this.handleClickGuide }), this.popupShow && (h("sd-portal", { key: 'df51b29383f7449720d8700387bb44fbd4dbebba', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: '265390b48b9d37e9c7f92e19ef124da3faae6590', style: { position: 'absolute', width: '0px', height: '0px' } }, h("div", { key: 'b45c101ac8dd6e4d490661b377979226335defa2', class: "sd-guide__popup", style: {
80
+ return (h("div", { key: 'ea4f220faf6165f7650360f74a19d9f781b81489', class: "sd-guide", style: this.guideStyle }, h("sd-button", { key: 'c90eaa6cc42a9a2f20b8fc79db16697db0cf2ff2', ref: el => (this.guideRef = el), class: buttonClasses.join(' '), name: isActive ? 'primary_sm' : 'neutral_outline_sm', label: this.label || defaultLabel, icon: iconName, onSdClick: this.handleClickGuide }), this.popupShow && (h("sd-portal", { key: '21f57a739141ffa36f3b799a2688ca5b3c1bd428', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: '2a803402b120509ef8b6de361f360a7b5b96e9db', style: { position: 'absolute', width: '0px', height: '0px' } }, h("div", { key: '3e591b85ac24ea1db37bdaaf130f983d70ef2f36', class: "sd-guide__popup", style: {
80
81
  ...this.guideStyle,
81
82
  width: this.popupWidth != null ? this.popupWidth + 'px' : '426px',
82
- } }, h("sd-ghost-button", { key: 'd91722fedd8cd4f74e673964c90b1840ccfcd8e1', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), h("div", { key: 'b7bb7ffa79363939f4b6144d48732e686ec5e365', class: "sd-guide__popup__header" }, h("sd-icon", { key: 'cfe42d9139cdae8a90ce81af3dbc7636dc56b380', name: iconName, size: 24, color: popupIconColor }), h("h3", { key: '9724df2304c13c36e21a6e1ef3be7d4b0f5e5454', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), h("ul", { key: '8f5eec181c32b7d0220963ce57e82e952094ad36', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
83
+ } }, h("sd-ghost-button", { key: '1aa20f7bd3a1ba45c4932a67a8c1e67d6e068702', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), h("div", { key: 'e48378d1731e0b9fcd5990cb908ae3af236d0346', class: "sd-guide__popup__header" }, h("sd-icon", { key: 'c8c71c7c2f0fdb25e3741415c1f1fae1a8d4d3d2', name: iconName, size: 24, color: popupIconColor }), h("h3", { key: '4996225c27fbeae4fd9b4d68d6e493d87225d427', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), h("ul", { key: 'edb2d35594b47f19f2e847ba546fac0fc19b21b4', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
83
84
  }
84
85
  // 현재 2depth까지만 스타일 적용
85
86
  renderListItem(message, depth = 0) {
@@ -94,7 +95,7 @@ export class SdGuide {
94
95
  return listItems;
95
96
  }
96
97
  renderLi = (message, depth) => {
97
- return (h("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, h("p", { innerHTML: message })));
98
+ return (h("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, h("p", { innerHTML: sanitizeInlineHtml(message) })));
98
99
  };
99
100
  static get is() { return "sd-guide"; }
100
101
  static get originalStyleUrls() {
@@ -112,12 +112,12 @@ export class SdInput {
112
112
  '--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
113
113
  '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
114
114
  };
115
- return (h("sd-field", { key: 'c24b885ef9ca21fb69c1b67f2619896d4bd56155', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("label", { key: '45a5669d2c8d7d571f50152f81139cedc8a2db3b', class: "sd-input__content" }, h("slot", { key: 'c1d032ee22344725e1d041c2351dd7785a8b6b5d', name: "prefix" }), h("input", { key: '8433abb36e666a7546870a9e3b77325e9c39551a', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type === 'password' && this.passwordVisible ? 'text' : (this.type ?? 'text'), value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, autocomplete: this.autocomplete || undefined, maxlength: this.maxlength, minlength: this.minlength, inputmode: this.inputmode, enterkeyhint: this.enterkeyhint, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), h("slot", { key: '9f5eef3c48f88b90be2c821b1d43e2e9a9f91441', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (h("sd-ghost-button", { key: '62ab3e8e02a9db5424e573542dc10bde5a9fc4b8', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
115
+ return (h("sd-field", { key: 'e6e58ebc18e458f1d52a3f8afcd0892bfd8ffa45', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("label", { key: '9bdcdf6e515a57e9cd72e263bcd8d2c59aac22c9', class: "sd-input__content" }, h("slot", { key: '0273119e456386ba23c361ef1e826b4d2d9bf1be', name: "prefix" }), h("input", { key: 'ad61c8ff1372f6163f2e742cf31884363e8fd31f', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type === 'password' && this.passwordVisible ? 'text' : (this.type ?? 'text'), value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, autocomplete: this.autocomplete || undefined, maxlength: this.maxlength, minlength: this.minlength, inputmode: this.inputmode, enterkeyhint: this.enterkeyhint, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), h("slot", { key: 'e68578946f23fff0e4abc3f9919d12b3d624b5f8', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (h("sd-ghost-button", { key: '3c64ce859d71dbd57800a4a34b6a09696f90ff60', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
116
116
  if (this.disabled || this.readonly)
117
117
  return;
118
118
  this.internalValue = '';
119
119
  await this.formField?.sdValidate();
120
- } })), this.type === 'password' && (h("sd-ghost-button", { key: '0a16665e73a674c7208c7f488b50442c353e3fde', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
120
+ } })), this.type === 'password' && (h("sd-ghost-button", { key: 'db4c66f0b3e91d780262ec7320fc15ffc32e622d', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
121
121
  if (this.disabled || this.readonly)
122
122
  return;
123
123
  this.passwordVisible = !this.passwordVisible;
@@ -28,7 +28,7 @@ export class SdLinearProgress {
28
28
  clipPath: `inset(0 ${100 - this.clampedValue}% 0 0)`,
29
29
  };
30
30
  const valueText = `${Math.round(this.clampedValue)}%`;
31
- return (h(Host, { key: '6fb48662dc2c921237a387c748bbc529ba5ea77f', style: hostStyle }, h("div", { key: 'e8fa0fdf4ac3ceeaae74fff6194c1f66b9138bc7', class: 'sd-linear-progress__track' }, h("div", { key: '7016850214e73fc6a9079e8f54674976d0320adf', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (h("span", { key: '154b18f54d79ddbacf720370dc9ace94508c6667', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (h("span", { key: '555e41d961ad7d061ac71347e998641d104f499d', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && h("span", { key: 'f90f3df3b959aee549fab33a62a85d6df6ba8410', class: 'sd-linear-progress__label' }, this.label)));
31
+ return (h(Host, { key: 'ae56f969b9d4cd6e6e4d697d919ad122e2e4dad7', style: hostStyle }, h("div", { key: '86af10d7d1e6e343700a1c161745599ec863b3d7', class: 'sd-linear-progress__track' }, h("div", { key: '46d5dfe06e82facc5dc83977584bc93970b7fd28', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (h("span", { key: 'd1ae1220a482c50bc770a22ccbc45ccb66ebfc27', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (h("span", { key: '39bc3af718e0797c5e06cda62ee8a6047f303a34', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && h("span", { key: '944ca6d50f6588894e97265a8ef0484f3e676981', class: 'sd-linear-progress__label' }, this.label)));
32
32
  }
33
33
  static get is() { return "sd-linear-progress"; }
34
34
  static get originalStyleUrls() {
@@ -10,10 +10,10 @@ export class SdLoadingContainer {
10
10
  this.visible = false;
11
11
  }
12
12
  render() {
13
- return (h("div", { key: '08675a9dc0b1c11c42fb65a414f0fed88d03f1b0', class: {
13
+ return (h("div", { key: '0b6c91593d615ac39f8a4fc30df8466969ae4d9b', class: {
14
14
  'sd-loading-container': true,
15
15
  'sd-loading-container--visible': this.visible,
16
- }, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '4a10e9009d824bef1bf2f9930941931dc1fef43a', class: "sd-loading-container__backdrop" }), h("div", { key: '88edd1c19f5d22057e1e14f1e6bd10e23f45ec7b', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: 'b9c67678d799e429ec6cb2d3094da7bcc4cea150', indeterminate: true, type: "inverse" }), this.message && (h("p", { key: 'ce016465e9d8b20f2121e8846bff75bbad5d7d94', class: "sd-loading-container__message" }, this.message)))));
16
+ }, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: 'de41bd4fe1c824c9517d000b91abb817ea58e90c', class: "sd-loading-container__backdrop" }), h("div", { key: '4de64a1540a0af9c955bbea5d4c83c129e6846ea', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: 'ae2955bc1d40123f06e7c9e107afe4b46c3b0175', indeterminate: true, type: "inverse" }), this.message && (h("p", { key: '6c58c3fd4074edd48cdd0d21eef15c49c94626db', class: "sd-loading-container__message" }, this.message)))));
17
17
  }
18
18
  static get is() { return "sd-loading-container"; }
19
19
  static get originalStyleUrls() {
@@ -45,7 +45,7 @@ export class SdLoadingModal {
45
45
  '--sd-loading-modal-width': this.toCssSize(this.width) ?? `${LOADING_MODAL_LAYOUT.minWidth}px`,
46
46
  '--sd-loading-modal-height': this.toCssSize(this.height) ?? `${LOADING_MODAL_LAYOUT.minHeight}px`,
47
47
  };
48
- return (h(Host, { key: '3d792e07772b93de139fa505f061004b037ed05b', style: hostStyle }, h("div", { key: '8b63d47c502bdd66f893a484c4af36d2e8302081', class: "sd-loading-modal" }, h("div", { key: '5b35a93e1aed2e8d9f5eebfcbe0222c4f38b5536', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (h("sd-circle-progress", { indeterminate: true })) : (h("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), h("div", { key: '591bae1563f4b5c5dc8bce22161d99929fb18ce5', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (h("p", { class: "sd-loading-modal__message" }, message)))) : (h("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (h("div", { key: '577acd55fb35229459990f7f1ca4f710c26c51d4', class: "sd-loading-modal__button" }, h("sd-button", { key: 'cda4f1b9a8bee1897efb53671c0f715858377ba7', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
48
+ return (h(Host, { key: 'e4b95f8fcd666e0b616d193c40f7b57313527a78', style: hostStyle }, h("div", { key: '397f63795ab8523cb41a989c7fc0e2187ceb3d18', class: "sd-loading-modal" }, h("div", { key: '1c2f6f16dbc8fe3b76db29707602b3df6de1380e', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (h("sd-circle-progress", { indeterminate: true })) : (h("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), h("div", { key: '439302e28cd4843f86f2060c66fe3e5c358ec379', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (h("p", { class: "sd-loading-modal__message" }, message)))) : (h("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (h("div", { key: 'a6facf71c52d242ff521adbf7f9161c51431cf9d', class: "sd-loading-modal__button" }, h("sd-button", { key: '26d66b9ccf569bbf7bd9d3819fb0380eced791a2', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
49
49
  }
50
50
  static get is() { return "sd-loading-modal"; }
51
51
  static get originalStyleUrls() {
@@ -486,6 +486,14 @@ export class SdModalContainer {
486
486
  "path": "./sd-modal-container.config",
487
487
  "id": "src/components/sd-modal-container/sd-modal-container.config.ts::LoadingModalOptions",
488
488
  "referenceLocation": "LoadingModalOptions"
489
+ },
490
+ "HTMLSdLoadingModalElement": {
491
+ "location": "global",
492
+ "id": "global::HTMLSdLoadingModalElement"
493
+ },
494
+ "HTMLSdConfirmModalElement": {
495
+ "location": "global",
496
+ "id": "global::HTMLSdConfirmModalElement"
489
497
  }
490
498
  },
491
499
  "return": "Promise<void>"
@@ -272,15 +272,15 @@ export class SdNumberInput {
272
272
  '--sd-textinput-input-hint-typography-line-height': `${NUMBER_INPUT_HINT.typography.lineHeight}px`,
273
273
  '--sd-textinput-input-contents-gap': `${NUMBER_INPUT_CONTENTS_GAP}px`,
274
274
  };
275
- return (h("sd-field", { key: '3ed260707f7e1b1a88d1407bb4b3c1965b302bcf', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: '889cd4055b46e0727aed2b78f2a8bbeeca88cfed', class: {
275
+ return (h("sd-field", { key: 'b32943cd55dad7d6bb4fc1a18812360c2ab01a83', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: '050395b8ab3bd77ff5f786b3de182b7a35b8b01f', class: {
276
276
  'sd-number-input__content': true,
277
277
  'sd-number-input__content--no-stepper': !this.useButton,
278
- } }, this.useButton && (h("button", { key: '5213f04a1db8a779762ae41672fd016388a06aa7', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, h("sd-icon", { key: '76910ba2b46a78eb2e4aaf7241eeb7aa1223c92a', name: "minus", size: iconSize, color: this.isDecrementDisabled()
278
+ } }, this.useButton && (h("button", { key: 'e76188a1f1f76450227328854ee3048d7b2b9e85', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, h("sd-icon", { key: '544e5a41790302df564ca0a3e83e2f9052c3f290', name: "minus", size: iconSize, color: this.isDecrementDisabled()
279
279
  ? NUMBER_INPUT_STEPPER.icon.disabled
280
- : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && h("span", { key: '273b809ff5bd5ebb2e8cd09a9df3f6f84167aeb2', class: "sd-number-input__prefix" }, this.inputPrefix), h("input", { key: '72917348a5ded30f5d8c4066af8e56d50de67db0', name: this.name, ref: el => (this.nativeEl = el), class: `sd-number-input__native ${this.inputClass}`, type: "text", inputMode: "numeric", value: this.displayValue, placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, style: {
280
+ : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && h("span", { key: '34e8c9af864332b8614e3c9a5d2cf94310a2555d', class: "sd-number-input__prefix" }, this.inputPrefix), h("input", { key: '07e0484ad473e010d9ba8f971875bd463585ca47', name: this.name, ref: el => (this.nativeEl = el), class: `sd-number-input__native ${this.inputClass}`, type: "text", inputMode: "numeric", value: this.displayValue, placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, style: {
281
281
  textAlign: this.useButton ? 'center' : 'right',
282
282
  ...this.inputStyle,
283
- } }), this.inputSuffix && h("span", { key: '232aa43852396a617e49403d30b4514aaf896740', class: "sd-number-input__suffix" }, this.inputSuffix), this.useButton && (h("button", { key: 'f9dab4cd21deb933e72a8ad906cafbbf1cae1e5a', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, h("sd-icon", { key: '73208aca8e5e9be431ba03b4755053c74ec70296', name: "add", size: iconSize, color: this.isIncrementDisabled()
283
+ } }), this.inputSuffix && h("span", { key: '990a3e1dc5cfeaa8e1823391e0bb0218ce4cfb02', class: "sd-number-input__suffix" }, this.inputSuffix), this.useButton && (h("button", { key: 'd2496ab718cf44fd658c871086d8e67c66380668', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, h("sd-icon", { key: 'fcab0109e01a1c683bf09349cb699534eaa1a8d1', name: "add", size: iconSize, color: this.isIncrementDisabled()
284
284
  ? NUMBER_INPUT_STEPPER.icon.disabled
285
285
  : NUMBER_INPUT_STEPPER.icon.default }))))));
286
286
  }
@@ -83,13 +83,13 @@ export class SdPagination {
83
83
  '--sd-pagination-bg-selected': PAGINATION_COLORS.bgSelected,
84
84
  '--sd-pagination-item-width': `${this.buttonWidth}px`,
85
85
  };
86
- return (h("div", { key: '251d9b3bcff3cf985d62b1a8717f622d209b3fa1', class: {
86
+ return (h("div", { key: 'b16a4c0ff75913e80fdb9a539d8afb714931a531', class: {
87
87
  'sd-pagination': true,
88
88
  'sd-pagination--simple': this.simple,
89
- }, style: cssVars }, h("div", { key: 'd143917676ccd97c1f4fc8e7220857d543efa5fd', class: "sd-pagination__group sd-pagination__group--prev" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "sd-pagination__info" }, h("span", { class: "sd-pagination__current" }, this.currentPage), h("span", { class: "sd-pagination__divider" }, "/"), h("span", { class: "sd-pagination__last" }, this.lastPage))) : (h("div", { class: "sd-pagination__numbers" }, this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
89
+ }, style: cssVars }, h("div", { key: '42d019164c409d09d13b94845c9ee99ece41a8f3', class: "sd-pagination__group sd-pagination__group--prev" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "sd-pagination__info" }, h("span", { class: "sd-pagination__current" }, this.currentPage), h("span", { class: "sd-pagination__divider" }, "/"), h("span", { class: "sd-pagination__last" }, this.lastPage))) : (h("div", { class: "sd-pagination__numbers" }, this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
90
90
  'sd-pagination__item': true,
91
91
  'sd-pagination__item--selected': this.currentPage === n,
92
- }, onClick: () => this.handlePageChange(n) }, n))))), h("div", { key: 'e58053cef21c57d88f5b1357101507418b2db002', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
92
+ }, onClick: () => this.handlePageChange(n) }, n))))), h("div", { key: '9695ce3aaede66529547151800fede0f5413e7d8', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
93
93
  }
94
94
  static get is() { return "sd-pagination"; }
95
95
  static get originalStyleUrls() {
@@ -1,5 +1,7 @@
1
1
  import popupTokens from "../../tokens/generated/component.popup.json";
2
+ import systemTokens from "../../tokens/generated/system.json";
2
3
  const { popup } = popupTokens;
4
+ const shadowSpreadMd = systemTokens.shadow.spread.md;
3
5
  export const POPUP_LAYOUT = {
4
6
  bodyBg: popup.bg,
5
7
  };
@@ -16,7 +18,6 @@ export const POPUP_HEADER = {
16
18
  fontWeight: popup.header.typography.fontWeight,
17
19
  fontSize: Number(popup.header.typography.fontSize),
18
20
  lineHeight: Number(popup.header.typography.lineHeight),
19
- // TODO: 토큰 반영 후 교체
20
21
  height: 50,
21
22
  paddingX: 16,
22
23
  paddingY: 10,
@@ -26,9 +27,7 @@ export const POPUP_FOOTER = {
26
27
  paddingX: Number(popup.footer.paddingX),
27
28
  paddingY: Number(popup.footer.paddingY),
28
29
  gap: Number(popup.footer.gap),
29
- // TODO: 토큰 반영 후 교체
30
30
  height: 52,
31
31
  slotHeight: 36,
32
- // TODO: shadow/spread/md 토큰 반영 교체
33
- shadow: '0 -2px 8px 0 rgba(0, 0, 0, 0.08)',
32
+ shadow: `${shadowSpreadMd.x}px ${shadowSpreadMd.y}px ${shadowSpreadMd.blur}px ${shadowSpreadMd.spread}px ${shadowSpreadMd.color}`,
34
33
  };
@@ -1,5 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
- import { POPUP_FOOTER, POPUP_HEADER, POPUP_LAYOUT, } from "./sd-popup.config";
2
+ import { POPUP_FOOTER, POPUP_HEADER, POPUP_LAYOUT } from "./sd-popup.config";
3
3
  const DEFAULT_SUBMIT_BUTTON_PROPS = {
4
4
  name: 'primary_md',
5
5
  label: '확인',
@@ -7,6 +7,8 @@ const DEFAULT_SUBMIT_BUTTON_PROPS = {
7
7
  export class SdPopup {
8
8
  popupTitle = '';
9
9
  type = 'default';
10
+ // 기본 footer 표시가 자연스러운 UX. prop 이름 변경(hideFooter 등)은 public API breaking 이라 별도 이슈로 분리.
11
+ // eslint-disable-next-line stencil/ban-default-true
10
12
  useFooter = true;
11
13
  submitButtonProps;
12
14
  submit;
@@ -34,7 +36,7 @@ export class SdPopup {
34
36
  ...DEFAULT_SUBMIT_BUTTON_PROPS,
35
37
  ...this.submitButtonProps,
36
38
  };
37
- return (h("div", { key: '0c9f1cd261fa533044309342cfbaae8f5b87ae31', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, h("header", { key: 'd8aa4db4d150419f5653fd93e204cc4bd865c35e', class: "sd-popup__header" }, h("h2", { key: 'fce95fce48a91c3a2b60f0b1169113cd2ff157d6', class: "sd-popup__title" }, this.popupTitle)), h("div", { key: 'c730895828c14a6a80fe6bebecb08f386cc84a78', class: "sd-popup__body" }, h("slot", { key: 'f3402c32fdc55794fb2c877a41c9f73e3c0d6d9f' })), this.useFooter && (h("footer", { key: '4b04ebc0dccc07dd9466c06c940d3444346603ba', class: "sd-popup__footer" }, h("div", { key: '78b35347121652d647e3601e6c6164e8e21288ca', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, h("slot", { key: '98836c28e7de97466cf4285c0458a8709c3788bb', name: "footer-left" })), h("sd-button", { key: 'd9ab45765c66a2f86aec2df9fc056fa1f4605259', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
39
+ return (h("div", { key: 'fe8ca033482913b9c8c7a62963d81d8c5c86c724', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, h("header", { key: 'b27afc04689384abc8cdd45e67e4765c3fef82e9', class: "sd-popup__header" }, h("h2", { key: '15d6cf170e483bfdea861aa7a218df8379d83be2', class: "sd-popup__title" }, this.popupTitle)), h("div", { key: 'daf70c8196ad95b214c978166f547a2a2fa56814', class: "sd-popup__body" }, h("slot", { key: 'f8f4a9f93b88404993e2c8f7155abe4756f9bdba' })), this.useFooter && (h("footer", { key: '38ff051abd11378ad0a83b2d634985d689e0dc27', class: "sd-popup__footer" }, h("div", { key: '149a3de3d7ab0703d9cec41b35af23a6eebd67de', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, h("slot", { key: '2507cece435fa3e00ea698bebf6c980fea081521', name: "footer-left" })), h("sd-button", { key: '5ae38a07e39437d6f3b8aa111258d60aa044152d', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
38
40
  }
39
41
  static get is() { return "sd-popup"; }
40
42
  static get originalStyleUrls() {
@@ -220,7 +220,7 @@ export class SdPortal {
220
220
  this.close.emit();
221
221
  }
222
222
  render() {
223
- return h("slot", { key: '1f46253fe0f70fda84643e8d3025c1fd47090f5c' });
223
+ return h("slot", { key: 'a227fa8a0639de7fd3a014762998692151284f87' });
224
224
  }
225
225
  static get is() { return "sd-portal"; }
226
226
  static get properties() {