@iyulab/chat-components 0.6.0 → 0.7.1

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 (211) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +15 -39
  3. package/dist/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.139.0/helpers/esm}/decorate.js +2 -2
  4. package/dist/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.139.0/helpers/esm}/decorateMetadata.js +2 -2
  5. package/dist/_virtual/_glob-assets_raw/alert-triangle-fill.svg.4cfc4305.js +4 -0
  6. package/dist/_virtual/_glob-assets_raw/arrows-sort.svg.dda43a85.js +4 -0
  7. package/dist/_virtual/_glob-assets_raw/code.svg.c69bc144.js +4 -0
  8. package/dist/_virtual/_glob-assets_raw/download.svg.bce82177.js +4 -0
  9. package/dist/_virtual/_glob-assets_raw/element-prompt.md.7047ffcc.js +4 -0
  10. package/dist/_virtual/_glob-assets_raw/external-link.svg.a9f7f02d.js +4 -0
  11. package/dist/_virtual/_glob-assets_raw/file-code.svg.0e706f93.js +4 -0
  12. package/dist/_virtual/_glob-assets_raw/file-music.svg.b9970203.js +4 -0
  13. package/dist/_virtual/_glob-assets_raw/file-spreadsheet.svg.8c03bdfa.js +4 -0
  14. package/dist/_virtual/_glob-assets_raw/file-text.svg.85bdd923.js +4 -0
  15. package/dist/_virtual/_glob-assets_raw/file-type-pdf.svg.bc12db6d.js +4 -0
  16. package/dist/_virtual/_glob-assets_raw/file-zip.svg.76dde660.js +4 -0
  17. package/dist/_virtual/_glob-assets_raw/file.svg.28f5d6f1.js +4 -0
  18. package/dist/_virtual/_glob-assets_raw/photo.svg.cc273cc1.js +4 -0
  19. package/dist/_virtual/_glob-assets_raw/player-stop-fill.svg.5378b752.js +4 -0
  20. package/dist/_virtual/_glob-assets_raw/send.svg.02326253.js +4 -0
  21. package/dist/_virtual/_glob-assets_raw/sort-ascending-letters.svg.14a3df67.js +4 -0
  22. package/dist/_virtual/_glob-assets_raw/sort-descending-letters.svg.3e03647c.js +4 -0
  23. package/dist/_virtual/_glob-assets_raw/video.svg.c183f03c.js +4 -0
  24. package/dist/_virtual/_glob-assets_raw/world.svg.cd9903c8.js +4 -0
  25. package/dist/components/UDataElement.d.ts +48 -0
  26. package/dist/components/UDataElement.js +80 -0
  27. package/dist/components/blocks/UCodeBlock.d.ts +0 -4
  28. package/dist/components/blocks/UCodeBlock.js +6 -12
  29. package/dist/components/{views/UView.d.ts → blocks/UElementBlock.d.ts} +18 -8
  30. package/dist/components/{views/UView.js → blocks/UElementBlock.js} +31 -21
  31. package/dist/components/{views/UView.styles.js → blocks/UElementBlock.styles.js} +1 -1
  32. package/dist/components/blocks/UFileBlock.d.ts +15 -5
  33. package/dist/components/blocks/UFileBlock.js +81 -68
  34. package/dist/components/blocks/UFileBlock.styles.js +86 -29
  35. package/dist/components/blocks/UMarkedBlock.d.ts +3 -1
  36. package/dist/components/blocks/UMarkedBlock.js +23 -18
  37. package/dist/components/blocks/URefBlock.js +2 -2
  38. package/dist/components/blocks/UTableBlock.d.ts +2 -2
  39. package/dist/components/blocks/UTableBlock.js +9 -8
  40. package/dist/components/blocks/UTableBlock.styles.js +1 -1
  41. package/dist/components/blocks/UTextBlock.d.ts +2 -0
  42. package/dist/components/blocks/UTextBlock.js +4 -5
  43. package/dist/components/message/UMessage.js +2 -2
  44. package/dist/components/prompt/UPrompt.d.ts +0 -5
  45. package/dist/components/prompt/UPrompt.js +18 -27
  46. package/dist/components/prompt/UPrompt.styles.js +9 -10
  47. package/dist/components/references/URefCard.d.ts +6 -5
  48. package/dist/components/references/URefCard.js +14 -11
  49. package/dist/components/references/URefCardGroup.js +2 -2
  50. package/dist/components/references/URefTag.js +5 -4
  51. package/dist/{components/views/UChartView.d.ts → components-extra/UChartBlock.d.ts} +4 -4
  52. package/dist/{components/views/UChartView.js → components-extra/UChartBlock.js} +22 -34
  53. package/dist/components-extra/UChartBlock.schema.d.ts +3 -0
  54. package/dist/components-extra/UChartBlock.schema.js +34 -0
  55. package/dist/{components/views/UChartView.styles.js → components-extra/UChartBlock.styles.js} +1 -1
  56. package/dist/{components/views/UImagesView.d.ts → components-extra/UImagesBlock.d.ts} +4 -4
  57. package/dist/{components/views/UImagesView.js → components-extra/UImagesBlock.js} +15 -15
  58. package/dist/components-extra/UImagesBlock.schema.d.ts +3 -0
  59. package/dist/components-extra/UImagesBlock.schema.js +31 -0
  60. package/dist/{components/views/UImagesView.styles.js → components-extra/UImagesBlock.styles.js} +5 -5
  61. package/dist/{components/views/UMapView.d.ts → components-extra/UMapBlock.d.ts} +4 -4
  62. package/dist/{components/views/UMapView.js → components-extra/UMapBlock.js} +18 -18
  63. package/dist/components-extra/UMapBlock.schema.d.ts +3 -0
  64. package/dist/components-extra/UMapBlock.schema.js +33 -0
  65. package/dist/{components/views/UMapView.styles.js → components-extra/UMapBlock.styles.js} +1 -1
  66. package/dist/{components/views/UVideoView.d.ts → components-extra/UVideoBlock.d.ts} +4 -4
  67. package/dist/{components/views/UVideoView.js → components-extra/UVideoBlock.js} +10 -10
  68. package/dist/components-extra/UVideoBlock.schema.d.ts +3 -0
  69. package/dist/components-extra/UVideoBlock.schema.js +28 -0
  70. package/dist/{components/views/UVideoView.styles.js → components-extra/UVideoBlock.styles.js} +1 -1
  71. package/dist/events/SendEvent.d.ts +0 -5
  72. package/dist/events/StopEvent.d.ts +0 -5
  73. package/dist/extra.d.ts +6 -0
  74. package/dist/extra.js +14 -0
  75. package/dist/index.d.ts +5 -17
  76. package/dist/index.js +6 -16
  77. package/dist/react/UCodeBlock.js +2 -2
  78. package/dist/react/UElementBlock.d.ts +9 -0
  79. package/dist/react/UElementBlock.js +10 -0
  80. package/dist/react/UFileBlock.js +2 -2
  81. package/dist/react/UImagesBlock.d.ts +9 -0
  82. package/dist/react/UImagesBlock.js +10 -0
  83. package/dist/react/UMapBlock.d.ts +9 -0
  84. package/dist/react/UMapBlock.js +10 -0
  85. package/dist/react/UMarkedBlock.js +2 -2
  86. package/dist/react/UMessage.js +2 -2
  87. package/dist/react/UPrompt.js +2 -2
  88. package/dist/react/URefBlock.js +2 -2
  89. package/dist/react/URefCard.js +2 -2
  90. package/dist/react/URefCardGroup.js +2 -2
  91. package/dist/react/URefTag.js +2 -2
  92. package/dist/react/UTableBlock.js +2 -2
  93. package/dist/react/UTextBlock.d.ts +1 -0
  94. package/dist/react/UTextBlock.js +5 -3
  95. package/dist/react/UVideoBlock.d.ts +9 -0
  96. package/dist/react/UVideoBlock.js +10 -0
  97. package/dist/react/index.d.ts +4 -11
  98. package/dist/react/index.js +4 -11
  99. package/dist/types/BlockItem.d.ts +1 -24
  100. package/dist/types/{JsonSchema.d.ts → Schema.d.ts} +13 -0
  101. package/dist/utilities/HtmlBuilder.d.ts +28 -0
  102. package/dist/utilities/HtmlBuilder.js +41 -0
  103. package/dist/utilities/PromptBuilder.d.ts +21 -0
  104. package/dist/utilities/PromptBuilder.js +60 -0
  105. package/dist/utilities/icons.d.ts +1 -0
  106. package/dist/utilities/icons.js +52 -0
  107. package/dist/utilities/sanitizers.d.ts +35 -0
  108. package/dist/utilities/sanitizers.js +75 -0
  109. package/package.json +18 -19
  110. package/skills/iyulab-chat-components/SKILL.md +18 -33
  111. package/skills/iyulab-chat-components/references/components/{chart-view.md → chart-block.md} +16 -12
  112. package/skills/iyulab-chat-components/references/components/code-block.md +1 -5
  113. package/skills/iyulab-chat-components/references/components/element-block.md +57 -0
  114. package/skills/iyulab-chat-components/references/components/file-block.md +22 -25
  115. package/skills/iyulab-chat-components/references/components/{images-view.md → images-block.md} +10 -10
  116. package/skills/iyulab-chat-components/references/components/{map-view.md → map-block.md} +9 -9
  117. package/skills/iyulab-chat-components/references/components/marked-block.md +5 -4
  118. package/skills/iyulab-chat-components/references/components/message.md +1 -2
  119. package/skills/iyulab-chat-components/references/components/prompt.md +12 -21
  120. package/skills/iyulab-chat-components/references/components/{video-view.md → video-block.md} +10 -10
  121. package/skills/iyulab-chat-components/references/extra-system.md +95 -0
  122. package/skills/iyulab-chat-components/references/types.md +17 -31
  123. package/skills/iyulab-chat-components/references/usage.md +13 -81
  124. package/skills/iyulab-chat-components/references/utilities/html-builder.md +35 -0
  125. package/skills/iyulab-chat-components/references/utilities/prompt-builder.md +73 -0
  126. package/dist/_virtual/_glob-assets_raw/intent-prompt.md.1907474e.js +0 -4
  127. package/dist/_virtual/_glob-assets_raw/view-prompt.md.e0dbcffe.js +0 -4
  128. package/dist/chart.d.ts +0 -1
  129. package/dist/chart.js +0 -2
  130. package/dist/components/blocks/UJsonBlock.d.ts +0 -49
  131. package/dist/components/blocks/UJsonBlock.js +0 -130
  132. package/dist/components/blocks/UJsonBlock.styles.js +0 -115
  133. package/dist/components/blocks/UThinkBlock.d.ts +0 -35
  134. package/dist/components/blocks/UThinkBlock.js +0 -87
  135. package/dist/components/blocks/UThinkBlock.styles.js +0 -74
  136. package/dist/components/blocks/UToolBlock.d.ts +0 -24
  137. package/dist/components/blocks/UToolBlock.js +0 -70
  138. package/dist/components/blocks/UToolBlock.styles.js +0 -66
  139. package/dist/components/buttons/UAttachButton.d.ts +0 -26
  140. package/dist/components/buttons/UAttachButton.js +0 -63
  141. package/dist/components/buttons/UAttachButton.styles.js +0 -14
  142. package/dist/components/buttons/UCopyButton.d.ts +0 -24
  143. package/dist/components/buttons/UCopyButton.js +0 -59
  144. package/dist/components/buttons/UCopyButton.styles.js +0 -18
  145. package/dist/components/buttons/UVoteButton.d.ts +0 -19
  146. package/dist/components/buttons/UVoteButton.js +0 -64
  147. package/dist/components/buttons/UVoteButton.styles.d.ts +0 -1
  148. package/dist/components/buttons/UVoteButton.styles.js +0 -19
  149. package/dist/components/intents/UQuestionIntent.d.ts +0 -22
  150. package/dist/components/intents/UQuestionIntent.js +0 -41
  151. package/dist/components/intents/UQuestionIntent.styles.d.ts +0 -1
  152. package/dist/components/intents/UQuestionIntent.styles.js +0 -43
  153. package/dist/components/views/UChartView.styles.d.ts +0 -1
  154. package/dist/components/views/UImagesView.styles.d.ts +0 -1
  155. package/dist/components/views/UMapView.styles.d.ts +0 -1
  156. package/dist/components/views/UVideoView.styles.d.ts +0 -1
  157. package/dist/components/views/UView.styles.d.ts +0 -1
  158. package/dist/events/AttachEvent.d.ts +0 -9
  159. package/dist/events/ChoiceEvent.d.ts +0 -9
  160. package/dist/react/UAttachButton.d.ts +0 -11
  161. package/dist/react/UAttachButton.js +0 -12
  162. package/dist/react/UCopyButton.d.ts +0 -9
  163. package/dist/react/UCopyButton.js +0 -10
  164. package/dist/react/UImagesView.d.ts +0 -9
  165. package/dist/react/UImagesView.js +0 -10
  166. package/dist/react/UJsonBlock.d.ts +0 -9
  167. package/dist/react/UJsonBlock.js +0 -10
  168. package/dist/react/UMapView.d.ts +0 -9
  169. package/dist/react/UMapView.js +0 -10
  170. package/dist/react/UQuestionIntent.d.ts +0 -11
  171. package/dist/react/UQuestionIntent.js +0 -12
  172. package/dist/react/UThinkBlock.d.ts +0 -9
  173. package/dist/react/UThinkBlock.js +0 -10
  174. package/dist/react/UToolBlock.d.ts +0 -9
  175. package/dist/react/UToolBlock.js +0 -10
  176. package/dist/react/UVideoView.d.ts +0 -9
  177. package/dist/react/UVideoView.js +0 -10
  178. package/dist/react/UView.d.ts +0 -9
  179. package/dist/react/UView.js +0 -10
  180. package/dist/react/UVoteButton.d.ts +0 -9
  181. package/dist/react/UVoteButton.js +0 -10
  182. package/dist/types/Intents.d.ts +0 -26
  183. package/dist/types/Intents.js +0 -30
  184. package/dist/types/JsonNode.d.ts +0 -20
  185. package/dist/types/Views.d.ts +0 -34
  186. package/dist/types/Views.js +0 -148
  187. package/dist/utilities/IntentPromptBuilder.d.ts +0 -40
  188. package/dist/utilities/IntentPromptBuilder.js +0 -95
  189. package/dist/utilities/ViewPromptBuilder.d.ts +0 -28
  190. package/dist/utilities/ViewPromptBuilder.js +0 -78
  191. package/dist/utilities/dom-agent/DOMAgent.d.ts +0 -74
  192. package/dist/utilities/dom-agent/DOMController.d.ts +0 -78
  193. package/dist/utilities/dom-agent/DOMPromptBuilder.d.ts +0 -54
  194. package/dist/utilities/dom-agent/DOMScanner.d.ts +0 -83
  195. package/dist/utilities/dom-agent/index.d.ts +0 -9
  196. package/dist/utilities/dom-agent/types.d.ts +0 -209
  197. package/skills/iyulab-chat-components/references/components/attach-button.md +0 -69
  198. package/skills/iyulab-chat-components/references/components/copy-button.md +0 -46
  199. package/skills/iyulab-chat-components/references/components/json-block.md +0 -41
  200. package/skills/iyulab-chat-components/references/components/question-intent.md +0 -75
  201. package/skills/iyulab-chat-components/references/components/think-block.md +0 -48
  202. package/skills/iyulab-chat-components/references/components/tool-block.md +0 -57
  203. package/skills/iyulab-chat-components/references/components/view.md +0 -51
  204. package/skills/iyulab-chat-components/references/components/vote-button.md +0 -60
  205. package/skills/iyulab-chat-components/references/utilities/intent-prompt-builder.md +0 -123
  206. package/skills/iyulab-chat-components/references/utilities/view-prompt-builder.md +0 -112
  207. /package/dist/components/{buttons/UCopyButton.styles.d.ts → blocks/UElementBlock.styles.d.ts} +0 -0
  208. /package/dist/{components/blocks/UJsonBlock.styles.d.ts → components-extra/UChartBlock.styles.d.ts} +0 -0
  209. /package/dist/{components/blocks/UThinkBlock.styles.d.ts → components-extra/UImagesBlock.styles.d.ts} +0 -0
  210. /package/dist/{components/blocks/UToolBlock.styles.d.ts → components-extra/UMapBlock.styles.d.ts} +0 -0
  211. /package/dist/{components/buttons/UAttachButton.styles.d.ts → components-extra/UVideoBlock.styles.d.ts} +0 -0
