@sellmate/design-system 0.0.3 → 0.0.5

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 (129) 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-guide.sd-icon.sd-portal.entry.cjs.js.map +1 -1
  4. package/dist/cjs/sd-button_4.cjs.entry.js +7 -7
  5. package/dist/cjs/sd-checkbox.cjs.entry.js +2 -2
  6. package/dist/cjs/sd-checkbox.entry.cjs.js.map +1 -1
  7. package/dist/cjs/sd-date-box_2.cjs.entry.js +4 -4
  8. package/dist/cjs/sd-date-picker.cjs.entry.js +2 -2
  9. package/dist/cjs/sd-date-range-picker.cjs.entry.js +2 -2
  10. package/dist/cjs/sd-pagination_2.cjs.entry.js +4 -4
  11. package/dist/cjs/sd-popover.cjs.entry.js +2 -2
  12. package/dist/cjs/sd-select-option.cjs.entry.js +1 -1
  13. package/dist/cjs/sd-select.cjs.entry.js +2 -2
  14. package/dist/cjs/sd-table.cjs.entry.js +2 -2
  15. package/dist/cjs/sd-tag.cjs.entry.js +1 -1
  16. package/dist/cjs/sd-tooltip-portal.cjs.entry.js +1 -1
  17. package/dist/collection/components/sd-button/sd-button.css +5 -0
  18. package/dist/collection/components/sd-button/sd-button.js +2 -3
  19. package/dist/collection/components/sd-button/sd-button.js.map +1 -1
  20. package/dist/collection/components/sd-checkbox/sd-checkbox.css +2 -0
  21. package/dist/collection/components/sd-checkbox/sd-checkbox.js +2 -3
  22. package/dist/collection/components/sd-checkbox/sd-checkbox.js.map +1 -1
  23. package/dist/collection/components/sd-date-box/sd-date-box.js +2 -2
  24. package/dist/collection/components/sd-date-picker/sd-date-picker.js +2 -2
  25. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
  26. package/dist/collection/components/sd-guide/sd-guide.css +5 -0
  27. package/dist/collection/components/sd-guide/sd-guide.js +5 -9
  28. package/dist/collection/components/sd-guide/sd-guide.js.map +1 -1
  29. package/dist/collection/components/sd-icon/sd-icon.js +1 -1
  30. package/dist/collection/components/sd-input/sd-input.js +2 -2
  31. package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
  32. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  33. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  34. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  35. package/dist/collection/components/sd-select/sd-select.js +2 -2
  36. package/dist/collection/components/sd-table/sd-table.js +2 -2
  37. package/dist/collection/components/sd-tag/sd-tag.js +1 -1
  38. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  39. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
  40. package/dist/components/{p-ru6C2WME.js → p-BNrJPeOI.js} +7 -8
  41. package/dist/components/p-BNrJPeOI.js.map +1 -0
  42. package/dist/components/{p-B9i2YE0t.js → p-BamrFZ7M.js} +5 -5
  43. package/dist/components/{p-B9i2YE0t.js.map → p-BamrFZ7M.js.map} +1 -1
  44. package/dist/components/{p-BYJLcD4q.js → p-BonATi5_.js} +5 -5
  45. package/dist/components/{p-BYJLcD4q.js.map → p-BonATi5_.js.map} +1 -1
  46. package/dist/components/{p-CP07OxFR.js → p-CUIR9Siy.js} +4 -4
  47. package/dist/components/{p-CP07OxFR.js.map → p-CUIR9Siy.js.map} +1 -1
  48. package/dist/components/{p-BCYA4Zc8.js → p-CpJ7YbAE.js} +3 -3
  49. package/dist/components/{p-BCYA4Zc8.js.map → p-CpJ7YbAE.js.map} +1 -1
  50. package/dist/components/{p-C8U-8ibc.js → p-DPjSXfwa.js} +7 -8
  51. package/dist/components/p-DPjSXfwa.js.map +1 -0
  52. package/dist/components/{p-CUaQiV_x.js → p-DRnR5yin.js} +3 -3
  53. package/dist/components/{p-CUaQiV_x.js.map → p-DRnR5yin.js.map} +1 -1
  54. package/dist/components/{p-BYycGbL4.js → p-Da0ln5XA.js} +7 -7
  55. package/dist/components/{p-BYycGbL4.js.map → p-Da0ln5XA.js.map} +1 -1
  56. package/dist/components/{p-_NsXHYCA.js → p-VGi4VXID.js} +5 -5
  57. package/dist/components/{p-_NsXHYCA.js.map → p-VGi4VXID.js.map} +1 -1
  58. package/dist/components/{p-CyxZzPBJ.js → p-tCpgW4SF.js} +3 -3
  59. package/dist/components/{p-CyxZzPBJ.js.map → p-tCpgW4SF.js.map} +1 -1
  60. package/dist/components/sd-button.js +1 -1
  61. package/dist/components/sd-checkbox.js +1 -1
  62. package/dist/components/sd-date-box.js +1 -1
  63. package/dist/components/sd-date-picker.js +6 -6
  64. package/dist/components/sd-date-range-picker.js +6 -6
  65. package/dist/components/sd-guide.js +6 -6
  66. package/dist/components/sd-guide.js.map +1 -1
  67. package/dist/components/sd-icon.js +1 -1
  68. package/dist/components/sd-input.js +1 -1
  69. package/dist/components/sd-pagination.js +1 -1
  70. package/dist/components/sd-popover.js +5 -5
  71. package/dist/components/sd-portal.js +1 -1
  72. package/dist/components/sd-select-option.js +1 -1
  73. package/dist/components/sd-select.js +7 -7
  74. package/dist/components/sd-table.js +8 -8
  75. package/dist/components/sd-tag.js +1 -1
  76. package/dist/components/sd-tooltip-portal.js +1 -1
  77. package/dist/components/sd-tooltip.js +1 -1
  78. package/dist/design-system/design-system.esm.js +1 -1
  79. package/dist/design-system/{p-2106f2b1.entry.js → p-074da3aa.entry.js} +2 -2
  80. package/dist/design-system/{p-95e7d47f.entry.js → p-1526bba1.entry.js} +2 -2
  81. package/dist/design-system/{p-ae72caf9.entry.js → p-1afb87d7.entry.js} +2 -2
  82. package/dist/design-system/{p-9edcce39.entry.js → p-26b03b36.entry.js} +2 -2
  83. package/dist/design-system/{p-0be303fc.entry.js → p-615224c5.entry.js} +2 -2
  84. package/dist/design-system/p-61722b7c.entry.js +2 -0
  85. package/dist/design-system/p-61722b7c.entry.js.map +1 -0
  86. package/dist/design-system/{p-3d8c249d.entry.js → p-6b2b3225.entry.js} +2 -2
  87. package/dist/design-system/p-75add9e4.entry.js +2 -0
  88. package/dist/design-system/p-75add9e4.entry.js.map +1 -0
  89. package/dist/design-system/{p-af40a2ec.entry.js → p-7bd79f05.entry.js} +2 -2
  90. package/dist/design-system/{p-2d8ef8b7.entry.js → p-bff5660e.entry.js} +2 -2
  91. package/dist/design-system/{p-9e1abc28.entry.js → p-f2a4ad75.entry.js} +2 -2
  92. package/dist/design-system/{p-3ec8c5aa.entry.js → p-f87fcbac.entry.js} +2 -2
  93. package/dist/design-system/sd-button.sd-guide.sd-icon.sd-portal.entry.esm.js.map +1 -1
  94. package/dist/design-system/sd-checkbox.entry.esm.js.map +1 -1
  95. package/dist/esm/design-system.js +1 -1
  96. package/dist/esm/loader.js +1 -1
  97. package/dist/esm/sd-button.sd-guide.sd-icon.sd-portal.entry.js.map +1 -1
  98. package/dist/esm/sd-button_4.entry.js +7 -7
  99. package/dist/esm/sd-checkbox.entry.js +3 -3
  100. package/dist/esm/sd-checkbox.entry.js.map +1 -1
  101. package/dist/esm/sd-date-box_2.entry.js +4 -4
  102. package/dist/esm/sd-date-picker.entry.js +2 -2
  103. package/dist/esm/sd-date-range-picker.entry.js +2 -2
  104. package/dist/esm/sd-pagination_2.entry.js +4 -4
  105. package/dist/esm/sd-popover.entry.js +2 -2
  106. package/dist/esm/sd-select-option.entry.js +1 -1
  107. package/dist/esm/sd-select.entry.js +2 -2
  108. package/dist/esm/sd-table.entry.js +2 -2
  109. package/dist/esm/sd-tag.entry.js +1 -1
  110. package/dist/esm/sd-tooltip-portal.entry.js +1 -1
  111. package/dist/types/components/sd-guide/sd-guide.d.ts +1 -3
  112. package/dist/types/components.d.ts +2 -2
  113. package/package.json +2 -2
  114. package/dist/components/p-C8U-8ibc.js.map +0 -1
  115. package/dist/components/p-ru6C2WME.js.map +0 -1
  116. package/dist/design-system/p-40f06495.entry.js +0 -2
  117. package/dist/design-system/p-40f06495.entry.js.map +0 -1
  118. package/dist/design-system/p-bda0d32b.entry.js +0 -2
  119. package/dist/design-system/p-bda0d32b.entry.js.map +0 -1
  120. /package/dist/design-system/{p-2106f2b1.entry.js.map → p-074da3aa.entry.js.map} +0 -0
  121. /package/dist/design-system/{p-95e7d47f.entry.js.map → p-1526bba1.entry.js.map} +0 -0
  122. /package/dist/design-system/{p-ae72caf9.entry.js.map → p-1afb87d7.entry.js.map} +0 -0
  123. /package/dist/design-system/{p-9edcce39.entry.js.map → p-26b03b36.entry.js.map} +0 -0
  124. /package/dist/design-system/{p-0be303fc.entry.js.map → p-615224c5.entry.js.map} +0 -0
  125. /package/dist/design-system/{p-3d8c249d.entry.js.map → p-6b2b3225.entry.js.map} +0 -0
  126. /package/dist/design-system/{p-af40a2ec.entry.js.map → p-7bd79f05.entry.js.map} +0 -0
  127. /package/dist/design-system/{p-2d8ef8b7.entry.js.map → p-bff5660e.entry.js.map} +0 -0
  128. /package/dist/design-system/{p-9e1abc28.entry.js.map → p-f2a4ad75.entry.js.map} +0 -0
  129. /package/dist/design-system/{p-3ec8c5aa.entry.js.map → p-f87fcbac.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { h } from "@stencil/core";
1
+ import { h, Host } from "@stencil/core";
2
2
  import { resolveColor } from "../../utils/color";
3
3
  const ICON_SIZES = {
4
4
  xs: 12,
@@ -50,10 +50,9 @@ export class SdButton {
50
50
  const buttonClasses = this.getButtonClasses();
51
51
  // 유틸로 색상 키 -> HEX 매핑 (없으면 원본 그대로)
52
52
  const resolvedColor = resolveColor(this.color);
53
- return (h("button", { key: '141a9b5faad4e3201cd213ac8d083d1619da8f3a', class: buttonClasses, type: this.type, disabled: this.disabled, onClick: this.handleClick, style: { '--button-color': resolvedColor, ...this.buttonStyle } }, h("div", { key: '5d00b000552539b9396ff472d693726fd9527e7f', class: "sd-button__content" }, this.icon && (h("sd-icon", { key: 'a3b1b9b5e2db53cff6f004fdd4d85c9e06ff9af4', class: "sd-button__icon sd-button__icon--left", name: this.icon, size: this.iconSize ? this.iconSize : ICON_SIZES[this.size], color: this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor })), this.label && h("div", { key: 'f40e01da25a5a7f8f6e6b0de805f0af8269c5413', class: "sd-button__label" }, this.label), this.iconRight && (h("sd-icon", { key: '3fb38d666bbd6619a59266dafb1706c1e79dbc25', class: "sd-button__icon sd-button__icon--right", name: this.iconRight, size: ICON_SIZES[this.size], color: this.variant === 'primary' ? '#fff' : resolvedColor })))));
53
+ return (h(Host, { key: '5fdb366b66bbb66b6481bb111da15441d7d42a3e' }, h("button", { key: 'c5e82af18ca5057cbf19802f69eb1b67a2c8b9dc', class: buttonClasses, type: this.type, disabled: this.disabled, onClick: this.handleClick, style: { '--button-color': resolvedColor, ...this.buttonStyle } }, h("div", { key: 'd6972c4ba6d3b601681b9514431142398b35d798', class: "sd-button__content" }, this.icon && (h("sd-icon", { key: '30e8c5d94f917f3d8f2c0a4211eb3685c1a1499b', class: "sd-button__icon sd-button__icon--left", name: this.icon, size: this.iconSize ? this.iconSize : ICON_SIZES[this.size], color: this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor })), this.label && h("div", { key: '5c69631080667f2945b10734d51d9aaf09cb8128', class: "sd-button__label" }, this.label), this.iconRight && (h("sd-icon", { key: 'b720a86f44ca4c4f8c3a14991028e3e3582d842f', class: "sd-button__icon sd-button__icon--right", name: this.iconRight, size: ICON_SIZES[this.size], color: this.variant === 'primary' ? '#fff' : resolvedColor }))))));
54
54
  }
55
55
  static get is() { return "sd-button"; }
56
- static get encapsulation() { return "shadow"; }
57
56
  static get originalStyleUrls() {
58
57
  return {
59
58
  "$": ["sd-button.scss"]
@@ -1 +1 @@
1
- {"version":3,"file":"sd-button.js","sourceRoot":"","sources":["../../../src/components/sd-button/sd-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, Event, EventEmitter } from '@stencil/core';\r\nimport { resolveColor } from '../../utils/color';\r\n\r\nexport type ButtonVariant = 'primary' | 'outline' | 'ghost';\r\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\r\n\r\nconst ICON_SIZES: { [key in ButtonSize]: number } = {\r\n xs: 12,\r\n sm: 16,\r\n md: 20,\r\n lg: 24,\r\n};\r\n\r\n@Component({\r\n tag: 'sd-button',\r\n styleUrl: 'sd-button.scss',\r\n shadow: true,\r\n})\r\nexport class SdButton {\r\n @Element() el!: HTMLElement;\r\n\r\n @Prop() variant?: ButtonVariant = 'primary';\r\n @Prop() size: ButtonSize = 'sm';\r\n @Prop() color: string = '#025497';\r\n @Prop() label: string = '';\r\n @Prop() disabled: boolean = false;\r\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\r\n @Prop() icon?: IconName;\r\n @Prop() iconColor?: string;\r\n @Prop() iconSize?: number;\r\n @Prop() iconRight?: IconName;\r\n @Prop() noHover: boolean = false;\r\n\r\n @Prop() buttonStyle: StyleProps = {};\r\n @Prop() iconStyle: StyleProps = {};\r\n\r\n @Event() sdClick!: EventEmitter<MouseEvent>;\r\n\r\n private handleClick = (event: MouseEvent) => {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return;\r\n }\r\n this.sdClick.emit(event);\r\n };\r\n\r\n private getButtonClasses(): string {\r\n const classes = ['sd-button'];\r\n\r\n classes.push(`sd-button--${this.variant}`);\r\n classes.push(`sd-button--${this.size}`);\r\n classes.push(`sd-button--color-${this.color}`);\r\n\r\n if (this.disabled) {\r\n classes.push('sd-button--disabled');\r\n }\r\n\r\n if (!this.label && (this.icon || this.iconRight)) {\r\n classes.push('sd-button--icon-only');\r\n }\r\n\r\n if (this.noHover) {\r\n classes.push('sd-button--no-hover');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n render() {\r\n const buttonClasses = this.getButtonClasses();\r\n // 유틸로 색상 키 -> HEX 매핑 (없으면 원본 그대로)\r\n const resolvedColor = resolveColor(this.color);\r\n\r\n return (\r\n <button\r\n class={buttonClasses}\r\n type={this.type}\r\n disabled={this.disabled}\r\n onClick={this.handleClick}\r\n style={{ '--button-color': resolvedColor, ...this.buttonStyle }}\r\n >\r\n <div class=\"sd-button__content\">\r\n {this.icon && (\r\n <sd-icon\r\n class=\"sd-button__icon sd-button__icon--left\"\r\n name={this.icon}\r\n size={this.iconSize ? this.iconSize : ICON_SIZES[this.size!]}\r\n color={this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor}\r\n ></sd-icon>\r\n )}\r\n\r\n {this.label && <div class=\"sd-button__label\">{this.label}</div>}\r\n\r\n {this.iconRight && (\r\n <sd-icon\r\n class=\"sd-button__icon sd-button__icon--right\"\r\n name={this.iconRight}\r\n size={ICON_SIZES[this.size!]}\r\n color={this.variant === 'primary' ? '#fff' : resolvedColor}\r\n ></sd-icon>\r\n )}\r\n </div>\r\n </button>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"sd-button.js","sourceRoot":"","sources":["../../../src/components/sd-button/sd-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, Event, EventEmitter, Host } from '@stencil/core';\r\nimport { resolveColor } from '../../utils/color';\r\n\r\nexport type ButtonVariant = 'primary' | 'outline' | 'ghost';\r\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\r\n\r\nconst ICON_SIZES: { [key in ButtonSize]: number } = {\r\n xs: 12,\r\n sm: 16,\r\n md: 20,\r\n lg: 24,\r\n};\r\n\r\n@Component({\r\n tag: 'sd-button',\r\n styleUrl: 'sd-button.scss',\r\n})\r\nexport class SdButton {\r\n @Element() el!: HTMLElement;\r\n\r\n @Prop() variant?: ButtonVariant = 'primary';\r\n @Prop() size: ButtonSize = 'sm';\r\n @Prop() color: string = '#025497';\r\n @Prop() label: string = '';\r\n @Prop() disabled: boolean = false;\r\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\r\n @Prop() icon?: IconName;\r\n @Prop() iconColor?: string;\r\n @Prop() iconSize?: number;\r\n @Prop() iconRight?: IconName;\r\n @Prop() noHover: boolean = false;\r\n\r\n @Prop() buttonStyle: StyleProps = {};\r\n @Prop() iconStyle: StyleProps = {};\r\n\r\n @Event() sdClick!: EventEmitter<MouseEvent>;\r\n\r\n private handleClick = (event: MouseEvent) => {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return;\r\n }\r\n this.sdClick.emit(event);\r\n };\r\n\r\n private getButtonClasses(): string {\r\n const classes = ['sd-button'];\r\n\r\n classes.push(`sd-button--${this.variant}`);\r\n classes.push(`sd-button--${this.size}`);\r\n classes.push(`sd-button--color-${this.color}`);\r\n\r\n if (this.disabled) {\r\n classes.push('sd-button--disabled');\r\n }\r\n\r\n if (!this.label && (this.icon || this.iconRight)) {\r\n classes.push('sd-button--icon-only');\r\n }\r\n\r\n if (this.noHover) {\r\n classes.push('sd-button--no-hover');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n render() {\r\n const buttonClasses = this.getButtonClasses();\r\n // 유틸로 색상 키 -> HEX 매핑 (없으면 원본 그대로)\r\n const resolvedColor = resolveColor(this.color);\r\n\r\n return (\r\n <Host>\r\n <button\r\n class={buttonClasses}\r\n type={this.type}\r\n disabled={this.disabled}\r\n onClick={this.handleClick}\r\n style={{ '--button-color': resolvedColor, ...this.buttonStyle }}\r\n >\r\n <div class=\"sd-button__content\">\r\n {this.icon && (\r\n <sd-icon\r\n class=\"sd-button__icon sd-button__icon--left\"\r\n name={this.icon}\r\n size={this.iconSize ? this.iconSize : ICON_SIZES[this.size!]}\r\n color={\r\n this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor\r\n }\r\n ></sd-icon>\r\n )}\r\n\r\n {this.label && <div class=\"sd-button__label\">{this.label}</div>}\r\n\r\n {this.iconRight && (\r\n <sd-icon\r\n class=\"sd-button__icon sd-button__icon--right\"\r\n name={this.iconRight}\r\n size={ICON_SIZES[this.size!]}\r\n color={this.variant === 'primary' ? '#fff' : resolvedColor}\r\n ></sd-icon>\r\n )}\r\n </div>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -1,4 +1,6 @@
1
1
  :host {
2
+ display: inline-block;
3
+ height: fit-content;
2
4
  line-height: 0;
3
5
  }
4
6
 
@@ -1,4 +1,4 @@
1
- import { h } from "@stencil/core";
1
+ import { h, Host, } from "@stencil/core";
2
2
  export class SdCheckbox {
3
3
  el;
4
4
  /** 현재 선택 상태 또는 배열 형태의 값 */
@@ -60,10 +60,9 @@ export class SdCheckbox {
60
60
  this.sdChange.emit(newValue);
61
61
  };
62
62
  render() {
63
- return (h("label", { key: '9c03212ed43f1b2d654b5bc51f3b3395117726d1', class: this.getCheckboxClasses() }, h("input", { key: '767ebdd2cd5cfc55a87d08238deb2097e840d15b', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onChange: this.handleChange }), h("div", { key: '7ff4281881ab6bf2435eb20c267913972c17de74', class: "sd-checkbox__bg", style: this.checkboxStyle }, this.isChecked ? h("sd-icon", { name: "check", size: 12, color: this.disabled ? '#888888' : 'white' }) : null), this.label && h("span", { key: 'f1ab9b7a6c2e1107229e485cb22eba652a50c56d', class: "sd-checkbox__label" }, this.label)));
63
+ return (h(Host, { key: '547fee4a8d2639651a4887056fa72fc0cdaa90dd' }, h("label", { key: '975cdc3b10bbbf36f979f7df0f38d02fef3f3d7f', class: this.getCheckboxClasses() }, h("input", { key: '82c70897b2f4659d709f154f4ab42d14c799da29', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onChange: this.handleChange }), h("div", { key: 'ef39406a7b3a1d3232324dd62f7362814fa74089', class: "sd-checkbox__bg", style: this.checkboxStyle }, this.isChecked ? (h("sd-icon", { name: "check", size: 12, color: this.disabled ? '#888888' : 'white' })) : null), this.label && h("span", { key: '183c72be55f35791a22213ce3d7f91305892df9f', class: "sd-checkbox__label" }, this.label))));
64
64
  }
65
65
  static get is() { return "sd-checkbox"; }
66
- static get encapsulation() { return "shadow"; }
67
66
  static get originalStyleUrls() {
68
67
  return {
69
68
  "$": ["sd-checkbox.scss"]
@@ -1 +1 @@
1
- {"version":3,"file":"sd-checkbox.js","sourceRoot":"","sources":["../../../src/components/sd-checkbox/sd-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, Event, EventEmitter, State, Watch } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'sd-checkbox',\r\n styleUrl: 'sd-checkbox.scss',\r\n shadow: true,\r\n})\r\nexport class SdCheckbox {\r\n @Element() el!: HTMLElement;\r\n\r\n /** 현재 선택 상태 또는 배열 형태의 값 */\r\n @Prop() checked: any[] | any = false;\r\n\r\n /** 배열 모드에서의 개별 값 */\r\n @Prop() val?: any;\r\n\r\n /** 비활성화 여부 */\r\n @Prop() disabled: boolean = false;\r\n\r\n /** 표시할 라벨 텍스트 */\r\n @Prop() label: string = '';\r\n\r\n @Prop() checkboxStyle: StyleProps = {};\r\n\r\n /** 내부 체크 상태 */\r\n @State() private isChecked: boolean = false;\r\n\r\n /** 값 변경 이벤트 */\r\n @Event() sdChange!: EventEmitter<any | any[]>;\r\n\r\n componentWillLoad() {\r\n this.updateCheckedState(this.checked);\r\n }\r\n\r\n @Watch('checked')\r\n watchValueHandler(newValue: any | any[]) {\r\n this.updateCheckedState(newValue);\r\n }\r\n\r\n private getCheckboxClasses(): string {\r\n const classes = ['sd-checkbox', `sd-checkbox--${this.isChecked ? 'checked' : 'unchecked'}`];\r\n\r\n if (this.disabled) {\r\n classes.push('sd-checkbox--disabled');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private updateCheckedState(value: any | any[]) {\r\n if (typeof value === 'boolean') {\r\n this.isChecked = value;\r\n } else if (Array.isArray(value)) {\r\n this.isChecked = this.val !== undefined && value.includes(this.val);\r\n } else {\r\n this.isChecked = false;\r\n }\r\n }\r\n\r\n private handleChange = () => {\r\n if (this.disabled) return;\r\n\r\n let newValue: any | any[];\r\n\r\n if (typeof this.checked === 'boolean') {\r\n newValue = !this.checked;\r\n } else if (Array.isArray(this.checked)) {\r\n if (this.val === undefined) {\r\n console.warn('A \"val\" property is required when using an array for the \"value\" property.');\r\n return;\r\n }\r\n\r\n const valueSet = new Set(this.checked);\r\n valueSet.has(this.val) ? valueSet.delete(this.val) : valueSet.add(this.val);\r\n newValue = Array.from(valueSet);\r\n } else {\r\n newValue = !this.isChecked;\r\n }\r\n\r\n this.sdChange.emit(newValue);\r\n };\r\n\r\n render() {\r\n return (\r\n <label class={this.getCheckboxClasses()}>\r\n <input type=\"checkbox\" checked={this.isChecked} disabled={this.disabled} onChange={this.handleChange} />\r\n <div class=\"sd-checkbox__bg\" style={this.checkboxStyle}>{this.isChecked ? <sd-icon name=\"check\" size={12} color={this.disabled ? '#888888' : 'white'} /> : null}</div>\r\n {this.label && <span class=\"sd-checkbox__label\">{this.label}</span>}\r\n </label>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"sd-checkbox.js","sourceRoot":"","sources":["../../../src/components/sd-checkbox/sd-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component,\r\n Prop,\r\n h,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Watch,\r\n Host,\r\n} from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'sd-checkbox',\r\n styleUrl: 'sd-checkbox.scss',\r\n})\r\nexport class SdCheckbox {\r\n @Element() el!: HTMLElement;\r\n\r\n /** 현재 선택 상태 또는 배열 형태의 값 */\r\n @Prop() checked: any[] | any = false;\r\n\r\n /** 배열 모드에서의 개별 값 */\r\n @Prop() val?: any;\r\n\r\n /** 비활성화 여부 */\r\n @Prop() disabled: boolean = false;\r\n\r\n /** 표시할 라벨 텍스트 */\r\n @Prop() label: string = '';\r\n\r\n @Prop() checkboxStyle: StyleProps = {};\r\n\r\n /** 내부 체크 상태 */\r\n @State() private isChecked: boolean = false;\r\n\r\n /** 값 변경 이벤트 */\r\n @Event() sdChange!: EventEmitter<any | any[]>;\r\n\r\n componentWillLoad() {\r\n this.updateCheckedState(this.checked);\r\n }\r\n\r\n @Watch('checked')\r\n watchValueHandler(newValue: any | any[]) {\r\n this.updateCheckedState(newValue);\r\n }\r\n\r\n private getCheckboxClasses(): string {\r\n const classes = ['sd-checkbox', `sd-checkbox--${this.isChecked ? 'checked' : 'unchecked'}`];\r\n\r\n if (this.disabled) {\r\n classes.push('sd-checkbox--disabled');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private updateCheckedState(value: any | any[]) {\r\n if (typeof value === 'boolean') {\r\n this.isChecked = value;\r\n } else if (Array.isArray(value)) {\r\n this.isChecked = this.val !== undefined && value.includes(this.val);\r\n } else {\r\n this.isChecked = false;\r\n }\r\n }\r\n\r\n private handleChange = () => {\r\n if (this.disabled) return;\r\n\r\n let newValue: any | any[];\r\n\r\n if (typeof this.checked === 'boolean') {\r\n newValue = !this.checked;\r\n } else if (Array.isArray(this.checked)) {\r\n if (this.val === undefined) {\r\n console.warn('A \"val\" property is required when using an array for the \"value\" property.');\r\n return;\r\n }\r\n\r\n const valueSet = new Set(this.checked);\r\n valueSet.has(this.val) ? valueSet.delete(this.val) : valueSet.add(this.val);\r\n newValue = Array.from(valueSet);\r\n } else {\r\n newValue = !this.isChecked;\r\n }\r\n\r\n this.sdChange.emit(newValue);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <label class={this.getCheckboxClasses()}>\r\n <input\r\n type=\"checkbox\"\r\n checked={this.isChecked}\r\n disabled={this.disabled}\r\n onChange={this.handleChange}\r\n />\r\n <div class=\"sd-checkbox__bg\" style={this.checkboxStyle}>\r\n {this.isChecked ? (\r\n <sd-icon name=\"check\" size={12} color={this.disabled ? '#888888' : 'white'} />\r\n ) : null}\r\n </div>\r\n {this.label && <span class=\"sd-checkbox__label\">{this.label}</span>}\r\n </label>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -23,7 +23,7 @@ export class SdDateBox {
23
23
  this.sdMouseOver?.emit(this.date);
24
24
  }
25
25
  render() {
26
- return (h(Host, { key: 'f49a2385f294a77b6fcfd3ae03b269272f865892', role: "button", "aria-disabled": this.disabled ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
26
+ return (h(Host, { key: '992ba0be8b908a910f2d572c665fce75570e7956', role: "button", "aria-disabled": this.disabled ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
27
27
  'sd-date-box': true,
28
28
  'sd-hoverable': !this.disabled || !this.selected || this.type === '',
29
29
  'sd-date-box--disabled': this.disabled,
@@ -34,7 +34,7 @@ export class SdDateBox {
34
34
  'sd-date-box--in-range': this.inRange,
35
35
  'sd-date-box--type-start': this.type === 'start',
36
36
  'sd-date-box--type-end': this.type === 'end',
37
- }, onClick: () => this.handleClickDate(), onMouseOver: () => this.handleHoverDate() }, h("div", { key: 'cb9c6404ee12dc7e05b55a3b2194117e5bf5c8f8', class: "sd-date-box__content" }, h("div", { key: 'fe976f21ddd6119452f66c5c71bbd486c2d1ac64', class: "sd-date-box__label" }, this.date))));
37
+ }, onClick: () => this.handleClickDate(), onMouseOver: () => this.handleHoverDate() }, h("div", { key: '5673658e4532547f57e86babfce2ac9c8399cfa7', class: "sd-date-box__content" }, h("div", { key: '1e978a0bbf7a1f3e8d13d541d5d75e1b8568ddd8', class: "sd-date-box__label" }, this.date))));
38
38
  }
39
39
  static get is() { return "sd-date-box"; }
40
40
  static get encapsulation() { return "scoped"; }
@@ -74,9 +74,9 @@ export class SdDatePicker {
74
74
  this.isOpen = false;
75
75
  };
76
76
  render() {
77
- return (h(Host, { key: 'dbd67742832c1f9678485a6fafe793b8c19395f2', class: "sd-date-picker" }, h("sd-input", { key: '26b387b4e8c33d170635fdb0125f0894a12abfa6', ref: el => (this.inputEl = el), value: this.date, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
77
+ return (h(Host, { key: '7f25fe19940087b6a8d4ec2639dd84833034bc72', class: "sd-date-picker" }, h("sd-input", { key: 'c2d0eeba3dcb13142a38d29943eb71911cb9fd86', ref: el => (this.inputEl = el), value: this.date, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
78
78
  margin: '0 0 0 8px',
79
- }, onClick: () => this.openMenu() }, h("sd-icon", { key: '3c65f96a7c80f2dbf4649d5618cdf519114e23e8', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: 'b78942513d1c64f769459278590a4b87f0775526', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '626fa36202c8c5f2a751ac9bf6abed5e0381723f', class: "sd-date-picker__menu" }, h("div", { key: 'bd59b131f8f93d302150f36fb4c2310ef7cdfc9f', class: "sd-date-picker__header" }, h("div", { key: '3dc8d16ecf2876d0769b9adcda02d4fe836f3268', class: "year-nav" }, h("button", { key: 'c6f3df9d9544bce27b85022752cc5eaf9587ed39', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, h("sd-icon", { key: '1d8f98c51edee251cac8bba943a343f975b8a2bd', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: '61bd8e35d4c2a9df14a639dd3c819c7ed76dbeaf', class: "year-nav__current" }, this.currentYear), h("button", { key: 'd25371e346c10874320eabb4676bc0c6da7c012c', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, h("sd-icon", { key: '5f5bd27d9913d10d149519ddad9897c85112c78a', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '6d7e4d48f57505a2222c05045eb1cb06c2300d8b', class: "month-nav" }, h("button", { key: '63f6797933af76b5878367b736f23f147d6ee156', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, h("sd-icon", { key: 'feb2ec0c59c4736c513583c0b5e402ff5a543a4f', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: 'bcc888f53e0d1f820597c0dd11d79742551aaa61', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), h("button", { key: 'c5d24783ef37dc24eaba8097836597b7b65afbf8', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, h("sd-icon", { key: '674211cfa9f75d11e03a18fd3c5565f474315f0a', name: "arrowRight", size: "12", color: "#CCCCCC" })))), h("div", { key: 'c81c81032ea7272a4fb131c5e12dca6331874399', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("div", { key: day, class: "day" }, day)))), h("div", { key: '5a7f23318c89e9b9e644de4dd675d51fb222aa93', class: "sd-date-picker__body" }, [
79
+ }, onClick: () => this.openMenu() }, h("sd-icon", { key: '86660591177b91d9ea9463619631af973eb94b8e', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: '9f38b78302db746379968d10905be4cad44219e9', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '295539c5374bddc50b6947c7e451ad5c563fe94a', class: "sd-date-picker__menu" }, h("div", { key: '43f91099cd421ee1d11433579cb0db7ae46c381e', class: "sd-date-picker__header" }, h("div", { key: 'fdeb6f059903e81cf18f917ef076f15f040f746b', class: "year-nav" }, h("button", { key: 'a539fa46145bde41dd4b17da48b1a80ee62cf97e', type: "button", name: "prev-year", title: "Previous Year", onClick: () => this.setCurrentYear(this.currentYear - 1) }, h("sd-icon", { key: 'fc4cde6dcb1b536bf86b58576fd6c32048c13e61', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: '6d9d60a0d6f57c82aa94422b2e1096ab8cf60322', class: "year-nav__current" }, this.currentYear), h("button", { key: '047cc4c2ac9707f632ac2987cfc3ed7aa0a23486', type: "button", name: "next-year", title: "Next Year", onClick: () => this.setCurrentYear(this.currentYear + 1) }, h("sd-icon", { key: '37bbc1ec4412806ecd97a06e025227f0f83facd8', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '6a8d98d2a0e49b0fc9d07eb098d9d8e6dc4f705a', class: "month-nav" }, h("button", { key: '300151b8e212025f221ef8b4e7c5da32b0fd13ca', type: "button", name: "prev-month", title: "Previous ", onClick: () => this.handleUpdateMonth('prev') }, h("sd-icon", { key: 'b9a5822af1de65d2e79338680143fceeebf8292a', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("span", { key: 'fd3c22b6eb4d10ce0df5097709d55e6426d070a8', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), h("button", { key: '4e8bcb9708a9aec649aa111b705b10c8f485a4d0', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, h("sd-icon", { key: '943df568d382c139e77d5b17bc5f32657b190cbc', name: "arrowRight", size: "12", color: "#CCCCCC" })))), h("div", { key: '8de6da2b112c68ca61197e16ed512013e25ce668', class: "sd-date-picker__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("div", { key: day, class: "day" }, day)))), h("div", { key: '649cfdd71aa7275ff0b3f90e13cadfcd78acff68', class: "sd-date-picker__body" }, [
80
80
  ...this.calendar.prevMonthDays,
81
81
  ...this.calendar.days,
82
82
  ...this.calendar.afterMonthDays,
@@ -137,9 +137,9 @@ export class SdDateRangePicker {
137
137
  this.isOpen = false;
138
138
  };
139
139
  render() {
140
- return (h(Host, { key: '408ebfe4aa4b4efa5954c4ff17b68cdb3f1461dc', class: "sd-date-range-picker" }, h("sd-input", { key: 'd972b04328bcd480c0e894324aa72d6f53dc2d2c', ref: el => (this.inputEl = el), value: `${this.dateRange[0]} ~ ${this.dateRange[1]}`, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
140
+ return (h(Host, { key: '4af937257ba809f3a46e53cbdfd93ed811bff28f', class: "sd-date-range-picker" }, h("sd-input", { key: 'ae47eca04301a2ec14d97e421b663697ecba35e3', ref: el => (this.inputEl = el), value: `${this.dateRange[0]} ~ ${this.dateRange[1]}`, label: this.label, "inside-label": true, readonly: true, disabled: this.disabled, inputClass: "text-center", inputStyle: {
141
141
  margin: '0 0 0 8px',
142
- }, onClick: () => this.openMenu() }, h("sd-icon", { key: 'cab8030f513f8c21a4ce98541d8a151f683dd5ac', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: '85f7c501c761fd65e78ddad2ec7ed0f4495d820b', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '476b0c448249146fbaabd407cbecc6a1661274d1', class: "sd-date-range-picker__menu" }, h("div", { key: '253e49de7d0f59e36e52b1bd56dae17a241be915', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, h("button", { key: 'f883f76c05a2c8566fa5199e6e8baa9732c19a41', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, h("sd-icon", { key: '39a777b3ce984b96eda0bfb62773626385c05e18', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("div", { key: '87086582b252950a153db62876a508466a96c775', class: "header-label" }, this.prevYear), h("button", { key: '155482939ac63554d2d0d959c8055f9357c9bb1b', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, h("sd-icon", { key: 'a18971fa1aa195450bff9d650ef6fee5afe294b4', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '58584b34903ca208b611f27b8639c36edee861f4', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index) => (h(Fragment, null, index === 1 && h("div", { class: "separator" }), h("div", { key: index, class: "calendar-container" }, h("div", { class: "calendar-header" }, h("button", { type: "button", name: "month", title: "Month", class: index === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index === 0 ? 'prev' : 'next') }, h("sd-icon", { name: index === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index === 0
142
+ }, onClick: () => this.openMenu() }, h("sd-icon", { key: '1b146d7f4c2ca35241a74eb2c0eb045c56a3b8ec', slot: "prefix", name: "date", size: "16", color: "#737373", class: "date-icon", onClick: () => this.openMenu() })), this.isOpen && (h("sd-portal", { key: 'f12a79e23e611b34148cbc4477505c5521fc9b99', open: this.isOpen, parentRef: this.inputEl, onSdClose: this.handleClose }, h("div", { key: '19f65644f08c55aca12f20da6ecb93ac2190fd5a', class: "sd-date-range-picker__menu" }, h("div", { key: '02b29d14d319144bcf43f660a2815873b0ad8ba9', class: "sd-date-range-picker__header mb-16pxr flex flex-nowrap items-center justify-center" }, h("button", { key: '77e91e8603595770203d55a25afb5091b3389620', type: "button", name: "prev", title: "Previous", onClick: () => this.setPrevYear(this.prevYear - 1) }, h("sd-icon", { key: '7d17fc7a981ef911f5673976a2a7d6dffb186b60', name: "arrowLeft", size: "12", color: "#CCCCCC" })), h("div", { key: '16e43058070b9fe8f81b975b1be1a8b8b0a64fa6', class: "header-label" }, this.prevYear), h("button", { key: '401d711456467b751094fcb02e6fb5ddc3bde978', type: "button", name: "next", title: "Next", onClick: () => this.setPrevYear(this.prevYear + 1) }, h("sd-icon", { key: '8b8c486b7bd921dc374ae252ca233daa09c854c4', name: "arrowRight", size: "12", color: "#CCCCCC" }))), h("div", { key: '3875858b39253f58781d05fb94f9029ecf70e866', class: "sd-date-range-picker__body" }, [this.prevCalendar, this.nextCalendar].map((calendar, index) => (h(Fragment, null, index === 1 && h("div", { class: "separator" }), h("div", { key: index, class: "calendar-container" }, h("div", { class: "calendar-header" }, h("button", { type: "button", name: "month", title: "Month", class: index === 0 ? 'header-button-prev' : 'header-button-next', onClick: () => this.updateYearMonth(index === 0 ? 'prev' : 'next') }, h("sd-icon", { name: index === 0 ? 'arrowLeft' : 'arrowRight', size: "12", color: "#CCCCCC" })), index === 0
143
143
  ? `${this.prevYear}.${String(this.prevMonth).padStart(2, '0')}`
144
144
  : `${this.nextYear}.${String(this.nextMonth).padStart(2, '0')}`), h("div", { class: "calendar-days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (h("sd-date-box", { key: day, date: day, disabled: true, class: "day" })))), h("div", { class: "calendar-body mt-12pxr grid grid-cols-7 gap-y-8pxr" }, [...calendar.prevMonthDays, ...calendar.days, ...calendar.afterMonthDays].map((day, idx) => (h("sd-date-box", { key: `prev${day}_${idx}`, date: !day ? '' : Number(day), selected: this.dateRange.some(date => date ===
145
145
  this.dateUtil.formatDate(index === 0 ? this.prevYear : this.nextYear, index === 0 ? this.prevMonth : this.nextMonth, Number(day))), type: this.getDateBoxType(this.dateUtil.formatDate(index === 0 ? this.prevYear : this.nextYear, index === 0 ? this.prevMonth : this.nextMonth, Number(day))), isToday: today ===
@@ -1359,6 +1359,11 @@ textarea {
1359
1359
  box-sizing: border-box;
1360
1360
  }
1361
1361
 
1362
+ :host {
1363
+ display: inline-block;
1364
+ height: fit-content;
1365
+ }
1366
+
1362
1367
  .sd-guide__popup {
1363
1368
  position: relative;
1364
1369
  padding: 20px 32px;
@@ -1,5 +1,6 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import colors from "../../styles/color.json";
3
+ // type GuideType = 'help' | 'pdf' | 'youtube' | 'notion' | 'event';
3
4
  export class SdGuide {
4
5
  el;
5
6
  type = 'help';
@@ -66,7 +67,7 @@ export class SdGuide {
66
67
  };
67
68
  render() {
68
69
  const { name: iconName, size: iconSize, color: iconColor } = this.getGuidIcon();
69
- return (h(Host, { key: 'a56286f0027547de784fe294510b3249f7899f15', style: this.getGuideStyle() }, h("sd-button", { key: 'c1db0647448b3830f05b9cd9856f349fc9b3c2ca', ref: el => (this.guideRef = el), class: this.getGuideClasses(), variant: "outline", label: SdGuide.guideTitle[this.type], size: "md", color: "var(--guide-color)", icon: iconName, iconColor: iconColor, iconSize: iconSize, iconStyle: { marginRight: '4px' }, buttonStyle: {
70
+ return (h(Host, { key: '9807832e3e8be682b04adc463099264a940c1a4c', style: this.getGuideStyle() }, h("sd-button", { key: '6247b9b5a3e35265bca22e410b531d71b6563ea4', ref: el => (this.guideRef = el), class: this.getGuideClasses(), variant: "outline", label: SdGuide.guideTitle[this.type], size: "md", color: "var(--guide-color)", icon: iconName, iconColor: iconColor, iconSize: iconSize, iconStyle: { marginRight: '4px' }, buttonStyle: {
70
71
  height: '28px',
71
72
  minHeight: '28px',
72
73
  padding: '4px 12px',
@@ -76,7 +77,7 @@ export class SdGuide {
76
77
  fontSize: '12px',
77
78
  fontWeight: '400',
78
79
  backgroundColor: 'var(--guide-background)',
79
- }, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (h("sd-portal", { key: 'bbd220ae09816df67a7cff96f5a8d7359ea02a0a', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 24] }, h("div", { key: '839444f5533beba6a66a565bd28a59e0663eefef', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, h("sd-button", { key: 'eaf414c9d50d43fc12faab1a03c943b82d054a94', class: "sd-guide__popup__close", icon: "close", color: colors.grey_65, size: "md", variant: "ghost", noHover: true, buttonStyle: { padding: '0px', minHeight: '0px' }, onSdClick: this.closeDropdown }), h("div", { key: 'e3195a06835a8c98a3591e820ef2183446fdc685', class: "sd-guide__popup__header" }, h("sd-icon", { key: '5544db3d1bb4d887cf008b8ee9658ea0b5c5208f', name: "helpOutline", size: 24, color: colors.green_65 }), h("h3", { key: '9492b9846a7b00dd67f01e44c95c19c427e36b52', class: "sd-guide__popup__title" }, this.popupTitle || SdGuide.guideTitle[this.type])), h("ul", { key: 'abf36fa7c8a413c4d26eb8c981badfcbf38989a7', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
80
+ }, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (h("sd-portal", { key: '1a5e0c50e9373db3346fe33c88b7a2774571e567', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 24] }, h("div", { key: 'bcc6f4506104b0cf996b429ef020eb6790f11c55', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, h("sd-button", { key: '305e6d5a2086211c803d38134b191372fa3f0a59', class: "sd-guide__popup__close", icon: "close", color: colors.grey_65, size: "md", variant: "ghost", noHover: true, buttonStyle: { padding: '0px', minHeight: '0px' }, onSdClick: this.closeDropdown }), h("div", { key: 'e9e41101d83c7f29d604ced9cb8d5ab285e57eeb', class: "sd-guide__popup__header" }, h("sd-icon", { key: '49f884e1feed7126342a260bd5f3dcadbc04427d', name: "helpOutline", size: 24, color: colors.green_65 }), h("h3", { key: 'c0a9c4d62c6eb14c9e0df91e837cf542deaa00de', class: "sd-guide__popup__title" }, this.popupTitle || SdGuide.guideTitle[this.type])), h("ul", { key: 'f8fcbb776f0a2f1f72f3314fa9ae816d68f61c28', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
80
81
  }
81
82
  // 현재 2depth까지만 스타일 적용
82
83
  renderListItem(message, depth = 0) {
@@ -111,14 +112,9 @@ export class SdGuide {
111
112
  "type": "string",
112
113
  "mutable": false,
113
114
  "complexType": {
114
- "original": "GuideType",
115
+ "original": "'help' | 'pdf' | 'youtube' | 'notion' | 'event'",
115
116
  "resolved": "\"event\" | \"help\" | \"notion\" | \"pdf\" | \"youtube\"",
116
- "references": {
117
- "GuideType": {
118
- "location": "global",
119
- "id": "global::GuideType"
120
- }
121
- }
117
+ "references": {}
122
118
  },
123
119
  "required": false,
124
120
  "optional": false,
@@ -1 +1 @@
1
- {"version":3,"file":"sd-guide.js","sourceRoot":"","sources":["../../../src/components/sd-guide/sd-guide.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, State, h } from '@stencil/core';\r\nimport colors from '../../styles/color.json';\r\n\r\ntype GuideType = 'help' | 'pdf' | 'youtube' | 'notion' | 'event';\r\n\r\n@Component({\r\n tag: 'sd-guide',\r\n styleUrl: 'sd-guide.scss',\r\n})\r\nexport class SdGuide {\r\n @Element() el!: HTMLElement;\r\n\r\n @Prop() type: GuideType = 'help';\r\n @Prop() popupTitle: string = '';\r\n @Prop() message: string | string[] = '';\r\n @Prop() guideUrl: string = '';\r\n @Prop() popupWidth?: number;\r\n\r\n @State() popupShow: boolean = false;\r\n\r\n private guideRef?: HTMLElement;\r\n\r\n static guideTitle = {\r\n help: '활용 Tip',\r\n pdf: 'PDF Guide',\r\n youtube: 'Video Guide',\r\n notion: '사용 가이드',\r\n event: 'Event Button',\r\n };\r\n\r\n private handleClickGuide = () => {\r\n if (this.type === 'help') {\r\n this.popupShow = !this.popupShow;\r\n return;\r\n }\r\n\r\n if (this.guideUrl) {\r\n window.open(this.guideUrl, '_blank');\r\n }\r\n };\r\n\r\n private getGuideClasses(): string {\r\n const classes = ['sd-guide'];\r\n\r\n classes.push(`sd-guide--${this.type}`);\r\n\r\n if (this.popupShow) classes.push('sd-guide--active');\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private getGuideStyle(): StyleProps {\r\n const styles: StyleProps = {};\r\n\r\n if (this.type === 'help') {\r\n styles['--guide-border'] = this.popupShow ? colors.green_65 : colors.grey_45;\r\n styles['--guide-color'] = this.popupShow ? colors.white : colors.grey_90;\r\n styles['--guide-background'] = this.popupShow ? colors.green_65 : colors.white;\r\n } else {\r\n styles['--guide-border'] = colors.grey_45;\r\n styles['--guide-color'] = colors.grey_90;\r\n styles['--guide-background'] = colors.white;\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n private getGuidIcon(): { name: IconName; size: number; color: string } {\r\n if (this.type === 'pdf') {\r\n return { name: 'pdf', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'youtube') {\r\n return { name: 'youtube', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'notion') {\r\n return { name: 'notion', size: 16, color: colors.black };\r\n } else if (this.type === 'event') {\r\n return { name: 'event', size: 16, color: colors.brilliantblue_70 };\r\n }\r\n\r\n return { name: 'helpOutline', size: 20, color: this.popupShow ? colors.white : colors.green_65 };\r\n }\r\n\r\n closeDropdown = () => {\r\n this.popupShow = false;\r\n };\r\n\r\n render() {\r\n const { name: iconName, size: iconSize, color: iconColor } = this.getGuidIcon();\r\n\r\n return (\r\n <Host style={this.getGuideStyle()}>\r\n <sd-button\r\n ref={el => (this.guideRef = el as unknown as HTMLElement)}\r\n class={this.getGuideClasses()}\r\n variant=\"outline\"\r\n label={SdGuide.guideTitle[this.type]}\r\n size=\"md\"\r\n color=\"var(--guide-color)\"\r\n icon={iconName}\r\n iconColor={iconColor}\r\n iconSize={iconSize}\r\n iconStyle={{ marginRight: '4px' }}\r\n buttonStyle={{\r\n height: '28px',\r\n minHeight: '28px',\r\n padding: '4px 12px',\r\n borderRadius: '16px',\r\n borderColor: 'var(--guide-border)',\r\n color: 'var(--guide-color)',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n backgroundColor: 'var(--guide-background)',\r\n }}\r\n onSdClick={this.handleClickGuide}\r\n />\r\n {this.type === 'help' && this.popupShow && (\r\n <sd-portal\r\n open={this.popupShow}\r\n parentRef={this.guideRef}\r\n onSdClose={this.closeDropdown}\r\n offset={[0, 24]}\r\n >\r\n <div\r\n class=\"sd-guide__popup\"\r\n style={{ width: this.popupWidth ? this.popupWidth + 'px' : '426px' } as any}\r\n >\r\n <sd-button\r\n class=\"sd-guide__popup__close\"\r\n icon=\"close\"\r\n color={colors.grey_65}\r\n size=\"md\"\r\n variant=\"ghost\"\r\n noHover\r\n buttonStyle={{ padding: '0px', minHeight: '0px' }}\r\n onSdClick={this.closeDropdown}\r\n />\r\n <div class=\"sd-guide__popup__header\">\r\n <sd-icon name=\"helpOutline\" size={24} color={colors.green_65} />\r\n <h3 class=\"sd-guide__popup__title\">{this.popupTitle || SdGuide.guideTitle[this.type]}</h3>\r\n </div>\r\n <ul class=\"sd-guide__popup__list\">{this.renderListItem(this.message)}</ul>\r\n </div>\r\n </sd-portal>\r\n )}\r\n </Host>\r\n );\r\n }\r\n\r\n // 현재 2depth까지만 스타일 적용\r\n renderListItem(message: string | string[], depth: number = 0): HTMLElement[] {\r\n const listItems: HTMLElement[] = [];\r\n\r\n if (Array.isArray(message)) {\r\n const depthMsg = message.map(msg => this.renderListItem(msg, depth + 1));\r\n listItems.push(...depthMsg.flat());\r\n } else {\r\n listItems.push(this.renderLi(message, depth));\r\n }\r\n\r\n return listItems;\r\n }\r\n\r\n renderLi = (message: string, depth: number) => {\r\n const listContent = message.replace(/ /gi, '&nbsp;');\r\n return (\r\n <li class={`sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}`}>\r\n <p innerHTML={listContent}></p>\r\n </li>\r\n );\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"sd-guide.js","sourceRoot":"","sources":["../../../src/components/sd-guide/sd-guide.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, State, h } from '@stencil/core';\r\nimport colors from '../../styles/color.json';\r\n\r\n// type GuideType = 'help' | 'pdf' | 'youtube' | 'notion' | 'event';\r\n\r\n@Component({\r\n tag: 'sd-guide',\r\n styleUrl: 'sd-guide.scss',\r\n})\r\nexport class SdGuide {\r\n @Element() el!: HTMLElement;\r\n\r\n @Prop() type: 'help' | 'pdf' | 'youtube' | 'notion' | 'event' = 'help';\r\n @Prop() popupTitle: string = '';\r\n @Prop() message: string | string[] = '';\r\n @Prop() guideUrl: string = '';\r\n @Prop() popupWidth?: number;\r\n\r\n @State() popupShow: boolean = false;\r\n\r\n private guideRef?: HTMLElement;\r\n\r\n static guideTitle = {\r\n help: '활용 Tip',\r\n pdf: 'PDF Guide',\r\n youtube: 'Video Guide',\r\n notion: '사용 가이드',\r\n event: 'Event Button',\r\n };\r\n\r\n private handleClickGuide = () => {\r\n if (this.type === 'help') {\r\n this.popupShow = !this.popupShow;\r\n return;\r\n }\r\n\r\n if (this.guideUrl) {\r\n window.open(this.guideUrl, '_blank');\r\n }\r\n };\r\n\r\n private getGuideClasses(): string {\r\n const classes = ['sd-guide'];\r\n\r\n classes.push(`sd-guide--${this.type}`);\r\n\r\n if (this.popupShow) classes.push('sd-guide--active');\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private getGuideStyle(): StyleProps {\r\n const styles: StyleProps = {};\r\n\r\n if (this.type === 'help') {\r\n styles['--guide-border'] = this.popupShow ? colors.green_65 : colors.grey_45;\r\n styles['--guide-color'] = this.popupShow ? colors.white : colors.grey_90;\r\n styles['--guide-background'] = this.popupShow ? colors.green_65 : colors.white;\r\n } else {\r\n styles['--guide-border'] = colors.grey_45;\r\n styles['--guide-color'] = colors.grey_90;\r\n styles['--guide-background'] = colors.white;\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n private getGuidIcon(): { name: IconName; size: number; color: string } {\r\n if (this.type === 'pdf') {\r\n return { name: 'pdf', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'youtube') {\r\n return { name: 'youtube', size: 20, color: colors.red_75 };\r\n } else if (this.type === 'notion') {\r\n return { name: 'notion', size: 16, color: colors.black };\r\n } else if (this.type === 'event') {\r\n return { name: 'event', size: 16, color: colors.brilliantblue_70 };\r\n }\r\n\r\n return { name: 'helpOutline', size: 20, color: this.popupShow ? colors.white : colors.green_65 };\r\n }\r\n\r\n closeDropdown = () => {\r\n this.popupShow = false;\r\n };\r\n\r\n render() {\r\n const { name: iconName, size: iconSize, color: iconColor } = this.getGuidIcon();\r\n\r\n return (\r\n <Host style={this.getGuideStyle()}>\r\n <sd-button\r\n ref={el => (this.guideRef = el as unknown as HTMLElement)}\r\n class={this.getGuideClasses()}\r\n variant=\"outline\"\r\n label={SdGuide.guideTitle[this.type]}\r\n size=\"md\"\r\n color=\"var(--guide-color)\"\r\n icon={iconName}\r\n iconColor={iconColor}\r\n iconSize={iconSize}\r\n iconStyle={{ marginRight: '4px' }}\r\n buttonStyle={{\r\n height: '28px',\r\n minHeight: '28px',\r\n padding: '4px 12px',\r\n borderRadius: '16px',\r\n borderColor: 'var(--guide-border)',\r\n color: 'var(--guide-color)',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n backgroundColor: 'var(--guide-background)',\r\n }}\r\n onSdClick={this.handleClickGuide}\r\n />\r\n {this.type === 'help' && this.popupShow && (\r\n <sd-portal\r\n open={this.popupShow}\r\n parentRef={this.guideRef}\r\n onSdClose={this.closeDropdown}\r\n offset={[0, 24]}\r\n >\r\n <div\r\n class=\"sd-guide__popup\"\r\n style={{ width: this.popupWidth ? this.popupWidth + 'px' : '426px' } as any}\r\n >\r\n <sd-button\r\n class=\"sd-guide__popup__close\"\r\n icon=\"close\"\r\n color={colors.grey_65}\r\n size=\"md\"\r\n variant=\"ghost\"\r\n noHover\r\n buttonStyle={{ padding: '0px', minHeight: '0px' }}\r\n onSdClick={this.closeDropdown}\r\n />\r\n <div class=\"sd-guide__popup__header\">\r\n <sd-icon name=\"helpOutline\" size={24} color={colors.green_65} />\r\n <h3 class=\"sd-guide__popup__title\">{this.popupTitle || SdGuide.guideTitle[this.type]}</h3>\r\n </div>\r\n <ul class=\"sd-guide__popup__list\">{this.renderListItem(this.message)}</ul>\r\n </div>\r\n </sd-portal>\r\n )}\r\n </Host>\r\n );\r\n }\r\n\r\n // 현재 2depth까지만 스타일 적용\r\n renderListItem(message: string | string[], depth: number = 0): HTMLElement[] {\r\n const listItems: HTMLElement[] = [];\r\n\r\n if (Array.isArray(message)) {\r\n const depthMsg = message.map(msg => this.renderListItem(msg, depth + 1));\r\n listItems.push(...depthMsg.flat());\r\n } else {\r\n listItems.push(this.renderLi(message, depth));\r\n }\r\n\r\n return listItems;\r\n }\r\n\r\n renderLi = (message: string, depth: number) => {\r\n const listContent = message.replace(/ /gi, '&nbsp;');\r\n return (\r\n <li class={`sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}`}>\r\n <p innerHTML={listContent}></p>\r\n </li>\r\n );\r\n };\r\n}\r\n"]}
@@ -25,7 +25,7 @@ export class SdIcon {
25
25
  }
26
26
  render() {
27
27
  const IconComponent = Icons[this.name]?.[this.size];
28
- return (h("i", { key: 'e4a18e5410daf717d400488c1d68f1dd20017e71', class: this.getIconClasses(), style: this.iconStyle }, h(IconComponent, { key: '1300823f018f8f63a23b9caf1529beafb0b3583c', color: this.resolvedColor })));
28
+ return (h("i", { key: '9d53cc78e1433e03e0329dc59b2fcb704dfc5229', class: this.getIconClasses(), style: this.iconStyle }, h(IconComponent, { key: 'f2e0c3c9eec1efb16a6aa703ae7e112b89a90876', color: this.resolvedColor })));
29
29
  }
30
30
  static get is() { return "sd-icon"; }
31
31
  static get encapsulation() { return "scoped"; }
@@ -89,11 +89,11 @@ export class SdInput {
89
89
  '--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
90
90
  }
91
91
  : {};
92
- return (h(Host, { key: 'd3d47bbc1d893415b3c04575abb474447b61c9cc', style: inputWidth }, this.label && h("div", { key: '80b9b4e3d39956b9582d7cd6cf1fa7558c2fa400', class: "sd-input__label" }, this.label), h("label", { key: '6a39cf5d0218196c2acf946995f0992abc1b1fdc', class: {
92
+ return (h(Host, { key: '17b45c8fff6a50fefba8852188d76aae5e494117', style: inputWidth }, this.label && h("div", { key: '9cad02ee97a3685372a5de808d94f2d78b6f1931', class: "sd-input__label" }, this.label), h("label", { key: 'd1df0ccc07e76291876b072d26feeace34abbae7', class: {
93
93
  'sd-input': true,
94
94
  [this.getInputStatus()]: true,
95
95
  'sd-input--barcode': !!this.barcode,
96
- }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, h("slot", { key: '64b0e848cb47fb226f72fe49a11e8743b01d73f0', name: "prefix" }), h("input", { key: '9d2a3b64cf708859b2612a67e54fff2e0978d3c4', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), h("slot", { key: '40788d6c7294cacb0849a4ba6a0d4e3616e69c3a', name: "suffix" }), this.clearable && this.internalValue && (h("sd-icon", { key: '5b407126127593c49a277b7461c912bed02073be', name: "close", color: "#888", style: { marginRight: '-4px', marginLeft: '8px', cursor: 'pointer' }, onClick: () => {
96
+ }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, h("slot", { key: '3af4ceb58d0f96abb383e0829f7256b81a6f94ec', name: "prefix" }), h("input", { key: '8f78d01452e39ab362eb6031564f26df6998dfe4', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), h("slot", { key: 'f4f0d0aa8185c277e22524e698275987034fc053', name: "suffix" }), this.clearable && this.internalValue && (h("sd-icon", { key: '61cd69cb8c562fcd88ce0138e52ee505d9d9e641', name: "close", color: "#888", style: { marginRight: '-4px', marginLeft: '8px', cursor: 'pointer' }, onClick: () => {
97
97
  this.internalValue = '';
98
98
  this.sdChange?.emit(this.internalValue);
99
99
  this.sdInput?.emit(this.internalValue);
@@ -73,12 +73,12 @@ export class SdPagination {
73
73
  }
74
74
  }
75
75
  render() {
76
- return (h("div", { key: '21ac7d547e0a2ebc9bc285f3561278d373a70560', class: this.paginationClasses }, h("div", { key: 'b2e1dee06d5a3751d395fef397f9fd745a49b598', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "pagination-info" }, h("span", { class: "current-page" }, this.currentPage), h("span", null, "/"), h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
76
+ return (h("div", { key: '4a54f4fb07b16bb6334e975967865d225a8d88e0', class: this.paginationClasses }, h("div", { key: 'a7054470cf94b30af967883072cf2af9eab5fb8d', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "pagination-info" }, h("span", { class: "current-page" }, this.currentPage), h("span", null, "/"), h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
77
77
  'pagination-btn': true,
78
78
  'pagination-btn--selected': this.currentPage === n,
79
79
  }, disabled: this.currentPage === n, style: {
80
80
  '--pagination-btn-width': `${this.buttonWidth}px`,
81
- }, onClick: () => this.handlePageChange(n) }, n)))), h("div", { key: '714367c37a7db25e5aadd00bb4ca102578d224bf', class: "append-btns" }, this.renderNextButtons())));
81
+ }, onClick: () => this.handlePageChange(n) }, n)))), h("div", { key: '2b785eca4e7dd7b18f850cf90f92418d283171e2', class: "append-btns" }, this.renderNextButtons())));
82
82
  }
83
83
  static get is() { return "sd-pagination"; }
84
84
  static get encapsulation() { return "shadow"; }
@@ -31,11 +31,11 @@ export class SdPopover {
31
31
  this.showPopover = false;
32
32
  };
33
33
  render() {
34
- return (h(Fragment, { key: 'd9ce7f31132bea70b2ff39bb6660053030ee2b5e' }, this.label ? (h("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: () => (console.log('click popover'), (this.showPopover = !this.showPopover)) })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (console.log('click popover'), (this.showPopover = !this.showPopover)) })), this.showPopover && (h("sd-tooltip-portal", { key: '85bfde26c1020ab51e36d33ad427135d0fb98a80', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, h("div", { key: 'd273fc2d701b6f3ab9328cccb000c00317738eb5', class: {
34
+ return (h(Fragment, { key: 'd15f1b55b6b397676fc9c96c48cef500ae84993b' }, this.label ? (h("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: () => (console.log('click popover'), (this.showPopover = !this.showPopover)) })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (console.log('click popover'), (this.showPopover = !this.showPopover)) })), this.showPopover && (h("sd-tooltip-portal", { key: 'eea0f3aeab811cfd1b228088517756de85b801d9', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, h("div", { key: '9db5d4ce6fc5e3f4b9358864c36c45b7958f15be', class: {
35
35
  'sd-popover-menu': true,
36
36
  [`sd-popover-menu--${this.placement}`]: true,
37
37
  [this.menuClass]: !!this.menuClass,
38
- } }, h("i", { key: 'f9740977811bfd4f2b171e74482a3c7e71aebb06', class: `sd-popover-menu__arrow sd-popover-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: 'c261ab4805baf022ca6dbab05c947ada6aa26db2' })), h("div", { key: '962f6cbcada06ebaad1083126573e2255665513d', class: "sd-popover-menu__content" }, this.menuTitle && h("div", { key: '0d39ddeaf9bbf1a59f35b02b6eb572c625ad7bf6', class: "sd-popover-menu__title" }, this.menuTitle), this.messages.length > 0 && (h("div", { key: '2ba5d4b5fafc792cc3095cb378f88a257a048a99', class: "sd-popover-menu__messages" }, this.messages.map(message => (h("div", null, message))))), this.buttons.length > 0 && (h("div", { key: '9b883a14a83f53e30fdc6f2a41a8f3741911d9bc', class: `sd-popover-menu__buttons sd-popover-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (h("sd-button", { ...button })))))), this.useClose && (h("button", { key: '58d3669781fbdae03bfb6c9564e7d81a9d74cdf4', class: "sd-popover-menu__close-button", onClick: () => this.handleClose() }, h("sd-icon", { key: '4cd92022824f8cc453181dccc50b4e591b312117', name: "close", size: "12", color: "#AAAAAA" }))))))));
38
+ } }, h("i", { key: '938a3f683ee00bb8b57d2b38229b137c60fb2fee', class: `sd-popover-menu__arrow sd-popover-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '70b4e58bd7d4e78ee82fbb54010e6b1cc369cb47' })), h("div", { key: 'f2b022d3b324a55fd39a224273d956a43fa778cf', class: "sd-popover-menu__content" }, this.menuTitle && h("div", { key: '0b6ad274cdc12dccaec60a1ae295ebf6cd908aa5', class: "sd-popover-menu__title" }, this.menuTitle), this.messages.length > 0 && (h("div", { key: '484c18a44b8a8bcd6ec850cbfa293b45acc55696', class: "sd-popover-menu__messages" }, this.messages.map(message => (h("div", null, message))))), this.buttons.length > 0 && (h("div", { key: '3e7eb1384a12ebf6be3f7da1bd76979957b41310', class: `sd-popover-menu__buttons sd-popover-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (h("sd-button", { ...button })))))), this.useClose && (h("button", { key: '87189dde9bf5ace19a53f35d4dab68c7fd5790f6', class: "sd-popover-menu__close-button", onClick: () => this.handleClose() }, h("sd-icon", { key: 'f4c1685ce30e7e15ed5d16faa4157489ae7d8bbb', name: "close", size: "12", color: "#AAAAAA" }))))))));
39
39
  }
40
40
  static get is() { return "sd-popover"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -92,7 +92,7 @@ export class SdPortal {
92
92
  this.sdClose.emit();
93
93
  }
94
94
  render() {
95
- return h("slot", { key: '32b0689ed1ad8c20bc400292b63597bc3e56ce2b' });
95
+ return h("slot", { key: 'b1a22a7a0865bf3984f79148dd6c97fce0268ca4' });
96
96
  }
97
97
  static get is() { return "sd-portal"; }
98
98
  static get properties() {
@@ -24,7 +24,7 @@ export class SdSelectOption {
24
24
  }
25
25
  };
26
26
  render() {
27
- return (h("div", { key: 'afd8da214335c6ea6036a51c617b2b35df104f69', class: {
27
+ return (h("div", { key: '6a41bb20544e864db75ec58455aacdf4a5411b2e', class: {
28
28
  'sd-select__option': true,
29
29
  'sd-select__option--selected': this.isSelected,
30
30
  'sd-select__option--disabled': !!this.option.disabled,
@@ -209,11 +209,11 @@ export class SdSelect extends BaseDropdownEvent {
209
209
  '--select-width': this.width || '200px',
210
210
  '--select-dropdown-height': this.dropdownHeight || '260px',
211
211
  };
212
- return (h(Host, { key: 'd49b342a007a6920c5b8273a0f50ba0fe6535c2b', style: style }, h("div", { key: '94e434007dd98391064126994ecc2752f32d4df8', class: {
212
+ return (h(Host, { key: 'c43c086134d7a179d63a7f0c0df7e62058f7625e', style: style }, h("div", { key: 'd6ef6428b1a5ec114fbf97741c93b6cbb354bec0', class: {
213
213
  'sd-select': true,
214
214
  'sd-select--open': this.isOpen,
215
215
  'sd-select--disabled': this.disabled,
216
- }, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), h("div", { key: 'a74154425ccdb780c22024ad68e5639d0ed28074', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
216
+ }, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), h("div", { key: 'c6a3ec4e8705b9654fa5123b228e8f9f0d75c9dc', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
217
217
  }
218
218
  renderLabel(label, labelStyle) {
219
219
  if (!label)
@@ -183,9 +183,9 @@ export class SdTable {
183
183
  }))))));
184
184
  }
185
185
  render() {
186
- return (h(Host, { key: '5c2335bc86df11f27f3bb47d4ad301b1f61ec046' }, h("div", { key: '44e4e3c03853ab223cc50b7b4b3582b9ccabfd4a', class: "sd-table__container" }, h("div", { key: 'a230276bc33622c759829f4b25596df720407865', class: "sd-table__middle", style: {
186
+ return (h(Host, { key: 'ab7c2b556c1df0e3bae1d50ed9303261cb090d53' }, h("div", { key: 'fb6af621e1641c1781d7d78a91b71ed9919a8b3c', class: "sd-table__container" }, h("div", { key: '87d376e4dabb05945c3ab32431ee5893bcd4b163', class: "sd-table__middle", style: {
187
187
  '--table-height': this.height ? `${this.height}px` : 'auto',
188
- } }, h("table", { key: 'f93f35312b516ab70f816d01f8aad331442f1bff', part: "table", class: this.sdTableClasses }, this.renderHeader(), this.renderBody())), h("div", { key: 'a73739387245966d90ec62096103c83a56358886', class: "sd-table__bottom" })), this.pagination && this.innerRows.length > 0 && (h("div", { key: 'd57111230ec39d27b901a711bd6d14d98f5ffff0', class: "sd-table__pagination" }, h("sd-pagination", { key: 'eb6a77e029965d5d5188fed93dd44447fcc81477', currentPage: this.currentPage, lastPage: this.lastPageNumber, onPageChange: (e) => {
188
+ } }, h("table", { key: 'dd5e9fec59b67ba17f86ae34a8ad0f1c3931d2da', part: "table", class: this.sdTableClasses }, this.renderHeader(), this.renderBody())), h("div", { key: '34fd7cdf2eeebc1606ee3755e496a4eb219644b7', class: "sd-table__bottom" })), this.pagination && this.innerRows.length > 0 && (h("div", { key: '38f172421f5d1b682db6fbf42fa06156de776972', class: "sd-table__pagination" }, h("sd-pagination", { key: '6a8518855acf47b3df79c992e3a6ce8b4ff73551', currentPage: this.currentPage, lastPage: this.lastPageNumber, onPageChange: (e) => {
189
189
  this.currentPage = e.detail;
190
190
  this.sdPageChange.emit(this.currentPage);
191
191
  } })))));
@@ -37,7 +37,7 @@ export class SdTag {
37
37
  }
38
38
  render() {
39
39
  const tagClasses = this.getTagClasses();
40
- return (h("span", { key: '374871546ce076a1f2f7100887df320260d7388c', class: tagClasses, style: {
40
+ return (h("span", { key: 'b16fa963430cafba6451888d44d531d01e42bc85', class: tagClasses, style: {
41
41
  '--tag-bg-color': this.bgColor,
42
42
  '--tag-text-color': this.textColor,
43
43
  }, "aria-label": this.label || 'tag' }, this.renderContent()));
@@ -27,11 +27,11 @@ export class SdTooltip {
27
27
  : {
28
28
  onClick: () => (console.log('click tooltip'), (this.showTooltip = !this.showTooltip)),
29
29
  };
30
- return (h(Fragment, { key: 'd6d3b9dcfa7adca962c626da9001a7087dd1f73f' }, this.label ? (h("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 })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-tooltip-portal", { key: '0aafc7f41c8812a08c1002008056d01f62951d16', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, h("div", { key: '2022144bc19c4c0710d081d83c9493a9d1f53ffb', class: {
30
+ return (h(Fragment, { key: '8acd661f796fc9c006e966c1667a46752205ed48' }, this.label ? (h("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 })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-tooltip-portal", { key: '4437a6b3df82731ebea80649c5e75ec203554dbd', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, h("div", { key: '43f186e6eb64b019359815b5cb43e50972ed782b', class: {
31
31
  'sd-tooltip-menu': true,
32
32
  [`sd-tooltip-menu--${this.placement}`]: true,
33
33
  'sd-tooltip-menu--with-close': this.useClose,
34
- } }, h("i", { key: '7c503ee13b978888d27bc2138775f34fc6c89972', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: 'f500163bbeecbd5d4f0130bde665248e6296d35c' })), h("div", { key: '06b374cad79577a3ac4de0ec9edd0d5fd6883b14', class: "sd-tooltip-menu__content" }, h("slot", { key: '22ac66831512016f59387c9a12cfadd69e63b1a9' }, this.el.textContent)), this.useClose && (h("div", { key: '13f4c362a5805e0e9641d2f96c7371212dcf9bc5', class: "sd-tooltip-menu__close-button" }, h("button", { key: 'aab27523f623aa2d9cd5257f8a5cc500fceb68af', onClick: () => this.handleClose() }, h("sd-icon", { key: 'eab2407e4925a2b4efe735338d2ac18c2b5f9504', name: "close", size: "12", color: "#AAAAAA" })))))))));
34
+ } }, h("i", { key: '811ebc90e1dcee2e2c88357419009c017badcf6f', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '8907d113ccc956c3bc1e1dca2267f992ccd94d09' })), h("div", { key: '22fbfd6b6ce6c5efe4f75f9e4d208b05ea945783', class: "sd-tooltip-menu__content" }, h("slot", { key: '7c953be946fb90b8e4512eacd6da913000a75f19' }, this.el.textContent)), this.useClose && (h("div", { key: '039dd932a468cb7419beec5d929514c4866d7992', class: "sd-tooltip-menu__close-button" }, h("button", { key: '4edc7ea5cec0cb8023a3aa848cc208a8379b5fbb', onClick: () => this.handleClose() }, h("sd-icon", { key: '51ecdb054e7b34dd6872b14964034c1e1e870ff6', name: "close", size: "12", color: "#AAAAAA" })))))))));
35
35
  }
36
36
  static get is() { return "sd-tooltip"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -143,7 +143,7 @@ export class SdTooltipPortal {
143
143
  this.sdClose.emit();
144
144
  }
145
145
  render() {
146
- return h("slot", { key: 'ea3fc7fd112d453f3f58f6a736f583e75896b74c' });
146
+ return h("slot", { key: '3a845f83619e1bff0b6b67abddd7fc21cb47e2ba' });
147
147
  }
148
148
  static get is() { return "sd-tooltip-portal"; }
149
149
  static get encapsulation() { return "shadow"; }
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-dHboNV0o.js';
2
- import { d as defineCustomElement$1 } from './p-CUaQiV_x.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-dHboNV0o.js';
2
+ import { d as defineCustomElement$1 } from './p-DRnR5yin.js';
3
3
 
4
- const sdCheckboxCss = ":host{line-height:0}.sd-checkbox{line-height:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px;max-height:20px;position:relative;cursor:pointer}.sd-checkbox>input{display:none}.sd-checkbox:hover.sd-checkbox--checked .sd-checkbox__bg{background:#005cc9}.sd-checkbox:hover.sd-checkbox--unchecked .sd-checkbox__bg{border:1px solid #0075ff;background:#d9eaff}.sd-checkbox:hover.sd-checkbox--disabled .sd-checkbox__bg{border:1px solid transparent;background:#eeeeee}.sd-checkbox__bg{width:16px;height:16px;border-radius:2px;border:1px solid #888888;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;line-height:0}.sd-checkbox__label{font-size:12px;color:#333333;line-height:20px}.sd-checkbox--checked.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}.sd-checkbox--checked .sd-checkbox__bg{border:0;background:#0075ff}.sd-checkbox--unchecked .sd-checkbox__bg{background:white}.sd-checkbox--disabled{cursor:not-allowed}.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}";
4
+ const sdCheckboxCss = ":host{display:inline-block;height:fit-content;line-height:0}.sd-checkbox{line-height:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px;max-height:20px;position:relative;cursor:pointer}.sd-checkbox>input{display:none}.sd-checkbox:hover.sd-checkbox--checked .sd-checkbox__bg{background:#005cc9}.sd-checkbox:hover.sd-checkbox--unchecked .sd-checkbox__bg{border:1px solid #0075ff;background:#d9eaff}.sd-checkbox:hover.sd-checkbox--disabled .sd-checkbox__bg{border:1px solid transparent;background:#eeeeee}.sd-checkbox__bg{width:16px;height:16px;border-radius:2px;border:1px solid #888888;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;line-height:0}.sd-checkbox__label{font-size:12px;color:#333333;line-height:20px}.sd-checkbox--checked.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}.sd-checkbox--checked .sd-checkbox__bg{border:0;background:#0075ff}.sd-checkbox--unchecked .sd-checkbox__bg{background:white}.sd-checkbox--disabled{cursor:not-allowed}.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}";
5
5
 
6
6
  const SdCheckbox = /*@__PURE__*/ proxyCustomElement(class SdCheckbox extends H {
7
7
  constructor(registerHost) {
@@ -9,7 +9,6 @@ const SdCheckbox = /*@__PURE__*/ proxyCustomElement(class SdCheckbox extends H {
9
9
  if (registerHost !== false) {
10
10
  this.__registerHost();
11
11
  }
12
- this.__attachShadow();
13
12
  this.sdChange = createEvent(this, "sdChange");
14
13
  }
15
14
  get el() { return this; }
@@ -72,13 +71,13 @@ const SdCheckbox = /*@__PURE__*/ proxyCustomElement(class SdCheckbox extends H {
72
71
  this.sdChange.emit(newValue);
73
72
  };
74
73
  render() {
75
- return (h("label", { key: '9c03212ed43f1b2d654b5bc51f3b3395117726d1', class: this.getCheckboxClasses() }, h("input", { key: '767ebdd2cd5cfc55a87d08238deb2097e840d15b', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onChange: this.handleChange }), h("div", { key: '7ff4281881ab6bf2435eb20c267913972c17de74', class: "sd-checkbox__bg", style: this.checkboxStyle }, this.isChecked ? h("sd-icon", { name: "check", size: 12, color: this.disabled ? '#888888' : 'white' }) : null), this.label && h("span", { key: 'f1ab9b7a6c2e1107229e485cb22eba652a50c56d', class: "sd-checkbox__label" }, this.label)));
74
+ return (h(Host, { key: '547fee4a8d2639651a4887056fa72fc0cdaa90dd' }, h("label", { key: '975cdc3b10bbbf36f979f7df0f38d02fef3f3d7f', class: this.getCheckboxClasses() }, h("input", { key: '82c70897b2f4659d709f154f4ab42d14c799da29', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onChange: this.handleChange }), h("div", { key: 'ef39406a7b3a1d3232324dd62f7362814fa74089', class: "sd-checkbox__bg", style: this.checkboxStyle }, this.isChecked ? (h("sd-icon", { name: "check", size: 12, color: this.disabled ? '#888888' : 'white' })) : null), this.label && h("span", { key: '183c72be55f35791a22213ce3d7f91305892df9f', class: "sd-checkbox__label" }, this.label))));
76
75
  }
77
76
  static get watchers() { return {
78
77
  "checked": ["watchValueHandler"]
79
78
  }; }
80
79
  static get style() { return sdCheckboxCss; }
81
- }, [257, "sd-checkbox", {
80
+ }, [256, "sd-checkbox", {
82
81
  "checked": [8],
83
82
  "val": [8],
84
83
  "disabled": [4],
@@ -108,6 +107,6 @@ function defineCustomElement() {
108
107
  }
109
108
 
110
109
  export { SdCheckbox as S, defineCustomElement as d };
111
- //# sourceMappingURL=p-ru6C2WME.js.map
110
+ //# sourceMappingURL=p-BNrJPeOI.js.map
112
111
 
113
- //# sourceMappingURL=p-ru6C2WME.js.map
112
+ //# sourceMappingURL=p-BNrJPeOI.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-BNrJPeOI.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-checkbox/sd-checkbox.scss?tag=sd-checkbox","src/components/sd-checkbox/sd-checkbox.tsx"],"sourcesContent":["@import '../../styles/variables.scss';\r\n\r\n:host {\r\n display: inline-block;\r\n height: fit-content;\r\n line-height: 0;\r\n}\r\n\r\n.sd-checkbox {\r\n line-height: 0;\r\n\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n height: 20px;\r\n max-height: 20px;\r\n position: relative;\r\n cursor: pointer;\r\n\r\n > input {\r\n display: none;\r\n }\r\n\r\n &:hover {\r\n &.sd-checkbox--checked {\r\n .sd-checkbox__bg {\r\n background: $brilliantblue_80;\r\n }\r\n }\r\n\r\n &.sd-checkbox--unchecked {\r\n .sd-checkbox__bg {\r\n border: 1px solid $brilliantblue_75;\r\n background: $brilliantblue_25;\r\n }\r\n }\r\n\r\n &.sd-checkbox--disabled {\r\n .sd-checkbox__bg {\r\n border: 1px solid transparent;\r\n background: $grey_20;\r\n }\r\n }\r\n }\r\n\r\n &__bg {\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 2px;\r\n border: 1px solid $grey_65;\r\n box-sizing: border-box;\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n line-height: 0;\r\n }\r\n\r\n &__label {\r\n font-size: 12px;\r\n color: $grey_90;\r\n line-height: 20px;\r\n }\r\n\r\n &--checked {\r\n &.sd-checkbox--disabled {\r\n .sd-checkbox__bg {\r\n background: $grey_20;\r\n border: 1px solid $grey_45 !important;\r\n }\r\n }\r\n\r\n .sd-checkbox__bg {\r\n border: 0;\r\n background: $brilliantblue_75;\r\n }\r\n }\r\n\r\n &--unchecked {\r\n .sd-checkbox__bg {\r\n background: white;\r\n }\r\n }\r\n\r\n &--disabled {\r\n cursor: not-allowed;\r\n .sd-checkbox__bg {\r\n background: $grey_20;\r\n border: 1px solid $grey_45 !important;\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Prop,\r\n h,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Watch,\r\n Host,\r\n} from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'sd-checkbox',\r\n styleUrl: 'sd-checkbox.scss',\r\n})\r\nexport class SdCheckbox {\r\n @Element() el!: HTMLElement;\r\n\r\n /** 현재 선택 상태 또는 배열 형태의 값 */\r\n @Prop() checked: any[] | any = false;\r\n\r\n /** 배열 모드에서의 개별 값 */\r\n @Prop() val?: any;\r\n\r\n /** 비활성화 여부 */\r\n @Prop() disabled: boolean = false;\r\n\r\n /** 표시할 라벨 텍스트 */\r\n @Prop() label: string = '';\r\n\r\n @Prop() checkboxStyle: StyleProps = {};\r\n\r\n /** 내부 체크 상태 */\r\n @State() private isChecked: boolean = false;\r\n\r\n /** 값 변경 이벤트 */\r\n @Event() sdChange!: EventEmitter<any | any[]>;\r\n\r\n componentWillLoad() {\r\n this.updateCheckedState(this.checked);\r\n }\r\n\r\n @Watch('checked')\r\n watchValueHandler(newValue: any | any[]) {\r\n this.updateCheckedState(newValue);\r\n }\r\n\r\n private getCheckboxClasses(): string {\r\n const classes = ['sd-checkbox', `sd-checkbox--${this.isChecked ? 'checked' : 'unchecked'}`];\r\n\r\n if (this.disabled) {\r\n classes.push('sd-checkbox--disabled');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n private updateCheckedState(value: any | any[]) {\r\n if (typeof value === 'boolean') {\r\n this.isChecked = value;\r\n } else if (Array.isArray(value)) {\r\n this.isChecked = this.val !== undefined && value.includes(this.val);\r\n } else {\r\n this.isChecked = false;\r\n }\r\n }\r\n\r\n private handleChange = () => {\r\n if (this.disabled) return;\r\n\r\n let newValue: any | any[];\r\n\r\n if (typeof this.checked === 'boolean') {\r\n newValue = !this.checked;\r\n } else if (Array.isArray(this.checked)) {\r\n if (this.val === undefined) {\r\n console.warn('A \"val\" property is required when using an array for the \"value\" property.');\r\n return;\r\n }\r\n\r\n const valueSet = new Set(this.checked);\r\n valueSet.has(this.val) ? valueSet.delete(this.val) : valueSet.add(this.val);\r\n newValue = Array.from(valueSet);\r\n } else {\r\n newValue = !this.isChecked;\r\n }\r\n\r\n this.sdChange.emit(newValue);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <label class={this.getCheckboxClasses()}>\r\n <input\r\n type=\"checkbox\"\r\n checked={this.isChecked}\r\n disabled={this.disabled}\r\n onChange={this.handleChange}\r\n />\r\n <div class=\"sd-checkbox__bg\" style={this.checkboxStyle}>\r\n {this.isChecked ? (\r\n <sd-icon name=\"check\" size={12} color={this.disabled ? '#888888' : 'white'} />\r\n ) : null}\r\n </div>\r\n {this.label && <span class=\"sd-checkbox__label\">{this.label}</span>}\r\n </label>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}