line-flex-message-renderer 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants.ts","../src/utils.ts","../src/components/FlexButton.tsx","../src/components/FlexIcon.tsx","../src/components/FlexImage.tsx","../src/components/FlexSeparator.tsx","../src/components/FlexSpan.tsx","../src/components/FlexText.tsx","../src/components/FlexComponentRenderer.tsx","../src/components/FlexBox.tsx","../src/components/FlexMessagePreview.tsx","../src/components/LineChatFrame.tsx","../src/components/LineTextBubble.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"index.cjs","sourcesContent":["export const TEXT_SIZE: Record<string, string> = {\n\txxs: \"11px\",\n\txs: \"12px\",\n\tsm: \"13px\",\n\tmd: \"14px\",\n\tlg: \"16px\",\n\txl: \"18px\",\n\txxl: \"22px\",\n\t\"3xl\": \"26px\",\n\t\"4xl\": \"30px\",\n\t\"5xl\": \"36px\",\n};\n\nexport const SPACING: Record<string, string> = {\n\tnone: \"0px\",\n\txs: \"2px\",\n\tsm: \"4px\",\n\tmd: \"8px\",\n\tlg: \"12px\",\n\txl: \"16px\",\n\txxl: \"20px\",\n};\n\nexport const IMAGE_SIZE: Record<string, string> = {\n\txxs: \"40px\",\n\txs: \"60px\",\n\tsm: \"80px\",\n\tmd: \"100px\",\n\tlg: \"120px\",\n\txl: \"150px\",\n\txxl: \"180px\",\n\t\"3xl\": \"220px\",\n\t\"4xl\": \"260px\",\n\t\"5xl\": \"300px\",\n\tfull: \"100%\",\n};\n\nexport const ICON_SIZE: Record<string, string> = {\n\txxs: \"14px\",\n\txs: \"16px\",\n\tsm: \"18px\",\n\tmd: \"20px\",\n\tlg: \"24px\",\n\txl: \"28px\",\n\txxl: \"32px\",\n};\n\nexport const BUBBLE_WIDTH: Record<string, string> = {\n\tnano: \"120px\",\n\tmicro: \"150px\",\n\tkilo: \"230px\",\n\tmega: \"300px\",\n\tgiga: \"386px\",\n};\n","export function resolveSize(\n\tvalue: string | undefined,\n\tmap: Record<string, string>,\n\tfallback?: string,\n): string | undefined {\n\tif (!value) return fallback;\n\treturn map[value] ?? value;\n}\n","import type React from \"react\";\nimport { SPACING, TEXT_SIZE } from \"../constants\";\nimport type { FlexButton } from \"../types\";\nimport { resolveSize } from \"../utils\";\n\nexport function FlexButtonComponent({ component }: { component: FlexButton }) {\n\tconst isPrimary = component.style === \"primary\";\n\tconst isLink = component.style === \"link\";\n\tconst height = component.height === \"sm\" ? \"40px\" : \"52px\";\n\n\tconst style: React.CSSProperties = {\n\t\twidth: \"100%\",\n\t\theight,\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tborderRadius:\n\t\t\tisPrimary || component.style === \"secondary\" ? \"9999px\" : undefined,\n\t\tbackgroundColor: isPrimary\n\t\t\t? (component.color ?? \"#17C950\")\n\t\t\t: isLink\n\t\t\t\t? \"transparent\"\n\t\t\t\t: \"#EFEFEF\",\n\t\tcolor: isPrimary\n\t\t\t? \"#ffffff\"\n\t\t\t: isLink\n\t\t\t\t? (component.color ?? \"#42659A\")\n\t\t\t\t: \"#111111\",\n\t\tfontSize: TEXT_SIZE.sm,\n\t\tfontWeight: 600,\n\t\tborder: \"none\",\n\t\tcursor: \"pointer\",\n\t\tmarginTop: resolveSize(component.margin, SPACING, undefined),\n\t\tflex: component.flex !== undefined ? `${component.flex} 0 0%` : undefined,\n\t};\n\n\treturn (\n\t\t<button type=\"button\" style={style}>\n\t\t\t{component.action.label}\n\t\t</button>\n\t);\n}\n","import { ICON_SIZE } from \"../constants\";\nimport type { FlexIcon } from \"../types\";\nimport { resolveSize } from \"../utils\";\n\nexport function FlexIconComponent({ component }: { component: FlexIcon }) {\n\tconst size = resolveSize(component.size, ICON_SIZE, ICON_SIZE.md);\n\treturn (\n\t\t<img\n\t\t\tsrc={component.url}\n\t\t\talt=\"\"\n\t\t\tstyle={{ width: size, height: size, objectFit: \"contain\" }}\n\t\t/>\n\t);\n}\n","import type React from \"react\";\nimport { IMAGE_SIZE, SPACING } from \"../constants\";\nimport type { FlexImage } from \"../types\";\nimport { resolveSize } from \"../utils\";\n\nexport function FlexImageComponent({ component }: { component: FlexImage }) {\n\tconst [w, h] = (component.aspectRatio ?? \"1:1\").split(\":\").map(Number);\n\n\tconst style: React.CSSProperties = {\n\t\twidth:\n\t\t\tcomponent.size === \"full\"\n\t\t\t\t? \"100%\"\n\t\t\t\t: resolveSize(component.size, IMAGE_SIZE, IMAGE_SIZE.md),\n\t\tmarginTop: resolveSize(component.margin, SPACING, undefined),\n\t\tflex: component.flex !== undefined ? `${component.flex} 0 0%` : undefined,\n\t\tbackgroundColor: component.backgroundColor,\n\t};\n\n\tconst innerStyle: React.CSSProperties = {\n\t\twidth: \"100%\",\n\t\tpaddingTop: `${(h / w) * 100}%`,\n\t\tposition: \"relative\",\n\t\toverflow: \"hidden\",\n\t};\n\n\tconst imgStyle: React.CSSProperties = {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tleft: 0,\n\t\twidth: \"100%\",\n\t\theight: \"100%\",\n\t\tobjectFit: component.aspectMode === \"fit\" ? \"contain\" : \"cover\",\n\t};\n\n\treturn (\n\t\t<div style={style}>\n\t\t\t<div style={innerStyle}>\n\t\t\t\t<img src={component.url} alt=\"\" style={imgStyle} />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import type React from \"react\";\nimport { SPACING } from \"../constants\";\nimport type { FlexSeparator } from \"../types\";\nimport { resolveSize } from \"../utils\";\n\nexport function FlexSeparatorComponent({\n\tcomponent,\n}: {\n\tcomponent: FlexSeparator;\n}) {\n\tconst style: React.CSSProperties = {\n\t\tborderTop: `1px solid ${component.color ?? \"#E5E5E5\"}`,\n\t\tmarginTop: resolveSize(component.margin, SPACING, undefined),\n\t\twidth: \"100%\",\n\t};\n\treturn <hr style={style} />;\n}\n","import type React from \"react\";\nimport { TEXT_SIZE } from \"../constants\";\nimport type { FlexSpan } from \"../types\";\nimport { resolveSize } from \"../utils\";\n\nexport function FlexSpanComponent({ span }: { span: FlexSpan }) {\n\tconst style: React.CSSProperties = {\n\t\tfontSize: resolveSize(span.size, TEXT_SIZE, \"inherit\"),\n\t\tcolor: span.color,\n\t\tfontWeight: span.weight === \"bold\" ? 700 : undefined,\n\t\ttextDecoration: span.decoration !== \"none\" ? span.decoration : undefined,\n\t\tfontStyle: span.style,\n\t};\n\treturn <span style={style}>{span.text}</span>;\n}\n","import type React from \"react\";\nimport { SPACING, TEXT_SIZE } from \"../constants\";\nimport type { FlexText } from \"../types\";\nimport { resolveSize } from \"../utils\";\nimport { FlexSpanComponent } from \"./FlexSpan\";\n\nconst alignMap: Record<string, string> = {\n\tstart: \"left\",\n\tcenter: \"center\",\n\tend: \"right\",\n};\n\nconst gravityMap: Record<string, string> = {\n\ttop: \"flex-start\",\n\tcenter: \"center\",\n\tbottom: \"flex-end\",\n};\n\nexport function FlexTextComponent({ component }: { component: FlexText }) {\n\tconst hasSpans = component.contents && component.contents.length > 0;\n\tconst fontSize = resolveSize(component.size, TEXT_SIZE, TEXT_SIZE.md);\n\n\tconst style: React.CSSProperties = {\n\t\tfontSize,\n\t\tcolor: component.color,\n\t\tfontWeight: component.weight === \"bold\" ? 700 : 400,\n\t\ttextAlign: (alignMap[component.align ?? \"start\"] ??\n\t\t\t\"left\") as React.CSSProperties[\"textAlign\"],\n\t\tmarginTop: resolveSize(component.margin, SPACING, undefined),\n\t\tflex: component.flex !== undefined ? `${component.flex} 0 0%` : undefined,\n\t\talignSelf: component.gravity ? gravityMap[component.gravity] : undefined,\n\t\ttextDecoration:\n\t\t\tcomponent.decoration !== \"none\" ? component.decoration : undefined,\n\t\tfontStyle: component.style,\n\t\tlineHeight: component.lineSpacing ?? 1.4,\n\t\t...(!component.wrap\n\t\t\t? {\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\ttextOverflow: \"ellipsis\",\n\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\twhiteSpace: \"pre-wrap\",\n\t\t\t\t\twordBreak: \"break-word\",\n\t\t\t\t}),\n\t\t...(component.maxLines && component.wrap\n\t\t\t? {\n\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\tWebkitLineClamp: component.maxLines,\n\t\t\t\t\tWebkitBoxOrient: \"vertical\" as const,\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t}\n\t\t\t: {}),\n\t};\n\n\tif (hasSpans) {\n\t\treturn (\n\t\t\t<p style={style}>\n\t\t\t\t{component.contents?.map((span, i) => (\n\t\t\t\t\t<FlexSpanComponent key={i} span={span} />\n\t\t\t\t))}\n\t\t\t</p>\n\t\t);\n\t}\n\n\treturn <p style={style}>{component.text}</p>;\n}\n","import { SPACING } from \"../constants\";\nimport type { FlexComponentType, FlexFiller, FlexSpacer } from \"../types\";\nimport { resolveSize } from \"../utils\";\nimport { FlexBoxComponent } from \"./FlexBox\";\nimport { FlexButtonComponent } from \"./FlexButton\";\nimport { FlexIconComponent } from \"./FlexIcon\";\nimport { FlexImageComponent } from \"./FlexImage\";\nimport { FlexSeparatorComponent } from \"./FlexSeparator\";\nimport { FlexTextComponent } from \"./FlexText\";\n\nexport function FlexComponentRenderer({\n\tcomponent,\n}: {\n\tcomponent: FlexComponentType;\n}) {\n\tswitch (component.type) {\n\t\tcase \"box\":\n\t\t\treturn <FlexBoxComponent component={component} />;\n\t\tcase \"text\":\n\t\t\treturn <FlexTextComponent component={component} />;\n\t\tcase \"image\":\n\t\t\treturn <FlexImageComponent component={component} />;\n\t\tcase \"button\":\n\t\t\treturn <FlexButtonComponent component={component} />;\n\t\tcase \"separator\":\n\t\t\treturn <FlexSeparatorComponent component={component} />;\n\t\tcase \"spacer\":\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tflexGrow: 1,\n\t\t\t\t\t\theight: resolveSize((component as FlexSpacer).size, SPACING, \"0px\"),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"filler\":\n\t\t\treturn <div style={{ flexGrow: (component as FlexFiller).flex ?? 1 }} />;\n\t\tcase \"icon\":\n\t\t\treturn <FlexIconComponent component={component} />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n","import type React from \"react\";\nimport { SPACING } from \"../constants\";\nimport type { FlexBox } from \"../types\";\nimport { resolveSize } from \"../utils\";\nimport { FlexComponentRenderer } from \"./FlexComponentRenderer\";\n\nexport function FlexBoxComponent({ component }: { component: FlexBox }) {\n\tconst isVertical = component.layout === \"vertical\";\n\tconst isBaseline = component.layout === \"baseline\";\n\n\tconst style: React.CSSProperties = {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: isVertical ? \"column\" : \"row\",\n\t\talignItems: isBaseline\n\t\t\t? \"baseline\"\n\t\t\t: (component.alignItems ?? (isVertical ? \"stretch\" : \"center\")),\n\t\tjustifyContent: component.justifyContent,\n\t\tgap: resolveSize(component.spacing, SPACING, undefined),\n\t\tmarginTop: resolveSize(component.margin, SPACING, undefined),\n\t\tpadding: resolveSize(component.paddingAll, SPACING, undefined),\n\t\tpaddingTop: resolveSize(component.paddingTop, SPACING, undefined),\n\t\tpaddingBottom: resolveSize(component.paddingBottom, SPACING, undefined),\n\t\tpaddingLeft: resolveSize(component.paddingStart, SPACING, undefined),\n\t\tpaddingRight: resolveSize(component.paddingEnd, SPACING, undefined),\n\t\tbackgroundColor: component.backgroundColor,\n\t\tborderRadius: component.cornerRadius,\n\t\tborderColor: component.borderColor,\n\t\tborderWidth: component.borderWidth,\n\t\tborderStyle: component.borderWidth ? \"solid\" : undefined,\n\t\tflex: component.flex !== undefined ? `${component.flex} 0 0%` : undefined,\n\t};\n\n\treturn (\n\t\t<div style={style}>\n\t\t\t{component.contents.map((child, i) => (\n\t\t\t\t<FlexComponentRenderer key={i} component={child} />\n\t\t\t))}\n\t\t</div>\n\t);\n}\n","import type React from \"react\";\nimport { BUBBLE_WIDTH } from \"../constants\";\nimport type { FlexBubble, FlexContainer } from \"../types\";\nimport { FlexBoxComponent } from \"./FlexBox\";\nimport { FlexImageComponent } from \"./FlexImage\";\n\nexport interface FlexMessagePreviewProps {\n\t/** Flex Message JSON(bubble or carousel) */\n\tjson: FlexContainer;\n\t/** 追加 className */\n\tclassName?: string;\n\t/** 追加 inline style */\n\tstyle?: React.CSSProperties;\n}\n\nfunction BubbleRenderer({\n\tjson,\n\tclassName,\n\tstyle: extraStyle,\n}: {\n\tjson: FlexBubble;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n}) {\n\tconst width = BUBBLE_WIDTH[json.size ?? \"mega\"];\n\tconst headerBg = json.styles?.header?.backgroundColor;\n\tconst bodyBg = json.styles?.body?.backgroundColor;\n\tconst footerBg = json.styles?.footer?.backgroundColor;\n\tconst footerSep = json.styles?.footer?.separator;\n\tconst bodySep = json.styles?.body?.separator;\n\tconst heroSep = json.styles?.hero?.separator;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={className}\n\t\t\tstyle={{\n\t\t\t\twidth,\n\t\t\t\tmaxWidth: \"100%\",\n\t\t\t\tborderRadius: \"16px\",\n\t\t\t\toverflow: \"hidden\",\n\t\t\t\tbackgroundColor: \"#ffffff\",\n\t\t\t\tboxShadow: \"0 1px 6px rgba(0,0,0,0.12)\",\n\t\t\t\tfontFamily:\n\t\t\t\t\t'-apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Segoe UI\", Arial, sans-serif',\n\t\t\t\t...extraStyle,\n\t\t\t}}\n\t\t>\n\t\t\t{/* Header */}\n\t\t\t{json.header && (\n\t\t\t\t<div style={{ padding: \"16px 16px 0\", backgroundColor: headerBg }}>\n\t\t\t\t\t<FlexBoxComponent component={json.header} />\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Hero separator */}\n\t\t\t{heroSep && <hr style={{ borderTop: \"1px solid #E5E5E5\", margin: 0 }} />}\n\n\t\t\t{/* Hero */}\n\t\t\t{json.hero && <FlexImageComponent component={json.hero} />}\n\n\t\t\t{/* Body separator */}\n\t\t\t{bodySep && <hr style={{ borderTop: \"1px solid #E5E5E5\", margin: 0 }} />}\n\n\t\t\t{/* Body */}\n\t\t\t{json.body && (\n\t\t\t\t<div style={{ padding: \"16px\", backgroundColor: bodyBg }}>\n\t\t\t\t\t<FlexBoxComponent component={json.body} />\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Footer separator */}\n\t\t\t{footerSep && (\n\t\t\t\t<hr style={{ borderTop: \"1px solid #E5E5E5\", margin: 0 }} />\n\t\t\t)}\n\n\t\t\t{/* Footer */}\n\t\t\t{json.footer && (\n\t\t\t\t<div style={{ padding: \"8px 16px 16px\", backgroundColor: footerBg }}>\n\t\t\t\t\t<FlexBoxComponent component={json.footer} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function FlexMessagePreview({\n\tjson,\n\tclassName,\n\tstyle,\n}: FlexMessagePreviewProps) {\n\tif (json.type === \"carousel\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={className}\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\toverflowX: \"auto\",\n\t\t\t\t\tscrollSnapType: \"x mandatory\",\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{json.contents.map((bubble, i) => (\n\t\t\t\t\t<div key={i} style={{ scrollSnapAlign: \"start\", flexShrink: 0 }}>\n\t\t\t\t\t\t<BubbleRenderer json={bubble} />\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t}\n\treturn <BubbleRenderer json={json} className={className} style={style} />;\n}\n","import type React from \"react\";\n\nexport interface LineChatFrameProps {\n\tchildren: React.ReactNode;\n\t/** トーク画面のヘッダー名(デフォルト: \"トーク\") */\n\taccountName?: string;\n\t/** アバター画像 URL(未指定時は緑の BOT アイコン) */\n\tavatarUrl?: string;\n\t/** フレーム幅(デフォルト: 375) */\n\twidth?: number;\n}\n\nfunction DefaultAvatar() {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: 36,\n\t\t\t\theight: 36,\n\t\t\t\tborderRadius: \"50%\",\n\t\t\t\tbackgroundColor: \"#00B900\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tflexShrink: 0,\n\t\t\t\tcolor: \"#fff\",\n\t\t\t\tfontSize: 11,\n\t\t\t\tfontWeight: 700,\n\t\t\t}}\n\t\t>\n\t\t\tBOT\n\t\t</div>\n\t);\n}\n\nexport function LineChatFrame({\n\tchildren,\n\taccountName = \"トーク\",\n\tavatarUrl,\n\twidth = 375,\n}: LineChatFrameProps) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth,\n\t\t\t\tminHeight: 500,\n\t\t\t\tborderRadius: 12,\n\t\t\t\toverflow: \"hidden\",\n\t\t\t\tboxShadow: \"0 4px 24px rgba(0,0,0,0.18)\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tfontFamily:\n\t\t\t\t\t'-apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Segoe UI\", Arial, sans-serif',\n\t\t\t}}\n\t\t>\n\t\t\t{/* Header bar */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"#00B900\",\n\t\t\t\t\tcolor: \"#fff\",\n\t\t\t\t\tpadding: \"12px 16px\",\n\t\t\t\t\tfontSize: 16,\n\t\t\t\t\tfontWeight: 700,\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\twidth=\"18\"\n\t\t\t\t\theight=\"18\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2.5\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\trole=\"img\"\n\t\t\t\t\taria-label=\"Back\"\n\t\t\t\t>\n\t\t\t\t\t<path d=\"M15 18l-6-6 6-6\" />\n\t\t\t\t</svg>\n\t\t\t\t<span>{accountName}</span>\n\t\t\t</div>\n\n\t\t\t{/* Chat area */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"#7B9EB0\",\n\t\t\t\t\tflex: 1,\n\t\t\t\t\tpadding: \"16px 12px\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* Message row */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{avatarUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={avatarUrl}\n\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: 36,\n\t\t\t\t\t\t\t\theight: 36,\n\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\tobjectFit: \"cover\",\n\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DefaultAvatar />\n\t\t\t\t\t)}\n\t\t\t\t\t<div style={{ maxWidth: \"calc(100% - 52px)\" }}>{children}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Input bar */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"#F7F7F7\",\n\t\t\t\t\tpadding: \"10px 12px\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tborderTop: \"1px solid #E0E0E0\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\tbackgroundColor: \"#fff\",\n\t\t\t\t\t\tborderRadius: 20,\n\t\t\t\t\t\tpadding: \"8px 14px\",\n\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\tcolor: \"#999\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tAa\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","export function LineTextBubble({ text }: { text: string }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tbackgroundColor: \"#ffffff\",\n\t\t\t\tborderRadius: \"16px 16px 16px 4px\",\n\t\t\t\tpadding: \"10px 14px\",\n\t\t\t\tfontSize: 14,\n\t\t\t\tlineHeight: 1.5,\n\t\t\t\tcolor: \"#111111\",\n\t\t\t\twhiteSpace: \"pre-wrap\",\n\t\t\t\twordBreak: \"break-word\",\n\t\t\t\tmaxWidth: 260,\n\t\t\t\tboxShadow: \"0 1px 3px rgba(0,0,0,0.08)\",\n\t\t\t\tfontFamily:\n\t\t\t\t\t'-apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Segoe UI\", Arial, sans-serif',\n\t\t\t}}\n\t\t>\n\t\t\t{text}\n\t\t</div>\n\t);\n}\n"]}
@@ -0,0 +1,153 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
3
+
4
+ interface FlexAction {
5
+ type: "uri" | "message" | "postback";
6
+ label: string;
7
+ uri?: string;
8
+ text?: string;
9
+ data?: string;
10
+ }
11
+ interface FlexSpan {
12
+ type: "span";
13
+ text?: string;
14
+ size?: string;
15
+ color?: string;
16
+ weight?: "bold" | "regular";
17
+ decoration?: "underline" | "line-through" | "none";
18
+ style?: "normal" | "italic";
19
+ }
20
+ interface FlexText {
21
+ type: "text";
22
+ text?: string;
23
+ size?: string;
24
+ color?: string;
25
+ weight?: "bold" | "regular";
26
+ align?: "start" | "center" | "end";
27
+ gravity?: "top" | "center" | "bottom";
28
+ wrap?: boolean;
29
+ maxLines?: number;
30
+ margin?: string;
31
+ flex?: number;
32
+ decoration?: "underline" | "line-through" | "none";
33
+ style?: "normal" | "italic";
34
+ lineSpacing?: string;
35
+ contents?: FlexSpan[];
36
+ }
37
+ interface FlexImage {
38
+ type: "image";
39
+ url: string;
40
+ size?: string;
41
+ aspectRatio?: string;
42
+ aspectMode?: "cover" | "fit";
43
+ margin?: string;
44
+ flex?: number;
45
+ align?: "start" | "center" | "end";
46
+ gravity?: "top" | "center" | "bottom";
47
+ backgroundColor?: string;
48
+ }
49
+ interface FlexButton {
50
+ type: "button";
51
+ action: FlexAction;
52
+ style?: "primary" | "secondary" | "link";
53
+ color?: string;
54
+ height?: "sm" | "md";
55
+ margin?: string;
56
+ flex?: number;
57
+ }
58
+ interface FlexSeparator {
59
+ type: "separator";
60
+ margin?: string;
61
+ color?: string;
62
+ }
63
+ interface FlexSpacer {
64
+ type: "spacer";
65
+ size?: string;
66
+ }
67
+ interface FlexFiller {
68
+ type: "filler";
69
+ flex?: number;
70
+ }
71
+ interface FlexIcon {
72
+ type: "icon";
73
+ url: string;
74
+ size?: string;
75
+ }
76
+ interface FlexBox {
77
+ type: "box";
78
+ layout: "vertical" | "horizontal" | "baseline";
79
+ contents: FlexComponentType[];
80
+ spacing?: string;
81
+ margin?: string;
82
+ paddingAll?: string;
83
+ paddingTop?: string;
84
+ paddingBottom?: string;
85
+ paddingStart?: string;
86
+ paddingEnd?: string;
87
+ backgroundColor?: string;
88
+ cornerRadius?: string;
89
+ borderColor?: string;
90
+ borderWidth?: string;
91
+ flex?: number;
92
+ justifyContent?: "flex-start" | "center" | "flex-end" | "space-between" | "space-around" | "space-evenly";
93
+ alignItems?: "flex-start" | "center" | "flex-end";
94
+ }
95
+ type FlexComponentType = FlexBox | FlexText | FlexImage | FlexButton | FlexSeparator | FlexSpacer | FlexFiller | FlexIcon;
96
+ interface FlexBlockStyle {
97
+ backgroundColor?: string;
98
+ separator?: boolean;
99
+ }
100
+ interface FlexBubble {
101
+ type: "bubble";
102
+ size?: "nano" | "micro" | "kilo" | "mega" | "giga";
103
+ header?: FlexBox;
104
+ hero?: FlexImage;
105
+ body?: FlexBox;
106
+ footer?: FlexBox;
107
+ styles?: {
108
+ header?: FlexBlockStyle;
109
+ hero?: FlexBlockStyle;
110
+ body?: FlexBlockStyle;
111
+ footer?: FlexBlockStyle;
112
+ };
113
+ }
114
+ /** Carousel: 複数 bubble を横スクロール */
115
+ interface FlexCarousel {
116
+ type: "carousel";
117
+ contents: FlexBubble[];
118
+ }
119
+ /** Flex Message の最上位型(bubble または carousel) */
120
+ type FlexContainer = FlexBubble | FlexCarousel;
121
+ /** LINE Messaging API の flexMessage 型 */
122
+ interface FlexMessage {
123
+ type: "flex";
124
+ altText: string;
125
+ contents: FlexContainer;
126
+ }
127
+
128
+ interface FlexMessagePreviewProps {
129
+ /** Flex Message JSON(bubble or carousel) */
130
+ json: FlexContainer;
131
+ /** 追加 className */
132
+ className?: string;
133
+ /** 追加 inline style */
134
+ style?: React.CSSProperties;
135
+ }
136
+ declare function FlexMessagePreview({ json, className, style, }: FlexMessagePreviewProps): react_jsx_runtime.JSX.Element;
137
+
138
+ interface LineChatFrameProps {
139
+ children: React.ReactNode;
140
+ /** トーク画面のヘッダー名(デフォルト: "トーク") */
141
+ accountName?: string;
142
+ /** アバター画像 URL(未指定時は緑の BOT アイコン) */
143
+ avatarUrl?: string;
144
+ /** フレーム幅(デフォルト: 375) */
145
+ width?: number;
146
+ }
147
+ declare function LineChatFrame({ children, accountName, avatarUrl, width, }: LineChatFrameProps): react_jsx_runtime.JSX.Element;
148
+
149
+ declare function LineTextBubble({ text }: {
150
+ text: string;
151
+ }): react_jsx_runtime.JSX.Element;
152
+
153
+ export { type FlexAction, type FlexBlockStyle, type FlexBox, type FlexBubble, type FlexButton, type FlexCarousel, type FlexComponentType, type FlexContainer, type FlexFiller, type FlexIcon, type FlexImage, type FlexMessage, FlexMessagePreview, type FlexSeparator, type FlexSpacer, type FlexSpan, type FlexText, LineChatFrame, LineTextBubble };
@@ -0,0 +1,153 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
3
+
4
+ interface FlexAction {
5
+ type: "uri" | "message" | "postback";
6
+ label: string;
7
+ uri?: string;
8
+ text?: string;
9
+ data?: string;
10
+ }
11
+ interface FlexSpan {
12
+ type: "span";
13
+ text?: string;
14
+ size?: string;
15
+ color?: string;
16
+ weight?: "bold" | "regular";
17
+ decoration?: "underline" | "line-through" | "none";
18
+ style?: "normal" | "italic";
19
+ }
20
+ interface FlexText {
21
+ type: "text";
22
+ text?: string;
23
+ size?: string;
24
+ color?: string;
25
+ weight?: "bold" | "regular";
26
+ align?: "start" | "center" | "end";
27
+ gravity?: "top" | "center" | "bottom";
28
+ wrap?: boolean;
29
+ maxLines?: number;
30
+ margin?: string;
31
+ flex?: number;
32
+ decoration?: "underline" | "line-through" | "none";
33
+ style?: "normal" | "italic";
34
+ lineSpacing?: string;
35
+ contents?: FlexSpan[];
36
+ }
37
+ interface FlexImage {
38
+ type: "image";
39
+ url: string;
40
+ size?: string;
41
+ aspectRatio?: string;
42
+ aspectMode?: "cover" | "fit";
43
+ margin?: string;
44
+ flex?: number;
45
+ align?: "start" | "center" | "end";
46
+ gravity?: "top" | "center" | "bottom";
47
+ backgroundColor?: string;
48
+ }
49
+ interface FlexButton {
50
+ type: "button";
51
+ action: FlexAction;
52
+ style?: "primary" | "secondary" | "link";
53
+ color?: string;
54
+ height?: "sm" | "md";
55
+ margin?: string;
56
+ flex?: number;
57
+ }
58
+ interface FlexSeparator {
59
+ type: "separator";
60
+ margin?: string;
61
+ color?: string;
62
+ }
63
+ interface FlexSpacer {
64
+ type: "spacer";
65
+ size?: string;
66
+ }
67
+ interface FlexFiller {
68
+ type: "filler";
69
+ flex?: number;
70
+ }
71
+ interface FlexIcon {
72
+ type: "icon";
73
+ url: string;
74
+ size?: string;
75
+ }
76
+ interface FlexBox {
77
+ type: "box";
78
+ layout: "vertical" | "horizontal" | "baseline";
79
+ contents: FlexComponentType[];
80
+ spacing?: string;
81
+ margin?: string;
82
+ paddingAll?: string;
83
+ paddingTop?: string;
84
+ paddingBottom?: string;
85
+ paddingStart?: string;
86
+ paddingEnd?: string;
87
+ backgroundColor?: string;
88
+ cornerRadius?: string;
89
+ borderColor?: string;
90
+ borderWidth?: string;
91
+ flex?: number;
92
+ justifyContent?: "flex-start" | "center" | "flex-end" | "space-between" | "space-around" | "space-evenly";
93
+ alignItems?: "flex-start" | "center" | "flex-end";
94
+ }
95
+ type FlexComponentType = FlexBox | FlexText | FlexImage | FlexButton | FlexSeparator | FlexSpacer | FlexFiller | FlexIcon;
96
+ interface FlexBlockStyle {
97
+ backgroundColor?: string;
98
+ separator?: boolean;
99
+ }
100
+ interface FlexBubble {
101
+ type: "bubble";
102
+ size?: "nano" | "micro" | "kilo" | "mega" | "giga";
103
+ header?: FlexBox;
104
+ hero?: FlexImage;
105
+ body?: FlexBox;
106
+ footer?: FlexBox;
107
+ styles?: {
108
+ header?: FlexBlockStyle;
109
+ hero?: FlexBlockStyle;
110
+ body?: FlexBlockStyle;
111
+ footer?: FlexBlockStyle;
112
+ };
113
+ }
114
+ /** Carousel: 複数 bubble を横スクロール */
115
+ interface FlexCarousel {
116
+ type: "carousel";
117
+ contents: FlexBubble[];
118
+ }
119
+ /** Flex Message の最上位型(bubble または carousel) */
120
+ type FlexContainer = FlexBubble | FlexCarousel;
121
+ /** LINE Messaging API の flexMessage 型 */
122
+ interface FlexMessage {
123
+ type: "flex";
124
+ altText: string;
125
+ contents: FlexContainer;
126
+ }
127
+
128
+ interface FlexMessagePreviewProps {
129
+ /** Flex Message JSON(bubble or carousel) */
130
+ json: FlexContainer;
131
+ /** 追加 className */
132
+ className?: string;
133
+ /** 追加 inline style */
134
+ style?: React.CSSProperties;
135
+ }
136
+ declare function FlexMessagePreview({ json, className, style, }: FlexMessagePreviewProps): react_jsx_runtime.JSX.Element;
137
+
138
+ interface LineChatFrameProps {
139
+ children: React.ReactNode;
140
+ /** トーク画面のヘッダー名(デフォルト: "トーク") */
141
+ accountName?: string;
142
+ /** アバター画像 URL(未指定時は緑の BOT アイコン) */
143
+ avatarUrl?: string;
144
+ /** フレーム幅(デフォルト: 375) */
145
+ width?: number;
146
+ }
147
+ declare function LineChatFrame({ children, accountName, avatarUrl, width, }: LineChatFrameProps): react_jsx_runtime.JSX.Element;
148
+
149
+ declare function LineTextBubble({ text }: {
150
+ text: string;
151
+ }): react_jsx_runtime.JSX.Element;
152
+
153
+ export { type FlexAction, type FlexBlockStyle, type FlexBox, type FlexBubble, type FlexButton, type FlexCarousel, type FlexComponentType, type FlexContainer, type FlexFiller, type FlexIcon, type FlexImage, type FlexMessage, FlexMessagePreview, type FlexSeparator, type FlexSpacer, type FlexSpan, type FlexText, LineChatFrame, LineTextBubble };