@elmethis/vue 0.3.1 → 0.3.2

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,9 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as ElmOEmbed } from './ElmOEmbed.vue';
3
+ declare const meta: Meta<typeof ElmOEmbed>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Photo: Story;
7
+ export declare const Rich: Story;
8
+ export declare const Video: Story;
9
+ export declare const Link: Story;
@@ -0,0 +1,40 @@
1
+ interface OEmbedBase {
2
+ type: "photo" | "video" | "link" | "rich";
3
+ title?: string;
4
+ author_name?: string;
5
+ author_url?: string;
6
+ provider_name?: string;
7
+ provider_url?: string;
8
+ cache_age?: number;
9
+ thumbnail_url?: string;
10
+ thumbnail_width?: number;
11
+ thumbnail_height?: number;
12
+ [key: string]: any;
13
+ }
14
+ interface OEmbedPhoto extends OEmbedBase {
15
+ type: "photo";
16
+ url: string;
17
+ width: number;
18
+ height: number;
19
+ }
20
+ interface OEmbedVideo extends OEmbedBase {
21
+ type: "video";
22
+ html: string;
23
+ width: number;
24
+ height: number;
25
+ }
26
+ interface OEmbedRich extends OEmbedBase {
27
+ type: "rich";
28
+ html: string;
29
+ width: number;
30
+ height: number;
31
+ }
32
+ interface OEmbedLink extends OEmbedBase {
33
+ type: "link";
34
+ }
35
+ type OEmbedResponse = OEmbedPhoto | OEmbedVideo | OEmbedRich | OEmbedLink;
36
+ export interface ElmOEmbedProps {
37
+ oEmbed: OEmbedResponse;
38
+ }
39
+ declare const _default: import('vue').DefineComponent<ElmOEmbedProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ElmOEmbedProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
40
+ export default _default;
@@ -0,0 +1,57 @@
1
+ import { defineComponent, createElementBlock, openBlock, createBlock, createCommentVNode, createElementVNode, normalizeStyle, createVNode, withCtx, createTextVNode, toDisplayString } from "vue";
2
+ import ElmImage from "../media/ElmImage.vue.mjs";
3
+ import ElmInlineText from "../typography/ElmInlineText.vue.mjs";
4
+ const _hoisted_1 = { key: 1 };
5
+ const _hoisted_2 = ["innerHTML"];
6
+ const _hoisted_3 = ["innerHTML"];
7
+ const _hoisted_4 = { key: 3 };
8
+ const _sfc_main = /* @__PURE__ */ defineComponent({
9
+ __name: "ElmOEmbed",
10
+ props: {
11
+ oEmbed: {}
12
+ },
13
+ setup(__props) {
14
+ return (_ctx, _cache) => {
15
+ return openBlock(), createElementBlock("div", null, [
16
+ __props.oEmbed.type === "photo" ? (openBlock(), createBlock(ElmImage, {
17
+ key: 0,
18
+ src: __props.oEmbed.url,
19
+ alt: __props.oEmbed.title,
20
+ width: __props.oEmbed.width,
21
+ height: __props.oEmbed.height,
22
+ block: ""
23
+ }, null, 8, ["src", "alt", "width", "height"])) : __props.oEmbed.type === "video" ? (openBlock(), createElementBlock("div", _hoisted_1, [
24
+ createElementVNode("div", {
25
+ innerHTML: __props.oEmbed.html,
26
+ style: normalizeStyle({
27
+ width: __props.oEmbed.width && `${__props.oEmbed.width}px`,
28
+ height: __props.oEmbed.height && `${__props.oEmbed.height}px`
29
+ })
30
+ }, null, 12, _hoisted_2)
31
+ ])) : __props.oEmbed.type === "rich" ? (openBlock(), createElementBlock("div", {
32
+ key: 2,
33
+ style: normalizeStyle({
34
+ width: __props.oEmbed.width && `${__props.oEmbed.width}px`,
35
+ height: __props.oEmbed.height && `${__props.oEmbed.height}px`
36
+ })
37
+ }, [
38
+ createElementVNode("div", {
39
+ innerHTML: __props.oEmbed.html
40
+ }, null, 8, _hoisted_3)
41
+ ], 4)) : __props.oEmbed.type === "link" ? (openBlock(), createElementBlock("div", _hoisted_4, [
42
+ createVNode(ElmInlineText, {
43
+ href: __props.oEmbed.author_url || __props.oEmbed.provider_url || "#"
44
+ }, {
45
+ default: withCtx(() => [
46
+ createTextVNode(toDisplayString(__props.oEmbed.title || __props.oEmbed.author_name || __props.oEmbed.provider_name || "Link"), 1)
47
+ ]),
48
+ _: 1
49
+ }, 8, ["href"])
50
+ ])) : createCommentVNode("", true)
51
+ ]);
52
+ };
53
+ }
54
+ });
55
+ export {
56
+ _sfc_main as default
57
+ };
@@ -0,0 +1,4 @@
1
+ import _sfc_main from "./ElmOEmbed.vue.mjs";
2
+ export {
3
+ _sfc_main as default
4
+ };
package/dist/index.d.ts CHANGED
@@ -30,6 +30,8 @@ export type { ElmStatusMessageProps } from './components/data/ElmStatusMessage.v
30
30
  export { default as ElmStatusMessage } from './components/data/ElmStatusMessage.vue';