@@ -0,0 +1,31 @@
1
+ //#region src/components-extra/UImagesBlock.schema.ts
2
+ var schema = {
3
+ tag: "u-images-block",
4
+ description: "Display multiple images in a scrollable gallery",
5
+ properties: { items: {
6
+ type: "array",
7
+ items: {
8
+ type: "object",
9
+ properties: {
10
+ src: {
11
+ type: "string",
12
+ description: "Image URL"
13
+ },
14
+ alt: {
15
+ type: "string",
16
+ description: "Alt text for accessibility"
17
+ },
18
+ caption: {
19
+ type: "string",
20
+ description: "Image caption"
21
+ }
22
+ },
23
+ required: ["src"]
24
+ },
25
+ minItems: 1,
26
+ description: "Array of image objects"
27
+ } },
28
+ required: ["items"]
29
+ };
30
+ //#endregion
31
+ export { schema as default };
@@ -1,5 +1,5 @@
1
1
  import { css } from "lit";
2
- //#region src/components/views/UImagesView.styles.ts
2
+ //#region src/components-extra/UImagesBlock.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
5
  display: block;
@@ -88,11 +88,11 @@ var styles = css`
88
88
  cursor: pointer;
89
89
  transition: background 0.2s;
90
90
  }
91
- .lb-close:hover {
92
- background: rgba(255, 255, 255, 0.18);
91
+ .lb-close:hover {
92
+ background: rgba(255, 255, 255, 0.18);
93
93
  }
94
- .lb-close:active {
95
- background: rgba(255, 255, 255, 0.28);
94
+ .lb-close:active {
95
+ background: rgba(255, 255, 255, 0.28);
96
96
  }
97
97
 
98
98
  .lb-close u-icon {
@@ -1,9 +1,9 @@
1
1
  import { nothing } from 'lit';
2
2
  import { UElement } from '@iyulab/components/dist/components/UElement.js';
3
3
  /**
4
- * 지도 뷰 컴포넌트 (OpenStreetMap embed)
4
+ * 지도 블록 컴포넌트 (OpenStreetMap embed)
5
5
  */
6
- export declare class UMapView extends UElement {
6
+ export declare class UMapBlock extends UElement {
7
7
  static styles: import('lit').CSSResultGroup[];
8
8
  /** 위도 (latitude) */
9
9
  lat?: number;
@@ -15,10 +15,10 @@ export declare class UMapView extends UElement {
15
15
  label?: string;
16
16
  /** 지도 마커 설명 */
17
17
  description?: string;
18
- render(): import('lit-html').TemplateResult<1> | typeof nothing;
18
+ render(): typeof nothing | import('lit-html').TemplateResult<1>;
19
19
  }
20
20
  declare global {
21
21
  interface HTMLElementTagNameMap {
22
- "u-map-view": UMapView;
22
+ "u-map-block": UMapBlock;
23
23
  }
24
24
  }
@@ -1,11 +1,11 @@
1
- import { __decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
2
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
3
- import { styles } from "./UMapView.styles.js";
1
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
3
+ import { styles } from "./UMapBlock.styles.js";
4
4
  import { html, nothing } from "lit";
5
5
  import { customElement, property } from "lit/decorators.js";
6
6
  import { UElement } from "@iyulab/components/dist/components/UElement.js";
7
- //#region src/components/views/UMapView.ts
8
- var UMapView = class UMapView extends UElement {
7
+ //#region src/components-extra/UMapBlock.ts
8
+ var UMapBlock = class UMapBlock extends UElement {
9
9
  constructor(..._args) {
10
10
  super(..._args);
11
11
  this.zoom = 15;
@@ -19,14 +19,14 @@ var UMapView = class UMapView extends UElement {
19
19
  const embedUrl = `https://www.openstreetmap.org/export/embed.html?bbox=${`${this.lng - offset},${this.lat - offset},${this.lng + offset},${this.lat + offset}`}&layer=mapnik&marker=${this.lat},${this.lng}`;
