@sellmate/design-system 0.0.7 → 0.0.8

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 (149) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/index-Cbd_FIth.js +21891 -0
  3. package/dist/cjs/index-Cbd_FIth.js.map +1 -0
  4. package/dist/cjs/index-DoEgM-7l.js +2586 -0
  5. package/dist/cjs/index-DoEgM-7l.js.map +1 -0
  6. package/dist/cjs/{index-D3QUS1Eb.js → index-iB3JlG0y.js} +5 -5
  7. package/dist/cjs/index-iB3JlG0y.js.map +1 -0
  8. package/dist/cjs/index.cjs.js +121 -0
  9. package/dist/cjs/index.cjs.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/sd-button_4.cjs.entry.js +1 -1
  12. package/dist/cjs/sd-checkbox.cjs.entry.js +1 -1
  13. package/dist/cjs/sd-date-box_2.cjs.entry.js +1 -1
  14. package/dist/cjs/sd-date-picker.cjs.entry.js +1 -1
  15. package/dist/cjs/sd-date-range-picker.cjs.entry.js +1 -1
  16. package/dist/cjs/sd-pagination_2.cjs.entry.js +2 -2
  17. package/dist/cjs/sd-popover.cjs.entry.js +2 -2
  18. package/dist/cjs/sd-select-option.cjs.entry.js +1 -1
  19. package/dist/cjs/sd-select.cjs.entry.js +1 -1
  20. package/dist/cjs/sd-table.cjs.entry.js +1 -1
  21. package/dist/cjs/sd-tag.cjs.entry.js +1 -1
  22. package/dist/cjs/sd-tooltip-portal.cjs.entry.js +1 -1
  23. package/dist/cjs/{tooltipArrow-DKQk16So.js → tooltipArrow-CSLQDjwL.js} +3 -3
  24. package/dist/cjs/{tooltipArrow-DKQk16So.js.map → tooltipArrow-CSLQDjwL.js.map} +1 -1
  25. package/dist/collection/index.js +4 -0
  26. package/dist/collection/index.js.map +1 -1
  27. package/dist/collection/utils/next-hydrate.js +52 -0
  28. package/dist/collection/utils/next-hydrate.js.map +1 -0
  29. package/dist/collection/utils/next-react-wrapper.js +61 -0
  30. package/dist/collection/utils/next-react-wrapper.js.map +1 -0
  31. package/dist/components/index.js +115 -2
  32. package/dist/components/index.js.map +1 -1
  33. package/dist/components/{p-BBcRxAHQ.js → p-B0--8AFP.js} +3 -3
  34. package/dist/components/{p-BBcRxAHQ.js.map → p-B0--8AFP.js.map} +1 -1
  35. package/dist/components/{p-CcIaxZWu.js → p-B3-UiLOb.js} +3 -3
  36. package/dist/components/{p-CcIaxZWu.js.map → p-B3-UiLOb.js.map} +1 -1
  37. package/dist/components/{p-DqOQpFv5.js → p-BVQq85Sb.js} +3 -3
  38. package/dist/components/{p-DqOQpFv5.js.map → p-BVQq85Sb.js.map} +1 -1
  39. package/dist/components/p-BjTJkvEh.js +21889 -0
  40. package/dist/components/p-BjTJkvEh.js.map +1 -0
  41. package/dist/components/{p-CIPoof7_.js → p-BrGg4-IA.js} +4 -4
  42. package/dist/components/{p-CIPoof7_.js.map → p-BrGg4-IA.js.map} +1 -1
  43. package/dist/components/{p-DeANT-RC.js → p-CIRxuq9O.js} +3 -3
  44. package/dist/components/{p-DeANT-RC.js.map → p-CIRxuq9O.js.map} +1 -1
  45. package/dist/components/{p-Dk7pK8T6.js → p-CmjvNSNS.js} +3 -3
  46. package/dist/components/{p-Dk7pK8T6.js.map → p-CmjvNSNS.js.map} +1 -1
  47. package/dist/components/{p-BKNkY07K.js → p-CvQARSF2.js} +4 -4
  48. package/dist/components/{p-BKNkY07K.js.map → p-CvQARSF2.js.map} +1 -1
  49. package/dist/components/{p-BJe9kiv9.js → p-CwAyLWEQ.js} +4 -4
  50. package/dist/components/{p-BJe9kiv9.js.map → p-CwAyLWEQ.js.map} +1 -1
  51. package/dist/components/{p-D7GkmGX3.js → p-Cwa0Scin.js} +4 -4
  52. package/dist/components/{p-D7GkmGX3.js.map → p-Cwa0Scin.js.map} +1 -1
  53. package/dist/components/{p-C_ZLFIzZ.js → p-D_I5tXD6.js} +6 -6
  54. package/dist/components/p-D_I5tXD6.js.map +1 -0
  55. package/dist/components/{p-DmNaQwtz.js → p-Dg9QFKjM.js} +5 -5
  56. package/dist/components/{p-DmNaQwtz.js.map → p-Dg9QFKjM.js.map} +1 -1
  57. package/dist/components/{p-CR_d0Wrj.js → p-DyncZo9Q.js} +7 -7
  58. package/dist/components/{p-CR_d0Wrj.js.map → p-DyncZo9Q.js.map} +1 -1
  59. package/dist/components/p-dBol_ZO8.js +2584 -0
  60. package/dist/components/p-dBol_ZO8.js.map +1 -0
  61. package/dist/components/sd-button.js +1 -1
  62. package/dist/components/sd-checkbox.js +1 -1
  63. package/dist/components/sd-date-box.js +1 -1
  64. package/dist/components/sd-date-picker.js +5 -5
  65. package/dist/components/sd-date-range-picker.js +5 -5
  66. package/dist/components/sd-guide.js +4 -4
  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 +6 -6
  74. package/dist/components/sd-table.js +7 -7
  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/index.esm.js +1 -1
  80. package/dist/design-system/index.esm.js.map +1 -1
  81. package/dist/design-system/{p-df03331a.entry.js → p-12aaaa03.entry.js} +2 -2
  82. package/dist/design-system/{p-94f7e066.entry.js → p-1f393066.entry.js} +2 -2
  83. package/dist/design-system/{p-a24a9772.entry.js → p-2bb928fc.entry.js} +2 -2
  84. package/dist/design-system/{p-24f6b072.entry.js → p-5db3252c.entry.js} +2 -2
  85. package/dist/design-system/{p-10264e8e.entry.js → p-682cf57d.entry.js} +2 -2
  86. package/dist/design-system/{p-0bdf567e.entry.js → p-7e33f5e5.entry.js} +2 -2
  87. package/dist/design-system/{p-a9713309.entry.js → p-8b2b47a7.entry.js} +2 -2
  88. package/dist/design-system/{p-0366ba33.entry.js → p-912c7a8d.entry.js} +2 -2
  89. package/dist/design-system/{p-8844ec3b.entry.js → p-97dbc008.entry.js} +2 -2
  90. package/dist/design-system/{p-bc64ffa7.entry.js → p-997af0ed.entry.js} +2 -2
  91. package/dist/design-system/p-BjTJkvEh.js +23 -0
  92. package/dist/design-system/p-BjTJkvEh.js.map +1 -0
  93. package/dist/design-system/{p-B9LQNxjd.js → p-DMW6VeLX.js} +2 -2
  94. package/dist/design-system/{p-B9LQNxjd.js.map → p-DMW6VeLX.js.map} +1 -1
  95. package/dist/design-system/p-DVhJrGoi.js +3 -0
  96. package/dist/design-system/p-DVhJrGoi.js.map +1 -0
  97. package/dist/design-system/{p-764e14ea.entry.js → p-c87c465b.entry.js} +2 -2
  98. package/dist/design-system/p-dBol_ZO8.js +3 -0
  99. package/dist/design-system/p-dBol_ZO8.js.map +1 -0
  100. package/dist/design-system/{p-329d3532.entry.js → p-e40ff66a.entry.js} +2 -2
  101. package/dist/esm/design-system.js +2 -2
  102. package/dist/esm/index-BjTJkvEh.js +21889 -0
  103. package/dist/esm/index-BjTJkvEh.js.map +1 -0
  104. package/dist/esm/{index-DzM-iWij.js → index-DVhJrGoi.js} +5 -5
  105. package/dist/esm/index-DVhJrGoi.js.map +1 -0
  106. package/dist/esm/index-dBol_ZO8.js +2584 -0
  107. package/dist/esm/index-dBol_ZO8.js.map +1 -0
  108. package/dist/esm/index.js +114 -1
  109. package/dist/esm/index.js.map +1 -1
  110. package/dist/esm/loader.js +2 -2
  111. package/dist/esm/sd-button_4.entry.js +1 -1
  112. package/dist/esm/sd-checkbox.entry.js +1 -1
  113. package/dist/esm/sd-date-box_2.entry.js +1 -1
  114. package/dist/esm/sd-date-picker.entry.js +1 -1
  115. package/dist/esm/sd-date-range-picker.entry.js +1 -1
  116. package/dist/esm/sd-pagination_2.entry.js +2 -2
  117. package/dist/esm/sd-popover.entry.js +2 -2
  118. package/dist/esm/sd-select-option.entry.js +1 -1
  119. package/dist/esm/sd-select.entry.js +1 -1
  120. package/dist/esm/sd-table.entry.js +1 -1
  121. package/dist/esm/sd-tag.entry.js +1 -1
  122. package/dist/esm/sd-tooltip-portal.entry.js +1 -1
  123. package/dist/esm/{tooltipArrow-Dybd-1up.js → tooltipArrow-BZiofDi8.js} +3 -3
  124. package/dist/esm/{tooltipArrow-Dybd-1up.js.map → tooltipArrow-BZiofDi8.js.map} +1 -1
  125. package/dist/types/index.d.ts +2 -0
  126. package/dist/types/utils/next-hydrate.d.ts +18 -0
  127. package/dist/types/utils/next-react-wrapper.d.ts +23 -0
  128. package/hydrate/index.d.ts +275 -0
  129. package/hydrate/index.js +22315 -0
  130. package/hydrate/index.mjs +22307 -0
  131. package/hydrate/package.json +12 -0
  132. package/package.json +10 -3
  133. package/dist/cjs/index-D3QUS1Eb.js.map +0 -1
  134. package/dist/components/p-C_ZLFIzZ.js.map +0 -1
  135. package/dist/design-system/p-DzM-iWij.js +0 -3
  136. package/dist/design-system/p-DzM-iWij.js.map +0 -1
  137. package/dist/esm/index-DzM-iWij.js.map +0 -1
  138. /package/dist/design-system/{p-df03331a.entry.js.map → p-12aaaa03.entry.js.map} +0 -0
  139. /package/dist/design-system/{p-94f7e066.entry.js.map → p-1f393066.entry.js.map} +0 -0
  140. /package/dist/design-system/{p-a24a9772.entry.js.map → p-2bb928fc.entry.js.map} +0 -0
  141. /package/dist/design-system/{p-24f6b072.entry.js.map → p-5db3252c.entry.js.map} +0 -0
  142. /package/dist/design-system/{p-10264e8e.entry.js.map → p-682cf57d.entry.js.map} +0 -0
  143. /package/dist/design-system/{p-0bdf567e.entry.js.map → p-7e33f5e5.entry.js.map} +0 -0
  144. /package/dist/design-system/{p-a9713309.entry.js.map → p-8b2b47a7.entry.js.map} +0 -0
  145. /package/dist/design-system/{p-0366ba33.entry.js.map → p-912c7a8d.entry.js.map} +0 -0
  146. /package/dist/design-system/{p-8844ec3b.entry.js.map → p-97dbc008.entry.js.map} +0 -0
  147. /package/dist/design-system/{p-bc64ffa7.entry.js.map → p-997af0ed.entry.js.map} +0 -0
  148. /package/dist/design-system/{p-764e14ea.entry.js.map → p-c87c465b.entry.js.map} +0 -0
  149. /package/dist/design-system/{p-329d3532.entry.js.map → p-e40ff66a.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"p-DqOQpFv5.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-portal/sd-portal.tsx"],"sourcesContent":["import { Component, Element, Event, EventEmitter, Listen, Prop, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'sd-portal',\r\n shadow: false,\r\n})\r\nexport class SdPortal {\r\n @Element() hostEl!: HTMLElement;\r\n @Prop() to: HTMLElement | string = 'body';\r\n @Prop() parentRef: HTMLElement | null = null;\r\n @Prop() offset: [number, number] = [0, 4];\r\n @Prop() zIndex: number = 9999;\r\n @Prop() open: boolean = false;\r\n\r\n @Event() sdClose!: EventEmitter<void>;\r\n\r\n private container?: HTMLElement;\r\n private wrapper?: HTMLElement;\r\n private rafId?: number;\r\n private isInsideClick = false;\r\n\r\n private resizeObserver?: ResizeObserver;\r\n private mutationObserver?: MutationObserver;\r\n\r\n componentDidLoad() {\r\n this.container = this.resolveContainer();\r\n this.createWrapper();\r\n this.moveSlotContent();\r\n this.updatePosition();\r\n this.observeParent();\r\n }\r\n\r\n componentDidRender() {\r\n if (!this.wrapper) return;\r\n this.wrapper.style.display = this.open ? 'block' : 'none';\r\n if (this.open) this.updatePosition();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.unobserveParent();\r\n this.wrapper?.remove();\r\n }\r\n\r\n private resolveContainer(): HTMLElement {\r\n const el = typeof this.to === 'string' ? document.querySelector(this.to) : this.to;\r\n return el instanceof HTMLElement ? el : document.body;\r\n }\r\n\r\n private createWrapper() {\r\n this.wrapper = document.createElement('div');\r\n Object.assign(this.wrapper.style, {\r\n position: 'absolute',\r\n zIndex: this.zIndex.toString(),\r\n transition: 'opacity 0.4s',\r\n });\r\n this.container!.appendChild(this.wrapper);\r\n }\r\n\r\n private moveSlotContent() {\r\n if (!this.wrapper) return;\r\n const nodes = Array.from(this.hostEl.childNodes).filter(n => n.nodeType !== Node.COMMENT_NODE);\r\n nodes.forEach(n => this.wrapper!.appendChild(n));\r\n }\r\n\r\n // 위치 갱신 (scroll / resize)\r\n @Listen('scroll', { target: 'window' })\r\n @Listen('resize', { target: 'window' })\r\n updatePosition() {\r\n if (this.rafId) cancelAnimationFrame(this.rafId);\r\n this.rafId = requestAnimationFrame(() => {\r\n if (!this.parentRef || !this.wrapper) return;\r\n const rect = this.parentRef.getBoundingClientRect();\r\n this.wrapper.style.top = `${rect.bottom + window.scrollY + this.offset[1]}px`;\r\n this.wrapper.style.left = `${rect.left + window.scrollX + this.offset[0]}px`;\r\n });\r\n }\r\n\r\n // parentRef의 이동 / 크기변경 감지\r\n private observeParent() {\r\n if (!this.parentRef) return;\r\n\r\n this.resizeObserver = new ResizeObserver(() => this.updatePosition());\r\n this.resizeObserver.observe(this.parentRef);\r\n\r\n this.mutationObserver = new MutationObserver(() => this.updatePosition());\r\n this.mutationObserver.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n\r\n private unobserveParent() {\r\n this.resizeObserver?.disconnect();\r\n this.mutationObserver?.disconnect();\r\n }\r\n\r\n // 외부 클릭 감지\r\n @Listen('mousedown', { target: 'window' })\r\n handleMouseDown(e: MouseEvent) {\r\n this.isInsideClick = !!(this.wrapper && this.wrapper.contains(e.target as Node));\r\n }\r\n\r\n @Listen('click', { target: 'window' })\r\n handleWindowClick(e: MouseEvent) {\r\n if (this.isInsideClick) {\r\n this.isInsideClick = false;\r\n return;\r\n }\r\n if (this.wrapper?.contains(e.target as Node)) return;\r\n this.sdClose.emit();\r\n }\r\n\r\n render() {\r\n return <slot></slot>;\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"p-BVQq85Sb.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-portal/sd-portal.tsx"],"sourcesContent":["import { Component, Element, Event, EventEmitter, Listen, Prop, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'sd-portal',\r\n shadow: false,\r\n})\r\nexport class SdPortal {\r\n @Element() hostEl!: HTMLElement;\r\n @Prop() to: HTMLElement | string = 'body';\r\n @Prop() parentRef: HTMLElement | null = null;\r\n @Prop() offset: [number, number] = [0, 4];\r\n @Prop() zIndex: number = 9999;\r\n @Prop() open: boolean = false;\r\n\r\n @Event() sdClose!: EventEmitter<void>;\r\n\r\n private container?: HTMLElement;\r\n private wrapper?: HTMLElement;\r\n private rafId?: number;\r\n private isInsideClick = false;\r\n\r\n private resizeObserver?: ResizeObserver;\r\n private mutationObserver?: MutationObserver;\r\n\r\n componentDidLoad() {\r\n this.container = this.resolveContainer();\r\n this.createWrapper();\r\n this.moveSlotContent();\r\n this.updatePosition();\r\n this.observeParent();\r\n }\r\n\r\n componentDidRender() {\r\n if (!this.wrapper) return;\r\n this.wrapper.style.display = this.open ? 'block' : 'none';\r\n if (this.open) this.updatePosition();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.unobserveParent();\r\n this.wrapper?.remove();\r\n }\r\n\r\n private resolveContainer(): HTMLElement {\r\n const el = typeof this.to === 'string' ? document.querySelector(this.to) : this.to;\r\n return el instanceof HTMLElement ? el : document.body;\r\n }\r\n\r\n private createWrapper() {\r\n this.wrapper = document.createElement('div');\r\n Object.assign(this.wrapper.style, {\r\n position: 'absolute',\r\n zIndex: this.zIndex.toString(),\r\n transition: 'opacity 0.4s',\r\n });\r\n this.container!.appendChild(this.wrapper);\r\n }\r\n\r\n private moveSlotContent() {\r\n if (!this.wrapper) return;\r\n const nodes = Array.from(this.hostEl.childNodes).filter(n => n.nodeType !== Node.COMMENT_NODE);\r\n nodes.forEach(n => this.wrapper!.appendChild(n));\r\n }\r\n\r\n // 위치 갱신 (scroll / resize)\r\n @Listen('scroll', { target: 'window' })\r\n @Listen('resize', { target: 'window' })\r\n updatePosition() {\r\n if (this.rafId) cancelAnimationFrame(this.rafId);\r\n this.rafId = requestAnimationFrame(() => {\r\n if (!this.parentRef || !this.wrapper) return;\r\n const rect = this.parentRef.getBoundingClientRect();\r\n this.wrapper.style.top = `${rect.bottom + window.scrollY + this.offset[1]}px`;\r\n this.wrapper.style.left = `${rect.left + window.scrollX + this.offset[0]}px`;\r\n });\r\n }\r\n\r\n // parentRef의 이동 / 크기변경 감지\r\n private observeParent() {\r\n if (!this.parentRef) return;\r\n\r\n this.resizeObserver = new ResizeObserver(() => this.updatePosition());\r\n this.resizeObserver.observe(this.parentRef);\r\n\r\n this.mutationObserver = new MutationObserver(() => this.updatePosition());\r\n this.mutationObserver.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n\r\n private unobserveParent() {\r\n this.resizeObserver?.disconnect();\r\n this.mutationObserver?.disconnect();\r\n }\r\n\r\n // 외부 클릭 감지\r\n @Listen('mousedown', { target: 'window' })\r\n handleMouseDown(e: MouseEvent) {\r\n this.isInsideClick = !!(this.wrapper && this.wrapper.contains(e.target as Node));\r\n }\r\n\r\n @Listen('click', { target: 'window' })\r\n handleWindowClick(e: MouseEvent) {\r\n if (this.isInsideClick) {\r\n this.isInsideClick = false;\r\n return;\r\n }\r\n if (this.wrapper?.contains(e.target as Node)) return;\r\n this.sdClose.emit();\r\n }\r\n\r\n render() {\r\n return <slot></slot>;\r\n }\r\n}\r\n"],"version":3}