@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.mjs CHANGED
@@ -6901,6 +6901,315 @@ class SdModalCard {
6901
6901
  }; }
6902
6902
  }
6903
6903
 
6904
+ 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)}`;
6905
+
6906
+ class SdNumberInput {
6907
+ constructor(hostRef) {
6908
+ registerInstance(this, hostRef);
6909
+ this.sdIncrement = createEvent(this, "sdIncrement");
6910
+ this.sdDecrement = createEvent(this, "sdDecrement");
6911
+ this.sdInput = createEvent(this, "sdInput");
6912
+ this.sdChange = createEvent(this, "sdChange");
6913
+ this.sdFocus = createEvent(this, "sdFocus");
6914
+ this.sdBlur = createEvent(this, "sdBlur");
6915
+ }
6916
+ get el() { return getElement(this); }
6917
+ min = Number.NEGATIVE_INFINITY;
6918
+ max = Number.POSITIVE_INFINITY;
6919
+ step = 1;
6920
+ useButton = false;
6921
+ useDecimal = false;
6922
+ value = null;
6923
+ label;
6924
+ placeholder = '입력해 주세요.';
6925
+ disabled = false;
6926
+ width;
6927
+ rules;
6928
+ autoFocus = false;
6929
+ status;
6930
+ inputClass = '';
6931
+ readonly = false;
6932
+ inputStyle = {};
6933
+ internalValue = null;
6934
+ displayValue = '';
6935
+ hovered = false;
6936
+ error = false;
6937
+ nativeEl = undefined;
6938
+ sdIncrement;
6939
+ sdDecrement;
6940
+ sdInput;
6941
+ sdChange;
6942
+ sdFocus;
6943
+ sdBlur;
6944
+ formatWithCommas(value) {
6945
+ if (value === null || value === undefined)
6946
+ return '';
6947
+ const isNegative = value < 0;
6948
+ const absValue = Math.abs(value);
6949
+ const [intPart, decPart] = absValue.toString().split('.');
6950
+ const formatted = (+intPart).toLocaleString();
6951
+ const result = isNegative ? '-' + formatted : formatted;
6952
+ return decPart ? result + '.' + decPart : String(result);
6953
+ }
6954
+ parseInput(input) {
6955
+ if (!input || input.trim() === '')
6956
+ return null;
6957
+ const cleaned = input.replace(/,/g, '').trim();
6958
+ // -로 시작을 할 수 있을 수 있고, 소수점 0.n | .n
6959
+ if (!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(cleaned)) {
6960
+ return null;
6961
+ }
6962
+ const parsed = parseFloat(cleaned);
6963
+ if (isNaN(parsed))
6964
+ return null;
6965
+ // 소수점 사용 하지 않는데 . 이 있는 경우
6966
+ if (!this.useDecimal && cleaned.includes('.')) {
6967
+ return null;
6968
+ }
6969
+ return parsed;
6970
+ }
6971
+ clampMinMax(value) {
6972
+ return Math.min(Math.max(value, this.min), this.max);
6973
+ }
6974
+ updateDisplay() {
6975
+ this.displayValue = this.formatWithCommas(this.internalValue);
6976
+ }
6977
+ isIncrementDisabled() {
6978
+ if (this.disabled || this.readonly)
6979
+ return true;
6980
+ if (this.internalValue !== null) {
6981
+ return this.internalValue >= this.max;
6982
+ }
6983
+ return false;
6984
+ }
6985
+ isDecrementDisabled() {
6986
+ if (this.disabled || this.readonly)
6987
+ return true;
6988
+ if (this.internalValue !== null) {
6989
+ return this.internalValue <= this.min;
6990
+ }
6991
+ return false;
6992
+ }
6993
+ valueChanged(newValue) {
6994
+ if (newValue === null || newValue === '') {
6995
+ this.internalValue = null;
6996
+ }
6997
+ else {
6998
+ const parsed = typeof newValue === 'string' ? this.parseInput(newValue) : newValue;
6999
+ if (parsed !== null) {
7000
+ this.internalValue = this.clampMinMax(parsed);
7001
+ }
7002
+ }
7003
+ this.updateDisplay();
7004
+ }
7005
+ internalValueChanged(newValue) {
7006
+ this.updateDisplay();
7007
+ if (newValue !== this.value) {
7008
+ this.value = newValue;
7009
+ this.sdInput?.emit(newValue);
7010
+ }
7011
+ if (!this.rules || this.rules.length === 0)
7012
+ return;
7013
+ this.error = false;
7014
+ for (const rule of this.rules) {
7015
+ const result = rule(newValue);
7016
+ if (result !== true) {
7017
+ this.error = true;
7018
+ break;
7019
+ }
7020
+ }
7021
+ }
7022
+ componentWillLoad() {
7023
+ if (this.value !== null && this.value !== undefined) {
7024
+ const parsed = typeof this.value === 'string' ? this.parseInput(this.value) : this.value;
7025
+ if (parsed !== null) {
7026
+ this.internalValue = this.clampMinMax(parsed);
7027
+ }
7028
+ }
7029
+ this.updateDisplay();
7030
+ }
7031
+ handleInput = (event) => {
7032
+ const target = event.target;
7033
+ const inputValue = target.value;
7034
+ if (inputValue === '') {
7035
+ this.internalValue = null;
7036
+ this.displayValue = '';
7037
+ return;
7038
+ }
7039
+ const commasRemoved = inputValue.replace(/,/g, '');
7040
+ // 만약에 소수점 (.) 이 여러개 일 경우
7041
+ const decimalCount = (commasRemoved.match(/\./g) || []).length;
7042
+ if (decimalCount > 1) {
7043
+ target.value = this.displayValue;
7044
+ return;
7045
+ }
7046
+ // 가능: "-", ".", "-." (단순 기호만 있는 경우)
7047
+ if (commasRemoved === '-' || commasRemoved === '.' || commasRemoved === '-.') {
7048
+ target.value = commasRemoved;
7049
+ return;
7050
+ }
7051
+ // 숫자 뒤에 . 이 있는 경우 (예: "1000.") -> 콤마 포맷 적용 + . 유지
7052
+ if (commasRemoved.endsWith('.') && decimalCount === 1) {
7053
+ const numberPart = commasRemoved.slice(0, -1);
7054
+ const parsed = this.parseInput(numberPart);
7055
+ if (parsed !== null) {
7056
+ const formatted = this.formatWithCommas(parsed);
7057
+ target.value = formatted + '.';
7058
+ return;
7059
+ }
7060
+ }
7061
+ const parsed = this.parseInput(commasRemoved);
7062
+ if (parsed !== null) {
7063
+ if (parsed < this.min) {
7064
+ target.value = this.displayValue;
7065
+ return;
7066
+ }
7067
+ if (parsed > this.max) {
7068
+ target.value = this.displayValue;
7069
+ return;
7070
+ }
7071
+ this.internalValue = parsed;
7072
+ this.displayValue = this.formatWithCommas(parsed);
7073
+ target.value = this.displayValue;
7074
+ }
7075
+ else {
7076
+ target.value = this.displayValue;
7077
+ }
7078
+ };
7079
+ handleChange = (event) => {
7080
+ const target = event.target;
7081
+ const inputValue = target.value;
7082
+ if (inputValue === '') {
7083
+ this.internalValue = null;
7084
+ }
7085
+ else {
7086
+ const parsed = this.parseInput(inputValue);
7087
+ if (parsed !== null) {
7088
+ this.internalValue = this.clampMinMax(parsed);
7089
+ }
7090
+ }
7091
+ this.sdChange?.emit(this.internalValue);
7092
+ };
7093
+ handleFocus = (event) => {
7094
+ this.sdFocus?.emit(event);
7095
+ };
7096
+ handleBlur = (event) => {
7097
+ this.updateDisplay();
7098
+ if (this.nativeEl) {
7099
+ this.nativeEl.value = this.displayValue;
7100
+ }
7101
+ this.sdBlur?.emit(event);
7102
+ };
7103
+ handleKeyDown = (event) => {
7104
+ if (event.key === 'ArrowUp') {
7105
+ event.preventDefault();
7106
+ this.handleIncrement();
7107
+ }
7108
+ else if (event.key === 'ArrowDown') {
7109
+ event.preventDefault();
7110
+ this.handleDecrement();
7111
+ }
7112
+ };
7113
+ handleIncrement = () => {
7114
+ if (this.isIncrementDisabled())
7115
+ return;
7116
+ const currentVal = this.internalValue ?? (this.min ?? 0);
7117
+ let nextVal = currentVal + this.step;
7118
+ if (nextVal > this.max) {
7119
+ nextVal = this.max;
7120
+ }
7121
+ if (nextVal === currentVal)
7122
+ return;
7123
+ this.sdIncrement?.emit({ currentVal: nextVal, prevVal: currentVal });
7124
+ this.internalValue = nextVal;
7125
+ this.sdChange?.emit(nextVal);
7126
+ };
7127
+ handleDecrement = () => {
7128
+ if (this.isDecrementDisabled())
7129
+ return;
7130
+ const currentVal = this.internalValue ?? (this.min ?? 0);
7131
+ let nextVal = currentVal - this.step;
7132
+ if (nextVal < this.min) {
7133
+ nextVal = this.min;
7134
+ }
7135
+ if (nextVal === currentVal)
7136
+ return;
7137
+ this.sdDecrement?.emit({ currentVal: nextVal, prevVal: currentVal });
7138
+ this.internalValue = nextVal;
7139
+ this.sdChange?.emit(nextVal);
7140
+ };
7141
+ async getNativeElement() {
7142
+ return this.nativeEl || null;
7143
+ }
7144
+ getInputStatus() {
7145
+ if (this.disabled)
7146
+ return 'sd-number-input--disabled';
7147
+ if (this.hovered)
7148
+ return 'sd-number-input--hovered';
7149
+ if (this.status)
7150
+ return `sd-number-input--${this.status}`;
7151
+ if (this.error)
7152
+ return 'sd-number-input--error';
7153
+ return '';
7154
+ }
7155
+ render() {
7156
+ const inputWidth = this.width
7157
+ ? {
7158
+ '--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
7159
+ }
7160
+ : {};
7161
+ const inputStyles = {
7162
+ textAlign: this.useButton ? 'center' : 'right',
7163
+ };
7164
+ 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: {
7165
+ 'sd-number-input': true,
7166
+ [this.getInputStatus()]: true,
7167
+ 'sd-number-input--with-buttons': this.useButton,
7168
+ }, 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: {
7169
+ 'sd-number-input__button': true,
7170
+ 'sd-number-input__button--decrement': true,
7171
+ }, 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: {
7172
+ 'sd-number-input__button': true,
7173
+ 'sd-number-input__button--increment': true,
7174
+ }, disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, hAsync("sd-icon", { key: '6a4d263152daaf8f4a565f6659f6bfa6c0acc814', name: "add", size: 12, color: this.isIncrementDisabled() ? '#CCCCCC' : '#2D8DFF' })))))));
7175
+ }
7176
+ static get watchers() { return {
7177
+ "value": ["valueChanged"],
7178
+ "internalValue": ["internalValueChanged"]
7179
+ }; }
7180
+ static get style() { return sdNumberInputCss(); }
7181
+ static get cmpMeta() { return {
7182
+ "$flags$": 768,
7183
+ "$tagName$": "sd-number-input",
7184
+ "$members$": {
7185
+ "min": [2],
7186
+ "max": [2],
7187
+ "step": [2],
7188
+ "useButton": [4, "use-button"],
7189
+ "useDecimal": [4, "use-decimal"],
7190
+ "value": [1032],
7191
+ "label": [1],
7192
+ "placeholder": [1],
7193
+ "disabled": [4],
7194
+ "width": [8],
7195
+ "rules": [16],
7196
+ "autoFocus": [4, "auto-focus"],
7197
+ "status": [1],
7198
+ "inputClass": [1, "input-class"],
7199
+ "readonly": [4],
7200
+ "inputStyle": [16],
7201
+ "internalValue": [32],
7202
+ "displayValue": [32],
7203
+ "hovered": [32],
7204
+ "error": [32],
7205
+ "getNativeElement": [64]
7206
+ },
7207
+ "$listeners$": undefined,
7208
+ "$lazyBundleId$": "-",
7209
+ "$attrsToReflect$": []
7210
+ }; }
7211
+ }
7212
+
6904
7213
  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}`;
