@limetech/lime-elements 37.20.0 → 37.21.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 (31) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +16080 -0
  4. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js.map +1 -0
  5. package/dist/cjs/limel-text-editor.cjs.entry.js +13 -16048
  6. package/dist/cjs/limel-text-editor.cjs.entry.js.map +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/collection/collection-manifest.json +1 -0
  9. package/dist/collection/components/text-editor/prosemirror-adapter.css +699 -0
  10. package/dist/collection/components/text-editor/prosemirror-adapter.js +122 -0
  11. package/dist/collection/components/text-editor/prosemirror-adapter.js.map +1 -0
  12. package/dist/collection/components/text-editor/text-editor.css +0 -699
  13. package/dist/collection/components/text-editor/text-editor.js +133 -45
  14. package/dist/collection/components/text-editor/text-editor.js.map +1 -1
  15. package/dist/esm/lime-elements.js +1 -1
  16. package/dist/esm/limel-prosemirror-adapter.entry.js +16076 -0
  17. package/dist/esm/limel-prosemirror-adapter.entry.js.map +1 -0
  18. package/dist/esm/limel-text-editor.entry.js +14 -16049
  19. package/dist/esm/limel-text-editor.entry.js.map +1 -1
  20. package/dist/esm/loader.js +1 -1
  21. package/dist/lime-elements/lime-elements.esm.js +1 -1
  22. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  23. package/dist/lime-elements/{p-10edf8b8.entry.js → p-0f45a6cc.entry.js} +2 -2
  24. package/dist/lime-elements/p-0f45a6cc.entry.js.map +1 -0
  25. package/dist/lime-elements/p-210c09a6.entry.js +2 -0
  26. package/dist/lime-elements/p-210c09a6.entry.js.map +1 -0
  27. package/dist/types/components/text-editor/prosemirror-adapter.d.ts +32 -0
  28. package/dist/types/components/text-editor/text-editor.d.ts +52 -13
  29. package/dist/types/components.d.ts +137 -24
  30. package/package.json +1 -1
  31. package/dist/lime-elements/p-10edf8b8.entry.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{r as e,c as i,h as t}from"./p-443111b3.js";const s="";const n=class{constructor(t){e(this,t);this.change=i(this,"change",7);this.handleChange=()=>e=>{e.stopPropagation();this.change.emit(e.detail)};this.disabled=undefined;this.readonly=undefined;this.helperText=undefined;this.placeholder=undefined;this.label=undefined;this.invalid=undefined;this.value=undefined}render(){return t("limel-prosemirror-adapter",{onChange:this.handleChange,value:this.value})}};n.style=s;export{n as limel_text_editor};
