@inpageedit/core 0.5.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/CheckBox-D3rHnX7I.js +13 -0
  2. package/dist/CheckBox-D3rHnX7I.js.map +1 -0
  3. package/dist/IconQuickEdit-YVn1ANbm.js +27 -0
  4. package/dist/IconQuickEdit-YVn1ANbm.js.map +1 -0
  5. package/dist/InPageEdit.d.ts +7 -5
  6. package/dist/InputBox-BV4m05Xs.js +22 -0
  7. package/dist/InputBox-BV4m05Xs.js.map +1 -0
  8. package/dist/RadioBox-nJqWsxW2.js +13 -0
  9. package/dist/RadioBox-nJqWsxW2.js.map +1 -0
  10. package/dist/__test__/utils/constants.d.ts +2 -0
  11. package/dist/components/Icon/IconEdit.d.ts +2 -0
  12. package/dist/components/Icon/IconQuickEdit.d.ts +2 -0
  13. package/dist/components/MwUserLinks.d.ts +2 -0
  14. package/dist/components/index.js +13 -11
  15. package/dist/components/index.js.map +1 -1
  16. package/dist/{index-i-Uf0vuA.js → index-1JtE4urY.js} +490 -374
  17. package/dist/{index-i-Uf0vuA.js.map → index-1JtE4urY.js.map} +1 -1
  18. package/dist/{index-UyiZ7umI.js → index-2AEdgbUL.js} +4 -4
  19. package/dist/index-2AEdgbUL.js.map +1 -0
  20. package/dist/index-2kN4SKmT.js +116 -0
  21. package/dist/index-2kN4SKmT.js.map +1 -0
  22. package/dist/{index-BSjnoNn2.js → index-B3Bsg_nE.js} +5 -3
  23. package/dist/index-B3Bsg_nE.js.map +1 -0
  24. package/dist/index-BCMwmSfQ.js +295 -0
  25. package/dist/index-BCMwmSfQ.js.map +1 -0
  26. package/dist/{index-BedbUMp8.js → index-C0ci6Ll1.js} +14 -12
  27. package/dist/index-C0ci6Ll1.js.map +1 -0
  28. package/dist/index-CZnu6cRK.js +319 -0
  29. package/dist/index-CZnu6cRK.js.map +1 -0
  30. package/dist/{index-xJ2bdsOD.js → index-CheNjwas.js} +5 -5
  31. package/dist/{index-xJ2bdsOD.js.map → index-CheNjwas.js.map} +1 -1
  32. package/dist/{index-DtOC8Ck-.js → index-CrWxZ0yl.js} +66 -63
  33. package/dist/{index-DtOC8Ck-.js.map → index-CrWxZ0yl.js.map} +1 -1
  34. package/dist/{index-DNQjqBV-.js → index-DqfQ7hp6.js} +3359 -3037
  35. package/dist/index-DqfQ7hp6.js.map +1 -0
  36. package/dist/index-lZkYoUca.js +46 -0
  37. package/dist/index-lZkYoUca.js.map +1 -0
  38. package/dist/index-sfkutNHj.js +201 -0
  39. package/dist/index-sfkutNHj.js.map +1 -0
  40. package/dist/index.js +1 -1
  41. package/dist/makeCallable-LDU0xZMJ.js +40 -0
  42. package/dist/makeCallable-LDU0xZMJ.js.map +1 -0
  43. package/dist/models/WikiPage/index.d.ts +2 -2
  44. package/dist/models/WikiTitle/index.d.ts +87 -11
  45. package/dist/models/WikiTitle/index.spec.d.ts +1 -0
  46. package/dist/noop-ClDc6zv4.js +6 -0
  47. package/dist/noop-ClDc6zv4.js.map +1 -0
  48. package/dist/plugins/in-article-links/index.d.ts +33 -7
  49. package/dist/plugins/quick-delete/index.d.ts +47 -0
  50. package/dist/plugins/quick-diff/PluginQuickDiffCore.d.ts +4 -2
  51. package/dist/plugins/quick-diff/components/DiffTable.d.ts +17 -0
  52. package/dist/plugins/quick-preview/index.d.ts +6 -3
  53. package/dist/services/ApiService.d.ts +2 -2
  54. package/dist/services/ModalService/IPEModal.d.ts +1 -1
  55. package/dist/services/SiteMetadataService.d.ts +43 -4
  56. package/dist/services/WikiPageService.d.ts +2 -2
  57. package/dist/services/WikiTitleService.d.ts +14 -0
  58. package/dist/style.css +1 -1
  59. package/dist/types/SiteMetadata.d.ts +1 -1
  60. package/dist/utils/url.d.ts +24 -0
  61. package/lib/index.umd.js +28 -28
  62. package/lib/index.umd.js.map +1 -1
  63. package/lib/style.css +1 -1
  64. package/package.json +10 -1
  65. package/dist/InputBox-FIzJ-rPN.js +0 -30
  66. package/dist/InputBox-FIzJ-rPN.js.map +0 -1
  67. package/dist/RadioBox-CaA8VgLu.js +0 -54
  68. package/dist/RadioBox-CaA8VgLu.js.map +0 -1
  69. package/dist/index-BSjnoNn2.js.map +0 -1
  70. package/dist/index-BedbUMp8.js.map +0 -1
  71. package/dist/index-DNQjqBV-.js.map +0 -1
  72. package/dist/index-UyiZ7umI.js.map +0 -1
  73. package/dist/index-e7eyr1FL.js +0 -96
  74. package/dist/index-e7eyr1FL.js.map +0 -1
  75. package/dist/index-rMDuLpcz.js +0 -458
  76. package/dist/index-rMDuLpcz.js.map +0 -1
  77. package/dist/plugins/quick-edit/PluginQuickEditInArticleLinks.d.ts +0 -14
