@orangesix/react 1.0.10 → 1.1.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 (134) hide show
  1. package/api/index.d.ts +2 -2
  2. package/autocomplete/index.cjs.js +2 -0
  3. package/autocomplete/index.cjs.js.map +1 -0
  4. package/autocomplete/index.d.ts +149 -0
  5. package/autocomplete/index.esm.js +2 -0
  6. package/autocomplete/index.esm.js.map +1 -0
  7. package/autocomplete/package.json +5 -0
  8. package/box/_box.scss +0 -27
  9. package/box/index.cjs.js.map +1 -1
  10. package/box/index.d.ts +2 -2
  11. package/box/index.esm.js.map +1 -1
  12. package/editor/_editor.scss +12 -21
  13. package/editor/index.cjs.js.map +1 -1
  14. package/editor/index.esm.js.map +1 -1
  15. package/inputfilter/_inputfilter.scss +2 -7
  16. package/inputfilter/index.cjs.js.map +1 -1
  17. package/inputfilter/index.d.ts +1 -1
  18. package/inputfilter/index.esm.js.map +1 -1
  19. package/package.json +16 -23
  20. package/style/index.cjs.js +2 -0
  21. package/style/index.cjs.js.map +1 -0
  22. package/style/index.d.ts +2 -0
  23. package/style/index.esm.js +2 -0
  24. package/style/index.esm.js.map +1 -0
  25. package/style/index.ts +0 -0
  26. package/style/scss/_variables.scss +925 -0
  27. package/style/scss/bootstrap.scss +31 -0
  28. package/style/scss/components/_root.scss +110 -0
  29. package/style/scss/components/button/_button.scss +644 -0
  30. package/style/scss/components/button/_speeddial.scss +91 -0
  31. package/style/scss/components/button/_splitbutton.scss +359 -0
  32. package/style/scss/components/data/_carousel.scss +39 -0
  33. package/style/scss/components/data/_datascroller.scss +47 -0
  34. package/style/scss/components/data/_datatable.scss +414 -0
  35. package/style/scss/components/data/_dataview.scss +47 -0
  36. package/style/scss/components/data/_filter.scss +138 -0
  37. package/style/scss/components/data/_orderlist.scss +86 -0
  38. package/style/scss/components/data/_organizationchart.scss +50 -0
  39. package/style/scss/components/data/_paginator.scss +91 -0
  40. package/style/scss/components/data/_picklist.scss +74 -0
  41. package/style/scss/components/data/_timeline.scss +38 -0
  42. package/style/scss/components/data/_tree.scss +184 -0
  43. package/style/scss/components/data/_treetable.scss +431 -0
  44. package/style/scss/components/file/_fileupload.scss +41 -0
  45. package/style/scss/components/input/_autocomplete.scss +106 -0
  46. package/style/scss/components/input/_calendar.scss +251 -0
  47. package/style/scss/components/input/_cascadeselect.scss +107 -0
  48. package/style/scss/components/input/_checkbox.scss +181 -0
  49. package/style/scss/components/input/_chips.scss +102 -0
  50. package/style/scss/components/input/_colorpicker.scss +18 -0
  51. package/style/scss/components/input/_dropdown.scss +255 -0
  52. package/style/scss/components/input/_editor.scss +122 -0
  53. package/style/scss/components/input/_iconfield.scss +10 -0
  54. package/style/scss/components/input/_inputgroup.scss +74 -0
  55. package/style/scss/components/input/_inputicon.scss +15 -0
  56. package/style/scss/components/input/_inputnumber.scss +5 -0
  57. package/style/scss/components/input/_inputotp.scss +10 -0
  58. package/style/scss/components/input/_inputswitch.scss +100 -0
  59. package/style/scss/components/input/_inputtext.scss +101 -0
  60. package/style/scss/components/input/_listbox.scss +139 -0
  61. package/style/scss/components/input/_mention.scss +31 -0
  62. package/style/scss/components/input/_multiselect.scss +278 -0
  63. package/style/scss/components/input/_password.scss +33 -0
  64. package/style/scss/components/input/_radiobutton.scss +170 -0
  65. package/style/scss/components/input/_rating.scss +81 -0
  66. package/style/scss/components/input/_selectbutton.scss +50 -0
  67. package/style/scss/components/input/_slider.scss +49 -0
  68. package/style/scss/components/input/_togglebutton.scss +99 -0
  69. package/style/scss/components/input/_treeselect.scss +151 -0
  70. package/style/scss/components/input/_tristatecheckbox.scss +46 -0
  71. package/style/scss/components/menu/_breadcrumb.scss +42 -0
  72. package/style/scss/components/menu/_contextmenu.scss +39 -0
  73. package/style/scss/components/menu/_dock.scss +109 -0
  74. package/style/scss/components/menu/_megamenu.scss +141 -0
  75. package/style/scss/components/menu/_menu.scss +33 -0
  76. package/style/scss/components/menu/_menubar.scss +216 -0
  77. package/style/scss/components/menu/_panelmenu.scss +153 -0
  78. package/style/scss/components/menu/_slidemenu.scss +60 -0
  79. package/style/scss/components/menu/_steps.scss +57 -0
  80. package/style/scss/components/menu/_tabmenu.scss +50 -0
  81. package/style/scss/components/menu/_tieredmenu.scss +43 -0
  82. package/style/scss/components/messages/_inlinemessage.scss +69 -0
  83. package/style/scss/components/messages/_message.scss +107 -0
  84. package/style/scss/components/messages/_toast.scss +100 -0
  85. package/style/scss/components/misc/_avatar.scss +34 -0
  86. package/style/scss/components/misc/_badge.scss +77 -0
  87. package/style/scss/components/misc/_blockui.scss +0 -0
  88. package/style/scss/components/misc/_chip.scss +39 -0
  89. package/style/scss/components/misc/_inplace.scss +17 -0
  90. package/style/scss/components/misc/_metergroup.scss +81 -0
  91. package/style/scss/components/misc/_progressbar.scss +17 -0
  92. package/style/scss/components/misc/_scrolltop.scss +25 -0
  93. package/style/scss/components/misc/_skeleton.scss +8 -0
  94. package/style/scss/components/misc/_tag.scss +40 -0
  95. package/style/scss/components/misc/_terminal.scss +12 -0
  96. package/style/scss/components/multimedia/_galleria.scss +153 -0
  97. package/style/scss/components/multimedia/_image.scss +54 -0
  98. package/style/scss/components/overlay/_confirmpopup.scss +72 -0
  99. package/style/scss/components/overlay/_dialog.scss +78 -0
  100. package/style/scss/components/overlay/_overlaypanel.scss +64 -0
  101. package/style/scss/components/overlay/_sidebar.scss +23 -0
  102. package/style/scss/components/overlay/_tooltip.scss +33 -0
  103. package/style/scss/components/panel/_accordion.scss +118 -0
  104. package/style/scss/components/panel/_card.scss +30 -0
  105. package/style/scss/components/panel/_divider.scss +31 -0
  106. package/style/scss/components/panel/_fieldset.scss +47 -0
  107. package/style/scss/components/panel/_panel.scss +47 -0
  108. package/style/scss/components/panel/_scrollpanel.scss +10 -0
  109. package/style/scss/components/panel/_splitter.scss +23 -0
  110. package/style/scss/components/panel/_stepper.scss +136 -0
  111. package/style/scss/components/panel/_tabview.scss +148 -0
  112. package/style/scss/components/panel/_toolbar.scss +11 -0
  113. package/style/scss/core/_colors.scss +18 -0
  114. package/style/scss/core/_extensions.scss +27 -0
  115. package/style/scss/core/_mixins.scss +243 -0
  116. package/style/scss/core/_reset.scss +75 -0
  117. package/table/index.cjs.js +1 -1
  118. package/table/index.cjs.js.map +1 -1
  119. package/table/index.d.ts +3 -8
  120. package/table/index.esm.js +1 -1
  121. package/table/index.esm.js.map +1 -1
  122. package/tablepivot/_tablepivot.scss +15 -31
  123. package/tablepivot/index.cjs.js.map +1 -1
  124. package/tablepivot/index.esm.js.map +1 -1
  125. package/tabview/index.cjs.js +2 -0
  126. package/tabview/index.cjs.js.map +1 -0
  127. package/tabview/index.d.ts +137 -0
  128. package/tabview/index.esm.js +2 -0
  129. package/tabview/index.esm.js.map +1 -0
  130. package/tabview/package.json +5 -0
  131. package/utils/index.cjs.js.map +1 -1
  132. package/utils/index.esm.js.map +1 -1
  133. package/api/theme.css +0 -1
  134. package/table/_table.scss +0 -136
