risupect 0.0.3 → 0.0.4

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.
@@ -1,3 +1,13 @@
1
- export { CharacterButton, CharacterMenuGroup } from "./characterSidebar";
2
- export { ChatboxHamburgerButton } from "./chatboxHamburger";
1
+ /**
2
+ * @deprecated Use imports from 'risupect/v2/btn' instead.
3
+ */
4
+ export declare const CharacterButton: typeof import('../v2/btn').CharacterButton;
5
+ /**
6
+ * @deprecated Use imports from 'risupect/v2/btn' instead.
7
+ */
8
+ export declare const CharacterButtonGroup: typeof import('../v2/btn').CharacterMenuGroup;
9
+ /**
10
+ * @deprecated Use imports from 'risupect/v2/btn' instead.
11
+ */
12
+ export declare const CharacterToggleButton: typeof import('../v2/btn').ChatboxHamburgerButton;
3
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/btn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/btn/index.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,eAAO,MAAM,eAAe,4CAAwB,CAAC;AACrD;;GAEG;AACH,eAAO,MAAM,oBAAoB,+CAA2B,CAAC;AAC7D;;GAEG;AACH,eAAO,MAAM,qBAAqB,mDAA+B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export {};
1
+ export * as btn from './btn';
2
+ export * as v2 from './v2';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as o from "./risupect2.js";
2
+ import * as r from "./risupect3.js";
3
+ export {
4
+ o as btn,
5
+ r as v2
6
+ };
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzdXBlY3QuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzsifQ==
@@ -0,0 +1,7 @@
1
+ const t = await import("./risupect4.js"), r = t.CharacterButton, o = t.CharacterMenuGroup, a = t.ChatboxHamburgerButton;
2
+ export {
3
+ r as CharacterButton,
4
+ o as CharacterButtonGroup,
5
+ a as CharacterToggleButton
6
+ };
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzdXBlY3QyLmpzIiwic291cmNlcyI6WyIvcmlzdXBlY3QvLi9zcmMvYnRuL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHYyYnRuID0gYXdhaXQgaW1wb3J0KFwiLi4vdjIvYnRuXCIpO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgaW1wb3J0cyBmcm9tICdyaXN1cGVjdC92Mi9idG4nIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBDaGFyYWN0ZXJCdXR0b24gPSB2MmJ0bi5DaGFyYWN0ZXJCdXR0b247XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBpbXBvcnRzIGZyb20gJ3Jpc3VwZWN0L3YyL2J0bicgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IENoYXJhY3RlckJ1dHRvbkdyb3VwID0gdjJidG4uQ2hhcmFjdGVyTWVudUdyb3VwO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgaW1wb3J0cyBmcm9tICdyaXN1cGVjdC92Mi9idG4nIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBDaGFyYWN0ZXJUb2dnbGVCdXR0b24gPSB2MmJ0bi5DaGF0Ym94SGFtYnVyZ2VyQnV0dG9uO1xuIl0sIm5hbWVzIjpbInYyYnRuIiwiQ2hhcmFjdGVyQnV0dG9uIiwiQ2hhcmFjdGVyQnV0dG9uR3JvdXAiLCJDaGFyYWN0ZXJUb2dnbGVCdXR0b24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQVEsTUFBTSxPQUFPLGdCQUFXLEdBSXpCQyxJQUFrQkQsRUFBTSxpQkFJeEJFLElBQXVCRixFQUFNLG9CQUk3QkcsSUFBd0JILEVBQU07In0=
@@ -0,0 +1,5 @@
1
+ import * as o from "./risupect4.js";
2
+ export {
3
+ o as btn
4
+ };
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzdXBlY3QzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjsifQ==
@@ -0,0 +1,8 @@
1
+ import { CharacterButton as o, CharacterMenuGroup as a } from "./risupect5.js";
2
+ import { ChatboxHamburgerButton as u } from "./risupect6.js";
3
+ export {
4
+ o as CharacterButton,
5
+ a as CharacterMenuGroup,
6
+ u as ChatboxHamburgerButton
7
+ };
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzdXBlY3Q0LmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7In0=
@@ -0,0 +1,65 @@
1
+ import { RisuButton as i } from "./risupect7.js";
2
+ var s = /* @__PURE__ */ ((t) => (t[t.Character = 0] = "Character", t[t.Display = 1] = "Display", t[t.Lorebook = 2] = "Lorebook", t[t.TTS = 3] = "TTS", t[t.Script = 4] = "Script", t[t.Advanced = 5] = "Advanced", t[t.Share = 6] = "Share", t[t.Devtool = -1] = "Devtool", t))(s || {});
3
+ class d extends i {
4
+ constructor(e, n = {}) {
5
+ super(e, n);
6
+ }
7
+ getButtonElement() {
8
+ const e = super.getButtonElement();
9
+ return e.classList.add(
10
+ "bg-darkbutton",
11
+ "hover:bg-selected",
12
+ "focus:ring-selected",
13
+ "border-darkborderc",
14
+ "border",
15
+ "text-textcolor",
16
+ "rounded-md",
17
+ "shadow-sm",
18
+ "focus:outline-none",
19
+ "focus:ring-2",
20
+ "transition-colors",
21
+ "duration-200",
22
+ "mt-2",
23
+ "px-2",
24
+ this.options.size === "small" ? "text-sm" : "text-lg"
25
+ ), e;
26
+ }
27
+ getDefaultOptions() {
28
+ return {
29
+ text: "Sample Button",
30
+ onclick: () => {
31
+ },
32
+ size: "small",
33
+ menuSelector: 6
34
+ /* Share */
35
+ };
36
+ }
37
+ onDocumentChange(e) {
38
+ return () => {
39
+ const n = this.findThisMenu();
40
+ if (n === void 0 || n !== this.options.menuSelector || document.getElementById(this.id))
41
+ return;
42
+ const o = document.querySelector(
43
+ "div.setting-area > :nth-last-child(1)"
44
+ );
45
+ o ? o.after(e) : console.warn(
46
+ "Could not find the last element to insert the button after."
47
+ );
48
+ };
49
+ }
50
+ findThisMenu() {
51
+ const e = document.querySelector(
52
+ "div.setting-area div.flex.mb-2.gap-2"
53
+ );
54
+ if (!e)
55
+ return document.querySelector("div.setting-area") ? -1 : void 0;
56
+ for (let n = 0; n < e.children.length; n++)
57
+ if (!e.children[n].classList.contains("text-textcolor2"))
58
+ return n;
59
+ }
60
+ }
61
+ export {
62
+ d as CharacterButton,
63
+ s as CharacterMenuGroup
64
+ };
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzdXBlY3Q1LmpzIiwic291cmNlcyI6WyIvcmlzdXBlY3QvLi9zcmMvdjIvYnRuL2NoYXJhY3RlclNpZGViYXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmlzdUJ1dHRvbiB9IGZyb20gXCIuL2J0bkRlY2xhcmVcIjtcbmV4cG9ydCBlbnVtIENoYXJhY3Rlck1lbnVHcm91cCB7XG5cdENoYXJhY3RlciA9IDAsXG5cdERpc3BsYXkgPSAxLFxuXHRMb3JlYm9vayA9IDIsXG5cdFRUUyA9IDMsXG5cdFNjcmlwdCA9IDQsXG5cdEFkdmFuY2VkID0gNSxcblx0U2hhcmUgPSA2LFxuXHREZXZ0b29sID0gLTEsXG59XG50eXBlIENoYXJhY3RlckJ1dHRvbkNvbmZpZyA9IHtcblx0dGV4dDogc3RyaW5nO1xuXHRvbmNsaWNrOiAoKSA9PiB2b2lkO1xuXHRzaXplOiBcImxhcmdlXCIgfCBcInNtYWxsXCI7XG5cdG1lbnVTZWxlY3RvcjogQ2hhcmFjdGVyTWVudUdyb3VwIHwgbnVtYmVyO1xufTtcblxuZXhwb3J0IGNsYXNzIENoYXJhY3RlckJ1dHRvbiBleHRlbmRzIFJpc3VCdXR0b248Q2hhcmFjdGVyQnV0dG9uQ29uZmlnPiB7XG5cdGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBhcnRpYWw8Q2hhcmFjdGVyQnV0dG9uQ29uZmlnPiA9IHt9KSB7XG5cdFx0c3VwZXIoaWQsIG9wdGlvbnMpO1xuXHR9XG5cdHByb3RlY3RlZCBvdmVycmlkZSBnZXRCdXR0b25FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcblx0XHRjb25zdCBidG4gPSBzdXBlci5nZXRCdXR0b25FbGVtZW50KCk7XG5cdFx0YnRuLmNsYXNzTGlzdC5hZGQoXG5cdFx0XHRcImJnLWRhcmtidXR0b25cIixcblx0XHRcdFwiaG92ZXI6Ymctc2VsZWN0ZWRcIixcblx0XHRcdFwiZm9jdXM6cmluZy1zZWxlY3RlZFwiLFxuXHRcdFx0XCJib3JkZXItZGFya2JvcmRlcmNcIixcblx0XHRcdFwiYm9yZGVyXCIsXG5cdFx0XHRcInRleHQtdGV4dGNvbG9yXCIsXG5cdFx0XHRcInJvdW5kZWQtbWRcIixcblx0XHRcdFwic2hhZG93LXNtXCIsXG5cdFx0XHRcImZvY3VzOm91dGxpbmUtbm9uZVwiLFxuXHRcdFx0XCJmb2N1czpyaW5nLTJcIixcblx0XHRcdFwidHJhbnNpdGlvbi1jb2xvcnNcIixcblx0XHRcdFwiZHVyYXRpb24tMjAwXCIsXG5cdFx0XHRcIm10LTJcIixcblx0XHRcdFwicHgtMlwiLFxuXHRcdFx0dGhpcy5vcHRpb25zLnNpemUgPT09IFwic21hbGxcIiA/IFwidGV4dC1zbVwiIDogXCJ0ZXh0LWxnXCIsXG5cdFx0KTtcblx0XHRyZXR1cm4gYnRuO1xuXHR9XG5cdHByb3RlY3RlZCBvdmVycmlkZSBnZXREZWZhdWx0T3B0aW9ucygpOiBDaGFyYWN0ZXJCdXR0b25Db25maWcge1xuXHRcdHJldHVybiB7XG5cdFx0XHR0ZXh0OiBcIlNhbXBsZSBCdXR0b25cIixcblx0XHRcdG9uY2xpY2s6ICgpID0+IHt9LFxuXHRcdFx0c2l6ZTogXCJzbWFsbFwiLFxuXHRcdFx0bWVudVNlbGVjdG9yOiBDaGFyYWN0ZXJNZW51R3JvdXAuU2hhcmUsXG5cdFx0fTtcblx0fVxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Eb2N1bWVudENoYW5nZShidG46IEhUTUxFbGVtZW50KTogKCkgPT4gdm9pZCB7XG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGNvbnN0IG1lbnUgPSB0aGlzLmZpbmRUaGlzTWVudSgpO1xuXHRcdFx0aWYgKG1lbnUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAobWVudSAhPT0gdGhpcy5vcHRpb25zLm1lbnVTZWxlY3Rvcikge1xuXHRcdFx0XHQvL1dlJ3JlIG9uIHRoZSB3cm9uZyBtZW51XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKSkge1xuXHRcdFx0XHQvLyBCdXR0b24gYWxyZWFkeSBleGlzdHNcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvL1dob2EsIHRoaXMgY29kZSB3b3JrcyBpbiBkZXZ0b29sIHRvby5cblx0XHRcdGNvbnN0IGxhc3RFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihcblx0XHRcdFx0XCJkaXYuc2V0dGluZy1hcmVhID4gOm50aC1sYXN0LWNoaWxkKDEpXCIsXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGxhc3RFbGVtZW50KSB7XG5cdFx0XHRcdGxhc3RFbGVtZW50LmFmdGVyKGJ0bik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcdFx0XCJDb3VsZCBub3QgZmluZCB0aGUgbGFzdCBlbGVtZW50IHRvIGluc2VydCB0aGUgYnV0dG9uIGFmdGVyLlwiLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblx0cHJpdmF0ZSBmaW5kVGhpc01lbnUoKTogQ2hhcmFjdGVyTWVudUdyb3VwIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBtZW51YmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihcblx0XHRcdGBkaXYuc2V0dGluZy1hcmVhIGRpdi5mbGV4Lm1iLTIuZ2FwLTJgLFxuXHRcdCk7XG5cdFx0aWYgKCFtZW51YmFyKSB7XG5cdFx0XHQvL2l0IG1pZ2h0IGJlIGluIGRldnRvb2xcblx0XHRcdGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2LnNldHRpbmctYXJlYVwiKSlcblx0XHRcdFx0cmV0dXJuIENoYXJhY3Rlck1lbnVHcm91cC5EZXZ0b29sO1xuXHRcdFx0ZWxzZSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHQvL2ZpbmQgYSBtZW51YmFyJ3MgY2hpbGQgdGhhdCBkb2VzbnQgaGF2ZSB0aGUgY2xhc3MgXCJ0ZXh0LXRleHRjb2xvcjJcIlxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbWVudWJhci5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgY2hpbGQgPSBtZW51YmFyLmNoaWxkcmVuW2ldO1xuXHRcdFx0aWYgKCFjaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoXCJ0ZXh0LXRleHRjb2xvcjJcIikpIHtcblx0XHRcdFx0cmV0dXJuIGk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXSwibmFtZXMiOlsiQ2hhcmFjdGVyTWVudUdyb3VwIiwiQ2hhcmFjdGVyQnV0dG9uIiwiUmlzdUJ1dHRvbiIsImlkIiwib3B0aW9ucyIsImJ0biIsIm1lbnUiLCJsYXN0RWxlbWVudCIsIm1lbnViYXIiLCJpIl0sIm1hcHBpbmdzIjoiO0FBQ08sSUFBS0Esc0JBQUFBLE9BQ1hBLEVBQUFBLEVBQUEsWUFBWSxDQUFBLElBQVosYUFDQUEsRUFBQUEsRUFBQSxVQUFVLENBQUEsSUFBVixXQUNBQSxFQUFBQSxFQUFBLFdBQVcsQ0FBQSxJQUFYLFlBQ0FBLEVBQUFBLEVBQUEsTUFBTSxDQUFBLElBQU4sT0FDQUEsRUFBQUEsRUFBQSxTQUFTLENBQUEsSUFBVCxVQUNBQSxFQUFBQSxFQUFBLFdBQVcsQ0FBQSxJQUFYLFlBQ0FBLEVBQUFBLEVBQUEsUUFBUSxDQUFBLElBQVIsU0FDQUEsRUFBQUEsRUFBQSxVQUFVLEVBQUEsSUFBVixXQVJXQSxJQUFBQSxLQUFBLENBQUEsQ0FBQTtBQWlCTCxNQUFNQyxVQUF3QkMsRUFBa0M7QUFBQSxFQUN0RSxZQUFZQyxHQUFZQyxJQUEwQyxJQUFJO0FBQ3JFLFVBQU1ELEdBQUlDLENBQU87QUFBQSxFQUNsQjtBQUFBLEVBQ21CLG1CQUFnQztBQUNsRCxVQUFNQyxJQUFNLE1BQU0saUJBQUE7QUFDbEIsV0FBQUEsRUFBSSxVQUFVO0FBQUEsTUFDYjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLEtBQUssUUFBUSxTQUFTLFVBQVUsWUFBWTtBQUFBLElBQUEsR0FFdENBO0FBQUEsRUFDUjtBQUFBLEVBQ21CLG9CQUEyQztBQUM3RCxXQUFPO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixTQUFTLE1BQU07QUFBQSxNQUFDO0FBQUEsTUFDaEIsTUFBTTtBQUFBLE1BQ04sY0FBYztBQUFBO0FBQUEsSUFBQTtBQUFBLEVBRWhCO0FBQUEsRUFDbUIsaUJBQWlCQSxHQUE4QjtBQUNqRSxXQUFPLE1BQU07QUFDWixZQUFNQyxJQUFPLEtBQUssYUFBQTtBQVFsQixVQVBJQSxNQUFTLFVBR1RBLE1BQVMsS0FBSyxRQUFRLGdCQUl0QixTQUFTLGVBQWUsS0FBSyxFQUFFO0FBRWxDO0FBSUQsWUFBTUMsSUFBYyxTQUFTO0FBQUEsUUFDNUI7QUFBQSxNQUFBO0FBRUQsTUFBSUEsSUFDSEEsRUFBWSxNQUFNRixDQUFHLElBRXJCLFFBQVE7QUFBQSxRQUNQO0FBQUEsTUFBQTtBQUFBLElBR0g7QUFBQSxFQUNEO0FBQUEsRUFDUSxlQUErQztBQUN0RCxVQUFNRyxJQUFVLFNBQVM7QUFBQSxNQUN4QjtBQUFBLElBQUE7QUFFRCxRQUFJLENBQUNBO0FBRUosYUFBSSxTQUFTLGNBQWMsa0JBQWtCLElBQ3JDLEtBQ0g7QUFHTixhQUFTQyxJQUFJLEdBQUdBLElBQUlELEVBQVEsU0FBUyxRQUFRQztBQUU1QyxVQUFJLENBRFVELEVBQVEsU0FBU0MsQ0FBQyxFQUNyQixVQUFVLFNBQVMsaUJBQWlCO0FBQzlDLGVBQU9BO0FBQUEsRUFHVjtBQUNEOyJ9
@@ -0,0 +1,48 @@
1
+ import { RisuButton as o } from "./risupect7.js";
2
+ class i extends o {
3
+ constructor(e, t = {}) {
4
+ super(e, t);
5
+ }
6
+ /**
7
+ * Returns the button element.
8
+ * Cause button is in div element, this method is overridden.
9
+ * @returns {HTMLElement} The button element.
10
+ */
11
+ getButtonElement() {
12
+ const e = document.createElement("div");
13
+ e.className = "flex items-center cursor-pointer lg:hover:text-green-500 svelte-ba8msf", e.id = this.id, e.onclick = this.options.onclick;
14
+ const t = this.options.icon;
15
+ e.appendChild(t);
16
+ const l = document.createElement("span");
17
+ return l.className = "ml-2 svelte-ba8msf", l.textContent = this.options.text, e.appendChild(l), e;
18
+ }
19
+ getDefaultOptions() {
20
+ const e = new DOMParser().parseFromString(
21
+ `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
22
+ <path d="M14 4.5V9h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v7H2V2a2 2 0 0 1 2-2h5.5zM13 12h1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2h1v2a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1zM.5 10a.5.5 0 0 0 0 1h15a.5.5 0 0 0 0-1z"/>
23
+ </svg>`,
24
+ "image/svg+xml"
25
+ ).documentElement;
26
+ return {
27
+ text: "Sample Button",
28
+ onclick: () => {
29
+ },
30
+ icon: e,
31
+ order: "top"
32
+ };
33
+ }
34
+ onDocumentChange(e) {
35
+ return () => {
36
+ if (document.getElementById(this.id))
37
+ return;
38
+ const t = document.querySelector(
39
+ "html body div#app main.flex.bg-bg.w-full.h-full.max-w-100vw.text-textcolor div.flex-grow.h-full.min-w-0.relative.justify-center.flex div.h-full.w-full div.w-full.h-full.svelte-ba8msf div.h-full.w-full.flex.flex-col-reverse.overflow-y-auto.relative.default-chat-screen.svelte-ba8msf div.right-2.bottom-16.p-5.bg-darkbg.flex.flex-col.gap-3.text-textcolor.rounded-md.svelte-ba8msf"
40
+ );
41
+ t && (this.options.order === "top" ? t.firstElementChild.before(e) : t.lastElementChild.after(e));
42
+ };
43
+ }
44
+ }
45
+ export {
46
+ i as ChatboxHamburgerButton
47
+ };
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzdXBlY3Q2LmpzIiwic291cmNlcyI6WyIvcmlzdXBlY3QvLi9zcmMvdjIvYnRuL2NoYXRib3hIYW1idXJnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmlzdUJ1dHRvbiB9IGZyb20gXCIuL2J0bkRlY2xhcmVcIjtcblxudHlwZSBDaGF0Ym94SGFtYnVyZ2VyQnV0dG9uQ29uZmlnID0ge1xuXHR0ZXh0OiBzdHJpbmc7XG5cdG9uY2xpY2s6ICgpID0+IHZvaWQ7XG5cdGljb246IFNWR1NWR0VsZW1lbnQgfCBIVE1MRWxlbWVudDtcblx0b3JkZXI6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxuZXhwb3J0IGNsYXNzIENoYXRib3hIYW1idXJnZXJCdXR0b24gZXh0ZW5kcyBSaXN1QnV0dG9uPENoYXRib3hIYW1idXJnZXJCdXR0b25Db25maWc+IHtcblx0Y29uc3RydWN0b3IoXG5cdFx0aWQ6IHN0cmluZyxcblx0XHRvcHRpb25zOiBQYXJ0aWFsPENoYXRib3hIYW1idXJnZXJCdXR0b25Db25maWc+ID0ge30sXG5cdCkge1xuXHRcdHN1cGVyKGlkLCBvcHRpb25zKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBidXR0b24gZWxlbWVudC5cblx0ICogQ2F1c2UgYnV0dG9uIGlzIGluIGRpdiBlbGVtZW50LCB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVuLlxuXHQgKiBAcmV0dXJucyB7SFRNTEVsZW1lbnR9IFRoZSBidXR0b24gZWxlbWVudC5cblx0ICovXG5cdHByb3RlY3RlZCBvdmVycmlkZSBnZXRCdXR0b25FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcblx0XHRjb25zdCBidG5GYW1pbHkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuXHRcdGJ0bkZhbWlseS5jbGFzc05hbWUgPVxuXHRcdFx0XCJmbGV4IGl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlciBsZzpob3Zlcjp0ZXh0LWdyZWVuLTUwMCBzdmVsdGUtYmE4bXNmXCI7XG5cdFx0YnRuRmFtaWx5LmlkID0gdGhpcy5pZDtcblx0XHRidG5GYW1pbHkub25jbGljayA9IHRoaXMub3B0aW9ucy5vbmNsaWNrO1xuXG5cdFx0Y29uc3QgaWNvbiA9IHRoaXMub3B0aW9ucy5pY29uO1xuXHRcdGJ0bkZhbWlseS5hcHBlbmRDaGlsZChpY29uKTtcblxuXHRcdGNvbnN0IHRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcblx0XHR0ZXh0LmNsYXNzTmFtZSA9IFwibWwtMiBzdmVsdGUtYmE4bXNmXCI7XG5cdFx0dGV4dC50ZXh0Q29udGVudCA9IHRoaXMub3B0aW9ucy50ZXh0O1xuXHRcdGJ0bkZhbWlseS5hcHBlbmRDaGlsZCh0ZXh0KTtcblxuXHRcdHJldHVybiBidG5GYW1pbHk7XG5cdH1cblx0cHJvdGVjdGVkIG92ZXJyaWRlIGdldERlZmF1bHRPcHRpb25zKCk6IENoYXRib3hIYW1idXJnZXJCdXR0b25Db25maWcge1xuXHRcdC8qKlxuXHRcdCAqIEBsaWNlbnNlIHtNSVR9XG5cdFx0ICogQGNvcHlyaWdodCBCb290c3RyYXAgSWNvbnMsIDIwMTktMjAyNCwgZnJvbSBodHRwczovL2ljb25zLmdldGJvb3RzdHJhcC5jb20vaWNvbnMvZmlsZS1lYXJtYXJrLWJyZWFrL1xuXHRcdCAqIExpY2Vuc2UgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvaWNvbnMvYmxvYi9jZDM5YjkwMzI5ODQzYzM5NjM3OGI0NjhhYWZlYzNmZGIyNGJiN2ZhL0xJQ0VOU0Vcblx0XHQgKi9cblx0XHRjb25zdCBpY29uID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcblx0XHRcdGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuICA8cGF0aCBkPVwiTTE0IDQuNVY5aC0xVjQuNWgtMkExLjUgMS41IDAgMCAxIDkuNSAzVjFINGExIDEgMCAwIDAtMSAxdjdIMlYyYTIgMiAwIDAgMSAyLTJoNS41ek0xMyAxMmgxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTJoMXYyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xek0uNSAxMGEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMXpcIi8+XG48L3N2Zz5gLFxuXHRcdFx0XCJpbWFnZS9zdmcreG1sXCIsXG5cdFx0KS5kb2N1bWVudEVsZW1lbnQgYXMgdW5rbm93biBhcyBTVkdTVkdFbGVtZW50O1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHRleHQ6IFwiU2FtcGxlIEJ1dHRvblwiLFxuXHRcdFx0b25jbGljazogKCkgPT4ge30sXG5cdFx0XHRpY29uOiBpY29uLFxuXHRcdFx0b3JkZXI6IFwidG9wXCIsXG5cdFx0fTtcblx0fVxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Eb2N1bWVudENoYW5nZShidG46IEhUTUxFbGVtZW50KTogKCkgPT4gdm9pZCB7XG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKSkge1xuXHRcdFx0XHQvLyBCdXR0b24gYWxyZWFkeSBleGlzdHNcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvL1RyeSB0byBmaW5kIGNsaWNrZWQgaGFtYnVyZ2VyIG1lbnVcblx0XHRcdGNvbnN0IG1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuXHRcdFx0XHRcImh0bWwgYm9keSBkaXYjYXBwIG1haW4uZmxleC5iZy1iZy53LWZ1bGwuaC1mdWxsLm1heC13LTEwMHZ3LnRleHQtdGV4dGNvbG9yIGRpdi5mbGV4LWdyb3cuaC1mdWxsLm1pbi13LTAucmVsYXRpdmUuanVzdGlmeS1jZW50ZXIuZmxleCBkaXYuaC1mdWxsLnctZnVsbCBkaXYudy1mdWxsLmgtZnVsbC5zdmVsdGUtYmE4bXNmIGRpdi5oLWZ1bGwudy1mdWxsLmZsZXguZmxleC1jb2wtcmV2ZXJzZS5vdmVyZmxvdy15LWF1dG8ucmVsYXRpdmUuZGVmYXVsdC1jaGF0LXNjcmVlbi5zdmVsdGUtYmE4bXNmIGRpdi5yaWdodC0yLmJvdHRvbS0xNi5wLTUuYmctZGFya2JnLmZsZXguZmxleC1jb2wuZ2FwLTMudGV4dC10ZXh0Y29sb3Iucm91bmRlZC1tZC5zdmVsdGUtYmE4bXNmXCIsXG5cdFx0XHQpO1xuXHRcdFx0aWYgKG1lbnUpIHtcblx0XHRcdFx0aWYgKHRoaXMub3B0aW9ucy5vcmRlciA9PT0gXCJ0b3BcIilcblx0XHRcdFx0XHRtZW51LmZpcnN0RWxlbWVudENoaWxkIS5iZWZvcmUoYnRuKTtcblx0XHRcdFx0ZWxzZSBtZW51Lmxhc3RFbGVtZW50Q2hpbGQhLmFmdGVyKGJ0bik7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkNoYXRib3hIYW1idXJnZXJCdXR0b24iLCJSaXN1QnV0dG9uIiwiaWQiLCJvcHRpb25zIiwiYnRuRmFtaWx5IiwiaWNvbiIsInRleHQiLCJidG4iLCJtZW51Il0sIm1hcHBpbmdzIjoiO0FBU08sTUFBTUEsVUFBK0JDLEVBQXlDO0FBQUEsRUFDcEYsWUFDQ0MsR0FDQUMsSUFBaUQsSUFDaEQ7QUFDRCxVQUFNRCxHQUFJQyxDQUFPO0FBQUEsRUFDbEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPbUIsbUJBQWdDO0FBQ2xELFVBQU1DLElBQVksU0FBUyxjQUFjLEtBQUs7QUFDOUMsSUFBQUEsRUFBVSxZQUNULDBFQUNEQSxFQUFVLEtBQUssS0FBSyxJQUNwQkEsRUFBVSxVQUFVLEtBQUssUUFBUTtBQUVqQyxVQUFNQyxJQUFPLEtBQUssUUFBUTtBQUMxQixJQUFBRCxFQUFVLFlBQVlDLENBQUk7QUFFMUIsVUFBTUMsSUFBTyxTQUFTLGNBQWMsTUFBTTtBQUMxQyxXQUFBQSxFQUFLLFlBQVksc0JBQ2pCQSxFQUFLLGNBQWMsS0FBSyxRQUFRLE1BQ2hDRixFQUFVLFlBQVlFLENBQUksR0FFbkJGO0FBQUEsRUFDUjtBQUFBLEVBQ21CLG9CQUFrRDtBQU1wRSxVQUFNQyxJQUFPLElBQUksVUFBQSxFQUFZO0FBQUEsTUFDNUI7QUFBQTtBQUFBO0FBQUEsTUFHQTtBQUFBLElBQUEsRUFDQztBQUVGLFdBQU87QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFNBQVMsTUFBTTtBQUFBLE1BQUM7QUFBQSxNQUNoQixNQUFBQTtBQUFBLE1BQ0EsT0FBTztBQUFBLElBQUE7QUFBQSxFQUVUO0FBQUEsRUFDbUIsaUJBQWlCRSxHQUE4QjtBQUNqRSxXQUFPLE1BQU07QUFDWixVQUFJLFNBQVMsZUFBZSxLQUFLLEVBQUU7QUFFbEM7QUFJRCxZQUFNQyxJQUFPLFNBQVM7QUFBQSxRQUNyQjtBQUFBLE1BQUE7QUFFRCxNQUFJQSxNQUNDLEtBQUssUUFBUSxVQUFVLFFBQzFCQSxFQUFLLGtCQUFtQixPQUFPRCxDQUFHLElBQzlCQyxFQUFLLGlCQUFrQixNQUFNRCxDQUFHO0FBQUEsSUFFdkM7QUFBQSxFQUNEO0FBQ0Q7In0=
@@ -0,0 +1,63 @@
1
+ class e {
2
+ /** Unique identifier for the button element. */
3
+ id;
4
+ /** Button configuration options. */
5
+ options;
6
+ /** MutationObserver for document changes. */
7
+ observer;
8
+ /**
9
+ * Creates a new RisuButton instance.
10
+ * @param {string} id - The button's unique ID. It should be unique across the document.
11
+ * @param {Partial<T>} [options={}] - Partial configuration options to override defaults.
12
+ */
13
+ constructor(t, s = {}) {
14
+ if (new.target === e)
15
+ throw new Error(
16
+ "RisuButton is an abstract class and must be extended by a subclass."
17
+ );
18
+ this.id = t, this.options = { ...this.getDefaultOptions(), ...s }, onUnload(() => {
19
+ this.destroy();
20
+ });
21
+ }
22
+ /**
23
+ * Returns the button element.
24
+ * Subclasses can override this method to fit their neighborhood's format like <div><button>.
25
+ * @returns {HTMLElement} The button element.
26
+ */
27
+ getButtonElement() {
28
+ const t = document.createElement("button");
29
+ return t.id = this.id, t.textContent = this.options.text, t.onclick = this.options.onclick, t;
30
+ }
31
+ /**
32
+ * Applies new configuration options to the button.
33
+ * @param {Partial<T>} options - Partial options to update.
34
+ * @returns {this}
35
+ */
36
+ apply(t) {
37
+ return this.options = { ...this.options, ...t }, this;
38
+ }
39
+ /**
40
+ * Creates and configures the button element, sets up mutation observation.
41
+ * @returns {this}
42
+ */
43
+ create() {
44
+ const t = this.getButtonElement();
45
+ return this.observer = new MutationObserver(this.onDocumentChange(t)), this.observer.observe(document.body, {
46
+ childList: !0,
47
+ subtree: !0
48
+ }), this;
49
+ }
50
+ /**
51
+ * Cleans up the button and disconnects the observer.
52
+ * @returns {this}
53
+ */
54
+ destroy() {
55
+ this.observer && this.observer.disconnect && this.observer.disconnect();
56
+ const t = document.getElementById(this.id);
57
+ return t && t.remove(), this;
58
+ }
59
+ }
60
+ export {
61
+ e as RisuButton
62
+ };
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzdXBlY3Q3LmpzIiwic291cmNlcyI6WyIvcmlzdXBlY3QvLi9zcmMvdjIvYnRuL2J0bkRlY2xhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZGVjbGFyZSBmdW5jdGlvbiBvblVubG9hZChjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQ7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhIFJpc3VCdXR0b24uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGV4dCAtIFRoZSBidXR0b24gbGFiZWwgd2hpY2ggdXNlciBjYW4gc2VlLlxuICogQHByb3BlcnR5IHsoKSA9PiB2b2lkfSBvbmNsaWNrIC0gVGhlIGNsaWNrIGV2ZW50IGhhbmRsZXIuXG4gKi9cbnR5cGUgUmlzdUJ1dHRvbkNvbmZpZyA9IHtcblx0dGV4dDogc3RyaW5nO1xuXHRvbmNsaWNrOiAoKSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjcmVhdGluZyBjdXN0b20gYnV0dG9ucyB3aXRoIG11dGF0aW9uIG9ic2VydmF0aW9uIGFuZCBsaWZlY3ljbGUgbWFuYWdlbWVudC5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSBjb25maWd1cmF0aW9uIHR5cGUgZXh0ZW5kaW5nIFJpc3VCdXR0b25Db25maWcuIFN1YmNsYXNzZXMgY2FuIGRlZmluZSB0aGVpciBvd24gY29uZmlndXJhdGlvbiB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJpc3VCdXR0b248VCBleHRlbmRzIFJpc3VCdXR0b25Db25maWc+IHtcblx0LyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYnV0dG9uIGVsZW1lbnQuICovXG5cdHByb3RlY3RlZCByZWFkb25seSBpZDogc3RyaW5nO1xuXG5cdC8qKiBCdXR0b24gY29uZmlndXJhdGlvbiBvcHRpb25zLiAqL1xuXHRvcHRpb25zOiBUO1xuXG5cdC8qKiBNdXRhdGlvbk9ic2VydmVyIGZvciBkb2N1bWVudCBjaGFuZ2VzLiAqL1xuXHRwcm90ZWN0ZWQgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYnV0dG9uLlxuXHQgKiBNdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RGVmYXVsdE9wdGlvbnMoKTogVDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBSaXN1QnV0dG9uIGluc3RhbmNlLlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gaWQgLSBUaGUgYnV0dG9uJ3MgdW5pcXVlIElELiBJdCBzaG91bGQgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZG9jdW1lbnQuXG5cdCAqIEBwYXJhbSB7UGFydGlhbDxUPn0gW29wdGlvbnM9e31dIC0gUGFydGlhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gb3ZlcnJpZGUgZGVmYXVsdHMuXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBvcHRpb25zOiBQYXJ0aWFsPFQ+ID0ge30pIHtcblx0XHRpZiAobmV3LnRhcmdldCA9PT0gUmlzdUJ1dHRvbikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRcIlJpc3VCdXR0b24gaXMgYW4gYWJzdHJhY3QgY2xhc3MgYW5kIG11c3QgYmUgZXh0ZW5kZWQgYnkgYSBzdWJjbGFzcy5cIixcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5pZCA9IGlkO1xuXHRcdHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5nZXREZWZhdWx0T3B0aW9ucygpLCAuLi5vcHRpb25zIH07XG5cdFx0b25VbmxvYWQoKCkgPT4ge1xuXHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdFx0Ly9IYW5kb3ZlciBidXR0b24gc3R5bGluZyB0byB0aGUgc3ViY2xhc3Ncblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBidXR0b24gZWxlbWVudC5cblx0ICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gZml0IHRoZWlyIG5laWdoYm9yaG9vZCdzIGZvcm1hdCBsaWtlIDxkaXY+PGJ1dHRvbj4uXG5cdCAqIEByZXR1cm5zIHtIVE1MRWxlbWVudH0gVGhlIGJ1dHRvbiBlbGVtZW50LlxuXHQgKi9cblx0cHJvdGVjdGVkIGdldEJ1dHRvbkVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuXHRcdGNvbnN0IGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7XG5cdFx0YnRuLmlkID0gdGhpcy5pZDtcblx0XHRidG4udGV4dENvbnRlbnQgPSB0aGlzLm9wdGlvbnMudGV4dDtcblx0XHRidG4ub25jbGljayA9IHRoaXMub3B0aW9ucy5vbmNsaWNrO1xuXHRcdHJldHVybiBidG47XG5cdH1cblx0LyoqXG5cdCAqIEFwcGxpZXMgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byB0aGUgYnV0dG9uLlxuXHQgKiBAcGFyYW0ge1BhcnRpYWw8VD59IG9wdGlvbnMgLSBQYXJ0aWFsIG9wdGlvbnMgdG8gdXBkYXRlLlxuXHQgKiBAcmV0dXJucyB7dGhpc31cblx0ICovXG5cdGFwcGx5KG9wdGlvbnM6IFBhcnRpYWw8VD4pOiB0aGlzIHtcblx0XHR0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuZCBjb25maWd1cmVzIHRoZSBidXR0b24gZWxlbWVudCwgc2V0cyB1cCBtdXRhdGlvbiBvYnNlcnZhdGlvbi5cblx0ICogQHJldHVybnMge3RoaXN9XG5cdCAqL1xuXHRjcmVhdGUoKTogdGhpcyB7XG5cdFx0Y29uc3QgYnRuID0gdGhpcy5nZXRCdXR0b25FbGVtZW50KCk7XG5cblx0XHR0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5vbkRvY3VtZW50Q2hhbmdlKGJ0bikpO1xuXHRcdHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7XG5cdFx0XHRjaGlsZExpc3Q6IHRydWUsXG5cdFx0XHRzdWJ0cmVlOiB0cnVlLFxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblx0LyoqXG5cdCAqIENsZWFucyB1cCB0aGUgYnV0dG9uIGFuZCBkaXNjb25uZWN0cyB0aGUgb2JzZXJ2ZXIuXG5cdCAqIEByZXR1cm5zIHt0aGlzfVxuXHQgKi9cblx0ZGVzdHJveSgpOiB0aGlzIHtcblx0XHRpZiAodGhpcy5vYnNlcnZlciAmJiB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QpIHtcblx0XHRcdHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXHRcdH1cblx0XHRjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKTtcblx0XHRpZiAoYnRuKSB7XG5cdFx0XHRidG4ucmVtb3ZlKCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cdC8qKlxuXHQgKiBIYW5kbGVzIGRvY3VtZW50IGNoYW5nZXMgb2JzZXJ2ZWQgYnkgTXV0YXRpb25PYnNlcnZlci5cblx0ICogTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuXHQgKi9cblx0cHJvdGVjdGVkIGFic3RyYWN0IG9uRG9jdW1lbnRDaGFuZ2UoYnRuOiBIVE1MRWxlbWVudCk6ICgpID0+IHZvaWQ7XG59XG4iXSwibmFtZXMiOlsiUmlzdUJ1dHRvbiIsImlkIiwib3B0aW9ucyIsImJ0biJdLCJtYXBwaW5ncyI6IkFBaUJPLE1BQWVBLEVBQXVDO0FBQUE7QUFBQSxFQUV6QztBQUFBO0FBQUEsRUFHbkI7QUFBQTtBQUFBLEVBR1U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFhVixZQUFZQyxHQUFZQyxJQUFzQixJQUFJO0FBQ2pELFFBQUksZUFBZUY7QUFDbEIsWUFBTSxJQUFJO0FBQUEsUUFDVDtBQUFBLE1BQUE7QUFJRixTQUFLLEtBQUtDLEdBQ1YsS0FBSyxVQUFVLEVBQUUsR0FBRyxLQUFLLGtCQUFBLEdBQXFCLEdBQUdDLEVBQUEsR0FDakQsU0FBUyxNQUFNO0FBQ2QsV0FBSyxRQUFBO0FBQUEsSUFDTixDQUFDO0FBQUEsRUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLG1CQUFnQztBQUN6QyxVQUFNQyxJQUFNLFNBQVMsY0FBYyxRQUFRO0FBQzNDLFdBQUFBLEVBQUksS0FBSyxLQUFLLElBQ2RBLEVBQUksY0FBYyxLQUFLLFFBQVEsTUFDL0JBLEVBQUksVUFBVSxLQUFLLFFBQVEsU0FDcEJBO0FBQUEsRUFDUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE1BQU1ELEdBQTJCO0FBQ2hDLGdCQUFLLFVBQVUsRUFBRSxHQUFHLEtBQUssU0FBUyxHQUFHQSxFQUFBLEdBQzlCO0FBQUEsRUFDUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxTQUFlO0FBQ2QsVUFBTUMsSUFBTSxLQUFLLGlCQUFBO0FBRWpCLGdCQUFLLFdBQVcsSUFBSSxpQkFBaUIsS0FBSyxpQkFBaUJBLENBQUcsQ0FBQyxHQUMvRCxLQUFLLFNBQVMsUUFBUSxTQUFTLE1BQU07QUFBQSxNQUNwQyxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFBQSxDQUNULEdBRU07QUFBQSxFQUNSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLFVBQWdCO0FBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxTQUFTLGNBQ2xDLEtBQUssU0FBUyxXQUFBO0FBRWYsVUFBTUEsSUFBTSxTQUFTLGVBQWUsS0FBSyxFQUFFO0FBQzNDLFdBQUlBLEtBQ0hBLEVBQUksT0FBQSxHQUVFO0FBQUEsRUFDUjtBQU1EOyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"btnDeclare.d.ts","sourceRoot":"","sources":["../../../src/v2/btn/btnDeclare.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,KAAK,gBAAgB,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,8BAAsB,UAAU,CAAC,CAAC,SAAS,gBAAgB;IAC1D,gDAAgD;IAChD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAE9B,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAC;IAEX,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEjD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC;IAEzC;;;;OAIG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,CAAC,CAAM;IAehD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,IAAI,WAAW;IAOzC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAIhC;;;OAGG;IACH,MAAM,IAAI,IAAI;IAWd;;;OAGG;IACH,OAAO,IAAI,IAAI;IAUf;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,IAAI;CACjE"}
@@ -1,4 +1,4 @@
1
- import { RisuButton } from "./btnDeclare";
1
+ import { RisuButton } from './btnDeclare';
2
2
  export declare enum CharacterMenuGroup {
3
3
  Character = 0,
4
4
  Display = 1,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characterSidebar.d.ts","sourceRoot":"","sources":["../../../src/v2/btn/characterSidebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,oBAAY,kBAAkB;IAC7B,SAAS,IAAI;IACb,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,GAAG,IAAI;IACP,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,KAAK,IAAI;IACT,OAAO,KAAK;CACZ;AACD,KAAK,qBAAqB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,YAAY,EAAE,kBAAkB,GAAG,MAAM,CAAC;CAC1C,CAAC;AAEF,qBAAa,eAAgB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;gBACzD,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;cAGjD,gBAAgB,IAAI,WAAW;cAqB/B,iBAAiB,IAAI,qBAAqB;cAQ1C,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,IAAI;IA4BjE,OAAO,CAAC,YAAY;CAkBpB"}
@@ -1,4 +1,4 @@
1
- import { RisuButton } from "./btnDeclare";
1
+ import { RisuButton } from './btnDeclare';
2
2
  type ChatboxHamburgerButtonConfig = {
3
3
  text: string;
4
4
  onclick: () => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatboxHamburger.d.ts","sourceRoot":"","sources":["../../../src/v2/btn/chatboxHamburger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,4BAA4B,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,aAAa,GAAG,WAAW,CAAC;IAClC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC;CACxB,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,UAAU,CAAC,4BAA4B,CAAC;gBAElF,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM;IAKpD;;;;OAIG;cACgB,gBAAgB,IAAI,WAAW;cAiB/B,iBAAiB,IAAI,4BAA4B;cAoBjD,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,IAAI;CAkBjE"}
@@ -0,0 +1,3 @@
1
+ export { CharacterButton, CharacterMenuGroup } from './characterSidebar';
2
+ export { ChatboxHamburgerButton } from './chatboxHamburger';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/btn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * as btn from './btn';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC"}
package/package.json CHANGED
@@ -2,28 +2,44 @@
2
2
  "name": "risupect",
3
3
  "description": "Risupect: RisuAI Component library for plugins.",
4
4
  "private": false,
5
- "version": "0.0.3",
5
+ "version": "0.0.4",
6
6
  "license": "GPL-3.0-only",
7
7
  "type": "module",
8
+ "scripts": {
9
+ "build": "vite build",
10
+ "lint": "biome lint",
11
+ "format": "biome format",
12
+ "format:write": "biome format --write"
13
+ },
8
14
  "devDependencies": {
9
- "@rollup/plugin-node-resolve": "^16.0.1",
10
- "@rollup/plugin-typescript": "^12.1.4",
15
+ "@biomejs/biome": "^2.3.10",
11
16
  "glob": "^11.0.3",
12
- "rollup": "^4.44.2",
13
- "rollup-sourcemap-path-transform": "^1.1.0",
14
17
  "tslib": "^2.8.1",
15
- "typescript": "~5.8.3"
18
+ "typescript": "~5.8.3",
19
+ "vite": "^7.3.0",
20
+ "vite-plugin-dts": "^4.5.4"
21
+ },
22
+ "repository": {
23
+ "url": "https://github.com/concertypin/risupect",
24
+ "type": "git"
25
+ },
26
+ "author": {
27
+ "name": "concertypin",
28
+ "url": "https://github.com/concertypin"
29
+ },
30
+ "engines": {
31
+ "node": ">20"
16
32
  },
17
33
  "files": [
18
34
  "dist"
19
35
  ],
20
- "module": "dist/index.js",
36
+ "module": "dist/risupect.js",
21
37
  "types": "dist/index.d.ts",
22
38
  "exports": {
23
- ".": "./dist/index.js",
24
- "./*": "./dist/*/index.js"
39
+ ".": "./dist/risupect.js"
25
40
  },
26
- "scripts": {
27
- "build": "rollup -c"
41
+ "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a",
42
+ "dependencies": {
43
+ "rollup-sourcemap-path-transform": "^1.1.0"
28
44
  }
29
45
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"btnDeclare.d.ts","sourceRoot":"","sources":["../../src/btn/btnDeclare.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,KAAK,gBAAgB,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,8BAAsB,UAAU,CAAC,CAAC,SAAS,gBAAgB;IACvD,gDAAgD;IAChD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAE9B,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAC;IAEX,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEjD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC;IAEzC;;;;OAIG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,CAAC,CAAM;IAWhD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,IAAI,WAAW;IAOzC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAIhC;;;OAGG;IACH,MAAM,IAAI,IAAI;IAQd;;;OAGG;IACH,OAAO,IAAI,IAAI;IAUf;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,IAAI;CACpE"}
@@ -1,76 +0,0 @@
1
- /**
2
- * Abstract base class for creating custom buttons with mutation observation and lifecycle management.
3
- *
4
- * @template T - The configuration type extending RisuButtonConfig. Subclasses can define their own configuration types.
5
- */
6
- class RisuButton {
7
- /** Unique identifier for the button element. */
8
- id;
9
- /** Button configuration options. */
10
- options;
11
- /** MutationObserver for document changes. */
12
- observer;
13
- /**
14
- * Creates a new RisuButton instance.
15
- * @param {string} id - The button's unique ID. It should be unique across the document.
16
- * @param {Partial<T>} [options={}] - Partial configuration options to override defaults.
17
- */
18
- constructor(id, options = {}) {
19
- if (new.target === RisuButton) {
20
- throw new Error("RisuButton is an abstract class and must be extended by a subclass.");
21
- }
22
- this.id = id;
23
- this.options = { ...this.getDefaultOptions(), ...options };
24
- onUnload(() => { this.destroy(); });
25
- //Handover button styling to the subclass
26
- }
27
- /**
28
- * Returns the button element.
29
- * Subclasses can override this method to fit their neighborhood's format like <div><button>.
30
- * @returns {HTMLElement} The button element.
31
- */
32
- getButtonElement() {
33
- const btn = document.createElement("button");
34
- btn.id = this.id;
35
- btn.textContent = this.options.text;
36
- btn.onclick = this.options.onclick;
37
- return btn;
38
- }
39
- /**
40
- * Applies new configuration options to the button.
41
- * @param {Partial<T>} options - Partial options to update.
42
- * @returns {this}
43
- */
44
- apply(options) {
45
- this.options = { ...this.options, ...options };
46
- return this;
47
- }
48
- /**
49
- * Creates and configures the button element, sets up mutation observation.
50
- * @returns {this}
51
- */
52
- create() {
53
- const btn = this.getButtonElement();
54
- this.observer = new MutationObserver(this.onDocumentChange(btn));
55
- this.observer.observe(document.body, { childList: true, subtree: true });
56
- return this;
57
- }
58
- /**
59
- * Cleans up the button and disconnects the observer.
60
- * @returns {this}
61
- */
62
- destroy() {
63
- if (this.observer && this.observer.disconnect) {
64
- this.observer.disconnect();
65
- }
66
- const btn = document.getElementById(this.id);
67
- if (btn) {
68
- btn.remove();
69
- }
70
- return this;
71
- }
72
- ;
73
- }
74
-
75
- export { RisuButton };
76
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuRGVjbGFyZS5qcyIsInNvdXJjZXMiOlsiL3Jpc3VwZWN0Ly4vLi4vc3JjL2J0bi9idG5EZWNsYXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImRlY2xhcmUgZnVuY3Rpb24gb25VbmxvYWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYSBSaXN1QnV0dG9uLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRleHQgLSBUaGUgYnV0dG9uIGxhYmVsIHdoaWNoIHVzZXIgY2FuIHNlZS5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gdm9pZH0gb25jbGljayAtIFRoZSBjbGljayBldmVudCBoYW5kbGVyLlxuICovXG50eXBlIFJpc3VCdXR0b25Db25maWcgPSB7XG4gICAgdGV4dDogc3RyaW5nLFxuICAgIG9uY2xpY2s6ICgpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjcmVhdGluZyBjdXN0b20gYnV0dG9ucyB3aXRoIG11dGF0aW9uIG9ic2VydmF0aW9uIGFuZCBsaWZlY3ljbGUgbWFuYWdlbWVudC5cbiAqIFxuICogQHRlbXBsYXRlIFQgLSBUaGUgY29uZmlndXJhdGlvbiB0eXBlIGV4dGVuZGluZyBSaXN1QnV0dG9uQ29uZmlnLiBTdWJjbGFzc2VzIGNhbiBkZWZpbmUgdGhlaXIgb3duIGNvbmZpZ3VyYXRpb24gdHlwZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSaXN1QnV0dG9uPFQgZXh0ZW5kcyBSaXN1QnV0dG9uQ29uZmlnPiB7XG4gICAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYnV0dG9uIGVsZW1lbnQuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgICAvKiogQnV0dG9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gKi9cbiAgICBvcHRpb25zOiBUO1xuXG4gICAgLyoqIE11dGF0aW9uT2JzZXJ2ZXIgZm9yIGRvY3VtZW50IGNoYW5nZXMuICovXG4gICAgcHJvdGVjdGVkIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBidXR0b24uXG4gICAgICogTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXREZWZhdWx0T3B0aW9ucygpOiBUO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBSaXN1QnV0dG9uIGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIFRoZSBidXR0b24ncyB1bmlxdWUgSUQuIEl0IHNob3VsZCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBkb2N1bWVudC5cbiAgICAgKiBAcGFyYW0ge1BhcnRpYWw8VD59IFtvcHRpb25zPXt9XSAtIFBhcnRpYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIG92ZXJyaWRlIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBhcnRpYWw8VD4gPSB7fSkge1xuICAgICAgICBpZiAobmV3LnRhcmdldCA9PT0gUmlzdUJ1dHRvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmlzdUJ1dHRvbiBpcyBhbiBhYnN0cmFjdCBjbGFzcyBhbmQgbXVzdCBiZSBleHRlbmRlZCBieSBhIHN1YmNsYXNzLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLmdldERlZmF1bHRPcHRpb25zKCksIC4uLm9wdGlvbnMgfTtcbiAgICAgICAgb25VbmxvYWQoKCkgPT4geyB0aGlzLmRlc3Ryb3koKSB9KTtcbiAgICAgICAgLy9IYW5kb3ZlciBidXR0b24gc3R5bGluZyB0byB0aGUgc3ViY2xhc3NcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBidXR0b24gZWxlbWVudC5cbiAgICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBmaXQgdGhlaXIgbmVpZ2hib3Job29kJ3MgZm9ybWF0IGxpa2UgPGRpdj48YnV0dG9uPi5cbiAgICAgKiBAcmV0dXJucyB7SFRNTEVsZW1lbnR9IFRoZSBidXR0b24gZWxlbWVudC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0QnV0dG9uRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7XG4gICAgICAgIGJ0bi5pZCA9IHRoaXMuaWQ7XG4gICAgICAgIGJ0bi50ZXh0Q29udGVudCA9IHRoaXMub3B0aW9ucy50ZXh0O1xuICAgICAgICBidG4ub25jbGljayA9IHRoaXMub3B0aW9ucy5vbmNsaWNrO1xuICAgICAgICByZXR1cm4gYnRuO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gdGhlIGJ1dHRvbi5cbiAgICAgKiBAcGFyYW0ge1BhcnRpYWw8VD59IG9wdGlvbnMgLSBQYXJ0aWFsIG9wdGlvbnMgdG8gdXBkYXRlLlxuICAgICAqIEByZXR1cm5zIHt0aGlzfVxuICAgICAqL1xuICAgIGFwcGx5KG9wdGlvbnM6IFBhcnRpYWw8VD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIGNvbmZpZ3VyZXMgdGhlIGJ1dHRvbiBlbGVtZW50LCBzZXRzIHVwIG11dGF0aW9uIG9ic2VydmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHt0aGlzfVxuICAgICAqL1xuICAgIGNyZWF0ZSgpOiB0aGlzIHtcbiAgICAgICAgY29uc3QgYnRuID0gdGhpcy5nZXRCdXR0b25FbGVtZW50KCk7XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMub25Eb2N1bWVudENoYW5nZShidG4pKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGVhbnMgdXAgdGhlIGJ1dHRvbiBhbmQgZGlzY29ubmVjdHMgdGhlIG9ic2VydmVyLlxuICAgICAqIEByZXR1cm5zIHt0aGlzfVxuICAgICAqL1xuICAgIGRlc3Ryb3koKTogdGhpcyB7XG4gICAgICAgIGlmICh0aGlzLm9ic2VydmVyICYmIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7XG4gICAgICAgIGlmIChidG4pIHtcbiAgICAgICAgICAgIGJ0bi5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgZG9jdW1lbnQgY2hhbmdlcyBvYnNlcnZlZCBieSBNdXRhdGlvbk9ic2VydmVyLlxuICAgICAqIE11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb25Eb2N1bWVudENoYW5nZShidG46IEhUTUxFbGVtZW50KTogKCkgPT4gdm9pZDtcbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUE7Ozs7QUFJRztNQUNtQixVQUFVLENBQUE7O0FBRVQsSUFBQSxFQUFFOztBQUdyQixJQUFBLE9BQU87O0FBR0csSUFBQSxRQUFRO0FBUWxCOzs7O0FBSUc7SUFDSCxXQUFBLENBQVksRUFBVSxFQUFFLE9BQUEsR0FBc0IsRUFBRSxFQUFBO0FBQzVDLFFBQUEsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtBQUMzQixZQUFBLE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLENBQUM7UUFDMUY7QUFFQSxRQUFBLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRTtBQUNaLFFBQUEsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUU7QUFDMUQsUUFBQSxRQUFRLENBQUMsTUFBSyxFQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQzs7SUFFdEM7QUFFQTs7OztBQUlHO0lBQ08sZ0JBQWdCLEdBQUE7UUFDdEIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7QUFDNUMsUUFBQSxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQ2hCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQ25DLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO0FBQ2xDLFFBQUEsT0FBTyxHQUFHO0lBQ2Q7QUFDQTs7OztBQUlHO0FBQ0gsSUFBQSxLQUFLLENBQUMsT0FBbUIsRUFBQTtBQUNyQixRQUFBLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUU7QUFDOUMsUUFBQSxPQUFPLElBQUk7SUFDZjtBQUNBOzs7QUFHRztJQUNILE1BQU0sR0FBQTtBQUNGLFFBQUEsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFO0FBRW5DLFFBQUEsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoRSxRQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUV4RSxRQUFBLE9BQU8sSUFBSTtJQUNmO0FBQ0E7OztBQUdHO0lBQ0gsT0FBTyxHQUFBO1FBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO0FBQzNDLFlBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7UUFDOUI7UUFDQSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxHQUFHLEVBQUU7WUFDTCxHQUFHLENBQUMsTUFBTSxFQUFFO1FBQ2hCO0FBQ0EsUUFBQSxPQUFPLElBQUk7SUFDZjs7QUFNSDs7OzsifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"characterSidebar.d.ts","sourceRoot":"","sources":["../../src/btn/characterSidebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,oBAAY,kBAAkB;IAC1B,SAAS,IAAI;IACb,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,GAAG,IAAI;IACP,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,KAAK,IAAI;IACT,OAAO,KAAK;CACf;AACD,KAAK,qBAAqB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,YAAY,EAAE,kBAAkB,GAAG,MAAM,CAAC;CAC7C,CAAA;AAED,qBAAa,eAAgB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;gBACtD,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;cAGjD,gBAAgB,IAAI,WAAW;cAqB/B,iBAAiB,IAAI,qBAAqB;cAQ1C,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,IAAI;IAwBjE,OAAO,CAAC,YAAY;CAiBvB"}
@@ -1,75 +0,0 @@
1
- import { RisuButton } from './btnDeclare.js';
2
-
3
- var CharacterMenuGroup;
4
- (function (CharacterMenuGroup) {
5
- CharacterMenuGroup[CharacterMenuGroup["Character"] = 0] = "Character";
6
- CharacterMenuGroup[CharacterMenuGroup["Display"] = 1] = "Display";
7
- CharacterMenuGroup[CharacterMenuGroup["Lorebook"] = 2] = "Lorebook";
8
- CharacterMenuGroup[CharacterMenuGroup["TTS"] = 3] = "TTS";
9
- CharacterMenuGroup[CharacterMenuGroup["Script"] = 4] = "Script";
10
- CharacterMenuGroup[CharacterMenuGroup["Advanced"] = 5] = "Advanced";
11
- CharacterMenuGroup[CharacterMenuGroup["Share"] = 6] = "Share";
12
- CharacterMenuGroup[CharacterMenuGroup["Devtool"] = -1] = "Devtool";
13
- })(CharacterMenuGroup || (CharacterMenuGroup = {}));
14
- class CharacterButton extends RisuButton {
15
- constructor(id, options = {}) {
16
- super(id, options);
17
- }
18
- getButtonElement() {
19
- const btn = super.getButtonElement();
20
- btn.classList.add("bg-darkbutton", "hover:bg-selected", "focus:ring-selected", "border-darkborderc", "border", "text-textcolor", "rounded-md", "shadow-sm", "focus:outline-none", "focus:ring-2", "transition-colors", "duration-200", "mt-2", "px-2", this.options.size === "small" ? "text-sm" : "text-lg");
21
- return btn;
22
- }
23
- getDefaultOptions() {
24
- return {
25
- text: "Sample Button",
26
- onclick: () => { },
27
- size: "small",
28
- menuSelector: CharacterMenuGroup.Share
29
- };
30
- }
31
- onDocumentChange(btn) {
32
- return () => {
33
- const menu = this.findThisMenu();
34
- if (menu === undefined) {
35
- return;
36
- }
37
- if (menu !== this.options.menuSelector) {
38
- //We're on the wrong menu
39
- return;
40
- }
41
- if (document.getElementById(this.id)) {
42
- // Button already exists
43
- return;
44
- }
45
- //Whoa, this code works in devtool too.
46
- const lastElement = document.querySelector("div.setting-area > :nth-last-child(1)");
47
- if (lastElement) {
48
- lastElement.after(btn);
49
- }
50
- else {
51
- console.warn("Could not find the last element to insert the button after.");
52
- }
53
- };
54
- }
55
- findThisMenu() {
56
- const menubar = document.querySelector(`div.setting-area div.flex.mb-2.gap-2`);
57
- if (!menubar) {
58
- //it might be in devtool
59
- if (document.querySelector("div.setting-area"))
60
- return CharacterMenuGroup.Devtool;
61
- else
62
- return undefined;
63
- }
64
- //find a menubar's child that doesnt have the class "text-textcolor2"
65
- for (let i = 0; i < menubar.children.length; i++) {
66
- const child = menubar.children[i];
67
- if (!child.classList.contains("text-textcolor2")) {
68
- return i;
69
- }
70
- }
71
- }
72
- }
73
-
74
- export { CharacterButton, CharacterMenuGroup };
75
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyU2lkZWJhci5qcyIsInNvdXJjZXMiOlsiL3Jpc3VwZWN0Ly4vLi4vc3JjL2J0bi9jaGFyYWN0ZXJTaWRlYmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJpc3VCdXR0b24gfSBmcm9tIFwiLi9idG5EZWNsYXJlXCI7XG5leHBvcnQgZW51bSBDaGFyYWN0ZXJNZW51R3JvdXAge1xuICAgIENoYXJhY3RlciA9IDAsXG4gICAgRGlzcGxheSA9IDEsXG4gICAgTG9yZWJvb2sgPSAyLFxuICAgIFRUUyA9IDMsXG4gICAgU2NyaXB0ID0gNCxcbiAgICBBZHZhbmNlZCA9IDUsXG4gICAgU2hhcmUgPSA2LFxuICAgIERldnRvb2wgPSAtMVxufVxudHlwZSBDaGFyYWN0ZXJCdXR0b25Db25maWcgPSB7XG4gICAgdGV4dDogc3RyaW5nLFxuICAgIG9uY2xpY2s6ICgpID0+IHZvaWQsXG4gICAgc2l6ZTogXCJsYXJnZVwiIHwgXCJzbWFsbFwiLFxuICAgIG1lbnVTZWxlY3RvcjogQ2hhcmFjdGVyTWVudUdyb3VwIHwgbnVtYmVyLFxufVxuXG5leHBvcnQgY2xhc3MgQ2hhcmFjdGVyQnV0dG9uIGV4dGVuZHMgUmlzdUJ1dHRvbjxDaGFyYWN0ZXJCdXR0b25Db25maWc+IHtcbiAgICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBvcHRpb25zOiBQYXJ0aWFsPENoYXJhY3RlckJ1dHRvbkNvbmZpZz4gPSB7fSkge1xuICAgICAgICBzdXBlcihpZCwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXRCdXR0b25FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgYnRuID0gc3VwZXIuZ2V0QnV0dG9uRWxlbWVudCgpO1xuICAgICAgICBidG4uY2xhc3NMaXN0LmFkZChcbiAgICAgICAgICAgIFwiYmctZGFya2J1dHRvblwiLFxuICAgICAgICAgICAgXCJob3ZlcjpiZy1zZWxlY3RlZFwiLFxuICAgICAgICAgICAgXCJmb2N1czpyaW5nLXNlbGVjdGVkXCIsXG4gICAgICAgICAgICBcImJvcmRlci1kYXJrYm9yZGVyY1wiLFxuICAgICAgICAgICAgXCJib3JkZXJcIixcbiAgICAgICAgICAgIFwidGV4dC10ZXh0Y29sb3JcIixcbiAgICAgICAgICAgIFwicm91bmRlZC1tZFwiLFxuICAgICAgICAgICAgXCJzaGFkb3ctc21cIixcbiAgICAgICAgICAgIFwiZm9jdXM6b3V0bGluZS1ub25lXCIsXG4gICAgICAgICAgICBcImZvY3VzOnJpbmctMlwiLFxuICAgICAgICAgICAgXCJ0cmFuc2l0aW9uLWNvbG9yc1wiLFxuICAgICAgICAgICAgXCJkdXJhdGlvbi0yMDBcIixcbiAgICAgICAgICAgIFwibXQtMlwiLFxuICAgICAgICAgICAgXCJweC0yXCIsXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuc2l6ZSA9PT0gXCJzbWFsbFwiID8gXCJ0ZXh0LXNtXCIgOiBcInRleHQtbGdcIixcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGJ0bjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldERlZmF1bHRPcHRpb25zKCk6IENoYXJhY3RlckJ1dHRvbkNvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0ZXh0OiBcIlNhbXBsZSBCdXR0b25cIixcbiAgICAgICAgICAgIG9uY2xpY2s6ICgpID0+IHsgfSxcbiAgICAgICAgICAgIHNpemU6IFwic21hbGxcIixcbiAgICAgICAgICAgIG1lbnVTZWxlY3RvcjogQ2hhcmFjdGVyTWVudUdyb3VwLlNoYXJlXG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uRG9jdW1lbnRDaGFuZ2UoYnRuOiBIVE1MRWxlbWVudCk6ICgpID0+IHZvaWQge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVudSA9IHRoaXMuZmluZFRoaXNNZW51KCk7XG4gICAgICAgICAgICBpZiAobWVudSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lbnUgIT09IHRoaXMub3B0aW9ucy5tZW51U2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAvL1dlJ3JlIG9uIHRoZSB3cm9uZyBtZW51XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpKSB7XG4gICAgICAgICAgICAgICAgLy8gQnV0dG9uIGFscmVhZHkgZXhpc3RzXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL1dob2EsIHRoaXMgY29kZSB3b3JrcyBpbiBkZXZ0b29sIHRvby5cbiAgICAgICAgICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImRpdi5zZXR0aW5nLWFyZWEgPiA6bnRoLWxhc3QtY2hpbGQoMSlcIilcbiAgICAgICAgICAgIGlmIChsYXN0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGxhc3RFbGVtZW50LmFmdGVyKGJ0bik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkNvdWxkIG5vdCBmaW5kIHRoZSBsYXN0IGVsZW1lbnQgdG8gaW5zZXJ0IHRoZSBidXR0b24gYWZ0ZXIuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgZmluZFRoaXNNZW51KCk6IENoYXJhY3Rlck1lbnVHcm91cCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IG1lbnViYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBkaXYuc2V0dGluZy1hcmVhIGRpdi5mbGV4Lm1iLTIuZ2FwLTJgKVxuICAgICAgICBpZiAoIW1lbnViYXIpIHtcbiAgICAgICAgICAgIC8vaXQgbWlnaHQgYmUgaW4gZGV2dG9vbFxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXYuc2V0dGluZy1hcmVhXCIpKVxuICAgICAgICAgICAgICAgIHJldHVybiBDaGFyYWN0ZXJNZW51R3JvdXAuRGV2dG9vbDtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vZmluZCBhIG1lbnViYXIncyBjaGlsZCB0aGF0IGRvZXNudCBoYXZlIHRoZSBjbGFzcyBcInRleHQtdGV4dGNvbG9yMlwiXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudWJhci5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBtZW51YmFyLmNoaWxkcmVuW2ldO1xuICAgICAgICAgICAgaWYgKCFjaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoXCJ0ZXh0LXRleHRjb2xvcjJcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7SUFDWTtBQUFaLENBQUEsVUFBWSxrQkFBa0IsRUFBQTtBQUMxQixJQUFBLGtCQUFBLENBQUEsa0JBQUEsQ0FBQSxXQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxXQUFhO0FBQ2IsSUFBQSxrQkFBQSxDQUFBLGtCQUFBLENBQUEsU0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsU0FBVztBQUNYLElBQUEsa0JBQUEsQ0FBQSxrQkFBQSxDQUFBLFVBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFVBQVk7QUFDWixJQUFBLGtCQUFBLENBQUEsa0JBQUEsQ0FBQSxLQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxLQUFPO0FBQ1AsSUFBQSxrQkFBQSxDQUFBLGtCQUFBLENBQUEsUUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsUUFBVTtBQUNWLElBQUEsa0JBQUEsQ0FBQSxrQkFBQSxDQUFBLFVBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFVBQVk7QUFDWixJQUFBLGtCQUFBLENBQUEsa0JBQUEsQ0FBQSxPQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxPQUFTO0FBQ1QsSUFBQSxrQkFBQSxDQUFBLGtCQUFBLENBQUEsU0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLEdBQUEsU0FBWTtBQUNoQixDQUFDLEVBVFcsa0JBQWtCLEtBQWxCLGtCQUFrQixHQUFBLEVBQUEsQ0FBQSxDQUFBO0FBaUJ4QixNQUFPLGVBQWdCLFNBQVEsVUFBaUMsQ0FBQTtJQUNsRSxXQUFBLENBQVksRUFBVSxFQUFFLE9BQUEsR0FBMEMsRUFBRSxFQUFBO0FBQ2hFLFFBQUEsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7SUFDdEI7SUFDbUIsZ0JBQWdCLEdBQUE7QUFDL0IsUUFBQSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7UUFDcEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQ2IsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FDeEQ7QUFDRCxRQUFBLE9BQU8sR0FBRztJQUNkO0lBQ21CLGlCQUFpQixHQUFBO1FBQ2hDLE9BQU87QUFDSCxZQUFBLElBQUksRUFBRSxlQUFlO0FBQ3JCLFlBQUEsT0FBTyxFQUFFLE1BQUssRUFBRyxDQUFDO0FBQ2xCLFlBQUEsSUFBSSxFQUFFLE9BQU87WUFDYixZQUFZLEVBQUUsa0JBQWtCLENBQUM7U0FDcEM7SUFDTDtBQUNtQixJQUFBLGdCQUFnQixDQUFDLEdBQWdCLEVBQUE7QUFDaEQsUUFBQSxPQUFPLE1BQUs7QUFDUixZQUFBLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUU7QUFDaEMsWUFBQSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3BCO1lBQ0o7WUFDQSxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTs7Z0JBRXBDO1lBQ0o7WUFDQSxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFOztnQkFFbEM7WUFDSjs7WUFHQSxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLHVDQUF1QyxDQUFDO1lBQ25GLElBQUksV0FBVyxFQUFFO0FBQ2IsZ0JBQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDMUI7aUJBQU87QUFDSCxnQkFBQSxPQUFPLENBQUMsSUFBSSxDQUFDLDZEQUE2RCxDQUFDO1lBQy9FO0FBQ0osUUFBQSxDQUFDO0lBQ0w7SUFDUSxZQUFZLEdBQUE7UUFDaEIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBLG9DQUFBLENBQXNDLENBQUM7UUFDOUUsSUFBSSxDQUFDLE9BQU8sRUFBRTs7QUFFVixZQUFBLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDMUMsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPOztBQUVqQyxnQkFBQSxPQUFPLFNBQVM7UUFDeEI7O0FBRUEsUUFBQSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7QUFDOUMsZ0JBQUEsT0FBTyxDQUFDO1lBQ1o7UUFDSjtJQUNKO0FBQ0g7Ozs7In0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"chatboxHamburger.d.ts","sourceRoot":"","sources":["../../src/btn/chatboxHamburger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,4BAA4B,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,aAAa,GAAG,WAAW,CAAC;IAClC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC3B,CAAA;AAED,qBAAa,sBAAuB,SAAQ,UAAU,CAAC,4BAA4B,CAAC;gBACpE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM;IAI3E;;;;OAIG;cACgB,gBAAgB,IAAI,WAAW;cAgB/B,iBAAiB,IAAI,4BAA4B;cAiBjD,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,IAAI;CAiBpE"}
@@ -1,60 +0,0 @@
1
- import { RisuButton } from './btnDeclare.js';
2
-
3
- class ChatboxHamburgerButton extends RisuButton {
4
- constructor(id, options = {}) {
5
- super(id, options);
6
- }
7
- /**
8
- * Returns the button element.
9
- * Cause button is in div element, this method is overridden.
10
- * @returns {HTMLElement} The button element.
11
- */
12
- getButtonElement() {
13
- const btnFamily = document.createElement("div");
14
- btnFamily.className = "flex items-center cursor-pointer lg:hover:text-green-500 svelte-ba8msf";
15
- btnFamily.id = this.id;
16
- btnFamily.onclick = this.options.onclick;
17
- const icon = this.options.icon;
18
- btnFamily.appendChild(icon);
19
- const text = document.createElement("span");
20
- text.className = "ml-2 svelte-ba8msf";
21
- text.textContent = this.options.text;
22
- btnFamily.appendChild(text);
23
- return btnFamily;
24
- }
25
- getDefaultOptions() {
26
- /**
27
- * @license {MIT}
28
- * @copyright Bootstrap Icons, 2019-2024, from https://icons.getbootstrap.com/icons/file-earmark-break/
29
- * License from: https://github.com/twbs/icons/blob/cd39b90329843c396378b468aafec3fdb24bb7fa/LICENSE
30
- */
31
- const icon = (new DOMParser().parseFromString(`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
32
- <path d="M14 4.5V9h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v7H2V2a2 2 0 0 1 2-2h5.5zM13 12h1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2h1v2a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1zM.5 10a.5.5 0 0 0 0 1h15a.5.5 0 0 0 0-1z"/>
33
- </svg>`, "image/svg+xml").documentElement);
34
- return {
35
- text: "Sample Button",
36
- onclick: () => { },
37
- icon: icon,
38
- order: "top"
39
- };
40
- }
41
- onDocumentChange(btn) {
42
- return () => {
43
- if (document.getElementById(this.id)) {
44
- // Button already exists
45
- return;
46
- }
47
- //Try to find clicked hamburger menu
48
- const menu = document.querySelector("html body div#app main.flex.bg-bg.w-full.h-full.max-w-100vw.text-textcolor div.flex-grow.h-full.min-w-0.relative.justify-center.flex div.h-full.w-full div.w-full.h-full.svelte-ba8msf div.h-full.w-full.flex.flex-col-reverse.overflow-y-auto.relative.default-chat-screen.svelte-ba8msf div.right-2.bottom-16.p-5.bg-darkbg.flex.flex-col.gap-3.text-textcolor.rounded-md.svelte-ba8msf");
49
- if (menu) {
50
- if (this.options.order === "top")
51
- menu.firstElementChild.before(btn);
52
- else
53
- menu.lastElementChild.after(btn);
54
- }
55
- };
56
- }
57
- }
58
-
59
- export { ChatboxHamburgerButton };
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJveEhhbWJ1cmdlci5qcyIsInNvdXJjZXMiOlsiL3Jpc3VwZWN0Ly4vLi4vc3JjL2J0bi9jaGF0Ym94SGFtYnVyZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJpc3VCdXR0b24gfSBmcm9tIFwiLi9idG5EZWNsYXJlXCI7XG5cbnR5cGUgQ2hhdGJveEhhbWJ1cmdlckJ1dHRvbkNvbmZpZyA9IHtcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgb25jbGljazogKCkgPT4gdm9pZCxcbiAgICBpY29uOiBTVkdTVkdFbGVtZW50IHwgSFRNTEVsZW1lbnQsXG4gICAgb3JkZXI6IFwidG9wXCIgfCBcImJvdHRvbVwiLFxufVxuXG5leHBvcnQgY2xhc3MgQ2hhdGJveEhhbWJ1cmdlckJ1dHRvbiBleHRlbmRzIFJpc3VCdXR0b248Q2hhdGJveEhhbWJ1cmdlckJ1dHRvbkNvbmZpZz4ge1xuICAgIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBhcnRpYWw8Q2hhdGJveEhhbWJ1cmdlckJ1dHRvbkNvbmZpZz4gPSB7fSkge1xuICAgICAgICBzdXBlcihpZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYnV0dG9uIGVsZW1lbnQuXG4gICAgICogQ2F1c2UgYnV0dG9uIGlzIGluIGRpdiBlbGVtZW50LCB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVuLlxuICAgICAqIEByZXR1cm5zIHtIVE1MRWxlbWVudH0gVGhlIGJ1dHRvbiBlbGVtZW50LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXRCdXR0b25FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgYnRuRmFtaWx5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgYnRuRmFtaWx5LmNsYXNzTmFtZSA9IFwiZmxleCBpdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbGc6aG92ZXI6dGV4dC1ncmVlbi01MDAgc3ZlbHRlLWJhOG1zZlwiXG4gICAgICAgIGJ0bkZhbWlseS5pZCA9IHRoaXMuaWQ7XG4gICAgICAgIGJ0bkZhbWlseS5vbmNsaWNrID0gdGhpcy5vcHRpb25zLm9uY2xpY2s7XG5cbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMub3B0aW9ucy5pY29uO1xuICAgICAgICBidG5GYW1pbHkuYXBwZW5kQ2hpbGQoaWNvbik7XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgICB0ZXh0LmNsYXNzTmFtZSA9IFwibWwtMiBzdmVsdGUtYmE4bXNmXCI7XG4gICAgICAgIHRleHQudGV4dENvbnRlbnQgPSB0aGlzLm9wdGlvbnMudGV4dDtcbiAgICAgICAgYnRuRmFtaWx5LmFwcGVuZENoaWxkKHRleHQpO1xuXG4gICAgICAgIHJldHVybiBidG5GYW1pbHk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXREZWZhdWx0T3B0aW9ucygpOiBDaGF0Ym94SGFtYnVyZ2VyQnV0dG9uQ29uZmlnIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBsaWNlbnNlIHtNSVR9XG4gICAgICAgICAqIEBjb3B5cmlnaHQgQm9vdHN0cmFwIEljb25zLCAyMDE5LTIwMjQsIGZyb20gaHR0cHM6Ly9pY29ucy5nZXRib290c3RyYXAuY29tL2ljb25zL2ZpbGUtZWFybWFyay1icmVhay9cbiAgICAgICAgICogTGljZW5zZSBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9pY29ucy9ibG9iL2NkMzliOTAzMjk4NDNjMzk2Mzc4YjQ2OGFhZmVjM2ZkYjI0YmI3ZmEvTElDRU5TRVxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaWNvbiA9IChuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuICA8cGF0aCBkPVwiTTE0IDQuNVY5aC0xVjQuNWgtMkExLjUgMS41IDAgMCAxIDkuNSAzVjFINGExIDEgMCAwIDAtMSAxdjdIMlYyYTIgMiAwIDAgMSAyLTJoNS41ek0xMyAxMmgxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTJoMXYyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xek0uNSAxMGEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMXpcIi8+XG48L3N2Zz5gLCBcImltYWdlL3N2Zyt4bWxcIikuZG9jdW1lbnRFbGVtZW50KSBhcyB1bmtub3duIGFzIFNWR1NWR0VsZW1lbnQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHQ6IFwiU2FtcGxlIEJ1dHRvblwiLFxuICAgICAgICAgICAgb25jbGljazogKCkgPT4geyB9LFxuICAgICAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgICAgIG9yZGVyOiBcInRvcFwiXG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uRG9jdW1lbnRDaGFuZ2UoYnRuOiBIVE1MRWxlbWVudCk6ICgpID0+IHZvaWQge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpKSB7XG4gICAgICAgICAgICAgICAgLy8gQnV0dG9uIGFscmVhZHkgZXhpc3RzXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL1RyeSB0byBmaW5kIGNsaWNrZWQgaGFtYnVyZ2VyIG1lbnVcbiAgICAgICAgICAgIGNvbnN0IG1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaHRtbCBib2R5IGRpdiNhcHAgbWFpbi5mbGV4LmJnLWJnLnctZnVsbC5oLWZ1bGwubWF4LXctMTAwdncudGV4dC10ZXh0Y29sb3IgZGl2LmZsZXgtZ3Jvdy5oLWZ1bGwubWluLXctMC5yZWxhdGl2ZS5qdXN0aWZ5LWNlbnRlci5mbGV4IGRpdi5oLWZ1bGwudy1mdWxsIGRpdi53LWZ1bGwuaC1mdWxsLnN2ZWx0ZS1iYThtc2YgZGl2LmgtZnVsbC53LWZ1bGwuZmxleC5mbGV4LWNvbC1yZXZlcnNlLm92ZXJmbG93LXktYXV0by5yZWxhdGl2ZS5kZWZhdWx0LWNoYXQtc2NyZWVuLnN2ZWx0ZS1iYThtc2YgZGl2LnJpZ2h0LTIuYm90dG9tLTE2LnAtNS5iZy1kYXJrYmcuZmxleC5mbGV4LWNvbC5nYXAtMy50ZXh0LXRleHRjb2xvci5yb3VuZGVkLW1kLnN2ZWx0ZS1iYThtc2ZcIilcbiAgICAgICAgICAgIGlmIChtZW51KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5vcmRlciA9PT0gXCJ0b3BcIilcbiAgICAgICAgICAgICAgICAgICAgbWVudS5maXJzdEVsZW1lbnRDaGlsZCEhLmJlZm9yZShidG4pO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgbWVudS5sYXN0RWxlbWVudENoaWxkISEuYWZ0ZXIoYnRuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTTSxNQUFPLHNCQUF1QixTQUFRLFVBQXdDLENBQUE7SUFDaEYsV0FBQSxDQUFZLEVBQVUsRUFBRSxPQUFBLEdBQWlELEVBQUUsRUFBQTtBQUN2RSxRQUFBLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO0lBQ3RCO0FBRUE7Ozs7QUFJRztJQUNnQixnQkFBZ0IsR0FBQTtRQUMvQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztBQUMvQyxRQUFBLFNBQVMsQ0FBQyxTQUFTLEdBQUcsd0VBQXdFO0FBQzlGLFFBQUEsU0FBUyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUN0QixTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztBQUV4QyxRQUFBLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtBQUM5QixRQUFBLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBRTNCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0FBQzNDLFFBQUEsSUFBSSxDQUFDLFNBQVMsR0FBRyxvQkFBb0I7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7QUFDcEMsUUFBQSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztBQUUzQixRQUFBLE9BQU8sU0FBUztJQUNwQjtJQUNtQixpQkFBaUIsR0FBQTtBQUNoQzs7OztBQUlHO1FBQ0gsTUFBTSxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQTs7QUFFL0MsTUFBQSxDQUFBLEVBQUUsZUFBZSxDQUFDLENBQUMsZUFBZSxDQUE2QjtRQUU5RCxPQUFPO0FBQ0gsWUFBQSxJQUFJLEVBQUUsZUFBZTtBQUNyQixZQUFBLE9BQU8sRUFBRSxNQUFLLEVBQUcsQ0FBQztBQUNsQixZQUFBLElBQUksRUFBRSxJQUFJO0FBQ1YsWUFBQSxLQUFLLEVBQUU7U0FDVjtJQUNMO0FBQ21CLElBQUEsZ0JBQWdCLENBQUMsR0FBZ0IsRUFBQTtBQUNoRCxRQUFBLE9BQU8sTUFBSztZQUNSLElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7O2dCQUVsQztZQUNKOztZQUdBLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsMlhBQTJYLENBQUM7WUFDaGEsSUFBSSxJQUFJLEVBQUU7QUFDTixnQkFBQSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUs7QUFDNUIsb0JBQUEsSUFBSSxDQUFDLGlCQUFtQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7O0FBRXBDLG9CQUFBLElBQUksQ0FBQyxnQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzFDO0FBQ0osUUFBQSxDQUFDO0lBQ0w7QUFDSDs7OzsifQ==
package/dist/btn/index.js DELETED
@@ -1,3 +0,0 @@
1
- export { CharacterButton, CharacterMenuGroup } from './characterSidebar.js';
2
- export { ChatboxHamburgerButton } from './chatboxHamburger.js';
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
File without changes