@@ -0,0 +1,13 @@
1
+ import { j as e } from "./index-CvhkVj_L.js";
2
+ const h = (c) => {
3
+ const { id: s, name: a, label: o, checked: p, inputProps: l, labelProps: n, children: r, ...i } = c;
4
+ return /* @__PURE__ */ e("label", { className: "theme-ipe ipe-checkbox", ...i, children: [
5
+ /* @__PURE__ */ e("input", { type: "checkbox", id: s, name: a, checked: p, ...l }),
6
+ /* @__PURE__ */ e("span", { className: "ipe-checkbox-box" }),
7
+ /* @__PURE__ */ e("span", { ...n, children: o || r })
8
+ ] });
9
+ };
10
+ export {
11
+ h as C
12
+ };
13
+ //# sourceMappingURL=CheckBox-D3rHnX7I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckBox-D3rHnX7I.js","sources":["../src/components/CheckBox.tsx"],"sourcesContent":["import { JSX, ReactNode } from 'jsx-dom'\n\nexport type CheckBoxProps = {\n id?: string\n name: string\n label?: string | HTMLElement\n checked?: boolean\n inputProps?: JSX.IntrinsicElements['input']\n labelProps?: JSX.IntrinsicElements['span']\n} & JSX.IntrinsicElements['label']\n\nexport const CheckBox = (props: CheckBoxProps) => {\n const { id, name, label, checked, inputProps, labelProps, children, ...rest } = props\n return (\n <label className=\"theme-ipe ipe-checkbox\" {...rest}>\n <input type=\"checkbox\" id={id} name={name} checked={checked} {...inputProps} />\n <span className=\"ipe-checkbox-box\"></span>\n <span {...labelProps}>{label || children}</span>\n </label>\n )\n}\n"],"names":["CheckBox","props","id","name","label","checked","inputProps","labelProps","children","rest","jsxs","jsx"],"mappings":";AAWO,MAAMA,IAAW,CAACC,MAAyB;AAChD,QAAM,EAAE,IAAAC,GAAI,MAAAC,GAAM,OAAAC,GAAO,SAAAC,GAAS,YAAAC,GAAY,YAAAC,GAAY,UAAAC,GAAU,GAAGC,EAAA,IAASR;AAChF,SACES,gBAAAA,EAAC,SAAA,EAAM,WAAU,0BAA0B,GAAGD,GAC5C,UAAA;AAAA,IAAA,gBAAAE,EAAC,WAAM,MAAK,YAAW,IAAAT,GAAQ,MAAAC,GAAY,SAAAE,GAAmB,GAAGC,GAAY;AAAA,IAC7E,gBAAAK,EAAC,QAAA,EAAK,WAAU,mBAAA,CAAmB;AAAA,IACnC,gBAAAA,EAAC,QAAA,EAAM,GAAGJ,GAAa,eAASC,EAAA,CAAS;AAAA,EAAA,GAC3C;AAEJ;"}
@@ -0,0 +1,27 @@
1
+ import { j as o } from "./index-CvhkVj_L.js";
2
+ const l = (t) => /* @__PURE__ */ o(
3
+ "svg",
4
+ {
5
+ xmlns: "http://www.w3.org/2000/svg",
6
+ width: "24",
7
+ height: "24",
8
+ viewBox: "0 0 24 24",
9
+ fill: "none",
10
+ stroke: "currentColor",
11
+ "stroke-width": "2",
12
+ "stroke-linecap": "round",
13
+ "stroke-linejoin": "round",
14
+ class: "icon icon-tabler icons-tabler-outline icon-tabler-pencil-bolt",
15
+ ...t,
16
+ children: [
17
+ /* @__PURE__ */ o("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
18
+ /* @__PURE__ */ o("path", { d: "M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" }),
19
+ /* @__PURE__ */ o("path", { d: "M13.5 6.5l4 4" }),
20
+ /* @__PURE__ */ o("path", { d: "M19 16l-2 3h4l-2 3" })
21
+ ]
22
+ }
23
+ );
24
+ export {
25
+ l as I
26
+ };
27
+ //# sourceMappingURL=IconQuickEdit-YVn1ANbm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconQuickEdit-YVn1ANbm.js","sources":["../src/components/Icon/IconQuickEdit.tsx"],"sourcesContent":["import { SVGProps } from 'jsx-dom'\n\nexport const IconQuickEdit = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-pencil-bolt\"\n {...props}\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\" />\n <path d=\"M13.5 6.5l4 4\" />\n <path d=\"M19 16l-2 3h4l-2 3\" />\n </svg>\n)\n"],"names":["IconQuickEdit","props","jsxs","jsx"],"mappings":";AAEO,MAAMA,IAAgB,CAACC,MAC5BC,gBAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,gBAAa;AAAA,IACb,kBAAe;AAAA,IACf,mBAAgB;AAAA,IAChB,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAAC,UAAK,QAAO,QAAO,GAAE,iBAAgB,MAAK,QAAO;AAAA,MAClD,gBAAAA,EAAC,QAAA,EAAK,GAAE,0DAAA,CAA0D;AAAA,MAClE,gBAAAA,EAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,MACxB,gBAAAA,EAAC,QAAA,EAAK,GAAE,qBAAA,CAAqB;AAAA,IAAA;AAAA,EAAA;AAC/B;"}
@@ -1,5 +1,12 @@
1
1
  import { Context, Inject, Events as CordisEvents } from '@cordisjs/core';
2
2
  import { Logger } from '@inpageedit/logger';
3
+ import { FexiosConfigs } from 'fexios';
4
+ export interface InPageEditCoreConfig {
5
+ apiConfigs: Partial<FexiosConfigs>;
6
+ legacyPreferences: Record<string, any>;
7
+ logLevel: number;
8
+ autoloadStyles: boolean;
9
+ }
3
10
  /**
4
11
  * ✏️ InPageEdit NEXT
5
12
  *
@@ -21,11 +28,6 @@ export declare class InPageEdit extends Context {
21
28
  constructor(config?: Partial<InPageEditCoreConfig>);
22
29
  useScope(inject: Inject): Promise<this>;
23
30
  }
24
- export interface InPageEditCoreConfig {
25
- baseURL: string | URL;
26
- legacyPreferences: Record<string, any>;
27
- logLevel: number;
28
- }
29
31
  export { default as Schema } from 'schemastery';
30
32
  export * from '@inpageedit/logger';
31
33
  export { Inject, Service } from '@cordisjs/core';
@@ -0,0 +1,22 @@
1
+ import { j as e } from "./index-CvhkVj_L.js";
2
+ const b = (t) => {
3
+ const { label: s, id: l, name: i, value: a, disabled: o, labelProps: p, inputProps: r, ...n } = t;
4
+ return /* @__PURE__ */ e("div", { className: "theme-ipe ipe-input-box", ...n, children: [
5
+ /* @__PURE__ */ e("label", { htmlFor: l, style: { display: "block" }, ...p, children: s }),
6
+ /* @__PURE__ */ e(
7
+ "input",
8
+ {
9
+ id: l,
10
+ name: i,
11
+ value: a,
12
+ disabled: o,
13
+ style: { width: "100%" },
14
+ ...r
15
+ }
16
+ )
17
+ ] });
18
+ };
19
+ export {
20
+ b as I
21
+ };
22
+ //# sourceMappingURL=InputBox-BV4m05Xs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputBox-BV4m05Xs.js","sources":["../src/components/InputBox.tsx"],"sourcesContent":["import { JSX } from 'jsx-dom'\n\nexport type InputBoxProps = {\n label: string\n id?: string\n name: string\n value?: string\n disabled?: boolean\n labelProps?: JSX.IntrinsicElements['label']\n inputProps?: JSX.IntrinsicElements['input']\n} & JSX.IntrinsicElements['div']\n\nexport const InputBox = (props: InputBoxProps) => {\n const { label, id, name, value, disabled, labelProps, inputProps, ...rest } = props\n return (\n <div className=\"theme-ipe ipe-input-box\" {...rest}>\n <label htmlFor={id} style={{ display: 'block' }} {...labelProps}>\n {label}\n </label>\n <input\n id={id}\n name={name}\n value={value}\n disabled={disabled}\n style={{ width: '100%' }}\n {...inputProps}\n />\n </div>\n )\n}\n"],"names":["InputBox","props","label","id","name","value","disabled","labelProps","inputProps","rest","jsxs","jsx"],"mappings":";AAYO,MAAMA,IAAW,CAACC,MAAyB;AAChD,QAAM,EAAE,OAAAC,GAAO,IAAAC,GAAI,MAAAC,GAAM,OAAAC,GAAO,UAAAC,GAAU,YAAAC,GAAY,YAAAC,GAAY,GAAGC,EAAA,IAASR;AAC9E,SACES,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BAA2B,GAAGD,GAC3C,UAAA;AAAA,IAAA,gBAAAE,EAAC,SAAA,EAAM,SAASR,GAAI,OAAO,EAAE,SAAS,QAAA,GAAY,GAAGI,GAClD,UAAAL,EAAA,CACH;AAAA,IACA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAAR;AAAA,QACA,MAAAC;AAAA,QACA,OAAAC;AAAA,QACA,UAAAC;AAAA,QACA,OAAO,EAAE,OAAO,OAAA;AAAA,QACf,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ;"}
@@ -0,0 +1,13 @@
1
+ import { j as e } from "./index-CvhkVj_L.js";
2
+ const d = (a) => {
3
+ const { id: o, name: s, value: i, label: r, inputProps: l, labelProps: p, children: n, ...t } = a;
4
+ return /* @__PURE__ */ e("label", { className: "theme-ipe ipe-radio-box", ...t, children: [
5
+ /* @__PURE__ */ e("input", { type: "radio", id: o, name: s, value: i, ...l }),
6
+ /* @__PURE__ */ e("span", { className: "ipe-checkbox-box" }),
7
+ /* @__PURE__ */ e("span", { ...p, children: r || n })
8
+ ] });
9
+ };
10
+ export {
11
+ d as R
12
+ };
13
+ //# sourceMappingURL=RadioBox-nJqWsxW2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioBox-nJqWsxW2.js","sources":["../src/components/RadioBox.tsx"],"sourcesContent":["import { JSX, ReactNode } from 'jsx-dom'\n\nexport type RadioBoxProps = {\n id?: string\n name: string\n value: string\n label?: string | HTMLElement\n inputProps?: JSX.IntrinsicElements['input']\n labelProps?: JSX.IntrinsicElements['span']\n} & JSX.IntrinsicElements['label']\n\nexport const RadioBox = (props: RadioBoxProps) => {\n const { id, name, value, label, inputProps, labelProps, children, ...rest } = props\n return (\n <label className=\"theme-ipe ipe-radio-box\" {...rest}>\n <input type=\"radio\" id={id} name={name} value={value} {...inputProps} />\n <span className=\"ipe-checkbox-box\"></span>\n <span {...labelProps}>{label || children}</span>\n </label>\n )\n}\n"],"names":["RadioBox","props","id","name","value","label","inputProps","labelProps","children","rest","jsxs","jsx"],"mappings":";AAWO,MAAMA,IAAW,CAACC,MAAyB;AAChD,QAAM,EAAE,IAAAC,GAAI,MAAAC,GAAM,OAAAC,GAAO,OAAAC,GAAO,YAAAC,GAAY,YAAAC,GAAY,UAAAC,GAAU,GAAGC,EAAA,IAASR;AAC9E,SACES,gBAAAA,EAAC,SAAA,EAAM,WAAU,2BAA2B,GAAGD,GAC7C,UAAA;AAAA,IAAA,gBAAAE,EAAC,WAAM,MAAK,SAAQ,IAAAT,GAAQ,MAAAC,GAAY,OAAAC,GAAe,GAAGE,GAAY;AAAA,IACtE,gBAAAK,EAAC,QAAA,EAAK,WAAU,mBAAA,CAAmB;AAAA,IACnC,gBAAAA,EAAC,QAAA,EAAM,GAAGJ,GAAa,eAASC,EAAA,CAAS;AAAA,EAAA,GAC3C;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ import { SiteMetadata } from '../../types/SiteMetadata.js';
2
+ export declare const MOCK_SITE_METADATA: SiteMetadata;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'jsx-dom';
2
+ export declare const IconEdit: (props: SVGProps<SVGSVGElement>) => import('jsx-dom').ReactElement;
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'jsx-dom';
2
+ export declare const IconQuickEdit: (props: SVGProps<SVGSVGElement>) => import('jsx-dom').ReactElement;
@@ -1,4 +1,6 @@
1
+ import { InPageEdit } from '../InPageEdit';
1
2
  export declare const MwUserLinks: (props: {
2
3
  user: string;
3
4
  target?: string;
5
+ ctx: InPageEdit;
4
6
  }) => import('jsx-dom').ReactElement;