20
20
  const linkUrl = `https://www.openstreetmap.org/?mlat=${this.lat}&mlon=${this.lng}#map=${this.zoom}/${this.lat}/${this.lng}`;
21
21
  return html`
22
- <iframe
23
- src="${embedUrl}"
22
+ <iframe
23
+ src="${embedUrl}"
24
24
  loading="lazy"
25
25
  ></iframe>
26
- <a class="caption"
27
- ?hidden=${!this.label && !this.description}
28
- href="${linkUrl}"
29
- target="_blank"
26
+ <a class="caption"
27
+ ?hidden=${!this.label && !this.description}
28
+ href="${linkUrl}"
29
+ target="_blank"
30
30
  rel="noopener"
31
31
  >
32
32
  <strong>${this.label}</strong>
@@ -35,11 +35,11 @@ var UMapView = class UMapView extends UElement {
35
35
  `;
36
36
  }
37
37
  };
38
- __decorate([property({ type: Number }), __decorateMetadata("design:type", Number)], UMapView.prototype, "lat", void 0);
39
- __decorate([property({ type: Number }), __decorateMetadata("design:type", Number)], UMapView.prototype, "lng", void 0);
40
- __decorate([property({ type: Number }), __decorateMetadata("design:type", Object)], UMapView.prototype, "zoom", void 0);
41
- __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UMapView.prototype, "label", void 0);
42
- __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UMapView.prototype, "description", void 0);
43
- UMapView = __decorate([customElement("u-map-view")], UMapView);
38
+ __decorate([property({ type: Number }), __decorateMetadata("design:type", Number)], UMapBlock.prototype, "lat", void 0);
39
+ __decorate([property({ type: Number }), __decorateMetadata("design:type", Number)], UMapBlock.prototype, "lng", void 0);
40
+ __decorate([property({ type: Number }), __decorateMetadata("design:type", Object)], UMapBlock.prototype, "zoom", void 0);
41
+ __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UMapBlock.prototype, "label", void 0);
42
+ __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UMapBlock.prototype, "description", void 0);
43
+ UMapBlock = __decorate([customElement("u-map-block")], UMapBlock);
44
44
  //#endregion