6905
7214
 
6906
7215
  const BUTTON_WIDTH = {
@@ -6975,12 +7284,12 @@ class SdPagination {
6975
7284
  }
6976
7285
  }
6977
7286
  render() {
6978
- 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: {
7287
+ 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: {
6979
7288
  'pagination-btn': true,
6980
7289
  'pagination-btn--selected': this.currentPage === n,
6981
7290
  }, disabled: this.currentPage === n, style: {
6982
7291
  '--pagination-btn-width': `${this.buttonWidth}px`,
6983
- }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '108017450555fb73c74c71cc7605ef8af5679a20', class: "append-btns" }, this.renderNextButtons())));
7292
+ }, onClick: () => this.handlePageChange(n) }, n)))), hAsync("div", { key: '64f13226aa9249395ac7aa7d11ea5cc946f5477a', class: "append-btns" }, this.renderNextButtons())));
6984
7293
  }
6985
7294
  static get style() { return sdPaginationCss(); }
6986
7295
  static get cmpMeta() { return {
@@ -7034,11 +7343,11 @@ class SdPopover {
7034
7343
  this.showPopover = false;
7035
7344
  };
7036
7345
  render() {
7037
- 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: {
7346
+ 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: {
7038
7347
  'sd-popover-menu': true,
7039
7348
  [`sd-popover-menu--${this.placement}`]: true,
7040
7349
  [this.menuClass]: !!this.menuClass,
7041
- } }, 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" }))))))));
7350
+ } }, 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" }))))))));
7042
7351
  }