2
+ //# sourceMappingURL=p-210c09a6.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["textEditorCss","TextEditor","this","handleChange","event","stopPropagation","change","emit","detail","render","h","onChange","value"],"sources":["./src/components/text-editor/text-editor.scss?tag=limel-text-editor&encapsulation=shadow","./src/components/text-editor/text-editor.tsx"],"sourcesContent":[null,"import { Component, Event, EventEmitter, Prop, h } from '@stencil/core';\nimport { FormComponent } from '../form/form.types';\n/**\n * A rich text editor that allows the user to input and format text\n * The `limel-text-editor` can be used as a form field\n *\n * @exampleComponent limel-example-text-editor-basic\n * @beta\n * @private\n */\n@Component({\n tag: 'limel-text-editor',\n shadow: true,\n styleUrl: 'text-editor.scss',\n})\nexport class TextEditor implements FormComponent<{ html: string }> {\n /**\n * Set to `true` to disable the field.\n * Use `disabled` to indicate that the field can normally be interacted\n * with, but is currently disabled. This tells the user that if certain\n * requirements are met, the field may become enabled again.\n */\n @Prop({ reflect: true })\n public disabled?: boolean;\n\n /**\n * Set to `true` to make the component read-only.\n * Use `readonly` when the field is only there to present the data it holds,\n * and will not become possible for the current user to edit.\n * :::note\n * Consider that it might be better to use `limel-markdown`\n * instead of `limel-text-editor` when the goal is visualizing data.\n * :::\n */\n @Prop({ reflect: true })\n public readonly?: boolean;\n\n /**\n * Optional helper text to display below the input field when it has focus\n */\n @Prop({ reflect: true })\n public helperText?: string;\n\n /**\n * The placeholder text shown inside the input field,\n * when the field is empty.\n */\n @Prop({ reflect: true })\n public placeholder?: string;\n\n /**\n * The label of the editor\n */\n @Prop({ reflect: true })\n public label?: string;\n\n /**\n * Set to `true` to indicate that the current value of the editor is\n * invalid.\n */\n @Prop({ reflect: true })\n public invalid?: boolean;\n\n /**\n * Description of the text inside the editor\n */\n @Prop({ reflect: true })\n public value: { html: string };\n\n /**\n * Dispatched when a change is made to the editor\n */\n @Event()\n public change: EventEmitter<{ html: string }>;\n\n public render() {\n return (\n <limel-prosemirror-adapter\n onChange={this.handleChange}\n value={this.value}\n />\n );\n }\n\n private handleChange = () => (event: CustomEvent<{ html: string }>) => {\n event.stopPropagation();\n this.change.emit(event.detail);\n };\n}\n"],"mappings":"kDAAA,MAAMA,EAAgB,G,MCeTC,EAAU,M,wDAqEXC,KAAAC,aAAe,IAAOC,IAC1BA,EAAMC,kBACNH,KAAKI,OAAOC,KAAKH,EAAMI,OAAO,E,sKAX3BC,SACH,OACIC,EAAA,6BACIC,SAAUT,KAAKC,aACfS,MAAOV,KAAKU,O"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The ProseMirror adapter offers a rich text editing experience with markdown support,
3
+ * in the sense that you can easily type markdown syntax and see the rendered
4
+ * result as rich text in real-time. For instance, you can type `# Hello, world!`
5
+ * and see it directly turning to a heading 1 (an `<h1>` HTML element).
6
+ *
7
+ * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
8
+ * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
9
+ *
10
+ * @exampleComponent limel-example-prosemirror-adapter-basic
11
+ * @beta
12
+ * @private
13
+ */
14
+ export declare class ProsemirrorAdapter {
15
+ /**
16
+ * The value of the editor
17
+ */
18
+ value: {
19
+ html: string;
20
+ };
21
+ private host;
22
+ private view;
23
+ /**
24
+ * Dispatched when a change is made to the editor
25
+ */
26
+ private change;
27
+ componentWillLoad(): void;
28
+ render(): any;
29
+ componentDidLoad(): void;
30
+ private getHTML;
31
+ }
32
+ //# sourceMappingURL=prosemirror-adapter.d.ts.map
@@ -1,25 +1,64 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { FormComponent } from '../form/form.types';
1
3
  /**
2
- * This editor offers a rich text editing experience with markdown support,
3
- * in the sense that you can easily type markdown syntax and see the rendered
4
- * result as rich text in real-time. For instance, you can type `# Hello, world!`
5
- * and see it directly turning to a heading 1 (an `<h1>` HTML element).
6
- *
7
- * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
8
- * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
4
+ * A rich text editor that allows the user to input and format text
5
+ * The `limel-text-editor` can be used as a form field
9
6
  *
10
7
  * @exampleComponent limel-example-text-editor-basic
11
8
  * @beta
12
9
  * @private
13
10
  */