45
- export { UMapView };
45
+ export { UMapBlock };
@@ -0,0 +1,3 @@
1
+ import { ElementSchema } from '../types/Schema.js';
2
+ declare const schema: ElementSchema;
3
+ export default schema;
@@ -0,0 +1,33 @@
1
+ //#region src/components-extra/UMapBlock.schema.ts
2
+ var schema = {
3
+ tag: "u-map-block",
4
+ description: "Display a map showing a single location",
5
+ properties: {
6
+ lat: {
7
+ type: "number",
8
+ description: "Latitude coordinate"
9
+ },
10
+ lng: {
11
+ type: "number",
12
+ description: "Longitude coordinate"
13
+ },
14
+ zoom: {
15
+ type: "integer",
16
+ minimum: 1,
17
+ maximum: 20,
18
+ default: 15,
19
+ description: "Map zoom level"
20
+ },
21
+ label: {
22
+ type: "string",
23
+ description: "Location title"
24
+ },
25
+ description: {
26
+ type: "string",
27
+ description: "Location description"
28
+ }
29
+ },
30
+ required: ["lat", "lng"]
31
+ };
32
+ //#endregion
33
+ export { schema as default };
@@ -1,5 +1,5 @@
1
1
  import { css } from "lit";
2
- //#region src/components/views/UMapView.styles.ts
2
+ //#region src/components-extra/UMapBlock.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
5
  position: relative;
