@haklex/rich-renderer-codeblock 0.0.63 → 0.0.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CodeBlockCard.d.ts +2 -3
- package/dist/CodeBlockCard.d.ts.map +1 -1
- package/dist/CodeBlockEditRenderer.d.ts.map +1 -1
- package/dist/{CodeBlockRenderer-BAfW72ee.js → CodeBlockRenderer-DoVYgPoV.js} +5 -25
- package/dist/CodeBlockRenderer.d.ts.map +1 -1
- package/dist/LanguageCombobox.d.ts +7 -0
- package/dist/LanguageCombobox.d.ts.map +1 -0
- package/dist/icons/language.d.ts.map +1 -1
- package/dist/icons.mjs +3 -3
- package/dist/index.mjs +69 -6
- package/dist/{language-DlgJtK5A.js → language-CWZoNKWO.js} +31 -10
- package/dist/static.mjs +1 -1
- package/package.json +5 -4
- package/LICENSE +0 -28
package/dist/CodeBlockCard.d.ts
CHANGED
|
@@ -3,10 +3,9 @@ interface CodeBlockCardProps {
|
|
|
3
3
|
code: string;
|
|
4
4
|
language: string;
|
|
5
5
|
collapsible?: boolean;
|
|
6
|
-
|
|
7
|
-
onLanguageChange?: (language: string) => void;
|
|
6
|
+
langSlot?: ReactNode;
|
|
8
7
|
children: ReactNode;
|
|
9
8
|
}
|
|
10
|
-
export declare function CodeBlockCard({ code, language, collapsible,
|
|
9
|
+
export declare function CodeBlockCard({ code, language, collapsible, langSlot, children, }: CodeBlockCardProps): import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
export {};
|
|
12
11
|
//# sourceMappingURL=CodeBlockCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockCard.d.ts","sourceRoot":"","sources":["../src/CodeBlockCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAerD,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"CodeBlockCard.d.ts","sourceRoot":"","sources":["../src/CodeBlockCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAerD,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,WAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,EAAE,kBAAkB,2CAgHpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockEditRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockEditRenderer.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"CodeBlockEditRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockEditRenderer.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAc1C,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,sBAAsB,CAiRvE,CAAA"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useVariant } from "@haklex/rich-editor";
|
|
3
2
|
import { useState, useRef, useEffect, useCallback, useMemo } from "react";
|
|
4
3
|
import { Check, Copy, ChevronDown } from "lucide-react";
|
|
5
4
|
import { normalizeLanguage, getLanguageDisplayName, languageToColorMap } from "./constants.mjs";
|
|
6
5
|
import "@iconify/utils";
|
|
7
6
|
import "@iconify-json/material-icon-theme";
|
|
8
|
-
import {
|
|
7
|
+
import { i as card, s as semanticClassNames, l as lang, h as hasLanguageIcon, a as LanguageIcon, j as copyButton, k as bodyBackground, m as expandWrap, n as expandButton, o as scroll, p as scrollCollapsed, c as lined, d as linedWithNumbers } from "./language-CWZoNKWO.js";
|
|
9
8
|
import { getHighlighterWithLang, SHIKI_DUAL_THEMES } from "./shiki.mjs";
|
|
10
9
|
const CopyIcon = /* @__PURE__ */ jsx(Copy, { size: 16 });
|
|
11
10
|
const CheckIcon = /* @__PURE__ */ jsx(Check, { size: 16 });
|
|
@@ -14,8 +13,7 @@ function CodeBlockCard({
|
|
|
14
13
|
code,
|
|
15
14
|
language,
|
|
16
15
|
collapsible = true,
|
|
17
|
-
|
|
18
|
-
onLanguageChange,
|
|
16
|
+
langSlot,
|
|
19
17
|
children
|
|
20
18
|
}) {
|
|
21
19
|
const normalizedLanguage = normalizeLanguage(language);
|
|
@@ -67,31 +65,14 @@ function CodeBlockCard({
|
|
|
67
65
|
className: `${card} ${semanticClassNames.card}`,
|
|
68
66
|
style: cardStyle,
|
|
69
67
|
children: [
|
|
70
|
-
|
|
71
|
-
hasLanguageIcon(normalizedLanguage) && /* @__PURE__ */ jsx(LanguageIcon, { language: normalizedLanguage, size: 14 }),
|
|
72
|
-
/* @__PURE__ */ jsx(
|
|
73
|
-
"input",
|
|
74
|
-
{
|
|
75
|
-
className: langInput,
|
|
76
|
-
value: language,
|
|
77
|
-
placeholder: "language",
|
|
78
|
-
onChange: (e) => onLanguageChange?.(e.target.value),
|
|
79
|
-
onKeyDown: (e) => {
|
|
80
|
-
e.stopPropagation();
|
|
81
|
-
if (e.key === "Escape" || e.key === "Enter") {
|
|
82
|
-
e.currentTarget.blur();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
)
|
|
87
|
-
] }) : normalizedLanguage !== "text" && /* @__PURE__ */ jsx(
|
|
68
|
+
langSlot ?? (normalizedLanguage !== "text" && /* @__PURE__ */ jsx(
|
|
88
69
|
"div",
|
|
89
70
|
{
|
|
90
71
|
className: `${lang} ${semanticClassNames.lang}`,
|
|
91
72
|
"aria-hidden": true,
|
|
92
73
|
children: hasLanguageIcon(normalizedLanguage) ? /* @__PURE__ */ jsx(LanguageIcon, { language: normalizedLanguage, size: 14 }) : /* @__PURE__ */ jsx("span", { children: languageLabel })
|
|
93
74
|
}
|
|
94
|
-
),
|
|
75
|
+
)),
|
|
95
76
|
/* @__PURE__ */ jsx(
|
|
96
77
|
"button",
|
|
97
78
|
{
|
|
@@ -138,8 +119,7 @@ const CodeBlockRenderer = ({
|
|
|
138
119
|
language,
|
|
139
120
|
showLineNumbers: showLineNumbersProp
|
|
140
121
|
}) => {
|
|
141
|
-
const
|
|
142
|
-
const showLineNumbers = showLineNumbersProp ?? variant !== "comment";
|
|
122
|
+
const showLineNumbers = showLineNumbersProp ?? false;
|
|
143
123
|
const normalizedLanguage = normalizeLanguage(language);
|
|
144
124
|
const [html, setHtml] = useState(null);
|
|
145
125
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"CodeBlockRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQ1C,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAgEnE,CAAA;AAED,eAAe,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface LanguageComboboxProps {
|
|
2
|
+
language: string;
|
|
3
|
+
onLanguageChange?: (language: string) => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function LanguageCombobox({ language, onLanguageChange, }: LanguageComboboxProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=LanguageCombobox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguageCombobox.d.ts","sourceRoot":"","sources":["../src/LanguageCombobox.tsx"],"names":[],"mappings":"AAoBA,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,gBAAgB,GACjB,EAAE,qBAAqB,2CAkDvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/icons/language.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAM/B,iEAAiE;AACjE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/icons/language.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAM/B,iEAAiE;AACjE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoE/C,CAAA;AAOD,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAiCA,CAAA"}
|
package/dist/icons.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
import { g as getMaterialIconSvg } from "./language-
|
|
4
|
-
import { L,
|
|
3
|
+
import { g as getMaterialIconSvg } from "./language-CWZoNKWO.js";
|
|
4
|
+
import { L, a, h } from "./language-CWZoNKWO.js";
|
|
5
5
|
const EXT_TO_ICON = {
|
|
6
6
|
ts: "typescript",
|
|
7
7
|
tsx: "react-ts",
|
|
@@ -90,7 +90,7 @@ const FileIcon = ({
|
|
|
90
90
|
export {
|
|
91
91
|
FileIcon,
|
|
92
92
|
L as LANG_TO_ICON,
|
|
93
|
-
|
|
93
|
+
a as LanguageIcon,
|
|
94
94
|
getMaterialIconSvg,
|
|
95
95
|
h as hasLanguageIcon
|
|
96
96
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -4,11 +4,69 @@ import { Compartment, Prec, EditorState, EditorSelection } from "@codemirror/sta
|
|
|
4
4
|
import { EditorView, keymap, lineNumbers } from "@codemirror/view";
|
|
5
5
|
import { isOnFirstLine, isOnLastLine, getThemeExtensions, loadLanguageExtension } from "@haklex/cm-editor";
|
|
6
6
|
import { useVariant, useColorScheme } from "@haklex/rich-editor";
|
|
7
|
-
import { useState, useRef,
|
|
8
|
-
import { a as CodeBlockCard } from "./CodeBlockRenderer-
|
|
9
|
-
import { C } from "./CodeBlockRenderer-
|
|
7
|
+
import { useCallback, useMemo, useState, useRef, useEffect } from "react";
|
|
8
|
+
import { a as CodeBlockCard } from "./CodeBlockRenderer-DoVYgPoV.js";
|
|
9
|
+
import { C } from "./CodeBlockRenderer-DoVYgPoV.js";
|
|
10
10
|
import { normalizeLanguage } from "./constants.mjs";
|
|
11
|
-
import {
|
|
11
|
+
import { Combobox, ComboboxInput, ComboboxContent, ComboboxEmpty, ComboboxList, ComboboxItem } from "@haklex/rich-editor-ui";
|
|
12
|
+
import { bundledLanguagesInfo } from "shiki/bundle/web";
|
|
13
|
+
import "@iconify/utils";
|
|
14
|
+
import "@iconify-json/material-icon-theme";
|
|
15
|
+
import { l as lang, s as semanticClassNames, h as hasLanguageIcon, a as LanguageIcon, b as langInput, c as lined, d as linedWithNumbers, e as body, f as bodyReadonly } from "./language-CWZoNKWO.js";
|
|
16
|
+
const languageItems = bundledLanguagesInfo.map((info) => ({
|
|
17
|
+
id: info.id,
|
|
18
|
+
name: info.name
|
|
19
|
+
}));
|
|
20
|
+
function LanguageCombobox({
|
|
21
|
+
language,
|
|
22
|
+
onLanguageChange
|
|
23
|
+
}) {
|
|
24
|
+
const normalizedLanguage = normalizeLanguage(language);
|
|
25
|
+
const handleValueChange = useCallback(
|
|
26
|
+
(value) => {
|
|
27
|
+
if (value) {
|
|
28
|
+
onLanguageChange?.(value.id);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
[onLanguageChange]
|
|
32
|
+
);
|
|
33
|
+
const selectedValue = useMemo(
|
|
34
|
+
() => languageItems.find((item) => item.id === normalizedLanguage) ?? null,
|
|
35
|
+
[normalizedLanguage]
|
|
36
|
+
);
|
|
37
|
+
return /* @__PURE__ */ jsxs("div", { className: `${lang} ${semanticClassNames.lang}`, children: [
|
|
38
|
+
hasLanguageIcon(normalizedLanguage) && /* @__PURE__ */ jsx(LanguageIcon, { language: normalizedLanguage, size: 14 }),
|
|
39
|
+
/* @__PURE__ */ jsxs(
|
|
40
|
+
Combobox,
|
|
41
|
+
{
|
|
42
|
+
value: selectedValue,
|
|
43
|
+
onValueChange: handleValueChange,
|
|
44
|
+
itemToStringValue: (item) => item.id,
|
|
45
|
+
itemToStringLabel: (item) => item.id,
|
|
46
|
+
items: languageItems,
|
|
47
|
+
children: [
|
|
48
|
+
/* @__PURE__ */ jsx(
|
|
49
|
+
ComboboxInput,
|
|
50
|
+
{
|
|
51
|
+
className: langInput,
|
|
52
|
+
placeholder: "language",
|
|
53
|
+
onKeyDown: (e) => {
|
|
54
|
+
e.stopPropagation();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
),
|
|
58
|
+
/* @__PURE__ */ jsxs(ComboboxContent, { side: "top", sideOffset: 8, align: "end", children: [
|
|
59
|
+
/* @__PURE__ */ jsx(ComboboxEmpty, { children: "No languages found." }),
|
|
60
|
+
/* @__PURE__ */ jsx(ComboboxList, { children: (item) => /* @__PURE__ */ jsxs(ComboboxItem, { value: item, children: [
|
|
61
|
+
/* @__PURE__ */ jsx(LanguageIcon, { language: item.id, size: 16 }),
|
|
62
|
+
item.name
|
|
63
|
+
] }, item.id) })
|
|
64
|
+
] })
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
] });
|
|
69
|
+
}
|
|
12
70
|
function stopHandledEvent(event) {
|
|
13
71
|
event.preventDefault();
|
|
14
72
|
event.stopPropagation();
|
|
@@ -212,8 +270,13 @@ const CodeBlockEditRenderer = ({
|
|
|
212
270
|
code,
|
|
213
271
|
language,
|
|
214
272
|
collapsible: !editable,
|
|
215
|
-
editable
|
|
216
|
-
|
|
273
|
+
langSlot: editable ? /* @__PURE__ */ jsx(
|
|
274
|
+
LanguageCombobox,
|
|
275
|
+
{
|
|
276
|
+
language,
|
|
277
|
+
onLanguageChange
|
|
278
|
+
}
|
|
279
|
+
) : void 0,
|
|
217
280
|
children: [
|
|
218
281
|
!mounted && /* @__PURE__ */ jsx("pre", { className: fallbackClassName, children: /* @__PURE__ */ jsx("code", { children: fallbackLines.map((line, i) => /* @__PURE__ */ jsx("span", { className: "line", children: line }, `${line}-${i}`)) }) }),
|
|
219
282
|
/* @__PURE__ */ jsx(
|
|
@@ -28,22 +28,30 @@ const LANG_TO_ICON = {
|
|
|
28
28
|
js: "javascript",
|
|
29
29
|
typescript: "typescript",
|
|
30
30
|
ts: "typescript",
|
|
31
|
+
"angular-ts": "angular",
|
|
32
|
+
"angular-html": "angular",
|
|
31
33
|
jsx: "react",
|
|
32
34
|
tsx: "react",
|
|
33
|
-
// TSX → React icon (same as JSX)
|
|
34
35
|
html: "html",
|
|
36
|
+
"html-derivative": "html",
|
|
35
37
|
css: "css",
|
|
36
38
|
scss: "sass",
|
|
37
39
|
sass: "sass",
|
|
38
40
|
less: "sass",
|
|
41
|
+
postcss: "postcss",
|
|
42
|
+
stylus: "stylus",
|
|
39
43
|
json: "json",
|
|
44
|
+
json5: "json",
|
|
40
45
|
jsonc: "json",
|
|
46
|
+
jsonl: "json",
|
|
41
47
|
markdown: "markdown",
|
|
42
48
|
md: "markdown",
|
|
43
49
|
mdx: "markdown",
|
|
50
|
+
mdc: "markdown",
|
|
44
51
|
bash: "console",
|
|
45
52
|
sh: "console",
|
|
46
53
|
shell: "console",
|
|
54
|
+
shellscript: "console",
|
|
47
55
|
zsh: "console",
|
|
48
56
|
python: "python",
|
|
49
57
|
py: "python",
|
|
@@ -61,15 +69,28 @@ const LANG_TO_ICON = {
|
|
|
61
69
|
sql: "database",
|
|
62
70
|
xml: "xml",
|
|
63
71
|
vue: "vue",
|
|
72
|
+
"vue-html": "vue",
|
|
73
|
+
"vue-vine": "vue",
|
|
64
74
|
svelte: "svelte",
|
|
75
|
+
astro: "astro",
|
|
65
76
|
php: "php",
|
|
66
77
|
rb: "ruby",
|
|
78
|
+
r: "r",
|
|
79
|
+
julia: "julia",
|
|
67
80
|
lua: "lua",
|
|
68
81
|
zig: "zig",
|
|
69
82
|
toml: "toml",
|
|
70
83
|
graphql: "graphql",
|
|
71
84
|
gql: "graphql",
|
|
72
|
-
dockerfile: "docker"
|
|
85
|
+
dockerfile: "docker",
|
|
86
|
+
coffee: "coffee",
|
|
87
|
+
pug: "pug",
|
|
88
|
+
haml: "haml",
|
|
89
|
+
handlebars: "handlebars",
|
|
90
|
+
marko: "markojs",
|
|
91
|
+
imba: "imba",
|
|
92
|
+
hurl: "hurl",
|
|
93
|
+
http: "http"
|
|
73
94
|
};
|
|
74
95
|
function getLanguageIconSvg(lang2) {
|
|
75
96
|
const iconName = LANG_TO_ICON[lang2] ?? "code";
|
|
@@ -113,18 +134,18 @@ const LanguageIcon = ({
|
|
|
113
134
|
};
|
|
114
135
|
export {
|
|
115
136
|
LANG_TO_ICON as L,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
137
|
+
LanguageIcon as a,
|
|
138
|
+
langInput as b,
|
|
139
|
+
lined as c,
|
|
140
|
+
linedWithNumbers as d,
|
|
141
|
+
body as e,
|
|
142
|
+
bodyReadonly as f,
|
|
122
143
|
getMaterialIconSvg as g,
|
|
123
144
|
hasLanguageIcon as h,
|
|
124
|
-
|
|
145
|
+
card as i,
|
|
125
146
|
copyButton as j,
|
|
126
147
|
bodyBackground as k,
|
|
127
|
-
|
|
148
|
+
lang as l,
|
|
128
149
|
expandWrap as m,
|
|
129
150
|
expandButton as n,
|
|
130
151
|
scroll as o,
|
package/dist/static.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haklex/rich-renderer-codeblock",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.65",
|
|
5
5
|
"description": "Code block renderer with Shiki syntax highlighting",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"exports": {
|
|
@@ -43,9 +43,10 @@
|
|
|
43
43
|
"@iconify/utils": "^3.1.0",
|
|
44
44
|
"lucide-react": "^0.577.0",
|
|
45
45
|
"shiki": "^4.0.1",
|
|
46
|
-
"@haklex/rich-editor": "0.0.
|
|
47
|
-
"@haklex/
|
|
48
|
-
"@haklex/
|
|
46
|
+
"@haklex/rich-editor-ui": "0.0.65",
|
|
47
|
+
"@haklex/cm-editor": "0.0.65",
|
|
48
|
+
"@haklex/rich-editor": "0.0.65",
|
|
49
|
+
"@haklex/rich-style-token": "0.0.65"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
52
|
"@types/react": "^19.2.14",
|
package/LICENSE
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 Innei
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Additional Terms and Conditions
|
|
25
|
-
|
|
26
|
-
----------------
|
|
27
|
-
|
|
28
|
-
Use of this software is governed by the terms of MIT and, in addition, by the terms and conditions described in the additional file (ADDITIONAL_TERMS.md). By using this software, you agree to abide by these additional terms and conditions.
|