@@ -1,9 +1,11 @@
1
- import { M as y, R as x } from "../RadioBox-CaA8VgLu.js";
1
+ import { M as x } from "../index-lZkYoUca.js";
2
2
  import { j as n } from "../index-CvhkVj_L.js";
3
- import { P as L } from "../index-CvhkVj_L.js";
4
- import { T as g } from "../index-Bh70Udzi.js";
5
- import { A as N } from "../ActionButton-BgbTKTg7.js";
6
- import { C as z, I as $ } from "../InputBox-FIzJ-rPN.js";
3
+ import { P as V } from "../index-CvhkVj_L.js";
4
+ import { T as A } from "../index-Bh70Udzi.js";
5
+ import { A as B } from "../ActionButton-BgbTKTg7.js";
6
+ import { C as T } from "../CheckBox-D3rHnX7I.js";
7
+ import { I as $ } from "../InputBox-BV4m05Xs.js";
8
+ import { R as k } from "../RadioBox-nJqWsxW2.js";
7
9
  const r = "_tabview_zlbug_1", _ = "_labels_container_zlbug_4", b = "_label_zlbug_4", d = "_active_zlbug_32", m = "_contents_container_zlbug_35", i = {
8
10
  tabview: r,
9
11
  labels_container: _,
@@ -64,15 +66,15 @@ function p({ name: t, children: l }) {
64
66
  );
65
67
  }