14
- export declare class TextEditor {
15
- private host;
16
- private view;
11
+ export declare class TextEditor implements FormComponent<{
12
+ html: string;
13
+ }> {
14
+ /**
15
+ * Set to `true` to disable the field.
16
+ * Use `disabled` to indicate that the field can normally be interacted
17
+ * with, but is currently disabled. This tells the user that if certain
18
+ * requirements are met, the field may become enabled again.
19
+ */
20
+ disabled?: boolean;
21
+ /**
22
+ * Set to `true` to make the component read-only.
23
+ * Use `readonly` when the field is only there to present the data it holds,
24
+ * and will not become possible for the current user to edit.
25
+ * :::note
26
+ * Consider that it might be better to use `limel-markdown`
27
+ * instead of `limel-text-editor` when the goal is visualizing data.
28
+ * :::
29
+ */
30
+ readonly?: boolean;
31
+ /**
32
+ * Optional helper text to display below the input field when it has focus
33
+ */
34
+ helperText?: string;
35
+ /**
36
+ * The placeholder text shown inside the input field,
37
+ * when the field is empty.
38
+ */
39
+ placeholder?: string;
40
+ /**
41
+ * The label of the editor
42
+ */
43
+ label?: string;
44
+ /**
45
+ * Set to `true` to indicate that the current value of the editor is
46
+ * invalid.
47
+ */
48
+ invalid?: boolean;
49
+ /**
50
+ * Description of the text inside the editor
51
+ */
52
+ value: {
53
+ html: string;
54
+ };
17
55
  /**
18
56
  * Dispatched when a change is made to the editor
19
57
  */
20
- private change;
21
- componentWillLoad(): void;
58
+ change: EventEmitter<{
59
+ html: string;
60
+ }>;
22
61
  render(): any;
23
- componentDidLoad(): void;
62
+ private handleChange;
24
63
  }
25
64
  //# sourceMappingURL=text-editor.d.ts.map
@@ -2053,6 +2053,23 @@ export namespace Components {
2053
2053
  */
2054
2054
  "readonly": boolean;
2055
2055
  }
2056
+ /**
2057
+ * The ProseMirror adapter offers a rich text editing experience with markdown support,
2058
+ * in the sense that you can easily type markdown syntax and see the rendered
2059
+ * result as rich text in real-time. For instance, you can type `# Hello, world!`
2060
+ * and see it directly turning to a heading 1 (an `<h1>` HTML element).
2061
+ * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
2062
+ * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
2063
+ * @exampleComponent limel-example-prosemirror-adapter-basic
2064
+ * @beta
2065
+ * @private
2066
+ */
2067
+ interface LimelProsemirrorAdapter {
2068
+ /**
2069
+ * The value of the editor
2070
+ */
2071
+ "value": { html: string };
2072
+ }
2056
2073
  /**
2057
2074
  * @exampleComponent limel-example-select
2058
2075
  * @exampleComponent limel-example-select-with-icons
@@ -2458,17 +2475,41 @@ export namespace Components {
2458
2475
  "totalRows": number;
2459
2476
  }
2460
2477
  /**
2461
- * This editor offers a rich text editing experience with markdown support,
2462
- * in the sense that you can easily type markdown syntax and see the rendered
2463
- * result as rich text in real-time. For instance, you can type `# Hello, world!`
2464
- * and see it directly turning to a heading 1 (an `<h1>` HTML element).
2465
- * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
2466
- * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
2478
+ * A rich text editor that allows the user to input and format text
2479
+ * The `limel-text-editor` can be used as a form field
2467
2480
  * @exampleComponent limel-example-text-editor-basic
2468
2481
  * @beta
2469
2482
  * @private
2470
2483
  */
2471
2484
  interface LimelTextEditor {
2485
+ /**
2486
+ * Set to `true` to disable the field. Use `disabled` to indicate that the field can normally be interacted with, but is currently disabled. This tells the user that if certain requirements are met, the field may become enabled again.
2487
+ */
2488
+ "disabled"?: boolean;
2489
+ /**
2490
+ * Optional helper text to display below the input field when it has focus
2491
+ */
2492
+ "helperText"?: string;
2493
+ /**
2494
+ * Set to `true` to indicate that the current value of the editor is invalid.
2495
+ */
2496
+ "invalid"?: boolean;
2497
+ /**
2498
+ * The label of the editor
2499
+ */
2500
+ "label"?: string;
2501
+ /**
2502
+ * The placeholder text shown inside the input field, when the field is empty.
2503
+ */
2504
+ "placeholder"?: string;
2505
+ /**
2506
+ * Set to `true` to make the component read-only. Use `readonly` when the field is only there to present the data it holds, and will not become possible for the current user to edit. :::note Consider that it might be better to use `limel-markdown` instead of `limel-text-editor` when the goal is visualizing data. :::
2507
+ */
2508
+ "readonly"?: boolean;
2509
+ /**
2510
+ * Description of the text inside the editor
2511
+ */
2512
+ "value": { html: string };
2472
2513
  }
2473
2514
  /**
2474
2515
  * A tooltip can be used to display a descriptive text for any element.
@@ -2674,6 +2715,10 @@ export interface LimelProgressFlowItemCustomEvent<T> extends CustomEvent<T> {
2674
2715
  detail: T;
2675
2716
  target: HTMLLimelProgressFlowItemElement;
2676
2717
  }
2718
+ export interface LimelProsemirrorAdapterCustomEvent<T> extends CustomEvent<T> {
2719
+ detail: T;
2720
+ target: HTMLLimelProsemirrorAdapterElement;
2721
+ }
2677
2722
  export interface LimelSelectCustomEvent<T> extends CustomEvent<T> {
2678
2723
  detail: T;
2679
2724
  target: HTMLLimelSelectElement;
@@ -3757,6 +3802,23 @@ declare global {
3757
3802
  prototype: HTMLLimelProgressFlowItemElement;
3758
3803
  new (): HTMLLimelProgressFlowItemElement;
3759
3804
  };
3805
+ /**
3806
+ * The ProseMirror adapter offers a rich text editing experience with markdown support,
3807
+ * in the sense that you can easily type markdown syntax and see the rendered
3808
+ * result as rich text in real-time. For instance, you can type `# Hello, world!`
3809
+ * and see it directly turning to a heading 1 (an `<h1>` HTML element).
3810
+ * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
3811
+ * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
3812
+ * @exampleComponent limel-example-prosemirror-adapter-basic
3813
+ * @beta
3814
+ * @private
3815
+ */
3816
+ interface HTMLLimelProsemirrorAdapterElement extends Components.LimelProsemirrorAdapter, HTMLStencilElement {
3817
+ }
3818
+ var HTMLLimelProsemirrorAdapterElement: {
3819
+ prototype: HTMLLimelProsemirrorAdapterElement;
3820
+ new (): HTMLLimelProsemirrorAdapterElement;
3821
+ };
3760
3822
  /**
3761
3823
  * @exampleComponent limel-example-select
3762
3824
  * @exampleComponent limel-example-select-with-icons
@@ -3953,12 +4015,8 @@ declare global {
3953
4015
  new (): HTMLLimelTableElement;
3954
4016
  };
3955
4017
  /**
3956
- * This editor offers a rich text editing experience with markdown support,
3957
- * in the sense that you can easily type markdown syntax and see the rendered
3958
- * result as rich text in real-time. For instance, you can type `# Hello, world!`
3959
- * and see it directly turning to a heading 1 (an `<h1>` HTML element).
3960
- * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
3961
- * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
4018
+ * A rich text editor that allows the user to input and format text
4019
+ * The `limel-text-editor` can be used as a form field
3962
4020
  * @exampleComponent limel-example-text-editor-basic
3963
4021
  * @beta
3964
4022
  * @private
@@ -4076,6 +4134,7 @@ declare global {
4076
4134
  "limel-portal": HTMLLimelPortalElement;
4077
4135
  "limel-progress-flow": HTMLLimelProgressFlowElement;
4078
4136
  "limel-progress-flow-item": HTMLLimelProgressFlowItemElement;
4137
+ "limel-prosemirror-adapter": HTMLLimelProsemirrorAdapterElement;
4079
4138
  "limel-select": HTMLLimelSelectElement;
4080
4139
  "limel-shortcut": HTMLLimelShortcutElement;
4081
4140
  "limel-slider": HTMLLimelSliderElement;
@@ -6249,6 +6308,27 @@ declare namespace LocalJSX {
6249
6308
  */
6250
6309
  "readonly"?: boolean;
6251
6310
  }