7043
7352
  static get watchers() { return {
7044
7353
  "show": ["watchShowHandler"]
@@ -7189,7 +7498,7 @@ class SdPortal {
7189
7498
  this.sdClose.emit();
7190
7499
  }
7191
7500
  render() {
7192
- return hAsync("slot", { key: '5995c7edbf0a54b6efb9afa2b5f67f078282acd8' });
7501
+ return hAsync("slot", { key: 'd93a68ecf1a281765225bf204cd479bb4b7bfdbf' });
7193
7502
  }
7194
7503
  static get cmpMeta() { return {
7195
7504
  "$flags$": 772,
@@ -7226,10 +7535,10 @@ class SdProgress {
7226
7535
  error: '#FB4444',
7227
7536
  };
7228
7537
  render() {
7229
- return (hAsync(Host, { key: 'ecd9801daf4fcb4a3a680286354c436b1423778a', style: {
7538
+ return (hAsync(Host, { key: '351f3fda014f276d22b02b09f92ed7895a43ea85', style: {
7230
7539
  '--progress-color': this.statusColor[this.status],
7231
7540
  '--progress-percentage': `${this.percentage}%`,
7232
- } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: '167d080cefe222ac28d966bbcf0aca4a122c98ea', class: "sd-progress__label" }, this.label)));
7541
+ } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: '3b41b3fdb26fdf283792172de45fbcff37e1c90e', class: "sd-progress__label" }, this.label)));
7233
7542
  }
7234
7543
  renderBarProgress() {
7235
7544
  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, "%")));
