@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.
- package/dist/cjs/design-system.cjs.js +1 -1
- package/dist/cjs/index-Cbd_FIth.js +21891 -0
- package/dist/cjs/index-Cbd_FIth.js.map +1 -0
- package/dist/cjs/index-DoEgM-7l.js +2586 -0
- package/dist/cjs/index-DoEgM-7l.js.map +1 -0
- package/dist/cjs/{index-D3QUS1Eb.js → index-iB3JlG0y.js} +5 -5
- package/dist/cjs/index-iB3JlG0y.js.map +1 -0
- package/dist/cjs/index.cjs.js +121 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sd-button_4.cjs.entry.js +1 -1
- package/dist/cjs/sd-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-box_2.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-range-picker.cjs.entry.js +1 -1
- package/dist/cjs/sd-pagination_2.cjs.entry.js +2 -2
- package/dist/cjs/sd-popover.cjs.entry.js +2 -2
- package/dist/cjs/sd-select-option.cjs.entry.js +1 -1
- package/dist/cjs/sd-select.cjs.entry.js +1 -1
- package/dist/cjs/sd-table.cjs.entry.js +1 -1
- package/dist/cjs/sd-tag.cjs.entry.js +1 -1
- package/dist/cjs/sd-tooltip-portal.cjs.entry.js +1 -1
- package/dist/cjs/{tooltipArrow-DKQk16So.js → tooltipArrow-CSLQDjwL.js} +3 -3
- package/dist/cjs/{tooltipArrow-DKQk16So.js.map → tooltipArrow-CSLQDjwL.js.map} +1 -1
- package/dist/collection/index.js +4 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/next-hydrate.js +52 -0
- package/dist/collection/utils/next-hydrate.js.map +1 -0
- package/dist/collection/utils/next-react-wrapper.js +61 -0
- package/dist/collection/utils/next-react-wrapper.js.map +1 -0
- package/dist/components/index.js +115 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-BBcRxAHQ.js → p-B0--8AFP.js} +3 -3
- package/dist/components/{p-BBcRxAHQ.js.map → p-B0--8AFP.js.map} +1 -1
- package/dist/components/{p-CcIaxZWu.js → p-B3-UiLOb.js} +3 -3
- package/dist/components/{p-CcIaxZWu.js.map → p-B3-UiLOb.js.map} +1 -1
- package/dist/components/{p-DqOQpFv5.js → p-BVQq85Sb.js} +3 -3
- package/dist/components/{p-DqOQpFv5.js.map → p-BVQq85Sb.js.map} +1 -1
- package/dist/components/p-BjTJkvEh.js +21889 -0
- package/dist/components/p-BjTJkvEh.js.map +1 -0
- package/dist/components/{p-CIPoof7_.js → p-BrGg4-IA.js} +4 -4
- package/dist/components/{p-CIPoof7_.js.map → p-BrGg4-IA.js.map} +1 -1
- package/dist/components/{p-DeANT-RC.js → p-CIRxuq9O.js} +3 -3
- package/dist/components/{p-DeANT-RC.js.map → p-CIRxuq9O.js.map} +1 -1
- package/dist/components/{p-Dk7pK8T6.js → p-CmjvNSNS.js} +3 -3
- package/dist/components/{p-Dk7pK8T6.js.map → p-CmjvNSNS.js.map} +1 -1
- package/dist/components/{p-BKNkY07K.js → p-CvQARSF2.js} +4 -4
- package/dist/components/{p-BKNkY07K.js.map → p-CvQARSF2.js.map} +1 -1
- package/dist/components/{p-BJe9kiv9.js → p-CwAyLWEQ.js} +4 -4
- package/dist/components/{p-BJe9kiv9.js.map → p-CwAyLWEQ.js.map} +1 -1
- package/dist/components/{p-D7GkmGX3.js → p-Cwa0Scin.js} +4 -4
- package/dist/components/{p-D7GkmGX3.js.map → p-Cwa0Scin.js.map} +1 -1
- package/dist/components/{p-C_ZLFIzZ.js → p-D_I5tXD6.js} +6 -6
- package/dist/components/p-D_I5tXD6.js.map +1 -0
- package/dist/components/{p-DmNaQwtz.js → p-Dg9QFKjM.js} +5 -5
- package/dist/components/{p-DmNaQwtz.js.map → p-Dg9QFKjM.js.map} +1 -1
- package/dist/components/{p-CR_d0Wrj.js → p-DyncZo9Q.js} +7 -7
- package/dist/components/{p-CR_d0Wrj.js.map → p-DyncZo9Q.js.map} +1 -1
- package/dist/components/p-dBol_ZO8.js +2584 -0
- package/dist/components/p-dBol_ZO8.js.map +1 -0
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-date-box.js +1 -1
- package/dist/components/sd-date-picker.js +5 -5
- package/dist/components/sd-date-range-picker.js +5 -5
- package/dist/components/sd-guide.js +4 -4
- package/dist/components/sd-icon.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +5 -5
- package/dist/components/sd-portal.js +1 -1
- package/dist/components/sd-select-option.js +1 -1
- package/dist/components/sd-select.js +6 -6
- package/dist/components/sd-table.js +7 -7
- package/dist/components/sd-tag.js +1 -1
- package/dist/components/sd-tooltip-portal.js +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/index.esm.js +1 -1
- package/dist/design-system/index.esm.js.map +1 -1
- package/dist/design-system/{p-df03331a.entry.js → p-12aaaa03.entry.js} +2 -2
- package/dist/design-system/{p-94f7e066.entry.js → p-1f393066.entry.js} +2 -2
- package/dist/design-system/{p-a24a9772.entry.js → p-2bb928fc.entry.js} +2 -2
- package/dist/design-system/{p-24f6b072.entry.js → p-5db3252c.entry.js} +2 -2
- package/dist/design-system/{p-10264e8e.entry.js → p-682cf57d.entry.js} +2 -2
- package/dist/design-system/{p-0bdf567e.entry.js → p-7e33f5e5.entry.js} +2 -2
- package/dist/design-system/{p-a9713309.entry.js → p-8b2b47a7.entry.js} +2 -2
- package/dist/design-system/{p-0366ba33.entry.js → p-912c7a8d.entry.js} +2 -2
- package/dist/design-system/{p-8844ec3b.entry.js → p-97dbc008.entry.js} +2 -2
- package/dist/design-system/{p-bc64ffa7.entry.js → p-997af0ed.entry.js} +2 -2
- package/dist/design-system/p-BjTJkvEh.js +23 -0
- package/dist/design-system/p-BjTJkvEh.js.map +1 -0
- package/dist/design-system/{p-B9LQNxjd.js → p-DMW6VeLX.js} +2 -2
- package/dist/design-system/{p-B9LQNxjd.js.map → p-DMW6VeLX.js.map} +1 -1
- package/dist/design-system/p-DVhJrGoi.js +3 -0
- package/dist/design-system/p-DVhJrGoi.js.map +1 -0
- package/dist/design-system/{p-764e14ea.entry.js → p-c87c465b.entry.js} +2 -2
- package/dist/design-system/p-dBol_ZO8.js +3 -0
- package/dist/design-system/p-dBol_ZO8.js.map +1 -0
- package/dist/design-system/{p-329d3532.entry.js → p-e40ff66a.entry.js} +2 -2
- package/dist/esm/design-system.js +2 -2
- package/dist/esm/index-BjTJkvEh.js +21889 -0
- package/dist/esm/index-BjTJkvEh.js.map +1 -0
- package/dist/esm/{index-DzM-iWij.js → index-DVhJrGoi.js} +5 -5
- package/dist/esm/index-DVhJrGoi.js.map +1 -0
- package/dist/esm/index-dBol_ZO8.js +2584 -0
- package/dist/esm/index-dBol_ZO8.js.map +1 -0
- package/dist/esm/index.js +114 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/sd-button_4.entry.js +1 -1
- package/dist/esm/sd-checkbox.entry.js +1 -1
- package/dist/esm/sd-date-box_2.entry.js +1 -1
- package/dist/esm/sd-date-picker.entry.js +1 -1
- package/dist/esm/sd-date-range-picker.entry.js +1 -1
- package/dist/esm/sd-pagination_2.entry.js +2 -2
- package/dist/esm/sd-popover.entry.js +2 -2
- package/dist/esm/sd-select-option.entry.js +1 -1
- package/dist/esm/sd-select.entry.js +1 -1
- package/dist/esm/sd-table.entry.js +1 -1
- package/dist/esm/sd-tag.entry.js +1 -1
- package/dist/esm/sd-tooltip-portal.entry.js +1 -1
- package/dist/esm/{tooltipArrow-Dybd-1up.js → tooltipArrow-BZiofDi8.js} +3 -3
- package/dist/esm/{tooltipArrow-Dybd-1up.js.map → tooltipArrow-BZiofDi8.js.map} +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/utils/next-hydrate.d.ts +18 -0
- package/dist/types/utils/next-react-wrapper.d.ts +23 -0
- package/hydrate/index.d.ts +275 -0
- package/hydrate/index.js +22315 -0
- package/hydrate/index.mjs +22307 -0
- package/hydrate/package.json +12 -0
- package/package.json +10 -3
- package/dist/cjs/index-D3QUS1Eb.js.map +0 -1
- package/dist/components/p-C_ZLFIzZ.js.map +0 -1
- package/dist/design-system/p-DzM-iWij.js +0 -3
- package/dist/design-system/p-DzM-iWij.js.map +0 -1
- package/dist/esm/index-DzM-iWij.js.map +0 -1
- /package/dist/design-system/{p-df03331a.entry.js.map → p-12aaaa03.entry.js.map} +0 -0
- /package/dist/design-system/{p-94f7e066.entry.js.map → p-1f393066.entry.js.map} +0 -0
- /package/dist/design-system/{p-a24a9772.entry.js.map → p-2bb928fc.entry.js.map} +0 -0
- /package/dist/design-system/{p-24f6b072.entry.js.map → p-5db3252c.entry.js.map} +0 -0
- /package/dist/design-system/{p-10264e8e.entry.js.map → p-682cf57d.entry.js.map} +0 -0
- /package/dist/design-system/{p-0bdf567e.entry.js.map → p-7e33f5e5.entry.js.map} +0 -0
- /package/dist/design-system/{p-a9713309.entry.js.map → p-8b2b47a7.entry.js.map} +0 -0
- /package/dist/design-system/{p-0366ba33.entry.js.map → p-912c7a8d.entry.js.map} +0 -0
- /package/dist/design-system/{p-8844ec3b.entry.js.map → p-97dbc008.entry.js.map} +0 -0
- /package/dist/design-system/{p-bc64ffa7.entry.js.map → p-997af0ed.entry.js.map} +0 -0
- /package/dist/design-system/{p-764e14ea.entry.js.map → p-c87c465b.entry.js.map} +0 -0
- /package/dist/design-system/{p-329d3532.entry.js.map → p-e40ff66a.entry.js.map} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-iB3JlG0y.js');
|
|
4
4
|
|
|
5
5
|
const TooltipArrow = (props) => (index.h("svg", { width: "16", height: "12", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, index.h("path", { d: "M8.83205 10.7519C8.43623 11.3457 7.56377 11.3457 7.16795 10.7519L1.04907e-06 -1.39876e-06L16 0L8.83205 10.7519Z", fill: "#07284A" })));
|
|
6
6
|
|
|
7
7
|
exports.TooltipArrow = TooltipArrow;
|
|
8
|
-
//# sourceMappingURL=tooltipArrow-
|
|
8
|
+
//# sourceMappingURL=tooltipArrow-CSLQDjwL.js.map
|
|
9
9
|
|
|
10
|
-
//# sourceMappingURL=tooltipArrow-
|
|
10
|
+
//# sourceMappingURL=tooltipArrow-CSLQDjwL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipArrow-
|
|
1
|
+
{"version":3,"file":"tooltipArrow-CSLQDjwL.js","sources":["src/components/assets/tooltipArrow.tsx"],"sourcesContent":["import { h } from '@stencil/core';\r\n\r\nexport const TooltipArrow = (props: SVGProps) => (\r\n <svg\r\n width=\"16\"\r\n height=\"12\"\r\n viewBox=\"0 0 16 12\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M8.83205 10.7519C8.43623 11.3457 7.56377 11.3457 7.16795 10.7519L1.04907e-06 -1.39876e-06L16 0L8.83205 10.7519Z\"\r\n fill=\"#07284A\"\r\n />\r\n </svg>\r\n);\r\n"],"names":["h"],"mappings":";;;;AAEa,MAAA,YAAY,GAAG,CAAC,KAAe,MAC3CA,OACC,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,KAC9B,KAAK,EAAA,EAETA,OACC,CAAA,MAAA,EAAA,EAAA,CAAC,EAAC,iHAAiH,EACnH,IAAI,EAAC,SAAS,EAAA,CACb,CACG;;;;"}
|
package/dist/collection/index.js
CHANGED
|
@@ -8,4 +8,8 @@
|
|
|
8
8
|
* to consume components of this package as outlined in the `README.md`.
|
|
9
9
|
*/
|
|
10
10
|
export { format } from './utils/utils';
|
|
11
|
+
// Export Next.js utilities
|
|
12
|
+
export { defineCustomElements, waitForStencilHydration, initStencilForNextjs, CLIENT_ONLY_COMPONENTS, isClientOnlyComponent, } from './utils/next-react-wrapper';
|
|
13
|
+
// Export hydration utilities
|
|
14
|
+
export { renderStencilComponents, hydrateStencilComponents, STENCIL_CONFIG, } from './utils/next-hydrate';
|
|
11
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC","sourcesContent":["/**\r\n * @fileoverview entry point for your component library\r\n *\r\n * This is the entry point for your component library. Use this file to export utilities,\r\n * constants or data structure that accompany your components.\r\n *\r\n * DO NOT use this file to export your components. Instead, use the recommended approaches\r\n * to consume components of this package as outlined in the `README.md`.\r\n */\r\n\r\nexport { format } from './utils/utils';\r\nexport type * from './components.d.ts';\r\n\r\n// Export sd-table types\r\nexport type { SdTableSortDir, SdTableColumn, Row } from './components/sd-table/sd-table';\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAMvC,2BAA2B;AAC3B,OAAO,EACN,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,4BAA4B,CAAC;AAEpC,6BAA6B;AAC7B,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,GACd,MAAM,sBAAsB,CAAC","sourcesContent":["/**\r\n * @fileoverview entry point for your component library\r\n *\r\n * This is the entry point for your component library. Use this file to export utilities,\r\n * constants or data structure that accompany your components.\r\n *\r\n * DO NOT use this file to export your components. Instead, use the recommended approaches\r\n * to consume components of this package as outlined in the `README.md`.\r\n */\r\n\r\nexport { format } from './utils/utils';\r\nexport type * from './components.d.ts';\r\n\r\n// Export sd-table types\r\nexport type { SdTableSortDir, SdTableColumn, Row } from './components/sd-table/sd-table';\r\n\r\n// Export Next.js utilities\r\nexport {\r\n defineCustomElements,\r\n waitForStencilHydration,\r\n initStencilForNextjs,\r\n CLIENT_ONLY_COMPONENTS,\r\n isClientOnlyComponent,\r\n} from './utils/next-react-wrapper';\r\n\r\n// Export hydration utilities\r\nexport {\r\n renderStencilComponents,\r\n hydrateStencilComponents,\r\n STENCIL_CONFIG,\r\n} from './utils/next-hydrate';\r\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next.js SSR을 위한 서버사이드 렌더링 함수
|
|
3
|
+
* @param html HTML 문자열
|
|
4
|
+
* @returns 렌더링된 HTML 문자열
|
|
5
|
+
*/
|
|
6
|
+
export async function renderStencilComponents(html) {
|
|
7
|
+
// 서버 환경에서만 hydrate 모듈을 동적으로 import
|
|
8
|
+
if (typeof window === 'undefined') {
|
|
9
|
+
try {
|
|
10
|
+
const { renderToString } = await import('../../hydrate');
|
|
11
|
+
const results = await renderToString(html, {
|
|
12
|
+
prettyHtml: false,
|
|
13
|
+
removeUnusedStyles: true,
|
|
14
|
+
clientHydrateAnnotations: true,
|
|
15
|
+
});
|
|
16
|
+
return results.html || html;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.warn('Failed to render Stencil components on server:', error);
|
|
20
|
+
return html;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return html;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Next.js 클라이언트사이드 하이드레이션 함수
|
|
27
|
+
* @param document HTML 문서 객체
|
|
28
|
+
*/
|
|
29
|
+
export async function hydrateStencilComponents(document) {
|
|
30
|
+
// 클라이언트 환경에서만 hydrate 모듈을 동적으로 import
|
|
31
|
+
if (typeof window !== 'undefined') {
|
|
32
|
+
try {
|
|
33
|
+
const { hydrateDocument } = await import('../../hydrate');
|
|
34
|
+
await hydrateDocument(document, {
|
|
35
|
+
runtimeLogging: false,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.warn('Failed to hydrate Stencil components on client:', error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Next.js에서 Stencil 컴포넌트 사용을 위한 설정
|
|
45
|
+
*/
|
|
46
|
+
export const STENCIL_CONFIG = {
|
|
47
|
+
// 컴포넌트가 hydrate되었는지 확인하는 속성
|
|
48
|
+
hydratedAttribute: 'hydrated',
|
|
49
|
+
// SSR에서 제외할 컴포넌트들 (클라이언트에서만 렌더링)
|
|
50
|
+
clientOnlyComponents: ['sd-date-picker', 'sd-date-range-picker'],
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=next-hydrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-hydrate.js","sourceRoot":"","sources":["../../src/utils/next-hydrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAY;IACzD,mCAAmC;IACnC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC;YACJ,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE;gBAC1C,UAAU,EAAE,KAAK;gBACjB,kBAAkB,EAAE,IAAI;gBACxB,wBAAwB,EAAE,IAAI;aAC9B,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAAkB;IAChE,sCAAsC;IACtC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC;YACJ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,eAAe,CAAC,QAAQ,EAAE;gBAC/B,cAAc,EAAE,KAAK;aACrB,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,4BAA4B;IAC5B,iBAAiB,EAAE,UAAU;IAE7B,iCAAiC;IACjC,oBAAoB,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;CAChE,CAAC","sourcesContent":["/**\r\n * Next.js SSR을 위한 서버사이드 렌더링 함수\r\n * @param html HTML 문자열\r\n * @returns 렌더링된 HTML 문자열\r\n */\r\nexport async function renderStencilComponents(html: string): Promise<string> {\r\n // 서버 환경에서만 hydrate 모듈을 동적으로 import\r\n if (typeof window === 'undefined') {\r\n try {\r\n const { renderToString } = await import('../../hydrate');\r\n const results = await renderToString(html, {\r\n prettyHtml: false,\r\n removeUnusedStyles: true,\r\n clientHydrateAnnotations: true,\r\n });\r\n\r\n return results.html || html;\r\n } catch (error) {\r\n console.warn('Failed to render Stencil components on server:', error);\r\n return html;\r\n }\r\n }\r\n\r\n return html;\r\n}\r\n\r\n/**\r\n * Next.js 클라이언트사이드 하이드레이션 함수\r\n * @param document HTML 문서 객체\r\n */\r\nexport async function hydrateStencilComponents(document: Document): Promise<void> {\r\n // 클라이언트 환경에서만 hydrate 모듈을 동적으로 import\r\n if (typeof window !== 'undefined') {\r\n try {\r\n const { hydrateDocument } = await import('../../hydrate');\r\n await hydrateDocument(document, {\r\n runtimeLogging: false,\r\n });\r\n } catch (error) {\r\n console.warn('Failed to hydrate Stencil components on client:', error);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Next.js에서 Stencil 컴포넌트 사용을 위한 설정\r\n */\r\nexport const STENCIL_CONFIG = {\r\n // 컴포넌트가 hydrate되었는지 확인하는 속성\r\n hydratedAttribute: 'hydrated',\r\n\r\n // SSR에서 제외할 컴포넌트들 (클라이언트에서만 렌더링)\r\n clientOnlyComponents: ['sd-date-picker', 'sd-date-range-picker'],\r\n};\r\n"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next.js에서 Stencil 컴포넌트 사용을 위한 유틸리티 함수들
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 클라이언트 사이드에서만 Stencil 컴포넌트를 로드하는 함수
|
|
6
|
+
*/
|
|
7
|
+
export const defineCustomElements = async () => {
|
|
8
|
+
if (typeof window !== 'undefined') {
|
|
9
|
+
const { defineCustomElements } = await import('../../loader');
|
|
10
|
+
await defineCustomElements();
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Stencil 컴포넌트가 hydrate되었는지 확인하는 함수
|
|
15
|
+
*/
|
|
16
|
+
export const waitForStencilHydration = (element, timeout = 5000) => {
|
|
17
|
+
return new Promise(resolve => {
|
|
18
|
+
if (element.hasAttribute('hydrated')) {
|
|
19
|
+
resolve(true);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const observer = new MutationObserver(() => {
|
|
23
|
+
if (element.hasAttribute('hydrated')) {
|
|
24
|
+
observer.disconnect();
|
|
25
|
+
resolve(true);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
observer.observe(element, {
|
|
29
|
+
attributes: true,
|
|
30
|
+
attributeFilter: ['hydrated'],
|
|
31
|
+
});
|
|
32
|
+
// 타임아웃 설정
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
observer.disconnect();
|
|
35
|
+
resolve(false);
|
|
36
|
+
}, timeout);
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Next.js에서 Stencil 컴포넌트 초기화를 위한 설정
|
|
41
|
+
*/
|
|
42
|
+
export const initStencilForNextjs = () => {
|
|
43
|
+
if (typeof window !== 'undefined') {
|
|
44
|
+
// 전역 설정
|
|
45
|
+
window.stencil = {
|
|
46
|
+
...(window.stencil || {}),
|
|
47
|
+
hydrateFlag: 'hydrated',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* SSR에서 제외할 컴포넌트 목록
|
|
53
|
+
*/
|
|
54
|
+
export const CLIENT_ONLY_COMPONENTS = ['sd-date-picker', 'sd-date-range-picker'];
|
|
55
|
+
/**
|
|
56
|
+
* 컴포넌트가 클라이언트 전용인지 확인
|
|
57
|
+
*/
|
|
58
|
+
export const isClientOnlyComponent = (tagName) => {
|
|
59
|
+
return CLIENT_ONLY_COMPONENTS.includes(tagName);
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=next-react-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-react-wrapper.js","sourceRoot":"","sources":["../../src/utils/next-react-wrapper.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;IAC9C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9D,MAAM,oBAAoB,EAAE,CAAC;IAC9B,CAAC;AACF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAoB,EAAE,OAAO,GAAG,IAAI,EAAoB,EAAE;IACjG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC5B,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;YAC1C,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YACzB,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,UAAU,CAAC;SAC7B,CAAC,CAAC;QAEH,UAAU;QACV,UAAU,CAAC,GAAG,EAAE;YACf,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACxC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,QAAQ;QACP,MAAc,CAAC,OAAO,GAAG;YACzB,GAAG,CAAE,MAAc,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,WAAW,EAAE,UAAU;SACvB,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE;IACjE,OAAO,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC","sourcesContent":["/**\r\n * Next.js에서 Stencil 컴포넌트 사용을 위한 유틸리티 함수들\r\n */\r\n\r\n/**\r\n * 클라이언트 사이드에서만 Stencil 컴포넌트를 로드하는 함수\r\n */\r\nexport const defineCustomElements = async () => {\r\n if (typeof window !== 'undefined') {\r\n const { defineCustomElements } = await import('../../loader');\r\n await defineCustomElements();\r\n }\r\n};\r\n\r\n/**\r\n * Stencil 컴포넌트가 hydrate되었는지 확인하는 함수\r\n */\r\nexport const waitForStencilHydration = (element: HTMLElement, timeout = 5000): Promise<boolean> => {\r\n return new Promise(resolve => {\r\n if (element.hasAttribute('hydrated')) {\r\n resolve(true);\r\n return;\r\n }\r\n\r\n const observer = new MutationObserver(() => {\r\n if (element.hasAttribute('hydrated')) {\r\n observer.disconnect();\r\n resolve(true);\r\n }\r\n });\r\n\r\n observer.observe(element, {\r\n attributes: true,\r\n attributeFilter: ['hydrated'],\r\n });\r\n\r\n // 타임아웃 설정\r\n setTimeout(() => {\r\n observer.disconnect();\r\n resolve(false);\r\n }, timeout);\r\n });\r\n};\r\n\r\n/**\r\n * Next.js에서 Stencil 컴포넌트 초기화를 위한 설정\r\n */\r\nexport const initStencilForNextjs = () => {\r\n if (typeof window !== 'undefined') {\r\n // 전역 설정\r\n (window as any).stencil = {\r\n ...((window as any).stencil || {}),\r\n hydrateFlag: 'hydrated',\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * SSR에서 제외할 컴포넌트 목록\r\n */\r\nexport const CLIENT_ONLY_COMPONENTS = ['sd-date-picker', 'sd-date-range-picker'];\r\n\r\n/**\r\n * 컴포넌트가 클라이언트 전용인지 확인\r\n */\r\nexport const isClientOnlyComponent = (tagName: string): boolean => {\r\n return CLIENT_ONLY_COMPONENTS.includes(tagName);\r\n};\r\n"]}
|
package/dist/components/index.js
CHANGED
|
@@ -1,10 +1,123 @@
|
|
|
1
|
-
export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-
|
|
1
|
+
export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-D_I5tXD6.js';
|
|
2
2
|
|
|
3
3
|
function format(first, middle, last) {
|
|
4
4
|
return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Next.js에서 Stencil 컴포넌트 사용을 위한 유틸리티 함수들
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* 클라이언트 사이드에서만 Stencil 컴포넌트를 로드하는 함수
|
|
12
|
+
*/
|
|
13
|
+
const defineCustomElements = async () => {
|
|
14
|
+
if (typeof window !== 'undefined') {
|
|
15
|
+
const { defineCustomElements } = await import('./p-dBol_ZO8.js');
|
|
16
|
+
await defineCustomElements();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Stencil 컴포넌트가 hydrate되었는지 확인하는 함수
|
|
21
|
+
*/
|
|
22
|
+
const waitForStencilHydration = (element, timeout = 5000) => {
|
|
23
|
+
return new Promise(resolve => {
|
|
24
|
+
if (element.hasAttribute('hydrated')) {
|
|
25
|
+
resolve(true);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const observer = new MutationObserver(() => {
|
|
29
|
+
if (element.hasAttribute('hydrated')) {
|
|
30
|
+
observer.disconnect();
|
|
31
|
+
resolve(true);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
observer.observe(element, {
|
|
35
|
+
attributes: true,
|
|
36
|
+
attributeFilter: ['hydrated'],
|
|
37
|
+
});
|
|
38
|
+
// 타임아웃 설정
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
observer.disconnect();
|
|
41
|
+
resolve(false);
|
|
42
|
+
}, timeout);
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Next.js에서 Stencil 컴포넌트 초기화를 위한 설정
|
|
47
|
+
*/
|
|
48
|
+
const initStencilForNextjs = () => {
|
|
49
|
+
if (typeof window !== 'undefined') {
|
|
50
|
+
// 전역 설정
|
|
51
|
+
window.stencil = {
|
|
52
|
+
...(window.stencil || {}),
|
|
53
|
+
hydrateFlag: 'hydrated',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* SSR에서 제외할 컴포넌트 목록
|
|
59
|
+
*/
|
|
60
|
+
const CLIENT_ONLY_COMPONENTS = ['sd-date-picker', 'sd-date-range-picker'];
|
|
61
|
+
/**
|
|
62
|
+
* 컴포넌트가 클라이언트 전용인지 확인
|
|
63
|
+
*/
|
|
64
|
+
const isClientOnlyComponent = (tagName) => {
|
|
65
|
+
return CLIENT_ONLY_COMPONENTS.includes(tagName);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Next.js SSR을 위한 서버사이드 렌더링 함수
|
|
70
|
+
* @param html HTML 문자열
|
|
71
|
+
* @returns 렌더링된 HTML 문자열
|
|
72
|
+
*/
|
|
73
|
+
async function renderStencilComponents(html) {
|
|
74
|
+
// 서버 환경에서만 hydrate 모듈을 동적으로 import
|
|
75
|
+
if (typeof window === 'undefined') {
|
|
76
|
+
try {
|
|
77
|
+
const { renderToString } = await import('./p-BjTJkvEh.js');
|
|
78
|
+
const results = await renderToString(html, {
|
|
79
|
+
prettyHtml: false,
|
|
80
|
+
removeUnusedStyles: true,
|
|
81
|
+
clientHydrateAnnotations: true,
|
|
82
|
+
});
|
|
83
|
+
return results.html || html;
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.warn('Failed to render Stencil components on server:', error);
|
|
87
|
+
return html;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return html;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Next.js 클라이언트사이드 하이드레이션 함수
|
|
94
|
+
* @param document HTML 문서 객체
|
|
95
|
+
*/
|
|
96
|
+
async function hydrateStencilComponents(document) {
|
|
97
|
+
// 클라이언트 환경에서만 hydrate 모듈을 동적으로 import
|
|
98
|
+
if (typeof window !== 'undefined') {
|
|
99
|
+
try {
|
|
100
|
+
const { hydrateDocument } = await import('./p-BjTJkvEh.js');
|
|
101
|
+
await hydrateDocument(document, {
|
|
102
|
+
runtimeLogging: false,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.warn('Failed to hydrate Stencil components on client:', error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Next.js에서 Stencil 컴포넌트 사용을 위한 설정
|
|
112
|
+
*/
|
|
113
|
+
const STENCIL_CONFIG = {
|
|
114
|
+
// 컴포넌트가 hydrate되었는지 확인하는 속성
|
|
115
|
+
hydratedAttribute: 'hydrated',
|
|
116
|
+
// SSR에서 제외할 컴포넌트들 (클라이언트에서만 렌더링)
|
|
117
|
+
clientOnlyComponents: ['sd-date-picker', 'sd-date-range-picker'],
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export { CLIENT_ONLY_COMPONENTS, STENCIL_CONFIG, defineCustomElements, format, hydrateStencilComponents, initStencilForNextjs, isClientOnlyComponent, renderStencilComponents, waitForStencilHydration };
|
|
8
121
|
//# sourceMappingURL=index.js.map
|
|
9
122
|
|
|
10
123
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index.js","mappings":";;SAAgB,MAAM,CAAC,KAAc,EAAE,MAAe,EAAE,IAAa,EAAA;AACnE,IAAA,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,MAAM,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF;;;;","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["export function format(first?: string, middle?: string, last?: string): string {\r\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\r\n}\r\n"],"version":3}
|
|
1
|
+
{"file":"index.js","mappings":"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","names":[],"sources":["src/utils/utils.ts","src/utils/next-react-wrapper.tsx","src/utils/next-hydrate.ts"],"sourcesContent":["export function format(first?: string, middle?: string, last?: string): string {\r\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\r\n}\r\n","/**\r\n * Next.js에서 Stencil 컴포넌트 사용을 위한 유틸리티 함수들\r\n */\r\n\r\n/**\r\n * 클라이언트 사이드에서만 Stencil 컴포넌트를 로드하는 함수\r\n */\r\nexport const defineCustomElements = async () => {\r\n if (typeof window !== 'undefined') {\r\n const { defineCustomElements } = await import('../../loader');\r\n await defineCustomElements();\r\n }\r\n};\r\n\r\n/**\r\n * Stencil 컴포넌트가 hydrate되었는지 확인하는 함수\r\n */\r\nexport const waitForStencilHydration = (element: HTMLElement, timeout = 5000): Promise<boolean> => {\r\n return new Promise(resolve => {\r\n if (element.hasAttribute('hydrated')) {\r\n resolve(true);\r\n return;\r\n }\r\n\r\n const observer = new MutationObserver(() => {\r\n if (element.hasAttribute('hydrated')) {\r\n observer.disconnect();\r\n resolve(true);\r\n }\r\n });\r\n\r\n observer.observe(element, {\r\n attributes: true,\r\n attributeFilter: ['hydrated'],\r\n });\r\n\r\n // 타임아웃 설정\r\n setTimeout(() => {\r\n observer.disconnect();\r\n resolve(false);\r\n }, timeout);\r\n });\r\n};\r\n\r\n/**\r\n * Next.js에서 Stencil 컴포넌트 초기화를 위한 설정\r\n */\r\nexport const initStencilForNextjs = () => {\r\n if (typeof window !== 'undefined') {\r\n // 전역 설정\r\n (window as any).stencil = {\r\n ...((window as any).stencil || {}),\r\n hydrateFlag: 'hydrated',\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * SSR에서 제외할 컴포넌트 목록\r\n */\r\nexport const CLIENT_ONLY_COMPONENTS = ['sd-date-picker', 'sd-date-range-picker'];\r\n\r\n/**\r\n * 컴포넌트가 클라이언트 전용인지 확인\r\n */\r\nexport const isClientOnlyComponent = (tagName: string): boolean => {\r\n return CLIENT_ONLY_COMPONENTS.includes(tagName);\r\n};\r\n","/**\r\n * Next.js SSR을 위한 서버사이드 렌더링 함수\r\n * @param html HTML 문자열\r\n * @returns 렌더링된 HTML 문자열\r\n */\r\nexport async function renderStencilComponents(html: string): Promise<string> {\r\n // 서버 환경에서만 hydrate 모듈을 동적으로 import\r\n if (typeof window === 'undefined') {\r\n try {\r\n const { renderToString } = await import('../../hydrate');\r\n const results = await renderToString(html, {\r\n prettyHtml: false,\r\n removeUnusedStyles: true,\r\n clientHydrateAnnotations: true,\r\n });\r\n\r\n return results.html || html;\r\n } catch (error) {\r\n console.warn('Failed to render Stencil components on server:', error);\r\n return html;\r\n }\r\n }\r\n\r\n return html;\r\n}\r\n\r\n/**\r\n * Next.js 클라이언트사이드 하이드레이션 함수\r\n * @param document HTML 문서 객체\r\n */\r\nexport async function hydrateStencilComponents(document: Document): Promise<void> {\r\n // 클라이언트 환경에서만 hydrate 모듈을 동적으로 import\r\n if (typeof window !== 'undefined') {\r\n try {\r\n const { hydrateDocument } = await import('../../hydrate');\r\n await hydrateDocument(document, {\r\n runtimeLogging: false,\r\n });\r\n } catch (error) {\r\n console.warn('Failed to hydrate Stencil components on client:', error);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Next.js에서 Stencil 컴포넌트 사용을 위한 설정\r\n */\r\nexport const STENCIL_CONFIG = {\r\n // 컴포넌트가 hydrate되었는지 확인하는 속성\r\n hydratedAttribute: 'hydrated',\r\n\r\n // SSR에서 제외할 컴포넌트들 (클라이언트에서만 렌더링)\r\n clientOnlyComponents: ['sd-date-picker', 'sd-date-range-picker'],\r\n};\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h, p as proxyCustomElement, H } from './p-
|
|
1
|
+
import { h, p as proxyCustomElement, H } from './p-D_I5tXD6.js';
|
|
2
2
|
|
|
3
3
|
const primary = "#051d36";
|
|
4
4
|
const secondary = "#555555";
|
|
@@ -602,6 +602,6 @@ function defineCustomElement() {
|
|
|
602
602
|
}
|
|
603
603
|
|
|
604
604
|
export { SdIcon as S, colors$1 as c, defineCustomElement as d, resolveColor as r };
|
|
605
|
-
//# sourceMappingURL=p-
|
|
605
|
+
//# sourceMappingURL=p-B0--8AFP.js.map
|
|
606
606
|
|
|
607
|
-
//# sourceMappingURL=p-
|
|
607
|
+
//# sourceMappingURL=p-B0--8AFP.js.map
|