@sellmate/design-system 0.0.53 → 0.0.54

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 (118) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/{sd-button_21.cjs.entry.js → sd-button_23.cjs.entry.js} +591 -80
  4. package/dist/cjs/sd-popover.cjs.entry.js +2 -2
  5. package/dist/cjs/sd-progress.cjs.entry.js +2 -2
  6. package/dist/cjs/sd-select-multiple.cjs.entry.js +266 -0
  7. package/dist/cjs/sd-tbody_3.cjs.entry.js +3 -3
  8. package/dist/cjs/sd-td.cjs.entry.js +2 -2
  9. package/dist/collection/collection-manifest.json +1 -0
  10. package/dist/collection/components/sd-number-input/sd-number-input.css +128 -0
  11. package/dist/collection/components/sd-number-input/sd-number-input.js +744 -0
  12. package/dist/collection/components/sd-number-input/sd-number-input.js.map +1 -0
  13. package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
  14. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  15. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  16. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  17. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  18. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +2 -2
  19. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +5 -0
  20. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +91 -42
  21. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js.map +1 -1
  22. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  23. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +1 -1
  24. package/dist/collection/components/sd-table/sd-td/sd-td.js +2 -2
  25. package/dist/collection/components/sd-table/sd-th/sd-th.js +1 -1
  26. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +1 -1
  27. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  28. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +1 -1
  29. package/dist/collection/components/sd-tooltip/sd-tooltip.js +4 -4
  30. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
  31. package/dist/components/{p-CYadUxId.js → p-BBNolp5g.js} +3 -3
  32. package/dist/components/{p-CYadUxId.js.map → p-BBNolp5g.js.map} +1 -1
  33. package/dist/components/{p-71Aop19u.js → p-BH3t01Im.js} +5 -5
  34. package/dist/components/{p-71Aop19u.js.map → p-BH3t01Im.js.map} +1 -1
  35. package/dist/components/{p-Be8w5kOo.js → p-BqxmCDlz.js} +7 -7
  36. package/dist/components/{p-Be8w5kOo.js.map → p-BqxmCDlz.js.map} +1 -1
  37. package/dist/components/{p-B13lOU0D.js → p-C5T02a4h.js} +4 -4
  38. package/dist/components/{p-B13lOU0D.js.map → p-C5T02a4h.js.map} +1 -1
  39. package/dist/components/{p-Cf-LyLYk.js → p-CEDtmtIo.js} +3 -3
  40. package/dist/components/{p-Cf-LyLYk.js.map → p-CEDtmtIo.js.map} +1 -1
  41. package/dist/components/{p-DP33nj_I.js → p-Cx3euWvk.js} +3 -3
  42. package/dist/components/{p-DP33nj_I.js.map → p-Cx3euWvk.js.map} +1 -1
  43. package/dist/components/{p-ChQIkICO.js → p-DdeknsBE.js} +3 -3
  44. package/dist/components/{p-ChQIkICO.js.map → p-DdeknsBE.js.map} +1 -1
  45. package/dist/components/{p-j-ZEdgz4.js → p-GHGGjwP3.js} +3 -3
  46. package/dist/components/{p-j-ZEdgz4.js.map → p-GHGGjwP3.js.map} +1 -1
  47. package/dist/components/{p-B4wWf5r8.js → p-XAhTfI7Q.js} +4 -4
  48. package/dist/components/{p-B4wWf5r8.js.map → p-XAhTfI7Q.js.map} +1 -1
  49. package/dist/components/{p-CVtij2QI.js → p-at_j60O8.js} +3 -3
  50. package/dist/components/{p-CVtij2QI.js.map → p-at_j60O8.js.map} +1 -1
  51. package/dist/components/sd-date-picker.js +1 -1
  52. package/dist/components/sd-date-range-picker.js +1 -1
  53. package/dist/components/sd-guide.js +1 -1
  54. package/dist/components/sd-number-input.d.ts +11 -0
  55. package/dist/components/sd-number-input.js +335 -0
  56. package/dist/components/sd-number-input.js.map +1 -0
  57. package/dist/components/sd-pagination.js +1 -1
  58. package/dist/components/sd-popover.js +3 -3
  59. package/dist/components/sd-portal.js +1 -1
  60. package/dist/components/sd-progress.js +2 -2
  61. package/dist/components/sd-select-multiple-group.js +74 -45
  62. package/dist/components/sd-select-multiple-group.js.map +1 -1
  63. package/dist/components/sd-select-multiple.js +4 -4
  64. package/dist/components/sd-select-option-group.js +1 -1
  65. package/dist/components/sd-select-option.js +1 -1
  66. package/dist/components/sd-select.js +1 -1
  67. package/dist/components/sd-table-backup.js +6 -6
  68. package/dist/components/sd-table.js +9 -9
  69. package/dist/components/sd-tbody.js +1 -1
  70. package/dist/components/sd-td.js +2 -2
  71. package/dist/components/sd-th.js +1 -1
  72. package/dist/components/sd-toggle-button.js +1 -1
  73. package/dist/components/sd-toggle.js +1 -1
  74. package/dist/components/sd-tooltip-portal.js +1 -1
  75. package/dist/components/sd-tooltip.js +1 -1
  76. package/dist/components/sd-tr.js +1 -1
  77. package/dist/design-system/design-system.esm.js +1 -1
  78. package/dist/design-system/p-26266f8c.entry.js +2 -0
  79. package/dist/design-system/p-2df41cc3.entry.js +2 -0
  80. package/dist/design-system/p-2df41cc3.entry.js.map +1 -0
  81. package/dist/design-system/p-3cc7957d.entry.js +2 -0
  82. package/dist/design-system/p-a18c202d.entry.js +2 -0
  83. package/dist/design-system/{p-0cbdb34f.entry.js → p-b0668ce9.entry.js} +2 -2
  84. package/dist/design-system/{p-d02b3369.entry.js → p-f9e04bf9.entry.js} +2 -2
  85. package/dist/design-system/p-f9e04bf9.entry.js.map +1 -0
  86. package/dist/esm/design-system.js +1 -1
  87. package/dist/esm/loader.js +1 -1
  88. package/dist/esm/{sd-button_21.entry.js → sd-button_23.entry.js} +589 -80
  89. package/dist/esm/sd-popover.entry.js +2 -2
  90. package/dist/esm/sd-progress.entry.js +2 -2
  91. package/dist/esm/sd-select-multiple.entry.js +264 -0
  92. package/dist/esm/sd-select-multiple.entry.js.map +1 -0
  93. package/dist/esm/sd-tbody_3.entry.js +3 -3
  94. package/dist/esm/sd-td.entry.js +2 -2
  95. package/dist/types/components/sd-number-input/sd-number-input.d.ts +58 -0
  96. package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +2 -0
  97. package/dist/types/components.d.ts +145 -0
  98. package/hydrate/index.js +407 -68
  99. package/hydrate/index.mjs +407 -68
  100. package/package.json +1 -1
  101. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +0 -406
  102. package/dist/cjs/sd-select-option-group.cjs.entry.js +0 -69
  103. package/dist/design-system/p-1e7a06ef.entry.js +0 -2
  104. package/dist/design-system/p-761882f5.entry.js +0 -2
  105. package/dist/design-system/p-790ae9ce.entry.js +0 -2
  106. package/dist/design-system/p-790ae9ce.entry.js.map +0 -1
  107. package/dist/design-system/p-a8e8fc17.entry.js +0 -2
  108. package/dist/design-system/p-d02b3369.entry.js.map +0 -1
  109. package/dist/design-system/p-e492d625.entry.js +0 -2
  110. package/dist/design-system/p-e492d625.entry.js.map +0 -1
  111. package/dist/esm/sd-select-multiple-group.entry.js +0 -404
  112. package/dist/esm/sd-select-multiple-group.entry.js.map +0 -1
  113. package/dist/esm/sd-select-option-group.entry.js +0 -67
  114. package/dist/esm/sd-select-option-group.entry.js.map +0 -1
  115. /package/dist/design-system/{p-1e7a06ef.entry.js.map → p-26266f8c.entry.js.map} +0 -0
  116. /package/dist/design-system/{p-761882f5.entry.js.map → p-3cc7957d.entry.js.map} +0 -0
  117. /package/dist/design-system/{p-a8e8fc17.entry.js.map → p-a18c202d.entry.js.map} +0 -0
  118. /package/dist/design-system/{p-0cbdb34f.entry.js.map → p-b0668ce9.entry.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -6903,6 +6903,315 @@ class SdModalCard {
6903
6903
  }; }
