@sellmate/design-system 0.0.8 → 0.0.9

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 (34) hide show
  1. package/dist/cjs/index.cjs.js +0 -121
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/collection/index.js +0 -4
  4. package/dist/collection/index.js.map +1 -1
  5. package/dist/components/index.js +1 -114
  6. package/dist/components/index.js.map +1 -1
  7. package/dist/design-system/index.esm.js +1 -1
  8. package/dist/design-system/index.esm.js.map +1 -1
  9. package/dist/esm/index.js +1 -114
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/types/index.d.ts +0 -2
  12. package/package.json +2 -2
  13. package/dist/cjs/index-Cbd_FIth.js +0 -21891
  14. package/dist/cjs/index-Cbd_FIth.js.map +0 -1
  15. package/dist/cjs/index-DoEgM-7l.js +0 -2586
  16. package/dist/cjs/index-DoEgM-7l.js.map +0 -1
  17. package/dist/collection/utils/next-hydrate.js +0 -52
  18. package/dist/collection/utils/next-hydrate.js.map +0 -1
  19. package/dist/collection/utils/next-react-wrapper.js +0 -61
  20. package/dist/collection/utils/next-react-wrapper.js.map +0 -1
  21. package/dist/components/p-BjTJkvEh.js +0 -21889
  22. package/dist/components/p-BjTJkvEh.js.map +0 -1
  23. package/dist/components/p-dBol_ZO8.js +0 -2584
  24. package/dist/components/p-dBol_ZO8.js.map +0 -1
  25. package/dist/design-system/p-BjTJkvEh.js +0 -23
  26. package/dist/design-system/p-BjTJkvEh.js.map +0 -1
  27. package/dist/design-system/p-dBol_ZO8.js +0 -3
  28. package/dist/design-system/p-dBol_ZO8.js.map +0 -1
  29. package/dist/esm/index-BjTJkvEh.js +0 -21889
  30. package/dist/esm/index-BjTJkvEh.js.map +0 -1
  31. package/dist/esm/index-dBol_ZO8.js +0 -2584
  32. package/dist/esm/index-dBol_ZO8.js.map +0 -1
  33. package/dist/types/utils/next-hydrate.d.ts +0 -18
  34. package/dist/types/utils/next-react-wrapper.d.ts +0 -23
@@ -4,126 +4,5 @@ function format(first, middle, last) {
4
4
  return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
5
5
  }
6
6
 