@@ -8024,11 +8333,11 @@ class SdSelectMultiple extends BaseDropdownEvent {
8024
8333
  '--select-width': this.width || '200px',
8025
8334
  '--select-dropdown-height': this.dropdownHeight || '260px',
8026
8335
  };
8027
- return (hAsync(Host, { key: '24d4287067a9706099a20c46abee2d25a8271c1c', style: style }, hAsync("div", { key: '8b6f63ea974841ded9607c592d2c866a32bdccdf', class: {
8336
+ return (hAsync(Host, { key: 'b80f1d57e87db4e921436b726cfeac4618a13d6b', style: style }, hAsync("div", { key: '43ae0ae2ec83cef2cad1ae59764b5463bb66eda0', class: {
8028
8337
  'sd-select-multiple': true,
8029
8338
  'sd-select-multiple--open': this.isOpen,
8030
8339
  'sd-select-multiple--disabled': this.disabled,
8031
- }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '2d35e79a95e5cd2ec8b055ca4d7a38e70ac13936', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
8340
+ }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '8802336bea4e78aa6ccf1a567d238005ff58c29b', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
8032
8341
  }
8033
8342
  renderLabel(label) {
8034
8343
  if (!label)
@@ -8095,7 +8404,7 @@ class SdSelectMultiple extends BaseDropdownEvent {
8095
8404
  }; }
8096
8405
  }
8097
8406
 
8098
- 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}`;
8407
+ 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}`;
8099
8408
 
8100
8409
  class SdSelectMultipleGroup extends BaseDropdownEvent {
8101
8410
  constructor(hostRef) {
@@ -8134,6 +8443,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8134
8443
  searchText = null;
8135
8444
  itemIndex = -1;
8136
8445
  isScrolled = false;
8446
+ isDropdownReady = false;
8137
8447
  // events
8138
8448
  sdChange;
8139
8449
  dropDownShow;
@@ -8162,8 +8472,10 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8162
8472
  searchInput?.blur();
8163
8473
  }
8164
8474
  }
8165
- const optionElements = Array.from(this.dropdownRef?.querySelectorAll('.sd-select-multiple-group__dropdown sd-select-option-group') || []);
8166
- const currentItem = optionElements?.[this.itemIndex];
8475
+ const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
8476
+ // useAll 사용시 "전체" 옵션 포함한 인덱스 사용
8477
+ const actualIndex = this.useAll ? this.itemIndex + 1 : this.itemIndex;
8478
+ const currentItem = optionElements?.[actualIndex];
8167
8479
  if (!currentItem || !this.isOpen)
8168
8480
  return;
8169
8481
  this.optionRef = currentItem;
@@ -8177,28 +8489,43 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8177
8489
  async isOpenChanged() {
8178
8490
  // Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지
8179
8491
  this.onDropdownToggle(this.isOpen);
8180
- const selectedOption = this.getSelectedOption();
8181
- if (!selectedOption) {
8182
- this.itemIndex = -1;
8183
- }
8184
- else {
8185
- this.itemIndex = this.options.indexOf(selectedOption[0]);
8186
- }
8187
8492
  this.dropDownShow?.emit({ isOpen: this.isOpen });
8188
- if (this.isOpen === false)
8493
+ this.isDropdownReady = false;
8494
+ if (this.isOpen === false) {
8189
8495
  return;
8190
- await new Promise(resolve => setTimeout(resolve, 10));
8191
- const optionElements = Array.from(this.dropdownRef?.querySelectorAll('.sd-select-multiple__dropdown sd-select-item') || []);
8192
- const currentItem = optionElements?.[this.itemIndex];
8193
- // 드롭다운이 열릴 때 검색 입력에 포커스
8194
- if (this.searchable) {
8195
- const searchInput = await this.getNativeInputElement();
8196
- searchInput?.focus({ preventScroll: true });
8197
8496
  }
8198
- if (!currentItem)
8199
- return;
8200
- await new Promise(resolve => setTimeout(resolve, 10)); // 추가 딜레이
8201
- this.scrollToOption(currentItem);
8497
+ // DOM 렌더링을 기다리기 위해 이중 requestAnimationFrame 사용 - (레이아웃/스타일 계산 - 페인트 이후)
8498
+ requestAnimationFrame(() => {
8499
+ requestAnimationFrame(async () => {
8500
+ const selectedOptions = this.getSelectedOption();
8501
+ // 선택된 옵션이 있으면 첫 번째 선택된 항목으로 스크롤
8502
+ if (selectedOptions && selectedOptions.length > 0) {
8503
+ const selectedIndex = this.options.indexOf(selectedOptions[0]);
8504
+ const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
8505
+ // useAll 사용시 "전체" 옵션 포함한 인덱스 사용
8506
+ const actualIndex = this.useAll ? selectedIndex + 1 : selectedIndex;
8507
+ // 선택된 옵션이 화면 가운데에 오도록 index 조정
8508
+ const targetIndex = Math.min(actualIndex + 4, optionElements.length - 1);
8509
+ const currentItem = optionElements?.[targetIndex];
8510
+ if (currentItem) {
8511
+ this.scrollToOption(currentItem);
8512
+ }
8513
+ }
8514
+ this.isDropdownReady = true;
8515
+ if (this.searchable) {
8516
+ const searchInput = await this.getNativeInputElement();
8517
+ if (searchInput) {
8518
+ requestAnimationFrame(() => {
8519
+ searchInput.focus({ preventScroll: true });
8520
+ });
8521
+ }
8522
+ }
8523
+ });
8524
+ });
8525
+ }
8526
+ async open() {
8527
+ await new Promise(resolve => setTimeout(resolve, 0));
8528
+ this.isOpen = true;
8202
8529
  }
8203
8530
  componentWillLoad() {
8204
8531
  // props가 모두 설정된 후에 실행되므로 올바른 options 값을 가져올 수 있음
@@ -8413,35 +8740,41 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8413
8740
  closeDropdown() {
8414
8741
  this.isOpen = false;
8415
8742
  }
8416
- scrollToOption(optionElement) {
8743
+ async scrollToOption(optionElement) {
8417
8744
  if (!this.dropdownRef || !optionElement)
8418
8745
  return;
8419
- const dropdown = this.dropdownRef;
8420
- const optionTop = optionElement.offsetTop;
8421
- const optionHeight = optionElement.offsetHeight;
8422
- const dropdownScrollTop = dropdown.scrollTop;
8423
- const dropdownHeight = dropdown.clientHeight;
8424
- const searchContainer = dropdown.querySelector('.sd-select__search-container');
8425
- const searchOffset = searchContainer ? searchContainer.offsetHeight : 0;
8426
- const visibleTop = dropdownScrollTop + searchOffset;
8427
- const visibleBottom = dropdownScrollTop + dropdownHeight;
8428
- if (optionTop < visibleTop) {
8429
- dropdown.scrollTop = optionTop - searchOffset;
8430
- }
8431
- else if (optionTop + optionHeight > visibleBottom) {
8432
- dropdown.scrollTop = optionTop + optionHeight - dropdownHeight + searchOffset;
8433
- }
8746
+ requestAnimationFrame(() => {
8747
+ const dropdown = this.dropdownRef;
8748
+ const optionTop = optionElement.offsetTop;
8749
+ const optionHeight = optionElement.offsetHeight;
8750
+ const dropdownScrollTop = dropdown.scrollTop;
8751
+ const dropdownHeight = dropdown.clientHeight;
8752
+ const searchContainer = dropdown.querySelector('.sd-select-multiple-group__search-container');
8753
+ const searchOffset = searchContainer ? searchContainer.offsetHeight : 0;
8754
+ const visibleContentHeight = dropdownHeight - searchOffset;
8755
+ const visibleTop = dropdownScrollTop + searchOffset;
8756
+ const visibleBottom = dropdownScrollTop + dropdownHeight;
8757
+ if (optionTop < visibleTop) {
8758
+ dropdown.scrollTo({ top: optionTop - searchOffset, behavior: 'instant' });
8759
+ }
8760
+ else if (optionTop + optionHeight > visibleBottom) {
8761
+ dropdown.scrollTo({
8762
+ top: optionTop + optionHeight - visibleContentHeight - searchOffset,
8763
+ behavior: 'instant',
8764
+ });
8765
+ }
8766
+ });
8434
8767
  }
8435
8768
  render() {
8436
8769
  const style = {
8437
8770
  '--select-width': this.width || '200px',
8438
8771
  '--select-dropdown-height': this.dropdownHeight || '260px',
8439
8772
  };
8440
- return (hAsync(Host, { key: 'efc8661d6cd2e043b5e43e0872de3a9bff6d57a6', style: style }, hAsync("div", { key: 'e9f7615f75cb28974dececc8e847e868aef8210c', class: {
8773
+ return (hAsync(Host, { key: '00e3f75c997fe76087ddfa2d9fef2ddb11a10a3e', style: style }, hAsync("div", { key: 'f7e5a9f0d3704e0cfb014c8b7a84e6c93d61d31b', class: {
8441
8774
  'sd-select-multiple-group': true,
8442
8775
  'sd-select-multiple-group--open': this.isOpen,
8443
8776
  'sd-select-multiple-group--disabled': this.disabled,
8444
- }, 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()))));
8777
+ }, 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()))));
8445
8778
  }
8446
8779
  renderLabel(label, labelStyle) {
8447
8780
  if (!label)
@@ -8465,7 +8798,10 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8465
8798
  };
8466
8799
  if (this.isOpen === false)
8467
8800
  return null;
8468
- 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: {
8801
+ 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: {
8802
+ 'sd-select-multiple-group__dropdown': true,
8803
+ 'sd-select-multiple-group__dropdown--ready': this.isDropdownReady,
8804
+ }, style: { ...style, ...this.dropdownStyle }, onScroll: this.handleDropdownScroll, ref: el => (this.dropdownRef = el) }, this.searchable && (hAsync("div", { class: {
8469
8805
  'sd-select-multiple-group__search-container': true,
8470
8806
  'sd-select-multiple-group__search-container--scrolled': this.isScrolled,
8471
8807
  }, 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 => {
@@ -8482,7 +8818,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8482
8818
  return;
8483
8819
  }
8484
8820
  this.handleOptionClick(detail);
8485
- }, 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))))));
8821
+ }, 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)))))));
8486
8822
  }