6311
+ /**
6312
+ * The ProseMirror adapter offers a rich text editing experience with markdown support,
6313
+ * in the sense that you can easily type markdown syntax and see the rendered
6314
+ * result as rich text in real-time. For instance, you can type `# Hello, world!`
6315
+ * and see it directly turning to a heading 1 (an `<h1>` HTML element).
6316
+ * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
6317
+ * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
6318
+ * @exampleComponent limel-example-prosemirror-adapter-basic
6319
+ * @beta
6320
+ * @private
6321
+ */
6322
+ interface LimelProsemirrorAdapter {
6323
+ /**
6324
+ * Dispatched when a change is made to the editor
6325
+ */
6326
+ "onChange"?: (event: LimelProsemirrorAdapterCustomEvent<{ html: string }>) => void;
6327
+ /**
6328
+ * The value of the editor
6329
+ */
6330
+ "value"?: { html: string };
6331
+ }
6252
6332
  /**
6253
6333
  * @exampleComponent limel-example-select
6254
6334
  * @exampleComponent limel-example-select-with-icons
@@ -6710,21 +6790,45 @@ declare namespace LocalJSX {
6710
6790
  "totalRows"?: number;
6711
6791
  }
6712
6792
  /**
6713
- * This editor offers a rich text editing experience with markdown support,
6714
- * in the sense that you can easily type markdown syntax and see the rendered
6715
- * result as rich text in real-time. For instance, you can type `# Hello, world!`
6716
- * and see it directly turning to a heading 1 (an `<h1>` HTML element).
6717
- * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
6718
- * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
6793
+ * A rich text editor that allows the user to input and format text
6794
+ * The `limel-text-editor` can be used as a form field
6719
6795
  * @exampleComponent limel-example-text-editor-basic
6720
6796
  * @beta
6721
6797
  * @private
6722
6798
  */