31
31
  export type { ElmRectangleWaveProps } from './components/fallback/ElmRectangleWave.vue';
32
32
  export { default as ElmRectangleWave } from './components/fallback/ElmRectangleWave.vue';
33
+ export type { ElmOEmbedProps } from './components/embed/ElmOEmbed.vue';
34
+ export { default as ElmOEmbed } from './components/embed/ElmOEmbed.vue';
33
35
  export type { ElmBlockFallbackProps } from './components/fallback/ElmBlockFallback.vue';
34
36
  export { default as ElmBlockFallback } from './components/fallback/ElmBlockFallback.vue';
35
37
  export type { ElmSpinnerProps } from './components/fallback/ElmSpinner.vue';
package/dist/index.mjs CHANGED
@@ -26,114 +26,116 @@ import { default as default14 } from "./components/data/ElmProgress.vue.mjs";
26
26
  import { default as default15 } from "./components/data/ElmMultiProgress.vue.mjs";
27
27
  import { default as default16 } from "./components/data/ElmStatusMessage.vue.mjs";
28
28
  import { default as default17 } from "./components/fallback/ElmRectangleWave.vue.mjs";
29
- import { default as default18 } from "./components/fallback/ElmBlockFallback.vue.mjs";
30
- import { default as default19 } from "./components/fallback/ElmSpinner.vue.mjs";
31
- import { default as default20 } from "./components/fallback/ElmUnsupportedBlock.vue.mjs";
32
- import { default as default21 } from "./components/form/ElmButton.vue.mjs";
33
- import { default as default22 } from "./components/form/ElmCheckbox.vue.mjs";
34
- import { default as default23 } from "./components/form/ElmSelect.vue.mjs";
35
- import { default as default24 } from "./components/form/ElmSwitch.vue.mjs";
36
- import { default as default25 } from "./components/form/ElmTextField.vue.mjs";
37
- import { default as default26 } from "./components/form/ElmValidation.vue.mjs";
38
- import { default as default27 } from "./components/icon/ElmArrowIcon.vue.mjs";
39
- import { default as default28 } from "./components/icon/ElmBookmarkIcon.vue.mjs";
40
- import { default as default29 } from "./components/icon/ElmCubeIcon.vue.mjs";
41
- import { default as default30 } from "./components/icon/ElmDotLoadingIcon.vue.mjs";
42
- import { default as default31 } from "./components/icon/ElmInlineIcon.vue.mjs";
43
- import { default as default32 } from "./components/icon/ElmLanguageIcon.vue.mjs";
44
- import { default as default33 } from "./components/icon/ElmLoginIcon.vue.mjs";
45
- import { default as default34 } from "./components/icon/ElmMdiIcon.vue.mjs";
46
- import { default as default35 } from "./components/icon/ElmSquareLoadingIcon.vue.mjs";
47
- import { default as default36 } from "./components/icon/ElmToggleTheme.vue.mjs";
48
- import { default as default37 } from "./components/media/ElmFile.vue.mjs";
49
- import { default as default38 } from "./components/media/ElmImage.vue.mjs";
50
- import { default as default39 } from "./components/navigation/ElmBookmark.vue.mjs";
51
- import { default as default40 } from "./components/navigation/ElmBreadcrumb.vue.mjs";
52
- import { default as default41 } from "./components/navigation/ElmPagetop.vue.mjs";
53
- import { default as default42 } from "./components/navigation/ElmTableOfContents.vue.mjs";
54
- import { default as default43 } from "./components/others/ElmColorSample.vue.mjs";
55
- import { default as default44 } from "./components/others/ElmColorTable.vue.mjs";
56
- import { default as default45 } from "./components/others/ElmCommandPalette.vue.mjs";
57
- import { default as default46 } from "./components/others/ElmJsonComponentRenderer.vue.mjs";
58
- import { default as default47 } from "./components/others/ElmMarkdown.vue.mjs";
59
- import { default as default48 } from "./components/table/ElmTable.vue.mjs";
60
- import { default as default49 } from "./components/table/ElmTableHeader.vue.mjs";
61
- import { default as default50 } from "./components/table/ElmTableBody.vue.mjs";
62
- import { default as default51 } from "./components/table/ElmTableRow.vue.mjs";
63
- import { default as default52 } from "./components/table/ElmTableCell.vue.mjs";
64
- import { default as default53 } from "./components/typography/ElmBlockQuote.vue.mjs";
65
- import { default as default54 } from "./components/typography/ElmCallout.vue.mjs";
66
- import { default as default55 } from "./components/typography/ElmDivider.vue.mjs";
67
- import { default as default56 } from "./components/typography/ElmFragmentIdentifier.vue.mjs";
68
- import { default as default57 } from "./components/typography/ElmHeading.vue.mjs";
69
- import { default as default58 } from "./components/typography/ElmInlineText.vue.mjs";
70
- import { default as default59 } from "./components/typography/ElmParagraph.vue.mjs";
71
- import { default as default60 } from "./components/typography/ElmList.vue.mjs";
29
+ import { default as default18 } from "./components/embed/ElmOEmbed.vue.mjs";
30
+ import { default as default19 } from "./components/fallback/ElmBlockFallback.vue.mjs";
31
+ import { default as default20 } from "./components/fallback/ElmSpinner.vue.mjs";
32
+ import { default as default21 } from "./components/fallback/ElmUnsupportedBlock.vue.mjs";
33
+ import { default as default22 } from "./components/form/ElmButton.vue.mjs";
34
+ import { default as default23 } from "./components/form/ElmCheckbox.vue.mjs";
35
+ import { default as default24 } from "./components/form/ElmSelect.vue.mjs";
36
+ import { default as default25 } from "./components/form/ElmSwitch.vue.mjs";
37
+ import { default as default26 } from "./components/form/ElmTextField.vue.mjs";
38
+ import { default as default27 } from "./components/form/ElmValidation.vue.mjs";
39
+ import { default as default28 } from "./components/icon/ElmArrowIcon.vue.mjs";
40
+ import { default as default29 } from "./components/icon/ElmBookmarkIcon.vue.mjs";
41
+ import { default as default30 } from "./components/icon/ElmCubeIcon.vue.mjs";
42
+ import { default as default31 } from "./components/icon/ElmDotLoadingIcon.vue.mjs";
43
+ import { default as default32 } from "./components/icon/ElmInlineIcon.vue.mjs";
44
+ import { default as default33 } from "./components/icon/ElmLanguageIcon.vue.mjs";
45
+ import { default as default34 } from "./components/icon/ElmLoginIcon.vue.mjs";
46
+ import { default as default35 } from "./components/icon/ElmMdiIcon.vue.mjs";
47
+ import { default as default36 } from "./components/icon/ElmSquareLoadingIcon.vue.mjs";
48
+ import { default as default37 } from "./components/icon/ElmToggleTheme.vue.mjs";
49
+ import { default as default38 } from "./components/media/ElmFile.vue.mjs";
50
+ import { default as default39 } from "./components/media/ElmImage.vue.mjs";
51
+ import { default as default40 } from "./components/navigation/ElmBookmark.vue.mjs";
52
+ import { default as default41 } from "./components/navigation/ElmBreadcrumb.vue.mjs";
53
+ import { default as default42 } from "./components/navigation/ElmPagetop.vue.mjs";
54
+ import { default as default43 } from "./components/navigation/ElmTableOfContents.vue.mjs";
55
+ import { default as default44 } from "./components/others/ElmColorSample.vue.mjs";
56
+ import { default as default45 } from "./components/others/ElmColorTable.vue.mjs";
57
+ import { default as default46 } from "./components/others/ElmCommandPalette.vue.mjs";
58
+ import { default as default47 } from "./components/others/ElmJsonComponentRenderer.vue.mjs";
59
+ import { default as default48 } from "./components/others/ElmMarkdown.vue.mjs";
60
+ import { default as default49 } from "./components/table/ElmTable.vue.mjs";
61
+ import { default as default50 } from "./components/table/ElmTableHeader.vue.mjs";
62
+ import { default as default51 } from "./components/table/ElmTableBody.vue.mjs";
63
+ import { default as default52 } from "./components/table/ElmTableRow.vue.mjs";
64
+ import { default as default53 } from "./components/table/ElmTableCell.vue.mjs";
65
+ import { default as default54 } from "./components/typography/ElmBlockQuote.vue.mjs";
66
+ import { default as default55 } from "./components/typography/ElmCallout.vue.mjs";
67
+ import { default as default56 } from "./components/typography/ElmDivider.vue.mjs";
68
+ import { default as default57 } from "./components/typography/ElmFragmentIdentifier.vue.mjs";
69
+ import { default as default58 } from "./components/typography/ElmHeading.vue.mjs";
70
+ import { default as default59 } from "./components/typography/ElmInlineText.vue.mjs";
71
+ import { default as default60 } from "./components/typography/ElmParagraph.vue.mjs";
72
+ import { default as default61 } from "./components/typography/ElmList.vue.mjs";
72
73
 