7
- /**
8
- * Next.js에서 Stencil 컴포넌트 사용을 위한 유틸리티 함수들
9
- */
10
- /**
11
- * 클라이언트 사이드에서만 Stencil 컴포넌트를 로드하는 함수
12
- */
13
- const defineCustomElements = async () => {
14
- if (typeof window !== 'undefined') {
15
- const { defineCustomElements } = await Promise.resolve().then(function () { return require('./index-DoEgM-7l.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 Promise.resolve().then(function () { return require('./index-Cbd_FIth.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 Promise.resolve().then(function () { return require('./index-Cbd_FIth.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
- exports.CLIENT_ONLY_COMPONENTS = CLIENT_ONLY_COMPONENTS;
121
- exports.STENCIL_CONFIG = STENCIL_CONFIG;
122
- exports.defineCustomElements = defineCustomElements;
123
7
  exports.format = format;
124
- exports.hydrateStencilComponents = hydrateStencilComponents;
125
- exports.initStencilForNextjs = initStencilForNextjs;
126
- exports.isClientOnlyComponent = isClientOnlyComponent;
127
- exports.renderStencilComponents = renderStencilComponents;
128
- exports.waitForStencilHydration = waitForStencilHydration;
129
8
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","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"],"names":[],"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;;ACFA;;AAEG;AAEH;;AAEG;AACU,MAAA,oBAAoB,GAAG,YAAW;AAC9C,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAClC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,oDAAO,qBAAc,KAAC;QAC7D,MAAM,oBAAoB,EAAE;;AAE9B;AAEA;;AAEG;AACU,MAAA,uBAAuB,GAAG,CAAC,OAAoB,EAAE,OAAO,GAAG,IAAI,KAAsB;AACjG,IAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC5B,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC;YACb;;AAGD,QAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,MAAK;AAC1C,YAAA,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;gBACrC,QAAQ,CAAC,UAAU,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC;;AAEf,SAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;AACzB,YAAA,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,UAAU,CAAC;AAC7B,SAAA,CAAC;;QAGF,UAAU,CAAC,MAAK;YACf,QAAQ,CAAC,UAAU,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC;SACd,EAAE,OAAO,CAAC;AACZ,KAAC,CAAC;AACH;AAEA;;AAEG;AACI,MAAM,oBAAoB,GAAG,MAAK;AACxC,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;QAEjC,MAAc,CAAC,OAAO,GAAG;AACzB,YAAA,IAAK,MAAc,CAAC,OAAO,IAAI,EAAE,CAAC;AAClC,YAAA,WAAW,EAAE,UAAU;SACvB;;AAEH;AAEA;;AAEG;MACU,sBAAsB,GAAG,CAAC,gBAAgB,EAAE,sBAAsB;AAE/E;;AAEG;AACU,MAAA,qBAAqB,GAAG,CAAC,OAAe,KAAa;AACjE,IAAA,OAAO,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD;;ACnEA;;;;AAIG;AACI,eAAe,uBAAuB,CAAC,IAAY,EAAA;;AAEzD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAClC,QAAA,IAAI;YACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,oDAAO,qBAAe,KAAC;AACxD,YAAA,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE;AAC1C,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,wBAAwB,EAAE,IAAI;AAC9B,aAAA,CAAC;AAEF,YAAA,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI;;QAC1B,OAAO,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC;AACrE,YAAA,OAAO,IAAI;;;AAIb,IAAA,OAAO,IAAI;AACZ;AAEA;;;AAGG;AACI,eAAe,wBAAwB,CAAC,QAAkB,EAAA;;AAEhE,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAClC,QAAA,IAAI;YACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,oDAAO,qBAAe,KAAC;YACzD,MAAM,eAAe,CAAC,QAAQ,EAAE;AAC/B,gBAAA,cAAc,EAAE,KAAK;AACrB,aAAA,CAAC;;QACD,OAAO,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,KAAK,CAAC;;;AAGzE;AAEA;;AAEG;AACU,MAAA,cAAc,GAAG;;AAE7B,IAAA,iBAAiB,EAAE,UAAU;;AAG7B,IAAA,oBAAoB,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs.js","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"],"names":[],"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;;;;"}
@@ -8,8 +8,4 @@
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';
15
11
  //# 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;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"]}
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"]}
@@ -4,120 +4,7 @@ function format(first, middle, last) {
4
4
  return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
5
5
  }
6
6
 
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 };
7
+ export { format };
121
8
  //# sourceMappingURL=index.js.map
122
9
 
123
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
+ {"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,2 +1,2 @@
1
- function t(t,e,n){return(t||"")+(e?` ${e}`:"")+(n?` ${n}`:"")}const e=async()=>{if(typeof window!=="undefined"){const{defineCustomElements:t}=await import("./p-dBol_ZO8.js");await t()}};const n=(t,e=5e3)=>new Promise((n=>{if(t.hasAttribute("hydrated")){n(true);return}const r=new MutationObserver((()=>{if(t.hasAttribute("hydrated")){r.disconnect();n(true)}}));r.observe(t,{attributes:true,attributeFilter:["hydrated"]});setTimeout((()=>{r.disconnect();n(false)}),e)}));const r=()=>{if(typeof window!=="undefined"){window.stencil={...window.stencil||{},hydrateFlag:"hydrated"}}};const o=["sd-date-picker","sd-date-range-picker"];const i=t=>o.includes(t);async function d(t){if(typeof window==="undefined"){try{const{renderToString:e}=await import("./p-BjTJkvEh.js");const n=await e(t,{prettyHtml:false,removeUnusedStyles:true,clientHydrateAnnotations:true});return n.html||t}catch(e){console.warn("Failed to render Stencil components on server:",e);return t}}return t}async function a(t){if(typeof window!=="undefined"){try{const{hydrateDocument:e}=await import("./p-BjTJkvEh.js");await e(t,{runtimeLogging:false})}catch(t){console.warn("Failed to hydrate Stencil components on client:",t)}}}const s={hydratedAttribute:"hydrated",clientOnlyComponents:["sd-date-picker","sd-date-range-picker"]};export{o as CLIENT_ONLY_COMPONENTS,s as STENCIL_CONFIG,e as defineCustomElements,t as format,a as hydrateStencilComponents,r as initStencilForNextjs,i as isClientOnlyComponent,d as renderStencilComponents,n as waitForStencilHydration};
1
+ function n(n,r,t){return(n||"")+(r?` ${r}`:"")+(t?` ${t}`:"")}export{n as format};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","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"],"names":[],"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;;;;"}
package/dist/esm/index.js CHANGED
@@ -2,118 +2,5 @@ function format(first, middle, last) {
2
2
  return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
3
3
  }
4
4
 
5
- /**
6
- * Next.js에서 Stencil 컴포넌트 사용을 위한 유틸리티 함수들
7
- */
8
- /**
9
- * 클라이언트 사이드에서만 Stencil 컴포넌트를 로드하는 함수
10
- */
11
- const defineCustomElements = async () => {
12
- if (typeof window !== 'undefined') {
13
- const { defineCustomElements } = await import('./index-dBol_ZO8.js');
14
- await defineCustomElements();
15
- }
16
- };
17
- /**
18
- * Stencil 컴포넌트가 hydrate되었는지 확인하는 함수
19
- */
20
- const waitForStencilHydration = (element, timeout = 5000) => {
21
- return new Promise(resolve => {
22
- if (element.hasAttribute('hydrated')) {
23
- resolve(true);
24
- return;
25
- }
26
- const observer = new MutationObserver(() => {
27
- if (element.hasAttribute('hydrated')) {
28
- observer.disconnect();
29
- resolve(true);
30
- }
31
- });
32
- observer.observe(element, {
33
- attributes: true,
34
- attributeFilter: ['hydrated'],
35
- });
36
- // 타임아웃 설정
37
- setTimeout(() => {
38
- observer.disconnect();
39
- resolve(false);
40
- }, timeout);
41
- });
42
- };
43
- /**
44
- * Next.js에서 Stencil 컴포넌트 초기화를 위한 설정
45
- */
46
- const initStencilForNextjs = () => {
47
- if (typeof window !== 'undefined') {
48
- // 전역 설정
49
- window.stencil = {
50
- ...(window.stencil || {}),
51
- hydrateFlag: 'hydrated',
52
- };
53
- }
54
- };
55
- /**
56
- * SSR에서 제외할 컴포넌트 목록
57
- */
58
- const CLIENT_ONLY_COMPONENTS = ['sd-date-picker', 'sd-date-range-picker'];
59
- /**
60
- * 컴포넌트가 클라이언트 전용인지 확인
61
- */
62
- const isClientOnlyComponent = (tagName) => {
63
- return CLIENT_ONLY_COMPONENTS.includes(tagName);
64
- };
65
-
66
- /**
67
- * Next.js SSR을 위한 서버사이드 렌더링 함수
68
- * @param html HTML 문자열
69
- * @returns 렌더링된 HTML 문자열
70
- */
71
- async function renderStencilComponents(html) {
72
- // 서버 환경에서만 hydrate 모듈을 동적으로 import
73
- if (typeof window === 'undefined') {
74
- try {
75
- const { renderToString } = await import('./index-BjTJkvEh.js');
76
- const results = await renderToString(html, {
77
- prettyHtml: false,
78
- removeUnusedStyles: true,
79
- clientHydrateAnnotations: true,
80
- });
81
- return results.html || html;
82
- }
83
- catch (error) {
84
- console.warn('Failed to render Stencil components on server:', error);
85
- return html;
86
- }
87
- }
88
- return html;
89
- }
90
- /**
91
- * Next.js 클라이언트사이드 하이드레이션 함수
92
- * @param document HTML 문서 객체
93
- */
94
- async function hydrateStencilComponents(document) {
95
- // 클라이언트 환경에서만 hydrate 모듈을 동적으로 import
96
- if (typeof window !== 'undefined') {
97
- try {
98
- const { hydrateDocument } = await import('./index-BjTJkvEh.js');
99
- await hydrateDocument(document, {
100
- runtimeLogging: false,
101
- });
102
- }
103
- catch (error) {
104
- console.warn('Failed to hydrate Stencil components on client:', error);
105
- }
106
- }
107
- }
108
- /**
109
- * Next.js에서 Stencil 컴포넌트 사용을 위한 설정
110
- */
111
- const STENCIL_CONFIG = {
112
- // 컴포넌트가 hydrate되었는지 확인하는 속성
113
- hydratedAttribute: 'hydrated',
114
- // SSR에서 제외할 컴포넌트들 (클라이언트에서만 렌더링)
115
- clientOnlyComponents: ['sd-date-picker', 'sd-date-range-picker'],
116
- };
117
-
118
- export { CLIENT_ONLY_COMPONENTS, STENCIL_CONFIG, defineCustomElements, format, hydrateStencilComponents, initStencilForNextjs, isClientOnlyComponent, renderStencilComponents, waitForStencilHydration };
5
+ export { format };
119
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","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"],"names":[],"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;;;;"}
@@ -10,5 +10,3 @@
10
10
  export { format } from './utils/utils';
11
11
  export type * from './components.d.ts';
12
12
  export type { SdTableSortDir, SdTableColumn, Row } from './components/sd-table/sd-table';
13
- export { defineCustomElements, waitForStencilHydration, initStencilForNextjs, CLIENT_ONLY_COMPONENTS, isClientOnlyComponent, } from './utils/next-react-wrapper';
14
- export { renderStencilComponents, hydrateStencilComponents, STENCIL_CONFIG, } from './utils/next-hydrate';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellmate/design-system",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "Sellmate Design System - Web Components Library built with Stencil",
5
5
  "keywords": [
6
6
  "web-components",
@@ -90,5 +90,5 @@
90
90
  "@stencil/react-output-target": "^1.2.0",
91
91
  "@stencil/vue-output-target": "^0.11.8"
92
92
  },
93
- "gitHead": "9236856fa7c2a368ebd0972b685598cad95e4de2"
93
+ "gitHead": "b0ff5a50812d0d336ed4ec7d44ad000c78cab377"
94
94
  }