package/api/index.d.ts CHANGED
@@ -33,7 +33,7 @@ type AlignItemsProps =
33
33
  | "align-items-xxl-end"
34
34
  | "align-items-xxl-center"
35
35
  | "align-items-xxl-baseline"
36
- | "align-items-xxl-stretch"
36
+ | "align-items-xxl-stretch";
37
37
 
38
38
  /**
39
39
  * Realiza o mapeamento dos valores da propriedades css `justify-content`
@@ -74,7 +74,7 @@ type JustifyContentProps =
74
74
  | "justify-content-xxl-center"
75
75
  | "justify-content-xxl-between"
76
76
  | "justify-content-xxl-around"
77
- | "justify-content-xxl-evenly"
77
+ | "justify-content-xxl-evenly";
78
78
 
79
79
  /**
80
80
  * Define as tipagens `default` de todos os componentes do pacote
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react"),a=require("primereact/utils"),t=require("primereact/autocomplete");const i=({children:t,...i})=>{const r={size:`box-size-${i.size??"100"}`,direction:`box-direction-${i.direction??"row"}`,justify:void 0===i.justify?"":Array.isArray(i.justify)?i.justify?.join(" "):i.justify,align:void 0===i.align?"":Array.isArray(i.align)?i.align?.join(" "):i.align},l={className:a.classNames(["box",i.className??"",r.size,r.direction,r.justify,r.align]),style:i.css,id:i.id};return e.createElement("div",{...l},t)},r=({iconPrefix:a="bi bi-",...t})=>t.label&&e.createElement("p",{className:"form-label"},t.icon&&e.createElement("i",{className:a+t.icon+" me-1"}),t.label,t.required&&e.createElement("span",{className:"text-danger"},"*"));function l(e){const a=e.dataTemplate?{itemTemplate:e.dataTemplate}:{};return{id:e.id,field:"name",name:e.name,forceSelection:!0,style:e.css??{},disabled:e.disabled,required:e.required,placeholder:e.placeholder,inputClassName:"form-control",appendTo:e.appendTo??"self",className:"autocomplete-primereact w-100",...a}}function s(e){return{completeMethod(a){e.onSearch(a.query)},onChange(a){e.onChange(a.value)},onSelect(a){e.onSelect&&e.onSelect(a.value)}}}exports.Autocomplete=({...a})=>e.createElement(i,{className:"autocomplete"+(a.className??""),css:a.css,size:a.size??"100"},e.createElement(r,{...a}),e.createElement(t.AutoComplete,{delay:a.searchDelay??500,maxLength:a.searchMax,minLength:a.searchMin??1,suggestions:a.data??[],value:a.value,...l(a),...s(a)}),e.createElement("div",{"data-name":a.name,id:"j_feedback"}));
2
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/api/input.tsx","../../src/autocomplete/core/core.tsx","../../src/autocomplete/core/event.tsx","../../src/autocomplete/autocomplete.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { AutocompleteProps } from \"../types\";\r\nimport { AutoCompleteProps as AutoCompletePropsPrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configurações do modo principal do autocomplete.\r\n */\r\nexport function autocompleCore(\r\n props: AutocompleteProps\r\n): Partial<AutoCompletePropsPrimeReact> {\r\n\r\n const itemTemplate: Partial<AutoCompletePropsPrimeReact> = props.dataTemplate\r\n ? { itemTemplate: props.dataTemplate }\r\n : {};\r\n return {\r\n id: props.id,\r\n field: \"name\",\r\n name: props.name,\r\n forceSelection: true,\r\n style: props.css ?? {},\r\n disabled: props.disabled,\r\n required: props.required,\r\n placeholder: props.placeholder,\r\n inputClassName: \"form-control\",\r\n appendTo: props.appendTo ?? \"self\",\r\n className: \"autocomplete-primereact w-100\",\r\n ...itemTemplate\r\n };\r\n}","import { AutocompleteProps } from \"../types\";\r\nimport {\r\n AutoCompleteChangeEvent,\r\n AutoCompleteCompleteEvent,\r\n AutoCompleteProps as AutoCompletePropsPrimeReact, AutoCompleteSelectEvent\r\n} from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configuração de evento do componente\r\n */\r\nexport function autocompleteEvent(props: AutocompleteProps): Partial<AutoCompletePropsPrimeReact> {\r\n return {\r\n completeMethod(event: AutoCompleteCompleteEvent) {\r\n props.onSearch(event.query);\r\n },\r\n onChange(event: AutoCompleteChangeEvent) {\r\n props.onChange(event.value);\r\n },\r\n onSelect(event: AutoCompleteSelectEvent) {\r\n if (props.onSelect) {\r\n props.onSelect(event.value);\r\n }\r\n }\r\n };\r\n}","import React from \"react\";\r\nimport { Box } from \"../box\";\r\nimport { InputLabel } from \"../api\";\r\nimport { AutocompleteProps } from \"./types\";\r\nimport { autocompleCore } from \"./core/core\";\r\nimport { autocompleteEvent } from \"./core/event\";\r\nimport { AutoComplete as AutoCompletePrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * AutoComplete é um componente de entrada que fornece sugestões em tempo real enquanto é digitado\r\n */\r\nexport const Autocomplete = ({ ...props }: AutocompleteProps) => {\r\n return (\r\n <Box className={\"autocomplete\" + (props.className ?? \"\")}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <AutoCompletePrimeReact delay={props.searchDelay ?? 500}\r\n maxLength={props.searchMax}\r\n minLength={props.searchMin ?? 1}\r\n suggestions={props.data ?? []}\r\n value={props.value}\r\n {...autocompleCore(props)}\r\n {...autocompleteEvent(props)}/>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","InputLabel","iconPrefix","label","icon","required","autocompleCore","itemTemplate","dataTemplate","field","name","forceSelection","disabled","placeholder","inputClassName","appendTo","autocompleteEvent","completeMethod","event","onSearch","query","onChange","value","onSelect","AutoCompletePrimeReact","delay","searchDelay","maxLength","searchMax","minLength","searchMin","suggestions","data"],"mappings":"uGAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAAA,WAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe,EChCjCkB,EAAa,EAAGC,aAAa,YAAalB,KAM5CA,EAAMmB,OACNJ,EAAGC,cAAA,IAAA,CAAAL,UAAU,cACXX,EAAMoB,MAAQL,EAAAC,cAAA,IAAA,CAAGL,UAAWO,EAAalB,EAAMoB,KAAO,UACtDpB,EAAMmB,MACNnB,EAAMqB,UAAYN,EAAAC,cAAA,OAAA,CAAML,UAAU,eAAsB,MCX/D,SAAUW,EACZtB,GAGA,MAAMuB,EAAqDvB,EAAMwB,aAC3D,CAAED,aAAcvB,EAAMwB,cACtB,CAAE,EACR,MAAO,CACHV,GAAId,EAAMc,GACVW,MAAO,OACPC,KAAM1B,EAAM0B,KACZC,gBAAgB,EAChBd,MAAOb,EAAMC,KAAO,CAAE,EACtB2B,SAAU5B,EAAM4B,SAChBP,SAAUrB,EAAMqB,SAChBQ,YAAa7B,EAAM6B,YACnBC,eAAgB,eAChBC,SAAU/B,EAAM+B,UAAY,OAC5BpB,UAAW,mCACRY,EAEX,CCjBM,SAAUS,EAAkBhC,GAC9B,MAAO,CACH,cAAAiC,CAAeC,GACXlC,EAAMmC,SAASD,EAAME,MACxB,EACD,QAAAC,CAASH,GACLlC,EAAMqC,SAASH,EAAMI,MACxB,EACD,QAAAC,CAASL,GACDlC,EAAMuC,UACNvC,EAAMuC,SAASL,EAAMI,QAIrC,sBCb4B,KAAMtC,KAE1Be,EAAAC,cAAClB,EAAG,CAACa,UAAW,gBAAkBX,EAAMW,WAAa,IAChDV,IAAKD,EAAMC,IACXC,KAAMF,EAAME,MAAQ,OACrBa,EAACC,cAAAC,EAAe,IAAAjB,IAChBe,EAACC,cAAAwB,EAAAA,cAAuBC,MAAOzC,EAAM0C,aAAe,IAC5BC,UAAW3C,EAAM4C,UACjBC,UAAW7C,EAAM8C,WAAa,EAC9BC,YAAa/C,EAAMgD,MAAQ,GAC3BV,MAAOtC,EAAMsC,SACThB,EAAetB,MACfgC,EAAkBhC,KAC9Ce,EAAgBC,cAAA,MAAA,CAAA,YAAAhB,EAAM0B,KACjBZ,GAAG"}
@@ -0,0 +1,149 @@
1
+ import React, { CSSProperties } from 'react';
2
+
3
+ /**
4
+ * Define as tipagens `default` de todos os componentes do pacote
5
+ */
6
+ interface ApiComponentProps {
7
+
8
+ /**
9
+ * Propriedade para identificar o id do elemento
10
+ */
11
+ id?: string
12
+
13
+ /**
14
+ * Adiciona no atributo `class` do componente o valor atribuido nessa propriedade
15
+ */
16
+ className?: string
17
+
18
+ /**
19
+ * Define o tamanho da box do componente de acordo com o valores abaixo
20
+ */
21
+ size?: "5" | "10" | "12-5" | "15" | "17-5" | "20" | "22-5" | "25" | "30" | "33" | "35" | "40" | "45" | "50" | "55" | "60" | "65" | "70" | "75" | "80" | "85" | "90" | "95" | "100"
22
+
23
+ /**
24
+ * Define as propriedades css do component `style`
25
+ */
26
+ css?: CSSProperties
27
+ }
28
+
29
+ /**
30
+ * Define as tipagens ´default´ de tidos os componente de entrada de dados do pacote
31
+ */
32
+ interface ApiFieldComponentProps {
33
+
34
+ /**
35
+ * Define o id do campo
36
+ */
37
+ id?: string
38
+
39
+ /**
40
+ * Define o nome do campo
41
+ */
42
+ name?: string
43
+
44
+ /**
45
+ * Define o rótulo do campo
46
+ */
47
+ label?: string
48
+
49
+ /**
50
+ * Define o espaço reservador do campo
51
+ */
52
+ placeholder?: string
53
+
54
+ /**
55
+ * Define o icone do campo
56
+ */
57
+ icon?: string
58
+
59
+ /**
60
+ * Define o prefixo dos icones do pacote
61
+ */
62
+ iconPrefix?: "bi bi-" | "pi pi-"
63
+
64
+ /**
65
+ * Define se campo é obrigatório
66
+ */
67
+ required?: boolean
68
+
69
+ /**
70
+ * Desabilita a entrada de dados no campo
71
+ */
72
+ disabled?: boolean
73
+ }
74
+
75
+ interface AutocompleteDataProps {
76
+ /**
77
+ * Define o identificador do objeto
78
+ */
79
+ code: any;
80
+
81
+ /**
82
+ * Define o label do objeto
83
+ */
84
+ name: string;
85
+ }
86
+
87
+ interface AutocompleteProps extends ApiComponentProps, ApiFieldComponentProps {
88
+
89
+ /**
90
+ * Valor padrão
91
+ */
92
+ value: any;
93
+
94
+ /**
95
+ * Dados a ser sugerido
96
+ */
97
+ data: AutocompleteDataProps[]
98
+
99
+ /**
100
+ * Define o template para cada item do autocomplete
101
+ */
102
+ dataTemplate?: (value: AutocompleteDataProps) => React.ReactNode;
103
+
104
+ /**
105
+ * A propriedade `appendTo` determina onde a instância do painel de sobreposição deve ser montado.
106
+ */
107
+ appendTo?: "self" | HTMLElement;
108
+
109
+ /**
110
+ * Define o tempo para realizar a pesquisa da sugestão de dados.
111
+ */
112
+ searchDelay?: number
113
+
114
+ /**
115
+ * Define a quantidade minima de caracter para realizar a pesquisa da sugestão de dados.
116
+ */
117
+ searchMin?: number
118
+
119
+ /**
120
+ * Define a quantidade máxima de caracter para realizar a pesquisa da sugestão de dados.
121
+ */
122
+ searchMax?: number
123
+
124
+ /**
125
+ * Retorno de chamada a ser invocado quando o valor de preenchimento automático for alterado.
126
+ */
127
+ onChange(value: any): void;
128
+
129
+ /**
130
+ * Retorno de chamada para invocar a busca por sugestões.
131
+ */
132
+ onSearch(query: string): void;
133
+
134
+ /**
135
+ * Executa após a seleção do objeto do autocomplete.
136
+ */
137
+ onSelect?: (value: any) => void;
138
+ }
139
+
140
+ /**
141
+ * Componente - `Autocomplete`
142
+ *
143
+ * AutoComplete é um componente de entrada que fornece sugestões em tempo real enquanto é digitado
144
+ */
145
+ declare const Autocomplete: ({ ...props }: AutocompleteProps) => React.JSX.Element;
146
+
147
+ type IAutocompleteDataProps = AutocompleteDataProps;
148
+
149
+ export { Autocomplete, type IAutocompleteDataProps };
@@ -0,0 +1,2 @@
1
+ import e from"react";import{classNames as a}from"primereact/utils";import{AutoComplete as t}from"primereact/autocomplete";const i=({children:t,...i})=>{const r={size:`box-size-${i.size??"100"}`,direction:`box-direction-${i.direction??"row"}`,justify:void 0===i.justify?"":Array.isArray(i.justify)?i.justify?.join(" "):i.justify,align:void 0===i.align?"":Array.isArray(i.align)?i.align?.join(" "):i.align},n={className:a(["box",i.className??"",r.size,r.direction,r.justify,r.align]),style:i.css,id:i.id};return e.createElement("div",{...n},t)},r=({iconPrefix:a="bi bi-",...t})=>t.label&&e.createElement("p",{className:"form-label"},t.icon&&e.createElement("i",{className:a+t.icon+" me-1"}),t.label,t.required&&e.createElement("span",{className:"text-danger"},"*"));function n(e){const a=e.dataTemplate?{itemTemplate:e.dataTemplate}:{};return{id:e.id,field:"name",name:e.name,forceSelection:!0,style:e.css??{},disabled:e.disabled,required:e.required,placeholder:e.placeholder,inputClassName:"form-control",appendTo:e.appendTo??"self",className:"autocomplete-primereact w-100",...a}}function l(e){return{completeMethod(a){e.onSearch(a.query)},onChange(a){e.onChange(a.value)},onSelect(a){e.onSelect&&e.onSelect(a.value)}}}const s=({...a})=>e.createElement(i,{className:"autocomplete"+(a.className??""),css:a.css,size:a.size??"100"},e.createElement(r,{...a}),e.createElement(t,{delay:a.searchDelay??500,maxLength:a.searchMax,minLength:a.searchMin??1,suggestions:a.data??[],value:a.value,...n(a),...l(a)}),e.createElement("div",{"data-name":a.name,id:"j_feedback"}));export{s as Autocomplete};
2
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx","../../src/api/input.tsx","../../src/autocomplete/core/core.tsx","../../src/autocomplete/core/event.tsx","../../src/autocomplete/autocomplete.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { AutocompleteProps } from \"../types\";\r\nimport { AutoCompleteProps as AutoCompletePropsPrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configurações do modo principal do autocomplete.\r\n */\r\nexport function autocompleCore(\r\n props: AutocompleteProps\r\n): Partial<AutoCompletePropsPrimeReact> {\r\n\r\n const itemTemplate: Partial<AutoCompletePropsPrimeReact> = props.dataTemplate\r\n ? { itemTemplate: props.dataTemplate }\r\n : {};\r\n return {\r\n id: props.id,\r\n field: \"name\",\r\n name: props.name,\r\n forceSelection: true,\r\n style: props.css ?? {},\r\n disabled: props.disabled,\r\n required: props.required,\r\n placeholder: props.placeholder,\r\n inputClassName: \"form-control\",\r\n appendTo: props.appendTo ?? \"self\",\r\n className: \"autocomplete-primereact w-100\",\r\n ...itemTemplate\r\n };\r\n}","import { AutocompleteProps } from \"../types\";\r\nimport {\r\n AutoCompleteChangeEvent,\r\n AutoCompleteCompleteEvent,\r\n AutoCompleteProps as AutoCompletePropsPrimeReact, AutoCompleteSelectEvent\r\n} from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * Define as configuração de evento do componente\r\n */\r\nexport function autocompleteEvent(props: AutocompleteProps): Partial<AutoCompletePropsPrimeReact> {\r\n return {\r\n completeMethod(event: AutoCompleteCompleteEvent) {\r\n props.onSearch(event.query);\r\n },\r\n onChange(event: AutoCompleteChangeEvent) {\r\n props.onChange(event.value);\r\n },\r\n onSelect(event: AutoCompleteSelectEvent) {\r\n if (props.onSelect) {\r\n props.onSelect(event.value);\r\n }\r\n }\r\n };\r\n}","import React from \"react\";\r\nimport { Box } from \"../box\";\r\nimport { InputLabel } from \"../api\";\r\nimport { AutocompleteProps } from \"./types\";\r\nimport { autocompleCore } from \"./core/core\";\r\nimport { autocompleteEvent } from \"./core/event\";\r\nimport { AutoComplete as AutoCompletePrimeReact } from \"primereact/autocomplete\";\r\n\r\n/**\r\n * Componente - `Autocomplete`\r\n *\r\n * AutoComplete é um componente de entrada que fornece sugestões em tempo real enquanto é digitado\r\n */\r\nexport const Autocomplete = ({ ...props }: AutocompleteProps) => {\r\n return (\r\n <Box className={\"autocomplete\" + (props.className ?? \"\")}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <AutoCompletePrimeReact delay={props.searchDelay ?? 500}\r\n maxLength={props.searchMax}\r\n minLength={props.searchMin ?? 1}\r\n suggestions={props.data ?? []}\r\n value={props.value}\r\n {...autocompleCore(props)}\r\n {...autocompleteEvent(props)}/>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","InputLabel","iconPrefix","label","icon","required","autocompleCore","itemTemplate","dataTemplate","field","name","forceSelection","disabled","placeholder","inputClassName","appendTo","autocompleteEvent","completeMethod","event","onSearch","query","onChange","value","onSelect","Autocomplete","AutoCompletePrimeReact","delay","searchDelay","maxLength","searchMax","minLength","searchMin","suggestions","data"],"mappings":"0HAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe,EChCjCkB,EAAa,EAAGC,aAAa,YAAalB,KAM5CA,EAAMmB,OACNJ,EAAGC,cAAA,IAAA,CAAAL,UAAU,cACXX,EAAMoB,MAAQL,EAAAC,cAAA,IAAA,CAAGL,UAAWO,EAAalB,EAAMoB,KAAO,UACtDpB,EAAMmB,MACNnB,EAAMqB,UAAYN,EAAAC,cAAA,OAAA,CAAML,UAAU,eAAsB,MCX/D,SAAUW,EACZtB,GAGA,MAAMuB,EAAqDvB,EAAMwB,aAC3D,CAAED,aAAcvB,EAAMwB,cACtB,CAAE,EACR,MAAO,CACHV,GAAId,EAAMc,GACVW,MAAO,OACPC,KAAM1B,EAAM0B,KACZC,gBAAgB,EAChBd,MAAOb,EAAMC,KAAO,CAAE,EACtB2B,SAAU5B,EAAM4B,SAChBP,SAAUrB,EAAMqB,SAChBQ,YAAa7B,EAAM6B,YACnBC,eAAgB,eAChBC,SAAU/B,EAAM+B,UAAY,OAC5BpB,UAAW,mCACRY,EAEX,CCjBM,SAAUS,EAAkBhC,GAC9B,MAAO,CACH,cAAAiC,CAAeC,GACXlC,EAAMmC,SAASD,EAAME,MACxB,EACD,QAAAC,CAASH,GACLlC,EAAMqC,SAASH,EAAMI,MACxB,EACD,QAAAC,CAASL,GACDlC,EAAMuC,UACNvC,EAAMuC,SAASL,EAAMI,QAIrC,CCba,MAAAE,EAAe,KAAMxC,KAE1Be,EAAAC,cAAClB,EAAG,CAACa,UAAW,gBAAkBX,EAAMW,WAAa,IAChDV,IAAKD,EAAMC,IACXC,KAAMF,EAAME,MAAQ,OACrBa,EAACC,cAAAC,EAAe,IAAAjB,IAChBe,EAACC,cAAAyB,GAAuBC,MAAO1C,EAAM2C,aAAe,IAC5BC,UAAW5C,EAAM6C,UACjBC,UAAW9C,EAAM+C,WAAa,EAC9BC,YAAahD,EAAMiD,MAAQ,GAC3BX,MAAOtC,EAAMsC,SACThB,EAAetB,MACfgC,EAAkBhC,KAC9Ce,EAAgBC,cAAA,MAAA,CAAA,YAAAhB,EAAM0B,KACjBZ,GAAG"}
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "./index.cjs.js",
3
+ "module": "./index.esm.js",
4
+ "types": "./index.d.ts"
5
+ }
package/box/_box.scss CHANGED
@@ -1,30 +1,3 @@
1
- :root {
2
- --box-size-5: 5%;
3
- --box-size-10: 10%;
4
- --box-size-12-5: 12.5%;
5
- --box-size-15: 15%;
6
- --box-size-17-5: 17.5%;
7
- --box-size-20: 20%;
8
- --box-size-22-5: 25.5%;
9
- --box-size-25: 25%;
10
- --box-size-30: 30%;
11
- --box-size-33: 33.3333%;
12
- --box-size-35: 35%;
13
- --box-size-40: 40%;
14
- --box-size-45: 45%;
15
- --box-size-50: 50%;
16
- --box-size-55: 55%;
17
- --box-size-60: 60%;
18
- --box-size-65: 65%;
19
- --box-size-70: 70%;
20
- --box-size-75: 75%;
21
- --box-size-80: 80%;
22
- --box-size-85: 85%;
23
- --box-size-90: 90%;
24
- --box-size-95: 95%;
25
- --box-size-100: 100%;
26
- }
27
-
28
1
  $box-sizes: (
29
2
  '5': 5%,
30
3
  '10': 10%,
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"8EAmBmB,EAAGA,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAAA,WAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EACzB"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"8EAmBmB,EAAGA,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAAA,WAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe"}
package/box/index.d.ts CHANGED
@@ -33,7 +33,7 @@ type AlignItemsProps =
33
33
  | "align-items-xxl-end"