8487
8823
  static get watchers() { return {
8488
8824
  "value": ["valueChanged"],
@@ -8520,7 +8856,9 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
8520
8856
  "isOpen": [32],
8521
8857
  "searchText": [32],
8522
8858
  "itemIndex": [32],
8523
- "isScrolled": [32]
8859
+ "isScrolled": [32],
8860
+ "isDropdownReady": [32],
8861
+ "open": [64]
8524
8862
  },
8525
8863
  "$listeners$": undefined,
8526
8864
  "$lazyBundleId$": "-",
@@ -8559,7 +8897,7 @@ class SdSelectOption {
8559
8897
  }
8560
8898
  };
8561
8899
  render() {
8562
- return (hAsync(Host, { key: 'd3235f4b0314c15a8d280377d88db6bf53f7eb79' }, hAsync("div", { key: '033fe384d67211a387d609a7b462330ee86c67a2', class: {
8900
+ return (hAsync(Host, { key: 'd106374cd96d326e885b65ac94ecf1a397ea2ad9' }, hAsync("div", { key: 'e07601d9c735f7950102449342257a7e39d28a42', class: {
8563
8901
  'sd-select__option': true,
8564
8902
  'sd-select__option--selected': this.isSelected,
8565
8903
  'sd-select__option--disabled': !!this.option.disabled,
@@ -8645,7 +8983,7 @@ class SdSelectOptionGroup {
8645
8983
  }
8646
8984
  };
8647
8985
  render() {
8648
- return (hAsync("div", { key: 'db08c9cdb5179cccfa040fa03e06f286231bc83f', class: {
8986
+ return (hAsync("div", { key: 'd00236bc84a194509b25efa21ef1c53a25923a60', class: {
8649
8987
  'sd-select__option-group': true,
8650
8988
  'sd-select__option-group--selected': !!this.isSelected,
8651
8989
  'sd-select__option-group--disabled': !!this.option.disabled,
@@ -8654,10 +8992,10 @@ class SdSelectOptionGroup {
8654
8992
  'sd-select__option-group--group': this.option.type === 'group',
8655
8993
  'sd-select__option-group--subgroup': this.option.type === 'subgroup',
8656
8994
  'sd-select__option-group--item': this.option.type === 'item',
8657
- }, 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 => {
8995
+ }, 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 => {
8658
8996
  e.preventDefault();
8659
8997
  this.handleClick(this.option, this.isSelected, e);
8660
- } })), 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})`)))));
8998
+ } })), 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})`)))));
8661
8999
  }
8662
9000
  static get style() { return sdSelectOptionGroupCss(); }
8663
9001
  static get cmpMeta() { return {
@@ -9806,7 +10144,7 @@ class SdTbody {
9806
10144
  registerInstance(this, hostRef);
9807
10145
  }
9808
10146
  render() {
9809
- return (hAsync(Host, { key: '96bedf612efa56d790df7070e2641f6769da81a9' }, hAsync("slot", { key: '9980c55cf76b1600034d8dcd60249b392c0c50f2' })));
10147
+ return (hAsync(Host, { key: '7636f7ff23e8aa3c83ace885c5f2ad3fa1e57a45' }, hAsync("slot", { key: '9cdae57011b78e861dab1c16144642c534aaa9e4' })));
9810
10148
  }
9811
10149
  static get style() { return sdTbodyCss(); }
9812
10150
  static get cmpMeta() { return {
@@ -9830,11 +10168,11 @@ class SdTd {
9830
10168
  tdStyle;
9831
10169
  tdClass;
9832
10170
  render() {
9833
- return (hAsync(Host, { key: '182bd00cbbb22b4f3613e973d2999421a3f5f2cd', role: "cell", class: {
10171
+ return (hAsync(Host, { key: '96933d25aa2342e56aaad5a447840bf51b0af078', role: "cell", class: {
9834
10172
  'sd-td': true,
9835
10173
  [`sd-td--${this.align}`]: true,
9836
10174
  [this.tdClass || '']: Boolean(this.tdClass),
9837
- }, style: this.tdStyle }, hAsync("slot", { key: 'fff1a74106822c8092fa57ba785f6ab5be96edcd' })));
10175
+ }, style: this.tdStyle }, hAsync("slot", { key: 'd6a500857bfc914b0443c5ced9607e15dc151c7c' })));
9838
10176
  }
9839
10177
  static get style() { return sdTdCss(); }
9840
10178
  static get cmpMeta() { return {
@@ -9859,7 +10197,7 @@ class SdTh {
9859
10197
  registerInstance(this, hostRef);
9860
10198
  }
9861
10199
  render() {
9862
- return (hAsync(Host, { key: 'cbd2372809ca102893f62b3b4e2d51342cc4c52f', role: "columnheader" }, hAsync("slot", { key: 'c51c2635013c8d405bf3d95d46d2b99bc52c3326' })));
10200
+ return (hAsync(Host, { key: '8b511af45184973c4daefe8bee11130934ef05be', role: "columnheader" }, hAsync("slot", { key: 'a72bff519a60499357ccce741fa0b90cdf9197b7' })));
9863
10201
  }
9864
10202
  static get style() { return sdThCss(); }
9865
10203
  static get cmpMeta() { return {
@@ -9979,7 +10317,7 @@ class SdToggle {
9979
10317
  this.sdChange.emit(newValue);
9980
10318
  };
9981
10319
  render() {
9982
- 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" }))));
10320
+ 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" }))));
9983
10321
  }
9984
10322
  static get style() { return sdToggleCss(); }
9985
10323
  static get cmpMeta() { return {
@@ -10036,7 +10374,7 @@ class SdToggleButton {
10036
10374
  this.sdChange.emit(newValue);
10037
10375
  };
10038
10376
  render() {
10039
- 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 })));
10377
+ 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 })));
10040
10378
  }
10041
10379
  static get style() { return sdToggleButtonCss(); }
10042
10380
  static get cmpMeta() { return {
@@ -10102,20 +10440,20 @@ class SdTooltip {
10102
10440
  : {
10103
10441
  onClick: () => (this.showTooltip = !this.showTooltip),
10104
10442
  };
10105
- 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: {
10443
+ 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: {
10106
10444
  'sd-tooltip-menu': true,
10107
10445
  [`sd-tooltip-menu--${this.type}`]: true,
10108
10446
  [`sd-tooltip-menu--${this.placement}`]: true,
10109
10447
  'sd-tooltip-menu--with-close': this.useClose,
10110
10448
  [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
10111
10449
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
10112
- } }, hAsync("i", { key: '176b79ce7db54479f2690aca9ae98252e1dfacd4', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: 'aa1f0d7da5135713d1d51ed2852210895d707931', class: {
10450
+ } }, hAsync("i", { key: '4f7e09f6770fbde0f2e9df81d401ea7cd6739df2', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: 'd0856082e623129eb56aaab87e54d1b19f33555a', class: {
10113
10451
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
10114
- } })), hAsync("div", { key: '147d42745d18180e92a81ed60404697afd6ea1e5', class: "sd-tooltip-menu__content", ref: el => {
10452
+ } })), hAsync("div", { key: '40dc2a7d4254ed0e712f22cf19032e2f5ef846b4', class: "sd-tooltip-menu__content", ref: el => {
10115
10453
  if (el && this.slotContent && !el.hasChildNodes()) {
10116
10454
  el.appendChild(this.slotContent.cloneNode(true));
10117
10455
  }
10118
- } }, !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" })))))))));
10456
+ } }, !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" })))))))));
10119
10457
  }
10120
10458
  static get style() { return sdTooltipCss(); }
10121
10459
  static get cmpMeta() { return {
@@ -10291,7 +10629,7 @@ class SdTooltipPortal {
10291
10629
  this.sdClose.emit();
10292
10630
  }
10293
10631
  render() {
10294
- return hAsync("slot", { key: 'e6c37c753808b41beeeefa5f04bdf543a48eaa05' });
10632
+ return hAsync("slot", { key: 'c389b848b1dc63a0484f6000ac5443cce752e4ac' });
10295
10633
  }
10296
10634
  static get cmpMeta() { return {
10297
10635
  "$flags$": 777,
@@ -10317,7 +10655,7 @@ class SdTr {
10317
10655
  registerInstance(this, hostRef);
10318
10656
  }
10319
10657
  render() {
10320
- return (hAsync(Host, { key: '228bb6d6b5225bd035cce96cd817beb9e2734ab4', role: "row" }, hAsync("slot", { key: '8906dfdeb89afb1028a30a5b16b034f6c2ba67b9' })));
10658
+ return (hAsync(Host, { key: '45ae0547de2437e9b815e0ed33226276787805f7', role: "row" }, hAsync("slot", { key: '98dabd2288d0db28bc9305f1b1b3298cb2a905d0' })));
10321
10659
  }
10322
10660
  static get style() { return sdTrCss(); }
10323
10661
  static get cmpMeta() { return {
@@ -10344,6 +10682,7 @@ registerComponents([
10344
10682
  SdInput,
10345
10683
  SdLoadingSpinner,
10346
10684
  SdModalCard,
10685
+ SdNumberInput,
10347
10686
  SdPagination,
10348
10687
  SdPopover,
10349
10688
  SdPortal,