@sellmate/design-system 0.0.30 → 0.0.32

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 (86) 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.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map +1 -1
  4. package/dist/cjs/sd-button_13.cjs.entry.js +8 -8
  5. package/dist/cjs/sd-progress.cjs.entry.js +44 -0
  6. package/dist/cjs/sd-progress.entry.cjs.js.map +1 -0
  7. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +30 -9
  8. package/dist/cjs/sd-select-multiple-group.entry.cjs.js.map +1 -1
  9. package/dist/cjs/sd-select-multiple.cjs.entry.js +2 -2
  10. package/dist/cjs/sd-select-option-group.cjs.entry.js +4 -4
  11. package/dist/cjs/sd-select-option-group.entry.cjs.js.map +1 -1
  12. package/dist/collection/collection-manifest.json +1 -0
  13. package/dist/collection/components/sd-progress/sd-progress.css +61 -0
  14. package/dist/collection/components/sd-progress/sd-progress.js +194 -0
  15. package/dist/collection/components/sd-progress/sd-progress.js.map +1 -0
  16. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  17. package/dist/collection/components/sd-select/sd-select.js +2 -2
  18. package/dist/collection/components/sd-select/sd-select.js.map +1 -1
  19. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +2 -2
  20. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +51 -10
  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.css +7 -4
  23. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  24. package/dist/collection/components/sd-tooltip/sd-tooltip.js +4 -4
  25. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
  26. package/dist/components/{p-DOUuhGVo.js → p-B5RhRjFk.js} +5 -5
  27. package/dist/components/p-B5RhRjFk.js.map +1 -0
  28. package/dist/components/{p-c8NhJgfj.js → p-BLVHOrsi.js} +3 -3
  29. package/dist/components/{p-c8NhJgfj.js.map → p-BLVHOrsi.js.map} +1 -1
  30. package/dist/components/{p-B0JdV6r1.js → p-BNY55XpQ.js} +3 -3
  31. package/dist/components/{p-B0JdV6r1.js.map → p-BNY55XpQ.js.map} +1 -1
  32. package/dist/components/{p-CSxmWyJx.js → p-CDNsy2Lv.js} +6 -6
  33. package/dist/components/p-CDNsy2Lv.js.map +1 -0
  34. package/dist/components/{p-Mc5Mv8aH.js → p-Dvtwm2UI.js} +7 -7
  35. package/dist/components/{p-Mc5Mv8aH.js.map → p-Dvtwm2UI.js.map} +1 -1
  36. package/dist/components/sd-popover.js +1 -1
  37. package/dist/components/sd-progress.d.ts +11 -0
  38. package/dist/components/sd-progress.js +70 -0
  39. package/dist/components/sd-progress.js.map +1 -0
  40. package/dist/components/sd-select-multiple-group.js +33 -11
  41. package/dist/components/sd-select-multiple-group.js.map +1 -1
  42. package/dist/components/sd-select-multiple.js +3 -3
  43. package/dist/components/sd-select-option-group.js +1 -1
  44. package/dist/components/sd-select-option.js +1 -1
  45. package/dist/components/sd-select.js +1 -1
  46. package/dist/components/sd-table.js +4 -4
  47. package/dist/components/sd-tooltip-portal.js +1 -1
  48. package/dist/components/sd-tooltip.js +1 -1
  49. package/dist/design-system/design-system.esm.js +1 -1
  50. package/dist/design-system/p-56b88d9b.entry.js +2 -0
  51. package/dist/design-system/{p-ff4feeff.entry.js.map → p-56b88d9b.entry.js.map} +1 -1
  52. package/dist/design-system/{p-7a7cdc36.entry.js → p-7a9028ae.entry.js} +2 -2
  53. package/dist/design-system/p-93569289.entry.js +2 -0
  54. package/dist/design-system/p-93569289.entry.js.map +1 -0
  55. package/dist/design-system/p-ac7dbf3c.entry.js +2 -0
  56. package/dist/design-system/p-ac7dbf3c.entry.js.map +1 -0
  57. package/dist/design-system/{p-e2a11135.entry.js → p-e9800353.entry.js} +2 -2
  58. package/dist/design-system/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.esm.js.map +1 -1
  59. package/dist/design-system/sd-progress.entry.esm.js.map +1 -0
  60. package/dist/design-system/sd-select-multiple-group.entry.esm.js.map +1 -1
  61. package/dist/design-system/sd-select-option-group.entry.esm.js.map +1 -1
  62. package/dist/esm/design-system.js +1 -1
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-select.sd-select-option.sd-table.sd-tooltip.sd-tooltip-portal.entry.js.map +1 -1
  65. package/dist/esm/sd-button_13.entry.js +8 -8
  66. package/dist/esm/sd-progress.entry.js +42 -0
  67. package/dist/esm/sd-progress.entry.js.map +1 -0
  68. package/dist/esm/sd-select-multiple-group.entry.js +31 -10
  69. package/dist/esm/sd-select-multiple-group.entry.js.map +1 -1
  70. package/dist/esm/sd-select-multiple.entry.js +2 -2
  71. package/dist/esm/sd-select-option-group.entry.js +4 -4
  72. package/dist/esm/sd-select-option-group.entry.js.map +1 -1
  73. package/dist/types/components/sd-progress/sd-progress.d.ts +12 -0
  74. package/dist/types/components/sd-select/sd-select.d.ts +1 -1
  75. package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +10 -1
  76. package/dist/types/components.d.ts +63 -0
  77. package/hydrate/index.js +99 -23
  78. package/hydrate/index.mjs +99 -23
  79. package/package.json +2 -2
  80. package/dist/components/p-CSxmWyJx.js.map +0 -1
  81. package/dist/components/p-DOUuhGVo.js.map +0 -1
  82. package/dist/design-system/p-5e0ac5e6.entry.js +0 -2
  83. package/dist/design-system/p-5e0ac5e6.entry.js.map +0 -1
  84. package/dist/design-system/p-ff4feeff.entry.js +0 -2
  85. /package/dist/design-system/{p-7a7cdc36.entry.js.map → p-7a9028ae.entry.js.map} +0 -0
  86. /package/dist/design-system/{p-e2a11135.entry.js.map → p-e9800353.entry.js.map} +0 -0