@@ -1,9 +1,9 @@
1
1
  import { nothing, PropertyValues } from 'lit';
2
2
  import { UElement } from '@iyulab/components/dist/components/UElement.js';
3
3
  /**
4
- * 비디오 플레이어 뷰 컴포넌트
4
+ * 비디오 플레이어 블록 컴포넌트
5
5
  */
6
- export declare class UVideoView extends UElement {
6
+ export declare class UVideoBlock extends UElement {
7
7
  static styles: import('lit').CSSResultGroup[];
8
8
  /** 비디오 URL (YouTube, Vimeo, 직접 파일) */
9
9
  src?: string;
@@ -12,7 +12,7 @@ export declare class UVideoView extends UElement {
12
12
  /** 비디오 비율 */
13
13
  ratio: '16:9' | '4:3' | '1:1';
14
14
  protected updated(changedProperties: PropertyValues): void;
15
- render(): import('lit-html').TemplateResult<1> | typeof nothing;
15
+ render(): typeof nothing | import('lit-html').TemplateResult<1>;
16
16
  private isYouTube;
17
17
  private isVimeo;
18
18
  private extractYouTubeId;
@@ -20,6 +20,6 @@ export declare class UVideoView extends UElement {
20
20
  }
21
21
  declare global {
22
22
  interface HTMLElementTagNameMap {
23
- "u-video-view": UVideoView;
23
+ "u-video-block": UVideoBlock;
24
24
  }
25
25
  }
@@ -1,12 +1,12 @@
1
- import { __decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.js";
2
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
3
- import { styles } from "./UVideoView.styles.js";
1
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
3
+ import { styles } from "./UVideoBlock.styles.js";
4
4
  import { html, nothing } from "lit";
5
5
  import { customElement, property } from "lit/decorators.js";
6
6
  import { UElement } from "@iyulab/components/dist/components/UElement.js";
7
7
  import { ifDefined } from "lit/directives/if-defined.js";
8
- //#region src/components/views/UVideoView.ts
9
- var UVideoView = class UVideoView extends UElement {
8
+ //#region src/components-extra/UVideoBlock.ts
9
+ var UVideoBlock = class UVideoBlock extends UElement {
10
10
  constructor(..._args) {
11
11
  super(..._args);
12
12
  this.ratio = "16:9";
@@ -73,9 +73,9 @@ var UVideoView = class UVideoView extends UElement {
73
73
  return match ? match[1] : null;
74
74
  }
75
75
  };
76
- __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UVideoView.prototype, "src", void 0);
77
- __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UVideoView.prototype, "poster", void 0);
78
- __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UVideoView.prototype, "ratio", void 0);
79
- UVideoView = __decorate([customElement("u-video-view")], UVideoView);
76
+ __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UVideoBlock.prototype, "src", void 0);
77
+ __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UVideoBlock.prototype, "poster", void 0);
78
+ __decorate([property({ type: String }), __decorateMetadata("design:type", String)], UVideoBlock.prototype, "ratio", void 0);
79
+ UVideoBlock = __decorate([customElement("u-video-block")], UVideoBlock);
80
80
  //#endregion
81
- export { UVideoView };
81
+ export { UVideoBlock };
@@ -0,0 +1,3 @@
1
+ import { ElementSchema } from '../types/Schema.js';
2
+ declare const schema: ElementSchema;
3
+ export default schema;
@@ -0,0 +1,28 @@
1
+ //#region src/components-extra/UVideoBlock.schema.ts
2
+ var schema = {
3
+ tag: "u-video-block",
4
+ description: "Embed video from YouTube, Vimeo, or Others. Provide a direct video file URL or a platform URL.",
5
+ properties: {
6
+ src: {
7
+ type: "string",
8
+ description: "Video URL (YouTube, Vimeo, or direct video file URL)"
9
+ },
10
+ poster: {
11
+ type: "string",
12
+ description: "Poster image URL"
13
+ },
14
+ ratio: {
15
+ type: "string",
16
+ enum: [
17
+ "16:9",
18
+ "4:3",
19
+ "1:1"
20
+ ],
21
+ default: "16:9",
22
+ description: "Video aspect ratio"
23
+ }
24
+ },
25
+ required: ["src"]
26
+ };
27
+ //#endregion
28
+ export { schema as default };
@@ -1,5 +1,5 @@
1
1
  import { css } from "lit";
2
- //#region src/components/views/UVideoView.styles.ts
2
+ //#region src/components-extra/UVideoBlock.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
5
  --video-ratio: 16 / 9;
@@ -12,10 +12,5 @@ export type SendEvent = CustomEvent<SendEventDetail>;
12
12
  declare global {
13
13
  interface HTMLElementEventMap {
14
14
  'send': SendEvent;
15
- /**
16
- * @deprecated 0.5.1부터 `send`와 동시에 발생합니다. 0.6.0에서 제거 예정.
17
- * 새 코드는 `send`를 사용하세요.
18
- */
19
- 'u-submit': SendEvent;
20
15
  }
21
16
  }
@@ -8,10 +8,5 @@ export type StopEvent = CustomEvent<StopEventDetail>;
8
8
  declare global {
9
9
  interface HTMLElementEventMap {
10
10
  'stop': StopEvent;
11
- /**
12
- * @deprecated 0.5.1부터 `stop`과 동시에 발생합니다. 0.6.0에서 제거 예정.
13
- * 새 코드는 `stop`를 사용하세요.
14
- */
15
- 'u-cancel': StopEvent;
16
11
  }
17
12
  }
@@ -0,0 +1,6 @@
1
+ export * from './components-extra/UChartBlock.js';
2
+ export * from './components-extra/UImagesBlock.js';
3
+ export * from './components-extra/UMapBlock.js';
4
+ export * from './components-extra/UVideoBlock.js';
5
+ /** 내장 extra 블록(chart/images/map/video)이 모두 등록된 LLM 시스템 프롬프트 조각 */
6
+ export declare const prompt: string;
package/dist/extra.js ADDED
@@ -0,0 +1,14 @@
1
+ import { ElementPromptBuilder } from "./utilities/PromptBuilder.js";
2
+ import { UChartBlock } from "./components-extra/UChartBlock.js";
3
+ import { UImagesBlock } from "./components-extra/UImagesBlock.js";
4
+ import { UMapBlock } from "./components-extra/UMapBlock.js";
5
+ import { UVideoBlock } from "./components-extra/UVideoBlock.js";
6
+ import schema from "./components-extra/UChartBlock.schema.js";
7
+ import schema$1 from "./components-extra/UImagesBlock.schema.js";
8
+ import schema$2 from "./components-extra/UMapBlock.schema.js";
9
+ import schema$3 from "./components-extra/UVideoBlock.schema.js";
10
+ //#region src/extra.ts
11
+ /** 내장 extra 블록(chart/images/map/video)이 모두 등록된 LLM 시스템 프롬프트 조각 */
12
+ var prompt = new ElementPromptBuilder().add(schema$1).add(schema$3).add(schema$2).add(schema).build();
13
+ //#endregion
14
+ export { UChartBlock, UImagesBlock, UMapBlock, UVideoBlock, prompt };
package/dist/index.d.ts CHANGED
@@ -1,32 +1,20 @@
1
1
  export * from './components/blocks/UCodeBlock.js';
2
+ export * from './components/blocks/UElementBlock.js';
2
3
  export * from './components/blocks/UFileBlock.js';
3
- export * from './components/blocks/UJsonBlock.js';
4
4
  export * from './components/blocks/UMarkedBlock.js';
5
5
  export * from './components/blocks/UTextBlock.js';
6
- export * from './components/blocks/UThinkBlock.js';
7
- export * from './components/blocks/UToolBlock.js';
8
6
  export * from './components/blocks/URefBlock.js';
9
7
  export * from './components/blocks/UTableBlock.js';
10
- export * from './components/buttons/UAttachButton.js';
11
- export * from './components/buttons/UCopyButton.js';
12
- export * from './components/buttons/UVoteButton.js';
13
8
  export * from './components/message/UMessage.js';
14
9
  export * from './components/prompt/UPrompt.js';
15
10
  export * from './components/references/URefTag.js';
16
11
  export * from './components/references/URefCard.js';
17
12
  export * from './components/references/URefCardGroup.js';
18
- export * from './components/intents/UQuestionIntent.js';
19
- export * from './components/views/UImagesView.js';
20
- export * from './components/views/UVideoView.js';
21
- export * from './components/views/UMapView.js';
22
- export * from './components/views/UView.js';
23
13
  export type * from './types/BlockItem';
24
- export type * from './types/JsonNode';
25
- export type * from './types/JsonSchema';
14
+ export type * from './types/Schema';
26
15
  export type * from './types/References';
27
- export * from './types/Intents';
28
- export * from './types/Views';
29
16
  export type * from './events/SendEvent';
30
17
  export type * from './events/StopEvent';
31
- export * from './utilities/IntentPromptBuilder.js';
32
- export * from './utilities/ViewPromptBuilder.js';
18
+ export * from './utilities/HtmlBuilder.js';
19
+ export * from './utilities/PromptBuilder.js';
20
+ export * from './utilities/sanitizers.js';
package/dist/index.js CHANGED
@@ -1,27 +1,17 @@
1
- import { UCopyButton } from "./components/buttons/UCopyButton.js";
1
+ import "./utilities/icons.js";
2
2
  import { UCodeBlock } from "./components/blocks/UCodeBlock.js";
3
+ import { escapeHtmlAttr, escapeHtmlHref, escapeHtmlText, stripZeroWidth } from "./utilities/sanitizers.js";
4
+ import { HtmlBuilder } from "./utilities/HtmlBuilder.js";
5
+ import { UElementBlock } from "./components/blocks/UElementBlock.js";
3
6
  import { UFileBlock } from "./components/blocks/UFileBlock.js";
4
- import { UJsonBlock } from "./components/blocks/UJsonBlock.js";
5
7
  import { URefTag } from "./components/references/URefTag.js";
6
8
  import { URefCard } from "./components/references/URefCard.js";
7
9
  import { URefCardGroup } from "./components/references/URefCardGroup.js";
8
10
  import { UTableBlock } from "./components/blocks/UTableBlock.js";
9
- import { UView } from "./components/views/UView.js";
10
11
  import { UMarkedBlock } from "./components/blocks/UMarkedBlock.js";
11
12
  import { UTextBlock } from "./components/blocks/UTextBlock.js";
12
- import { UThinkBlock } from "./components/blocks/UThinkBlock.js";
13
- import { UToolBlock } from "./components/blocks/UToolBlock.js";
14
13
  import { URefBlock } from "./components/blocks/URefBlock.js";
15
- import { UAttachButton } from "./components/buttons/UAttachButton.js";
16
- import { UVoteButton } from "./components/buttons/UVoteButton.js";
17
14
  import { UMessage } from "./components/message/UMessage.js";
18
15
  import { UPrompt } from "./components/prompt/UPrompt.js";
19
- import { UQuestionIntent } from "./components/intents/UQuestionIntent.js";
20
- import { UImagesView } from "./components/views/UImagesView.js";
21
- import { UVideoView } from "./components/views/UVideoView.js";
22
- import { UMapView } from "./components/views/UMapView.js";
23
- import { PRESET_INTENT_DEFINITIONS, PRESET_INTENT_LIST, PresetIntent } from "./types/Intents.js";
24
- import { PRESET_VIEW_DEFINITIONS, PRESET_VIEW_LIST, PresetView } from "./types/Views.js";
25
- import { IntentPromptBuilder } from "./utilities/IntentPromptBuilder.js";
26
- import { ViewPromptBuilder } from "./utilities/ViewPromptBuilder.js";
27
- export { IntentPromptBuilder, PRESET_INTENT_DEFINITIONS, PRESET_INTENT_LIST, PRESET_VIEW_DEFINITIONS, PRESET_VIEW_LIST, PresetIntent, PresetView, UAttachButton, UCodeBlock, UCopyButton, UFileBlock, UImagesView, UJsonBlock, UMapView, UMarkedBlock, UMessage, UPrompt, UQuestionIntent, URefBlock, URefCard, URefCardGroup, URefTag, UTableBlock, UTextBlock, UThinkBlock, UToolBlock, UVideoView, UView, UVoteButton, ViewPromptBuilder };
16
+ import { ElementPromptBuilder } from "./utilities/PromptBuilder.js";
17
+ export { ElementPromptBuilder, HtmlBuilder, UCodeBlock, UElementBlock, UFileBlock, UMarkedBlock, UMessage, UPrompt, URefBlock, URefCard, URefCardGroup, URefTag, UTableBlock, UTextBlock, escapeHtmlAttr, escapeHtmlHref, escapeHtmlText, stripZeroWidth };
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UCodeBlock } from '../components/blocks/UCodeBlock.js';
3
+ import { UCodeBlock as UCodeBlockElement } from '../components/blocks/UCodeBlock.js';
4
4
 
