@lokascript/i18n 2.3.0 → 2.4.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 (71) hide show
  1. package/dist/browser.cjs +626 -473
  2. package/dist/browser.cjs.map +1 -1
  3. package/dist/browser.d.cts +25 -3
  4. package/dist/browser.d.ts +25 -3
  5. package/dist/browser.js +623 -474
  6. package/dist/browser.js.map +1 -1
  7. package/dist/dictionaries/index.cjs +489 -472
  8. package/dist/dictionaries/index.cjs.map +1 -1
  9. package/dist/dictionaries/index.d.cts +5 -3
  10. package/dist/dictionaries/index.d.ts +5 -3
  11. package/dist/dictionaries/index.js +489 -473
  12. package/dist/dictionaries/index.js.map +1 -1
  13. package/dist/index.cjs +617 -473
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +37 -37
  16. package/dist/index.d.ts +37 -37
  17. package/dist/index.js +617 -473
  18. package/dist/index.js.map +1 -1
  19. package/dist/lokascript-i18n.min.js +1 -1
  20. package/dist/lokascript-i18n.min.js.map +1 -1
  21. package/dist/lokascript-i18n.mjs +730 -478
  22. package/dist/lokascript-i18n.mjs.map +1 -1
  23. package/dist/plugins/vite.cjs +488 -472
  24. package/dist/plugins/vite.cjs.map +1 -1
  25. package/dist/plugins/vite.js +488 -472
  26. package/dist/plugins/vite.js.map +1 -1
  27. package/dist/plugins/webpack.cjs +488 -472
  28. package/dist/plugins/webpack.cjs.map +1 -1
  29. package/dist/plugins/webpack.js +488 -472
  30. package/dist/plugins/webpack.js.map +1 -1
  31. package/dist/{transformer-B0zy-kti.d.ts → transformer-BLv389qz.d.ts} +12 -47
  32. package/dist/{transformer-CzY_vHU0.d.cts → transformer-PFsYELrc.d.cts} +12 -47
  33. package/dist/{types-BYtpqGq3.d.cts → types-BcALAO6h.d.cts} +1 -1
  34. package/dist/{types-BYtpqGq3.d.ts → types-BcALAO6h.d.ts} +1 -1
  35. package/package.json +5 -5
  36. package/src/browser.ts +3 -0
  37. package/src/constants.ts +9 -0
  38. package/src/dictionaries/ar.ts +22 -43
  39. package/src/dictionaries/bn.ts +17 -0
  40. package/src/dictionaries/de.ts +19 -40
  41. package/src/dictionaries/en.ts +26 -0
  42. package/src/dictionaries/es.ts +19 -40
  43. package/src/dictionaries/fr.ts +19 -40
  44. package/src/dictionaries/he.ts +2 -0
  45. package/src/dictionaries/hi.ts +18 -48
  46. package/src/dictionaries/id.ts +22 -43
  47. package/src/dictionaries/index.ts +5 -1
  48. package/src/dictionaries/it.ts +18 -39
  49. package/src/dictionaries/ja.ts +18 -39
  50. package/src/dictionaries/ko.ts +22 -43
  51. package/src/dictionaries/ms.ts +16 -50
  52. package/src/dictionaries/pl.ts +18 -45
  53. package/src/dictionaries/pt.ts +23 -48
  54. package/src/dictionaries/qu.ts +22 -43
  55. package/src/dictionaries/ru.ts +18 -48
  56. package/src/dictionaries/sw.ts +22 -43
  57. package/src/dictionaries/th.ts +17 -0
  58. package/src/dictionaries/tl.ts +16 -50
  59. package/src/dictionaries/tr.ts +24 -45
  60. package/src/dictionaries/uk.ts +18 -48
  61. package/src/dictionaries/vi.ts +17 -0
  62. package/src/dictionaries/zh.ts +22 -43
  63. package/src/grammar/grammar.test.ts +143 -24
  64. package/src/grammar/index.ts +1 -0
  65. package/src/grammar/profiles/index.ts +31 -0
  66. package/src/grammar/transformer.ts +161 -0
  67. package/src/parser/he.ts +29 -0
  68. package/src/parser/index.ts +1 -0
  69. package/src/schema-alignment.test.ts +154 -0
  70. package/src/test-utils/complete-languages.ts +40 -0
  71. package/src/translation-validation.test.ts +1 -26
