@sellmate/design-system 1.0.21 → 1.0.22

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 (161) hide show
  1. package/dist/cjs/{select-keyboard-navigation-CtstKOb3.js → base-dropdown-event-BTPlZ1KF.js} +0 -38
  2. package/dist/cjs/component.button-C6xBMwHf.js +115 -0
  3. package/dist/cjs/design-system.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/sd-button-v2.cjs.entry.js +86 -0
  6. package/dist/cjs/sd-button-v2.config-BK45EPK_.js +203 -0
  7. package/dist/cjs/sd-button_21.cjs.entry.js +119 -65
  8. package/dist/cjs/sd-card.cjs.entry.js +1 -1
  9. package/dist/cjs/sd-date-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/sd-dropdown-button.cjs.entry.js +274 -0
  11. package/dist/cjs/sd-file-picker.cjs.entry.js +3 -3
  12. package/dist/cjs/sd-guide.cjs.entry.js +2 -2
  13. package/dist/cjs/sd-popover.cjs.entry.js +2 -2
  14. package/dist/cjs/sd-progress.cjs.entry.js +2 -2
  15. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +3 -2
  16. package/dist/cjs/sd-select-multiple.cjs.entry.js +4 -3
  17. package/dist/cjs/sd-select-option-group.cjs.entry.js +3 -3
  18. package/dist/cjs/sd-toggle-button.cjs.entry.js +1 -1
  19. package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
  20. package/dist/cjs/select-keyboard-navigation-s2wP37xZ.js +40 -0
  21. package/dist/collection/collection-manifest.json +3 -1
  22. package/dist/collection/components/sd-button-v2/sd-button-v2.config.js +190 -0
  23. package/dist/collection/components/sd-button-v2/sd-button-v2.css +120 -0
  24. package/dist/collection/components/sd-button-v2/sd-button-v2.js +249 -0
  25. package/dist/collection/components/sd-card/sd-card.js +1 -1
  26. package/dist/collection/components/sd-date-picker/sd-date-picker.js +1 -1
  27. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
  28. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +62 -0
  29. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.css +171 -0
  30. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +384 -0
  31. package/dist/collection/components/sd-field/sd-field.js +3 -3
  32. package/dist/collection/components/sd-file-picker/sd-file-picker.js +3 -3
  33. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  34. package/dist/collection/components/sd-guide/sd-guide.js +2 -2
  35. package/dist/collection/components/sd-icon/sd-icon.js +1 -1
  36. package/dist/collection/components/sd-input/sd-input.js +1 -1
  37. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
  38. package/dist/collection/components/sd-number-input/sd-number-input.js +4 -4
  39. package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
  40. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  41. package/dist/collection/components/sd-portal/sd-portal.js +89 -19
  42. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  43. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +2 -2
  44. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  45. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +3 -3
  46. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +1 -1
  47. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  48. package/dist/collection/components/sd-textarea/sd-textarea.js +2 -2
  49. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  50. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +1 -1
  51. package/dist/components/{p-D0U1cMbs.js → p-B4p2JGMI.js} +1 -1
  52. package/dist/components/p-Bd9o9P1x.js +1 -0
  53. package/dist/components/{p-rn5S2icF.js → p-BsQEKShq.js} +1 -1
  54. package/dist/components/{p-CbQobmaB.js → p-CAJmL8nc.js} +1 -1
  55. package/dist/components/p-CWlCxabU.js +1 -0
  56. package/dist/components/p-Cy6HMEsK.js +1 -0
  57. package/dist/components/{p-C1XPuuO-.js → p-CysnHGj4.js} +1 -1
  58. package/dist/components/{p-qSu-ayDy.js → p-D4kmO3k7.js} +1 -1
  59. package/dist/components/{p-DdOM8yc2.js → p-DB52ADSW.js} +1 -1
  60. package/dist/components/{p-J-Yn0oS3.js → p-DExqkuUY.js} +1 -1
  61. package/dist/components/{p-MmKik3mL.js → p-DF2wExtn.js} +1 -1
  62. package/dist/components/{p-D35gOcGh.js → p-DFgtwoFG.js} +1 -1
  63. package/dist/components/{p-BVFlD1Lp.js → p-DYsHXden.js} +1 -1
  64. package/dist/components/{p-CWg2auF3.js → p-DZqrfwuw.js} +1 -1
  65. package/dist/components/p-Dc4UTGgQ.js +1 -0
  66. package/dist/components/{p-CU5TiEeI.js → p-DyeU47vV.js} +1 -1
  67. package/dist/components/p-Hvt2oWRk.js +1 -0
  68. package/dist/components/{p-Cef06v8S.js → p-JyVgfdnC.js} +1 -1
  69. package/dist/components/p-VKF2AWs1.js +1 -0
  70. package/dist/components/sd-button-v2.d.ts +11 -0
  71. package/dist/components/sd-button-v2.js +1 -0
  72. package/dist/components/sd-button.js +1 -1
  73. package/dist/components/sd-card.js +1 -1
  74. package/dist/components/sd-checkbox.js +1 -1
  75. package/dist/components/sd-date-picker.js +1 -1
  76. package/dist/components/sd-date-range-picker.js +1 -1
  77. package/dist/components/sd-dropdown-button.d.ts +11 -0
  78. package/dist/components/sd-dropdown-button.js +1 -0
  79. package/dist/components/sd-field.js +1 -1
  80. package/dist/components/sd-file-picker.js +1 -1
  81. package/dist/components/sd-floating-portal.js +1 -1
  82. package/dist/components/sd-guide.js +1 -1
  83. package/dist/components/sd-icon.js +1 -1
  84. package/dist/components/sd-input.js +1 -1
  85. package/dist/components/sd-loading-spinner.js +1 -1
  86. package/dist/components/sd-modal-card.js +1 -1
  87. package/dist/components/sd-number-input.js +1 -1
  88. package/dist/components/sd-pagination.js +1 -1
  89. package/dist/components/sd-popover.js +1 -1
  90. package/dist/components/sd-portal.js +1 -1
  91. package/dist/components/sd-progress.js +1 -1
  92. package/dist/components/sd-select-dropdown.js +1 -1
  93. package/dist/components/sd-select-multiple-group.js +1 -1
  94. package/dist/components/sd-select-multiple.js +1 -1
  95. package/dist/components/sd-select-option-group.js +1 -1
  96. package/dist/components/sd-select-option.js +1 -1
  97. package/dist/components/sd-select-search-input.js +1 -1
  98. package/dist/components/sd-select.js +1 -1
  99. package/dist/components/sd-table.js +1 -1
  100. package/dist/components/sd-textarea.js +1 -1
  101. package/dist/components/sd-toast.js +1 -1
  102. package/dist/components/sd-toggle-button.js +1 -1
  103. package/dist/components/sd-toggle.js +1 -1
  104. package/dist/components/sd-tooltip.js +1 -1
  105. package/dist/design-system/design-system.esm.js +1 -1
  106. package/dist/design-system/p-2ca338f9.entry.js +1 -0
  107. package/dist/design-system/p-322dbf53.entry.js +1 -0
  108. package/dist/design-system/p-3885ca10.entry.js +1 -0
  109. package/dist/design-system/{p-d6b38732.entry.js → p-40da6e22.entry.js} +1 -1
  110. package/dist/design-system/{p-679e4367.entry.js → p-47d37199.entry.js} +1 -1
  111. package/dist/design-system/{p-3301c280.entry.js → p-6c34df5b.entry.js} +1 -1
  112. package/dist/design-system/p-7d35c7a7.entry.js +1 -0
  113. package/dist/design-system/{p-3d03b19e.entry.js → p-938940a7.entry.js} +1 -1
  114. package/dist/design-system/p-9650c304.entry.js +1 -0
  115. package/dist/design-system/{p-8f99cd66.entry.js → p-9ad83ffb.entry.js} +1 -1
  116. package/dist/design-system/p-CRdYeSBK.js +1 -0
  117. package/dist/design-system/p-Dc4UTGgQ.js +1 -0
  118. package/dist/design-system/p-VKF2AWs1.js +1 -0
  119. package/dist/design-system/{p-d344fa9d.entry.js → p-a547f366.entry.js} +1 -1
  120. package/dist/design-system/{p-3e07e92a.entry.js → p-b2ab1c50.entry.js} +1 -1
  121. package/dist/design-system/p-d38f59b3.entry.js +1 -0
  122. package/dist/design-system/{p-822233ee.entry.js → p-e5c3927f.entry.js} +1 -1
  123. package/dist/design-system/p-xxEHPVkL.js +1 -0
  124. package/dist/esm/{select-keyboard-navigation-D8-D-mJX.js → base-dropdown-event-CRdYeSBK.js} +1 -37
  125. package/dist/esm/component.button-Dc4UTGgQ.js +113 -0
  126. package/dist/esm/design-system.js +1 -1
  127. package/dist/esm/loader.js +1 -1
  128. package/dist/esm/sd-button-v2.config-BWmcscrt.js +193 -0
  129. package/dist/esm/sd-button-v2.entry.js +84 -0
  130. package/dist/esm/sd-button_21.entry.js +114 -60
  131. package/dist/esm/sd-card.entry.js +1 -1
  132. package/dist/esm/sd-date-picker.entry.js +1 -1
  133. package/dist/esm/sd-dropdown-button.entry.js +272 -0
  134. package/dist/esm/sd-file-picker.entry.js +3 -3
  135. package/dist/esm/sd-guide.entry.js +2 -2
  136. package/dist/esm/sd-popover.entry.js +2 -2
  137. package/dist/esm/sd-progress.entry.js +2 -2
  138. package/dist/esm/sd-select-multiple-group.entry.js +2 -1
  139. package/dist/esm/sd-select-multiple.entry.js +3 -2
  140. package/dist/esm/sd-select-option-group.entry.js +3 -3
  141. package/dist/esm/sd-toggle-button.entry.js +1 -1
  142. package/dist/esm/sd-toggle.entry.js +1 -1
  143. package/dist/esm/select-keyboard-navigation-xxEHPVkL.js +37 -0
  144. package/dist/types/components/sd-button-v2/sd-button-v2.config.d.ts +178 -0
  145. package/dist/types/components/sd-button-v2/sd-button-v2.d.ts +18 -0
  146. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +55 -0
  147. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.d.ts +34 -0
  148. package/dist/types/components/sd-portal/sd-portal.d.ts +9 -0
  149. package/dist/types/components.d.ts +153 -0
  150. package/dist/types/index.d.ts +2 -0
  151. package/hydrate/index.js +881 -148
  152. package/hydrate/index.mjs +881 -148
  153. package/package.json +2 -2
  154. package/dist/components/p-B82gJZ4z.js +0 -1
  155. package/dist/components/p-C6J-ZZxF.js +0 -1
  156. package/dist/components/p-CHAh-_qx.js +0 -1
  157. package/dist/design-system/p-103de692.entry.js +0 -1
  158. package/dist/design-system/p-55c13597.entry.js +0 -1
  159. package/dist/design-system/p-D8-D-mJX.js +0 -1
  160. package/dist/design-system/p-de339565.entry.js +0 -1
  161. package/dist/design-system/p-fc0e636b.entry.js +0 -1