@@ -353,6 +353,29 @@ export namespace Components {
353
353
  */
354
354
  "zIndex": number;
355
355
  }
356
+ interface SdProgress {
357
+ "label"?: string;
358
+ /**
359
+ * @default 0
360
+ */
361
+ "percentage": number;
362
+ /**
363
+ * @default 80
364
+ */
365
+ "size": number;
366
+ /**
367
+ * @default 'default'
368
+ */
369
+ "status": 'default' | 'progress' | 'complete' | 'error';
370
+ /**
371
+ * @default 12
372
+ */
373
+ "strokeWidth": number;
374
+ /**
375
+ * @default 'bar'
376
+ */
377
+ "type": 'bar' | 'spinner';
378
+ }
356
379
  interface SdSelect {
357
380
  /**
358
381
  * @default false
@@ -497,6 +520,10 @@ export namespace Components {
497
520
  * @default {}
498
521
  */
499
522
  "triggerStyle": SelectStyleProps['triggerStyle'];
523
+ /**
524
+ * @default false
525
+ */
526
+ "useAll": boolean;
500
527
  /**
501
528
  * @default false
502
529
  */
@@ -952,6 +979,12 @@ declare global {
952
979
  prototype: HTMLSdPortalElement;
953
980
  new (): HTMLSdPortalElement;
954
981
  };
982
+ interface HTMLSdProgressElement extends Components.SdProgress, HTMLStencilElement {
983
+ }
984
+ var HTMLSdProgressElement: {
985
+ prototype: HTMLSdProgressElement;
986
+ new (): HTMLSdProgressElement;
987
+ };
955
988
  interface HTMLSdSelectElementEventMap {
956
989
  "sdChange": SelectEvents['sdChange'];
957
990
  "dropDownShow": SelectEvents['dropDownShow'];
@@ -1112,6 +1145,7 @@ declare global {
1112
1145
  "sd-pagination": HTMLSdPaginationElement;
1113
1146
  "sd-popover": HTMLSdPopoverElement;
1114
1147
  "sd-portal": HTMLSdPortalElement;
1148
+ "sd-progress": HTMLSdProgressElement;
1115
1149
  "sd-select": HTMLSdSelectElement;
1116
1150
  "sd-select-multiple": HTMLSdSelectMultipleElement;
1117
1151
  "sd-select-multiple-group": HTMLSdSelectMultipleGroupElement;
@@ -1464,6 +1498,29 @@ declare namespace LocalJSX {
1464
1498
  */
1465
1499
  "zIndex"?: number;
1466
1500
  }
1501
+ interface SdProgress {
1502
+ "label"?: string;
1503
+ /**
1504
+ * @default 0
1505
+ */
1506
+ "percentage"?: number;
1507
+ /**
1508
+ * @default 80
1509
+ */
1510
+ "size"?: number;
1511
+ /**
1512
+ * @default 'default'
1513
+ */
1514
+ "status"?: 'default' | 'progress' | 'complete' | 'error';
1515
+ /**
1516
+ * @default 12
1517
+ */
1518
+ "strokeWidth"?: number;
1519
+ /**
1520
+ * @default 'bar'
1521
+ */
1522
+ "type"?: 'bar' | 'spinner';
1523
+ }
1467
1524
  interface SdSelect {
1468
1525
  /**
1469
1526
  * @default false
@@ -1614,6 +1671,10 @@ declare namespace LocalJSX {
1614
1671
  * @default {}
1615
1672
  */
1616
1673
  "triggerStyle"?: SelectStyleProps['triggerStyle'];
1674
+ /**
1675
+ * @default false
1676
+ */
1677
+ "useAll"?: boolean;
1617
1678
  /**
1618
1679
  * @default false
1619
1680
  */
@@ -1858,6 +1919,7 @@ declare namespace LocalJSX {
1858
1919
  "sd-pagination": SdPagination;
1859
1920
  "sd-popover": SdPopover;
1860
1921
  "sd-portal": SdPortal;
1922
+ "sd-progress": SdProgress;
1861
1923
  "sd-select": SdSelect;
1862
1924
  "sd-select-multiple": SdSelectMultiple;
1863
1925
  "sd-select-multiple-group": SdSelectMultipleGroup;
@@ -1887,6 +1949,7 @@ declare module "@stencil/core" {
1887
1949
  "sd-pagination": LocalJSX.SdPagination & JSXBase.HTMLAttributes<HTMLSdPaginationElement>;
1888
1950
  "sd-popover": LocalJSX.SdPopover & JSXBase.HTMLAttributes<HTMLSdPopoverElement>;
1889
1951
  "sd-portal": LocalJSX.SdPortal & JSXBase.HTMLAttributes<HTMLSdPortalElement>;
1952
+ "sd-progress": LocalJSX.SdProgress & JSXBase.HTMLAttributes<HTMLSdProgressElement>;
1890
1953
  "sd-select": LocalJSX.SdSelect & JSXBase.HTMLAttributes<HTMLSdSelectElement>;
1891
1954
  "sd-select-multiple": LocalJSX.SdSelectMultiple & JSXBase.HTMLAttributes<HTMLSdSelectMultipleElement>;
1892
1955
  "sd-select-multiple-group": LocalJSX.SdSelectMultipleGroup & JSXBase.HTMLAttributes<HTMLSdSelectMultipleGroupElement>;
package/hydrate/index.js CHANGED
@@ -5440,6 +5440,59 @@ class SdPortal {
5440
5440
  }; }
5441
5441
  }
5442
5442
 
5443
+ const sdProgressCss = "sd-progress{display:block}sd-progress .sd-progress__bar{position:relative;width:360px;height:20px;overflow:hidden;border-radius:4px;background-color:#eeeeee;text-align:center}sd-progress .sd-progress__bar__percent{width:var(--progress-percentage);height:100%;border-radius:4px;background-color:var(--progress-color, #0075ff);transition:all 0.5s}sd-progress .sd-progress__bar__percent.proceed{border-top-right-radius:50%}sd-progress .sd-progress__bar__indicator{position:absolute;left:0;top:0;height:20px;width:100%;background-color:#eeeeee;line-height:21px;z-index:1}sd-progress .sd-progress__bar__indicator--left{color:var(--progress-color, #0075ff);clip-path:inset(0 0 0 var(--progress-percentage))}sd-progress .sd-progress__bar__indicator--right{color:white;background-color:var(--progress-color, #0075ff);clip-path:inset(0 calc(100% - var(--progress-percentage)) 0 0)}sd-progress .sd-progress__spinner{display:flex;flex-direction:column;align-items:center;justify-content:center}sd-progress .sd-progress__spinner svg{transform:rotate(-90deg)}sd-progress .sd-progress__spinner__label{margin-top:8px;font-size:16px;color:var(--progress-color, #0075ff)}sd-progress .sd-progress__label{margin-top:4px;font-size:12px;color:#222222;text-align:center}";
5444
+
5445
+ class SdProgress {
5446
+ constructor(hostRef) {
5447
+ registerInstance(this, hostRef);
5448
+ }
5449
+ type = 'bar';
5450
+ status = 'default';
5451
+ percentage = 0;
5452
+ size = 80;
5453
+ strokeWidth = 12;
5454
+ label;
5455
+ statusColor = {
5456
+ default: '#aaaaaa',
5457
+ progress: '#0075ff',
5458
+ complete: '#12B553',
5459
+ error: '#FB4444',
5460
+ };
5461
+ render() {
5462
+ return (hAsync(Host, { key: '2e2f7cf77bbc63dfb15910a3bc50ac45601020cd', style: {
5463
+ '--progress-color': this.statusColor[this.status],
5464
+ '--progress-percentage': `${this.percentage}%`,
5465
+ } }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && hAsync("div", { key: '3e72a490e148886c59345e5ac3161f760e0f4e85', class: "sd-progress__label" }, this.label)));
5466
+ }
5467
+ renderBarProgress() {
5468
+ 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, "%")));
5469
+ }
5470
+ renderSpinnerProgress() {
5471
+ const radius = (this.size - this.strokeWidth) / 2; // 원의 반지름
5472
+ const circumference = 2 * Math.PI * radius; // 원의 둘레
5473
+ const offset = circumference - (this.percentage / 100) * circumference; // 진행률에 따른 offset
5474
+ const progressBgSize = `${this.size}px`;
5475
+ const progressSize = `${this.size / 2}px`;
5476
+ return (hAsync("div", { class: `sd-progress__spinner sd-progress__spinner--${this.status}` }, hAsync("svg", { width: progressBgSize, height: progressBgSize }, hAsync("circle", { cx: progressSize, cy: progressSize, r: radius, stroke: "#EEEEEE", "stroke-width": this.strokeWidth, fill: "transparent" }), hAsync("circle", { cx: progressSize, cy: progressSize, r: radius, stroke: this.statusColor[this.status], "stroke-width": this.strokeWidth, fill: "transparent", "stroke-dasharray": circumference, "stroke-dashoffset": offset, "stroke-linecap": "round", class: "transition-all duration-500" })), hAsync("strong", { class: "sd-progress__spinner__label" }, this.percentage, " %")));
5477
+ }
5478
+ static get style() { return sdProgressCss; }
5479
+ static get cmpMeta() { return {
5480
+ "$flags$": 768,
5481
+ "$tagName$": "sd-progress",
5482
+ "$members$": {
5483
+ "type": [1],
5484
+ "status": [1],
5485
+ "percentage": [2],
5486
+ "size": [2],
5487
+ "strokeWidth": [2, "stroke-width"],
5488
+ "label": [1]
5489
+ },
5490
+ "$listeners$": undefined,
5491
+ "$lazyBundleId$": "-",
5492
+ "$attrsToReflect$": []
5493
+ }; }
5494
+ }
5495
+
5443
5496
  class DropdownManager {
5444
5497
  static instance;
5445
5498
  activeDropdowns = new Set();
@@ -5756,11 +5809,11 @@ class SdSelect extends BaseDropdownEvent {
5756
5809
  '--select-width': this.width || '200px',
5757
5810
  '--select-dropdown-height': this.dropdownHeight || '260px',
5758
5811
  };
5759
- return (hAsync(Host, { key: '6e627f90abe0ae0a8f955918ccd2513a03b81c7a', style: style }, hAsync("div", { key: 'a0e8e608384d7dd343ba65f34a37d28ebe99cae0', class: {
5812
+ return (hAsync(Host, { key: '51133eafc1c4b8cb79845c3b36abeb933d92bd9d', style: style }, hAsync("div", { key: 'cdd8fb1798088a7ea4e44ce921dcc652a455cc39', class: {
5760
5813
  'sd-select': true,
5761
5814
  'sd-select--open': this.isOpen,
5762
5815
  'sd-select--disabled': this.disabled,
5763
- }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: 'a313b94c77d3649b35ba47cc29e364e26902d70f', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
5816
+ }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: '6e09cfbbb0807cbeff40a7dfe0a9d037a31e58bf', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
5764
5817
  }
5765
5818
  renderLabel(label) {
5766
5819
  if (!label)
@@ -6037,11 +6090,11 @@ class SdSelectMultiple extends BaseDropdownEvent {
6037
6090
  '--select-width': this.width || '200px',
6038
6091
  '--select-dropdown-height': this.dropdownHeight || '260px',
6039
6092
  };
6040
- return (hAsync(Host, { key: '8f2df6c0a3b6e8d2300a77bd84b993101824cae1', style: style }, hAsync("div", { key: '9587ca5bb88d7767b5f48344063deef220964027', class: {
6093
+ return (hAsync(Host, { key: 'c569bb885003048b6ec22bfb0688c671a70a27d5', style: style }, hAsync("div", { key: '94b43199502f44f7d663981c320696c6e8cf968f', class: {
6041
6094
  'sd-select-multiple': true,
6042
6095
  'sd-select-multiple--open': this.isOpen,
6043
6096
  'sd-select-multiple--disabled': this.disabled,
6044
- }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: 'f00fa7d7c2cbc6f751cc89411b1d77037a950e3e', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
6097
+ }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), hAsync("div", { key: 'd4fd6929b78add118c01d7b52c1c1e0be9867924', class: "sd-select-multiple__container" }, this.renderTrigger(), this.renderDropdown()))));
6045
6098
  }
6046
6099
  renderLabel(label) {
6047
6100
  if (!label)
@@ -6129,6 +6182,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
6129
6182
  clearable = false;
6130
6183
  searchable = false;
6131
6184
  useCheckbox = false;
6185
+ useAll = false;
6132
6186
  // props - custom styles
6133
6187
  containerStyle = {};
6134
6188
  triggerStyle = {};
@@ -6254,6 +6308,16 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
6254
6308
  this.dropDownShow?.emit({ isOpen: this.isOpen });
6255
6309
  }
6256
6310
  };
6311
+ handleAllOptionClick = (detail) => {
6312
+ if (detail.isSelected) {
6313
+ // 이미 선택된 옵션인 경우, 선택 해제
6314
+ this.value = [];
6315
+ }
6316
+ else {
6317
+ // 새로운 옵션 선택
6318
+ this.value = [...this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled)];
6319
+ }
6320
+ };
6257
6321
  handleOptionClick = (detail) => {
6258
6322
  const { option, event } = detail;
6259
6323
  event.stopPropagation();
@@ -6392,6 +6456,19 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
6392
6456
  totalCount: children.length,
6393
6457
  };
6394
6458
  }
6459
+ isAllOptionsSelected() {
6460
+ const selectedOption = this.getSelectedOption();
6461
+ return (selectedOption.length === this.options.filter(opt => !opt.disabled && opt.type === 'item').length);
6462
+ }
6463
+ getTriggerLabel() {
6464
+ const selectedOption = this.getSelectedOption();
6465
+ if (!selectedOption)
6466
+ return '선택';
6467
+ if (selectedOption.length === 0)
6468
+ return this.placeholder;
6469
+ const isAllChecked = this.isAllOptionsSelected();
6470
+ return isAllChecked ? '전체' : selectedOption.map(option => option.label).join(', ');
6471
+ }
6395
6472
  closeDropdown() {
6396
6473
  this.isOpen = false;
6397
6474
  }
@@ -6419,11 +6496,11 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
6419
6496
  '--select-width': this.width || '200px',
6420
6497
  '--select-dropdown-height': this.dropdownHeight || '260px',
6421
6498
  };
6422
- return (hAsync(Host, { key: '25cb748a149def1b633f7e6baf77e55a57c6d43b', style: style }, hAsync("div", { key: '14fabf19488e6370612eb3f29fb97d0077ddb0f0', class: {
6499
+ return (hAsync(Host, { key: '825a5e69af88a908c41c0c82bfb5fed4afeb9f5f', style: style }, hAsync("div", { key: '81827e04db3de7194162594db4d918b37e7bd3a2', class: {
6423
6500
  'sd-select-multiple-group': true,
6424
6501
  'sd-select-multiple-group--open': this.isOpen,
6425
6502
  'sd-select-multiple-group--disabled': this.disabled,
6426
- }, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: '4f762e4ab93da2cb1e684d85af9c3abf5f1304e4', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
6503
+ }, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), hAsync("div", { key: '23be24a0f971270b3e449cad4f56699f65716fb0', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
6427
6504
  }
6428
6505
  renderLabel(label, labelStyle) {
6429
6506
  if (!label)
@@ -6432,11 +6509,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
6432
6509
  }
6433
6510
  renderTrigger() {
6434
6511
  const selectedOption = this.getSelectedOption();
6435
- return (hAsync("div", { class: "sd-select-multiple-group__trigger", tabindex: this.disabled ? -1 : 0, onClick: this.handleTriggerClick, style: this.triggerStyle }, hAsync("span", { class: "sd-select-multiple-group__value" }, !selectedOption
6436
- ? '선택'
6437
- : selectedOption.length
6438
- ? selectedOption.map(option => option.label).join(', ')
6439
- : this.placeholder), this.clearable && selectedOption?.length > 0 && !this.disabled && (hAsync("sd-icon", { key: "close-icon", name: "close", size: 10, color: "#888", class: "sd-select-multiple-group__clear", onClick: event => {
6512
+ return (hAsync("div", { class: "sd-select-multiple-group__trigger", tabindex: this.disabled ? -1 : 0, onClick: this.handleTriggerClick, style: this.triggerStyle }, hAsync("span", { class: "sd-select-multiple-group__value" }, this.getTriggerLabel()), this.clearable && selectedOption?.length > 0 && !this.disabled && (hAsync("sd-icon", { key: "close-icon", name: "close", size: 10, color: "#888", class: "sd-select-multiple-group__clear", onClick: event => {
6440
6513
  event.stopPropagation();
6441
6514
  this.value = null;
6442
6515
  } })), hAsync("sd-icon", { key: "arrow-icon", name: "arrowDown", color: "#888", class: {
@@ -6461,14 +6534,15 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
6461
6534
  }, onKeyDown: e => {
6462
6535
  if (e.code === 'Enter')
6463
6536
  e.stopPropagation();
6464
- } }, hAsync("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index) => (hAsync("slot", { name: `option-${option.value}` }, hAsync("sd-select-option-group", { option: option, index: index, isSelected: option.type === 'item'
6537
+ } }, hAsync("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (hAsync(Fragment, null, this.useAll && (hAsync("sd-select-option-group", { option: { label: '전체 선택', value: 'all', type: 'all' }, index: 0, isSelected: this.value?.length ===
6538
+ this.options.filter(opt => !opt.disabled && opt.type === 'item').length, isFocused: this.itemIndex === 0, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => this.handleAllOptionClick(detail), useCheckbox: this.useCheckbox, useIndicator: false })), this.filteredOptions.map((option, index) => (hAsync("slot", { name: `option-${option.value}` }, hAsync("sd-select-option-group", { option: option, index: index, isSelected: option.type === 'item'
6465
6539
  ? this.value?.some(selected => selected.value === option.value)
6466
6540
  : this.isAllChildrenSelected(option), isFocused: index === this.itemIndex, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => {
6467
6541
  if (option.type !== 'item' && !this.useCheckbox) {
6468
6542
  return;
6469
6543
  }
6470
6544
  this.handleOptionClick(detail);
6471
- }, 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))))));
6545
+ }, 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))))));
6472
6546
  }
6473
6547
  static get watchers() { return {
6474
6548
  "value": ["valueChanged"],
@@ -6493,6 +6567,7 @@ class SdSelectMultipleGroup extends BaseDropdownEvent {
6493
6567
  "clearable": [4],
6494
6568
  "searchable": [4],
6495
6569
  "useCheckbox": [4, "use-checkbox"],
6570
+ "useAll": [4, "use-all"],
6496
6571
  "containerStyle": [16],
6497
6572
  "triggerStyle": [16],
6498
6573
  "dropdownStyle": [16],
@@ -6542,7 +6617,7 @@ class SdSelectOption {
6542
6617
  }
6543
6618
  };
6544
6619
  render() {
6545
- return (hAsync(Host, { key: 'f627f75ea5e3765390729eac31e02e78ca084e95' }, hAsync("div", { key: 'ce5f8aa53fb8ae3a3b165c5778aa352a99d0ddf8', class: {
6620
+ return (hAsync(Host, { key: '57acf795fbb642249d9716fc8fa4123f2d939d2b' }, hAsync("div", { key: '6653deafa3142a3bf9b67290dae411c29fc38f41', class: {
6546
6621
  'sd-select__option': true,
6547
6622
  'sd-select__option--selected': this.isSelected,
6548
6623
  'sd-select__option--disabled': !!this.option.disabled,
@@ -6582,7 +6657,7 @@ class SdSelectOption {
6582
6657
  }; }
6583
6658
  }
6584
6659
 
6585
- const sdSelectOptionGroupCss = "sd-select-option-group{display:block;height:fit-content}sd-select-option-group .sd-select__option-group{display:flex;padding:4px 12px;padding-left:28px;font-size:12px;line-height:20px}sd-select-option-group .sd-select__option-group.sd-select__option-group--group:not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup:not(.sd-select__option-group--use-checkbox){cursor:default}sd-select-option-group .sd-select__option-group.sd-select__option-group--group{padding-left:12px;background-color:#f5faff !important;color:#333333 !important;font-weight:700}sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup{padding-left:20px;background-color:#f9f9f9 !important;color:#333333 !important;font-weight:500}sd-select-option-group .sd-select__option-group sd-checkbox__bg{border-color:#888888}sd-select-option-group .sd-select__option-group__label-wrapper{display:flex;width:100%;column-gap:8px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}sd-select-option-group .sd-select__option-group__label-wrapper sd-checkbox{flex-shrink:0}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group-label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group__count-indicator{width:fit-content;flex-shrink:0;font-size:12px;font-weight:500;color:#888888}sd-select-option-group .sd-select__option-group--focused{background-color:#e6f1ff}sd-select-option-group .sd-select__option-group--selected.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group--focused.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox){color:#0075ff;font-weight:700}sd-select-option-group .sd-select__option-group--disabled{color:#aaaaaa;cursor:not-allowed}sd-select-option-group .sd-select__option-group:hover:not(.sd-select__option-group--disabled){background-color:#0075ff;color:white}sd-select-option-group .sd-select__option-group:hover.sd-select__option-group--selected.sd-select__option-group--item sd-checkbox .sd-checkbox__bg{border-color:white !important}";
6660
+ const sdSelectOptionGroupCss = "sd-select-option-group{display:block;height:fit-content}sd-select-option-group .sd-select__option-group{display:flex;padding:4px 12px;padding-left:12px;font-size:12px;line-height:20px;cursor:pointer}sd-select-option-group .sd-select__option-group.sd-select__option-group--group:not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup:not(.sd-select__option-group--use-checkbox){cursor:default !important}sd-select-option-group .sd-select__option-group.sd-select__option-group--group{background-color:#f5faff !important;color:#333333 !important;font-weight:700}sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup{padding-left:20px;background-color:#f9f9f9 !important;color:#333333 !important;font-weight:500}sd-select-option-group .sd-select__option-group.sd-select__option-group--item{padding-left:28px}sd-select-option-group .sd-select__option-group sd-checkbox__bg{border-color:#888888}sd-select-option-group .sd-select__option-group__label-wrapper{display:flex;width:100%;column-gap:8px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}sd-select-option-group .sd-select__option-group__label-wrapper sd-checkbox{flex-shrink:0}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group-label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group__count-indicator{width:fit-content;flex-shrink:0;font-size:12px;font-weight:500;color:#888888}sd-select-option-group .sd-select__option-group--focused{background-color:#e6f1ff}sd-select-option-group .sd-select__option-group--selected.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group--focused.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox){color:#0075ff;font-weight:700}sd-select-option-group .sd-select__option-group--disabled{color:#aaaaaa;cursor:not-allowed}sd-select-option-group .sd-select__option-group:hover:not(.sd-select__option-group--disabled){background-color:#0075ff;color:white}sd-select-option-group .sd-select__option-group:hover.sd-select__option-group--selected:not(.sd-select__option-group--group):not(.sd-select__option-group--subgroup) sd-checkbox .sd-checkbox__bg{border-color:white !important}";
6586
6661
 
6587
6662
  class SdSelectOptionGroup {
6588
6663
  constructor(hostRef) {
@@ -6628,7 +6703,7 @@ class SdSelectOptionGroup {
6628
6703
  }
6629
6704
  };
6630
6705
  render() {
6631
- return (hAsync("div", { key: '6365bd1ae57487d7bbccf25637770aedecc2bc6c', class: {
6706
+ return (hAsync("div", { key: 'ab10e48405e8457f1319518f9790c5dd94d1b5e6', class: {
6632
6707
  'sd-select__option-group': true,
6633
6708
  'sd-select__option-group--selected': !!this.isSelected,
6634
6709
  'sd-select__option-group--disabled': !!this.option.disabled,
@@ -6637,10 +6712,10 @@ class SdSelectOptionGroup {
6637
6712
  'sd-select__option-group--group': this.option.type === 'group',
6638
6713
  'sd-select__option-group--subgroup': this.option.type === 'subgroup',
6639
6714
  'sd-select__option-group--item': this.option.type === 'item',
6640
- }, 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: 'b48606dad43a722f434df8b384e3c92332d59f94', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (hAsync("sd-checkbox", { key: '2c564c5480482ade27ebb0cb066cc3c971d1f8f2', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
6715
+ }, 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: 'e9b0636bc98818aa48b5d486c3e5b4c216b76046', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (hAsync("sd-checkbox", { key: 'b7495da88ddad187588569c64235ccc1697466fe', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
6641
6716
  e.preventDefault();
6642
6717
  this.handleClick(this.option, this.isSelected, e);
6643
- } })), hAsync("span", { key: '2175b4ec10bf631a419f5cfa439e0c24f6ccf5a7', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (hAsync("span", { key: 'bbb57f2a8c00e2bb56a4f6a5b68cb5d09d81d9c7', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
6718
+ } })), hAsync("span", { key: 'f8a51d2ea1a99ae17a1ba79fb6f802f0c2a27be1', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (hAsync("span", { key: 'ee29e4503321462981c6d6fe497d70f271e5f814', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
6644
6719
  }
6645
6720
  static get style() { return sdSelectOptionGroupCss; }
6646
6721
  static get cmpMeta() { return {
@@ -7070,20 +7145,20 @@ class SdTooltip {
7070
7145
  : {
7071
7146
  onClick: () => (this.showTooltip = !this.showTooltip),
7072
7147
  };
7073
- return (hAsync(Fragment, { key: '2a4473864df0253d22d03a7b1512d6261d2c5f1e' }, 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: '48ba8d56f7ee68ac71bd7076c98f8e7081635de5', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, hAsync("div", { key: 'edb64ac6facd530f02a3c663a4d7e728270bb914', class: {
7148
+ return (hAsync(Fragment, { key: '45dbef1d93b082f8fe42c003f997aa80ad297ee5' }, 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: '7357fe6678832a74c567b24e404d14d75a77b13f', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, hAsync("div", { key: '3add41a611cb55fddaae7733b6db9ec996561723', class: {
7074
7149
  'sd-tooltip-menu': true,
7075
7150
  [`sd-tooltip-menu--${this.type}`]: true,
7076
7151
  [`sd-tooltip-menu--${this.placement}`]: true,
7077
7152
  'sd-tooltip-menu--with-close': this.useClose,
7078
7153
  [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
7079
7154
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
7080
- } }, hAsync("i", { key: '2907f18d268eed0d0e70707b1fb113ca1b6ce1a6', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: 'fd6417e7cad6464f5830accca7842f9c2d5431ca', class: {
7155
+ } }, hAsync("i", { key: 'f62cfc386831412cb958da88a41e0487be40d119', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, hAsync(TooltipArrow, { key: 'daab1b1028832d95fb05456b96981cdeb1e31c4e', class: {
7081
7156
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
7082
- } })), hAsync("div", { key: '30e7d57e6bdd47ca5da01c8e94e6d29cc174de58', class: "sd-tooltip-menu__content", ref: el => {
7157
+ } })), hAsync("div", { key: 'ab7ca38aa68cf8279ff0d372651a4e26b217781c', class: "sd-tooltip-menu__content", ref: el => {
7083
7158
  if (el && this.slotContent && !el.hasChildNodes()) {
7084
7159
  el.appendChild(this.slotContent.cloneNode(true));
7085
7160
  }
7086
- } }, !this.slotContent && hAsync("span", { key: '9e6afb40c06db772ed94fd90c73713a1134e2866' }, this.el.textContent)), this.useClose && (hAsync("div", { key: '8679d07e7d2e027f4a96ebaecd64b1fac9ecf503', class: "sd-tooltip-menu__close-button" }, hAsync("button", { key: 'aa018b14eeeb08f872af25d93c0bd36708bf36e8', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '0a0d3c6c246adccdb9b31502f13a1189a0a94554', name: "close", size: "12", color: "#AAAAAA" })))))))));
7161
+ } }, !this.slotContent && hAsync("span", { key: 'f5768e8b7e3033f64797aba77a504d57236e51e3' }, this.el.textContent)), this.useClose && (hAsync("div", { key: '94bdf692fabf190912a64d6051957031b2964ae5', class: "sd-tooltip-menu__close-button" }, hAsync("button", { key: '8826745fb1dab139358bc0d430d622abca333e5e', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, hAsync("sd-icon", { key: '863f114251ec302425224a7385dd23292f7f6340', name: "close", size: "12", color: "#AAAAAA" })))))))));
7087
7162
  }
7088
7163
  static get style() { return sdTooltipCss; }
7089
7164
  static get cmpMeta() { return {
@@ -7258,7 +7333,7 @@ class SdTooltipPortal {
7258
7333
  this.sdClose.emit();
7259
7334
  }
7260
7335
  render() {
7261
- return hAsync("slot", { key: '094d59498ba589963103957db54a7eae9e9771c4' });
7336
+ return hAsync("slot", { key: '96e22fb7cd79afbef7bcb1a9b055e6a2bf54dd76' });
7262
7337
  }
7263
7338
  static get cmpMeta() { return {
7264
7339
  "$flags$": 777,
@@ -7292,6 +7367,7 @@ registerComponents([
7292
7367
  SdPagination,
7293
7368
  SdPopover,
7294
7369
  SdPortal,
7370
+ SdProgress,
7295
7371
  SdSelect,
7296
7372
  SdSelectMultiple,
7297
7373
  SdSelectMultipleGroup,