5
5
  export const UCodeBlock = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-code-block',
8
- elementClass: UCodeBlock,
8
+ elementClass: UCodeBlockElement,
9
9
  events: {},
10
10
  });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { UElementBlock as UElementBlockElement } from '../components/blocks/UElementBlock';
3
+
4
+ export declare const UElementBlock: React.ForwardRefExoticComponent<
5
+ Partial<UElementBlockElement> & React.HTMLAttributes<UElementBlockElement> & {
6
+ }
7
+ >;
8
+
9
+ export type UElementBlockProps = React.ComponentProps<typeof UElementBlock>;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit/react';
3
+ import { UElementBlock as UElementBlockElement } from '../components/blocks/UElementBlock.js';
4
+
5
+ export const UElementBlock = createComponent({
6
+ react: React,
7
+ tagName: 'u-element-block',
8
+ elementClass: UElementBlockElement,
9
+ events: {},
10
+ });
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UFileBlock } from '../components/blocks/UFileBlock.js';
3
+ import { UFileBlock as UFileBlockElement } from '../components/blocks/UFileBlock.js';
4
4
 
5
5
  export const UFileBlock = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-file-block',
8
- elementClass: UFileBlock,
8
+ elementClass: UFileBlockElement,
9
9
  events: {
10
10
  onRemove: 'remove',
11
11
  },
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { UImagesBlock as UImagesBlockElement } from '../components-extra/UImagesBlock';
3
+
4
+ export declare const UImagesBlock: React.ForwardRefExoticComponent<
5
+ Partial<UImagesBlockElement> & React.HTMLAttributes<UImagesBlockElement> & {
6
+ }
7
+ >;
8
+
9
+ export type UImagesBlockProps = React.ComponentProps<typeof UImagesBlock>;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit/react';
3
+ import { UImagesBlock as UImagesBlockElement } from '../components-extra/UImagesBlock.js';
4
+
5
+ export const UImagesBlock = createComponent({
6
+ react: React,
7
+ tagName: 'u-images-block',
8
+ elementClass: UImagesBlockElement,
9
+ events: {},
10
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { UMapBlock as UMapBlockElement } from '../components-extra/UMapBlock';
3
+
4
+ export declare const UMapBlock: React.ForwardRefExoticComponent<
5
+ Partial<UMapBlockElement> & React.HTMLAttributes<UMapBlockElement> & {
6
+ }
7
+ >;
8
+
9
+ export type UMapBlockProps = React.ComponentProps<typeof UMapBlock>;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit/react';
3
+ import { UMapBlock as UMapBlockElement } from '../components-extra/UMapBlock.js';
4
+
5
+ export const UMapBlock = createComponent({
6
+ react: React,
7
+ tagName: 'u-map-block',
8
+ elementClass: UMapBlockElement,
9
+ events: {},
10
+ });
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UMarkedBlock } from '../components/blocks/UMarkedBlock.js';
3
+ import { UMarkedBlock as UMarkedBlockElement } from '../components/blocks/UMarkedBlock.js';
4
4
 
5
5
  export const UMarkedBlock = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-marked-block',
8
- elementClass: UMarkedBlock,
8
+ elementClass: UMarkedBlockElement,
9
9
  events: {},
10
10
  });
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UMessage } from '../components/message/UMessage.js';
3
+ import { UMessage as UMessageElement } from '../components/message/UMessage.js';
4
4
 