66
68
  export {
67
- N as ActionButton,
68
- z as CheckBox,
69
+ B as ActionButton,
70
+ T as CheckBox,
69
71
  $ as InputBox,
70
- y as MBox,
71
- L as ProgressBar,
72
- x as RadioBox,
72
+ x as MBox,
73
+ V as ProgressBar,
74
+ k as RadioBox,
73
75
  p as TabContent,
74
76
  f as TabLabel,
75
77
  h as TabView,
76
- g as TwinSwapInput
78
+ A as TwinSwapInput
77
79
  };
78
80
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/TabView/index.tsx"],"sourcesContent":["import { ReactNode } from 'jsx-dom'\nimport styles from './styles.module.sass'\n\nexport interface TabViewLabelOptions {\n name: string\n children: ReactNode\n}\n\nconsole.log(styles)\n\nexport function TabView({\n tabs = [],\n defaultActiveIndex = 0,\n}: {\n tabs: (TabViewLabelOptions & { content: ReactNode })[]\n defaultActiveIndex?: number\n}) {\n const el = (\n <div className={`ipe-tabView ${styles.tabview}`}>\n <ul className={`ipe-tabView__labels-container ${styles.labels_container}`}>\n {tabs.map((tab) => (\n <TabLabel key={tab.name} name={tab.name}>\n {tab.children}\n </TabLabel>\n ))}\n </ul>\n <div className={`ipe-tabView__contents ${styles.contents_container}`}>\n {tabs.map((tab) => (\n <TabContent key={tab.name} name={tab.name}>\n {tab.content}\n </TabContent>\n ))}\n </div>\n </div>\n )\n\n const defaultActiveLabel = el.querySelector<HTMLAnchorElement>(\n `.ipe-tabView__labels-container > .ipe-tabView__label:nth-child(${defaultActiveIndex + 1})`\n )\n if (defaultActiveLabel) {\n defaultActiveLabel.click()\n }\n\n return el\n}\n\nexport function TabLabel({ name, children }: { name: string; children: ReactNode }) {\n return (\n <li\n data-tab-name={name}\n className={`ipe-tabView__label ${styles.label}`}\n onClick={function (e) {\n e.preventDefault()\n const container = this.closest('.ipe-tabView')\n if (!container) return\n const labels = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__labels')\n )?.children\n if (labels) {\n Array.from(labels).forEach((label) => {\n label.classList.remove(styles.active)\n })\n }\n this.classList.add(styles.active)\n const contents = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__contents')\n )?.children\n if (contents) {\n Array.from(contents).forEach((content) => {\n if (content instanceof HTMLElement) {\n if (content.dataset.tabName === name) {\n content.style.display = ''\n content.classList.add(styles.active)\n } else {\n content.style.display = 'none'\n content.classList.remove(styles.active)\n }\n }\n })\n }\n }}\n >\n <a>{children || name}</a>\n </li>\n )\n}\n\nexport function TabContent({ name, children }: { name: string; children: ReactNode }) {\n return (\n <div\n data-tab-name={name}\n className=\"ipe-tabView__content-body\"\n style={{\n display: 'none',\n }}\n >\n {children}\n </div>\n )\n}\n"],"names":["TabView","tabs","defaultActiveIndex","el","jsxs","styles","jsx","tab","TabLabel","TabContent","defaultActiveLabel","name","children","e","container","labels","label","contents","content"],"mappings":";;;;;;;;;;;;;AAUO,SAASA,EAAQ;AAAA,EACtB,MAAAC,IAAO,CAAA;AAAA,EACP,oBAAAC,IAAqB;AACvB,GAGG;AACD,QAAMC,IACJC,gBAAAA,EAAC,OAAA,EAAI,WAAW,eAAeC,EAAO,OAAO,IAC3C,UAAA;AAAA,IAAA,gBAAAC,EAAC,MAAA,EAAG,WAAW,iCAAiCD,EAAO,gBAAgB,IACpE,UAAAJ,EAAK,IAAI,CAACM,wBACRC,GAAA,EAAwB,MAAMD,EAAI,MAChC,UAAAA,EAAI,YADQA,EAAI,IAEnB,CACD,EAAA,CACH;AAAA,IACA,gBAAAD,EAAC,SAAI,WAAW,yBAAyBD,EAAO,kBAAkB,IAC/D,YAAK,IAAI,CAACE,MACT,gBAAAD,EAACG,GAAA,EAA0B,MAAMF,EAAI,MAClC,YAAI,QAAA,GADUA,EAAI,IAErB,CACD,EAAA,CACH;AAAA,EAAA,GACF,GAGIG,IAAqBP,EAAG;AAAA,IAC5B,kEAAkED,IAAqB,CAAC;AAAA,EAAA;AAE1F,SAAIQ,KACFA,EAAmB,MAAA,GAGdP;AACT;AAEO,SAASK,EAAS,EAAE,MAAAG,GAAM,UAAAC,KAAmD;AAClF,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAeK;AAAA,MACf,WAAW,sBAAsBN,EAAO,KAAK;AAAA,MAC7C,SAAS,SAAUQ,GAAG;AACpB,QAAAA,EAAE,eAAA;AACF,cAAMC,IAAY,KAAK,QAAQ,cAAc;AAC7C,YAAI,CAACA,EAAW;AAChB,cAAMC,IAAS,MAAM,KAAKD,EAAU,QAAQ,EAAE;AAAA,UAAK,CAACX,MAClDA,EAAG,UAAU,SAAS,qBAAqB;AAAA,QAAA,GAC1C;AACH,QAAIY,KACF,MAAM,KAAKA,CAAM,EAAE,QAAQ,CAACC,MAAU;AACpC,UAAAA,EAAM,UAAU,OAAOX,EAAO,MAAM;AAAA,QACtC,CAAC,GAEH,KAAK,UAAU,IAAIA,EAAO,MAAM;AAChC,cAAMY,IAAW,MAAM,KAAKH,EAAU,QAAQ,EAAE;AAAA,UAAK,CAACX,MACpDA,EAAG,UAAU,SAAS,uBAAuB;AAAA,QAAA,GAC5C;AACH,QAAIc,KACF,MAAM,KAAKA,CAAQ,EAAE,QAAQ,CAACC,MAAY;AACxC,UAAIA,aAAmB,gBACjBA,EAAQ,QAAQ,YAAYP,KAC9BO,EAAQ,MAAM,UAAU,IACxBA,EAAQ,UAAU,IAAIb,EAAO,MAAM,MAEnCa,EAAQ,MAAM,UAAU,QACxBA,EAAQ,UAAU,OAAOb,EAAO,MAAM;AAAA,QAG5C,CAAC;AAAA,MAEL;AAAA,MAEA,UAAA,gBAAAC,EAAC,KAAA,EAAG,UAAAM,KAAYD,EAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AAG3B;AAEO,SAASF,EAAW,EAAE,MAAAE,GAAM,UAAAC,KAAmD;AACpF,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAeK;AAAA,MACf,WAAU;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,MAGV,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/TabView/index.tsx"],"sourcesContent":["import { ReactNode } from 'jsx-dom'\nimport styles from './styles.module.sass'\n\nexport interface TabViewLabelOptions {\n name: string\n children: ReactNode\n}\n\nconsole.log(styles)\n\nexport function TabView({\n tabs = [],\n defaultActiveIndex = 0,\n}: {\n tabs: (TabViewLabelOptions & { content: ReactNode })[]\n defaultActiveIndex?: number\n}) {\n const el = (\n <div className={`ipe-tabView ${styles.tabview}`}>\n <ul className={`ipe-tabView__labels-container ${styles.labels_container}`}>\n {tabs.map((tab) => (\n <TabLabel key={tab.name} name={tab.name}>\n {tab.children}\n </TabLabel>\n ))}\n </ul>\n <div className={`ipe-tabView__contents ${styles.contents_container}`}>\n {tabs.map((tab) => (\n <TabContent key={tab.name} name={tab.name}>\n {tab.content}\n </TabContent>\n ))}\n </div>\n </div>\n )\n\n const defaultActiveLabel = el.querySelector<HTMLAnchorElement>(\n `.ipe-tabView__labels-container > .ipe-tabView__label:nth-child(${defaultActiveIndex + 1})`\n )\n if (defaultActiveLabel) {\n defaultActiveLabel.click()\n }\n\n return el\n}\n\nexport function TabLabel({ name, children }: { name: string; children: ReactNode }) {\n return (\n <li\n data-tab-name={name}\n className={`ipe-tabView__label ${styles.label}`}\n onClick={function (e) {\n e.preventDefault()\n const container = this.closest('.ipe-tabView')\n if (!container) return\n const labels = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__labels')\n )?.children\n if (labels) {\n Array.from(labels).forEach((label) => {\n label.classList.remove(styles.active)\n })\n }\n this.classList.add(styles.active)\n const contents = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__contents')\n )?.children\n if (contents) {\n Array.from(contents).forEach((content) => {\n if (content instanceof HTMLElement) {\n if (content.dataset.tabName === name) {\n content.style.display = ''\n content.classList.add(styles.active)\n } else {\n content.style.display = 'none'\n content.classList.remove(styles.active)\n }\n }\n })\n }\n }}\n >\n <a>{children || name}</a>\n </li>\n )\n}\n\nexport function TabContent({ name, children }: { name: string; children: ReactNode }) {\n return (\n <div\n data-tab-name={name}\n className=\"ipe-tabView__content-body\"\n style={{\n display: 'none',\n }}\n >\n {children}\n </div>\n )\n}\n"],"names":["TabView","tabs","defaultActiveIndex","el","jsxs","styles","jsx","tab","TabLabel","TabContent","defaultActiveLabel","name","children","e","container","labels","label","contents","content"],"mappings":";;;;;;;;;;;;;;;AAUO,SAASA,EAAQ;AAAA,EACtB,MAAAC,IAAO,CAAA;AAAA,EACP,oBAAAC,IAAqB;AACvB,GAGG;AACD,QAAMC,IACJC,gBAAAA,EAAC,OAAA,EAAI,WAAW,eAAeC,EAAO,OAAO,IAC3C,UAAA;AAAA,IAAA,gBAAAC,EAAC,MAAA,EAAG,WAAW,iCAAiCD,EAAO,gBAAgB,IACpE,UAAAJ,EAAK,IAAI,CAACM,wBACRC,GAAA,EAAwB,MAAMD,EAAI,MAChC,UAAAA,EAAI,YADQA,EAAI,IAEnB,CACD,EAAA,CACH;AAAA,IACA,gBAAAD,EAAC,SAAI,WAAW,yBAAyBD,EAAO,kBAAkB,IAC/D,YAAK,IAAI,CAACE,MACT,gBAAAD,EAACG,GAAA,EAA0B,MAAMF,EAAI,MAClC,YAAI,QAAA,GADUA,EAAI,IAErB,CACD,EAAA,CACH;AAAA,EAAA,GACF,GAGIG,IAAqBP,EAAG;AAAA,IAC5B,kEAAkED,IAAqB,CAAC;AAAA,EAAA;AAE1F,SAAIQ,KACFA,EAAmB,MAAA,GAGdP;AACT;AAEO,SAASK,EAAS,EAAE,MAAAG,GAAM,UAAAC,KAAmD;AAClF,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAeK;AAAA,MACf,WAAW,sBAAsBN,EAAO,KAAK;AAAA,MAC7C,SAAS,SAAUQ,GAAG;AACpB,QAAAA,EAAE,eAAA;AACF,cAAMC,IAAY,KAAK,QAAQ,cAAc;AAC7C,YAAI,CAACA,EAAW;AAChB,cAAMC,IAAS,MAAM,KAAKD,EAAU,QAAQ,EAAE;AAAA,UAAK,CAACX,MAClDA,EAAG,UAAU,SAAS,qBAAqB;AAAA,QAAA,GAC1C;AACH,QAAIY,KACF,MAAM,KAAKA,CAAM,EAAE,QAAQ,CAACC,MAAU;AACpC,UAAAA,EAAM,UAAU,OAAOX,EAAO,MAAM;AAAA,QACtC,CAAC,GAEH,KAAK,UAAU,IAAIA,EAAO,MAAM;AAChC,cAAMY,IAAW,MAAM,KAAKH,EAAU,QAAQ,EAAE;AAAA,UAAK,CAACX,MACpDA,EAAG,UAAU,SAAS,uBAAuB;AAAA,QAAA,GAC5C;AACH,QAAIc,KACF,MAAM,KAAKA,CAAQ,EAAE,QAAQ,CAACC,MAAY;AACxC,UAAIA,aAAmB,gBACjBA,EAAQ,QAAQ,YAAYP,KAC9BO,EAAQ,MAAM,UAAU,IACxBA,EAAQ,UAAU,IAAIb,EAAO,MAAM,MAEnCa,EAAQ,MAAM,UAAU,QACxBA,EAAQ,UAAU,OAAOb,EAAO,MAAM;AAAA,QAG5C,CAAC;AAAA,MAEL;AAAA,MAEA,UAAA,gBAAAC,EAAC,KAAA,EAAG,UAAAM,KAAYD,EAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AAG3B;AAEO,SAASF,EAAW,EAAE,MAAAE,GAAM,UAAAC,KAAmD;AACpF,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAeK;AAAA,MACf,WAAU;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,MAGV,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}