6904
6904
  }
6905
6905
 
6906
+ const sdNumberInputCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}.sd-number-input{box-sizing:border-box;display:flex;width:var(--input-width, 100%);align-items:center;height:28px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;color:#333333;font-size:12px;line-height:20px;background:white;position:relative}.sd-number-input--hovered{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}.sd-number-input.sd-number-input--error{border-color:#fb4444}.sd-number-input.sd-number-input--pass{border-color:#2bce6c}.sd-number-input.sd-number-input--disabled{background-color:#eeeeee !important;border-color:#cccccc !important;cursor:not-allowed !important;box-shadow:none !important}.sd-number-input.sd-number-input--disabled .sd-number-input__input{color:#888888 !important}.sd-number-input .sd-number-input__input{display:block;width:100%;height:20px;line-height:20px;border:none;outline:none;background:transparent;font-size:inherit;color:#333333;margin-left:4px;margin-right:4px;padding-block:0;padding-inline:0;text-align:right}.sd-number-input .sd-number-input__input::placeholder{font-size:12px;height:20px;line-height:20px;color:#aaaaaa}.sd-number-input .sd-number-input__clear-icon{cursor:pointer;margin-left:8px}.sd-number-input .sd-number-input__buttons{padding:4px;display:flex;justify-content:space-between;align-items:center;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s ease}.sd-number-input .sd-number-input__button{width:20px;height:20px;border:none;border-radius:2px;background-color:#eff6ff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;transition:background-color 0.2s ease}.sd-number-input .sd-number-input__button:hover:not(:disabled){background-color:#e6f1ff}.sd-number-input .sd-number-input__button:disabled{background-color:#eeeeee;cursor:not-allowed}.sd-number-input .sd-number-input__button--decrement{border-bottom-left-radius:0;border-bottom-right-radius:0}.sd-number-input .sd-number-input__button--increment{border-top-left-radius:0;border-top-right-radius:0}.sd-number-input .sd-number-input__label{margin-bottom:8px;font-weight:500;color:#333333}sd-number-input:focus-within .sd-number-input__buttons{opacity:1;pointer-events:auto}sd-number-input:focus-within .sd-number-input{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}`;
6907
+
6908
+ class SdNumberInput {
6909
+ constructor(hostRef) {
6910
+ registerInstance(this, hostRef);
6911
+ this.sdIncrement = createEvent(this, "sdIncrement");
6912
+ this.sdDecrement = createEvent(this, "sdDecrement");
6913
+ this.sdInput = createEvent(this, "sdInput");
6914
+ this.sdChange = createEvent(this, "sdChange");
6915
+ this.sdFocus = createEvent(this, "sdFocus");
6916
+ this.sdBlur = createEvent(this, "sdBlur");
6917
+ }
6918
+ get el() { return getElement(this); }
6919
+ min = Number.NEGATIVE_INFINITY;
6920
+ max = Number.POSITIVE_INFINITY;
6921
+ step = 1;
6922
+ useButton = false;
6923
+ useDecimal = false;
6924
+ value = null;
6925
+ label;
6926
+ placeholder = '입력해 주세요.';
6927
+ disabled = false;
6928
+ width;
6929
+ rules;
6930
+ autoFocus = false;
6931
+ status;
6932
+ inputClass = '';
6933
+ readonly = false;
6934
+ inputStyle = {};
6935
+ internalValue = null;
6936
+ displayValue = '';
6937
+ hovered = false;
6938
+ error = false;
6939
+ nativeEl = undefined;
6940
+ sdIncrement;
6941
+ sdDecrement;
6942
+ sdInput;
6943
+ sdChange;
6944
+ sdFocus;
6945
+ sdBlur;
6946
+ formatWithCommas(value) {
6947
+ if (value === null || value === undefined)
6948
+ return '';
6949
+ const isNegative = value < 0;
6950
+ const absValue = Math.abs(value);
6951
+ const [intPart, decPart] = absValue.toString().split('.');
6952
+ const formatted = (+intPart).toLocaleString();
6953
+ const result = isNegative ? '-' + formatted : formatted;
6954
+ return decPart ? result + '.' + decPart : String(result);
6955
+ }
6956
+ parseInput(input) {
6957
+ if (!input || input.trim() === '')
6958
+ return null;
6959
+ const cleaned = input.replace(/,/g, '').trim();
6960
+ // -로 시작을 할 수 있을 수 있고, 소수점 0.n | .n
6961
+ if (!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(cleaned)) {
6962
+ return null;
6963
+ }
6964
+ const parsed = parseFloat(cleaned);
6965
+ if (isNaN(parsed))
6966
+ return null;
6967
+ // 소수점 사용 하지 않는데 . 이 있는 경우
6968
+ if (!this.useDecimal && cleaned.includes('.')) {
6969
+ return null;
6970
+ }
6971
+ return parsed;
6972
+ }
6973
+ clampMinMax(value) {
6974
+ return Math.min(Math.max(value, this.min), this.max);
6975
+ }
6976
+ updateDisplay() {
6977
+ this.displayValue = this.formatWithCommas(this.internalValue);
6978
+ }
6979
+ isIncrementDisabled() {
6980
+ if (this.disabled || this.readonly)
6981
+ return true;
6982
+ if (this.internalValue !== null) {
6983
+ return this.internalValue >= this.max;
6984
+ }
6985
+ return false;
6986
+ }
6987
+ isDecrementDisabled() {
6988
+ if (this.disabled || this.readonly)
6989
+ return true;
6990
+ if (this.internalValue !== null) {
6991
+ return this.internalValue <= this.min;
6992
+ }
6993
+ return false;
6994
+ }
6995
+ valueChanged(newValue) {
6996
+ if (newValue === null || newValue === '') {
6997
+ this.internalValue = null;
6998
+ }
6999
+ else {
7000
+ const parsed = typeof newValue === 'string' ? this.parseInput(newValue) : newValue;
7001
+ if (parsed !== null) {
7002
+ this.internalValue = this.clampMinMax(parsed);
7003
+ }
7004
+ }
7005
+ this.updateDisplay();
7006
+ }
7007
+ internalValueChanged(newValue) {
7008
+ this.updateDisplay();
7009
+ if (newValue !== this.value) {
7010
+ this.value = newValue;
7011
+ this.sdInput?.emit(newValue);
7012
+ }
7013
+ if (!this.rules || this.rules.length === 0)
7014
+ return;
7015
+ this.error = false;
7016
+ for (const rule of this.rules) {
7017
+ const result = rule(newValue);
7018
+ if (result !== true) {
7019
+ this.error = true;
7020
+ break;
7021
+ }
7022
+ }
7023
+ }
7024
+ componentWillLoad() {
7025
+ if (this.value !== null && this.value !== undefined) {
7026
+ const parsed = typeof this.value === 'string' ? this.parseInput(this.value) : this.value;
7027
+ if (parsed !== null) {
7028
+ this.internalValue = this.clampMinMax(parsed);
7029
+ }
7030
+ }
7031
+ this.updateDisplay();
7032
+ }
7033
+ handleInput = (event) => {
7034
+ const target = event.target;
7035
+ const inputValue = target.value;
7036
+ if (inputValue === '') {
7037
+ this.internalValue = null;
7038
+ this.displayValue = '';
7039
+ return;
7040
+ }
7041
+ const commasRemoved = inputValue.replace(/,/g, '');
7042
+ // 만약에 소수점 (.) 이 여러개 일 경우
7043
+ const decimalCount = (commasRemoved.match(/\./g) || []).length;
7044
+ if (decimalCount > 1) {
7045
+ target.value = this.displayValue;
7046
+ return;
7047
+ }
7048
+ // 가능: "-", ".", "-." (단순 기호만 있는 경우)
7049
+ if (commasRemoved === '-' || commasRemoved === '.' || commasRemoved === '-.') {
7050
+ target.value = commasRemoved;
7051
+ return;
7052
+ }
7053
+ // 숫자 뒤에 . 이 있는 경우 (예: "1000.") -> 콤마 포맷 적용 + . 유지
7054
+ if (commasRemoved.endsWith('.') && decimalCount === 1) {
7055
+ const numberPart = commasRemoved.slice(0, -1);
7056
+ const parsed = this.parseInput(numberPart);
7057
+ if (parsed !== null) {
7058
+ const formatted = this.formatWithCommas(parsed);
7059
+ target.value = formatted + '.';
7060
+ return;
7061
+ }
7062
+ }
7063
+ const parsed = this.parseInput(commasRemoved);
7064
+ if (parsed !== null) {
7065
+ if (parsed < this.min) {
7066
+ target.value = this.displayValue;
7067
+ return;
7068
+ }
7069
+ if (parsed > this.max) {
7070
+ target.value = this.displayValue;
7071
+ return;
7072
+ }
7073
+ this.internalValue = parsed;
7074
+ this.displayValue = this.formatWithCommas(parsed);
7075
+ target.value = this.displayValue;
7076
+ }
7077
+ else {
7078
+ target.value = this.displayValue;
7079
+ }
7080
+ };
7081
+ handleChange = (event) => {
7082
+ const target = event.target;
7083
+ const inputValue = target.value;
7084
+ if (inputValue === '') {
7085
+ this.internalValue = null;
7086
+ }
7087
+ else {
7088
+ const parsed = this.parseInput(inputValue);
7089
+ if (parsed !== null) {
7090
+ this.internalValue = this.clampMinMax(parsed);
7091
+ }
7092
+ }
7093
+ this.sdChange?.emit(this.internalValue);
7094
+ };
7095
+ handleFocus = (event) => {
7096
+ this.sdFocus?.emit(event);
7097
+ };
7098
+ handleBlur = (event) => {
7099
+ this.updateDisplay();
7100
+ if (this.nativeEl) {
7101
+ this.nativeEl.value = this.displayValue;
7102
+ }
7103
+ this.sdBlur?.emit(event);
7104
+ };
7105
+ handleKeyDown = (event) => {
7106
+ if (event.key === 'ArrowUp') {
7107
+ event.preventDefault();
7108
+ this.handleIncrement();
7109
+ }
7110
+ else if (event.key === 'ArrowDown') {
7111
+ event.preventDefault();
7112
+ this.handleDecrement();
7113
+ }
7114
+ };
7115
+ handleIncrement = () => {
7116
+ if (this.isIncrementDisabled())
7117
+ return;
7118
+ const currentVal = this.internalValue ?? (this.min ?? 0);
7119
+ let nextVal = currentVal + this.step;
7120
+ if (nextVal > this.max) {
7121
+ nextVal = this.max;
7122
+ }
7123
+ if (nextVal === currentVal)
7124
+ return;
7125
+ this.sdIncrement?.emit({ currentVal: nextVal, prevVal: currentVal });
7126
+ this.internalValue = nextVal;
7127
+ this.sdChange?.emit(nextVal);
7128
+ };
7129
+ handleDecrement = () => {
7130
+ if (this.isDecrementDisabled())
7131
+ return;
7132
+ const currentVal = this.internalValue ?? (this.min ?? 0);
7133
+ let nextVal = currentVal - this.step;
7134
+ if (nextVal < this.min) {
7135
+ nextVal = this.min;
7136
+ }
7137
+ if (nextVal === currentVal)
7138
+ return;
7139
+ this.sdDecrement?.emit({ currentVal: nextVal, prevVal: currentVal });
7140
+ this.internalValue = nextVal;
7141
+ this.sdChange?.emit(nextVal);
7142
+ };
7143
+ async getNativeElement() {
7144
+ return this.nativeEl || null;
7145
+ }
7146
+ getInputStatus() {
7147
+ if (this.disabled)
7148
+ return 'sd-number-input--disabled';
7149
+ if (this.hovered)
7150
+ return 'sd-number-input--hovered';
7151
+ if (this.status)
7152
+ return `sd-number-input--${this.status}`;
7153
+ if (this.error)
7154
+ return 'sd-number-input--error';
7155
+ return '';
7156
+ }
7157
+ render() {
7158
+ const inputWidth = this.width
7159
+ ? {
7160
+ '--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
7161
+ }
7162
+ : {};
7163
+ const inputStyles = {
7164
+ textAlign: this.useButton ? 'center' : 'right',
7165
+ };
7166
+ return (hAsync(Host, { key: '353b3f99bf5933d6f445a78c9cecd93fcbdd3a9c', style: inputWidth, onFocus: this.handleFocus, onBlur: this.handleBlur }, this.useButton ? 'use buttons' : 'dont use buttons', this.label && hAsync("div", { key: '95d9687fa5634fb53f6a2120d2125cf92e12ccdd', class: "sd-number-input__label" }, this.label), hAsync("label", { key: '05ba4deb72261325788b25842c27d7a177fda58a', class: {
7167
+ 'sd-number-input': true,
7168
+ [this.getInputStatus()]: true,
7169
+ 'sd-number-input--with-buttons': this.useButton,
7170
+ }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, hAsync("input", { key: 'e4c415d40c20f5e915765f4f7d68cd123517acc1', 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, onChange: this.handleChange, onKeyDown: this.handleKeyDown, style: inputStyles }), this.useButton && (hAsync("div", { key: '1b960a710170212032a8cd7c1c6ad002a3275d69', class: "sd-number-input__buttons" }, hAsync("button", { key: 'c9a80bbdf96e4e191c2d43f581eba9c77f465464', type: "button", class: {
7171
+ 'sd-number-input__button': true,
7172
+ 'sd-number-input__button--decrement': true,
7173
+ }, disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, hAsync("sd-icon", { key: 'c4791c052f390013e7dfdf78ef42d987e9609da1', name: "minus", size: 12, color: this.isDecrementDisabled() ? '#CCCCCC' : '#2D8DFF' })), hAsync("button", { key: '769fb6ebcde814f1f8667eaadd35f97139869bf3', type: "button", class: {
7174
+ 'sd-number-input__button': true,
7175
+ 'sd-number-input__button--increment': true,
7176
+ }, disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, hAsync("sd-icon", { key: '6a4d263152daaf8f4a565f6659f6bfa6c0acc814', name: "add", size: 12, color: this.isIncrementDisabled() ? '#CCCCCC' : '#2D8DFF' })))))));
7177
+ }
7178
+ static get watchers() { return {
7179
+ "value": ["valueChanged"],
7180
+ "internalValue": ["internalValueChanged"]
7181
+ }; }
7182
+ static get style() { return sdNumberInputCss(); }
7183
+ static get cmpMeta() { return {
7184
+ "$flags$": 768,
7185
+ "$tagName$": "sd-number-input",
7186
+ "$members$": {
7187
+ "min": [2],
7188
+ "max": [2],
7189
+ "step": [2],
7190
+ "useButton": [4, "use-button"],
7191
+ "useDecimal": [4, "use-decimal"],
7192
+ "value": [1032],
7193
+ "label": [1],
7194
+ "placeholder": [1],
7195
+ "disabled": [4],
7196
+ "width": [8],
7197
+ "rules": [16],
7198
+ "autoFocus": [4, "auto-focus"],
7199
+ "status": [1],
7200
+ "inputClass": [1, "input-class"],
7201
+ "readonly": [4],
7202
+ "inputStyle": [16],
7203
+ "internalValue": [32],
7204
+ "displayValue": [32],
7205
+ "hovered": [32],
7206
+ "error": [32],
7207
+ "getNativeElement": [64]
7208
+ },
7209
+ "$listeners$": undefined,
7210
+ "$lazyBundleId$": "-",
7211
+ "$attrsToReflect$": []
7212
+ }; }
7213
+ }
7214
+
6906
7215
  const sdPaginationCss = () => `.sd-pagination{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;gap:8px;color:#555555;width:100%;font-size:12px}.sd-pagination .prepend-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .prepend-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .prepend-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .append-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .append-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .append-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .pagination-btn{display:flex;align-items:center;justify-content:center;border-radius:14px;outline:none;border:none;cursor:pointer;height:26px;color:#555555;width:var(--pagination-btn-width, 26px)}.sd-pagination .pagination-btn--selected{background-color:#006ac1;color:white}.sd-pagination .pagination-btn:hover{border:1px solid #006ac1}.sd-pagination--simple .pagination-info{line-height:26px;display:flex;flex-flow:row nowrap;align-items:center;gap:8px}.sd-pagination--simple .pagination-info .current-page,.sd-pagination--simple .pagination-info .last-page{padding:0 2px}`;
6907
7216
 
6908
7217
  const BUTTON_WIDTH = {
@@ -6977,12 +7286,12 @@ class SdPagination {
6977
7286
  }
6978
7287
  }
6979
7288
  render() {
6980
- return (hAsync("div", { key: '6b743779100f7835b29da728d642ced495b11116', class: this.paginationClasses }, hAsync("div", { key: '34be0cf1db6cc55f761b32fa9e4f9bee236933f6', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (hAsync("div", { class: "pagination-info" }, hAsync("span", { class: "current-page" }, this.currentPage), hAsync("span", null, "/"), hAsync("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (hAsync("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
7289
+ return (hAsync("div", { key: 'b027af83594c0408615d4c34b861c5c31112f298', class: this.paginationClasses }, hAsync("div", { key: '959c79e58c7745606d719c66e8090ef23f7db554', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (hAsync("div", { class: "pagination-info" }, hAsync("span", { class: "current-page" }, this.currentPage), hAsync("span", null, "/"), hAsync("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (hAsync("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
6981
7290
  'pagination-btn': true,
6982
7291
  'pagination-btn--selected': this.currentPage === n,
6983
7292
  }, disabled: this.currentPage === n, style: {
6984
7293
  '--pagination-btn-width': `${this.buttonWidth}px`,
6985
- }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '108017450555fb73c74c71cc7605ef8af5679a20', class: "append-btns" }, this.renderNextButtons())));
7294
+ }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '64f13226aa9249395ac7aa7d11ea5cc946f5477a', class: "append-btns" }, this.renderNextButtons())));
6986
7295
  }
6987
7296
  static get style() { return sdPaginationCss(); }
6988
7297
  static get cmpMeta() { return {
@@ -7036,11 +7345,11 @@ class SdPopover {
7036
7345
  this.showPopover = false;
7037
7346
  };
7038
7347
  render() {
7039
- return (hAsync(Fragment, { key: 'fa06f3ff6641006a75c3ed0912f8f2dc6ca2da56' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })), this.showPopover && (hAsync("sd-tooltip-portal", { key: 'f433e3bc5e325bf9d70fae10b6777fe77e52061f', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, hAsync("div", { key: '7fa463878475d3c2ce86d006912c35b585d7bed0', class: {
7348
+ return (hAsync(Fragment, { key: '1300f5f84d96ef65840d8daec85dc53dba2c407c' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })), this.showPopover && (hAsync("sd-tooltip-portal", { key: '73b7feb032125495c7df8bbcecee042b59c91886', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, hAsync("div", { key: 'b6209c9654fe11e148206ef49c8a304b1f72f068', class: {
7040
7349
  'sd-popover-menu': true,
7041
7350
  [`sd-popover-menu--${this.placement}`]: true,
7042
7351
  [this.menuClass]: !!this.menuClass,
7043
- } }, hAsync("i", { key: '90a23aea2730ec9dbc2b9ca77ef0a4ef13777006', class: `sd-popover-menu__arrow sd-popover-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: '9246c25e04ea2dd6716e20ac01060ff7acc23fa9' })), hAsync("div", { key: 'dd6f350fbb5f5a49302593b3c24faf6bf59bb9ec', class: "sd-popover-menu__content" }, this.menuTitle && hAsync("div", { key: 'c9aae4e0eaa0e1ab4f1447907f2dbe0e6e988bbf', class: "sd-popover-menu__title" }, this.menuTitle), this.messages.length > 0 && (hAsync("div", { key: '2ed497a7d543f4638756524b4062c9df57b20aa0', class: "sd-popover-menu__messages" }, this.messages.map(message => (hAsync("div", null, message))))), this.buttons.length > 0 && (hAsync("div", { key: '5ddf4ec18128bc58c77a3017fc1a621591adb67b', class: `sd-popover-menu__buttons sd-popover-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (hAsync("sd-button", { ...button })))))), this.useClose && (hAsync("button", { key: 'e7bbb527601bda49a4d4e5c28a555acb5714bd5b', class: "sd-popover-menu__close-button", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '0e0ec3542195f3eb6955ef68ab82d947460271d3', name: "close", size: "12", color: "#AAAAAA" }))))))));
7352
+ } }, hAsync("i", { key: 'c788234f854fe0704ffffdc89dd297277916e7f1', class: `sd-popover-menu__arrow sd-popover-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: '5d5b4aa3815b815ebe4bebc81f307ba62f781af1' })), hAsync("div", { key: '6305c611f72e1e57ff90562a05568777ff3e5db0', class: "sd-popover-menu__content" }, this.menuTitle && hAsync("div", { key: 'da81708c8925e82c6b28b2d582f17d588f9fceae', class: "sd-popover-menu__title" }, this.menuTitle), this.messages.length > 0 && (hAsync("div", { key: 'd0d00ce577b6de6efd546fadafc5d487f5e9b0b9', class: "sd-popover-menu__messages" }, this.messages.map(message => (hAsync("div", null, message))))), this.buttons.length > 0 && (hAsync("div", { key: '3ce2714f038a72ffd1017e00521bf2c05fe8730c', class: `sd-popover-menu__buttons sd-popover-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (hAsync("sd-button", { ...button })))))), this.useClose && (hAsync("button", { key: '4c551c170b13797cb725e3e0ae42623dc983286a', class: "sd-popover-menu__close-button", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '1c4620527b33feba50d06709ed0c9185be4094b4', name: "close", size: "12", color: "#AAAAAA" }))))))));
7044
7353
  }
7045
7354
  static get watchers() { return {
7046
7355
  "show": ["watchShowHandler"]
@@ -7191,7 +7500,7 @@ class SdPortal {
7191
7500
  this.sdClose.emit();
7192
7501
  }
7193
7502
  render() {
7194
- return hAsync("slot", { key: '5995c7edbf0a54b6efb9afa2b5f67f078282acd8' });
7503
+ return hAsync("slot", { key: 'd93a68ecf1a281765225bf204cd479bb4b7bfdbf' });
7195
7504
  }
7196
7505
  static get cmpMeta() { return {
7197
7506
  "$flags$": 772,
@@ -7228,10 +7537,10 @@ class SdProgress {
7228
7537
  error: '#FB4444',
7229
7538
  };
7230
7539
  render() {
7231
- return (hAsync(Host, { key: 'ecd9801daf4fcb4a3a680286354c436b1423778a', style: {
7540
+ return (hAsync(Host, { key: '351f3fda014f276d22b02b09f92ed7895a43ea85', style: {
7232
7541
  '--progress-color': this.statusColor[this.status],
7233
7542
  '--progress-percentage': `${this.percentage}%`,
7234
- } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: '167d080cefe222ac28d966bbcf0aca4a122c98ea', class: "sd-progress__label" }, this.label)));
7543
+ } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: '3b41b3fdb26fdf283792172de45fbcff37e1c90e', class: "sd-progress__label" }, this.label)));
7235
7544
  }
7236
7545
  renderBarProgress() {
7237
7546
  return (hAsync("div", { class: `sd-progress__bar sd-progress__bar--${this.status}` }, hAsync("div", { class: ['sd-progress__bar__percent', this.percentage < 100 ? 'proceed' : ''].join(' ') }), hAsync("div", { class: "sd-progress__bar__indicator sd-progress__bar__indicator--left" }, this.percentage, "%"), hAsync("div", { class: "sd-progress__bar__indicator sd-progress__bar__indicator--right" }, this.percentage, "%")));
@@ -8026,11 +8335,11 @@ class SdSelectMultiple extends BaseDropdownEvent {
8026
8335
  '--select-width': this.width || '200px',
8027
8336
  '--select-dropdown-height': this.dropdownHeight || '260px',
8028
8337
  };
8029
- return (hAsync(Host, { key: '24d4287067a9706099a20c46abee2d25a8271c1c', style: style }, hAsync("div", { key: '8b6f63ea974841ded9607c592d2c866a32bdccdf', class: {
8338
+ return (hAsync(Host, { key: 'b80f1d57e87db4e921436b726cfeac4618a13d6b', style: style }, hAsync("div", { key: '43ae0ae2ec83cef2cad1ae59764b5463bb66eda0', class: {
8030
8339
  'sd-select-multiple': true,
8031
8340
  'sd-select-multiple--open': this.isOpen,
8032
8341
  'sd-select-multiple--disabled': this.disabled,
8033
- }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '2d35e79a95e5cd2ec8b055ca4d7a38e70ac13936', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
8342
+ }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '8802336bea4e78aa6ccf1a567d238005ff58c29b', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
8034
8343
  }
8035
8344
  renderLabel(label) {
8036
8345
  if (!label)
@@ -8097,7 +8406,7 @@ class SdSelectMultiple extends BaseDropdownEvent {
8097
8406
  }; }
8098
8407
  }
8099
8408
 
8100
- const sdSelectMultipleGroupCss = () => `.sd-select-multiple-group__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select-multiple-group__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select-multiple-group__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-track{background-color:transparent}sd-select-multiple-group{display:inline-block;height:fit-content}sd-select-multiple-group .sd-select-multiple-group{display:flex;flex-wrap:nowrap;width:var(--select-width, 200px);cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white;color:#333333}sd-select-multiple-group .sd-select-multiple-group:hover:not(.sd-select-multiple-group--disabled){background:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__label{border-right:1px solid #cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger{color:#888888}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-visible,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group__label{font-size:12px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group__container{position:relative;width:100%;display:flex}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{width:var(--select-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container sd-input{width:100%}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px}`;
8409
+ const sdSelectMultipleGroupCss = () => `.sd-select-multiple-group__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select-multiple-group__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select-multiple-group__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-track{background-color:transparent}sd-select-multiple-group{display:inline-block;height:fit-content}sd-select-multiple-group .sd-select-multiple-group{display:flex;flex-wrap:nowrap;width:var(--select-width, 200px);cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white;color:#333333}sd-select-multiple-group .sd-select-multiple-group:hover:not(.sd-select-multiple-group--disabled){background:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__label{border-right:1px solid #cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger{color:#888888}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-visible,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group__label{font-size:12px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group__container{position:relative;width:100%;display:flex}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{width:var(--select-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-multiple-group__dropdown--ready{opacity:1}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container sd-input{width:100%}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px}`;
8101
8410
 
8102
8411
  class SdSelectMultipleGroup extends BaseDropdownEvent {
8103
8412
  constructor(hostRef) {
@@ -8136,6 +8445,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8136
8445
  searchText = null;
8137
8446
  itemIndex = -1;
8138
8447
  isScrolled = false;
8448
+ isDropdownReady = false;
8139
8449
  // events
8140
8450
  sdChange;
8141
8451
  dropDownShow;
@@ -8164,8 +8474,10 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8164
8474
  searchInput?.blur();
8165
8475
  }
8166
8476
  }
8167
- const optionElements = Array.from(this.dropdownRef?.querySelectorAll('.sd-select-multiple-group__dropdown sd-select-option-group') || []);
8168
- const currentItem = optionElements?.[this.itemIndex];
8477
+ const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
8478
+ // useAll 사용시 "전체" 옵션 포함한 인덱스 사용
8479
+ const actualIndex = this.useAll ? this.itemIndex + 1 : this.itemIndex;
8480
+ const currentItem = optionElements?.[actualIndex];
8169
8481
  if (!currentItem || !this.isOpen)
8170
8482
  return;
8171
8483
  this.optionRef = currentItem;
@@ -8179,28 +8491,43 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8179
8491
  async isOpenChanged() {
8180
8492
  // Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지
8181
8493
  this.onDropdownToggle(this.isOpen);
8182
- const selectedOption = this.getSelectedOption();
8183
- if (!selectedOption) {
8184
- this.itemIndex = -1;
8185
- }
8186
- else {
8187
- this.itemIndex = this.options.indexOf(selectedOption[0]);
8188
- }
8189
8494
  this.dropDownShow?.emit({ isOpen: this.isOpen });
8190
- if (this.isOpen === false)
8495
+ this.isDropdownReady = false;
8496
+ if (this.isOpen === false) {
8191
8497
  return;
8192
- await new Promise(resolve => setTimeout(resolve, 10));
8193
- const optionElements = Array.from(this.dropdownRef?.querySelectorAll('.sd-select-multiple__dropdown sd-select-item') || []);
8194
- const currentItem = optionElements?.[this.itemIndex];
8195
- // 드롭다운이 열릴 때 검색 입력에 포커스
8196
- if (this.searchable) {
8197
- const searchInput = await this.getNativeInputElement();
8198
- searchInput?.focus({ preventScroll: true });
8199
8498
  }
8200
- if (!currentItem)
8201
- return;
8202
- await new Promise(resolve => setTimeout(resolve, 10)); // 추가 딜레이
8203
- this.scrollToOption(currentItem);
8499
+ // DOM 렌더링을 기다리기 위해 이중 requestAnimationFrame 사용 - (레이아웃/스타일 계산 - 페인트 이후)
8500
+ requestAnimationFrame(() => {
8501
+ requestAnimationFrame(async () => {
8502
+ const selectedOptions = this.getSelectedOption();
8503
+ // 선택된 옵션이 있으면 첫 번째 선택된 항목으로 스크롤
8504
+ if (selectedOptions && selectedOptions.length > 0) {
8505
+ const selectedIndex = this.options.indexOf(selectedOptions[0]);
8506
+ const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
8507
+ // useAll 사용시 "전체" 옵션 포함한 인덱스 사용
8508
+ const actualIndex = this.useAll ? selectedIndex + 1 : selectedIndex;
8509
+ // 선택된 옵션이 화면 가운데에 오도록 index 조정
8510
+ const targetIndex = Math.min(actualIndex + 4, optionElements.length - 1);
8511
+ const currentItem = optionElements?.[targetIndex];
8512
+ if (currentItem) {
8513
+ this.scrollToOption(currentItem);
8514
+ }
8515
+ }
8516
+ this.isDropdownReady = true;
8517
+ if (this.searchable) {
8518
+ const searchInput = await this.getNativeInputElement();
8519
+ if (searchInput) {
8520
+ requestAnimationFrame(() => {
8521
+ searchInput.focus({ preventScroll: true });
8522
+ });
8523
+ }
8524
+ }
8525
+ });
8526
+ });
8527
+ }
8528
+ async open() {
8529
+ await new Promise(resolve => setTimeout(resolve, 0));
8530
+ this.isOpen = true;
8204
8531
  }
8205
8532
  componentWillLoad() {
8206
8533
  // props가 모두 설정된 후에 실행되므로 올바른 options 값을 가져올 수 있음
@@ -8415,35 +8742,41 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8415
8742
  closeDropdown() {
8416
8743
  this.isOpen = false;
8417
8744
  }
8418
- scrollToOption(optionElement) {
8745
+ async scrollToOption(optionElement) {
8419
8746
  if (!this.dropdownRef || !optionElement)
8420
8747
  return;
8421
- const dropdown = this.dropdownRef;
8422
- const optionTop = optionElement.offsetTop;
8423
- const optionHeight = optionElement.offsetHeight;
8424
- const dropdownScrollTop = dropdown.scrollTop;
8425
- const dropdownHeight = dropdown.clientHeight;
8426
- const searchContainer = dropdown.querySelector('.sd-select__search-container');
8427
- const searchOffset = searchContainer ? searchContainer.offsetHeight : 0;
8428
- const visibleTop = dropdownScrollTop + searchOffset;
8429
- const visibleBottom = dropdownScrollTop + dropdownHeight;
8430
- if (optionTop < visibleTop) {
8431
- dropdown.scrollTop = optionTop - searchOffset;
8432
- }
8433
- else if (optionTop + optionHeight > visibleBottom) {
8434
- dropdown.scrollTop = optionTop + optionHeight - dropdownHeight + searchOffset;
8435
- }
8748
+ requestAnimationFrame(() => {
8749
+ const dropdown = this.dropdownRef;
8750
+ const optionTop = optionElement.offsetTop;
8751
+ const optionHeight = optionElement.offsetHeight;
8752
+ const dropdownScrollTop = dropdown.scrollTop;
8753
+ const dropdownHeight = dropdown.clientHeight;
8754
+ const searchContainer = dropdown.querySelector('.sd-select-multiple-group__search-container');
8755
+ const searchOffset = searchContainer ? searchContainer.offsetHeight : 0;
8756
+ const visibleContentHeight = dropdownHeight - searchOffset;
8757
+ const visibleTop = dropdownScrollTop + searchOffset;
8758
+ const visibleBottom = dropdownScrollTop + dropdownHeight;
8759
+ if (optionTop < visibleTop) {
8760
+ dropdown.scrollTo({ top: optionTop - searchOffset, behavior: 'instant' });
8761
+ }
8762
+ else if (optionTop + optionHeight > visibleBottom) {
8763
+ dropdown.scrollTo({
8764
+ top: optionTop + optionHeight - visibleContentHeight - searchOffset,
8765
+ behavior: 'instant',
8766
+ });
8767
+ }
8768
+ });
8436
8769
  }
8437
8770
  render() {
8438
8771
  const style = {
8439
8772
  '--select-width': this.width || '200px',
8440
8773
  '--select-dropdown-height': this.dropdownHeight || '260px',
8441
8774
  };
8442
- return (hAsync(Host, { key: 'efc8661d6cd2e043b5e43e0872de3a9bff6d57a6', style: style }, hAsync("div", { key: 'e9f7615f75cb28974dececc8e847e868aef8210c', class: {
8775
+ return (hAsync(Host, { key: '00e3f75c997fe76087ddfa2d9fef2ddb11a10a3e', style: style }, hAsync("div", { key: 'f7e5a9f0d3704e0cfb014c8b7a84e6c93d61d31b', class: {
8443
8776
  'sd-select-multiple-group': true,
8444
8777
  'sd-select-multiple-group--open': this.isOpen,
8445
8778
  'sd-select-multiple-group--disabled': this.disabled,
8446
- }, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: '37ea4df1408eebde9e9e6d6d42579a3c40da325a', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
8779
+ }, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: '5b4d771e6ba76ce56974eeee2f01e6a267f557f5', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
8447
8780
  }
8448
8781
  renderLabel(label, labelStyle) {
8449
8782
  if (!label)
@@ -8467,7 +8800,10 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8467
8800
  };
8468
8801
  if (this.isOpen === false)
8469
8802
  return null;
8470
- return (hAsync("sd-portal", { open: this.isOpen, parentRef: this.selectRef, onSdClose: this.closeDropdown }, hAsync("div", { class: "sd-select-multiple-group__dropdown", style: { ...style, ...this.dropdownStyle }, onScroll: this.handleDropdownScroll, ref: el => (this.dropdownRef = el) }, this.searchable && (hAsync("div", { class: {
8803
+ return (hAsync("sd-portal", { open: this.isOpen, parentRef: this.selectRef, onSdClose: this.closeDropdown }, hAsync("div", { style: { width: '0', height: '0', overflow: 'visible' } }, hAsync("div", { class: {
8804
+ 'sd-select-multiple-group__dropdown': true,
8805
+ 'sd-select-multiple-group__dropdown--ready': this.isDropdownReady,
8806
+ }, style: { ...style, ...this.dropdownStyle }, onScroll: this.handleDropdownScroll, ref: el => (this.dropdownRef = el) }, this.searchable && (hAsync("div", { class: {
8471
8807
  'sd-select-multiple-group__search-container': true,
8472
8808
  'sd-select-multiple-group__search-container--scrolled': this.isScrolled,
8473
8809
  }, onClick: event => event.stopPropagation() }, hAsync("sd-input", { ref: el => (this.searchRef = el), value: this.searchText, placeholder: "\uAC80\uC0C9", clearable: true, inputStyle: { 'padding-left': '8px' }, autofocus: true, onSdInput: event => {
@@ -8484,7 +8820,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8484
8820
  return;
8485
8821
  }
8486
8822
  this.handleOptionClick(detail);
8487
- }, useCheckbox: this.useCheckbox, ...(option.type !== 'item' && { countInfo: this.getChildrenOptions(option) }) })))))) : (hAsync("slot", { name: "option-placeholder" }, hAsync("div", { class: 'sd-select-multiple-group__option-placeholder', style: this.optionStyle }, this.optionPlaceholder))))));
8823
+ }, useCheckbox: this.useCheckbox, ...(option.type !== 'item' && { countInfo: this.getChildrenOptions(option) }) })))))) : (hAsync("slot", { name: "option-placeholder" }, hAsync("div", { class: 'sd-select-multiple-group__option-placeholder', style: this.optionStyle }, this.optionPlaceholder)))))));
8488
8824
  }
8489
8825
  static get watchers() { return {
8490
8826
  "value": ["valueChanged"],
@@ -8522,7 +8858,9 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8522
8858
  "isOpen": [32],
8523
8859
  "searchText": [32],
8524
8860
  "itemIndex": [32],
8525
- "isScrolled": [32]
8861
+ "isScrolled": [32],
8862
+ "isDropdownReady": [32],
8863
+ "open": [64]
8526
8864
  },
8527
8865
  "$listeners$": undefined,
8528
8866
  "$lazyBundleId$": "-",
@@ -8561,7 +8899,7 @@ class SdSelectOption {
8561
8899
  }
8562
8900
  };
8563
8901
  render() {
8564
- return (hAsync(Host, { key: 'd3235f4b0314c15a8d280377d88db6bf53f7eb79' }, hAsync("div", { key: '033fe384d67211a387d609a7b462330ee86c67a2', class: {
8902
+ return (hAsync(Host, { key: 'd106374cd96d326e885b65ac94ecf1a397ea2ad9' }, hAsync("div", { key: 'e07601d9c735f7950102449342257a7e39d28a42', class: {
8565
8903
  'sd-select__option': true,
8566
8904
  'sd-select__option--selected': this.isSelected,
8567
8905
  'sd-select__option--disabled': !!this.option.disabled,
@@ -8647,7 +8985,7 @@ class SdSelectOptionGroup {
8647
8985
  }
8648
8986
  };
8649
8987
  render() {
8650
- return (hAsync("div", { key: 'db08c9cdb5179cccfa040fa03e06f286231bc83f', class: {
8988
+ return (hAsync("div", { key: 'd00236bc84a194509b25efa21ef1c53a25923a60', class: {
8651
8989
  'sd-select__option-group': true,
8652
8990
  'sd-select__option-group--selected': !!this.isSelected,
8653
8991
  'sd-select__option-group--disabled': !!this.option.disabled,
@@ -8656,10 +8994,10 @@ class SdSelectOptionGroup {
8656
8994
  'sd-select__option-group--group': this.option.type === 'group',
8657
8995
  'sd-select__option-group--subgroup': this.option.type === 'subgroup',
8658
8996
  'sd-select__option-group--item': this.option.type === 'item',
8659
- }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, hAsync("div", { key: 'b723d71ef120c5d51f0ab859177d67814411ceaa', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (hAsync("sd-checkbox", { key: '1630dfc22fb2ec65c186282f499ec4e6f93a228d', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
8997
+ }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, hAsync("div", { key: 'c635bb5ce073594dd05926529472db1665d5f86d', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (hAsync("sd-checkbox", { key: '984289c89fe90f0cd40a3d022a29b9b974321db0', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
8660
8998
  e.preventDefault();
8661
8999
  this.handleClick(this.option, this.isSelected, e);
8662
- } })), hAsync("span", { key: '97802250891eca095172dae897bb957e49f9b5e3', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (hAsync("span", { key: '96fe449b31bce677693f2ad325a6529fc4b264e3', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
9000
+ } })), hAsync("span", { key: 'b01a4ad8c906d6990dcf5c8eb1affa17f3605452', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (hAsync("span", { key: '9103fa0bfe93caf8b5c3dea936334cd22727dff0', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
8663
9001
  }
8664
9002
  static get style() { return sdSelectOptionGroupCss(); }
8665
9003
  static get cmpMeta() { return {
@@ -9808,7 +10146,7 @@ class SdTbody {
9808
10146
  registerInstance(this, hostRef);
9809
10147
  }
9810
10148
  render() {
9811
- return (hAsync(Host, { key: '96bedf612efa56d790df7070e2641f6769da81a9' }, hAsync("slot", { key: '9980c55cf76b1600034d8dcd60249b392c0c50f2' })));
10149
+ return (hAsync(Host, { key: '7636f7ff23e8aa3c83ace885c5f2ad3fa1e57a45' }, hAsync("slot", { key: '9cdae57011b78e861dab1c16144642c534aaa9e4' })));
9812
10150
  }
9813
10151
  static get style() { return sdTbodyCss(); }
9814
10152
  static get cmpMeta() { return {
@@ -9832,11 +10170,11 @@ class SdTd {
9832
10170
  tdStyle;
9833
10171
  tdClass;
9834
10172
  render() {
9835
- return (hAsync(Host, { key: '182bd00cbbb22b4f3613e973d2999421a3f5f2cd', role: "cell", class: {
10173
+ return (hAsync(Host, { key: '96933d25aa2342e56aaad5a447840bf51b0af078', role: "cell", class: {
9836
10174
  'sd-td': true,
9837
10175
  [`sd-td--${this.align}`]: true,
9838
10176
  [this.tdClass || '']: Boolean(this.tdClass),
9839
- }, style: this.tdStyle }, hAsync("slot", { key: 'fff1a74106822c8092fa57ba785f6ab5be96edcd' })));
10177
+ }, style: this.tdStyle }, hAsync("slot", { key: 'd6a500857bfc914b0443c5ced9607e15dc151c7c' })));
9840
10178
  }
9841
10179
  static get style() { return sdTdCss(); }
9842
10180
  static get cmpMeta() { return {
@@ -9861,7 +10199,7 @@ class SdTh {
9861
10199
  registerInstance(this, hostRef);
9862
10200
  }
9863
10201
  render() {
9864
- return (hAsync(Host, { key: 'cbd2372809ca102893f62b3b4e2d51342cc4c52f', role: "columnheader" }, hAsync("slot", { key: 'c51c2635013c8d405bf3d95d46d2b99bc52c3326' })));
10202
+ return (hAsync(Host, { key: '8b511af45184973c4daefe8bee11130934ef05be', role: "columnheader" }, hAsync("slot", { key: 'a72bff519a60499357ccce741fa0b90cdf9197b7' })));
9865
10203
  }
9866
10204
  static get style() { return sdThCss(); }
9867
10205
  static get cmpMeta() { return {
@@ -9981,7 +10319,7 @@ class SdToggle {
9981
10319
  this.sdChange.emit(newValue);
9982
10320
  };
9983
10321
  render() {
9984
- return (hAsync("label", { key: 'b21fce826c30404ab3f30cc27a1866d9a7745402', "aria-checked": this.isChecked.toString(), "aria-disabled": this.disabled.toString(), role: "switch", "aria-label": this.label || 'toggle', class: this.toggleClasses }, hAsync("input", { key: '8bac810392c4aa1f0f04f13b37bc73210d70fe98', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onInput: this.handleChange }), this.label && hAsync("span", { key: '2d2949701bb4bf24dbbce2e296d8cb82606f6a62', class: "sd-toggle__label" }, this.label), hAsync("div", { key: '42d39942bd284f3de320735a182bd53569782e1f', class: "sd-toggle__track" }, hAsync("div", { key: 'b2decb4e6c1a1e9459621ea409fec24cf8695f4b', class: "sd-toggle__thumb" }))));
10322
+ return (hAsync("label", { key: 'dda95f842f686a3f595db6ecb651551f717cab18', "aria-checked": this.isChecked.toString(), "aria-disabled": this.disabled.toString(), role: "switch", "aria-label": this.label || 'toggle', class: this.toggleClasses }, hAsync("input", { key: 'a281a6572b7fca32242ba08ad45984445bd1a009', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onInput: this.handleChange }), this.label && hAsync("span", { key: 'dfae7796e9e421e7d6ebc6e6693e6266b2ff87cd', class: "sd-toggle__label" }, this.label), hAsync("div", { key: 'e4343307f2df5f5c68509a3e9576a811bd9192ff', class: "sd-toggle__track" }, hAsync("div", { key: 'be214081e5ccc21ad306e52ce186ba4dc56c6c3b', class: "sd-toggle__thumb" }))));
9985
10323
  }
9986
10324
  static get style() { return sdToggleCss(); }
9987
10325
  static get cmpMeta() { return {
@@ -10038,7 +10376,7 @@ class SdToggleButton {
10038
10376
  this.sdChange.emit(newValue);
10039
10377
  };
10040
10378
  render() {
10041
- return (hAsync("label", { key: 'ffa8699908132e9865ccd5b0dffafe6aa1265d8f', class: this.buttonClasses, role: "button", "aria-pressed": this.isActive.toString(), "aria-disabled": this.disabled.toString(), "aria-label": this.label || 'toggle button' }, this.label, hAsync("input", { key: '772f24705287a4e7efac5f736b784dd3d9c0bf4d', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
10379
+ return (hAsync("label", { key: '4ac2cac1d4b1da4d707f4ce84a03ffc7a8ec7cb8', class: this.buttonClasses, role: "button", "aria-pressed": this.isActive.toString(), "aria-disabled": this.disabled.toString(), "aria-label": this.label || 'toggle button' }, this.label, hAsync("input", { key: 'e9a974d34d7b3803b5ed44dc1b2da1199daf5bef', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
10042
10380
  }
10043
10381
  static get style() { return sdToggleButtonCss(); }
10044
10382
  static get cmpMeta() { return {
@@ -10104,20 +10442,20 @@ class SdTooltip {
10104
10442
  : {
10105
10443
  onClick: () => (this.showTooltip = !this.showTooltip),
10106
10444
  };
10107
- return (hAsync(Fragment, { key: 'a4cd9f882795ef5b39a877b004e7d51fccecbfcb' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (hAsync("sd-tooltip-portal", { key: 'b9128e35e1f28869d0d163088f54b631c9104bf9', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, hAsync("div", { key: '0a6db1e8478f25fd43735ac0cd8977ce2bce5ef6', class: {
10445
+ return (hAsync(Fragment, { key: '55a62a0b80b8c10d8c0d8ced1a34178191b8a688' }, this.label ? (hAsync("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (hAsync("sd-tooltip-portal", { key: '21aaf4460591401ec5eb890d123e3cb381fb76f6', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, hAsync("div", { key: 'ee5d301a2fa72f95a0f89242b174f7e21a086a15', class: {
10108
10446
  'sd-tooltip-menu': true,
10109
10447
  [`sd-tooltip-menu--${this.type}`]: true,
10110
10448
  [`sd-tooltip-menu--${this.placement}`]: true,
10111
10449
  'sd-tooltip-menu--with-close': this.useClose,
10112
10450
  [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
10113
10451
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
10114
- } }, hAsync("i", { key: '176b79ce7db54479f2690aca9ae98252e1dfacd4', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: 'aa1f0d7da5135713d1d51ed2852210895d707931', class: {
10452
+ } }, hAsync("i", { key: '4f7e09f6770fbde0f2e9df81d401ea7cd6739df2', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: 'd0856082e623129eb56aaab87e54d1b19f33555a', class: {
10115
10453
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
10116
- } })), hAsync("div", { key: '147d42745d18180e92a81ed60404697afd6ea1e5', class: "sd-tooltip-menu__content", ref: el => {
10454
+ } })), hAsync("div", { key: '40dc2a7d4254ed0e712f22cf19032e2f5ef846b4', class: "sd-tooltip-menu__content", ref: el => {
10117
10455
  if (el && this.slotContent && !el.hasChildNodes()) {
10118
10456
  el.appendChild(this.slotContent.cloneNode(true));
10119
10457
  }
10120
- } }, !this.slotContent && hAsync("span", { key: '6204dc0ed996aa8c70cbb12a1388ed8ebce20552' }, this.el.textContent)), this.useClose && (hAsync("div", { key: '7cb4aebb0077b2b17b78e2b2f82cfd90711cfc5f', class: "sd-tooltip-menu__close-button" }, hAsync("button", { key: 'f14b75687492169c4c24e7840c9e0907b2161ea2', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: 'fcf6ca6fa0c2a349ef0a6710399ab27e5ceffd3f', name: "close", size: "12", color: "#AAAAAA" })))))))));
10458
+ } }, !this.slotContent && hAsync("span", { key: 'd897c210bb76de430a89243177f3a436cc684e09' }, this.el.textContent)), this.useClose && (hAsync("div", { key: 'ca41d884070a25443833162e2dc50fcb91a6bd2a', class: "sd-tooltip-menu__close-button" }, hAsync("button", { key: '75c911fa76787dda3346b4f18d6169304966d49b', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '4d737bf6cc2952776016b9bc7f11cf90364cdcdb', name: "close", size: "12", color: "#AAAAAA" })))))))));
10121
10459
  }
10122
10460
  static get style() { return sdTooltipCss(); }
10123
10461
  static get cmpMeta() { return {
@@ -10293,7 +10631,7 @@ class SdTooltipPortal {
10293
10631
  this.sdClose.emit();
10294
10632
  }
10295
10633
  render() {
10296
- return hAsync("slot", { key: 'e6c37c753808b41beeeefa5f04bdf543a48eaa05' });
10634
+ return hAsync("slot", { key: 'c389b848b1dc63a0484f6000ac5443cce752e4ac' });
10297
10635
  }
10298
10636
  static get cmpMeta() { return {
10299
10637
  "$flags$": 777,
@@ -10319,7 +10657,7 @@ class SdTr {
10319
10657
  registerInstance(this, hostRef);
10320
10658
  }
10321
10659
  render() {
10322
- return (hAsync(Host, { key: '228bb6d6b5225bd035cce96cd817beb9e2734ab4', role: "row" }, hAsync("slot", { key: '8906dfdeb89afb1028a30a5b16b034f6c2ba67b9' })));
10660
+ return (hAsync(Host, { key: '45ae0547de2437e9b815e0ed33226276787805f7', role: "row" }, hAsync("slot", { key: '98dabd2288d0db28bc9305f1b1b3298cb2a905d0' })));
10323
10661
  }
10324
10662
  static get style() { return sdTrCss(); }
10325
10663
  static get cmpMeta() { return {
@@ -10346,6 +10684,7 @@ registerComponents([
10346
10684
  SdInput,
10347
10685
  SdLoadingSpinner,
10348
10686
  SdModalCard,
10687
+ SdNumberInput,
10349
10688
  SdPagination,
10350
10689
  SdPopover,
10351
10690
  SdPortal,