73
- import { default as default61 } from "./components/typography/ElmTypingAnimation.vue.mjs";
74
+ import { default as default62 } from "./components/typography/ElmTypingAnimation.vue.mjs";
74
75
  import { useElmethisTheme } from "./hooks/useElmethisTheme.mjs";
75
76
  import { useTyping } from "./hooks/useTyping.mjs";
76
77
  export {
77
- default27 as ElmArrowIcon,
78
- default18 as ElmBlockFallback,
79
- default53 as ElmBlockQuote,
80
- default39 as ElmBookmark,
81
- default28 as ElmBookmarkIcon,
82
- default40 as ElmBreadcrumb,
83
- default21 as ElmButton,
84
- default54 as ElmCallout,
85
- default22 as ElmCheckbox,
78
+ default28 as ElmArrowIcon,
79
+ default19 as ElmBlockFallback,
80
+ default54 as ElmBlockQuote,
81
+ default40 as ElmBookmark,
82
+ default29 as ElmBookmarkIcon,
83
+ default41 as ElmBreadcrumb,
84
+ default22 as ElmButton,
85
+ default55 as ElmCallout,
86
+ default23 as ElmCheckbox,
86
87
  default2 as ElmCodeBlock,
87
- default43 as ElmColorSample,
88
- default44 as ElmColorTable,
89
- default45 as ElmCommandPalette,
88
+ default44 as ElmColorSample,
89
+ default45 as ElmColorTable,
90
+ default46 as ElmCommandPalette,
90
91
  default6 as ElmConfirmModal,
91
- default29 as ElmCubeIcon,
92
+ default30 as ElmCubeIcon,
92
93
  default5 as ElmDesktopWindow,
93
- default55 as ElmDivider,
94
- default30 as ElmDotLoadingIcon,
95
- default37 as ElmFile,
96
- default56 as ElmFragmentIdentifier,
97
- default57 as ElmHeading,
98
- default38 as ElmImage,
99
- default31 as ElmInlineIcon,
100
- default58 as ElmInlineText,
101
- default46 as ElmJsonComponentRenderer,
94
+ default56 as ElmDivider,
95
+ default31 as ElmDotLoadingIcon,
96
+ default38 as ElmFile,
97
+ default57 as ElmFragmentIdentifier,
98
+ default58 as ElmHeading,
99
+ default39 as ElmImage,
100
+ default32 as ElmInlineIcon,
101
+ default59 as ElmInlineText,
102
+ default47 as ElmJsonComponentRenderer,
102
103
  default3 as ElmKatex,
103
- default32 as ElmLanguageIcon,
104
- default60 as ElmList,
105
- default33 as ElmLoginIcon,
106
- default47 as ElmMarkdown,
107
- default34 as ElmMdiIcon,
104
+ default33 as ElmLanguageIcon,
105
+ default61 as ElmList,
106
+ default34 as ElmLoginIcon,
107
+ default48 as ElmMarkdown,
108
+ default35 as ElmMdiIcon,
108
109
  default4 as ElmMermaid,
109
110
  default7 as ElmModal,
110
111
  default15 as ElmMultiProgress,
111
- default41 as ElmPagetop,
112
- default59 as ElmParagraph,
112
+ default18 as ElmOEmbed,
113
+ default42 as ElmPagetop,
114
+ default60 as ElmParagraph,
113
115
  default8 as ElmParallax,
114
116
  default14 as ElmProgress,
115
117
  default17 as ElmRectangleWave,
116
- default23 as ElmSelect,
118
+ default24 as ElmSelect,
117
119
  default9 as ElmSimpleTooltip,
118
120
  default10 as ElmSnackbar,
119
121
  default11 as ElmSnackbarContainer,
120
- default19 as ElmSpinner,
121
- default35 as ElmSquareLoadingIcon,
122
+ default20 as ElmSpinner,
123
+ default36 as ElmSquareLoadingIcon,
122
124
  default16 as ElmStatusMessage,
123
- default24 as ElmSwitch,
124
- default48 as ElmTable,
125
- default50 as ElmTableBody,
126
- default52 as ElmTableCell,
127
- default49 as ElmTableHeader,
128
- default42 as ElmTableOfContents,
129
- default51 as ElmTableRow,
130
- default25 as ElmTextField,
125
+ default25 as ElmSwitch,
126
+ default49 as ElmTable,
127
+ default51 as ElmTableBody,
128
+ default53 as ElmTableCell,
129
+ default50 as ElmTableHeader,
130
+ default43 as ElmTableOfContents,
131
+ default52 as ElmTableRow,
132
+ default26 as ElmTextField,
131
133
  default12 as ElmToggle,
132
- default36 as ElmToggleTheme,
134
+ default37 as ElmToggleTheme,
133
135
  default13 as ElmTooltip,
134
- default61 as ElmTypingAnimation,
135
- default20 as ElmUnsupportedBlock,
136
- default26 as ElmValidation,
136
+ default62 as ElmTypingAnimation,
137
+ default21 as ElmUnsupportedBlock,
138
+ default27 as ElmValidation,
137
139
  useElmethisTheme,
138
140
  useTyping
139
141
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elmethis/vue",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -26,7 +26,7 @@
26
26
  "@mdi/js": "^7.4.47",
27
27
  "@vueuse/core": "^14.2.1",
28
28
  "fuse.js": "^7.1.0",
29
- "katex": "^0.16.28",
29
+ "katex": "^0.16.33",
30
30
  "lodash-es": "^4.17.23",
31
31
  "marked": "^17.0.3",
32
32
  "mermaid": "^11.12.3",
@@ -49,12 +49,12 @@
49
49
  "jarkup-ts": "^0.7.0",
50
50
  "openapi-types": "^12.1.3",
51
51
  "postcss": "^8.5.6",
52
- "postcss-preset-env": "^11.1.3",
52
+ "postcss-preset-env": "^11.2.0",
53
53
  "sass": "^1.97.3",
54
54
  "vite": "^7.3.1",
55
55
  "vite-plugin-css-injected-by-js": "^3.5.2",
56
56
  "vite-plugin-dts": "^4.5.4",
57
- "vue-tsc": "^3.2.4",
57
+ "vue-tsc": "^3.2.5",
58
58
  "@vue/tsconfig": "^0.8.1",
59
59
  "typescript": "^5.9.3"
60
60
  },