@yurikilian/lex4 1.8.0 → 1.10.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.
@@ -1 +1 @@
1
- {"version":3,"file":"block-mapper.d.ts","sourceRoot":"","sources":["../../src/ast/block-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,YAAY,EAQb,MAAM,SAAS,CAAC;AASjB,qDAAqD;AACrD,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAmBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,YAAY,CAiBtE;AAuED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,YAAY,EAAE,CAE5E"}
1
+ {"version":3,"file":"block-mapper.d.ts","sourceRoot":"","sources":["../../src/ast/block-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,YAAY,EAQb,MAAM,SAAS,CAAC;AASjB,qDAAqD;AACrD,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAmBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,YAAY,CAkBtE;AA2ED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,YAAY,EAAE,CAE5E"}
@@ -62,7 +62,7 @@ export interface HeadingAst {
62
62
  }
63
63
  export interface ListAst {
64
64
  type: 'list';
65
- listType: 'ordered' | 'unordered';
65
+ listType: 'ordered' | 'ordered-alpha' | 'unordered';
66
66
  items: ListItemAst[];
67
67
  }
68
68
  export interface ListItemAst {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/components/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AA4DtD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAmY3B,CAAC"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/components/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AA4DtD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAyZ3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VariablePanel.d.ts","sourceRoot":"","sources":["../../src/components/VariablePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAS9D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAgPA,CAAC"}
1
+ {"version":3,"file":"VariablePanel.d.ts","sourceRoot":"","sources":["../../src/components/VariablePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAS9D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAwQA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-style-snapshot.d.ts","sourceRoot":"","sources":["../../src/context/toolbar-style-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEjB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAuFlE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,WAAW,GAAE,WAAqC,GACjD,oBAAoB,CAuDtB"}
1
+ {"version":3,"file":"toolbar-style-snapshot.d.ts","sourceRoot":"","sources":["../../src/context/toolbar-style-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEjB,MAAM,SAAS,CAAC;AAIjB,OAAO,KAAK,EAAqB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAmIrF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,WAAW,GAAE,WAAqC,GACjD,oBAAoB,CAyDtB"}
@@ -3,11 +3,13 @@ import { ElementFormatType } from 'lexical';
3
3
  import { StoreApi } from 'zustand/vanilla';
4
4
  import { BlockType } from '../lexical/commands/block-types';
5
5
  import { FontFamily } from '../lexical/plugins/font-plugin';
6
+ export type ToolbarActiveList = 'none' | 'number' | 'bullet' | 'alpha';
6
7
  export interface ToolbarStyleSnapshot {
7
8
  blockType: BlockType;
8
9
  fontFamily: FontFamily;
9
10
  fontSize: number;
10
11
  alignment: ElementFormatType;
12
+ activeList: ToolbarActiveList;
11
13
  isBold: boolean;
12
14
  isItalic: boolean;
13
15
  isUnderline: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-style-store.d.ts","sourceRoot":"","sources":["../../src/context/toolbar-style-store.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAU5C,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,WAAW,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACtD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CACrC,eAAe,GAAE,oBAAqD,GACrE,QAAQ,CAAC,sBAAsB,CAAC,CAMlC;AAID,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAY7E,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,CAAC,GAAG,CAAC,CAMzF;AAED,wBAAgB,uBAAuB,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAM1E"}
1
+ {"version":3,"file":"toolbar-style-store.d.ts","sourceRoot":"","sources":["../../src/context/toolbar-style-store.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAW5C,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,WAAW,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACtD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CACrC,eAAe,GAAE,oBAAqD,GACrE,QAAQ,CAAC,sBAAsB,CAAC,CAMlC;AAID,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAY7E,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,CAAC,GAAG,CAAC,CAMzF;AAED,wBAAgB,uBAAuB,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAM1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/i18n/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,oBAAoB,EAAE,gBAuJlC,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/i18n/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,oBAAoB,EAAE,gBAyJlC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pt-BR.d.ts","sourceRoot":"","sources":["../../src/i18n/pt-BR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,kBAAkB,EAAE,gBAuJhC,CAAC"}
1
+ {"version":3,"file":"pt-BR.d.ts","sourceRoot":"","sources":["../../src/i18n/pt-BR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,kBAAkB,EAAE,gBAyJhC,CAAC"}
@@ -18,6 +18,7 @@ export interface Lex4Translations {
18
18
  justify: string;
19
19
  numberedList: string;
20
20
  bulletList: string;
21
+ alphabeticList: string;
21
22
  indent: string;
22
23
  outdent: string;
23
24
  history: string;
@@ -58,6 +59,7 @@ export interface Lex4Translations {
58
59
  justifiedText: string;
59
60
  insertedNumberedList: string;
60
61
  insertedBulletList: string;
62
+ insertedAlphabeticList: string;
61
63
  indentedContent: string;
62
64
  outdentedContent: string;
63
65
  /** Use {{value}} for the font name */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE;YACP,qBAAqB,EAAE,MAAM,CAAC;YAC9B,sBAAsB,EAAE,MAAM,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC;YAC1B,iBAAiB,EAAE,MAAM,CAAC;YAC1B,aAAa,EAAE,MAAM,CAAC;YACtB,aAAa,EAAE,MAAM,CAAC;YACtB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,iBAAiB,EAAE,MAAM,CAAC;YAC1B,sCAAsC;YACtC,cAAc,EAAE,MAAM,CAAC;YACvB,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;YACtB,gBAAgB,EAAE,MAAM,CAAC;YACzB,oBAAoB,EAAE,MAAM,CAAC;YAC7B,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;YACtB,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,oBAAoB,EAAE,MAAM,CAAC;YAC7B,kBAAkB,EAAE,MAAM,CAAC;YAC3B,eAAe,EAAE,MAAM,CAAC;YACxB,gBAAgB,EAAE,MAAM,CAAC;YACzB,sCAAsC;YACtC,WAAW,EAAE,MAAM,CAAC;YACpB,iCAAiC;YACjC,eAAe,EAAE,MAAM,CAAC;YACxB,iDAAiD;YACjD,gBAAgB,EAAE,MAAM,CAAC;YACzB,uBAAuB,EAAE,MAAM,CAAC;SACjC,CAAC;KACH,CAAC;IAEF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,0DAA0D;QAC1D,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,uCAAuC;QACvC,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,2BAA2B,EAAE,MAAM,CAAC;QACpC,0BAA0B,EAAE,MAAM,CAAC;KACpC,CAAC;IAEF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,kEAAkE;IAClE,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,0CAA0C;IAC1C,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,uCAAuC;QACvC,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,8FAA8F;IAC9F,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ const React = require("react");
8
8
  const lexical = require("lexical");
9
9
  const LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
10
10
  const list = require("@lexical/list");
11
+ const utils = require("@lexical/utils");
11
12
  const selection = require("@lexical/selection");
12
13
  const richText = require("@lexical/rich-text");
13
14
  const useLexicalNodeSelection = require("@lexical/react/useLexicalNodeSelection");
@@ -473,6 +474,7 @@ const DEFAULT_TRANSLATIONS = {
473
474
  justify: "Justify",
474
475
  numberedList: "Numbered List",
475
476
  bulletList: "Bullet List",
477
+ alphabeticList: "Alphabetic List",
476
478
  indent: "Indent",
477
479
  outdent: "Outdent",
478
480
  history: "History",
@@ -512,6 +514,7 @@ const DEFAULT_TRANSLATIONS = {
512
514
  justifiedText: "Justified text",
513
515
  insertedNumberedList: "Inserted numbered list",
514
516
  insertedBulletList: "Inserted bullet list",
517
+ insertedAlphabeticList: "Inserted alphabetic list",
515
518
  indentedContent: "Indented content",
516
519
  outdentedContent: "Outdented content",
517
520
  fontChanged: "Font changed to {{value}}",
@@ -615,6 +618,7 @@ const PT_BR_TRANSLATIONS = {
615
618
  justify: "Justificar",
616
619
  numberedList: "Lista Numerada",
617
620
  bulletList: "Lista com Marcadores",
621
+ alphabeticList: "Lista Alfabética",
618
622
  indent: "Aumentar Recuo",
619
623
  outdent: "Diminuir Recuo",
620
624
  history: "Histórico",
@@ -654,6 +658,7 @@ const PT_BR_TRANSLATIONS = {
654
658
  justifiedText: "Texto justificado",
655
659
  insertedNumberedList: "Lista numerada inserida",
656
660
  insertedBulletList: "Lista com marcadores inserida",
661
+ insertedAlphabeticList: "Lista alfabética inserida",
657
662
  indentedContent: "Conteúdo recuado",
658
663
  outdentedContent: "Recuo reduzido",
659
664
  fontChanged: "Fonte alterada para {{value}}",
@@ -853,6 +858,7 @@ const DEFAULT_TOOLBAR_STYLE_SNAPSHOT = {
853
858
  fontFamily: "Inter",
854
859
  fontSize: DEFAULT_FONT_SIZE,
855
860
  alignment: "left",
861
+ activeList: "none",
856
862
  isBold: false,
857
863
  isItalic: false,
858
864
  isUnderline: false,
@@ -2210,13 +2216,145 @@ function toggleStrikethrough(editor) {
2210
2216
  function setAlignment(editor, alignment) {
2211
2217
  editor.dispatchCommand(lexical.FORMAT_ELEMENT_COMMAND, alignment);
2212
2218
  }
2219
+ function decorateAlphaListDom(dom) {
2220
+ dom.classList.add("lex4-list-alpha");
2221
+ dom.setAttribute("data-lex4-list-variant", "alpha");
2222
+ }
2223
+ class AlphaListNode extends list.ListNode {
2224
+ static getType() {
2225
+ return "alpha-list";
2226
+ }
2227
+ static clone(node) {
2228
+ return new AlphaListNode(node.getStart(), node.__key);
2229
+ }
2230
+ static importJSON(serializedNode) {
2231
+ const node = $createAlphaListNode(
2232
+ typeof serializedNode.start === "number" ? serializedNode.start : 1
2233
+ );
2234
+ node.setFormat(serializedNode.format);
2235
+ node.setIndent(serializedNode.indent);
2236
+ node.setDirection(serializedNode.direction);
2237
+ return node;
2238
+ }
2239
+ constructor(start = 1, key) {
2240
+ super("number", start, key);
2241
+ }
2242
+ createDOM(config, editor) {
2243
+ const dom = super.createDOM(config, editor);
2244
+ decorateAlphaListDom(dom);
2245
+ return dom;
2246
+ }
2247
+ updateDOM(prevNode, dom, config) {
2248
+ const replaced = super.updateDOM(prevNode, dom, config);
2249
+ if (replaced) {
2250
+ return true;
2251
+ }
2252
+ decorateAlphaListDom(dom);
2253
+ return false;
2254
+ }
2255
+ exportJSON() {
2256
+ return {
2257
+ ...super.exportJSON(),
2258
+ type: "alpha-list",
2259
+ markerStyle: "alpha"
2260
+ };
2261
+ }
2262
+ }
2263
+ function $createAlphaListNode(start = 1) {
2264
+ return lexical.$applyNodeReplacement(new AlphaListNode(start));
2265
+ }
2266
+ function $isAlphaListNode(node) {
2267
+ return node instanceof AlphaListNode;
2268
+ }
2269
+ function getNearestListNode$1(node) {
2270
+ if (list.$isListNode(node)) {
2271
+ return node;
2272
+ }
2273
+ const listNode = utils.$findMatchingParent(node, list.$isListNode);
2274
+ return list.$isListNode(listNode) ? listNode : null;
2275
+ }
2276
+ function getSelectedListNodes() {
2277
+ const selection2 = lexical.$getSelection();
2278
+ if (!selection2) {
2279
+ return [];
2280
+ }
2281
+ const listNodes = /* @__PURE__ */ new Map();
2282
+ const nodes = selection2.getNodes();
2283
+ if (lexical.$isRangeSelection(selection2)) {
2284
+ nodes.push(selection2.anchor.getNode(), selection2.focus.getNode());
2285
+ }
2286
+ for (const node of nodes) {
2287
+ const listNode = getNearestListNode$1(node);
2288
+ if (listNode) {
2289
+ listNodes.set(listNode.getKey(), listNode);
2290
+ }
2291
+ }
2292
+ return Array.from(listNodes.values());
2293
+ }
2294
+ function replaceWithAlphaList(listNode) {
2295
+ if ($isAlphaListNode(listNode) || listNode.getListType() !== "number") {
2296
+ return;
2297
+ }
2298
+ const alphaList = $createAlphaListNode(listNode.getStart());
2299
+ alphaList.setFormat(listNode.getFormatType());
2300
+ alphaList.setIndent(listNode.getIndent());
2301
+ alphaList.setDirection(listNode.getDirection());
2302
+ alphaList.append(...listNode.getChildren());
2303
+ listNode.replace(alphaList);
2304
+ }
2305
+ function replaceWithPlainList(listNode, listType) {
2306
+ if (!$isAlphaListNode(listNode) && listNode.getListType() === listType) {
2307
+ return;
2308
+ }
2309
+ const plainList = list.$createListNode(
2310
+ listType,
2311
+ listType === "number" ? listNode.getStart() : 1
2312
+ );
2313
+ plainList.setFormat(listNode.getFormatType());
2314
+ plainList.setIndent(listNode.getIndent());
2315
+ plainList.setDirection(listNode.getDirection());
2316
+ plainList.append(...listNode.getChildren());
2317
+ listNode.replace(plainList);
2318
+ }
2319
+ function insertAlphaList(editor) {
2320
+ const hasAlphaListSelection = editor.getEditorState().read(
2321
+ () => getSelectedListNodes().some($isAlphaListNode)
2322
+ );
2323
+ if (hasAlphaListSelection) {
2324
+ removeList(editor);
2325
+ return;
2326
+ }
2327
+ editor.dispatchCommand(list.INSERT_ORDERED_LIST_COMMAND, void 0);
2328
+ editor.update(() => {
2329
+ getSelectedListNodes().forEach(replaceWithAlphaList);
2330
+ });
2331
+ }
2332
+ function normalizeSelectedAlphaLists(editor, listType) {
2333
+ const hasAlphaListSelection = editor.getEditorState().read(
2334
+ () => getSelectedListNodes().some($isAlphaListNode)
2335
+ );
2336
+ if (!hasAlphaListSelection) {
2337
+ return false;
2338
+ }
2339
+ editor.update(() => {
2340
+ getSelectedListNodes().forEach((listNode) => replaceWithPlainList(listNode, listType));
2341
+ });
2342
+ return true;
2343
+ }
2213
2344
  function insertList(editor, type) {
2214
- if (type === "number") {
2345
+ if (type === "alpha") {
2346
+ insertAlphaList(editor);
2347
+ } else if (normalizeSelectedAlphaLists(editor, type)) {
2348
+ return;
2349
+ } else if (type === "number") {
2215
2350
  editor.dispatchCommand(list.INSERT_ORDERED_LIST_COMMAND, void 0);
2216
2351
  } else {
2217
2352
  editor.dispatchCommand(list.INSERT_UNORDERED_LIST_COMMAND, void 0);
2218
2353
  }
2219
2354
  }
2355
+ function removeList(editor) {
2356
+ editor.dispatchCommand(list.REMOVE_LIST_COMMAND, void 0);
2357
+ }
2220
2358
  function indentContent(editor) {
2221
2359
  editor.dispatchCommand(lexical.INDENT_CONTENT_COMMAND, void 0);
2222
2360
  }
@@ -3303,6 +3441,40 @@ function getElementAlignment(node) {
3303
3441
  }
3304
3442
  return "left";
3305
3443
  }
3444
+ function getNearestListNode(node) {
3445
+ if (list.$isListNode(node)) {
3446
+ return node;
3447
+ }
3448
+ return utils.$findMatchingParent(node, list.$isListNode);
3449
+ }
3450
+ function getNodeActiveList(node) {
3451
+ const listNode = getNearestListNode(node);
3452
+ if (!list.$isListNode(listNode)) {
3453
+ return "none";
3454
+ }
3455
+ if ($isAlphaListNode(listNode)) {
3456
+ return "alpha";
3457
+ }
3458
+ return listNode.getListType() === "number" ? "number" : listNode.getListType() === "bullet" ? "bullet" : "none";
3459
+ }
3460
+ function getActiveList(nodes, anchorNode) {
3461
+ const activeLists = /* @__PURE__ */ new Set();
3462
+ const anchorList = getNodeActiveList(anchorNode);
3463
+ if (anchorList !== "none") {
3464
+ activeLists.add(anchorList);
3465
+ }
3466
+ for (const node of nodes) {
3467
+ const activeList = getNodeActiveList(node);
3468
+ if (activeList === "none") {
3469
+ continue;
3470
+ }
3471
+ activeLists.add(activeList);
3472
+ if (activeLists.size > 1) {
3473
+ return "none";
3474
+ }
3475
+ }
3476
+ return activeLists.values().next().value ?? "none";
3477
+ }
3306
3478
  function getInlineStyleTarget(nodes, anchorNode) {
3307
3479
  if (lexical.$isTextNode(anchorNode) || $isVariableNode(anchorNode)) {
3308
3480
  return anchorNode;
@@ -3331,7 +3503,7 @@ function readToolbarStyleSnapshot(editor, editorState = editor.getEditorState())
3331
3503
  let snapshot = DEFAULT_TOOLBAR_STYLE_SNAPSHOT;
3332
3504
  editorState.read(() => {
3333
3505
  const currentSelection = lexical.$getSelection();
3334
- const selection2 = lexical.$isNodeSelection(currentSelection) ? currentSelection : lexical.$createRangeSelectionFromDom(window.getSelection(), editor) ?? currentSelection;
3506
+ const selection2 = lexical.$isNodeSelection(currentSelection) || lexical.$isRangeSelection(currentSelection) ? currentSelection : lexical.$createRangeSelectionFromDom(window.getSelection(), editor) ?? currentSelection;
3335
3507
  if (lexical.$isNodeSelection(selection2)) {
3336
3508
  const variableNodes = selection2.getNodes().filter($isVariableNode);
3337
3509
  if (variableNodes.length === 0) {
@@ -3344,6 +3516,7 @@ function readToolbarStyleSnapshot(editor, editorState = editor.getEditorState())
3344
3516
  fontFamily: normalizeFontFamily(extractFontFamilyFromStyle(style2)),
3345
3517
  fontSize: extractFontSizePtFromStyle(style2) ?? DEFAULT_FONT_SIZE,
3346
3518
  alignment: getElementAlignment(firstVariableNode),
3519
+ activeList: getActiveList(variableNodes, firstVariableNode),
3347
3520
  isBold: variableNodes.every((node) => (node.getFormat() & FORMAT_MASKS.bold) !== 0),
3348
3521
  isItalic: variableNodes.every((node) => (node.getFormat() & FORMAT_MASKS.italic) !== 0),
3349
3522
  isUnderline: variableNodes.every((node) => (node.getFormat() & FORMAT_MASKS.underline) !== 0),
@@ -3364,6 +3537,7 @@ function readToolbarStyleSnapshot(editor, editorState = editor.getEditorState())
3364
3537
  fontFamily: normalizeFontFamily(extractFontFamilyFromStyle(style)),
3365
3538
  fontSize: extractFontSizePtFromStyle(style) ?? DEFAULT_FONT_SIZE,
3366
3539
  alignment: getElementAlignment(anchorNode),
3540
+ activeList: getActiveList(selection2.getNodes(), anchorNode),
3367
3541
  isBold: selection2.hasFormat("bold") || isCollapsed && hasInlineFormat(inlineStyleTarget, "bold"),
3368
3542
  isItalic: selection2.hasFormat("italic") || isCollapsed && hasInlineFormat(inlineStyleTarget, "italic"),
3369
3543
  isUnderline: selection2.hasFormat("underline") || isCollapsed && hasInlineFormat(inlineStyleTarget, "underline"),
@@ -3394,6 +3568,7 @@ const Toolbar = () => {
3394
3568
  const activeFontFamily = useToolbarStyleStore((state) => state.fontFamily);
3395
3569
  const activeFontSize = useToolbarStyleStore((state) => state.fontSize);
3396
3570
  const activeAlignment = useToolbarStyleStore((state) => state.alignment);
3571
+ const activeList = useToolbarStyleStore((state) => state.activeList);
3397
3572
  const isBoldActive = useToolbarStyleStore((state) => state.isBold);
3398
3573
  const isItalicActive = useToolbarStyleStore((state) => state.isItalic);
3399
3574
  const isUnderlineActive = useToolbarStyleStore((state) => state.isUnderline);
@@ -3422,16 +3597,27 @@ const Toolbar = () => {
3422
3597
  );
3423
3598
  const runToolbarAction = React.useCallback(
3424
3599
  (label, callback) => {
3600
+ const refreshSnapshot = () => {
3601
+ if (!activeEditor) {
3602
+ return;
3603
+ }
3604
+ queueMicrotask(() => {
3605
+ toolbarStyleStore.getState().setSnapshot(readToolbarStyleSnapshot(activeEditor));
3606
+ });
3607
+ };
3425
3608
  runHistoryAction(
3426
3609
  {
3427
3610
  label,
3428
3611
  source: "toolbar",
3429
3612
  region: "document"
3430
3613
  },
3431
- callback
3614
+ () => {
3615
+ callback();
3616
+ refreshSnapshot();
3617
+ }
3432
3618
  );
3433
3619
  },
3434
- [runHistoryAction]
3620
+ [activeEditor, runHistoryAction, toolbarStyleStore]
3435
3621
  );
3436
3622
  React.useEffect(() => {
3437
3623
  if (!activeEditor) {
@@ -3524,6 +3710,11 @@ const Toolbar = () => {
3524
3710
  applyToBodyEditors((editor) => insertList(editor, "bullet"));
3525
3711
  });
3526
3712
  }, [applyToBodyEditors, runToolbarAction, t.history.actions.insertedBulletList]);
3713
+ const handleListAlpha = React.useCallback(() => {
3714
+ runToolbarAction(t.history.actions.insertedAlphabeticList, () => {
3715
+ applyToBodyEditors((editor) => insertList(editor, "alpha"));
3716
+ });
3717
+ }, [applyToBodyEditors, runToolbarAction, t.history.actions.insertedAlphabeticList]);
3527
3718
  const handleIndent = React.useCallback(() => {
3528
3719
  runToolbarAction(t.history.actions.indentedContent, () => {
3529
3720
  applyToBodyEditors(indentContent);
@@ -3656,8 +3847,9 @@ const Toolbar = () => {
3656
3847
  ] }),
3657
3848
  /* @__PURE__ */ jsxRuntime.jsx(Divider, {}),
3658
3849
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lex4-toolbar-group", "data-testid": "list-group", children: [
3659
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarIconButton, { title: t.toolbar.numberedList, testId: "btn-list-number", onClick: handleListNumber, children: /* @__PURE__ */ jsxRuntime.jsx(ListOrdered, { size: 15 }) }),
3660
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarIconButton, { title: t.toolbar.bulletList, testId: "btn-list-bullet", onClick: handleListBullet, children: /* @__PURE__ */ jsxRuntime.jsx(List, { size: 15 }) }),
3850
+ /* @__PURE__ */ jsxRuntime.jsx(ToolbarIconButton, { title: t.toolbar.numberedList, testId: "btn-list-number", active: activeList === "number", onClick: handleListNumber, children: /* @__PURE__ */ jsxRuntime.jsx(ListOrdered, { size: 15 }) }),
3851
+ /* @__PURE__ */ jsxRuntime.jsx(ToolbarIconButton, { title: t.toolbar.bulletList, testId: "btn-list-bullet", active: activeList === "bullet", onClick: handleListBullet, children: /* @__PURE__ */ jsxRuntime.jsx(List, { size: 15 }) }),
3852
+ /* @__PURE__ */ jsxRuntime.jsx(ToolbarIconButton, { title: t.toolbar.alphabeticList, testId: "btn-list-alpha", active: activeList === "alpha", onClick: handleListAlpha, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "lex4-toolbar-text-icon", children: "a)" }) }),
3661
3853
  /* @__PURE__ */ jsxRuntime.jsx(ToolbarIconButton, { title: t.toolbar.indent, testId: "btn-indent", onClick: handleIndent, children: /* @__PURE__ */ jsxRuntime.jsx(ListIndentIncrease, { size: 15 }) }),
3662
3854
  /* @__PURE__ */ jsxRuntime.jsx(ToolbarIconButton, { title: t.toolbar.outdent, testId: "btn-outdent", onClick: handleOutdent, children: /* @__PURE__ */ jsxRuntime.jsx(ListIndentDecrease, { size: 15 }) })
3663
3855
  ] }),
@@ -4048,7 +4240,7 @@ const lexicalTheme = {
4048
4240
  },
4049
4241
  quote: "lex4-quote"
4050
4242
  };
4051
- const DEFAULT_NODES = [richText.HeadingNode, richText.QuoteNode, list.ListNode, list.ListItemNode];
4243
+ const DEFAULT_NODES = [richText.HeadingNode, richText.QuoteNode, list.ListNode, list.ListItemNode, AlphaListNode];
4052
4244
  function createEditorConfig(mode, pageId, extraNodes = [], themeOverrides = {}) {
4053
4245
  const namespace = pageId ? `lex4-${mode}-${pageId}` : `lex4-${mode}`;
4054
4246
  return {
@@ -5666,6 +5858,7 @@ function mapBlockNode(node) {
5666
5858
  case "heading":
5667
5859
  return mapHeading(node);
5668
5860
  case "list":
5861
+ case "alpha-list":
5669
5862
  return mapList(node);
5670
5863
  case "quote":
5671
5864
  return mapBlockQuote(node);
@@ -5699,7 +5892,7 @@ function mapHeading(node) {
5699
5892
  };
5700
5893
  }
5701
5894
  function mapList(node) {
5702
- const listType = node.listType === "number" ? "ordered" : "unordered";
5895
+ const listType = node.type === "alpha-list" ? "ordered-alpha" : node.listType === "number" ? "ordered" : "unordered";
5703
5896
  const items = (node.children ?? []).filter((c) => c.type === "listitem").map(mapListItem);
5704
5897
  return {
5705
5898
  type: "list",
@@ -5711,7 +5904,7 @@ function mapListItem(node) {
5711
5904
  const inlineChildren = [];
5712
5905
  let nestedList;
5713
5906
  for (const child of node.children ?? []) {
5714
- if (child.type === "list") {
5907
+ if (child.type === "list" || child.type === "alpha-list") {
5715
5908
  nestedList = mapList(child);
5716
5909
  } else {
5717
5910
  const mapped = mapInlineNodes([child]);
@@ -5855,6 +6048,13 @@ function buildLexicalNode(serializedNode) {
5855
6048
  appendChildren(node, serializedNode.children);
5856
6049
  return node;
5857
6050
  }
6051
+ case "alpha-list": {
6052
+ const node = $createAlphaListNode(
6053
+ typeof serializedNode.start === "number" ? serializedNode.start : 1
6054
+ );
6055
+ appendChildren(node, serializedNode.children);
6056
+ return node;
6057
+ }
5858
6058
  case "listitem": {
5859
6059
  const node = list.$createListItemNode();
5860
6060
  appendChildren(node, serializedNode.children);
@@ -6364,8 +6564,12 @@ const VariablePanel = ({ open, onClose }) => {
6364
6564
  const { activeEditor, runHistoryAction } = useDocument();
6365
6565
  const t = useTranslations();
6366
6566
  const [filter, setFilter] = React.useState("");
6567
+ const [collapsedGroups, setCollapsedGroups] = React.useState({});
6367
6568
  const [creating, setCreating] = React.useState(false);
6368
6569
  const [createError, setCreateError] = React.useState(null);
6570
+ const toggleGroup = React.useCallback((group) => {
6571
+ setCollapsedGroups((current) => ({ ...current, [group]: !current[group] }));
6572
+ }, []);
6369
6573
  const [draft, setDraft] = React.useState({
6370
6574
  label: "",
6371
6575
  key: "",
@@ -6479,23 +6683,50 @@ const VariablePanel = ({ open, onClose }) => {
6479
6683
  ] }) }),
6480
6684
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lex4-variable-list", children: [
6481
6685
  Object.keys(grouped).length === 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-variable-list-empty", children: t.variables.noVariablesFound }),
6482
- Object.entries(grouped).map(([group, defs]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lex4-variable-group", "data-variable-group": group, children: [
6483
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-variable-group-label", children: group }),
6484
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-variable-group-items", children: defs.map((def) => /* @__PURE__ */ jsxRuntime.jsx(
6485
- "button",
6686
+ Object.entries(grouped).map(([group, defs]) => {
6687
+ const isCollapsed = !filter && Boolean(collapsedGroups[group]);
6688
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6689
+ "div",
6486
6690
  {
6487
- type: "button",
6488
- className: "lex4-variable-list-item",
6489
- "data-testid": `variable-panel-${def.key}`,
6691
+ className: `lex4-variable-group${isCollapsed ? " is-collapsed" : ""}`,
6490
6692
  "data-variable-group": group,
6491
- onClick: () => handleInsert(def.key),
6492
- disabled: !activeEditor,
6493
- title: def.key,
6494
- children: def.label
6693
+ children: [
6694
+ /* @__PURE__ */ jsxRuntime.jsxs(
6695
+ "button",
6696
+ {
6697
+ type: "button",
6698
+ className: "lex4-variable-group-header",
6699
+ "data-testid": `variable-panel-group-${group}`,
6700
+ "aria-expanded": !isCollapsed,
6701
+ onClick: () => toggleGroup(group),
6702
+ children: [
6703
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "lex4-variable-group-header-left", children: [
6704
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronDown, { size: 12, className: "lex4-variable-group-chevron" }),
6705
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "lex4-variable-group-label", children: group })
6706
+ ] }),
6707
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "lex4-variable-group-count", children: defs.length })
6708
+ ]
6709
+ }
6710
+ ),
6711
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-variable-group-items", children: defs.map((def) => /* @__PURE__ */ jsxRuntime.jsx(
6712
+ "button",
6713
+ {
6714
+ type: "button",
6715
+ className: "lex4-variable-list-item",
6716
+ "data-testid": `variable-panel-${def.key}`,
6717
+ "data-variable-group": group,
6718
+ onClick: () => handleInsert(def.key),
6719
+ disabled: !activeEditor,
6720
+ title: def.key,
6721
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "lex4-variable-list-item-label", children: def.label })
6722
+ },
6723
+ def.key
6724
+ )) })
6725
+ ]
6495
6726
  },
6496
- def.key
6497
- )) })
6498
- ] }, group))
6727
+ group
6728
+ );
6729
+ })
6499
6730
  ] }),
6500
6731
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-variable-create", children: creating ? /* @__PURE__ */ jsxRuntime.jsxs("form", { className: "lex4-variable-create-form", onSubmit: handleCreateVariable, children: [
6501
6732
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lex4-variable-create-title", children: t.variables.createVariableTitle }),