package/dist/browser.js CHANGED
@@ -29,13 +29,25 @@ var ENGLISH_COMMANDS = /* @__PURE__ */ new Set([
29
29
  "append",
30
30
  "async",
31
31
  "beep",
32
+ "blur",
33
+ // v0.9.90 phase 1
32
34
  "break",
35
+ "breakpoint",
36
+ // v0.9.90 phase 1
33
37
  "call",
38
+ "clear",
39
+ // v0.9.90 phase 1
40
+ "close",
41
+ // v0.9.90 phase 1
34
42
  "continue",
35
43
  "decrement",
36
44
  "default",
45
+ "empty",
46
+ // v0.9.90 phase 1
37
47
  "exit",
38
48
  "fetch",
49
+ "focus",
50
+ // v0.9.90 phase 1
39
51
  "for",
40
52
  "get",
41
53
  "go",
@@ -49,6 +61,8 @@ var ENGLISH_COMMANDS = /* @__PURE__ */ new Set([
49
61
  "make",
50
62
  "measure",
51
63
  "morph",
64
+ "open",
65
+ // v0.9.90 phase 1
52
66
  "pick",
53
67
  "process",
54
68
  "push",
@@ -57,7 +71,11 @@ var ENGLISH_COMMANDS = /* @__PURE__ */ new Set([
57
71
  "render",
58
72
  "repeat",
59
73
  "replace",
74
+ "reset",
75
+ // v0.9.90 phase 1
60
76
  "return",
77
+ "select",
78
+ // v0.9.90 phase 1
61
79
  "send",
62
80
  "set",
63
81
  "settle",
@@ -462,12 +480,10 @@ function createEnglishProvider() {
462
480
  // src/dictionaries/es.ts
463
481
  var es = {
464
482
  commands: {
465
- // Event handling
466
483
  on: "en",
467
484
  tell: "decir",
468
485
  trigger: "disparar",
469
486
  send: "enviar",
470
- // DOM manipulation
471
487
  take: "tomar",
472
488
  put: "poner",
473
489
  set: "establecer",
@@ -477,7 +493,6 @@ var es = {
477
493
  toggle: "alternar",
478
494
  hide: "ocultar",
479
495
  show: "mostrar",
480
- // Control flow
481
496
  if: "si",
482
497
  unless: "menos",
483
498
  repeat: "repetir",
@@ -487,44 +502,41 @@ var es = {
487
502
  continue: "continuar",
488
503
  break: "romper",
489
504
  halt: "detener",
490
- // Async
491
505
  wait: "esperar",
492
506
  fetch: "buscar",
493
507
  call: "llamar",
494
508
  return: "retornar",
495
- // Other commands
496
509
  make: "hacer",
497
510
  log: "registrar",
498
511
  throw: "lanzar",
499
512
  catch: "atrapar",
500
513
  measure: "medir",
501
514
  transition: "transici\xF3n",
502
- // Data Commands
503
515
  increment: "incrementar",
504
516
  decrement: "decrementar",
505
517
  default: "predeterminar",
506
- // Navigation Commands
507
518
  go: "ir",
508
519
  pushUrl: "pushUrl",
509
520
  replaceUrl: "reemplazarUrl",
510
- // Utility Commands
511
521
  copy: "copiar",
512
522
  pick: "escoger",
513
523
  beep: "pitido",
514
- // Advanced Commands
515
524
  js: "js",
516
525
  async: "as\xEDncrono",
517
526
  render: "renderizar",
518
- // Animation Commands
519
527
  swap: "intercambiar",
520
528
  morph: "transformar",
521
529
  settle: "estabilizar",
522
- // Content Commands
523
530
  append: "a\xF1adir",
524
- // Control Flow
525
531
  exit: "salir",
526
- // Behaviors
527
- install: "instalar"
532
+ install: "instalar",
533
+ breakpoint: "punto-interrupci\xF3n",
534
+ clear: "limpiar",
535
+ close: "cerrar",
536
+ open: "abrir",
537
+ select: "seleccionar",
538
+ clone: "clonar",
539
+ prepend: "anteponer"
528
540
  },
529
541
  modifiers: {
530
542
  to: "a",
@@ -585,13 +597,13 @@ var es = {
585
597
  includes: "incluye",
586
598
  equals: "iguala",
587
599
  has: "tiene",
588
- // third-person: él/ella tiene
589
600
  have: "tengo",
590
- // first-person: yo tengo
591
601
  then: "entonces",
592
602
  else: "sino",
593
603
  otherwise: "delocontrario",
594
- end: "fin"
604
+ end: "fin",
605
+ live: "vivo",
606
+ changes: "cambia"
595
607
  },
596
608
  temporal: {
597
609
  seconds: "segundos",
@@ -619,7 +631,6 @@ var es = {
619
631
  you: "tu",
620
632
  your: "tu",
621
633
  yourself: "ti mismo",
622
- // REVIEW: native speaker
623
634
  myself: "yo mismo",
624
635
  element: "elemento",
625
636
  target: "objetivo",
@@ -642,7 +653,6 @@ var es = {
642
653
  properties: "propiedades"
643
654
  },
644
655
  expressions: {
645
- // Positional
646
656
  first: "primero",
647
657
  last: "\xFAltimo",
648
658
  next: "siguiente",
@@ -650,18 +660,20 @@ var es = {
650
660
  prev: "ant",
651
661
  at: "en",
652
662
  random: "aleatorio",
653
- // DOM Traversal
654
663
  closest: "m\xE1scercano",
655
664
  parent: "padre",
656
665
  children: "hijos",
657
666
  within: "dentro",
658
- // Emptiness/Existence
659
667
  no: "ning\xFAn",
660
668
  empty: "vac\xEDo",
661
669
  some: "alg\xFAn",
662
- // String operations
663
670
  "starts with": "empieza con",
664
- "ends with": "termina con"
671
+ "ends with": "termina con",
672
+ "ignoring case": "ignorando may\xFAsculas",
673
+ "sorted by": "ordenado por",
674
+ "mapped to": "transformado a",
675
+ "split by": "dividido por",
676
+ "joined by": "unido por"
665
677
  }
666
678
  };
667
679
 
@@ -673,12 +685,10 @@ var esKeywords = createKeywordProvider(es, "es", {
673
685
  // src/dictionaries/ja.ts
674
686
  var ja = {
675
687
  commands: {
676
- // Event handling
677
688
  on: "\u3067",
678
689
  tell: "\u4F1D\u3048\u308B",
679
690
  trigger: "\u5F15\u304D\u91D1",
680
691
  send: "\u9001\u308B",
681
- // DOM manipulation
682
692
  take: "\u53D6\u308B",
683
693
  put: "\u7F6E\u304F",
684
694
  set: "\u8A2D\u5B9A",
@@ -688,7 +698,6 @@ var ja = {
688
698
  toggle: "\u5207\u308A\u66FF\u3048",
689
699
  hide: "\u96A0\u3059",
690
700
  show: "\u8868\u793A",
691
- // Control flow
692
701
  if: "\u3082\u3057",
693
702
  unless: "\u3067\u306A\u3051\u308C\u3070",
694
703
  repeat: "\u7E70\u308A\u8FD4\u3057",
@@ -698,44 +707,41 @@ var ja = {
698
707
  continue: "\u7D9A\u3051\u308B",
699
708
  break: "\u4E2D\u65AD",
700
709
  halt: "\u505C\u6B62",
701
- // Async
702
710
  wait: "\u5F85\u3064",
703
711
  fetch: "\u53D6\u5F97",
704
712
  call: "\u547C\u3073\u51FA\u3057",
705
713
  return: "\u623B\u308B",
706
- // Other commands
707
714
  make: "\u4F5C\u308B",
708
715
  log: "\u8A18\u9332",
709
716
  throw: "\u6295\u3052\u308B",
710
717
  catch: "\u6355\u307E\u3048\u308B",
711
718
  measure: "\u6E2C\u5B9A",
712
719
  transition: "\u9077\u79FB",
713
- // Data Commands
714
720
  increment: "\u5897\u52A0",
715
721
  decrement: "\u6E1B\u5C11",
716
722
  default: "\u65E2\u5B9A",
717
- // Navigation Commands
718
723
  go: "\u79FB\u52D5",
719
724
  pushUrl: "URL\u30D7\u30C3\u30B7\u30E5",
720
725
  replaceUrl: "URL\u7F6E\u63DB",
721
- // Utility Commands
722
726
  copy: "\u30B3\u30D4\u30FC",
723
727
  pick: "\u9078\u629E",
724
728
  beep: "\u30D3\u30FC\u30D7",
725
- // Advanced Commands
726
729
  js: "JS\u5B9F\u884C",
727
730
  async: "\u975E\u540C\u671F",
728
731
  render: "\u63CF\u753B",
729
- // Animation Commands
730
732
  swap: "\u4EA4\u63DB",
731
733
  morph: "\u5909\u5F62",
732
734
  settle: "\u5B89\u5B9A",
733
- // Content Commands
734
735
  append: "\u672B\u5C3E\u8FFD\u52A0",
735
- // Control Flow
736
736
  exit: "\u7D42\u4E86",
737
- // Behaviors
738
- install: "\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB"
737
+ install: "\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",
738
+ breakpoint: "\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8",
739
+ clear: "\u30AF\u30EA\u30A2",
740
+ close: "\u9589\u3058\u308B",
741
+ open: "\u958B\u304F",
742
+ select: "\u9078\u629E",
743
+ clone: "\u8907\u88FD",
744
+ prepend: "\u5148\u982D\u8FFD\u52A0"
739
745
  },
740
746
  modifiers: {
741
747
  to: "\u306B",
@@ -796,13 +802,13 @@ var ja = {
796
802
  includes: "\u542B\u3081\u308B",
797
803
  equals: "\u7B49\u3057\u3044",
798
804
  has: "\u3042\u308B",
799
- // existence verb (context-based)
800
805
  have: "\u3042\u308B",
801
- // same verb for first/third person
802
806
  then: "\u305D\u308C\u304B\u3089",
803
807
  else: "\u305D\u3046\u3067\u306A\u3051\u308C\u3070",
804
808
  otherwise: "\u305D\u3046\u3067\u306A\u3051\u308C\u3070",
805
- end: "\u7D42\u308F\u308A"
809
+ end: "\u7D42\u308F\u308A",
810
+ live: "\u30E9\u30A4\u30D6",
811
+ changes: "\u5909\u308F\u3063\u305F\u3089"
806
812
  },
807
813
  temporal: {
808
814
  seconds: "\u79D2",
@@ -852,7 +858,6 @@ var ja = {
852
858
  properties: "\u30D7\u30ED\u30D1\u30C6\u30A3\u7FA4"
853
859
  },
854
860
  expressions: {
855
- // Positional
856
861
  first: "\u6700\u521D",
857
862
  last: "\u6700\u5F8C",
858
863
  next: "\u6B21",
@@ -860,18 +865,20 @@ var ja = {
860
865
  prev: "\u524D",
861
866
  at: "\u3067",
862
867
  random: "\u30E9\u30F3\u30C0\u30E0",
863
- // DOM Traversal
864
868
  closest: "\u6700\u3082\u8FD1\u3044",
865
869
  parent: "\u89AA",
866
870
  children: "\u5B50",
867
871
  within: "\u4EE5\u5185",
868
- // Emptiness/Existence
869
872
  no: "\u306A\u3044",
870
873
  empty: "\u7A7A",
871
874
  some: "\u3044\u304F\u3064\u304B",
872
- // String operations
873
875
  "starts with": "\u3067\u59CB\u307E\u308B",
874
- "ends with": "\u3067\u7D42\u308F\u308B"
876
+ "ends with": "\u3067\u7D42\u308F\u308B",
877
+ "ignoring case": "\u5927\u6587\u5B57\u5C0F\u6587\u5B57\u3092\u7121\u8996",
878
+ "sorted by": "\u3067\u30BD\u30FC\u30C8",
879
+ "mapped to": "\u306B\u5909\u63DB",
880
+ "split by": "\u3067\u5206\u5272",
881
+ "joined by": "\u3067\u7D50\u5408"
875
882
  }
876
883
  };
877
884
 
@@ -883,12 +890,10 @@ var jaKeywords = createKeywordProvider(ja, "ja", {
883
890
  // src/dictionaries/fr.ts
884
891
  var fr = {
885
892
  commands: {
886
- // Event handling
887
893
  on: "sur",
888
894
  tell: "dire",
889
895
  trigger: "d\xE9clencher",
890
896
  send: "envoyer",
891
- // DOM manipulation
892
897
  take: "prendre",
893
898
  put: "mettre",
894
899
  set: "d\xE9finir",
@@ -898,7 +903,6 @@ var fr = {
898
903
  toggle: "basculer",
899
904
  hide: "cacher",
900
905
  show: "montrer",
901
- // Control flow
902
906
  if: "si",
903
907
  unless: "saufsi",
904
908
  repeat: "r\xE9p\xE9ter",
@@ -908,44 +912,41 @@ var fr = {
908
912
  continue: "continuer",
909
913
  break: "arr\xEAter",
910
914
  halt: "stopper",
911
- // Async
912
915
  wait: "attendre",
913
916
  fetch: "r\xE9cup\xE9rer",
914
917
  call: "appeler",
915
918
  return: "retourner",
916
- // Other commands
917
919
  make: "cr\xE9er",
918
920
  log: "enregistrer",
919
921
  throw: "lancer",
920
922
  catch: "attraper",
921
923
  measure: "mesurer",
922
924
  transition: "transition",
923
- // Data Commands
924
925
  increment: "incr\xE9menter",
925
926
  decrement: "d\xE9cr\xE9menter",
926
927
  default: "d\xE9faut",
927
- // Navigation Commands
928
928
  go: "aller",
929
929
  pushUrl: "pousserUrl",
930
930
  replaceUrl: "remplacerUrl",
931
- // Utility Commands
932
931
  copy: "copier",
933
932
  pick: "choisir",
934
933
  beep: "bip",
935
- // Advanced Commands
936
934
  js: "js",
937
935
  async: "asynchrone",
938
936
  render: "rendu",
939
- // Animation Commands
940
937
  swap: "\xE9changer",
941
938
  morph: "transformer",
942
939
  settle: "stabiliser",
943
- // Content Commands
944
940
  append: "ajouter",
945
- // Control Flow
946
941
  exit: "sortir",
947
- // Behaviors
948
- install: "installer"
942
+ install: "installer",
943
+ breakpoint: "point-arr\xEAt",
944
+ clear: "effacer",
945
+ close: "fermer",
946
+ open: "ouvrir",
947
+ select: "s\xE9lectionner",
948
+ clone: "cloner",
949
+ prepend: "pr\xE9fixer"
949
950
  },
950
951
  modifiers: {
951
952
  to: "\xE0",
@@ -1006,13 +1007,13 @@ var fr = {
1006
1007
  includes: "inclut",
1007
1008
  equals: "\xE9gale",
1008
1009
  has: "a",
1009
- // third-person: il/elle a
1010
1010
  have: "ai",
1011
- // first-person: j'ai
1012
1011
  then: "alors",
1013
1012
  else: "sinon",
1014
1013
  otherwise: "autrement",
1015
- end: "fin"
1014
+ end: "fin",
1015
+ live: "vif",
1016
+ changes: "change"
1016
1017
  },
1017
1018
  temporal: {
1018
1019
  seconds: "secondes",
@@ -1040,7 +1041,6 @@ var fr = {
1040
1041
  you: "tu",
1041
1042
  your: "ton",
1042
1043
  yourself: "toi-m\xEAme",
1043
- // REVIEW: native speaker
1044
1044
  myself: "moi-m\xEAme",
1045
1045
  element: "\xE9l\xE9ment",
1046
1046
  target: "cible",
@@ -1063,7 +1063,6 @@ var fr = {
1063
1063
  properties: "propri\xE9t\xE9s"
1064
1064
  },
1065
1065
  expressions: {
1066
- // Positional
1067
1066
  first: "premier",
1068
1067
  last: "dernier",
1069
1068
  next: "suivant",
@@ -1071,18 +1070,20 @@ var fr = {
1071
1070
  prev: "pr\xE9c",
1072
1071
  at: "\xE0",
1073
1072
  random: "al\xE9atoire",
1074
- // DOM Traversal
1075
1073
  closest: "plusproche",
1076
1074
  parent: "parent",
1077
1075
  children: "enfants",
1078
1076
  within: "dans",
1079
- // Emptiness/Existence
1080
1077
  no: "aucun",
1081
1078
  empty: "vide",
1082
1079
  some: "quelques",
1083
- // String operations
1084
1080
  "starts with": "commence par",
1085
- "ends with": "finit par"
1081
+ "ends with": "finit par",
1082
+ "ignoring case": "en ignorant la casse",
1083
+ "sorted by": "tri\xE9 par",
1084
+ "mapped to": "transform\xE9 en",
1085
+ "split by": "divis\xE9 par",
1086
+ "joined by": "joint par"
1086
1087
  }
1087
1088
  };
1088
1089
 
@@ -1094,12 +1095,10 @@ var frKeywords = createKeywordProvider(fr, "fr", {
1094
1095
  // src/dictionaries/de.ts
1095
1096
  var de = {
1096
1097
  commands: {
1097
- // Event handling
1098
1098
  on: "bei",
1099
1099
  tell: "sagen",
1100
1100
  trigger: "ausl\xF6sen",
1101
1101
  send: "senden",
1102
- // DOM manipulation
1103
1102
  take: "nehmen",
1104
1103
  put: "setzen",
1105
1104
  set: "festlegen",
@@ -1109,7 +1108,6 @@ var de = {
1109
1108
  toggle: "umschalten",
1110
1109
  hide: "verstecken",
1111
1110
  show: "zeigen",
1112
- // Control flow
1113
1111
  if: "wenn",
1114
1112
  unless: "wennnicht",
1115
1113
  repeat: "wiederholen",
@@ -1119,44 +1117,41 @@ var de = {
1119
1117
  continue: "weiter",
1120
1118
  break: "unterbrechen",
1121
1119
  halt: "anhalten",
1122
- // Async
1123
1120
  wait: "warten",
1124
1121
  fetch: "holen",
1125
1122
  call: "aufrufen",
1126
1123
  return: "zur\xFCckgeben",
1127
- // Other commands
1128
1124
  make: "erstellen",
1129
1125
  log: "protokollieren",
1130
1126
  throw: "werfen",
1131
1127
  catch: "fangen",
1132
1128
  measure: "messen",
1133
1129
  transition: "\xFCbergang",
1134
- // Data Commands
1135
1130
  increment: "erh\xF6hen",
1136
1131
  decrement: "verringern",
1137
1132
  default: "standard",
1138
- // Navigation Commands
1139
1133
  go: "gehen",
1140
1134
  pushUrl: "urlHinzuf\xFCgen",
1141
1135
  replaceUrl: "urlErsetzen",
1142
- // Utility Commands
1143
1136
  copy: "kopieren",
1144
1137
  pick: "ausw\xE4hlen",
1145
1138
  beep: "piepton",
1146
- // Advanced Commands
1147
1139
  js: "js",
1148
1140
  async: "asynchron",
1149
1141
  render: "rendern",
1150
- // Animation Commands
1151
1142
  swap: "tauschen",
1152
1143
  morph: "verwandeln",
1153
1144
  settle: "stabilisieren",
1154
- // Content Commands
1155
1145
  append: "anh\xE4ngen",
1156
- // Control Flow
1157
1146
  exit: "beenden",
1158
- // Behaviors
1159
- install: "installieren"
1147
+ install: "installieren",
1148
+ breakpoint: "haltepunkt",
1149
+ clear: "l\xF6schen",
1150
+ close: "schlie\xDFen",
1151
+ open: "\xF6ffnen",
1152
+ select: "ausw\xE4hlen",
1153
+ clone: "klonen",
1154
+ prepend: "voranstellen"
1160
1155
  },
1161
1156
  modifiers: {
1162
1157
  to: "zu",
@@ -1217,13 +1212,13 @@ var de = {
1217
1212
  includes: "beinhaltet",
1218
1213
  equals: "gleicht",
1219
1214
  has: "hat",
1220
- // third-person: es hat
1221
1215
  have: "habe",
1222
- // first-person: ich habe
1223
1216
  then: "dann",
1224
1217
  else: "sonst",
1225
1218
  otherwise: "andernfalls",
1226
- end: "ende"
1219
+ end: "ende",
1220
+ live: "live",
1221
+ changes: "\xE4ndert"
1227
1222
  },
1228
1223
  temporal: {
1229
1224
  seconds: "sekunden",
@@ -1251,7 +1246,6 @@ var de = {
1251
1246
  you: "du",
1252
1247
  your: "dein",
1253
1248
  yourself: "dich selbst",
1254
- // REVIEW: native speaker
1255
1249
  myself: "ich selbst",
1256
1250
  element: "element",
1257
1251
  target: "ziel",
@@ -1274,7 +1268,6 @@ var de = {
1274
1268
  properties: "eigenschaften"
1275
1269
  },
1276
1270
  expressions: {
1277
- // Positional
1278
1271
  first: "erste",
1279
1272
  last: "letzte",
1280
1273
  next: "n\xE4chste",
@@ -1282,18 +1275,20 @@ var de = {
1282
1275
  prev: "vorh",
1283
1276
  at: "bei",
1284
1277
  random: "zuf\xE4llig",
1285
- // DOM Traversal
1286
1278
  closest: "n\xE4chste",
1287
1279
  parent: "elternteil",
1288
1280
  children: "kinder",
1289
1281
  within: "innerhalb",
1290
- // Emptiness/Existence
1291
1282
  no: "kein",
1292
1283
  empty: "leer",
1293
1284
  some: "einige",
1294
- // String operations
1295
1285
  "starts with": "beginnt mit",
1296
- "ends with": "endet mit"
1286
+ "ends with": "endet mit",
1287
+ "ignoring case": "ohne Gro\xDF-/Kleinschreibung",
1288
+ "sorted by": "sortiert nach",
1289
+ "mapped to": "zugeordnet zu",
1290
+ "split by": "geteilt durch",
1291
+ "joined by": "verbunden mit"
1297
1292
  }
1298
1293
  };
1299
1294
 
@@ -1305,12 +1300,10 @@ var deKeywords = createKeywordProvider(de, "de", {
1305
1300
  // src/dictionaries/ar.ts
1306
1301
  var ar = {
1307
1302
  commands: {
1308
- // Event handling
1309
1303
  on: "\u0639\u0644\u0649",
1310
1304
  tell: "\u0623\u062E\u0628\u0631",
1311
1305
  trigger: "\u062A\u0634\u063A\u064A\u0644",
1312
1306
  send: "\u0623\u0631\u0633\u0644",
1313
- // DOM manipulation
1314
1307
  take: "\u062E\u0630",
1315
1308
  put: "\u0636\u0639",
1316
1309
  set: "\u0627\u0636\u0628\u0637",
@@ -1320,7 +1313,6 @@ var ar = {
1320
1313
  toggle: "\u0628\u062F\u0644",
1321
1314
  hide: "\u0627\u062E\u0641",
1322
1315
  show: "\u0627\u0638\u0647\u0631",
1323
- // Control flow
1324
1316
  if: "\u0625\u0630\u0627",
1325
1317
  unless: "\u0625\u0644\u0627 \u0625\u0630\u0627",
1326
1318
  repeat: "\u0643\u0631\u0631",
@@ -1330,44 +1322,41 @@ var ar = {
1330
1322
  continue: "\u0648\u0627\u0635\u0644",
1331
1323
  break: "\u062A\u0648\u0642\u0641",
1332
1324
  halt: "\u0623\u0648\u0642\u0641",
1333
- // Async
1334
1325
  wait: "\u0627\u0646\u062A\u0638\u0631",
1335
1326
  fetch: "\u0627\u062D\u0636\u0631",
1336
1327
  call: "\u0627\u0633\u062A\u062F\u0639",
1337
1328
  return: "\u0627\u0631\u062C\u0639",
1338
- // Other commands
1339
1329
  make: "\u0627\u0635\u0646\u0639",
1340
1330
  log: "\u0633\u062C\u0644",
1341
1331
  throw: "\u0627\u0631\u0645",
1342
1332
  catch: "\u0627\u0644\u062A\u0642\u0637",
1343
1333
  measure: "\u0642\u0633",
1344
1334
  transition: "\u0627\u0646\u062A\u0642\u0627\u0644",
1345
- // Data Commands
1346
1335
  increment: "\u0632\u0650\u062F",
1347
1336
  decrement: "\u0623\u0646\u0642\u0635",
1348
1337
  default: "\u0627\u0641\u062A\u0631\u0627\u0636\u064A",
1349
- // Navigation Commands
1350
1338
  go: "\u0627\u0630\u0647\u0628",
1351
1339
  pushUrl: "\u0627\u062F\u0641\u0639 \u0631\u0627\u0628\u0637",
1352
1340
  replaceUrl: "\u0627\u0633\u062A\u0628\u062F\u0644 \u0631\u0627\u0628\u0637",
1353
- // Utility Commands
1354
1341
  copy: "\u0627\u0646\u0633\u062E",
1355
1342
  pick: "\u0627\u062E\u062A\u0631",
1356
1343
  beep: "\u0635\u0641\u0651\u0631",
1357
- // Advanced Commands
1358
1344
  js: "\u062C\u0627\u0641\u0627\u0633\u0643\u0631\u0628\u062A",
1359
1345
  async: "\u0645\u062A\u0632\u0627\u0645\u0646",
1360
1346
  render: "\u0627\u0631\u0633\u0645",
1361
- // Animation Commands
1362
1347
  swap: "\u0628\u062F\u0651\u0644",
1363
1348
  morph: "\u062D\u0648\u0651\u0644",
1364
1349
  settle: "\u0627\u0633\u062A\u0642\u0631",
1365
- // Content Commands
1366
1350
  append: "\u0623\u0644\u062D\u0642",
1367
- // Control Flow
1368
1351
  exit: "\u0627\u062E\u0631\u062C",
1369
- // Behaviors
1370
- install: "\u062B\u0628\u0651\u062A"
1352
+ install: "\u062B\u0628\u0651\u062A",
1353
+ breakpoint: "\u0646\u0642\u0637\u0629-\u062A\u0648\u0642\u0641",
1354
+ clear: "\u0627\u0645\u0633\u062D",
1355
+ close: "\u0623\u063A\u0644\u0642",
1356
+ open: "\u0627\u0641\u062A\u062D",
1357
+ select: "\u0627\u062E\u062A\u0631",
1358
+ clone: "\u0627\u0633\u062A\u0646\u0633\u062E",
1359
+ prepend: "\u0633\u0628\u0642"
1371
1360
  },
1372
1361
  modifiers: {
1373
1362
  to: "\u0625\u0644\u0649",
@@ -1428,13 +1417,13 @@ var ar = {
1428
1417
  includes: "\u064A\u0634\u0645\u0644",
1429
1418
  equals: "\u064A\u0633\u0627\u0648\u064A",
1430
1419
  has: "\u0644\u062F\u064A\u0647",
1431
- // third-person: he/it has
1432
1420
  have: "\u0644\u062F\u064A",
1433
- // first-person: I have
1434
1421
  then: "\u062B\u0645",
1435
1422
  else: "\u0648\u0625\u0644\u0627",
1436
1423
  otherwise: "\u062E\u0644\u0627\u0641 \u0630\u0644\u0643",
1437
- end: "\u0627\u0644\u0646\u0647\u0627\u064A\u0629"
1424
+ end: "\u0627\u0644\u0646\u0647\u0627\u064A\u0629",
1425
+ live: "\u062D\u064A",
1426
+ changes: "\u064A\u062A\u063A\u064A\u0631"
1438
1427
  },
1439
1428
  temporal: {
1440
1429
  seconds: "\u062B\u0648\u0627\u0646\u0650",
@@ -1457,16 +1446,12 @@ var ar = {
1457
1446
  undefined: "\u063A\u064A\u0631 \u0645\u0639\u0631\u0641",
1458
1447
  it: "\u0647\u0648",
1459
1448
  its: "\u0644\u0647",
1460
- // REVIEW: native speaker
1461
1449
  me: "\u0623\u0646\u0627",
1462
1450
  my: "\u0644\u064A",
1463
1451
  myself: "\u0646\u0641\u0633\u064A",
1464
1452
  you: "\u0623\u0646\u062A",
1465
- // REVIEW: native speaker
1466
1453
  your: "\u0644\u0643",
1467
- // REVIEW: native speaker
1468
1454
  yourself: "\u0646\u0641\u0633\u0643",
1469
- // REVIEW: native speaker
1470
1455
  element: "\u0639\u0646\u0635\u0631",
1471
1456
  target: "\u0647\u062F\u0641",
1472
1457
  detail: "\u062A\u0641\u0627\u0635\u064A\u0644",
@@ -1488,7 +1473,6 @@ var ar = {
1488
1473
  properties: "\u062E\u0635\u0627\u0626\u0635"
1489
1474
  },
1490
1475
  expressions: {
1491
- // Positional
1492
1476
  first: "\u0623\u0648\u0644",
1493
1477
  last: "\u0622\u062E\u0631",
1494
1478
  next: "\u0627\u0644\u062A\u0627\u0644\u064A",
@@ -1496,18 +1480,20 @@ var ar = {
1496
1480
  prev: "\u0633\u0627\u0628\u0642",
1497
1481
  at: "\u0639\u0646\u062F",
1498
1482
  random: "\u0639\u0634\u0648\u0627\u0626\u064A",
1499
- // DOM Traversal
1500
1483
  closest: "\u0627\u0644\u0623\u0642\u0631\u0628",
1501
1484
  parent: "\u0648\u0627\u0644\u062F",
1502
1485
  children: "\u0623\u0637\u0641\u0627\u0644",
1503
1486
  within: "\u062F\u0627\u062E\u0644",
1504
- // Emptiness/Existence
1505
1487
  no: "\u0644\u0627 \u064A\u0648\u062C\u062F",
1506
1488
  empty: "\u0641\u0627\u0631\u063A",
1507
1489
  some: "\u0628\u0639\u0636",
1508
- // String operations
1509
1490
  "starts with": "\u064A\u0628\u062F\u0623 \u0628\u0640",
1510
- "ends with": "\u064A\u0646\u062A\u0647\u064A \u0628\u0640"
1491
+ "ends with": "\u064A\u0646\u062A\u0647\u064A \u0628\u0640",
1492
+ "ignoring case": "\u0645\u0639 \u062A\u062C\u0627\u0647\u0644 \u0627\u0644\u062D\u0627\u0644\u0629",
1493
+ "sorted by": "\u0645\u0631\u062A\u0628 \u062D\u0633\u0628",
1494
+ "mapped to": "\u0645\u062D\u0648\u0644 \u0625\u0644\u0649",
1495
+ "split by": "\u0645\u0642\u0633\u0645 \u0628\u0648\u0627\u0633\u0637\u0629",
1496
+ "joined by": "\u0645\u062F\u0645\u0648\u062C \u0628\u0648\u0627\u0633\u0637\u0629"
1511
1497
  }
1512
1498
  };
1513
1499
 
@@ -1519,12 +1505,10 @@ var arKeywords = createKeywordProvider(ar, "ar", {
1519
1505
  // src/dictionaries/ko.ts
1520
1506
  var ko = {
1521
1507
  commands: {
1522
- // Event handling
1523
1508
  on: "\uC5D0",
1524
1509
  tell: "\uB9D0\uD558\uB2E4",
1525
1510
  trigger: "\uD2B8\uB9AC\uAC70",
1526
1511
  send: "\uBCF4\uB0B4\uB2E4",
1527
- // DOM manipulation
1528
1512
  take: "\uAC00\uC838\uC624\uB2E4",
1529
1513
  put: "\uB123\uB2E4",
1530
1514
  set: "\uC124\uC815",
@@ -1534,7 +1518,6 @@ var ko = {
1534
1518
  toggle: "\uD1A0\uAE00",
1535
1519
  hide: "\uC228\uAE30\uB2E4",
1536
1520
  show: "\uBCF4\uC774\uB2E4",
1537
- // Control flow
1538
1521
  if: "\uB9CC\uC57D",
1539
1522
  unless: "\uC544\uB2C8\uBA74",
1540
1523
  repeat: "\uBC18\uBCF5",
@@ -1544,44 +1527,41 @@ var ko = {
1544
1527
  continue: "\uACC4\uC18D",
1545
1528
  break: "\uC911\uB2E8",
1546
1529
  halt: "\uC815\uC9C0",
1547
- // Async
1548
1530
  wait: "\uB300\uAE30",
1549
1531
  fetch: "\uAC00\uC838\uC624\uAE30",
1550
1532
  call: "\uD638\uCD9C",
1551
1533
  return: "\uBC18\uD658",
1552
- // Other commands
1553
1534
  make: "\uB9CC\uB4E4\uB2E4",
1554
1535
  log: "\uB85C\uADF8",
1555
1536
  throw: "\uB358\uC9C0\uB2E4",
1556
1537
  catch: "\uC7A1\uB2E4",
1557
1538
  measure: "\uCE21\uC815",
1558
1539
  transition: "\uC804\uD658",
1559
- // Data Commands
1560
1540
  increment: "\uC99D\uAC00",
1561
1541
  decrement: "\uAC10\uC18C",
1562
1542
  default: "\uAE30\uBCF8\uAC12",
1563
- // Navigation Commands
1564
1543
  go: "\uC774\uB3D9",
1565
1544
  pushUrl: "URL\uD478\uC2DC",
1566
1545
  replaceUrl: "URL\uAD50\uCCB4",
1567
- // Utility Commands
1568
1546
  copy: "\uBCF5\uC0AC",
1569
1547
  pick: "\uC120\uD0DD",
1570
1548
  beep: "\uBE44\uD504",
1571
- // Advanced Commands
1572
1549
  js: "JS\uC2E4\uD589",
1573
1550
  async: "\uBE44\uB3D9\uAE30",
1574
1551
  render: "\uB80C\uB354\uB9C1",
1575
- // Animation Commands
1576
1552
  swap: "\uAD50\uD658",
1577
1553
  morph: "\uBCC0\uD615",
1578
1554
  settle: "\uC548\uC815",
1579
- // Content Commands
1580
1555
  append: "\uCD94\uAC00",
1581
- // Control Flow
1582
1556
  exit: "\uC885\uB8CC",
1583
- // Behaviors
1584
- install: "\uC124\uCE58"
1557
+ install: "\uC124\uCE58",
1558
+ breakpoint: "\uC911\uB2E8\uC810",
1559
+ clear: "\uC9C0\uC6B0\uAE30",
1560
+ close: "\uB2EB\uAE30",
1561
+ open: "\uC5F4\uAE30",
1562
+ select: "\uC120\uD0DD",
1563
+ clone: "\uBCF5\uC81C",
1564
+ prepend: "\uC55E\uC5D0\uCD94\uAC00"
1585
1565
  },
1586
1566
  modifiers: {
1587
1567
  to: "\uC5D0",
@@ -1642,13 +1622,13 @@ var ko = {
1642
1622
  includes: "\uD3EC\uD568\uD558\uB2E4",
1643
1623
  equals: "\uAC19\uB2E4",
1644
1624
  has: "\uC788\uB2E4",
1645
- // existence verb (context-based)
1646
1625
  have: "\uC788\uB2E4",
1647
- // same verb for first/third person
1648
1626
  then: "\uADF8\uB7EC\uBA74",
1649
1627
  else: "\uC544\uB2C8\uBA74",
1650
1628
  otherwise: "\uADF8\uB807\uC9C0\uC54A\uC73C\uBA74",
1651
- end: "\uB05D"
1629
+ end: "\uB05D",
1630
+ live: "\uB77C\uC774\uBE0C",
1631
+ changes: "\uBCC0\uACBD\uB418\uBA74"
1652
1632
  },
1653
1633
  temporal: {
1654
1634
  seconds: "\uCD08",
@@ -1671,16 +1651,12 @@ var ko = {
1671
1651
  undefined: "\uC815\uC758\uC548\uB428",
1672
1652
  it: "\uADF8\uAC83",
1673
1653
  its: "\uADF8\uAC83\uC758",
1674
- // REVIEW: native speaker
1675
1654
  me: "\uB098",
1676
1655
  my: "\uB0B4",
1677
1656
  myself: "\uB098\uC790\uC2E0",
1678
1657
  you: "\uB108",
1679
- // REVIEW: native speaker - formal/informal
1680
1658
  your: "\uB124",
1681
- // REVIEW: native speaker - formal/informal
1682
1659
  yourself: "\uB108\uC790\uC2E0",
1683
- // REVIEW: native speaker
1684
1660
  element: "\uC694\uC18C",
1685
1661
  target: "\uB300\uC0C1",
1686
1662
  detail: "\uC138\uBD80",
@@ -1702,7 +1678,6 @@ var ko = {
1702
1678
  properties: "\uD504\uB85C\uD37C\uD2F0\uB4E4"
1703
1679
  },
1704
1680
  expressions: {
1705
- // Positional
1706
1681
  first: "\uCCAB\uBC88\uC9F8",
1707
1682
  last: "\uB9C8\uC9C0\uB9C9",
1708
1683
  next: "\uB2E4\uC74C",
@@ -1710,18 +1685,20 @@ var ko = {
1710
1685
  prev: "\uC774\uC804",
1711
1686
  at: "\uC5D0\uC11C",
1712
1687
  random: "\uBB34\uC791\uC704",
1713
- // DOM Traversal
1714
1688
  closest: "\uAC00\uC7A5\uAC00\uAE4C\uC6B4",
1715
1689
  parent: "\uBD80\uBAA8",
1716
1690
  children: "\uC790\uC2DD",
1717
1691
  within: "\uC774\uB0B4",
1718
- // Emptiness/Existence
1719
1692
  no: "\uC5C6\uC74C",
1720
1693
  empty: "\uBE44\uC5B4\uC788\uB294",
1721
1694
  some: "\uC77C\uBD80",
1722
- // String operations
1723
1695
  "starts with": "\uB85C\uC2DC\uC791",
1724
- "ends with": "\uB85C\uB05D\uB098\uB294"
1696
+ "ends with": "\uB85C\uB05D\uB098\uB294",
1697
+ "ignoring case": "\uB300\uC18C\uBB38\uC790_\uBB34\uC2DC",
1698
+ "sorted by": "\uB85C_\uC815\uB82C",
1699
+ "mapped to": "\uB85C_\uBCC0\uD658",
1700
+ "split by": "\uB85C_\uBD84\uD560",
1701
+ "joined by": "\uB85C_\uACB0\uD569"
1725
1702
  }
1726
1703
  };
1727
1704
 
@@ -1733,12 +1710,10 @@ var koKeywords = createKeywordProvider(ko, "ko", {
1733
1710
  // src/dictionaries/zh.ts
1734
1711
  var zh = {
1735
1712
  commands: {
1736
- // Event handling
1737
1713
  on: "\u5F53",
1738
1714
  tell: "\u544A\u8BC9",
1739
1715
  trigger: "\u89E6\u53D1",
1740
1716
  send: "\u53D1\u9001",
1741
- // DOM manipulation
1742
1717
  take: "\u83B7\u53D6",
1743
1718
  put: "\u653E\u7F6E",
1744
1719
  set: "\u8BBE\u7F6E",
@@ -1748,7 +1723,6 @@ var zh = {
1748
1723
  toggle: "\u5207\u6362",
1749
1724
  hide: "\u9690\u85CF",
1750
1725
  show: "\u663E\u793A",
1751
- // Control flow
1752
1726
  if: "\u5982\u679C",
1753
1727
  unless: "\u9664\u975E",
1754
1728
  repeat: "\u91CD\u590D",
@@ -1758,44 +1732,41 @@ var zh = {
1758
1732
  continue: "\u7EE7\u7EED",
1759
1733
  break: "\u4E2D\u65AD",
1760
1734
  halt: "\u505C\u6B62",
1761
- // Async
1762
1735
  wait: "\u7B49\u5F85",
1763
1736
  fetch: "\u83B7\u53D6",
1764
1737
  call: "\u8C03\u7528",
1765
1738
  return: "\u8FD4\u56DE",
1766
- // Other commands
1767
1739
  make: "\u5236\u4F5C",
1768
1740
  log: "\u65E5\u5FD7",
1769
1741
  throw: "\u629B\u51FA",
1770
1742
  catch: "\u6355\u83B7",
1771
1743
  measure: "\u6D4B\u91CF",
1772
1744
  transition: "\u8FC7\u6E21",
1773
- // Data Commands
1774
1745
  increment: "\u589E\u52A0",
1775
1746
  decrement: "\u51CF\u5C11",
1776
1747
  default: "\u9ED8\u8BA4",
1777
- // Navigation Commands
1778
1748
  go: "\u524D\u5F80",
1779
1749
  pushUrl: "\u63A8\u9001\u7F51\u5740",
1780
1750
  replaceUrl: "\u66FF\u6362\u7F51\u5740",
1781
- // Utility Commands
1782
1751
  copy: "\u590D\u5236",
1783
1752
  pick: "\u9009\u53D6",
1784
1753
  beep: "\u8702\u9E23",
1785
- // Advanced Commands
1786
1754
  js: "JS\u6267\u884C",
1787
1755
  async: "\u5F02\u6B65",
1788
1756
  render: "\u6E32\u67D3",
1789
- // Animation Commands
1790
1757
  swap: "\u4EA4\u6362",
1791
1758
  morph: "\u53D8\u5F62",
1792
1759
  settle: "\u7A33\u5B9A",
1793
- // Content Commands
1794
1760
  append: "\u8FFD\u52A0",
1795
- // Control Flow
1796
1761
  exit: "\u9000\u51FA",
1797
- // Behaviors
1798
- install: "\u5B89\u88C5"
1762
+ install: "\u5B89\u88C5",
1763
+ breakpoint: "\u65AD\u70B9",
1764
+ clear: "\u6E05\u9664",
1765
+ close: "\u5173\u95ED",
1766
+ open: "\u6253\u5F00",
1767
+ select: "\u9009\u62E9",
1768
+ clone: "\u514B\u9686",
1769
+ prepend: "\u524D\u7F6E"
1799
1770
  },
1800
1771
  modifiers: {
1801
1772
  to: "\u5230",
@@ -1856,13 +1827,13 @@ var zh = {
1856
1827
  includes: "\u5305\u62EC",
1857
1828
  equals: "\u7B49\u4E8E",
1858
1829
  has: "\u6709",
1859
- // universal "have"
1860
1830
  have: "\u6709",
1861
- // same character for first/third person
1862
1831
  then: "\u90A3\u4E48",
1863
1832
  else: "\u5426\u5219",
1864
1833
  otherwise: "\u8981\u4E0D\u7136",
1865
- end: "\u7ED3\u675F"
1834
+ end: "\u7ED3\u675F",
1835
+ live: "\u5B9E\u65F6",
1836
+ changes: "\u6539\u53D8\u65F6"
1866
1837
  },
1867
1838
  temporal: {
1868
1839
  seconds: "\u79D2",
@@ -1885,16 +1856,12 @@ var zh = {
1885
1856
  undefined: "\u672A\u5B9A\u4E49",
1886
1857
  it: "\u5B83",
1887
1858
  its: "\u5B83\u7684",
1888
- // REVIEW: native speaker
1889
1859
  me: "\u6211",
1890
1860
  my: "\u6211\u7684",
1891
1861
  myself: "\u6211\u81EA\u5DF1",
1892
1862
  you: "\u4F60",
1893
- // REVIEW: native speaker
1894
1863
  your: "\u4F60\u7684",
1895
- // REVIEW: native speaker
1896
1864
  yourself: "\u4F60\u81EA\u5DF1",
1897
- // REVIEW: native speaker
1898
1865
  element: "\u5143\u7D20",
1899
1866
  target: "\u76EE\u6807",
1900
1867
  detail: "\u8BE6\u60C5",
@@ -1916,7 +1883,6 @@ var zh = {
1916
1883
  properties: "\u7279\u6027\u96C6"
1917
1884
  },
1918
1885
  expressions: {
1919
- // Positional
1920
1886
  first: "\u7B2C\u4E00\u4E2A",
1921
1887
  last: "\u6700\u540E\u4E00\u4E2A",
1922
1888
  next: "\u4E0B\u4E00\u4E2A",
@@ -1924,18 +1890,20 @@ var zh = {
1924
1890
  prev: "\u4E0A\u4E2A",
1925
1891
  at: "\u5728",
1926
1892
  random: "\u968F\u673A",
1927
- // DOM Traversal
1928
1893
  closest: "\u6700\u8FD1\u7684",
1929
1894
  parent: "\u7236\u7EA7",
1930
1895
  children: "\u5B50\u7EA7",
1931
1896
  within: "\u4E4B\u5185",
1932
- // Emptiness/Existence
1933
1897
  no: "\u6CA1\u6709",
1934
1898
  empty: "\u7A7A\u7684",
1935
1899
  some: "\u4E00\u4E9B",
1936
- // String operations
1937
1900
  "starts with": "\u4EE5\u5F00\u5934",
1938
- "ends with": "\u4EE5\u7ED3\u5C3E"
1901
+ "ends with": "\u4EE5\u7ED3\u5C3E",
1902
+ "ignoring case": "\u5FFD\u7565\u5927\u5C0F\u5199",
1903
+ "sorted by": "\u6309_\u6392\u5E8F",
1904
+ "mapped to": "\u6620\u5C04\u4E3A",
1905
+ "split by": "\u6309_\u5206\u5272",
1906
+ "joined by": "\u7528_\u8FDE\u63A5"
1939
1907
  }
1940
1908
  };
1941
1909
 
@@ -1947,12 +1915,10 @@ var zhKeywords = createKeywordProvider(zh, "zh", {
1947
1915
  // src/dictionaries/tr.ts
1948
1916
  var tr = {
1949
1917
  commands: {
1950
- // Event handling
1951
1918
  on: "\xFCzerinde",
1952
1919
  tell: "s\xF6yle",
1953
1920
  trigger: "tetikle",
1954
1921
  send: "g\xF6nder",
1955
- // DOM manipulation
1956
1922
  take: "al",
1957
1923
  put: "koy",
1958
1924
  set: "ayarla",
@@ -1962,7 +1928,6 @@ var tr = {
1962
1928
  toggle: "de\u011Fi\u015Ftir",
1963
1929
  hide: "gizle",
1964
1930
  show: "g\xF6ster",
1965
- // Control flow
1966
1931
  if: "e\u011Fer",
1967
1932
  unless: "de\u011Filse",
1968
1933
  repeat: "tekrarla",
@@ -1972,44 +1937,41 @@ var tr = {
1972
1937
  continue: "devam",
1973
1938
  break: "dur",
1974
1939
  halt: "durdur",
1975
- // Async
1976
1940
  wait: "bekle",
1977
1941
  fetch: "getir",
1978
1942
  call: "\xE7a\u011F\u0131r",
1979
1943
  return: "d\xF6n",
1980
- // Other commands
1981
1944
  make: "yap",
1982
1945
  log: "kaydet",
1983
1946
  throw: "f\u0131rlat",
1984
1947
  catch: "yakala",
1985
1948
  measure: "\xF6l\xE7",
1986
1949
  transition: "ge\xE7i\u015F",
1987
- // Data Commands
1988
1950
  increment: "art\u0131r",
1989
1951
  decrement: "azalt",
1990
1952
  default: "varsay\u0131lan",
1991
- // Navigation Commands
1992
1953
  go: "git",
1993
1954
  pushUrl: "urlEkle",
1994
1955
  replaceUrl: "urlDe\u011Fi\u015Ftir",
1995
- // Utility Commands
1996
1956
  copy: "kopyala",
1997
1957
  pick: "se\xE7",
1998
1958
  beep: "bip",
1999
- // Advanced Commands
2000
1959
  js: "js",
2001
1960
  async: "asenkron",
2002
1961
  render: "render",
2003
- // Animation Commands
2004
1962
  swap: "takas",
2005
1963
  morph: "d\xF6n\xFC\u015Ft\xFCr",
2006
1964
  settle: "sabitlen",
2007
- // Content Commands
2008
1965
  append: "ekle",
2009
- // Control Flow
2010
1966
  exit: "\xE7\u0131k",
2011
- // Behaviors
2012
- install: "kur"
1967
+ install: "kur",
1968
+ breakpoint: "kesme-noktas\u0131",
1969
+ clear: "temizle",
1970
+ close: "kapat",
1971
+ open: "a\xE7",
1972
+ select: "se\xE7",
1973
+ clone: "klonla",
1974
+ prepend: "ba\u015F\u0131naekle"
2013
1975
  },
2014
1976
  modifiers: {
2015
1977
  to: "e",
@@ -2059,9 +2021,7 @@ var tr = {
2059
2021
  },
2060
2022
  logical: {
2061
2023
  when: "iken",
2062
- // REVIEW: native speaker - could also be 'durumunda' (in case of) or 'olduğunda' (when it happens)
2063
2024
  where: "nerede",
2064
- // REVIEW: native speaker - element filter context
2065
2025
  and: "ve",
2066
2026
  or: "veya",
2067
2027
  not: "de\u011Fil",
@@ -2072,13 +2032,13 @@ var tr = {
2072
2032
  includes: "dahil",
2073
2033
  equals: "e\u015Fittir",
2074
2034
  has: "var",
2075
- // existence marker (context-based)
2076
2035
  have: "var",
2077
- // same for first/third person in Turkish
2078
2036
  then: "sonra",
2079
2037
  else: "yoksa",
2080
2038
  otherwise: "aksi_halde",
2081
- end: "son"
2039
+ end: "son",
2040
+ live: "canl\u0131",
2041
+ changes: "de\u011Fi\u015Fti\u011Finde"
2082
2042
  },
2083
2043
  temporal: {
2084
2044
  seconds: "saniye",
@@ -2101,16 +2061,12 @@ var tr = {
2101
2061
  undefined: "tan\u0131ms\u0131z",
2102
2062
  it: "o",
2103
2063
  its: "onun",
2104
- // REVIEW: native speaker
2105
2064
  me: "ben",
2106
2065
  my: "benim",
2107
2066
  myself: "kendim",
2108
2067
  you: "sen",
2109
- // REVIEW: native speaker - formal/informal
2110
2068
  your: "senin",
2111
- // REVIEW: native speaker - formal/informal
2112
2069
  yourself: "kendin",
2113
- // REVIEW: native speaker
2114
2070
  element: "\xF6\u011Fe",
2115
2071
  target: "hedef",
2116
2072
  detail: "detay",
@@ -2132,7 +2088,6 @@ var tr = {
2132
2088
  properties: "\xF6zellikler"
2133
2089
  },
2134
2090
  expressions: {
2135
- // Positional
2136
2091
  first: "ilk",
2137
2092
  last: "son",
2138
2093
  next: "sonraki",
@@ -2140,18 +2095,20 @@ var tr = {
2140
2095
  prev: "\xF6nc",
2141
2096
  at: "de",
2142
2097
  random: "rastgele",
2143
- // DOM Traversal
2144
2098
  closest: "en_yak\u0131n",
2145
2099
  parent: "ebeveyn",
2146
2100
  children: "\xE7ocuklar",
2147
2101
  within: "i\xE7inde",
2148
- // Emptiness/Existence
2149
2102
  no: "yok",
2150
2103
  empty: "bo\u015F",
2151
2104
  some: "baz\u0131",
2152
- // String operations
2153
2105
  "starts with": "ile ba\u015Flar",
2154
- "ends with": "ile biter"
2106
+ "ends with": "ile biter",
2107
+ "ignoring case": "b\xFCy\xFCk k\xFC\xE7\xFCk harf duyars\u0131z",
2108
+ "sorted by": "g\xF6re s\u0131ral\u0131",
2109
+ "mapped to": "ye d\xF6n\xFC\u015Ft\xFCr\xFClm\xFC\u015F",
2110
+ "split by": "ile b\xF6l\xFCnm\xFC\u015F",
2111
+ "joined by": "ile birle\u015Ftirilmi\u015F"
2155
2112
  }
2156
2113
  };
2157
2114
 
@@ -2163,12 +2120,10 @@ var trKeywords = createKeywordProvider(tr, "tr", {
2163
2120
  // src/dictionaries/id.ts
2164
2121
  var id = {
2165
2122
  commands: {
2166
- // Event handling
2167
2123
  on: "pada",
2168
2124
  tell: "katakan",
2169
2125
  trigger: "picu",
2170
2126
  send: "kirim",
2171
- // DOM manipulation
2172
2127
  take: "ambil",
2173
2128
  put: "taruh",
2174
2129
  set: "atur",
@@ -2178,7 +2133,6 @@ var id = {
2178
2133
  toggle: "ganti",
2179
2134
  hide: "sembunyikan",
2180
2135
  show: "tampilkan",
2181
- // Control flow
2182
2136
  if: "jika",
2183
2137
  unless: "kecuali",
2184
2138
  repeat: "ulangi",
@@ -2188,44 +2142,41 @@ var id = {
2188
2142
  continue: "lanjutkan",
2189
2143
  break: "hentikan",
2190
2144
  halt: "berhenti",
2191
- // Async
2192
2145
  wait: "tunggu",
2193
2146
  fetch: "ambil",
2194
2147
  call: "panggil",
2195
2148
  return: "kembali",
2196
- // Other commands
2197
2149
  make: "buat",
2198
2150
  log: "catat",
2199
2151
  throw: "lempar",
2200
2152
  catch: "tangkap",
2201
2153
  measure: "ukur",
2202
2154
  transition: "transisi",
2203
- // Data Commands
2204
2155
  increment: "tambahkan",
2205
2156
  decrement: "kurangi",
2206
2157
  default: "bawaan",
2207
- // Navigation Commands
2208
2158
  go: "pergi",
2209
2159
  pushUrl: "tambahUrl",
2210
2160
  replaceUrl: "gantiUrl",
2211
- // Utility Commands
2212
2161
  copy: "salin",
2213
2162
  pick: "pilih",
2214
2163
  beep: "bunyi",
2215
- // Advanced Commands
2216
2164
  js: "js",
2217
2165
  async: "asinkron",
2218
2166
  render: "tampilkan",
2219
- // Animation Commands
2220
2167
  swap: "tukar",
2221
2168
  morph: "ubah_bentuk",
2222
2169
  settle: "stabil",
2223
- // Content Commands
2224
2170
  append: "tambah_akhir",
2225
- // Control Flow
2226
2171
  exit: "keluar",
2227
- // Behaviors
2228
- install: "pasang"
2172
+ install: "pasang",
2173
+ breakpoint: "titik-henti",
2174
+ clear: "hapus",
2175
+ close: "tutup",
2176
+ open: "buka",
2177
+ select: "pilih",
2178
+ clone: "klon",
2179
+ prepend: "awali"
2229
2180
  },
2230
2181
  modifiers: {
2231
2182
  to: "ke",
@@ -2286,13 +2237,13 @@ var id = {
2286
2237
  includes: "termasuk",
2287
2238
  equals: "sama",
2288
2239
  has: "punya",
2289
- // possession verb (context-based)
2290
2240
  have: "punya",
2291
- // same for first/third person
2292
2241
  then: "lalu",
2293
2242
  else: "lainnya",
2294
2243
  otherwise: "sebaliknya",
2295
- end: "akhir"
2244
+ end: "akhir",
2245
+ live: "langsung",
2246
+ changes: "berubah"
2296
2247
  },
2297
2248
  temporal: {
2298
2249
  seconds: "detik",
@@ -2315,16 +2266,12 @@ var id = {
2315
2266
  undefined: "tidak_terdefinisi",
2316
2267
  it: "itu",
2317
2268
  its: "miliknya",
2318
- // REVIEW: native speaker
2319
2269
  me: "saya",
2320
2270
  my: "saya punya",
2321
2271
  myself: "saya sendiri",
2322
2272
  you: "kamu",
2323
- // REVIEW: native speaker - formal/informal
2324
2273
  your: "kamu punya",
2325
- // REVIEW: native speaker
2326
2274
  yourself: "kamu sendiri",
2327
- // REVIEW: native speaker
2328
2275
  element: "elemen",
2329
2276
  target: "target",
2330
2277
  detail: "detail",
@@ -2346,7 +2293,6 @@ var id = {
2346
2293
  properties: "properti_properti"
2347
2294
  },
2348
2295
  expressions: {
2349
- // Positional
2350
2296
  first: "pertama",
2351
2297
  last: "terakhir",
2352
2298
  next: "berikutnya",
@@ -2354,18 +2300,20 @@ var id = {
2354
2300
  prev: "sblm",
2355
2301
  at: "di",
2356
2302
  random: "acak",
2357
- // DOM Traversal
2358
2303
  closest: "terdekat",
2359
2304
  parent: "induk",
2360
2305
  children: "anak_anak",
2361
2306
  within: "dalam",
2362
- // Emptiness/Existence
2363
2307
  no: "tidak_ada",
2364
2308
  empty: "kosong",
2365
2309
  some: "beberapa",
2366
- // String operations
2367
2310
  "starts with": "dimulai dengan",
2368
- "ends with": "diakhiri dengan"
2311
+ "ends with": "diakhiri dengan",
2312
+ "ignoring case": "abaikan kapital",
2313
+ "sorted by": "diurutkan berdasarkan",
2314
+ "mapped to": "dipetakan ke",
2315
+ "split by": "dipisah oleh",
2316
+ "joined by": "digabung oleh"
2369
2317
  }
2370
2318
  };
2371
2319
 
@@ -2377,12 +2325,10 @@ var idKeywords = createKeywordProvider(id, "id", {
2377
2325
  // src/dictionaries/qu.ts
2378
2326
  var qu = {
2379
2327
  commands: {
2380
- // Event handling
2381
2328
  on: "kaqpi",
2382
2329
  tell: "niy",
2383
2330
  trigger: "kichay",
2384
2331
  send: "kachay",
2385
- // DOM manipulation
2386
2332
  take: "hurquy",
2387
2333
  put: "churay",
2388
2334
  set: "churay",
@@ -2392,7 +2338,6 @@ var qu = {
2392
2338
  toggle: "tikray",
2393
2339
  hide: "pakay",
2394
2340
  show: "rikuchiy",
2395
- // Control flow
2396
2341
  if: "sichus",
2397
2342
  unless: "mana_sichus",
2398
2343
  repeat: "kutichiy",
@@ -2402,44 +2347,41 @@ var qu = {
2402
2347
  continue: "purichiy",
2403
2348
  break: "p_akiy",
2404
2349
  halt: "sayay",
2405
- // Async
2406
2350
  wait: "suyay",
2407
2351
  fetch: "apamuy",
2408
2352
  call: "qayay",
2409
2353
  return: "kutimuy",
2410
- // Other commands
2411
2354
  make: "ruray",
2412
2355
  log: "qillqay",
2413
2356
  throw: "wikchuy",
2414
2357
  catch: "hapsiy",
2415
2358
  measure: "tupuy",
2416
2359
  transition: "tikray",
2417
- // Data Commands
2418
2360
  increment: "yapay",
2419
2361
  decrement: "pisiyachiy",
2420
2362
  default: "\xF1awpaq_kaq",
2421
- // Navigation Commands
2422
2363
  go: "riy",
2423
2364
  pushUrl: "url_tanqay",
2424
2365
  replaceUrl: "url_tikray",
2425
- // Utility Commands
2426
2366
  copy: "qillqay",
2427
2367
  pick: "akllay",
2428
2368
  beep: "waqay",
2429
- // Advanced Commands
2430
2369
  js: "js",
2431
2370
  async: "mana_suyaspa",
2432
2371
  render: "rikuchiy",
2433
- // Animation Commands
2434
2372
  swap: "rantin_tikray",
2435
2373
  morph: "tikrachiy",
2436
2374
  settle: "tiyay",
2437
- // Content Commands
2438
2375
  append: "qhipaman_yapay",
2439
- // Control Flow
2440
2376
  exit: "lluqsiy",
2441
- // Behaviors
2442
- install: "churay"
2377
+ install: "churay",
2378
+ breakpoint: "sayachinay",
2379
+ clear: "pichay",
2380
+ close: "wichqay",
2381
+ open: "kichay",
2382
+ select: "akllay",
2383
+ clone: "kikinchay",
2384
+ prepend: "\xF1awpachiy"
2443
2385
  },
2444
2386
  modifiers: {
2445
2387
  to: "man",
@@ -2500,13 +2442,13 @@ var qu = {
2500
2442
  includes: "churasqa",
2501
2443
  equals: "kikin",
2502
2444
  has: "kachkan",
2503
- // existence suffix (context-based)
2504
2445
  have: "kachkani",
2505
- // first-person with suffix
2506
2446
  then: "chayqa",
2507
2447
  else: "mana_chayqa",
2508
2448
  otherwise: "huk_kaqpi",
2509
- end: "tukuy"
2449
+ end: "tukuy",
2450
+ live: "kawsay",
2451
+ changes: "tukurikun"
2510
2452
  },
2511
2453
  temporal: {
2512
2454
  seconds: "sikundukuna",
@@ -2529,16 +2471,12 @@ var qu = {
2529
2471
  undefined: "mana_riqsisqa",
2530
2472
  it: "chay",
2531
2473
  its: "chaypaq",
2532
- // REVIEW: native speaker
2533
2474
  me: "noqa",
2534
2475
  my: "noqaq",
2535
2476
  myself: "noqa killa",
2536
2477
  you: "qam",
2537
- // REVIEW: native speaker
2538
2478
  your: "qampaq",
2539
- // REVIEW: native speaker
2540
2479
  yourself: "qam killa",
2541
- // REVIEW: native speaker
2542
2480
  element: "raku",
2543
2481
  target: "punta",
2544
2482
  detail: "sut_iy",
@@ -2560,7 +2498,6 @@ var qu = {
2560
2498
  properties: "kanaykuna"
2561
2499
  },
2562
2500
  expressions: {
2563
- // Positional
2564
2501
  first: "\xF1awpaq",
2565
2502
  last: "qhipa",
2566
2503
  next: "qhipantin",
@@ -2568,18 +2505,20 @@ var qu = {
2568
2505
  prev: "\xF1awpaq",
2569
2506
  at: "pi",
2570
2507
  random: "imaymanata",
2571
- // DOM Traversal
2572
2508
  closest: "aswan_kaylla",
2573
2509
  parent: "mama_tayta",
2574
2510
  children: "wawakuna",
2575
2511
  within: "ukupi",
2576
- // Emptiness/Existence
2577
2512
  no: "mana_kanchu",
2578
2513
  empty: "ch_usaq",
2579
2514
  some: "wakin",
2580
- // String operations
2581
2515
  "starts with": "qallarisqa wan",
2582
- "ends with": "tukusqa wan"
2516
+ "ends with": "tukusqa wan",
2517
+ "ignoring case": "hatun-huchuy qillqata-saqiy",
2518
+ "sorted by": "niqpi ruwasqa",
2519
+ "mapped to": "kay kaqman",
2520
+ "split by": "rakisqa",
2521
+ "joined by": "hu\xF1usqa"
2583
2522
  }
2584
2523
  };
2585
2524
 
@@ -2591,12 +2530,10 @@ var quKeywords = createKeywordProvider(qu, "qu", {
2591
2530
  // src/dictionaries/sw.ts
2592
2531
  var sw = {
2593
2532
  commands: {
2594
- // Event handling
2595
2533
  on: "kwenye",
2596
2534
  tell: "ambia",
2597
2535
  trigger: "chochea",
2598
2536
  send: "tuma",
2599
- // DOM manipulation
2600
2537
  take: "chukua",
2601
2538
  put: "weka",
2602
2539
  set: "weka",
@@ -2606,7 +2543,6 @@ var sw = {
2606
2543
  toggle: "badilisha",
2607
2544
  hide: "ficha",
2608
2545
  show: "onyesha",
2609
- // Control flow
2610
2546
  if: "kama",
2611
2547
  unless: "isipokuwa",
2612
2548
  repeat: "rudia",
@@ -2616,44 +2552,41 @@ var sw = {
2616
2552
  continue: "endelea",
2617
2553
  break: "vunja",
2618
2554
  halt: "simama",
2619
- // Async
2620
2555
  wait: "ngoja",
2621
2556
  fetch: "leta",
2622
2557
  call: "ita",
2623
2558
  return: "rudi",
2624
- // Other commands
2625
2559
  make: "fanya",
2626
2560
  log: "andika",
2627
2561
  throw: "tupa",
2628
2562
  catch: "shika",
2629
2563
  measure: "pima",
2630
2564
  transition: "mpito",
2631
- // Data Commands
2632
2565
  increment: "ongeza",
2633
2566
  decrement: "punguza",
2634
2567
  default: "msingi",
2635
- // Navigation Commands
2636
2568
  go: "nenda",
2637
2569
  pushUrl: "sukumaUrl",
2638
2570
  replaceUrl: "badilishaUrl",
2639
- // Utility Commands
2640
2571
  copy: "nakili",
2641
2572
  pick: "chagua",
2642
2573
  beep: "lia",
2643
- // Advanced Commands
2644
2574
  js: "js",
2645
2575
  async: "sainkroni",
2646
2576
  render: "chora",
2647
- // Animation Commands
2648
2577
  swap: "badilishana",
2649
2578
  morph: "badilishaUmbo",
2650
2579
  settle: "tulia",
2651
- // Content Commands
2652
2580
  append: "ongezaMwisho",
2653
- // Control Flow
2654
2581
  exit: "toka",
2655
- // Behaviors
2656
- install: "sakinisha"
2582
+ install: "sakinisha",
2583
+ breakpoint: "nukta-simama",
2584
+ clear: "futa",
2585
+ close: "funga",
2586
+ open: "fungua",
2587
+ select: "chagua",
2588
+ clone: "nakili",
2589
+ prepend: "tanguliza"
2657
2590
  },
2658
2591
  modifiers: {
2659
2592
  to: "kwa",
@@ -2714,13 +2647,13 @@ var sw = {
2714
2647
  includes: "pamoja",
2715
2648
  equals: "sawa",
2716
2649
  has: "ana",
2717
- // third-person: yeye ana
2718
2650
  have: "nina",
2719
- // first-person: mimi nina
2720
2651
  then: "kisha",
2721
2652
  else: "sivyo",
2722
2653
  otherwise: "vinginevyo",
2723
- end: "mwisho"
2654
+ end: "mwisho",
2655
+ live: "moja_kwa_moja",
2656
+ changes: "inabadilika"
2724
2657
  },
2725
2658
  temporal: {
2726
2659
  seconds: "sekunde",
@@ -2743,16 +2676,12 @@ var sw = {
2743
2676
  undefined: "haijafafanuliwa",
2744
2677
  it: "hiyo",
2745
2678
  its: "yake",
2746
- // REVIEW: native speaker
2747
2679
  me: "mimi",
2748
2680
  my: "yangu",
2749
2681
  myself: "mimi mwenyewe",
2750
2682
  you: "wewe",
2751
- // REVIEW: native speaker
2752
2683
  your: "yako",
2753
- // REVIEW: native speaker
2754
2684
  yourself: "wewe mwenyewe",
2755
- // REVIEW: native speaker
2756
2685
  element: "kipengele",
2757
2686
  target: "lengo",
2758
2687
  detail: "maelezo",
@@ -2774,7 +2703,6 @@ var sw = {
2774
2703
  properties: "mali"
2775
2704
  },
2776
2705
  expressions: {
2777
- // Positional
2778
2706
  first: "kwanza",
2779
2707
  last: "mwisho",
2780
2708
  next: "ijayo",
@@ -2782,18 +2710,20 @@ var sw = {
2782
2710
  prev: "awali",
2783
2711
  at: "katika",
2784
2712
  random: "nasibu",
2785
- // DOM Traversal
2786
2713
  closest: "karibu_zaidi",
2787
2714
  parent: "mzazi",
2788
2715
  children: "watoto",
2789
2716
  within: "ndani_ya",
2790
- // Emptiness/Existence
2791
2717
  no: "hakuna",
2792
2718
  empty: "tupu",
2793
2719
  some: "baadhi",
2794
- // String operations
2795
2720
  "starts with": "huanza na",
2796
- "ends with": "huisha na"
2721
+ "ends with": "huisha na",
2722
+ "ignoring case": "puuza herufi kubwa ndogo",
2723
+ "sorted by": "kupangwa kwa",
2724
+ "mapped to": "kubadilishwa kuwa",
2725
+ "split by": "kugawanywa kwa",
2726
+ "joined by": "kuunganishwa kwa"
2797
2727
  }
2798
2728
  };
2799
2729
 
@@ -2805,12 +2735,10 @@ var swKeywords = createKeywordProvider(sw, "sw", {
2805
2735
  // src/dictionaries/pt.ts
2806
2736
  var pt = {
2807
2737
  commands: {
2808
- // Event handling
2809
2738
  on: "em",
2810
2739
  tell: "dizer",
2811
2740
  trigger: "disparar",
2812
2741
  send: "enviar",
2813
- // DOM manipulation
2814
2742
  take: "pegar",
2815
2743
  put: "colocar",
2816
2744
  set: "definir",
@@ -2820,10 +2748,8 @@ var pt = {
2820
2748
  toggle: "alternar",
2821
2749
  hide: "esconder",
2822
2750
  show: "mostrar",
2823
- // Control flow
2824
2751
  if: "se",
2825
2752
  unless: "a_menos",
2826
- // REVIEW: native speaker - multi-word
2827
2753
  repeat: "repetir",
2828
2754
  for: "para",
2829
2755
  while: "enquanto",
@@ -2831,44 +2757,41 @@ var pt = {
2831
2757
  continue: "continuar",
2832
2758
  break: "parar",
2833
2759
  halt: "interromper",
2834
- // Async
2835
2760
  wait: "esperar",
2836
2761
  fetch: "buscar",
2837
2762
  call: "chamar",
2838
2763
  return: "retornar",
2839
- // Other commands
2840
2764
  make: "fazer",
2841
2765
  log: "registrar",
2842
2766
  throw: "lan\xE7ar",
2843
2767
  catch: "capturar",
2844
2768
  measure: "medir",
2845
2769
  transition: "transi\xE7\xE3o",
2846
- // Data Commands
2847
2770
  increment: "incrementar",
2848
2771
  decrement: "decrementar",
2849
2772
  default: "padr\xE3o",
2850
- // Navigation Commands
2851
2773
  go: "ir",
2852
2774
  pushUrl: "pushUrl",
2853
2775
  replaceUrl: "substituirUrl",
2854
- // Utility Commands
2855
2776
  copy: "copiar",
2856
2777
  pick: "escolher",
2857
2778
  beep: "apitar",
2858
- // Advanced Commands
2859
2779
  js: "js",
2860
2780
  async: "ass\xEDncrono",
2861
2781
  render: "renderizar",
2862
- // Animation Commands
2863
2782
  swap: "trocar",
2864
2783
  morph: "transformar",
2865
2784
  settle: "estabilizar",
2866
- // Content Commands
2867
2785
  append: "anexar",
2868
- // Control Flow
2869
2786
  exit: "sair",
2870
- // Behaviors
2871
- install: "instalar"
2787
+ install: "instalar",
2788
+ breakpoint: "ponto-interrup\xE7\xE3o",
2789
+ clear: "limpar",
2790
+ close: "fechar",
2791
+ open: "abrir",
2792
+ select: "selecionar",
2793
+ clone: "clonar",
2794
+ prepend: "preceder"
2872
2795
  },
2873
2796
  modifiers: {
2874
2797
  to: "para",
@@ -2929,14 +2852,13 @@ var pt = {
2929
2852
  includes: "inclui",
2930
2853
  equals: "igual",
2931
2854
  has: "tem",
2932
- // third-person: ele/ela tem
2933
2855
  have: "tenho",
2934
- // first-person: eu tenho
2935
2856
  then: "ent\xE3o",
2936
2857
  else: "sen\xE3o",
2937
2858
  otherwise: "caso_contr\xE1rio",
2938
- // REVIEW: native speaker
2939
- end: "fim"
2859
+ end: "fim",
2860
+ live: "vivo",
2861
+ changes: "muda"
2940
2862
  },
2941
2863
  temporal: {
2942
2864
  seconds: "segundos",
@@ -2962,11 +2884,9 @@ var pt = {
2962
2884
  me: "eu",
2963
2885
  my: "meu",
2964
2886
  myself: "eu mesmo",
2965
- // REVIEW: native speaker
2966
2887
  you: "voc\xEA",
2967
2888
  your: "seu",
2968
2889
  yourself: "voc\xEA mesmo",
2969
- // REVIEW: native speaker
2970
2890
  element: "elemento",
2971
2891
  target: "alvo",
2972
2892
  detail: "detalhe",
@@ -2988,7 +2908,6 @@ var pt = {
2988
2908
  properties: "propriedades"
2989
2909
  },
2990
2910
  expressions: {
2991
- // Positional
2992
2911
  first: "primeiro",
2993
2912
  last: "\xFAltimo",
2994
2913
  next: "pr\xF3ximo",
@@ -2996,19 +2915,20 @@ var pt = {
2996
2915
  prev: "ant",
2997
2916
  at: "em",
2998
2917
  random: "aleat\xF3rio",
2999
- // DOM Traversal
3000
2918
  closest: "mais_pr\xF3ximo",
3001
- // REVIEW: native speaker - multi-word
3002
2919
  parent: "pai",
3003
2920
  children: "filhos",
3004
2921
  within: "dentro",
3005
- // Emptiness/Existence
3006
2922
  no: "nenhum",
3007
2923
  empty: "vazio",
3008
2924
  some: "algum",
3009
- // String operations
3010
2925
  "starts with": "come\xE7a com",
3011
- "ends with": "termina com"
2926
+ "ends with": "termina com",
2927
+ "ignoring case": "ignorando mai\xFAsculas",
2928
+ "sorted by": "ordenado por",
2929
+ "mapped to": "mapeado para",
2930
+ "split by": "dividido por",
2931
+ "joined by": "unido por"
3012
2932
  }
3013
2933
  };
3014
2934
 
@@ -3020,12 +2940,10 @@ var ptKeywords = createKeywordProvider(pt, "pt", {
3020
2940
  // src/dictionaries/it.ts
3021
2941
  var it = {
3022
2942
  commands: {
3023
- // Event handling
3024
2943
  on: "su",
3025
2944
  tell: "dire",
3026
2945
  trigger: "scatenare",
3027
2946
  send: "inviare",
3028
- // DOM manipulation
3029
2947
  take: "prendere",
3030
2948
  put: "mettere",
3031
2949
  set: "impostare",
@@ -3035,7 +2953,6 @@ var it = {
3035
2953
  toggle: "commutare",
3036
2954
  hide: "nascondere",
3037
2955
  show: "mostrare",
3038
- // Control flow
3039
2956
  if: "se",
3040
2957
  unless: "a meno che",
3041
2958
  repeat: "ripetere",
@@ -3045,44 +2962,41 @@ var it = {
3045
2962
  continue: "continuare",
3046
2963
  break: "interrompere",
3047
2964
  halt: "fermare",
3048
- // Async
3049
2965
  wait: "aspettare",
3050
2966
  fetch: "recuperare",
3051
2967
  call: "chiamare",
3052
2968
  return: "ritornare",
3053
- // Other commands
3054
2969
  make: "fare",
3055
2970
  log: "registrare",
3056
2971
  throw: "lanciare",
3057
2972
  catch: "catturare",
3058
2973
  measure: "misurare",
3059
2974
  transition: "transizione",
3060
- // Data Commands
3061
2975
  increment: "incrementare",
3062
2976
  decrement: "decrementare",
3063
2977
  default: "predefinito",
3064
- // Navigation Commands
3065
2978
  go: "andare",
3066
2979
  pushUrl: "pushUrl",
3067
2980
  replaceUrl: "sostituireUrl",
3068
- // Utility Commands
3069
2981
  copy: "copiare",
3070
2982
  pick: "scegliere",
3071
2983
  beep: "beep",
3072
- // Advanced Commands
3073
2984
  js: "js",
3074
2985
  async: "asincrono",
3075
2986
  render: "renderizzare",
3076
- // Animation Commands
3077
2987
  swap: "scambiare",
3078
2988
  morph: "trasformare",
3079
2989
  settle: "stabilizzare",
3080
- // Content Commands
3081
2990
  append: "aggiungere",
3082
- // Control Flow
3083
2991
  exit: "uscire",
3084
- // Behaviors
3085
- install: "installare"
2992
+ install: "installare",
2993
+ breakpoint: "punto-interruzione",
2994
+ clear: "cancellare",
2995
+ close: "chiudere",
2996
+ open: "aprire",
2997
+ select: "selezionare",
2998
+ clone: "clonare",
2999
+ prepend: "anteporre"
3086
3000
  },
3087
3001
  modifiers: {
3088
3002
  to: "a",
@@ -3143,13 +3057,13 @@ var it = {
3143
3057
  includes: "include",
3144
3058
  equals: "uguale",
3145
3059
  has: "ha",
3146
- // third-person: lui/lei ha
3147
3060
  have: "ho",
3148
- // first-person: io ho
3149
3061
  then: "allora",
3150
3062
  else: "altrimenti",
3151
3063
  otherwise: "altrimenti",
3152
- end: "fine"
3064
+ end: "fine",
3065
+ live: "vivo",
3066
+ changes: "cambia"
3153
3067
  },
3154
3068
  temporal: {
3155
3069
  seconds: "secondi",
@@ -3199,7 +3113,6 @@ var it = {
3199
3113
  properties: "propriet\xE0"
3200
3114
  },
3201
3115
  expressions: {
3202
- // Positional
3203
3116
  first: "primo",
3204
3117
  last: "ultimo",
3205
3118
  next: "prossimo",
@@ -3207,18 +3120,20 @@ var it = {
3207
3120
  prev: "prec",
3208
3121
  at: "a",
3209
3122
  random: "casuale",
3210
- // DOM Traversal
3211
3123
  closest: "pi\xF9vicino",
3212
3124
  parent: "genitore",
3213
3125
  children: "figli",
3214
3126
  within: "dentro",
3215
- // Emptiness/Existence
3216
3127
  no: "nessun",
3217
3128
  empty: "vuoto",
3218
3129
  some: "qualche",
3219
- // String operations
3220
3130
  "starts with": "inizia con",
3221
- "ends with": "finisce con"
3131
+ "ends with": "finisce con",
3132
+ "ignoring case": "ignorando maiuscole",
3133
+ "sorted by": "ordinato per",
3134
+ "mapped to": "trasformato in",
3135
+ "split by": "diviso per",
3136
+ "joined by": "unito per"
3222
3137
  }
3223
3138
  };
3224
3139
 
@@ -3286,7 +3201,12 @@ var vi = {
3286
3201
  install: "c\xE0i \u0111\u1EB7t",
3287
3202
  clone: "sao ch\xE9p",
3288
3203
  prepend: "th\xEAm \u0111\u1EA7u",
3289
- else: "kh\xF4ng th\xEC"
3204
+ else: "kh\xF4ng th\xEC",
3205
+ breakpoint: "\u0111i\u1EC3m-d\u1EEBng",
3206
+ clear: "x\xF3a",
3207
+ close: "\u0111\xF3ng",
3208
+ open: "m\u1EDF",
3209
+ select: "ch\u1ECDn"
3290
3210
  },
3291
3211
  modifiers: {
3292
3212
  into: "v\xE0o",
@@ -3303,6 +3223,7 @@ var vi = {
3303
3223
  in: "trong",
3304
3224
  at: "t\u1EA1i",
3305
3225
  of: "c\u1EE7a",
3226
+ between: "gi\u1EEFa",
3306
3227
  the: "",
3307
3228
  times: "l\u1EA7n"
3308
3229
  },
@@ -3321,6 +3242,7 @@ var vi = {
3321
3242
  mouseleave: "chu\u1ED9t r\u1EDDi",
3322
3243
  focus: "t\u1EADp trung",
3323
3244
  blur: "m\u1EA5t t\u1EADp trung",
3245
+ reset: "\u0111\u1EB7t-l\u1EA1i",
3324
3246
  load: "t\u1EA3i",
3325
3247
  scroll: "cu\u1ED9n",
3326
3248
  resize: "\u0111\u1ED5i k\xEDch th\u01B0\u1EDBc"
@@ -3344,7 +3266,9 @@ var vi = {
3344
3266
  null: "r\u1ED7ng",
3345
3267
  else: "kh\xF4ng th\xEC",
3346
3268
  end: "k\u1EBFt th\xFAc",
3347
- then: "r\u1ED3i"
3269
+ then: "r\u1ED3i",
3270
+ live: "tr\u1EF1c ti\u1EBFp",
3271
+ changes: "thay \u0111\u1ED5i"
3348
3272
  },
3349
3273
  temporal: {
3350
3274
  now: "b\xE2y gi\u1EDD",
@@ -3408,7 +3332,15 @@ var vi = {
3408
3332
  previous: "tr\u01B0\u1EDBc \u0111\xF3",
3409
3333
  parent: "cha",
3410
3334
  children: "con",
3411
- closest: "g\u1EA7n nh\u1EA5t"
3335
+ closest: "g\u1EA7n nh\u1EA5t",
3336
+ empty: "l\xE0m-r\u1ED7ng",
3337
+ "starts with": "b\u1EAFt \u0111\u1EA7u b\u1EB1ng",
3338
+ "ends with": "k\u1EBFt th\xFAc b\u1EB1ng",
3339
+ "ignoring case": "kh\xF4ng ph\xE2n bi\u1EC7t hoa th\u01B0\u1EDDng",
3340
+ "sorted by": "s\u1EAFp x\u1EBFp theo",
3341
+ "mapped to": "\xE1nh x\u1EA1 th\xE0nh",
3342
+ "split by": "t\xE1ch b\u1EDFi",
3343
+ "joined by": "n\u1ED1i b\u1EDFi"
3412
3344
  }
3413
3345
  };
3414
3346
 
@@ -3420,12 +3352,10 @@ var viKeywords = createKeywordProvider(vi, "vi", {
3420
3352
  // src/dictionaries/pl.ts
3421
3353
  var pl = {
3422
3354
  commands: {
3423
- // Event handling
3424
3355
  on: "gdy",
3425
3356
  tell: "powiedz",
3426
3357
  trigger: "wywo\u0142aj",
3427
3358
  send: "wy\u015Blij",
3428
- // DOM manipulation
3429
3359
  take: "we\u017A",
3430
3360
  put: "umie\u015B\u0107",
3431
3361
  set: "ustaw",
@@ -3435,7 +3365,6 @@ var pl = {
3435
3365
  toggle: "prze\u0142\u0105cz",
3436
3366
  hide: "ukryj",
3437
3367
  show: "poka\u017C",
3438
- // Control flow
3439
3368
  if: "je\u015Bli",
3440
3369
  unless: "chyba",
3441
3370
  repeat: "powt\xF3rz",
@@ -3445,44 +3374,41 @@ var pl = {
3445
3374
  continue: "kontynuuj",
3446
3375
  break: "przerwij",
3447
3376
  halt: "zatrzymaj",
3448
- // Async
3449
3377
  wait: "czekaj",
3450
3378
  fetch: "pobierz",
3451
3379
  call: "wywo\u0142aj",
3452
3380
  return: "zwr\xF3\u0107",
3453
- // Other commands
3454
3381
  make: "utw\xF3rz",
3455
3382
  log: "loguj",
3456
3383
  throw: "rzu\u0107",
3457
3384
  catch: "z\u0142ap",
3458
3385
  measure: "zmierz",
3459
3386
  transition: "animuj",
3460
- // Data Commands
3461
3387
  increment: "zwi\u0119ksz",
3462
3388
  decrement: "zmniejsz",
3463
3389
  default: "domy\u015Blnie",
3464
- // Navigation Commands
3465
3390
  go: "id\u017A",
3466
3391
  pushUrl: "dodajUrl",
3467
3392
  replaceUrl: "zamie\u0144Url",
3468
- // Utility Commands
3469
3393
  copy: "kopiuj",
3470
3394
  pick: "wybierz",
3471
3395
  beep: "sygna\u0142",
3472
- // Advanced Commands
3473
3396
  js: "js",
3474
3397
  async: "async",
3475
3398
  render: "renderuj",
3476
- // Animation Commands
3477
3399
  swap: "zamie\u0144",
3478
3400
  morph: "przekszta\u0142\u0107",
3479
3401
  settle: "ustabilizuj",
3480
- // Content Commands
3481
3402
  append: "do\u0142\u0105cz",
3482
- // Control Flow
3483
3403
  exit: "wyjd\u017A",
3484
- // Behaviors
3485
- install: "zainstaluj"
3404
+ install: "zainstaluj",
3405
+ breakpoint: "punkt-przerwania",
3406
+ clear: "wyczy\u015B\u0107",
3407
+ close: "zamknij",
3408
+ open: "otw\xF3rz",
3409
+ select: "wybierz",
3410
+ clone: "sklonuj",
3411
+ prepend: "poprzed\u017A"
3486
3412
  },
3487
3413
  modifiers: {
3488
3414
  to: "do",
@@ -3543,13 +3469,13 @@ var pl = {
3543
3469
  includes: "obejmuje",
3544
3470
  equals: "r\xF3wna si\u0119",
3545
3471
  has: "ma",
3546
- // third-person: on/ona ma
3547
3472
  have: "mam",
3548
- // first-person: ja mam
3549
3473
  then: "wtedy",
3550
3474
  else: "inaczej",
3551
3475
  otherwise: "wpp",
3552
- end: "koniec"
3476
+ end: "koniec",
3477
+ live: "\u017Cywy",
3478
+ changes: "zmienia"
3553
3479
  },
3554
3480
  temporal: {
3555
3481
  seconds: "sekundy",
@@ -3599,7 +3525,6 @@ var pl = {
3599
3525
  properties: "w\u0142a\u015Bciwo\u015Bci"
3600
3526
  },
3601
3527
  expressions: {
3602
- // Positional
3603
3528
  first: "pierwszy",
3604
3529
  last: "ostatni",
3605
3530
  next: "nast\u0119pny",
@@ -3607,18 +3532,20 @@ var pl = {
3607
3532
  prev: "poprz",
3608
3533
  at: "przy",
3609
3534
  random: "losowy",
3610
- // DOM Traversal
3611
3535
  closest: "najbli\u017Cszy",
3612
3536
  parent: "rodzic",
3613
3537
  children: "dzieci",
3614
3538
  within: "wewn\u0105trz",
3615
- // Emptiness/Existence
3616
3539
  no: "brak",
3617
3540
  empty: "pusty",
3618
3541
  some: "jaki\u015B",
3619
- // String operations
3620
3542
  "starts with": "zaczyna si\u0119 od",
3621
- "ends with": "ko\u0144czy si\u0119 na"
3543
+ "ends with": "ko\u0144czy si\u0119 na",
3544
+ "ignoring case": "ignoruj\u0105c wielko\u015B\u0107 liter",
3545
+ "sorted by": "sortowane wed\u0142ug",
3546
+ "mapped to": "przekszta\u0142cone na",
3547
+ "split by": "podzielone przez",
3548
+ "joined by": "po\u0142\u0105czone przez"
3622
3549
  }
3623
3550
  };
3624
3551
 
@@ -3630,12 +3557,10 @@ var plKeywords = createKeywordProvider(pl, "pl", {
3630
3557
  // src/dictionaries/ru.ts
3631
3558
  var russianDictionary = {
3632
3559
  commands: {
3633
- // Event handling
3634
3560
  on: "\u043F\u0440\u0438",
3635
3561
  tell: "\u0441\u043A\u0430\u0437\u0430\u0442\u044C",
3636
3562
  trigger: "\u0432\u044B\u0437\u0432\u0430\u0442\u044C",
3637
3563
  send: "\u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
3638
- // DOM manipulation
3639
3564
  take: "\u0432\u0437\u044F\u0442\u044C",
3640
3565
  put: "\u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C",
3641
3566
  set: "\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",
@@ -3645,7 +3570,6 @@ var russianDictionary = {
3645
3570
  toggle: "\u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C",
3646
3571
  hide: "\u0441\u043A\u0440\u044B\u0442\u044C",
3647
3572
  show: "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C",
3648
- // Control flow
3649
3573
  if: "\u0435\u0441\u043B\u0438",
3650
3574
  unless: "\u0435\u0441\u043B\u0438_\u043D\u0435",
3651
3575
  repeat: "\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",
@@ -3655,53 +3579,46 @@ var russianDictionary = {
3655
3579
  continue: "\u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C",
3656
3580
  break: "\u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C",
3657
3581
  halt: "\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",
3658
- // Async
3659
3582
  wait: "\u0436\u0434\u0430\u0442\u044C",
3660
3583
  fetch: "\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",
3661
3584
  call: "\u0432\u044B\u0437\u0432\u0430\u0442\u044C",
3662
3585
  return: "\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
3663
- // Other commands
3664
3586
  make: "\u0441\u043E\u0437\u0434\u0430\u0442\u044C",
3665
3587
  log: "\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C",
3666
3588
  throw: "\u0431\u0440\u043E\u0441\u0438\u0442\u044C",
3667
3589
  catch: "\u043F\u043E\u0439\u043C\u0430\u0442\u044C",
3668
3590
  measure: "\u0438\u0437\u043C\u0435\u0440\u0438\u0442\u044C",
3669
3591
  transition: "\u0430\u043D\u0438\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3670
- // Data Commands
3671
3592
  increment: "\u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C",
3672
3593
  decrement: "\u0443\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C",
3673
3594
  default: "\u043F\u043E_\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",
3674
- // Navigation Commands
3675
3595
  go: "\u043F\u0435\u0440\u0435\u0439\u0442\u0438",
3676
3596
  pushUrl: "\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C_url",
3677
3597
  replaceUrl: "\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C_url",
3678
- // Utility Commands
3679
3598
  copy: "\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3680
3599
  pick: "\u0432\u044B\u0431\u0440\u0430\u0442\u044C",
3681
3600
  beep: "\u0437\u0432\u0443\u043A",
3682
- // Advanced Commands
3683
3601
  js: "js",
3684
3602
  async: "\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u043E",
3685
3603
  render: "\u043E\u0442\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u044C",
3686
- // Animation Commands
3687
3604
  swap: "\u043F\u043E\u043C\u0435\u043D\u044F\u0442\u044C",
3688
3605
  morph: "\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3689
3606
  settle: "\u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3690
- // Content Commands
3691
3607
  append: "\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C_\u0432_\u043A\u043E\u043D\u0435\u0446",
3692
- // Control Flow
3693
3608
  exit: "\u0432\u044B\u0439\u0442\u0438",
3694
3609
  else: "\u0438\u043D\u0430\u0447\u0435",
3695
- // Behaviors
3696
3610
  install: "\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",
3697
3611
  init: "\u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3698
3612
  behavior: "\u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435",
3699
- // Focus
3700
3613
  focus: "\u0441\u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3701
3614
  blur: "\u0440\u0430\u0437\u043C\u044B\u0442\u044C",
3702
- // Clone
3703
3615
  clone: "\u043A\u043B\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3704
- prepend: "\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C_\u0432_\u043D\u0430\u0447\u0430\u043B\u043E"
3616
+ prepend: "\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C_\u0432_\u043D\u0430\u0447\u0430\u043B\u043E",
3617
+ breakpoint: "\u0442\u043E\u0447\u043A\u0430-\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0430",
3618
+ clear: "\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",
3619
+ close: "\u0437\u0430\u043A\u0440\u044B\u0442\u044C",
3620
+ open: "\u043E\u0442\u043A\u0440\u044B\u0442\u044C",
3621
+ select: "\u0432\u044B\u0431\u0440\u0430\u0442\u044C"
3705
3622
  },
3706
3623
  modifiers: {
3707
3624
  to: "\u043A",
@@ -3766,10 +3683,10 @@ var russianDictionary = {
3766
3683
  else: "\u0438\u043D\u0430\u0447\u0435",
3767
3684
  otherwise: "\u0432_\u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C_\u0441\u043B\u0443\u0447\u0430\u0435",
3768
3685
  end: "\u043A\u043E\u043D\u0435\u0446",
3686
+ live: "\u0436\u0438\u0432\u043E\u0439",
3687
+ changes: "\u0438\u0437\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F",
3769
3688
  has: "\u0438\u043C\u0435\u0435\u0442",
3770
- // third-person: он/она имеет
3771
3689
  have: "\u0438\u043C\u0435\u044E",
3772
- // first-person: я имею
3773
3690
  isNot: "\u043D\u0435_\u0435\u0441\u0442\u044C",
3774
3691
  empty: "\u043F\u0443\u0441\u0442\u043E\u0439"
3775
3692
  },
@@ -3839,7 +3756,6 @@ var russianDictionary = {
3839
3756
  html: "html"
3840
3757
  },
3841
3758
  expressions: {
3842
- // Positional
3843
3759
  first: "\u043F\u0435\u0440\u0432\u044B\u0439",
3844
3760
  last: "\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439",
3845
3761
  next: "\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439",
@@ -3847,18 +3763,20 @@ var russianDictionary = {
3847
3763
  prev: "\u043F\u0440\u0435\u0434",
3848
3764
  at: "\u0432",
3849
3765
  random: "\u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0439",
3850
- // DOM Traversal
3851
3766
  closest: "\u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0438\u0439",
3852
3767
  parent: "\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C",
3853
3768
  children: "\u0434\u0435\u0442\u0438",
3854
3769
  within: "\u0432\u043D\u0443\u0442\u0440\u0438",
3855
- // Emptiness/Existence
3856
3770
  no: "\u043D\u0435\u0442",
3857
3771
  empty: "\u043F\u0443\u0441\u0442\u043E\u0439",
3858
3772
  some: "\u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435",
3859
- // String operations
3860
3773
  "starts with": "\u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F_\u0441",
3861
- "ends with": "\u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F_\u043D\u0430"
3774
+ "ends with": "\u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F_\u043D\u0430",
3775
+ "ignoring case": "\u0431\u0435\u0437_\u0443\u0447\u0451\u0442\u0430_\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430",
3776
+ "sorted by": "\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043E_\u043F\u043E",
3777
+ "mapped to": "\u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u043E_\u0432",
3778
+ "split by": "\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043E_\u043F\u043E",
3779
+ "joined by": "\u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u043E_\u0447\u0435\u0440\u0435\u0437"
3862
3780
  }
3863
3781
  };
3864
3782
 
@@ -3870,12 +3788,10 @@ var ruKeywords = createKeywordProvider(russianDictionary, "ru", {
3870
3788
  // src/dictionaries/uk.ts
3871
3789
  var ukrainianDictionary = {
3872
3790
  commands: {
3873
- // Event handling
3874
3791
  on: "\u043F\u0440\u0438",
3875
3792
  tell: "\u0441\u043A\u0430\u0437\u0430\u0442\u0438",
3876
3793
  trigger: "\u0432\u0438\u043A\u043B\u0438\u043A\u0430\u0442\u0438",
3877
3794
  send: "\u043D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438",
3878
- // DOM manipulation
3879
3795
  take: "\u0432\u0437\u044F\u0442\u0438",
3880
3796
  put: "\u043F\u043E\u043A\u043B\u0430\u0441\u0442\u0438",
3881
3797
  set: "\u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438",
@@ -3885,7 +3801,6 @@ var ukrainianDictionary = {
3885
3801
  toggle: "\u043F\u0435\u0440\u0435\u043C\u043A\u043D\u0443\u0442\u0438",
3886
3802
  hide: "\u0441\u0445\u043E\u0432\u0430\u0442\u0438",
3887
3803
  show: "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u0438",
3888
- // Control flow
3889
3804
  if: "\u044F\u043A\u0449\u043E",
3890
3805
  unless: "\u044F\u043A\u0449\u043E_\u043D\u0435",
3891
3806
  repeat: "\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438",
@@ -3895,53 +3810,46 @@ var ukrainianDictionary = {
3895
3810
  continue: "\u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438",
3896
3811
  break: "\u043F\u0435\u0440\u0435\u0440\u0432\u0430\u0442\u0438",
3897
3812
  halt: "\u0437\u0443\u043F\u0438\u043D\u0438\u0442\u0438",
3898
- // Async
3899
3813
  wait: "\u0447\u0435\u043A\u0430\u0442\u0438",
3900
3814
  fetch: "\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438",
3901
3815
  call: "\u0432\u0438\u043A\u043B\u0438\u043A\u0430\u0442\u0438",
3902
3816
  return: "\u043F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438",
3903
- // Other commands
3904
3817
  make: "\u0441\u0442\u0432\u043E\u0440\u0438\u0442\u0438",
3905
3818
  log: "\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u0438",
3906
3819
  throw: "\u043A\u0438\u043D\u0443\u0442\u0438",
3907
3820
  catch: "\u0437\u043B\u043E\u0432\u0438\u0442\u0438",
3908
3821
  measure: "\u0432\u0438\u043C\u0456\u0440\u044F\u0442\u0438",
3909
3822
  transition: "\u0430\u043D\u0456\u043C\u0443\u0432\u0430\u0442\u0438",
3910
- // Data Commands
3911
3823
  increment: "\u0437\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438",
3912
3824
  decrement: "\u0437\u043C\u0435\u043D\u0448\u0438\u0442\u0438",
3913
3825
  default: "\u0437\u0430_\u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C",
3914
- // Navigation Commands
3915
3826
  go: "\u043F\u0435\u0440\u0435\u0439\u0442\u0438",
3916
3827
  pushUrl: "\u0434\u043E\u0434\u0430\u0442\u0438_url",
3917
3828
  replaceUrl: "\u0437\u0430\u043C\u0456\u043D\u0438\u0442\u0438_url",
3918
- // Utility Commands
3919
3829
  copy: "\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438",
3920
3830
  pick: "\u0432\u0438\u0431\u0440\u0430\u0442\u0438",
3921
3831
  beep: "\u0437\u0432\u0443\u043A",
3922
- // Advanced Commands
3923
3832
  js: "js",
3924
3833
  async: "\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u043E",
3925
3834
  render: "\u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u0438",
3926
- // Animation Commands
3927
3835
  swap: "\u043F\u043E\u043C\u0456\u043D\u044F\u0442\u0438",
3928
3836
  morph: "\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0443\u0432\u0430\u0442\u0438",
3929
3837
  settle: "\u0441\u0442\u0430\u0431\u0456\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",
3930
- // Content Commands
3931
3838
  append: "\u0434\u043E\u0434\u0430\u0442\u0438_\u0432_\u043A\u0456\u043D\u0435\u0446\u044C",
3932
- // Control Flow
3933
3839
  exit: "\u0432\u0438\u0439\u0442\u0438",
3934
3840
  else: "\u0456\u043D\u0430\u043A\u0448\u0435",
3935
- // Behaviors
3936
3841
  install: "\u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438",
3937
3842
  init: "\u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",
3938
3843
  behavior: "\u043F\u043E\u0432\u0435\u0434\u0456\u043D\u043A\u0430",
3939
- // Focus
3940
3844
  focus: "\u0441\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438",
3941
3845
  blur: "\u0440\u043E\u0437\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438",
3942
- // Clone
3943
3846
  clone: "\u043A\u043B\u043E\u043D\u0443\u0432\u0430\u0442\u0438",
3944
- prepend: "\u0434\u043E\u0434\u0430\u0442\u0438_\u043D\u0430_\u043F\u043E\u0447\u0430\u0442\u043E\u043A"
3847
+ prepend: "\u0434\u043E\u0434\u0430\u0442\u0438_\u043D\u0430_\u043F\u043E\u0447\u0430\u0442\u043E\u043A",
3848
+ breakpoint: "\u0442\u043E\u0447\u043A\u0430-\u0437\u0443\u043F\u0438\u043D\u043A\u0438",
3849
+ clear: "\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u0438",
3850
+ close: "\u0437\u0430\u043A\u0440\u0438\u0442\u0438",
3851
+ open: "\u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438",
3852
+ select: "\u0432\u0438\u0431\u0440\u0430\u0442\u0438"
3945
3853
  },
3946
3854
  modifiers: {
3947
3855
  to: "\u0434\u043E",
@@ -4006,10 +3914,10 @@ var ukrainianDictionary = {
4006
3914
  else: "\u0456\u043D\u0430\u043A\u0448\u0435",
4007
3915
  otherwise: "\u0432_\u0456\u043D\u0448\u043E\u043C\u0443_\u0432\u0438\u043F\u0430\u0434\u043A\u0443",
4008
3916
  end: "\u043A\u0456\u043D\u0435\u0446\u044C",
3917
+ live: "\u0436\u0438\u0432\u0438\u0439",
3918
+ changes: "\u0437\u043C\u0456\u043D\u044E\u0454\u0442\u044C\u0441\u044F",
4009
3919
  has: "\u043C\u0430\u0454",
4010
- // third-person: він/вона має
4011
3920
  have: "\u043C\u0430\u044E",
4012
- // first-person: я маю
4013
3921
  isNot: "\u043D\u0435_\u0454",
4014
3922
  empty: "\u043F\u043E\u0440\u043E\u0436\u043D\u0456\u0439"
4015
3923
  },
@@ -4079,7 +3987,6 @@ var ukrainianDictionary = {
4079
3987
  html: "html"
4080
3988
  },
4081
3989
  expressions: {
4082
- // Positional
4083
3990
  first: "\u043F\u0435\u0440\u0448\u0438\u0439",
4084
3991
  last: "\u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0439",
4085
3992
  next: "\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0439",
@@ -4087,18 +3994,20 @@ var ukrainianDictionary = {
4087
3994
  prev: "\u043F\u043E\u043F\u0435\u0440",
4088
3995
  at: "\u0432",
4089
3996
  random: "\u0432\u0438\u043F\u0430\u0434\u043A\u043E\u0432\u0438\u0439",
4090
- // DOM Traversal
4091
3997
  closest: "\u043D\u0430\u0439\u0431\u043B\u0438\u0436\u0447\u0438\u0439",
4092
3998
  parent: "\u0431\u0430\u0442\u044C\u043A\u0456\u0432\u0441\u044C\u043A\u0438\u0439",
4093
3999
  children: "\u0434\u0456\u0442\u0438",
4094
4000
  within: "\u0432\u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0456",
4095
- // Emptiness/Existence
4096
4001
  no: "\u043D\u0456",
4097
4002
  empty: "\u043F\u043E\u0440\u043E\u0436\u043D\u0456\u0439",
4098
4003
  some: "\u0434\u0435\u044F\u043A\u0456",
4099
- // String operations
4100
4004
  "starts with": "\u043F\u043E\u0447\u0438\u043D\u0430\u0454\u0442\u044C\u0441\u044F_\u0437",
4101
- "ends with": "\u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0454\u0442\u044C\u0441\u044F_\u043D\u0430"
4005
+ "ends with": "\u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0454\u0442\u044C\u0441\u044F_\u043D\u0430",
4006
+ "ignoring case": "\u0431\u0435\u0437_\u0443\u0440\u0430\u0445\u0443\u0432\u0430\u043D\u043D\u044F_\u0440\u0435\u0433\u0456\u0441\u0442\u0440\u0443",
4007
+ "sorted by": "\u0432\u0456\u0434\u0441\u043E\u0440\u0442\u043E\u0432\u0430\u043D\u043E_\u0437\u0430",
4008
+ "mapped to": "\u043F\u0435\u0440\u0435\u0442\u0432\u043E\u0440\u0435\u043D\u043E_\u043D\u0430",
4009
+ "split by": "\u0440\u043E\u0437\u0434\u0456\u043B\u0435\u043D\u043E_\u0437\u0430",
4010
+ "joined by": "\u043E\u0431'\u0454\u0434\u043D\u0430\u043D\u043E_\u0447\u0435\u0440\u0435\u0437"
4102
4011
  }
4103
4012
  };
4104
4013
 
@@ -4110,12 +4019,10 @@ var ukKeywords = createKeywordProvider(ukrainianDictionary, "uk", {
4110
4019
  // src/dictionaries/hi.ts
4111
4020
  var hindiDictionary = {
4112
4021
  commands: {
4113
- // Event handling
4114
4022
  on: "\u092A\u0930",
4115
4023
  tell: "\u092C\u0924\u093E\u090F\u0902",
4116
4024
  trigger: "\u091F\u094D\u0930\u093F\u0917\u0930",
4117
4025
  send: "\u092D\u0947\u091C\u0947\u0902",
4118
- // DOM manipulation
4119
4026
  take: "\u0932\u0947\u0902",
4120
4027
  put: "\u0930\u0916\u0947\u0902",
4121
4028
  set: "\u0938\u0947\u091F",
@@ -4125,7 +4032,6 @@ var hindiDictionary = {
4125
4032
  toggle: "\u091F\u0949\u0917\u0932",
4126
4033
  hide: "\u091B\u093F\u092A\u093E\u090F\u0902",
4127
4034
  show: "\u0926\u093F\u0916\u093E\u090F\u0902",
4128
- // Control flow
4129
4035
  if: "\u0905\u0917\u0930",
4130
4036
  unless: "\u091C\u092C_\u0924\u0915_\u0928\u0939\u0940\u0902",
4131
4037
  repeat: "\u0926\u094B\u0939\u0930\u093E\u090F\u0902",
@@ -4135,53 +4041,46 @@ var hindiDictionary = {
4135
4041
  continue: "\u091C\u093E\u0930\u0940",
4136
4042
  break: "\u0930\u094B\u0915\u0947\u0902",
4137
4043
  halt: "\u0930\u094B\u0915\u0947\u0902",
4138
- // Async
4139
4044
  wait: "\u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E",
4140
4045
  fetch: "\u0932\u093E\u090F\u0902",
4141
4046
  call: "\u0915\u0949\u0932",
4142
4047
  return: "\u0932\u094C\u091F\u093E\u090F\u0902",
4143
- // Other commands
4144
4048
  make: "\u092C\u0928\u093E\u090F\u0902",
4145
4049
  log: "\u0932\u0949\u0917",
4146
4050
  throw: "\u092B\u0947\u0902\u0915\u0947\u0902",
4147
4051
  catch: "\u092A\u0915\u0921\u093C\u0947\u0902",
4148
4052
  measure: "\u092E\u093E\u092A\u0947\u0902",
4149
4053
  transition: "\u0938\u0902\u0915\u094D\u0930\u092E\u0923",
4150
- // Data Commands
4151
4054
  increment: "\u092C\u0922\u093C\u093E\u090F\u0902",
4152
4055
  decrement: "\u0918\u091F\u093E\u090F\u0902",
4153
4056
  default: "\u0921\u093F\u092B\u093C\u0949\u0932\u094D\u091F",
4154
- // Navigation Commands
4155
4057
  go: "\u091C\u093E\u090F\u0902",
4156
4058
  pushUrl: "url_\u091C\u094B\u0921\u093C\u0947\u0902",
4157
4059
  replaceUrl: "url_\u092C\u0926\u0932\u0947\u0902",
4158
- // Utility Commands
4159
4060
  copy: "\u0915\u0949\u092A\u0940",
4160
4061
  pick: "\u091A\u0941\u0928\u0947\u0902",
4161
4062
  beep: "\u092C\u0940\u092A",
4162
- // Advanced Commands
4163
4063
  js: "\u091C\u0947\u090F\u0938",
4164
4064
  async: "\u0905\u0938\u093F\u0902\u0915",
4165
4065
  render: "\u0930\u0947\u0902\u0921\u0930",
4166
- // Animation Commands
4167
4066
  swap: "\u092C\u0926\u0932\u0947\u0902",
4168
4067
  morph: "\u0930\u0942\u092A\u093E\u0902\u0924\u0930",
4169
4068
  settle: "\u0938\u094D\u0925\u093F\u0930",
4170
- // Content Commands
4171
4069
  append: "\u091C\u094B\u0921\u093C\u0947\u0902_\u0905\u0902\u0924",
4172
- // Control Flow
4173
4070
  exit: "\u092C\u093E\u0939\u0930",
4174
4071
  else: "\u0935\u0930\u0928\u093E",
4175
- // Behaviors
4176
4072
  install: "\u0907\u0902\u0938\u094D\u091F\u0949\u0932",
4177
4073
  init: "\u092A\u094D\u0930\u093E\u0930\u0902\u092D",
4178
4074
  behavior: "\u0935\u094D\u092F\u0935\u0939\u093E\u0930",
4179
- // Focus
4180
4075
  focus: "\u092B\u094B\u0915\u0938",
4181
4076
  blur: "\u0927\u0941\u0902\u0927\u0932\u093E",
4182
- // Clone
4183
4077
  clone: "\u0915\u0949\u092A\u0940",
4184
- prepend: "\u091C\u094B\u0921\u093C\u0947\u0902_\u0936\u0941\u0930\u0942"
4078
+ prepend: "\u091C\u094B\u0921\u093C\u0947\u0902_\u0936\u0941\u0930\u0942",
4079
+ breakpoint: "\u092C\u094D\u0930\u0947\u0915\u092A\u094D\u0935\u093E\u0907\u0902\u091F",
4080
+ clear: "\u0938\u093E\u092B\u093C-\u0915\u0930\u0947\u0902",
4081
+ close: "\u092C\u0902\u0926-\u0915\u0930\u0947\u0902",
4082
+ open: "\u0916\u094B\u0932\u0947\u0902",
4083
+ select: "\u091A\u0941\u0928\u0947\u0902"
4185
4084
  },
4186
4085
  modifiers: {
4187
4086
  to: "\u0915\u094B",
@@ -4246,10 +4145,10 @@ var hindiDictionary = {
4246
4145
  else: "\u0935\u0930\u0928\u093E",
4247
4146
  otherwise: "\u0905\u0928\u094D\u092F\u0925\u093E",
4248
4147
  end: "\u0938\u092E\u093E\u092A\u094D\u0924",
4148
+ live: "\u0932\u093E\u0907\u0935",
4149
+ changes: "\u092C\u0926\u0932\u0928\u0947 \u092A\u0930",
4249
4150
  has: "\u0939\u0948",
4250
- // existence verb (context-based)
4251
4151
  have: "\u0939\u0948",
4252
- // same verb for first/third person
4253
4152
  isNot: "\u0928\u0939\u0940\u0902_\u0939\u0948",
4254
4153
  empty: "\u0916\u093E\u0932\u0940"
4255
4154
  },
@@ -4319,7 +4218,6 @@ var hindiDictionary = {
4319
4218
  html: "html"
4320
4219
  },
4321
4220
  expressions: {
4322
- // Positional
4323
4221
  first: "\u092A\u0939\u0932\u093E",
4324
4222
  last: "\u0905\u0902\u0924\u093F\u092E",
4325
4223
  next: "\u0905\u0917\u0932\u093E",
@@ -4327,18 +4225,20 @@ var hindiDictionary = {
4327
4225
  prev: "\u092A\u093F\u091B",
4328
4226
  at: "\u092A\u0930",
4329
4227
  random: "\u092F\u093E\u0926\u0943\u091A\u094D\u091B\u093F\u0915",
4330
- // DOM Traversal
4331
4228
  closest: "\u0928\u093F\u0915\u091F\u0924\u092E",
4332
4229
  parent: "\u092E\u0942\u0932",
4333
4230
  children: "\u092C\u091A\u094D\u091A\u0947",
4334
4231
  within: "\u0915\u0947_\u0905\u0902\u0926\u0930",
4335
- // Emptiness/Existence
4336
4232
  no: "\u0928\u0939\u0940\u0902",
4337
4233
  empty: "\u0916\u093E\u0932\u0940",
4338
4234
  some: "\u0915\u0941\u091B",
4339
- // String operations
4340
4235
  "starts with": "\u0938\u0947_\u0936\u0941\u0930\u0942",
4341
- "ends with": "\u092A\u0930_\u0938\u092E\u093E\u092A\u094D\u0924"
4236
+ "ends with": "\u092A\u0930_\u0938\u092E\u093E\u092A\u094D\u0924",
4237
+ "ignoring case": "\u0915\u0947\u0938_\u0905\u0928\u0926\u0947\u0916\u093E",
4238
+ "sorted by": "\u0926\u094D\u0935\u093E\u0930\u093E_\u0915\u094D\u0930\u092E\u092C\u0926\u094D\u0927",
4239
+ "mapped to": "\u092E\u0947\u0902_\u092A\u0930\u093F\u0935\u0930\u094D\u0924\u093F\u0924",
4240
+ "split by": "\u0926\u094D\u0935\u093E\u0930\u093E_\u0935\u093F\u092D\u093E\u091C\u093F\u0924",
4241
+ "joined by": "\u0926\u094D\u0935\u093E\u0930\u093E_\u091C\u0941\u0921\u093C\u093E"
4342
4242
  }
4343
4243
  };
4344
4244
 
@@ -4402,7 +4302,12 @@ var bengaliDictionary = {
4402
4302
  js: "\u099C\u09C7\u098F\u09B8",
4403
4303
  pick: "\u09AC\u09BE\u099B\u09C1\u09A8",
4404
4304
  render: "\u09B0\u09C7\u09A8\u09CD\u09A1\u09BE\u09B0",
4405
- until: "\u09AA\u09B0\u09CD\u09AF\u09A8\u09CD\u09A4"
4305
+ until: "\u09AA\u09B0\u09CD\u09AF\u09A8\u09CD\u09A4",
4306
+ breakpoint: "\u09AC\u09CD\u09B0\u09C7\u0995\u09AA\u09AF\u09BC\u09C7\u09A8\u09CD\u099F",
4307
+ clear: "\u09AA\u09B0\u09BF\u09B7\u09CD\u0995\u09BE\u09B0",
4308
+ close: "\u09AC\u09A8\u09CD\u09A7",
4309
+ open: "\u0996\u09C1\u09B2\u09C1\u09A8",
4310
+ select: "\u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09A8"
4406
4311
  },
4407
4312
  modifiers: {
4408
4313
  to: "\u0995\u09C7",
@@ -4417,6 +4322,7 @@ var bengaliDictionary = {
4417
4322
  at: "\u098F",
4418
4323
  in: "\u098F",
4419
4324
  over: "\u0989\u09AA\u09B0",
4325
+ between: "\u09AE\u09A7\u09CD\u09AF\u09C7",
4420
4326
  then: "\u09A4\u09BE\u09B0\u09AA\u09B0",
4421
4327
  and: "\u098F\u09AC\u0982",
4422
4328
  end: "\u09B6\u09C7\u09B7",
@@ -4431,6 +4337,7 @@ var bengaliDictionary = {
4431
4337
  load: "\u09B2\u09CB\u09A1",
4432
4338
  focus: "\u09AB\u09CB\u0995\u09BE\u09B8",
4433
4339
  blur: "\u099D\u09BE\u09AA\u09B8\u09BE",
4340
+ reset: "\u09B0\u09BF\u09B8\u09C7\u099F",
4434
4341
  keydown: "\u0995\u09BF-\u09A1\u09BE\u0989\u09A8",
4435
4342
  keyup: "\u0995\u09BF-\u0986\u09AA",
4436
4343
  mouseover: "\u09AE\u09BE\u0989\u09B8-\u0993\u09AD\u09BE\u09B0",
@@ -4457,7 +4364,9 @@ var bengaliDictionary = {
4457
4364
  null: "\u09B6\u09C2\u09A8\u09CD\u09AF",
4458
4365
  undefined: "\u0985\u09A8\u09BF\u09B0\u09CD\u09A7\u09BE\u09B0\u09BF\u09A4",
4459
4366
  end: "\u09B6\u09C7\u09B7",
4460
- then: "\u09A4\u09BE\u09B0\u09AA\u09B0"
4367
+ then: "\u09A4\u09BE\u09B0\u09AA\u09B0",
4368
+ live: "\u09B2\u09BE\u0987\u09AD",
4369
+ changes: "\u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09BF\u09A4 \u09B9\u09B2\u09C7"
4461
4370
  },
4462
4371
  temporal: {
4463
4372
  now: "\u098F\u0996\u09A8",
@@ -4502,7 +4411,15 @@ var bengaliDictionary = {
4502
4411
  children: "\u09B8\u09A8\u09CD\u09A4\u09BE\u09A8",
4503
4412
  random: "\u098F\u09B2\u09CB\u09AE\u09C7\u09B2\u09CB",
4504
4413
  length: "\u09A6\u09C8\u09B0\u09CD\u0998\u09CD\u09AF",
4505
- index: "\u09B8\u09C2\u099A\u0995"
4414
+ index: "\u09B8\u09C2\u099A\u0995",
4415
+ empty: "\u0996\u09BE\u09B2\u09BF-\u0995\u09B0\u09C1\u09A8",
4416
+ "starts with": "\u09A6\u09BF\u09AF\u09BC\u09C7_\u09B6\u09C1\u09B0\u09C1",
4417
+ "ends with": "\u09A6\u09BF\u09AF\u09BC\u09C7_\u09B6\u09C7\u09B7",
4418
+ "ignoring case": "\u0995\u09C7\u09B8_\u0989\u09AA\u09C7\u0995\u09CD\u09B7\u09BE",
4419
+ "sorted by": "\u09A6\u09CD\u09AC\u09BE\u09B0\u09BE_\u09B8\u09BE\u099C\u09BE\u09A8\u09CB",
4420
+ "mapped to": "\u09A4\u09C7_\u09B0\u09C2\u09AA\u09BE\u09A8\u09CD\u09A4\u09B0\u09BF\u09A4",
4421
+ "split by": "\u09A6\u09CD\u09AC\u09BE\u09B0\u09BE_\u09AC\u09BF\u09AD\u0995\u09CD\u09A4",
4422
+ "joined by": "\u09A6\u09CD\u09AC\u09BE\u09B0\u09BE_\u09AF\u09C1\u0995\u09CD\u09A4"
4506
4423
  }
4507
4424
  };
4508
4425
  var bn = bengaliDictionary;
@@ -4567,7 +4484,12 @@ var thaiDictionary = {
4567
4484
  js: "\u0E40\u0E08\u0E40\u0E2D\u0E2A",
4568
4485
  pick: "\u0E40\u0E25\u0E37\u0E2D\u0E01",
4569
4486
  render: "\u0E41\u0E2A\u0E14\u0E07\u0E1C\u0E25",
4570
- until: "\u0E08\u0E19\u0E16\u0E36\u0E07"
4487
+ until: "\u0E08\u0E19\u0E16\u0E36\u0E07",
4488
+ breakpoint: "\u0E08\u0E38\u0E14\u0E1E\u0E31\u0E01",
4489
+ clear: "\u0E40\u0E04\u0E25\u0E35\u0E22\u0E23\u0E4C",
4490
+ close: "\u0E1B\u0E34\u0E14",
4491
+ open: "\u0E40\u0E1B\u0E34\u0E14",
4492
+ select: "\u0E40\u0E25\u0E37\u0E2D\u0E01"
4571
4493
  },
4572
4494
  modifiers: {
4573
4495
  to: "\u0E44\u0E1B\u0E22\u0E31\u0E07",
@@ -4582,6 +4504,7 @@ var thaiDictionary = {
4582
4504
  at: "\u0E17\u0E35\u0E48",
4583
4505
  in: "\u0E43\u0E19",
4584
4506
  over: "\u0E40\u0E2B\u0E19\u0E37\u0E2D",
4507
+ between: "\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07",
4585
4508
  then: "\u0E41\u0E25\u0E49\u0E27",
4586
4509
  and: "\u0E41\u0E25\u0E30",
4587
4510
  end: "\u0E08\u0E1A",
@@ -4596,6 +4519,7 @@ var thaiDictionary = {
4596
4519
  load: "\u0E42\u0E2B\u0E25\u0E14",
4597
4520
  focus: "\u0E42\u0E1F\u0E01\u0E31\u0E2A",
4598
4521
  blur: "\u0E40\u0E1A\u0E25\u0E2D",
4522
+ reset: "\u0E23\u0E35\u0E40\u0E0B\u0E47\u0E15",
4599
4523
  keydown: "\u0E01\u0E14\u0E04\u0E35\u0E22\u0E4C",
4600
4524
  keyup: "\u0E1B\u0E25\u0E48\u0E2D\u0E22\u0E04\u0E35\u0E22\u0E4C",
4601
4525
  mouseover: "\u0E40\u0E21\u0E32\u0E2A\u0E4C\u0E40\u0E02\u0E49\u0E32",
@@ -4622,7 +4546,9 @@ var thaiDictionary = {
4622
4546
  null: "\u0E27\u0E48\u0E32\u0E07",
4623
4547
  undefined: "\u0E44\u0E21\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14",
4624
4548
  end: "\u0E08\u0E1A",
4625
- then: "\u0E41\u0E25\u0E49\u0E27"
4549
+ then: "\u0E41\u0E25\u0E49\u0E27",
4550
+ live: "\u0E2A\u0E14",
4551
+ changes: "\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19"
4626
4552
  },
4627
4553
  temporal: {
4628
4554
  now: "\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49",
@@ -4667,7 +4593,15 @@ var thaiDictionary = {
4667
4593
  children: "\u0E25\u0E39\u0E01",
4668
4594
  random: "\u0E2A\u0E38\u0E48\u0E21",
4669
4595
  length: "\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27",
4670
- index: "\u0E14\u0E31\u0E0A\u0E19\u0E35"
4596
+ index: "\u0E14\u0E31\u0E0A\u0E19\u0E35",
4597
+ empty: "\u0E25\u0E49\u0E32\u0E07",
4598
+ "starts with": "\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22",
4599
+ "ends with": "\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22",
4600
+ "ignoring case": "\u0E44\u0E21\u0E48\u0E2A\u0E19\u0E15\u0E31\u0E27\u0E1E\u0E34\u0E21\u0E1E\u0E4C",
4601
+ "sorted by": "\u0E40\u0E23\u0E35\u0E22\u0E07\u0E15\u0E32\u0E21",
4602
+ "mapped to": "\u0E41\u0E1B\u0E25\u0E07\u0E40\u0E1B\u0E47\u0E19",
4603
+ "split by": "\u0E41\u0E22\u0E01\u0E14\u0E49\u0E27\u0E22",
4604
+ "joined by": "\u0E23\u0E27\u0E21\u0E14\u0E49\u0E27\u0E22"
4671
4605
  }
4672
4606
  };
4673
4607
  var th = thaiDictionary;
@@ -4680,12 +4614,10 @@ var thKeywords = createKeywordProvider(th, "th", {
4680
4614
  // src/dictionaries/ms.ts
4681
4615
  var malayDictionary = {
4682
4616
  commands: {
4683
- // Event handling
4684
4617
  on: "apabila",
4685
4618
  tell: "beritahu",
4686
4619
  trigger: "cetuskan",
4687
4620
  send: "hantar",
4688
- // DOM manipulation
4689
4621
  take: "ambil",
4690
4622
  put: "letak",
4691
4623
  set: "tetapkan",
@@ -4695,7 +4627,6 @@ var malayDictionary = {
4695
4627
  toggle: "togol",
4696
4628
  hide: "sembunyi",
4697
4629
  show: "tunjuk",
4698
- // Control flow
4699
4630
  if: "jika",
4700
4631
  unless: "kecuali",
4701
4632
  repeat: "ulang",
@@ -4705,52 +4636,46 @@ var malayDictionary = {
4705
4636
  continue: "teruskan",
4706
4637
  break: "henti",
4707
4638
  halt: "henti",
4708
- // Async
4709
4639
  wait: "tunggu",
4710
4640
  fetch: "ambil_dari",
4711
4641
  call: "panggil",
4712
4642
  return: "pulang",
4713
- // Other commands
4714
4643
  make: "buat",
4715
4644
  log: "catat",
4716
4645
  throw: "lempar",
4717
4646
  catch: "tangkap",
4718
4647
  measure: "ukur",
4719
4648
  transition: "peralihan",
4720
- // Data Commands
4721
4649
  increment: "tambah_satu",
4722
4650
  decrement: "kurang_satu",
4723
4651
  default: "lalai",
4724
- // Navigation Commands
4725
4652
  go: "pergi",
4726
4653
  pushUrl: "tolak_url",
4727
4654
  replaceUrl: "ganti_url",
4728
- // Utility Commands
4729
4655
  copy: "salin",
4730
4656
  pick: "pilih",
4731
4657
  beep: "bunyi",
4732
- // Advanced Commands
4733
4658
  js: "js",
4734
4659
  async: "tak_segerak",
4735
4660
  render: "papar",
4736
- // Animation Commands
4737
4661
  swap: "tukar_tempat",
4738
4662
  morph: "ubah_bentuk",
4739
4663
  settle: "selesai",
4740
- // Content Commands
4741
4664
  append: "tambah_hujung",
4742
4665
  prepend: "tambah_mula",
4743
- // Control Flow
4744
4666
  exit: "keluar",
4745
4667
  else: "kalau_tidak",
4746
- // Focus Commands
4747
4668
  focus: "fokus",
4748
4669
  blur: "kabur",
4749
- // Behaviors
4750
4670
  install: "pasang",
4751
4671
  behavior: "kelakuan",
4752
4672
  init: "mula",
4753
- clone: "klon"
4673
+ clone: "klon",
4674
+ breakpoint: "titik-henti",
4675
+ clear: "padam",
4676
+ close: "tutup",
4677
+ open: "buka",
4678
+ select: "pilih"
4754
4679
  },
4755
4680
  modifiers: {
4756
4681
  to: "ke",
@@ -4817,13 +4742,13 @@ var malayDictionary = {
4817
4742
  includes: "termasuk",
4818
4743
  equals: "sama",
4819
4744
  has: "ada",
4820
- // possession verb (context-based)
4821
4745
  have: "ada",
4822
- // same for first/third person
4823
4746
  then: "kemudian",
4824
4747
  else: "kalau_tidak",
4825
4748
  otherwise: "jika_tidak",
4826
4749
  end: "tamat",
4750
+ live: "langsung",
4751
+ changes: "berubah",
4827
4752
  if: "jika",
4828
4753
  empty: "kosong",
4829
4754
  true: "benar",
@@ -4888,7 +4813,6 @@ var malayDictionary = {
4888
4813
  checked: "ditanda"
4889
4814
  },
4890
4815
  expressions: {
4891
- // Positional
4892
4816
  first: "pertama",
4893
4817
  last: "terakhir",
4894
4818
  next: "seterusnya",
@@ -4896,19 +4820,20 @@ var malayDictionary = {
4896
4820
  prev: "sebelum",
4897
4821
  at: "di",
4898
4822
  random: "rawak",
4899
- // DOM Traversal
4900
4823
  closest: "terdekat",
4901
4824
  parent: "induk",
4902
4825
  children: "anak_anak",
4903
4826
  within: "dalam",
4904
- // Emptiness/Existence
4905
4827
  no: "tiada",
4906
4828
  empty: "kosong",
4907
4829
  some: "beberapa",
4908
- // String operations
4909
4830
  "starts with": "bermula_dengan",
4910
4831
  "ends with": "berakhir_dengan",
4911
- // Additional
4832
+ "ignoring case": "abaikan_huruf_besar_kecil",
4833
+ "sorted by": "disusun_mengikut",
4834
+ "mapped to": "dipetakan_ke",
4835
+ "split by": "dipecah_oleh",
4836
+ "joined by": "digabung_oleh",
4912
4837
  length: "panjang",
4913
4838
  index: "indeks"
4914
4839
  }
@@ -4923,12 +4848,10 @@ var msKeywords = createKeywordProvider(ms, "ms", {
4923
4848
  // src/dictionaries/tl.ts
4924
4849
  var tagalogDictionary = {
4925
4850
  commands: {
4926
- // Event handling
4927
4851
  on: "kapag",
4928
4852
  tell: "sabihin",
4929
4853
  trigger: "palitawin",
4930
4854
  send: "ipadala",
4931
- // DOM manipulation
4932
4855
  take: "kunin",
4933
4856
  put: "ilagay",
4934
4857
  set: "itakda",
@@ -4938,7 +4861,6 @@ var tagalogDictionary = {
4938
4861
  toggle: "palitan",
4939
4862
  hide: "itago",
4940
4863
  show: "ipakita",
4941
- // Control flow
4942
4864
  if: "kung",
4943
4865
  unless: "maliban_kung",
4944
4866
  repeat: "ulitin",
@@ -4948,52 +4870,46 @@ var tagalogDictionary = {
4948
4870
  continue: "magpatuloy",
4949
4871
  break: "itigil",
4950
4872
  halt: "huminto",
4951
- // Async
4952
4873
  wait: "maghintay",
4953
4874
  fetch: "kuhanin_mula",
4954
4875
  call: "tawagin",
4955
4876
  return: "ibalik",
4956
- // Other commands
4957
4877
  make: "gumawa",
4958
4878
  log: "itala",
4959
4879
  throw: "ihagis",
4960
4880
  catch: "hulihin",
4961
4881
  measure: "sukatin",
4962
4882
  transition: "baguhin",
4963
- // Data Commands
4964
4883
  increment: "dagdagan",
4965
4884
  decrement: "bawasan",
4966
4885
  default: "pamantayan",
4967
- // Navigation Commands
4968
4886
  go: "pumunta",
4969
4887
  pushUrl: "itulak_url",
4970
4888
  replaceUrl: "palitan_url",
4971
- // Utility Commands
4972
4889
  copy: "kopyahin",
4973
4890
  pick: "pumili",
4974
4891
  beep: "tunog",
4975
- // Advanced Commands
4976
4892
  js: "js",
4977
4893
  async: "sabay",
4978
4894
  render: "ipakita",
4979
- // Animation Commands
4980
4895
  swap: "palitan_pwesto",
4981
4896
  morph: "baguhin_hugis",
4982
4897
  settle: "ayusin",
4983
- // Content Commands
4984
4898
  append: "idagdag_sa_dulo",
4985
4899
  prepend: "idagdag_sa_simula",
4986
- // Control Flow
4987
4900
  exit: "lumabas",
4988
4901
  else: "kung_hindi",
4989
- // Focus Commands
4990
4902
  focus: "ituon",
4991
4903
  blur: "alisin_tuon",
4992
- // Behaviors
4993
4904
  install: "ikabit",
4994
4905
  behavior: "ugali",
4995
4906
  init: "simulan",
4996
- clone: "kopyahin"
4907
+ clone: "kopyahin",
4908
+ breakpoint: "breakpoint",
4909
+ clear: "burahin",
4910
+ close: "isara",
4911
+ open: "buksan",
4912
+ select: "piliin"
4997
4913
  },
4998
4914
  modifiers: {
4999
4915
  to: "sa",
@@ -5060,13 +4976,13 @@ var tagalogDictionary = {
5060
4976
  includes: "kasama",
5061
4977
  equals: "katumbas",
5062
4978
  has: "may",
5063
- // possession verb (context-based)
5064
4979
  have: "may",
5065
- // same for first/third person in Tagalog
5066
4980
  then: "pagkatapos",
5067
4981
  else: "kung_hindi",
5068
4982
  otherwise: "kung_hindi_man",
5069
4983
  end: "wakas",
4984
+ live: "live",
4985
+ changes: "nagbabago",
5070
4986
  if: "kung",
5071
4987
  empty: "walang_laman",
5072
4988
  true: "totoo",
@@ -5131,7 +5047,6 @@ var tagalogDictionary = {
5131
5047
  checked: "naka_tsek"
5132
5048
  },
5133
5049
  expressions: {
5134
- // Positional
5135
5050
  first: "una",
5136
5051
  last: "huli",
5137
5052
  next: "susunod",
@@ -5139,19 +5054,20 @@ var tagalogDictionary = {
5139
5054
  prev: "nakaraan",
5140
5055
  at: "sa",
5141
5056
  random: "random",
5142
- // DOM Traversal
5143
5057
  closest: "pinakamalapit",
5144
5058
  parent: "magulang",
5145
5059
  children: "mga_anak",
5146
5060
  within: "sa_loob_ng",
5147
- // Emptiness/Existence
5148
5061
  no: "walang",
5149
5062
  empty: "walang_laman",
5150
5063
  some: "ilan",
5151
- // String operations
5152
5064
  "starts with": "nagsisimula_sa",
5153
5065
  "ends with": "nagtatapos_sa",
5154
- // Additional
5066
+ "ignoring case": "huwag_pansinin_ang_case",
5067
+ "sorted by": "nakaayos_ayon_sa",
5068
+ "mapped to": "binago_sa",
5069
+ "split by": "hinati_sa",
5070
+ "joined by": "pinagsama_sa",
5155
5071
  length: "haba",
5156
5072
  index: "indeks"
5157
5073
  }
@@ -5163,6 +5079,104 @@ var tlKeywords = createKeywordProvider(tl, "tl", {
5163
5079
  allowEnglishFallback: true
5164
5080
  });
5165
5081
 
5082
+ // src/dictionaries/he.ts
5083
+ var he = {
5084
+ commands: {
5085
+ add: "\u05D4\u05D5\u05E1\u05E3",
5086
+ append: "\u05E6\u05E8\u05E3",
5087
+ async: "\u05D0\u05E1\u05D9\u05E0\u05DB\u05E8\u05D5\u05E0\u05D9",
5088
+ beep: "\u05D1\u05D9\u05E4",
5089
+ break: "\u05E9\u05D1\u05D5\u05E8",
5090
+ call: "\u05E7\u05E8\u05D0",
5091
+ continue: "\u05D4\u05DE\u05E9\u05DA",
5092
+ copy: "\u05D4\u05E2\u05EA\u05E7",
5093
+ decrement: "\u05D4\u05E7\u05D8\u05DF",
5094
+ default: "\u05D1\u05E8\u05D9\u05E8\u05EA \u05DE\u05D7\u05D3\u05DC",
5095
+ exit: "\u05E6\u05D0",
5096
+ fetch: "\u05D4\u05D1\u05D0",
5097
+ for: "\u05E2\u05D1\u05D5\u05E8",
5098
+ get: "\u05E7\u05D1\u05DC",
5099
+ go: "\u05DC\u05DA",
5100
+ halt: "\u05E2\u05E6\u05D5\u05E8",
5101
+ hide: "\u05D4\u05E1\u05EA\u05E8",
5102
+ if: "\u05D0\u05DD",
5103
+ increment: "\u05D4\u05D2\u05D3\u05DC",
5104
+ install: "\u05D4\u05EA\u05E7\u05DF",
5105
+ js: "js",
5106
+ log: "\u05E8\u05E9\u05D5\u05DD",
5107
+ make: "\u05E6\u05D5\u05E8",
5108
+ measure: "\u05DE\u05D3\u05D5\u05D3",
5109
+ morph: "\u05D4\u05E4\u05D5\u05DA",
5110
+ on: "\u05D1",
5111
+ pick: "\u05D1\u05D7\u05E8",
5112
+ put: "\u05E9\u05D9\u05DD",
5113
+ remove: "\u05D4\u05E1\u05E8",
5114
+ render: "\u05E8\u05E0\u05D3\u05E8",
5115
+ repeat: "\u05D7\u05D6\u05D5\u05E8",
5116
+ return: "\u05D4\u05D7\u05D6\u05E8",
5117
+ send: "\u05E9\u05DC\u05D7",
5118
+ set: "\u05E7\u05D1\u05E2",
5119
+ settle: "\u05D4\u05EA\u05D9\u05D9\u05E6\u05D1",
5120
+ show: "\u05D4\u05E8\u05D0\u05D4",
5121
+ swap: "\u05D4\u05D7\u05DC\u05E3",
5122
+ take: "\u05E7\u05D7",
5123
+ tell: "\u05D0\u05DE\u05D5\u05E8",
5124
+ throw: "\u05D6\u05E8\u05D5\u05E7",
5125
+ toggle: "\u05DE\u05EA\u05D2",
5126
+ transition: "\u05DE\u05E2\u05D1\u05E8",
5127
+ trigger: "\u05D4\u05E4\u05E2\u05DC",
5128
+ until: "\u05E2\u05D3",
5129
+ wait: "\u05D7\u05DB\u05D4",
5130
+ while: "\u05DB\u05DC \u05E2\u05D5\u05D3"
5131
+ },
5132
+ modifiers: {
5133
+ after: "\u05D0\u05D7\u05E8\u05D9",
5134
+ before: "\u05DC\u05E4\u05E0\u05D9",
5135
+ from: "\u05DE",
5136
+ into: "\u05DC\u05EA\u05D5\u05DA",
5137
+ to: "\u05E2\u05DC",
5138
+ with: "\u05E2\u05DD"
5139
+ },
5140
+ events: {
5141
+ blur: "\u05D8\u05E9\u05D8\u05E9",
5142
+ change: "\u05E9\u05D9\u05E0\u05D5\u05D9",
5143
+ click: "\u05DC\u05D7\u05D9\u05E6\u05D4",
5144
+ focus: "\u05DE\u05E7\u05D3",
5145
+ input: "\u05E7\u05DC\u05D8",
5146
+ submit: "\u05E9\u05DC\u05D9\u05D7\u05D4"
5147
+ },
5148
+ logical: {
5149
+ and: "\u05D5\u05D2\u05DD",
5150
+ else: "\u05D0\u05D7\u05E8\u05EA",
5151
+ end: "\u05E1\u05D5\u05E3",
5152
+ then: "\u05D0\u05D6",
5153
+ live: "\u05D7\u05D9",
5154
+ changes: "\u05DE\u05E9\u05EA\u05E0\u05D4",
5155
+ when: "\u05DB\u05D0\u05E9\u05E8",
5156
+ where: "\u05D0\u05D9\u05E4\u05D4"
5157
+ },
5158
+ temporal: {},
5159
+ values: {
5160
+ body: "\u05D2\u05D5\u05E3",
5161
+ event: "\u05D0\u05D9\u05E8\u05D5\u05E2",
5162
+ it: "\u05D6\u05D4",
5163
+ its: "\u05E9\u05DC\u05D5",
5164
+ me: "\u05D0\u05E0\u05D9",
5165
+ my: "\u05E9\u05DC\u05D9",
5166
+ result: "\u05EA\u05D5\u05E6\u05D0\u05D4",
5167
+ target: "\u05D9\u05E2\u05D3",
5168
+ you: "\u05D0\u05EA\u05D4",
5169
+ your: "\u05E9\u05DC\u05DA"
5170
+ },
5171
+ attributes: {},
5172
+ expressions: {}
5173
+ };
5174
+
5175
+ // src/parser/he.ts
5176
+ var heKeywords = createKeywordProvider(he, "he", {
5177
+ allowEnglishFallback: true
5178
+ });
5179
+
5166
5180
  // src/parser/locale-manager.ts
5167
5181
  var _LocaleManager = class _LocaleManager {
5168
5182
  /**
@@ -5357,7 +5371,22 @@ var en = {
5357
5371
  // Control Flow
5358
5372
  exit: "exit",
5359
5373
  // Behaviors
5360
- install: "install"
5374
+ install: "install",
5375
+ // v0.9.90 Phase 1 — DOM / form state / debug
5376
+ open: "open",
5377
+ close: "close",
5378
+ select: "select",
5379
+ clear: "clear",
5380
+ breakpoint: "breakpoint",
5381
+ // Other commands with schemas (backfill — pre-existing gaps surfaced by
5382
+ // the schema-alignment test)
5383
+ prepend: "prepend",
5384
+ clone: "clone",
5385
+ // Navigation/DOM commands added in core (Dec 2025 / Apr 2026)
5386
+ scroll: "scroll",
5387
+ push: "push",
5388
+ replace: "replace",
5389
+ process: "process"
5361
5390
  },
5362
5391
  modifiers: {
5363
5392
  to: "to",
@@ -5424,7 +5453,9 @@ var en = {
5424
5453
  then: "then",
5425
5454
  else: "else",
5426
5455
  otherwise: "otherwise",
5427
- end: "end"
5456
+ end: "end",
5457
+ live: "live",
5458
+ changes: "changes"
5428
5459
  },
5429
5460
  temporal: {
5430
5461
  seconds: "seconds",
@@ -5493,7 +5524,13 @@ var en = {
5493
5524
  some: "some",
5494
5525
  // String operations
5495
5526
  "starts with": "starts with",
5496
- "ends with": "ends with"
5527
+ "ends with": "ends with",
5528
+ "ignoring case": "ignoring case",
5529
+ // Collection operations (v0.9.90)
5530
+ "sorted by": "sorted by",
5531
+ "mapped to": "mapped to",
5532
+ "split by": "split by",
5533
+ "joined by": "joined by"
5497
5534
  }
5498
5535
  };
5499
5536
 
@@ -6436,6 +6473,31 @@ var polishProfile = {
6436
6473
  { form: "jako", role: "method", position: "preposition", required: false }
6437
6474
  ]
6438
6475
  };
6476
+ var hebrewProfile = {
6477
+ code: "he",
6478
+ name: "\u05E2\u05D1\u05E8\u05D9\u05EA",
6479
+ wordOrder: "SVO",
6480
+ // Modern Hebrew is predominantly SVO (Biblical Hebrew was VSO)
6481
+ adpositionType: "preposition",
6482
+ morphology: "fusional",
6483
+ // Root-and-pattern (Semitic), like Arabic
6484
+ direction: "rtl",
6485
+ canonicalOrder: ["event", "action", "patient", "destination"],
6486
+ // Hebrew uses single-letter prefix prepositions (ב, ל, מ, כ) that attach to
6487
+ // the following word. For tokenization we treat them as spaced forms.
6488
+ markers: [
6489
+ { form: "\u05D1", role: "event", position: "preposition", required: true },
6490
+ { form: "\u05E2\u05DC", role: "destination", position: "preposition", required: false },
6491
+ { form: "\u05D0\u05DC", role: "destination", position: "preposition", required: false },
6492
+ { form: "\u05DC", role: "destination", position: "preposition", required: false },
6493
+ { form: "\u05D0\u05EA", role: "patient", position: "preposition", required: false },
6494
+ // Direct object marker
6495
+ { form: "\u05DE", role: "source", position: "preposition", required: false },
6496
+ { form: "\u05DE\u05DF", role: "source", position: "preposition", required: false },
6497
+ { form: "\u05E2\u05DD", role: "style", position: "preposition", required: false },
6498
+ { form: "\u05DB", role: "method", position: "preposition", required: false }
6499
+ ]
6500
+ };
6439
6501
  var profiles = {
6440
6502
  en: englishProfile,
6441
6503
  ja: japaneseProfile,
@@ -6459,7 +6521,8 @@ var profiles = {
6459
6521
  hi: hindiProfile,
6460
6522
  tl: tagalogProfile,
6461
6523
  th: thaiProfile,
6462
- pl: polishProfile
6524
+ pl: polishProfile,
6525
+ he: hebrewProfile
6463
6526
  };
6464
6527
  function getProfile(locale) {
6465
6528
  return profiles[locale];
@@ -6767,6 +6830,7 @@ var bn2 = bengaliDictionary;
6767
6830
  var th2 = thaiDictionary;
6768
6831
  var ms2 = malayDictionary;
6769
6832
  var tl2 = tagalogDictionary;
6833
+ var he2 = he;
6770
6834
  var dictionaries = {
6771
6835
  en: en2,
6772
6836
  es: es2,
@@ -6790,7 +6854,8 @@ var dictionaries = {
6790
6854
  bn: bn2,
6791
6855
  th: th2,
6792
6856
  ms: ms2,
6793
- tl: tl2
6857
+ tl: tl2,
6858
+ he: he2
6794
6859
  };
6795
6860
 
6796
6861
  // src/types.ts
@@ -6841,6 +6906,57 @@ function getCommandKeywordsForLocale(locale) {
6841
6906
  }
6842
6907
  return keywords;
6843
6908
  }
6909
+ function extractBlockStructure(input, sourceLocale) {
6910
+ const tokens = input.split(/\s+/);
6911
+ const head = tokens[0]?.toLowerCase();
6912
+ if (!head || !BLOCK_HEAD_KEYWORDS.has(head)) return null;
6913
+ let depth = 1;
6914
+ let endIdx = -1;
6915
+ for (let i = 1; i < tokens.length; i++) {
6916
+ const t = tokens[i].toLowerCase();
6917
+ if (BLOCK_HEAD_KEYWORDS.has(t)) depth++;
6918
+ else if (t === "end") {
6919
+ depth--;
6920
+ if (depth === 0) {
6921
+ endIdx = i;
6922
+ break;
6923
+ }
6924
+ }
6925
+ }
6926
+ if (endIdx !== -1 && endIdx !== tokens.length - 1) return null;
6927
+ const inner = endIdx !== -1 ? tokens.slice(1, endIdx) : tokens.slice(1);
6928
+ const base = { headKeyword: tokens[0], body: "" };
6929
+ if (endIdx !== -1) base.tailKeyword = tokens[endIdx];
6930
+ if (head === "live") {
6931
+ return { ...base, body: inner.join(" ") };
6932
+ }
6933
+ if (head === "when") {
6934
+ const idx = inner.findIndex((t) => t.toLowerCase() === "changes");
6935
+ if (idx >= 0) {
6936
+ return {
6937
+ ...base,
6938
+ prefixExpr: inner.slice(0, idx).join(" "),
6939
+ connector: inner[idx],
6940
+ body: inner.slice(idx + 1).join(" ")
6941
+ };
6942
+ }
6943
+ return null;
6944
+ }
6945
+ const commands = getCommandKeywordsForLocale(sourceLocale);
6946
+ let bodyStart = -1;
6947
+ for (let i = 0; i < inner.length; i++) {
6948
+ if (commands.has(inner[i].toLowerCase())) {
6949
+ bodyStart = i;
6950
+ break;
6951
+ }
6952
+ }
6953
+ if (bodyStart <= 0) return null;
6954
+ return {
6955
+ ...base,
6956
+ prefixExpr: inner.slice(0, bodyStart).join(" "),
6957
+ body: inner.slice(bodyStart).join(" ")
6958
+ };
6959
+ }
6844
6960
  function splitCompoundStatement(input, sourceLocale) {
6845
6961
  const lines = input.split(/\n/).map((line) => line.trim()).filter((line) => line.length > 0);
6846
6962
  const parts = [];
@@ -6956,6 +7072,7 @@ var BOUNDARY_MODIFIERS = /* @__PURE__ */ new Set([
6956
7072
  "of",
6957
7073
  "over"
6958
7074
  ]);
7075
+ var BLOCK_HEAD_KEYWORDS = /* @__PURE__ */ new Set(["live", "when", "unless"]);
6959
7076
  function splitOnCommandBoundaries(input, sourceLocale) {
6960
7077
  const commandKeywords = getCommandKeywordsForLocale(sourceLocale);
6961
7078
  const tokens = input.split(/\s+/);
@@ -6965,9 +7082,15 @@ function splitOnCommandBoundaries(input, sourceLocale) {
6965
7082
  const firstTokenLower = tokens[0]?.toLowerCase();
6966
7083
  const isEventHandler = EVENT_KEYWORDS.has(firstTokenLower);
6967
7084
  let seenFirstCommand = !isEventHandler;
7085
+ let blockDepth = 0;
6968
7086
  for (let i = 0; i < tokens.length; i++) {
6969
7087
  const token = tokens[i];
6970
7088
  const lowerToken = token.toLowerCase();
7089
+ if (BLOCK_HEAD_KEYWORDS.has(lowerToken)) {
7090
+ blockDepth++;
7091
+ } else if (lowerToken === "end" && blockDepth > 0) {
7092
+ blockDepth--;
7093
+ }
6971
7094
  if (commandKeywords.has(lowerToken) && currentPart.length > 0) {
6972
7095
  const prevToken = currentPart[currentPart.length - 1];
6973
7096
  const prevLower = prevToken.toLowerCase();
@@ -6976,6 +7099,10 @@ function splitOnCommandBoundaries(input, sourceLocale) {
6976
7099
  currentPart.push(token);
6977
7100
  continue;
6978
7101
  }
7102
+ if (blockDepth > 0) {
7103
+ currentPart.push(token);
7104
+ continue;
7105
+ }
6979
7106
  if (!BOUNDARY_MODIFIERS.has(prevLower) && !commandKeywords.has(prevLower)) {
6980
7107
  parts.push(currentPart.join(" "));
6981
7108
  currentPart = [token];
@@ -7495,6 +7622,10 @@ var GrammarTransformer = class {
7495
7622
  * Transform a single hyperscript statement (no compound "then" chains).
7496
7623
  */
7497
7624
  transformSingle(input) {
7625
+ const block = extractBlockStructure(input, this.sourceProfile.code);
7626
+ if (block) {
7627
+ return this.transformBlock(block);
7628
+ }
7498
7629
  const parsed = parseStatement(input, this.sourceProfile.code);
7499
7630
  if (!parsed) {
7500
7631
  return input;
@@ -7517,6 +7648,24 @@ var GrammarTransformer = class {
7517
7648
  }
7518
7649
  return joinTokens(reordered.map((e) => e.translated || e.value));
7519
7650
  }
7651
+ /**
7652
+ * Translate a reactive block by translating the head/tail/connector
7653
+ * via the dictionary, recursively transforming the body through the
7654
+ * regular pipeline, and rejoining in source-language position order.
7655
+ * Block-syntactic tokens are never reordered: they're delimiters, not
7656
+ * arguments, and authors expect them at start/end positions
7657
+ * regardless of target word order.
7658
+ */
7659
+ transformBlock(block) {
7660
+ const src = this.sourceProfile.code;
7661
+ const dst = this.targetProfile.code;
7662
+ const head = translateWord(block.headKeyword, src, dst);
7663
+ const tail = block.tailKeyword ? translateWord(block.tailKeyword, src, dst) : "";
7664
+ const connector = block.connector ? translateWord(block.connector, src, dst) : "";
7665
+ const prefix = block.prefixExpr ? translateMultiWordValue(block.prefixExpr, src, dst) : "";
7666
+ const body = this.transform(block.body);
7667
+ return [head, prefix, connector, body, tail].filter((s) => s.length > 0).join(" ");
7668
+ }
7520
7669
  /**
7521
7670
  * Find the best matching rule for this statement
7522
7671
  */
@@ -7622,6 +7771,6 @@ var examples = {
7622
7771
  }
7623
7772
  };
7624
7773
 
7625
- export { ENGLISH_COMMANDS, ENGLISH_KEYWORDS, GrammarTransformer, LANGUAGE_FAMILY_DEFAULTS, LocaleManager, UNIVERSAL_ENGLISH_KEYWORDS, UNIVERSAL_PATTERNS, ar, ar as arDictionary, arKeywords, arabicProfile, bn, bn as bnDictionary, bnKeywords, chineseProfile, createEnglishProvider, createKeywordProvider, de, de as deDictionary, deKeywords, detectBrowserLocale, directMappings, en, englishProfile, es, es as esDictionary, esKeywords, fr, fr as frDictionary, frKeywords, frenchProfile, germanProfile, getDirectMapping, getProfile, getSupportedDirectPairs, getSupportedLocales, examples as grammarExamples, hasDirectMapping, hindiDictionary as hiDictionary, hiKeywords, hindiDictionary, id, id as idDictionary, idKeywords, indonesianProfile, insertMarkers, it, it as itDictionary, itKeywords, ja, ja as jaDictionary, jaKeywords, japaneseProfile, joinTokens, ko, ko as koDictionary, koKeywords, koreanProfile, ms, ms as msDictionary, msKeywords, parseStatement, pl, pl as plDictionary, plKeywords, portugueseProfile, profiles, pt, pt as ptDictionary, ptKeywords, qu, qu as quDictionary, quKeywords, quechuaProfile, reorderRoles, russianDictionary as ruDictionary, ruKeywords, russianDictionary, spanishProfile, sw, sw as swDictionary, swKeywords, swahiliProfile, th, th as thDictionary, thKeywords, tl, tl as tlDictionary, tlKeywords, toEnglish, toLocale, tr, tr as trDictionary, trKeywords, transformStatement, translate, translateWordDirect, turkishProfile, ukrainianDictionary as ukDictionary, ukKeywords, ukrainianDictionary, vi, vi as viDictionary, viKeywords, zh, zh as zhDictionary, zhKeywords };
7774
+ export { ENGLISH_COMMANDS, ENGLISH_KEYWORDS, GrammarTransformer, LANGUAGE_FAMILY_DEFAULTS, LocaleManager, UNIVERSAL_ENGLISH_KEYWORDS, UNIVERSAL_PATTERNS, ar, ar as arDictionary, arKeywords, arabicProfile, bn, bn as bnDictionary, bnKeywords, chineseProfile, createEnglishProvider, createKeywordProvider, de, de as deDictionary, deKeywords, detectBrowserLocale, directMappings, en, englishProfile, es, es as esDictionary, esKeywords, fr, fr as frDictionary, frKeywords, frenchProfile, germanProfile, getDirectMapping, getProfile, getSupportedDirectPairs, getSupportedLocales, examples as grammarExamples, hasDirectMapping, he, he as heDictionary, heKeywords, hebrewProfile, hindiDictionary as hiDictionary, hiKeywords, hindiDictionary, id, id as idDictionary, idKeywords, indonesianProfile, insertMarkers, it, it as itDictionary, itKeywords, ja, ja as jaDictionary, jaKeywords, japaneseProfile, joinTokens, ko, ko as koDictionary, koKeywords, koreanProfile, ms, ms as msDictionary, msKeywords, parseStatement, pl, pl as plDictionary, plKeywords, portugueseProfile, profiles, pt, pt as ptDictionary, ptKeywords, qu, qu as quDictionary, quKeywords, quechuaProfile, reorderRoles, russianDictionary as ruDictionary, ruKeywords, russianDictionary, spanishProfile, sw, sw as swDictionary, swKeywords, swahiliProfile, th, th as thDictionary, thKeywords, tl, tl as tlDictionary, tlKeywords, toEnglish, toLocale, tr, tr as trDictionary, trKeywords, transformStatement, translate, translateWordDirect, turkishProfile, ukrainianDictionary as ukDictionary, ukKeywords, ukrainianDictionary, vi, vi as viDictionary, viKeywords, zh, zh as zhDictionary, zhKeywords };
7626
7775
  //# sourceMappingURL=browser.js.map
7627
7776
  //# sourceMappingURL=browser.js.map