5
5
  export const UMessage = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-message',
8
- elementClass: UMessage,
8
+ elementClass: UMessageElement,
9
9
  events: {},
10
10
  });
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UPrompt } from '../components/prompt/UPrompt.js';
3
+ import { UPrompt as UPromptElement } from '../components/prompt/UPrompt.js';
4
4
 
5
5
  export const UPrompt = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-prompt',
8
- elementClass: UPrompt,
8
+ elementClass: UPromptElement,
9
9
  events: {
10
10
  onStop: 'stop',
11
11
  onSend: 'send',
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { URefBlock } from '../components/blocks/URefBlock.js';
3
+ import { URefBlock as URefBlockElement } from '../components/blocks/URefBlock.js';
4
4
 
5
5
  export const URefBlock = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-ref-block',
8
- elementClass: URefBlock,
8
+ elementClass: URefBlockElement,
9
9
  events: {},
10
10
  });
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { URefCard } from '../components/references/URefCard.js';
3
+ import { URefCard as URefCardElement } from '../components/references/URefCard.js';
4
4
 
5
5
  export const URefCard = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-ref-card',
8
- elementClass: URefCard,
8
+ elementClass: URefCardElement,
9
9
  events: {},
10
10
  });
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { URefCardGroup } from '../components/references/URefCardGroup.js';
3
+ import { URefCardGroup as URefCardGroupElement } from '../components/references/URefCardGroup.js';
4
4
 