6723
6799
  interface LimelTextEditor {
6800
+ /**
6801
+ * Set to `true` to disable the field. Use `disabled` to indicate that the field can normally be interacted with, but is currently disabled. This tells the user that if certain requirements are met, the field may become enabled again.
6802
+ */
6803
+ "disabled"?: boolean;
6804
+ /**
6805
+ * Optional helper text to display below the input field when it has focus
6806
+ */
6807
+ "helperText"?: string;
6808
+ /**
6809
+ * Set to `true` to indicate that the current value of the editor is invalid.
6810
+ */
6811
+ "invalid"?: boolean;
6812
+ /**
6813
+ * The label of the editor
6814
+ */
6815
+ "label"?: string;
6724
6816
  /**
6725
6817
  * Dispatched when a change is made to the editor
6726
6818
  */
6727
6819
  "onChange"?: (event: LimelTextEditorCustomEvent<{ html: string }>) => void;
6820
+ /**
6821
+ * The placeholder text shown inside the input field, when the field is empty.
6822
+ */
6823
+ "placeholder"?: string;
6824
+ /**
6825
+ * Set to `true` to make the component read-only. Use `readonly` when the field is only there to present the data it holds, and will not become possible for the current user to edit. :::note Consider that it might be better to use `limel-markdown` instead of `limel-text-editor` when the goal is visualizing data. :::
6826
+ */
6827
+ "readonly"?: boolean;
6828
+ /**
6829
+ * Description of the text inside the editor
6830
+ */
6831
+ "value"?: { html: string };
6728
6832
  }
6729
6833
  /**
6730
6834
  * A tooltip can be used to display a descriptive text for any element.
@@ -6857,6 +6961,7 @@ declare namespace LocalJSX {
6857
6961
  "limel-portal": LimelPortal;
6858
6962
  "limel-progress-flow": LimelProgressFlow;
6859
6963
  "limel-progress-flow-item": LimelProgressFlowItem;
6964
+ "limel-prosemirror-adapter": LimelProsemirrorAdapter;
6860
6965
  "limel-select": LimelSelect;
6861
6966
  "limel-shortcut": LimelShortcut;
6862
6967
  "limel-slider": LimelSlider;
@@ -7667,6 +7772,18 @@ declare module "@stencil/core" {
7667
7772
  * @private
7668
7773
  */
7669
7774
  "limel-progress-flow-item": LocalJSX.LimelProgressFlowItem & JSXBase.HTMLAttributes<HTMLLimelProgressFlowItemElement>;
7775
+ /**
7776
+ * The ProseMirror adapter offers a rich text editing experience with markdown support,
7777
+ * in the sense that you can easily type markdown syntax and see the rendered
7778
+ * result as rich text in real-time. For instance, you can type `# Hello, world!`
7779
+ * and see it directly turning to a heading 1 (an `<h1>` HTML element).
7780
+ * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
7781
+ * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
7782
+ * @exampleComponent limel-example-prosemirror-adapter-basic
7783
+ * @beta
7784
+ * @private
7785
+ */
7786
+ "limel-prosemirror-adapter": LocalJSX.LimelProsemirrorAdapter & JSXBase.HTMLAttributes<HTMLLimelProsemirrorAdapterElement>;
7670
7787
  /**
7671
7788
  * @exampleComponent limel-example-select
7672
7789
  * @exampleComponent limel-example-select-with-icons
@@ -7813,12 +7930,8 @@ declare module "@stencil/core" {
7813
7930
  */
7814
7931
  "limel-table": LocalJSX.LimelTable & JSXBase.HTMLAttributes<HTMLLimelTableElement>;
7815
7932
  /**
7816
- * This editor offers a rich text editing experience with markdown support,
7817
- * in the sense that you can easily type markdown syntax and see the rendered
7818
- * result as rich text in real-time. For instance, you can type `# Hello, world!`
7819
- * and see it directly turning to a heading 1 (an `<h1>` HTML element).
7820
- * Naturally, you can use standard keyboard hotkeys such as <kbd>Ctrl</kbd> + <kbd>B</kbd>
7821
- * to toggle bold text, <kbd>Ctrl</kbd> + <kbd>I</kbd> to toggle italic text, and so on.
7933
+ * A rich text editor that allows the user to input and format text
7934
+ * The `limel-text-editor` can be used as a form field
7822
7935
  * @exampleComponent limel-example-text-editor-basic
7823
7936
  * @beta
7824
7937
  * @private
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "37.20.0",
3
+ "version": "37.21.0",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",