@@ -1,35 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-D-PnW6jc.js');
4
+ var component_button = require('./component.button-C6xBMwHf.js');
4
5
  var resolveColor = require('./resolveColor-4RlaGD62.js');
5
6
  var useDatePicker = require('./useDatePicker-cK_XK_P6.js');
6
- var selectKeyboardNavigation = require('./select-keyboard-navigation-CtstKOb3.js');
7
+ var selectKeyboardNavigation = require('./select-keyboard-navigation-s2wP37xZ.js');
8
+ var baseDropdownEvent = require('./base-dropdown-event-BTPlZ1KF.js');
7
9
  var tooltipArrow = require('./tooltipArrow-CMyNLSC-.js');
8
10
 
9
- const size = {
10
- xs: {
11
- icon: "12"
12
- },
13
- sm: {
14
- icon: "16"
15
- },
16
- md: {
17
- icon: "20"
18
- },
19
- lg: {
20
- icon: "24"
21
- }
22
- };
23
- var buttonTokens = {
24
- size: size};
25
-
26
11
  const sdButtonCss = () => `sd-button{display:inline-flex;width:fit-content;height:fit-content}.sd-button{--sd-button-height:34px;--sd-button-padding-x:20px;--sd-button-gap:8px;--sd-button-font-family:inherit;--sd-button-font-size:16px;--sd-button-font-weight:500;--sd-button-text-decoration:none;--sd-button-label-min-width:auto;--sd-button-icon-only-size:var(--sd-button-height);text-decoration:none;cursor:pointer;border-radius:var(--sd-button-radius-default, 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;padding:0 var(--sd-button-padding-x);min-width:var(--sd-button-min-width, auto);min-height:var(--sd-button-height);font-family:var(--sd-button-font-family);font-size:var(--sd-button-font-size);font-weight:var(--sd-button-font-weight);text-decoration:var(--sd-button-text-decoration)}.sd-button--xs{--sd-button-height:var(--sd-button-xs-height, 24px);--sd-button-padding-x:var(--sd-button-xs-padding-x, 8px);--sd-button-gap:var(--sd-button-xs-gap, 4px);--sd-button-font-family:var(--sd-button-xs-typography-font-family, inherit);--sd-button-font-size:var(--sd-button-xs-typography-font-size, 12px);--sd-button-font-weight:var(--sd-button-xs-typography-font-weight, 500);--sd-button-text-decoration:var(--sd-button-xs-typography-text-decoration, none);--sd-button-label-min-width:var(--sd-button-label-xs-min-width, auto);--sd-button-icon-only-size:var(--sd-button-icon-only-xs-width, var(--sd-button-height));line-height:20px}.sd-button--sm{--sd-button-height:var(--sd-button-sm-height, 28px);--sd-button-padding-x:var(--sd-button-sm-padding-x, 12px);--sd-button-gap:var(--sd-button-sm-gap, 6px);--sd-button-font-family:var(--sd-button-sm-typography-font-family, inherit);--sd-button-font-size:var(--sd-button-sm-typography-font-size, 12px);--sd-button-font-weight:var(--sd-button-sm-typography-font-weight, 500);--sd-button-text-decoration:var(--sd-button-sm-typography-text-decoration, none);--sd-button-label-min-width:var(--sd-button-label-sm-min-width, auto);--sd-button-icon-only-size:var(--sd-button-icon-only-sm-width, var(--sd-button-height));line-height:20px}.sd-button--md{--sd-button-height:var(--sd-button-md-height, 34px);--sd-button-padding-x:var(--sd-button-md-padding-x, 20px);--sd-button-gap:var(--sd-button-md-gap, 8px);--sd-button-font-family:var(--sd-button-md-typography-font-family, inherit);--sd-button-font-size:var(--sd-button-md-typography-font-size, 16px);--sd-button-font-weight:var(--sd-button-md-typography-font-weight, 500);--sd-button-text-decoration:var(--sd-button-md-typography-text-decoration, none);--sd-button-label-min-width:var(--sd-button-label-md-min-width, auto);--sd-button-icon-only-size:var(--sd-button-icon-only-md-width, var(--sd-button-height));line-height:26px}.sd-button--lg{--sd-button-height:var(--sd-button-lg-height, 62px);--sd-button-padding-x:var(--sd-button-lg-padding-x, 28px);--sd-button-gap:var(--sd-button-lg-gap, 12px);--sd-button-font-family:var(--sd-button-lg-typography-font-family, inherit);--sd-button-font-size:var(--sd-button-lg-typography-font-size, 18px);--sd-button-font-weight:var(--sd-button-lg-typography-font-weight, 500);--sd-button-text-decoration:var(--sd-button-lg-typography-text-decoration, none);--sd-button-label-min-width:var(--sd-button-label-lg-min-width, auto);--sd-button-icon-only-size:var(--sd-button-icon-only-lg-width, var(--sd-button-height));line-height:30px}.sd-button--has-label{--sd-button-min-width:var(--sd-button-label-min-width, auto)}.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:var(--sd-button-border-width-default, 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:var(--sd-button-border-width-default, 1px) solid var(--sd-button-border-disabled, #CCCCCC);background:var(--sd-button-bg-disabled, #E1E1E1);color:var(--sd-button-content-disabled, #888888);cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:var(--sd-button-icon-only-size, var(--sd-button-height));min-width:var(--sd-button-icon-only-size, var(--sd-button-height));height:var(--sd-button-icon-only-size, var(--sd-button-height))}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:var(--sd-button-gap);z-index:1;font-weight:inherit}`;