5
5
  export const URefCardGroup = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-ref-card-group',
8
- elementClass: URefCardGroup,
8
+ elementClass: URefCardGroupElement,
9
9
  events: {},
10
10
  });
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { URefTag } from '../components/references/URefTag.js';
3
+ import { URefTag as URefTagElement } from '../components/references/URefTag.js';
4
4
 
5
5
  export const URefTag = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-ref-tag',
8
- elementClass: URefTag,
8
+ elementClass: URefTagElement,
9
9
  events: {},
10
10
  });
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { createComponent } from '@lit/react';
3
- import { UTableBlock } from '../components/blocks/UTableBlock.js';
3
+ import { UTableBlock as UTableBlockElement } from '../components/blocks/UTableBlock.js';
4
4
 
5
5
  export const UTableBlock = createComponent({
6
6
  react: React,
7
7
  tagName: 'u-table-block',
8
- elementClass: UTableBlock,
8
+ elementClass: UTableBlockElement,
9
9
  events: {},
10
10
  });
@@ -3,6 +3,7 @@ import { UTextBlock as UTextBlockElement } from '../components/blocks/UTextBlock
3
3
 
4
4
  export declare const UTextBlock: React.ForwardRefExoticComponent<
5
5
  Partial<UTextBlockElement> & React.HTMLAttributes<UTextBlockElement> & {
6
+ onInput?: (event: CustomEvent) => void;
6
7
  }
7
8
  >;
8
9