34
34
  | "align-items-xxl-center"
35
35
  | "align-items-xxl-baseline"
36
- | "align-items-xxl-stretch"
36
+ | "align-items-xxl-stretch";
37
37
 
38
38
  /**
39
39
  * Realiza o mapeamento dos valores da propriedades css `justify-content`
@@ -74,7 +74,7 @@ type JustifyContentProps =
74
74
  | "justify-content-xxl-center"
75
75
  | "justify-content-xxl-between"
76
76
  | "justify-content-xxl-around"
77
- | "justify-content-xxl-evenly"
77
+ | "justify-content-xxl-evenly";
78
78
 
79
79
  /**
80
80
  * Define as tipagens `default` de todos os componentes do pacote
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"mEAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EACzB"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement"],"mappings":"mEAmBO,MAAMA,EAAM,EAAGC,cAAaC,MAC/B,MAAMC,EAAM,CACRC,KAAM,YAAaF,EAAME,MAAQ,QACjCC,UAAW,iBAAiBH,EAAMG,WAAa,QAC/CC,aAA2BC,IAAlBL,EAAMI,QAAwB,GAAKE,MAAMC,QAAQP,EAAMI,SAAWJ,EAAMI,SAASI,KAAK,KAAOR,EAAMI,QAC5GK,WAAuBJ,IAAhBL,EAAMS,MAAsB,GAAKH,MAAMC,QAAQP,EAAMS,OAAST,EAAMS,OAAOD,KAAK,KAAOR,EAAMS,OAGlGC,EAA2D,CAC7DC,UAAWC,EAAW,CAClB,MACAZ,EAAMW,WAAa,GACnBV,EAAIC,KACJD,EAAIE,UACJF,EAAIG,QACJH,EAAIQ,QAERI,MAAOb,EAAMC,IACba,GAAId,EAAMc,IAGd,OACIC,EAASC,cAAA,MAAA,IAAAN,GAAcX,EAAe"}
@@ -1,25 +1,15 @@
1
- :root {
2
- --editor-font-size: 1em;
3
- --editor-border-radius: 3px;
4
- --editor-background: transparent;
5
- --editor-border-color: var(--bs-gray-500, #adb5bd);
6
- --editor-menu-font-size: 1.2em;
7
-
8
- --editor-active-menu-color: var(--bs-primary, #0D6EFD);
9
- }
10
-
11
1
  .editor-container {
12
2
  position: relative;
13
3
  width: 100%;
14
4
  display: flex;
15
5
  flex-wrap: wrap;
16
- border-radius: var(--editor-border-radius);
17
- border: 1px solid var(--editor-border-color);
6
+ border-radius: $editorToolbarBorderRadius;
7
+ border: 1px solid #{$shade300};
18
8
 
19
9
  .editor {
20
10
  width: 100%;
21
- font-size: var(--editor-font-size);
22
- background: var(--editor-background);
11
+ font-size: $fontSize;
12
+ background: $editorContentBg;
23
13
  }
24
14
 
25
15
  .editor-menu {
@@ -28,7 +18,7 @@
28
18
  width: 100%;
29
19
  padding: 2.5px;
30
20
  align-items: center;
31
- border-bottom: 1px solid var(--editor-border-color);
21
+ border-bottom: 1px solid #{$shade300};
32
22
 
33
23
  &-group {
34
24
  display: flex;
@@ -36,12 +26,13 @@
36
26
  }
37
27
 
38
28
  &-item {
29
+ color: $editorToolbarIconColor;
39
30
  margin: auto 5px;
40
- font-size: var(--editor-menu-font-size);
31
+ font-size: calc($fontSize * 1.2);
41
32
  }
42
33
 
43
34
  &-item.active {
44
- color: var(--editor-active-menu-color);
35
+ color: $editorIconActiveColor;
45
36
  }
46
37
  }
47
38
 
@@ -53,7 +44,7 @@
53
44
 
54
45
  .editor-menu::-webkit-scrollbar-thumb {
55
46
  border-radius: 5px;
56
- background: var(--editor-border-color);
47
+ background: $scrollThumbBg;
57
48
  border: none;
58
49
  }
59
50
 
@@ -93,8 +84,8 @@
93
84
  padding: 10px;
94
85
 
95
86
  a {
96
- color: var(--bs-primary);
97
- text-decoration: underline solid var(--bs-primary);
87
+ color: $primaryColor;
88
+ text-decoration: underline solid $primaryColor;
98
89
  }
99
90
 
100
91
  code {
@@ -110,7 +101,7 @@
110
101
  }
111
102
 
112
103
  .tiptap.ProseMirror-focused {
113
- border-radius: var(--editor-border-radius, 3px);
104
+ border-radius: $editorToolbarBorderRadius;
114
105
  outline: none !important;
115
106
  }
116
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/editor/core/text.tsx","../../src/editor/core/link.tsx","../../src/editor/core/bold.tsx","../../src/editor/core/code.tsx","../../src/editor/core/color.tsx","../../src/editor/core/image.tsx","../../src/editor/core/italic.tsx","../../src/editor/core/strike.tsx","../../src/editor/core/orderlist.tsx","../../src/editor/core/underline.tsx","../../src/editor/core/highlight.tsx","../../src/editor/core/bulletlist.tsx","../../src/editor/core/index.tsx","../../src/api/input.tsx","../../src/editor/const.ts","../../src/editor/editor.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Text`\r\n * Extensão para formatar o texto com tamanho específico\r\n */\r\nexport const Text = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 1 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 1 }).run();\r\n }}><i className=\"bi bi-type-h1\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 2 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 2 }).run();\r\n }}><i className=\"bi bi-type-h2\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 3 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 3 }).run();\r\n }}><i className=\"bi bi-type-h3\"/></a>\r\n </>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Link`\r\n * Extensão para formatar adicionar link no documento\r\n */\r\nexport const Link = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [open, setOpen] = useState<boolean>(false);\r\n const [link, setLink] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n setLink(\"\");\r\n }, [open]);\r\n\r\n function handleLink() {\r\n if (link === \"\") {\r\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\r\n } else {\r\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: link }).run();\r\n }\r\n setOpen(false);\r\n }\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n if (!editor.isActive(\"link\")) {\r\n setOpen(!open);\r\n } else {\r\n editor.chain().focus().unsetLink().run();\r\n }\r\n }}><i className=\"bi bi-link\"/></a>\r\n {open && <div className=\"editor-link\">\r\n <input className=\"form-control form-control-sm\"\r\n placeholder=\"https://example.com.br\"\r\n style={{ fontSize: \".8em\", flex: 1 }}\r\n type=\"text\"\r\n value={link}\r\n onChange={event => setLink(event.target.value)}/>\r\n <a className=\"text-primary ms-2\"\r\n href=\"#\"\r\n style={{ fontSize: \".8em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n handleLink();\r\n }}><i className=\"bi bi-save me-1\"/>Save</a>\r\n </div>}\r\n </>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bold`\r\n * Extensão para renderizar texto em negrito\r\n */\r\nexport const Bold = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bold\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBold().run();\r\n }}><i className=\"bi bi-type-bold\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Code`\r\n * Extensão para renderizar texto em formato de código\r\n */\r\nexport const Code = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"code\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleCode().run();\r\n }}><i className=\"bi bi-code-slash\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Color`\r\n * Extensão para formatar o texto com cor especifica\r\n */\r\nexport const Color = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <input\r\n style={{\r\n width: \"22px\",\r\n height: \"20px\",\r\n borderRadius: \"5px\",\r\n margin: \"auto 2.5px\",\r\n border: \"2px solid var(--editor-border-color)\",\r\n }}\r\n type=\"color\"\r\n value={editor.getAttributes(\"textStyle\").color ?? \"#000000\"}\r\n onChange={event => editor.chain().focus().setColor(event.target.value).run()}/>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Image`\r\n * Extensão para adicionar imagem no documento\r\n */\r\nexport const Image = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [file, setFile] = useState<any>(null);\r\n\r\n const handlePaste = (event: any) => {\r\n const items = (event.clipboardData || event.originalEvent.clipboardData).items;\r\n for (const item of items) {\r\n if (item.type.indexOf(\"image\") === 0) {\r\n const file = item.getAsFile();\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n editor.chain().focus().setImage({ src: event?.target?.result as string }).run();\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (editor.view.dom.parentNode !== null && active) {\r\n editor.view.dom.parentNode.addEventListener(\"paste\", handlePaste);\r\n }\r\n return () => {\r\n editor.view.dom.parentNode?.removeEventListener(\"paste\", handlePaste);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (file?.name !== undefined) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n editor.chain().focus().setImage({ src: reader.result as string }).run();\r\n };\r\n }\r\n }, [file]);\r\n\r\n return active && (\r\n <div className=\"editor-image\">\r\n <input accept=\"image/png, image/jpeg\"\r\n name=\"editor-image\"\r\n type=\"file\"\r\n onChange={event => setFile(event.target.files?.[0])}/>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n }}><i className=\"bi bi-image\"/></a>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Italic`\r\n * Extensão para renderizar texto em itálico\r\n */\r\nexport const Italic = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"italic\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleItalic().run();\r\n }}><i className=\"bi bi-type-italic\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Strike`\r\n * Extensão para renderizar texto em strike text\r\n */\r\nexport const Strike = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"strike\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleStrike().run();\r\n }}><i className=\"bi bi-type-strikethrough\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Orderlist`\r\n * Extensão para renderizar texto em lista ordenada\r\n */\r\nexport const Orderlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"orderedList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleOrderedList().run();\r\n }}><i className=\"bi bi-list-ol\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Underline`\r\n * Extensão para renderizar texto em underline text\r\n */\r\nexport const Underline = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"underline\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleUnderline().run();\r\n }}><i className=\"bi bi-type-underline\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Highlight`\r\n * Extensão para marcar texto no formato de marca texto\r\n */\r\nexport const Highlight = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"highlight\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHighlight().run();\r\n }}><i className=\"bi bi-highlighter\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bulletlist`\r\n * Extensão para renderizar texto em lista\r\n */\r\nexport const Bulletlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bulletList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBulletList().run();\r\n }}><i className=\"bi bi-list-task\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { Text } from \"./text\";\r\nimport { Link } from \"./link\";\r\nimport { Bold } from \"./bold\";\r\nimport { Code } from \"./code\";\r\nimport { Color } from \"./color\";\r\nimport { Image } from \"./image\";\r\nimport { Italic } from \"./italic\";\r\nimport { Strike } from \"./strike\";\r\nimport { Orderlist } from \"./orderlist\";\r\nimport { Underline } from \"./underline\";\r\nimport { Highlight } from \"./highlight\";\r\nimport { Bulletlist } from \"./bulletlist\";\r\nimport { EditorCoreProps, EditorOptionsProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Menu`\r\n * Componente que renderiza todas as opções de menu do componente\r\n */\r\nexport const EditorMenu = ({ editor, options }: EditorCoreProps & { options: EditorOptionsProps }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <div className=\"editor-menu\">\r\n <div className=\"editor-menu-group\">\r\n <Text active={options.text}\r\n editor={editor}/>\r\n <Bold active={options.bold}\r\n editor={editor}/>\r\n <Italic active={options.italic}\r\n editor={editor}/>\r\n <Color active={options.color}\r\n editor={editor}/>\r\n <Strike active={options.strike}\r\n editor={editor}/>\r\n <Underline active={options.underline}\r\n editor={editor}/>\r\n <Code active={options.code}\r\n editor={editor}/>\r\n <Highlight active={options.highlight}\r\n editor={editor}/>\r\n </div>\r\n <div className=\"editor-menu-group\">\r\n <Bulletlist active={options.bulletlist}\r\n editor={editor}/>\r\n <Orderlist active={options.orderlist}\r\n editor={editor}/>\r\n <Link active={options.link}\r\n editor={editor}/>\r\n <Image active={options.image}\r\n editor={editor}/>\r\n </div>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { EditorOptionsProps } from \"./types\";\r\n\r\nexport const editorBasic: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: false,\r\n underline: false,\r\n code: false,\r\n highlight: false,\r\n bulletlist: false,\r\n orderlist: false,\r\n link: false,\r\n image: false\r\n};\r\n\r\nexport const editorFull: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: true,\r\n underline: true,\r\n code: true,\r\n highlight: true,\r\n bulletlist: true,\r\n orderlist: true,\r\n link: true,\r\n image: true\r\n};","import { Box } from \"../box\";\r\nimport { EditorMenu } from \"./core\";\r\nimport { InputLabel } from \"../api\";\r\nimport { EditorProps } from \"./types\";\r\nimport Link from \"@tiptap/extension-link\";\r\nimport Image from \"@tiptap/extension-image\";\r\nimport StarterKit from \"@tiptap/starter-kit\";\r\nimport { Color } from \"@tiptap/extension-color\";\r\nimport { editorBasic, editorFull } from \"./const\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport Underline from \"@tiptap/extension-underline\";\r\nimport Highlight from \"@tiptap/extension-highlight\";\r\nimport TextStyle from \"@tiptap/extension-text-style\";\r\nimport { EditorContent as EditorTipTap, useEditor } from \"@tiptap/react\";\r\n\r\n/**\r\n * Componente - `Editor`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar container de edição de texto.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const Editor = ({ options = \"basic\", iconPrefix = \"bi bi-\", ...props }: EditorProps) => {\r\n const [edition, setEdition] = useState(false);\r\n const editor = useEditor({\r\n extensions: [\r\n StarterKit,\r\n Underline,\r\n Highlight,\r\n Color,\r\n TextStyle,\r\n Link.configure({\r\n validate: (href) => /^https?:\\/\\//.test(href),\r\n HTMLAttributes: {\r\n rel: \"\"\r\n }\r\n }),\r\n Image.configure({\r\n allowBase64: true\r\n })\r\n ],\r\n editable: !props.disabled,\r\n content: props.value ?? \"\",\r\n onFocus: () => setEdition(true),\r\n onBlur: () => setEdition(false),\r\n onUpdate: ({ editor }) => {\r\n props.onChange(editor.getHTML());\r\n }\r\n });\r\n\r\n if (!editor) {\r\n console.error(\"Não foi possível realizar o carregamento do editor de texto.\");\r\n return null;\r\n }\r\n\r\n useEffect(() => {\r\n if (editor && !edition) {\r\n editor?.commands.setContent(props.value);\r\n }\r\n }, [props.value]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className={props.className}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <div className=\"editor-container\">\r\n {!props.disabled\r\n && <EditorMenu editor={editor}\r\n options={options === \"basic\" ? editorBasic : options === \"full\" ? editorFull : options}/>}\r\n <EditorTipTap className=\"editor\"\r\n disabled={props.disabled}\r\n editor={editor}\r\n id={props.id}\r\n name={props.name}\r\n style={{ minHeight: (props.height ?? 100) + \"px\" }}/>\r\n </div>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default Editor;"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","Text","editor","active","Fragment","isActive","level","href","fontSize","onClick","event","preventDefault","chain","focus","toggleHeading","run","Link","open","setOpen","useState","link","setLink","useEffect","unsetLink","placeholder","flex","type","value","onChange","target","extendMarkRange","Bold","toggleBold","Code","toggleCode","Color","width","height","borderRadius","margin","border","getAttributes","color","setColor","Image","file","setFile","handlePaste","items","clipboardData","originalEvent","item","indexOf","getAsFile","reader","FileReader","onload","setImage","src","result","readAsDataURL","view","dom","parentNode","addEventListener","removeEventListener","name","accept","files","Italic","toggleItalic","Strike","toggleStrike","Orderlist","toggleOrderedList","Underline","toggleUnderline","Highlight","toggleHighlight","Bulletlist","toggleBulletList","EditorMenu","options","text","bold","italic","strike","underline","code","highlight","bulletlist","orderlist","image","InputLabel","iconPrefix","label","icon","required","editorBasic","editorFull","edition","setEdition","useEditor","extensions","StarterKit","TextStyle","configure","validate","test","HTMLAttributes","rel","allowBase64","editable","disabled","content","onFocus","onBlur","onUpdate","getHTML","commands","setContent","EditorTipTap","minHeight","console","error"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/editor/core/text.tsx","../../src/editor/core/link.tsx","../../src/editor/core/bold.tsx","../../src/editor/core/code.tsx","../../src/editor/core/color.tsx","../../src/editor/core/image.tsx","../../src/editor/core/italic.tsx","../../src/editor/core/strike.tsx","../../src/editor/core/orderlist.tsx","../../src/editor/core/underline.tsx","../../src/editor/core/highlight.tsx","../../src/editor/core/bulletlist.tsx","../../src/editor/core/index.tsx","../../src/api/input.tsx","../../src/editor/const.ts","../../src/editor/editor.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Text`\r\n * Extensão para formatar o texto com tamanho específico\r\n */\r\nexport const Text = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 1 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 1 }).run();\r\n }}><i className=\"bi bi-type-h1\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 2 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 2 }).run();\r\n }}><i className=\"bi bi-type-h2\"/></a>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"heading\", { level: 3 }) ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHeading({ level: 3 }).run();\r\n }}><i className=\"bi bi-type-h3\"/></a>\r\n </>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Link`\r\n * Extensão para formatar adicionar link no documento\r\n */\r\nexport const Link = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [open, setOpen] = useState<boolean>(false);\r\n const [link, setLink] = useState<string>(\"\");\r\n\r\n useEffect(() => {\r\n setLink(\"\");\r\n }, [open]);\r\n\r\n function handleLink() {\r\n if (link === \"\") {\r\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\r\n } else {\r\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: link }).run();\r\n }\r\n setOpen(false);\r\n }\r\n\r\n return active && (\r\n <>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n if (!editor.isActive(\"link\")) {\r\n setOpen(!open);\r\n } else {\r\n editor.chain().focus().unsetLink().run();\r\n }\r\n }}><i className=\"bi bi-link\"/></a>\r\n {open && <div className=\"editor-link\">\r\n <input className=\"form-control form-control-sm\"\r\n placeholder=\"https://example.com.br\"\r\n style={{ fontSize: \".8em\", flex: 1 }}\r\n type=\"text\"\r\n value={link}\r\n onChange={event => setLink(event.target.value)}/>\r\n <a className=\"text-primary ms-2\"\r\n href=\"#\"\r\n style={{ fontSize: \".8em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n handleLink();\r\n }}><i className=\"bi bi-save me-1\"/>Save</a>\r\n </div>}\r\n </>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bold`\r\n * Extensão para renderizar texto em negrito\r\n */\r\nexport const Bold = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bold\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBold().run();\r\n }}><i className=\"bi bi-type-bold\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Code`\r\n * Extensão para renderizar texto em formato de código\r\n */\r\nexport const Code = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"code\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleCode().run();\r\n }}><i className=\"bi bi-code-slash\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Color`\r\n * Extensão para formatar o texto com cor especifica\r\n */\r\nexport const Color = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <input\r\n style={{\r\n width: \"22px\",\r\n height: \"20px\",\r\n borderRadius: \"5px\",\r\n margin: \"auto 2.5px\",\r\n border: \"2px solid var(--editor-border-color)\",\r\n }}\r\n type=\"color\"\r\n value={editor.getAttributes(\"textStyle\").color ?? \"#000000\"}\r\n onChange={event => editor.chain().focus().setColor(event.target.value).run()}/>\r\n );\r\n};","import { EditorCoreProps } from \"../types\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Core - `Image`\r\n * Extensão para adicionar imagem no documento\r\n */\r\nexport const Image = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n const [file, setFile] = useState<any>(null);\r\n\r\n const handlePaste = (event: any) => {\r\n const items = (event.clipboardData || event.originalEvent.clipboardData).items;\r\n for (const item of items) {\r\n if (item.type.indexOf(\"image\") === 0) {\r\n const file = item.getAsFile();\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n editor.chain().focus().setImage({ src: event?.target?.result as string }).run();\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (editor.view.dom.parentNode !== null && active) {\r\n editor.view.dom.parentNode.addEventListener(\"paste\", handlePaste);\r\n }\r\n return () => {\r\n editor.view.dom.parentNode?.removeEventListener(\"paste\", handlePaste);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (file?.name !== undefined) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n editor.chain().focus().setImage({ src: reader.result as string }).run();\r\n };\r\n }\r\n }, [file]);\r\n\r\n return active && (\r\n <div className=\"editor-image\">\r\n <input accept=\"image/png, image/jpeg\"\r\n name=\"editor-image\"\r\n type=\"file\"\r\n onChange={event => setFile(event.target.files?.[0])}/>\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"link\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n }}><i className=\"bi bi-image\"/></a>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Italic`\r\n * Extensão para renderizar texto em itálico\r\n */\r\nexport const Italic = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"italic\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleItalic().run();\r\n }}><i className=\"bi bi-type-italic\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Strike`\r\n * Extensão para renderizar texto em strike text\r\n */\r\nexport const Strike = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"strike\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleStrike().run();\r\n }}><i className=\"bi bi-type-strikethrough\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Orderlist`\r\n * Extensão para renderizar texto em lista ordenada\r\n */\r\nexport const Orderlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"orderedList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleOrderedList().run();\r\n }}><i className=\"bi bi-list-ol\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Underline`\r\n * Extensão para renderizar texto em underline text\r\n */\r\nexport const Underline = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"underline\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleUnderline().run();\r\n }}><i className=\"bi bi-type-underline\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Highlight`\r\n * Extensão para marcar texto no formato de marca texto\r\n */\r\nexport const Highlight = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"highlight\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n style={{ fontSize: \".975em\" }}\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleHighlight().run();\r\n }}><i className=\"bi bi-highlighter\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { EditorCoreProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Bulletlist`\r\n * Extensão para renderizar texto em lista\r\n */\r\nexport const Bulletlist = ({ editor, active }: EditorCoreProps & { active: boolean }) => {\r\n return active && (\r\n <a className={\"editor-menu-item\" + (editor.isActive(\"bulletList\") ? \" active\" : \"\")}\r\n href=\"#\"\r\n onClick={event => {\r\n event.preventDefault();\r\n editor.chain().focus().toggleBulletList().run();\r\n }}><i className=\"bi bi-list-task\"/></a>\r\n );\r\n};","import React from \"react\";\r\nimport { Text } from \"./text\";\r\nimport { Link } from \"./link\";\r\nimport { Bold } from \"./bold\";\r\nimport { Code } from \"./code\";\r\nimport { Color } from \"./color\";\r\nimport { Image } from \"./image\";\r\nimport { Italic } from \"./italic\";\r\nimport { Strike } from \"./strike\";\r\nimport { Orderlist } from \"./orderlist\";\r\nimport { Underline } from \"./underline\";\r\nimport { Highlight } from \"./highlight\";\r\nimport { Bulletlist } from \"./bulletlist\";\r\nimport { EditorCoreProps, EditorOptionsProps } from \"../types\";\r\n\r\n/**\r\n * Core - `Menu`\r\n * Componente que renderiza todas as opções de menu do componente\r\n */\r\nexport const EditorMenu = ({ editor, options }: EditorCoreProps & { options: EditorOptionsProps }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <div className=\"editor-menu\">\r\n <div className=\"editor-menu-group\">\r\n <Text active={options.text}\r\n editor={editor}/>\r\n <Bold active={options.bold}\r\n editor={editor}/>\r\n <Italic active={options.italic}\r\n editor={editor}/>\r\n <Color active={options.color}\r\n editor={editor}/>\r\n <Strike active={options.strike}\r\n editor={editor}/>\r\n <Underline active={options.underline}\r\n editor={editor}/>\r\n <Code active={options.code}\r\n editor={editor}/>\r\n <Highlight active={options.highlight}\r\n editor={editor}/>\r\n </div>\r\n <div className=\"editor-menu-group\">\r\n <Bulletlist active={options.bulletlist}\r\n editor={editor}/>\r\n <Orderlist active={options.orderlist}\r\n editor={editor}/>\r\n <Link active={options.link}\r\n editor={editor}/>\r\n <Image active={options.image}\r\n editor={editor}/>\r\n </div>\r\n </div>\r\n );\r\n};","import React from \"react\";\r\nimport { ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de campo do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};","import { EditorOptionsProps } from \"./types\";\r\n\r\nexport const editorBasic: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: false,\r\n underline: false,\r\n code: false,\r\n highlight: false,\r\n bulletlist: false,\r\n orderlist: false,\r\n link: false,\r\n image: false\r\n};\r\n\r\nexport const editorFull: EditorOptionsProps = {\r\n text: true,\r\n bold: true,\r\n italic: true,\r\n color: true,\r\n strike: true,\r\n underline: true,\r\n code: true,\r\n highlight: true,\r\n bulletlist: true,\r\n orderlist: true,\r\n link: true,\r\n image: true\r\n};","import { Box } from \"../box\";\r\nimport { EditorMenu } from \"./core\";\r\nimport { InputLabel } from \"../api\";\r\nimport { EditorProps } from \"./types\";\r\nimport Link from \"@tiptap/extension-link\";\r\nimport Image from \"@tiptap/extension-image\";\r\nimport StarterKit from \"@tiptap/starter-kit\";\r\nimport { Color } from \"@tiptap/extension-color\";\r\nimport { editorBasic, editorFull } from \"./const\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport Underline from \"@tiptap/extension-underline\";\r\nimport Highlight from \"@tiptap/extension-highlight\";\r\nimport TextStyle from \"@tiptap/extension-text-style\";\r\nimport { EditorContent as EditorTipTap, useEditor } from \"@tiptap/react\";\r\n\r\n/**\r\n * Componente - `Editor`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar container de edição de texto.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const Editor = ({ options = \"basic\", iconPrefix = \"bi bi-\", ...props }: EditorProps) => {\r\n const [edition, setEdition] = useState(false);\r\n const editor = useEditor({\r\n extensions: [\r\n StarterKit,\r\n Underline,\r\n Highlight,\r\n Color,\r\n TextStyle,\r\n Link.configure({\r\n validate: (href) => /^https?:\\/\\//.test(href),\r\n HTMLAttributes: {\r\n rel: \"\"\r\n }\r\n }),\r\n Image.configure({\r\n allowBase64: true\r\n })\r\n ],\r\n editable: !props.disabled,\r\n content: props.value ?? \"\",\r\n onFocus: () => setEdition(true),\r\n onBlur: () => setEdition(false),\r\n onUpdate: ({ editor }) => {\r\n props.onChange(editor.getHTML());\r\n }\r\n });\r\n\r\n if (!editor) {\r\n console.error(\"Não foi possível realizar o carregamento do editor de texto.\");\r\n return null;\r\n }\r\n\r\n useEffect(() => {\r\n if (editor && !edition) {\r\n editor?.commands.setContent(props.value);\r\n }\r\n }, [props.value]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className={props.className}\r\n css={props.css}\r\n size={props.size ?? \"100\"}>\r\n <InputLabel {...props}/>\r\n <div className=\"editor-container\">\r\n {!props.disabled\r\n && <EditorMenu editor={editor}\r\n options={options === \"basic\" ? editorBasic : options === \"full\" ? editorFull : options}/>}\r\n <EditorTipTap className=\"editor\"\r\n disabled={props.disabled}\r\n editor={editor}\r\n id={props.id}\r\n name={props.name}\r\n style={{ minHeight: (props.height ?? 100) + \"px\" }}/>\r\n </div>\r\n <div data-name={props.name}\r\n id=\"j_feedback\"/>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default Editor;"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","Text","editor","active","Fragment","isActive","level","href","fontSize","onClick","event","preventDefault","chain","focus","toggleHeading","run","Link","open","setOpen","useState","link","setLink","useEffect","unsetLink","placeholder","flex","type","value","onChange","target","extendMarkRange","Bold","toggleBold","Code","toggleCode","Color","width","height","borderRadius","margin","border","getAttributes","color","setColor","Image","file","setFile","handlePaste","items","clipboardData","originalEvent","item","indexOf","getAsFile","reader","FileReader","onload","setImage","src","result","readAsDataURL","view","dom","parentNode","addEventListener","removeEventListener","name","accept","files","Italic","toggleItalic","Strike","toggleStrike","Orderlist","toggleOrderedList","Underline","toggleUnderline","Highlight","toggleHighlight","Bulletlist","toggleBulletList","EditorMenu","options","text","bold","italic","strike","underline","code","highlight","bulletlist","orderlist","image","InputLabel","iconPrefix","label","icon","required","editorBasic","editorFull","edition","setEdition","useEditor","extensions","StarterKit","TextStyle","configure","validate","test","HTMLAttributes","rel","allowBase64","editable","disabled","content","onFocus","onBlur","onUpdate","getHTML","commands","setContent","EditorTipTap","minHeight","console","error"],"mappings":"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"}