27
12
 
28
13
  const ICON_SIZES = {
29
- xs: Number(buttonTokens.size.xs.icon),
30
- sm: Number(buttonTokens.size.sm.icon),
31
- md: Number(buttonTokens.size.md.icon),
32
- lg: Number(buttonTokens.size.lg.icon),
14
+ xs: Number(component_button.buttonTokens.size.xs.icon),
15
+ sm: Number(component_button.buttonTokens.size.sm.icon),
16
+ md: Number(component_button.buttonTokens.size.md.icon),
17
+ lg: Number(component_button.buttonTokens.size.lg.icon),
33
18
  };
34
19
  const SdButton = class {
35
20
  constructor(hostRef) {
@@ -388,10 +373,10 @@ const SdDateRangePicker = class {
388
373
  this.setHoverDate(hoverDate);
389
374
  }
390
375
  render() {
391
- return (index.h("div", { key: '96cd4e99ae976517e7b24c5ff3046af976adc5cb', class: {
376
+ return (index.h("div", { key: 'e0eaf7463e91d3afed6ff977deb20d122e837fd4', class: {
392
377
  'sd-date-range-picker': true,
393
378
  'sd-date-range-picker--disabled': this.disabled,
394
- } }, index.h("sd-input", { key: 'a84838a1a84d990b289f0b753ccf3e2f45da4770', ref: el => (this.inputEl = el), value: !!this.dateRange[0] ? `${this.dateRange[0]} ~ ${this.dateRange[1]}` : '', label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-range-picker__input", onClick: () => this.openMenu() }, index.h("sd-icon", { key: 'd926c672dcf457a68ebe644b32c90a03ba29b175', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (index.h("sd-portal", { key: '0af519c7ac2ade00972e23b9ecb0344989d87f51', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.closeMenu }, index.h("div", { key: 'd9109e573215092c6b386ae27ac7377c4347df4c', class: "sd-date-range-picker__menu" }, index.h("div", { key: 'ca4743a26ed0571bc3b63218a32a113e50dbd81a', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, index.h("button", { key: '6f0fe1ede6d171e749a241fbeec32056250709b9', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, index.h("sd-icon", { key: '821526a069a845f271b0e5db607f747efe4e610c', name: "arrowLeft", size: "12", color: "#CCCCCC" })), index.h("div", { key: 'e9402009c8b034953d7ff4be5a4eea64d7fed21d', class: "header-label" }, this.prevYear), index.h("button", { key: 'b752631ab64e32a4a39c13898cc3db5e25897c4b', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, index.h("sd-icon", { key: '62c6e0004ff1a0d8f260e11b9d17ea7ccca942ee', name: "arrowRight", size: "12", color: "#CCCCCC" }))), index.h("div", { key: '3a05a7e02664be8d9dfb85d0bada03a2d352af12', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index$1) => (index.h(index.Fragment, null, index$1 === 1 && index.h("div", { class: "separator" }), index.h("div", { key: index$1, class: "calendar-container" }, index.h("div", { class: "calendar-header" }, index.h("button", { type: "button", name: "month", title: "Month", class: index$1 === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index$1 === 0 ? 'prev' : 'next') }, index.h("sd-icon", { name: index$1 === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index$1 === 0
379
+ } }, index.h("sd-input", { key: '301a5133f5a6bcb5bd66fed546528808a96b822a', ref: el => (this.inputEl = el), value: !!this.dateRange[0] ? `${this.dateRange[0]} ~ ${this.dateRange[1]}` : '', label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-range-picker__input", onClick: () => this.openMenu() }, index.h("sd-icon", { key: 'ef7e9e74957d994a2e7a374f849ef1a5f03fe501', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (index.h("sd-portal", { key: '0eb793bbc67d0da80bfdbb9d5e8c89857a9bd13d', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.closeMenu }, index.h("div", { key: '6e7f6d3c0ba5d60cec929ff87f2b16c6fd1123ae', class: "sd-date-range-picker__menu" }, index.h("div", { key: 'bbc3b2117e226e86ad18e90d9549dfa33b8faa18', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, index.h("button", { key: 'e5246cbd684096c113a9568d42a4a86555fd55b0', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, index.h("sd-icon", { key: '84281ab72847d7fe9352be583465b810854f2cfb', name: "arrowLeft", size: "12", color: "#CCCCCC" })), index.h("div", { key: '9d9394eea9a82bdcdc7918af50e98909610ab5e2', class: "header-label" }, this.prevYear), index.h("button", { key: '6f05a7477293b129561b1bdaa5fca46224f41af9', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, index.h("sd-icon", { key: '746bc40e5d0bb72e9aa712012d411f20b459b80a', name: "arrowRight", size: "12", color: "#CCCCCC" }))), index.h("div", { key: '96a2c1674152f5ee31b29734b1471940b4d0f4b4', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index$1) => (index.h(index.Fragment, null, index$1 === 1 && index.h("div", { class: "separator" }), index.h("div", { key: index$1, class: "calendar-container" }, index.h("div", { class: "calendar-header" }, index.h("button", { type: "button", name: "month", title: "Month", class: index$1 === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index$1 === 0 ? 'prev' : 'next') }, index.h("sd-icon", { name: index$1 === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index$1 === 0
395
380
  ? `${this.prevYear}.${String(this.prevMonth).padStart(2, '0')}`
396
381
  : `${this.nextYear}.${String(this.nextMonth).padStart(2, '0')}`), index.h("div", { class: "calendar-days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (index.h("sd-date-box", { key: day, date: day, disabled: true, class: "day" })))), index.h("div", { class: "calendar-body mt-12pxr grid grid-cols-7 gap-y-8pxr" }, [...calendar.prevMonthDays, ...calendar.days, ...calendar.afterMonthDays].map((day, idx) => (index.h("sd-date-box", { key: `prev${day}_${idx}`, date: !day ? '' : Number(day), selected: this.dateRange.some(date => date === this.formatDate(index$1, Number(day))), type: this.getDateBoxType(this.formatDate(index$1, Number(day))), isToday: useDatePicker.today === this.formatDate(index$1, Number(day)), disabled: !day ? true : this.isDisabledDate(this.formatDate(index$1, Number(day))), inRange: this.isDateInRange(this.formatDate(index$1, Number(day))), isStartDate: this.dateRange[0] === this.formatDate(index$1, Number(day)), isEndDate: this.dateRange[1] === this.formatDate(index$1, Number(day)), onSdClick: () => this.handleDateClick(index$1, Number(day)), onSdMouseOver: () => this.handleDateHover(index$1, Number(day)) }))))))))))))));
397
382
  }
@@ -523,15 +508,15 @@ const SdField = class {
523
508
  }
524
509
  }
525
510
  render() {
526
- return (index.h("div", { key: '3c69abe493110b5665795706a9ae0e525f213aca', class: {
511
+ return (index.h("div", { key: '83d20191373b759f18d25e25330ead65217dea4f', class: {
527
512
  'sd-field': true,
528
513
  'sd-field--has-label': !!this.label,
529
514
  'sd-field--has-label-inside': !!this.label && this.insideLabel,
530
515
  [this.fieldStatus]: !!this.fieldStatus,
531
- } }, index.h("div", { key: 'decc6821b7172f5ecc2343472014c08674725904', class: "sd-field__wrapper" }, this.renderLabel(this.label), index.h("div", { key: 'ca5e93f049db10ecaaaab091fdf394ac4b55e292', class: {
516
+ } }, index.h("div", { key: '2f04e19997c077c32843173c85dc04840f8fa0f6', class: "sd-field__wrapper" }, this.renderLabel(this.label), index.h("div", { key: 'c7fa5c334cd4dc0b99919850b3059a35a77ea5c6', class: {
532
517
  'sd-field__control': true,
533
518
  'sd-field__control--label-inside ': !!this.label && this.insideLabel,
534
- } }, index.h("slot", { key: '7ee38983d32985f4b4a035830bcdca0e14b2cf71' }))), this.errorMsg && index.h("div", { key: 'c2d6ef860ced48657b906806f2618594b094ea79', class: "sd-field__error-message" }, this.errorMsg)));
519
+ } }, index.h("slot", { key: '15f7bd40ca6ed1667f97f6362be914e203c491af' }))), this.errorMsg && index.h("div", { key: 'd940bca4d3074e8051bc5392aad36be4c58f88af', class: "sd-field__error-message" }, this.errorMsg)));
535
520
  }
536
521
  renderLabel(label) {
537
522
  if (!label)
@@ -692,7 +677,7 @@ const SdFloatingPopover = class {
692
677
  this.close.emit();
693
678
  }
694
679
  render() {
695
- return index.h("slot", { key: '2f33d335a7cf00ace576aed610a0e77d711a5b10' });
680
+ return index.h("slot", { key: 'd8bdd90d00b52153d1144bbea871ace4888e37e4' });
696
681
  }
697
682
  };
698
683
  SdFloatingPopover.style = sdFloatingPortalCss();
@@ -2706,7 +2691,7 @@ const SdIcon = class {
2706
2691
  }
2707
2692
  render() {
2708
2693
  const IconComponent = Icons[this.name]?.[this.size];
2709
- return (index.h("i", { key: '1d6a48769c99bbfe9576016e24766b8c82ab570e', class: this.getIconClasses(), style: this.iconStyle }, index.h(IconComponent, { key: '3fdb4195ef13656e79b402a4eae2fb0210fb3a97', color: this.resolvedColor })));
2694
+ return (index.h("i", { key: '2c1ef942e674d6dc85911f9a87c6859e0e86a706', class: this.getIconClasses(), style: this.iconStyle }, index.h(IconComponent, { key: 'fa1bc7cd1cf4dc5ec2565f5bbfe65e8137673204', color: this.resolvedColor })));
2710
2695
  }
2711
2696
  };
2712
2697
  SdIcon.style = sdIconCss();
@@ -2804,7 +2789,7 @@ const SdInput = class {
2804
2789
  }
2805
2790
  };
2806
2791
  render() {
2807
- return (index.h("sd-field", { key: '87f02ba890fd952f89eb86d200318038137ba1a4', name: this.name, label: this.label, insideLabel: this.insideLabel, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, useLabelRequired: this.useLabelRequired, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, index.h("label", { key: '0bb5824067b33c178b1f60ececdccfe0a3d5f294', class: "sd-input__content", style: { width: '100%' } }, index.h("slot", { key: '6f67712b4ca708ba511c57379a6b5118732f146a', name: "prefix" }), index.h("input", { key: 'b337a1161dedb41ed29a690fa963c0ac60dd0c79', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type, value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), index.h("slot", { key: 'bf45d9fd71551dc6a3bb96cdc44512796beee923', name: "suffix" }), this.clearable && this.internalValue && (index.h("sd-icon", { key: 'aed0a5d9115ba8b7601dc62423349bee1a9978c7', name: "close", color: "grey_65", size: "16", class: "sd-input__clear-icon", onClick: async () => {
2792
+ return (index.h("sd-field", { key: '757bf7b330f93ec9cd344098bdf124b999e04bb5', name: this.name, label: this.label, insideLabel: this.insideLabel, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, useLabelRequired: this.useLabelRequired, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, index.h("label", { key: '2dde85e905d77bb6337a2ad10a9f0f872fed5e8a', class: "sd-input__content", style: { width: '100%' } }, index.h("slot", { key: '20f47646ca476bf6ca6412ebb9e6aac0c72e7eab', name: "prefix" }), index.h("input", { key: 'a4f4f1594c80a8d834db7d6125110b4c65ad9906', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type, value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), index.h("slot", { key: '35c7c173d72cbc295ad8f6e12f94bfe96e9f98d1', name: "suffix" }), this.clearable && this.internalValue && (index.h("sd-icon", { key: '82bf96b1a01516e0a7ea0dd735509511aa8a0e05', name: "close", color: "grey_65", size: "16", class: "sd-input__clear-icon", onClick: async () => {
2808
2793
  this.internalValue = '';
2809
2794
  await this.formField?.sdValidate();
2810
2795
  } })))));
@@ -2831,7 +2816,7 @@ const SdLoadingSpinner = class {
2831
2816
  return resolveColor.resolveColor(this.color);
2832
2817
  }
2833
2818
  render() {
2834
- return (index.h(index.Fragment, { key: 'c3b3448fcc65334af3246f80157b195ec5595afe' }, index.h("svg", { key: '24701b65d17e56434cf46b72dbd5acec208b5dc8', class: "sd-loading-spinner", width: "72px", height: "72px", viewBox: "25 25 50 50", style: { color: this.resolvedColor } }, index.h("circle", { key: 'e19c68c082348d36eecd05fa561eee91182349f2', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
2819
+ return (index.h(index.Fragment, { key: '1a4edb8be9cc83ab900cd615ee30958d9822e98b' }, index.h("svg", { key: '634070026b58303bf3423b10f37ed6603179b9b1', class: "sd-loading-spinner", width: "72px", height: "72px", viewBox: "25 25 50 50", style: { color: this.resolvedColor } }, index.h("circle", { key: 'fda3f7e4f787176f6030e19a3f2c1dd59326d35a', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
2835
2820
  }
2836
2821
  };
2837
2822
  SdLoadingSpinner.style = sdLoadingSpinnerCss();
@@ -3126,17 +3111,17 @@ const SdNumberInput = class {
3126
3111
  const inputStyles = {
3127
3112
  textAlign: this.useButton ? 'center' : 'right',
3128
3113
  };
3129
- return (index.h("sd-field", { key: '7aa387eeb5850052e121931b3f8183373b4319aa', name: this.name, label: this.label, insideLabel: this.insideLabel, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, ref: el => (this.formField = el), style: inputWidth }, index.h("label", { key: 'f5bbb6c76e32de4aefe59c6958a38e1a560f05c9', class: {
3114
+ return (index.h("sd-field", { key: '837e3b5c34396eb83adcf52f3242d24ad122be0a', name: this.name, label: this.label, insideLabel: this.insideLabel, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, ref: el => (this.formField = el), style: inputWidth }, index.h("label", { key: '57000cb104bb65b1827e2cdb059bad004c236b2a', class: {
3130
3115
  'sd-number-input': true,
3131
3116
  [this.getInputStatus()]: true,
3132
3117
  'sd-number-input--with-buttons': this.useButton,
3133
- }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, index.h("input", { key: 'fc26b7cf0d121025c9a748b158640e03188d72d3', name: this.name, ref: el => (this.nativeEl = el), class: `sd-number-input__input ${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, style: inputStyles, onFocus: this.handleFocus, onBlur: this.handleBlur }), this.useButton && (index.h("div", { key: 'c9325ea7dd19c02fead55a0d63ac0b7b16143d08', class: "sd-number-input__buttons" }, index.h("button", { key: 'ec96811ce7046a3fe9506ca0635db97413d8283a', type: "button", class: {
3118
+ }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, index.h("input", { key: 'da7fe761d7e2528dd299d6ee5867bc7a5e0983ee', name: this.name, ref: el => (this.nativeEl = el), class: `sd-number-input__input ${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, style: inputStyles, onFocus: this.handleFocus, onBlur: this.handleBlur }), this.useButton && (index.h("div", { key: '3a58c1b9da818dbe0d4d29b79816bbc81288be49', class: "sd-number-input__buttons" }, index.h("button", { key: '507b418d1aea67247d10fcba514b51cc966b3ce9', type: "button", class: {
3134
3119
  'sd-number-input__button': true,
3135
3120
  'sd-number-input__button--decrement': true,
3136
- }, disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, index.h("sd-icon", { key: '70311a7723356ecc88125042d366bf567b0b5a2a', name: "minus", size: 12, color: this.isDecrementDisabled() ? 'grey_45' : 'brilliantblue_70' })), index.h("button", { key: 'b7086218dc98fec4287e4becb0d834634fd52055', type: "button", class: {
3121
+ }, disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, index.h("sd-icon", { key: 'e0b28e6cf9a5c9d578688e45f7db227516f6373f', name: "minus", size: 12, color: this.isDecrementDisabled() ? 'grey_45' : 'brilliantblue_70' })), index.h("button", { key: '813bf64d160888e610da067fef9dea11375dd51b', type: "button", class: {
3137
3122
  'sd-number-input__button': true,
3138
3123
  'sd-number-input__button--increment': true,
3139
- }, disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, index.h("sd-icon", { key: 'b945a1561978dc4bba1868fa57652e94a6bcfc34', name: "add", size: 12, color: this.isIncrementDisabled() ? 'grey_45' : 'brilliantblue_70' })))))));
3124
+ }, disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, index.h("sd-icon", { key: '6677d8b46b123e5534bfa8b2fcb45276d9b70782', name: "add", size: 12, color: this.isIncrementDisabled() ? 'grey_45' : 'brilliantblue_70' })))))));
3140
3125
  }
3141
3126
  static get watchers() { return {
3142
3127
  "value": [{
@@ -3224,12 +3209,12 @@ const SdPagination = class {
3224
3209
  }
3225
3210
  }
3226
3211
  render() {
3227
- return (index.h("div", { key: 'feed08139c382f91539bc316a967ed1738529688', class: this.paginationClasses }, index.h("div", { key: '42c908d7a685f2acab29a94d040e4f4c513fff38', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (index.h("div", { class: "pagination-info" }, index.h("span", { class: "current-page" }, this.currentPage), index.h("span", null, "/"), index.h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (index.h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
3212
+ return (index.h("div", { key: '1adbe18d363ff7946e900929d0dfaec1a1807d45', class: this.paginationClasses }, index.h("div", { key: '104eb4ac5fa9e8564c8730f34aefca4e0ac31cc6', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (index.h("div", { class: "pagination-info" }, index.h("span", { class: "current-page" }, this.currentPage), index.h("span", null, "/"), index.h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (index.h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
3228
3213
  'pagination-btn': true,
3229
3214
  'pagination-btn--selected': this.currentPage === n,
3230
3215
  }, disabled: this.currentPage === n, style: {
3231
3216
  '--pagination-btn-width': `${this.buttonWidth}px`,
3232
- }, onClick: () => this.handlePageChange(n) }, n)))), index.h("div", { key: '2be11ae773c0bce71ecaf53f99daff3f5b2d567d', class: "append-btns" }, this.renderNextButtons())));
3217
+ }, onClick: () => this.handlePageChange(n) }, n)))), index.h("div", { key: 'e596b6a182e22ae4a8e95d5babb548d3bfba373d', class: "append-btns" }, this.renderNextButtons())));
3233
3218
  }
3234
3219
  };
3235
3220
  SdPagination.style = sdPaginationCss();
@@ -3250,25 +3235,31 @@ const SdPortal = class {
3250
3235
  wrapper;
3251
3236
  rafId;
3252
3237
  isInsideClick = false;
3238
+ handleObservedScroll = () => this.updatePosition();
3253
3239
  resizeObserver;
3254
3240
  mutationObserver;
3241
+ scrollParents = [];
3242
+ isObserved = false;
3243
+ handleOpenChange() {
3244
+ this.syncPortalState();
3245
+ }
3255
3246
  componentDidLoad() {
3256
3247
  this.container = this.resolveContainer();
3257
- this.createWrapper();
3258
- this.moveSlotContent();
3259
- this.updatePosition();
3260
- this.observeParent();
3248
+ this.syncPortalState();
3261
3249
  }
3262
3250
  componentDidRender() {
3263
- if (!this.wrapper)
3264
- return;
3265
- this.wrapper.style.display = this.open ? 'block' : 'none';
3266
- if (this.open)
3267
- this.updatePosition();
3251
+ this.syncPortalState();
3268
3252
  }
3269
3253
  disconnectedCallback() {
3270
3254
  this.unobserveParent();
3271
- this.wrapper?.remove();
3255
+ if (this.wrapper?.parentNode) {
3256
+ try {
3257
+ this.wrapper.parentNode.removeChild(this.wrapper);
3258
+ }
3259
+ catch {
3260
+ // Stencil spec mock DOM can already detach the wrapper before this callback runs.
3261
+ }
3262
+ }
3272
3263
  }
3273
3264
  resolveContainer() {
3274
3265
  const el = typeof this.to === 'string' ? document.querySelector(this.to) : this.to;
@@ -3283,6 +3274,26 @@ const SdPortal = class {
3283
3274
  });
3284
3275
  this.container.appendChild(this.wrapper);
3285
3276
  }
3277
+ ensureWrapper() {
3278
+ if (this.wrapper)
3279
+ return;
3280
+ this.container ||= this.resolveContainer();
3281
+ this.createWrapper();
3282
+ this.moveSlotContent();
3283
+ }
3284
+ syncPortalState() {
3285
+ if (!this.open) {
3286
+ this.wrapper && (this.wrapper.style.display = 'none');
3287
+ this.unobserveParent();
3288
+ return;
3289
+ }
3290
+ this.ensureWrapper();
3291
+ if (!this.wrapper)
3292
+ return;
3293
+ this.wrapper.style.display = 'block';
3294
+ this.observeParent();
3295
+ this.updatePosition();
3296
+ }
3286
3297
  moveSlotContent() {
3287
3298
  if (!this.wrapper)
3288
3299
  return;
@@ -3324,19 +3335,57 @@ const SdPortal = class {
3324
3335
  }
3325
3336
  // parentRef의 이동 / 크기변경 감지
3326
3337
  observeParent() {
3327
- if (!this.parentRef)
3338
+ if (!this.parentRef || this.isObserved)
3328
3339
  return;
3329
- this.resizeObserver = new ResizeObserver(() => this.updatePosition());
3330
- this.resizeObserver.observe(this.parentRef);
3331
- this.mutationObserver = new MutationObserver(() => this.updatePosition());
3332
- this.mutationObserver.observe(document.body, {
3333
- childList: true,
3334
- subtree: true,
3335
- });
3340
+ this.observeScrollParents(this.parentRef);
3341
+ if (typeof ResizeObserver !== 'undefined') {
3342
+ this.resizeObserver = new ResizeObserver(() => this.updatePosition());
3343
+ this.resizeObserver.observe(this.parentRef);
3344
+ }
3345
+ if (typeof MutationObserver !== 'undefined') {
3346
+ this.mutationObserver = new MutationObserver(() => this.updatePosition());
3347
+ this.mutationObserver.observe(document.body, {
3348
+ childList: true,
3349
+ subtree: true,
3350
+ });
3351
+ }
3352
+ this.isObserved = true;
3336
3353
  }
3337
3354
  unobserveParent() {
3355
+ if (!this.isObserved)
3356
+ return;
3357
+ this.unobserveScrollParents();
3338
3358
  this.resizeObserver?.disconnect();
3359
+ this.resizeObserver = undefined;
3339
3360
  this.mutationObserver?.disconnect();
3361
+ this.mutationObserver = undefined;
3362
+ this.isObserved = false;
3363
+ }
3364
+ observeScrollParents(element) {
3365
+ const nextScrollParents = this.getScrollParents(element);
3366
+ nextScrollParents.forEach(parent => {
3367
+ parent.addEventListener('scroll', this.handleObservedScroll, { passive: true });
3368
+ });
3369
+ this.scrollParents = nextScrollParents;
3370
+ }
3371
+ unobserveScrollParents() {
3372
+ this.scrollParents.forEach(parent => {
3373
+ parent.removeEventListener('scroll', this.handleObservedScroll);
3374
+ });
3375
+ this.scrollParents = [];
3376
+ }
3377
+ getScrollParents(element) {
3378
+ const scrollParents = [];
3379
+ let currentElement = element.parentElement;
3380
+ while (currentElement) {
3381
+ const { overflow, overflowX, overflowY } = getComputedStyle(currentElement);
3382
+ const isScrollable = [overflow, overflowX, overflowY].some(value => /(auto|scroll|overlay)/.test(value));
3383
+ if (isScrollable) {
3384
+ scrollParents.push(currentElement);
3385
+ }
3386
+ currentElement = currentElement.parentElement;
3387
+ }
3388
+ return scrollParents;
3340
3389
  }
3341
3390
  // 외부 클릭 감지
3342
3391
  handleMouseDown(e) {
@@ -3352,8 +3401,13 @@ const SdPortal = class {
3352
3401
  this.close.emit();
3353
3402
  }
3354
3403
  render() {
3355
- return index.h("slot", { key: 'ba2bf5df16f9bef0acef1ac8a08b090a23d02bc7' });
3404
+ return index.h("slot", { key: 'be76727404b0172e1049ae572acf4eacd4ea4a25' });
3356
3405
  }
3406
+ static get watchers() { return {
3407
+ "open": [{
3408
+ "handleOpenChange": 0
3409
+ }]
3410
+ }; }
3357
3411
  };
3358
3412
 
3359
3413
  const sdRadioCss = () => `sd-radio{display:inline-flex;width:fit-content;height:fit-content}sd-radio .sd-radio{cursor:pointer}sd-radio .sd-radio label{display:inline-flex;width:fit-content;align-items:center;gap:8px;cursor:pointer}sd-radio .sd-radio label input{display:inline-block;position:relative;appearance:none;margin:0;width:16px;height:16px;border:1px solid #888888;border-radius:50%;accent-color:#0075FF;background-color:white;cursor:pointer}sd-radio .sd-radio label input:checked{border-color:#0075FF;background-color:white}sd-radio .sd-radio label input:checked::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:10px;height:10px;border-radius:50%;background-color:#0075FF}sd-radio .sd-radio label input:disabled{border-color:#CCCCCC;background-color:#EEEEEE}sd-radio .sd-radio label input:disabled:checked::before{background-color:#CCCCCC}sd-radio .sd-radio label input:not(:disabled):hover{border-color:#0075FF;background-color:#D9EAFF}sd-radio .sd-radio--disabled{cursor:not-allowed !important}sd-radio .sd-radio--disabled label{cursor:not-allowed !important}sd-radio .sd-radio--disabled label input{cursor:not-allowed !important}`;
@@ -3393,7 +3447,7 @@ SdRadio.style = sdRadioCss();
3393
3447
 
3394
3448
  const sdSelectCss = () => `sd-select{display:inline-flex;flex-flow:column nowrap;height:fit-content}sd-select *:focus,sd-select *:focus-visible,sd-select *:focus-within{outline:none !important}sd-select .sd-select{width:100%}sd-select .sd-select .sd-select__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;height:100%;align-items:center}sd-select .sd-select .sd-select__trigger .sd-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}sd-select .sd-select .sd-select__trigger .sd-select__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select .sd-select .sd-select__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease;margin-left:8px}sd-select .sd-select .sd-select__arrow--open{transform:rotate(180deg)}`;
3395
3449
 
3396
- const SdSelect = class extends selectKeyboardNavigation.BaseDropdownEvent {
3450
+ const SdSelect = class extends baseDropdownEvent.BaseDropdownEvent {
3397
3451
  constructor(hostRef) {
3398
3452
  super();
3399
3453
  index.registerInstance(this, hostRef);
@@ -3713,10 +3767,10 @@ const SdSelectDropdown = class {
3713
3767
  this.isScrolled = scrollTop > 0;
3714
3768
  };
3715
3769
  render() {
3716
- return (index.h("div", { key: 'ff55e2e133114accc2641a0025bdcf551eda3511', class: {
3770
+ return (index.h("div", { key: 'd69eabae6b1769212fb4755413de8e54ede8a213', class: {
3717
3771
  'sd-select-dropdown': true,
3718
3772
  'sd-select-dropdown--ready': this.isDropdownReady,
3719
- }, style: this.dropdownSize, onScroll: this.handleDropdownScroll, ref: el => (this.dropdownRef = el) }, this.searchable && (index.h("sd-select-search-input", { key: 'bfcee14aa06a9a259dd8e67013ed1074c1f9c318', ref: el => (this.searchRef = el), isScrolled: this.isScrolled, searchText: this.searchText, onSdSearchInput: (event) => (this.searchText = event.detail || ''), onSdSearchFocus: () => (this.itemIndex = -1) })), this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index$1) => (index.h("slot", { name: `option-${option.value}` }, index.h("sd-select-option", { option: option, index: index$1, isSelected: this.isOptionSelected(option.value), isFocused: index$1 === this.itemIndex, onOptionClick: ({ detail }) => this.optionClick.emit(detail), useCheckbox: this.useCheckbox }))))) : (index.h("slot", { name: "option-placeholder" }, index.h("div", { class: 'sd-select-option-placeholder' }, this.optionPlaceholder)))));
3773
+ }, style: this.dropdownSize, onScroll: this.handleDropdownScroll, ref: el => (this.dropdownRef = el) }, this.searchable && (index.h("sd-select-search-input", { key: '7e9937e5b38a038b4b7bb0cd09ef4a69a336c673', ref: el => (this.searchRef = el), isScrolled: this.isScrolled, searchText: this.searchText, onSdSearchInput: (event) => (this.searchText = event.detail || ''), onSdSearchFocus: () => (this.itemIndex = -1) })), this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index$1) => (index.h("slot", { name: `option-${option.value}` }, index.h("sd-select-option", { option: option, index: index$1, isSelected: this.isOptionSelected(option.value), isFocused: index$1 === this.itemIndex, onOptionClick: ({ detail }) => this.optionClick.emit(detail), useCheckbox: this.useCheckbox }))))) : (index.h("slot", { name: "option-placeholder" }, index.h("div", { class: 'sd-select-option-placeholder' }, this.optionPlaceholder)))));
3720
3774
  }
3721
3775
  static get watchers() { return {
3722
3776
  "filteredOptions": [{
@@ -3763,7 +3817,7 @@ const SdSelectOption = class {
3763
3817
  }
3764
3818
  };
3765
3819
  render() {
3766
- return (index.h("div", { key: 'a4fcca24b0bdde4f4665585c6cede84bd3b64d59', class: {
3820
+ return (index.h("div", { key: 'b9844296973b6e85d3c3e3652671e89f470ec7a9', class: {
3767
3821
  'sd-select__option': true,
3768
3822
  'sd-select__option--selected': this.isSelected,
3769
3823
  'sd-select__option--disabled': !!this.option.disabled,
@@ -3809,17 +3863,17 @@ const SdSelectSearchInput = class {
3809
3863
  input?.focus({ preventScroll: true });
3810
3864
  }
3811
3865
  render() {
3812
- return (index.h("div", { key: 'b19a029ef82d876c984c1f827d7a0f29bb823f5d', class: {
3866
+ return (index.h("div", { key: '2d211645dc4041411e187f248a260a23b7c544f6', class: {
3813
3867
  'sd-select-search-input': true,
3814
3868
  'sd-select-search-input--scrolled': !!this.isScrolled,
3815
- }, onClick: event => event.stopPropagation() }, index.h("sd-input", { key: '8e27f40e1b507f0c5cb2d4bde48750cd0089a9da', ref: el => (this.searchRef = el), value: this.searchText, placeholder: "\uAC80\uC0C9", clearable: true, inputStyle: { 'padding-left': '8px' }, autofocus: true, onSdUpdate: event => {
3869
+ }, onClick: event => event.stopPropagation() }, index.h("sd-input", { key: 'c609af0ab36359c8ccaea5827821dbc509d13eac', ref: el => (this.searchRef = el), value: this.searchText, placeholder: "\uAC80\uC0C9", clearable: true, inputStyle: { 'padding-left': '8px' }, autofocus: true, onSdUpdate: event => {
3816
3870
  this.searchInput.emit(String(event?.detail));
3817
3871
  }, onSdFocus: () => {
3818
3872
  this.searchFocus.emit();
3819
3873
  }, onKeyDown: event => {
3820
3874
  if (event.code === 'Enter')
3821
3875
  event.stopPropagation();
3822
- } }, index.h("sd-icon", { key: '2b38a07cbc0bb0d7dd020ece45f18bdff4c262e5', name: "search", size: 16, color: "#737373", style: { marginRight: '4px' }, slot: "prefix" }))));
3876
+ } }, index.h("sd-icon", { key: '96a511b1f8625c883ec50d5e2985ff396d7b57c7', name: "search", size: 16, color: "#737373", style: { marginRight: '4px' }, slot: "prefix" }))));
3823
3877
  }
3824
3878
  };
3825
3879
  SdSelectSearchInput.style = sdSelectSearchInputCss();
@@ -4719,10 +4773,10 @@ const SdTextarea = class {
4719
4773
  }
4720
4774
  render() {
4721
4775
  const maxLengthCounter = this.getMaxLengthCounter();
4722
- return (index.h("div", { key: '888d11be57629e83e1215daddab63351a323672f', class: {
4776
+ return (index.h("div", { key: 'd538d3ab99c174f1fedc92c547fcba61d1097608', class: {
4723
4777
  'sd-textarea': true,
4724
4778
  [this.getTextareaStatus()]: true,
4725
- }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, index.h("div", { key: '1f91a1e435b2dba1817ce181f91bdf3829142682', class: "sd-textarea__content" }, index.h("textarea", { key: 'd883f4cdfd56220cf4382893f94a469f7afd7ff2', name: this.name, ref: el => (this.nativeEl = el), class: `sd-textarea__native ${this.textareaClass}`, value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, autofocus: this.autoFocus, maxLength: this.maxLength, onInput: this.handleInput.bind(this), onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) })), this.hasFooter() && (index.h("div", { key: 'e9350d8e49eb87b2caddfc24079ece0d59c79739', class: "sd-textarea__footer" }, this.helpText !== undefined && index.h("span", { key: 'cda9e2b8b0c15fbc7356597d4363d438688c8e4e', class: "sd-textarea__help-text" }, this.helpText), maxLengthCounter !== null && index.h("span", { key: '491e990142e07837169e84a3fcc3e80c00bc7153', class: "sd-textarea__counter" }, maxLengthCounter)))));
4779
+ }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, index.h("div", { key: '1f4b6059d56e673568e4662f423bf6c76b781ad7', class: "sd-textarea__content" }, index.h("textarea", { key: '812814fdfc3044ba796830be47d5e5f93a423734', name: this.name, ref: el => (this.nativeEl = el), class: `sd-textarea__native ${this.textareaClass}`, value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, autofocus: this.autoFocus, maxLength: this.maxLength, onInput: this.handleInput.bind(this), onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) })), this.hasFooter() && (index.h("div", { key: '2ea2c482ea874607411d1f4ecaabb99d095122ad', class: "sd-textarea__footer" }, this.helpText !== undefined && index.h("span", { key: 'b14afd0acf981bbbd3cef6bd7490f3a3fe9b443a', class: "sd-textarea__help-text" }, this.helpText), maxLengthCounter !== null && index.h("span", { key: '2aa68acd081a61d22010c799621b06fa49e7b8a6', class: "sd-textarea__counter" }, maxLengthCounter)))));
4726
4780
  }
4727
4781
  static get watchers() { return {
4728
4782
  "value": [{
@@ -11,7 +11,7 @@ const SdCard = class {
11
11
  bordered = false;
12
12
  sdClass = '';
13
13
  render() {
14
- return (index.h(index.Fragment, { key: '155504b50cb1c21fc1f847af8a9e8b685f7881ef' }, index.h("div", { key: 'c461e3e40da44586da5e02ad508bf59942a9e82a', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, index.h("slot", { key: '0c0ee023155c08c565c3496c44699a900666b084' }))));
14
+ return (index.h(index.Fragment, { key: 'a4f5635186614df68acf04c502f804c9f0c77df5' }, index.h("div", { key: '99af2c33f69d069e108f7f122a6e7762ea918276', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, index.h("slot", { key: '287c27708b9b80a9f04bfff87abdb65022762a6d' }))));
15
15
  }
16
16
  };
17
17
  SdCard.style = sdCardCss();
@@ -84,7 +84,7 @@ const SdDatePicker = class {
84
84
  this.isOpen = false;
85
85
  };
86
86
  render() {
87
- return (index.h("div", { key: 'bb17d32f08d998e599c90cf1a7a35b17e19d3dc4', class: { 'sd-date-picker': true, 'sd-date-picker--disabled': this.disabled } }, index.h("sd-input", { key: 'ae028d5999a8df40a83b0d77d2dd5c2e0d0d8eb0', ref: el => (this.inputEl = el), value: this.value, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-picker__input", onClick: () => this.openMenu() }, index.h("sd-icon", { key: 'fbb954703d19161ab4507696a21278d5b4962b25', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (index.h("sd-portal", { key: 'a335d5d317718e30be14fdb4aa1a63cb1347b929', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, index.h("div", { key: '38deef7127db10c91a51b8d6cb017d85fce25888', class: "sd-date-picker__menu" }, index.h("div", { key: 'f2ef8eb33086103df65b434360ecc1aac2949bf9', class: "sd-date-picker__header" }, index.h("div", { key: '8b949551a157de1e2ded7f1de621ccacd136126e', class: "year-nav" }, index.h("button", { key: 'b1bbd712094885223c21f030c32914d14f3904c2', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, index.h("sd-icon", { key: '7bb6f5f216d02cde59eff87fcaebc32eccbaac25', name: "arrowLeft", size: "12", color: "#CCCCCC" })), index.h("span", { key: '645c12556fe1b9f1d1c8f7c4cfe73c3b65ad7431', class: "year-nav__current" }, this.currentYear), index.h("button", { key: 'f6cb58c23effd1aa0566aaacf41170482f03df51', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, index.h("sd-icon", { key: 'e92ef17b8d50e5115a159d2dd984e738a920f065', name: "arrowRight", size: "12", color: "#CCCCCC" }))), index.h("div", { key: '73018a9ca04929f4be017631e8e49a73cef71855', class: "month-nav" }, index.h("button", { key: '0983ca35486b8ad29c09740848b4288b602d0cd9', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, index.h("sd-icon", { key: '2c9257564786287f825c83391f3e05745c23cf9a', name: "arrowLeft", size: "12", color: "#CCCCCC" })), index.h("span", { key: '0b9e048eeea62c452671b74db468aa5587e8ddbf', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), index.h("button", { key: '3ead15a341d5e361e7fb9b1cb2842e5a38b0e03c', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, index.h("sd-icon", { key: 'a3dbd8606dd51f72f1c315f2eea7ff089a95e6fa', name: "arrowRight", size: "12", color: "#CCCCCC" })))), index.h("div", { key: '6bbadc79157ae64bf492a965b78d014dcd968ea6', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (index.h("div", { key: day, class: "day" }, day)))), index.h("div", { key: '972c00769b40eff8015b68e0a9479a6c7c6009db', class: "sd-date-picker__body" }, [
87
+ return (index.h("div", { key: '97baf5202e2702032b5d9035c5b07b3dafa658fa', class: { 'sd-date-picker': true, 'sd-date-picker--disabled': this.disabled } }, index.h("sd-input", { key: 'bba605148eec6f88829bcfff21cb1ac6efae815d', ref: el => (this.inputEl = el), value: this.value, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, placeholder: this.placeholder, inputClass: "sd-date-picker__input", onClick: () => this.openMenu() }, index.h("sd-icon", { key: '4c927154407efd9319b56327d83ee2012206b216', slot: "prefix", name: "date", size: "16", color: this.disabled ? 'grey_65' : 'grey_70', class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (index.h("sd-portal", { key: 'edc06ceeead0cab9ee3b2394097838e03aeb8703', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, index.h("div", { key: 'cb71ba6e5517afa0e1e0477599449101b21ece65', class: "sd-date-picker__menu" }, index.h("div", { key: 'bdace5b8e99cbd4271ba76dace05f2af4d059d37', class: "sd-date-picker__header" }, index.h("div", { key: '3fc557c6119af299b813610e9b6ef6cd9104a302', class: "year-nav" }, index.h("button", { key: '82b7928c460b6bb3a163cf576977d4694fa63fdc', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, index.h("sd-icon", { key: 'b0eda3985494f99de52c85714b13ef45b90ef9db', name: "arrowLeft", size: "12", color: "#CCCCCC" })), index.h("span", { key: '24245489b718b3fb15603e9da628651b1af8b752', class: "year-nav__current" }, this.currentYear), index.h("button", { key: '458570d7e08af35d2c467398b89a9cb9c200141f', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, index.h("sd-icon", { key: '5f01f94d7499b0c79f2936249a295b92dfa1476d', name: "arrowRight", size: "12", color: "#CCCCCC" }))), index.h("div", { key: '5d1551a4149998430fd5c0262000c21e8de76a9b', class: "month-nav" }, index.h("button", { key: '0690296a789d67e5dc1b1ce7b882a261f1724a46', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, index.h("sd-icon", { key: '3ed6809573e28c9a40a4f26331669ce66245c076', name: "arrowLeft", size: "12", color: "#CCCCCC" })), index.h("span", { key: '5ae4ed6249269ba5a1d24ab986ec7c371fa356f4', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), index.h("button", { key: '7bada1fba8abf6e483969cc5388cd333b03e8e19', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, index.h("sd-icon", { key: '559eec3f67ff8b47f601928d5bb9ca2064cb1c6a', name: "arrowRight", size: "12", color: "#CCCCCC" })))), index.h("div", { key: '5191a48970a3e9f044eaf4851e2e5d507763fe71', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (index.h("div", { key: day, class: "day" }, day)))), index.h("div", { key: 'c124a70d9e1c3dd73c63c8ef3fd513a9cb6c24c8', class: "sd-date-picker__body" }, [
88
88
  ...this.calendar.prevMonthDays,
89
89
  ...this.calendar.days,
90
90
  ...this.calendar.afterMonthDays,