@mieweb/ui 0.10.0-dev.44 → 0.10.0-dev.46

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 (125) hide show
  1. package/dist/{chunk-4IS3QCOQ.cjs → chunk-2FZYZ4HT.cjs} +4 -3
  2. package/dist/chunk-2FZYZ4HT.cjs.map +1 -0
  3. package/dist/{chunk-IT775BYG.js → chunk-2W73UQ3T.js} +4 -3
  4. package/dist/chunk-2W73UQ3T.js.map +1 -0
  5. package/dist/{chunk-VEE46VTX.js → chunk-4RI3CQGE.js} +4 -4
  6. package/dist/{chunk-VEE46VTX.js.map → chunk-4RI3CQGE.js.map} +1 -1
  7. package/dist/{chunk-DHU3FFC3.cjs → chunk-ATRW3J5Z.cjs} +7 -7
  8. package/dist/{chunk-DHU3FFC3.cjs.map → chunk-ATRW3J5Z.cjs.map} +1 -1
  9. package/dist/{chunk-WFL4N5PC.js → chunk-DXFP53KF.js} +3 -3
  10. package/dist/{chunk-WFL4N5PC.js.map → chunk-DXFP53KF.js.map} +1 -1
  11. package/dist/{chunk-CVXESGXJ.js → chunk-EBKE4DLU.js} +9 -3
  12. package/dist/chunk-EBKE4DLU.js.map +1 -0
  13. package/dist/{chunk-X3RSNAMX.js → chunk-EGPDT7SM.js} +3 -3
  14. package/dist/{chunk-X3RSNAMX.js.map → chunk-EGPDT7SM.js.map} +1 -1
  15. package/dist/{chunk-XVW5DPPP.js → chunk-F7SZSOB3.js} +4 -3
  16. package/dist/chunk-F7SZSOB3.js.map +1 -0
  17. package/dist/{chunk-S4XCPDEO.cjs → chunk-FBN2VHUV.cjs} +9 -3
  18. package/dist/chunk-FBN2VHUV.cjs.map +1 -0
  19. package/dist/{chunk-F2FOG4EG.cjs → chunk-FMEA6WAY.cjs} +9 -9
  20. package/dist/{chunk-F2FOG4EG.cjs.map → chunk-FMEA6WAY.cjs.map} +1 -1
  21. package/dist/{chunk-VFFV7EMT.cjs → chunk-GYXSF6BJ.cjs} +6 -6
  22. package/dist/{chunk-VFFV7EMT.cjs.map → chunk-GYXSF6BJ.cjs.map} +1 -1
  23. package/dist/{chunk-ZSNFL736.cjs → chunk-IEZXJWHJ.cjs} +5 -5
  24. package/dist/{chunk-ZSNFL736.cjs.map → chunk-IEZXJWHJ.cjs.map} +1 -1
  25. package/dist/{chunk-TVU4KB27.cjs → chunk-KIVEYQGA.cjs} +3 -37
  26. package/dist/chunk-KIVEYQGA.cjs.map +1 -0
  27. package/dist/{chunk-LUPRGPKP.js → chunk-LAN5VWGC.js} +4 -4
  28. package/dist/{chunk-LUPRGPKP.js.map → chunk-LAN5VWGC.js.map} +1 -1
  29. package/dist/{chunk-SACHTD7B.js → chunk-LX323IMT.js} +3 -3
  30. package/dist/{chunk-SACHTD7B.js.map → chunk-LX323IMT.js.map} +1 -1
  31. package/dist/{chunk-B4CKCNWD.js → chunk-ME7EVT6F.js} +9 -3
  32. package/dist/chunk-ME7EVT6F.js.map +1 -0
  33. package/dist/{chunk-EEOGIGIA.js → chunk-OYUIEJPN.js} +15 -6
  34. package/dist/chunk-OYUIEJPN.js.map +1 -0
  35. package/dist/{chunk-C77FAR3F.cjs → chunk-PINIBEIU.cjs} +15 -6
  36. package/dist/chunk-PINIBEIU.cjs.map +1 -0
  37. package/dist/{chunk-OIMXMPH2.cjs → chunk-PWXDRFJL.cjs} +6 -6
  38. package/dist/{chunk-OIMXMPH2.cjs.map → chunk-PWXDRFJL.cjs.map} +1 -1
  39. package/dist/{chunk-LC7PVBXH.cjs → chunk-S7AMZ4RD.cjs} +9 -3
  40. package/dist/chunk-S7AMZ4RD.cjs.map +1 -0
  41. package/dist/{chunk-OSTSZDQC.js → chunk-TJ4GWQPM.js} +6 -4
  42. package/dist/chunk-TJ4GWQPM.js.map +1 -0
  43. package/dist/{chunk-DZ3JTMKM.cjs → chunk-U2RS574O.cjs} +12 -10
  44. package/dist/{chunk-DZ3JTMKM.cjs.map → chunk-U2RS574O.cjs.map} +1 -1
  45. package/dist/{chunk-W3HXHIDO.cjs → chunk-WSMBIXPU.cjs} +11 -11
  46. package/dist/{chunk-W3HXHIDO.cjs.map → chunk-WSMBIXPU.cjs.map} +1 -1
  47. package/dist/{chunk-XDIMTPZU.cjs → chunk-XPWFIDZM.cjs} +4 -3
  48. package/dist/chunk-XPWFIDZM.cjs.map +1 -0
  49. package/dist/{chunk-F3EWRDIT.js → chunk-YG7BR76Y.js} +4 -35
  50. package/dist/{chunk-TVU4KB27.cjs.map → chunk-YG7BR76Y.js.map} +1 -1
  51. package/dist/chunk-YVKBXNPK.js +41 -0
  52. package/dist/chunk-YVKBXNPK.js.map +1 -0
  53. package/dist/{chunk-24AFHH4J.js → chunk-YZCM7CXK.js} +3 -3
  54. package/dist/{chunk-24AFHH4J.js.map → chunk-YZCM7CXK.js.map} +1 -1
  55. package/dist/chunk-Z3WMDVMR.cjs +46 -0
  56. package/dist/chunk-Z3WMDVMR.cjs.map +1 -0
  57. package/dist/components/BoardView/index.cjs +5 -4
  58. package/dist/components/BoardView/index.js +2 -1
  59. package/dist/components/Dropdown/index.cjs +9 -8
  60. package/dist/components/Dropdown/index.d.cts +4 -3
  61. package/dist/components/Dropdown/index.d.ts +4 -3
  62. package/dist/components/Dropdown/index.js +2 -1
  63. package/dist/components/EmailEditor/index.cjs +14 -13
  64. package/dist/components/EmailEditor/index.js +5 -4
  65. package/dist/components/RecordHeader/index.cjs +5 -4
  66. package/dist/components/RecordHeader/index.js +3 -2
  67. package/dist/components/RecordLayout/index.cjs +5 -4
  68. package/dist/components/RecordLayout/index.js +3 -2
  69. package/dist/components/RichTextEditor/index.cjs +6 -5
  70. package/dist/components/RichTextEditor/index.js +3 -2
  71. package/dist/components/SuperChat/index.cjs +10 -9
  72. package/dist/components/SuperChat/index.cjs.map +1 -1
  73. package/dist/components/SuperChat/index.js +3 -2
  74. package/dist/components/SuperChat/index.js.map +1 -1
  75. package/dist/components/SuperChat/plugins/index.cjs +5 -4
  76. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  77. package/dist/components/SuperChat/plugins/index.js +4 -3
  78. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  79. package/dist/components/Tabs/index.cjs +8 -7
  80. package/dist/components/Tabs/index.js +2 -1
  81. package/dist/components/ViewSet/index.cjs +5 -4
  82. package/dist/components/ViewSet/index.js +4 -3
  83. package/dist/components/ViewSwitcher/index.cjs +4 -3
  84. package/dist/components/ViewSwitcher/index.js +2 -1
  85. package/dist/deck.cjs +12 -3
  86. package/dist/deck.cjs.map +1 -1
  87. package/dist/deck.js +12 -3
  88. package/dist/deck.js.map +1 -1
  89. package/dist/esheet.cjs +5 -4
  90. package/dist/esheet.cjs.map +1 -1
  91. package/dist/esheet.js +2 -1
  92. package/dist/esheet.js.map +1 -1
  93. package/dist/{hey-buddy-INNUFFJJ.cjs → hey-buddy-5WOBYZRJ.cjs} +22 -11
  94. package/dist/hey-buddy-5WOBYZRJ.cjs.map +1 -0
  95. package/dist/{hey-buddy-V6FC5UKB.js → hey-buddy-AHUHCDBC.js} +22 -11
  96. package/dist/hey-buddy-AHUHCDBC.js.map +1 -0
  97. package/dist/hooks/index.cjs +36 -31
  98. package/dist/hooks/index.d.cts +13 -1
  99. package/dist/hooks/index.d.ts +13 -1
  100. package/dist/hooks/index.js +2 -1
  101. package/dist/index.cjs +215 -212
  102. package/dist/index.cjs.map +1 -1
  103. package/dist/index.d.cts +19 -5
  104. package/dist/index.d.ts +19 -5
  105. package/dist/index.js +30 -30
  106. package/dist/index.js.map +1 -1
  107. package/dist/org-chart.cjs +2 -1
  108. package/dist/org-chart.cjs.map +1 -1
  109. package/dist/org-chart.js +2 -1
  110. package/dist/org-chart.js.map +1 -1
  111. package/package.json +1 -1
  112. package/dist/chunk-4IS3QCOQ.cjs.map +0 -1
  113. package/dist/chunk-B4CKCNWD.js.map +0 -1
  114. package/dist/chunk-C77FAR3F.cjs.map +0 -1
  115. package/dist/chunk-CVXESGXJ.js.map +0 -1
  116. package/dist/chunk-EEOGIGIA.js.map +0 -1
  117. package/dist/chunk-F3EWRDIT.js.map +0 -1
  118. package/dist/chunk-IT775BYG.js.map +0 -1
  119. package/dist/chunk-LC7PVBXH.cjs.map +0 -1
  120. package/dist/chunk-OSTSZDQC.js.map +0 -1
  121. package/dist/chunk-S4XCPDEO.cjs.map +0 -1
  122. package/dist/chunk-XDIMTPZU.cjs.map +0 -1
  123. package/dist/chunk-XVW5DPPP.js.map +0 -1
  124. package/dist/hey-buddy-INNUFFJJ.cjs.map +0 -1
  125. package/dist/hey-buddy-V6FC5UKB.js.map +0 -1
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ // src/hooks/useDirection.ts
6
+ var RTL_LOCALES = ["ar", "he", "fa", "ur"];
7
+ function isRtlLocale(locale) {
8
+ const lang = locale.toLowerCase().split(/[-_]/)[0];
9
+ return RTL_LOCALES.includes(lang);
10
+ }
11
+ function resolveDirection(element) {
12
+ if (typeof document === "undefined") return "ltr";
13
+ const target = element ?? document.documentElement;
14
+ return getComputedStyle(target).direction === "rtl" ? "rtl" : "ltr";
15
+ }
16
+ function isRtl(element) {
17
+ return resolveDirection(element) === "rtl";
18
+ }
19
+ function useDirection(elementRef) {
20
+ const [direction, setDirection] = react.useState(
21
+ () => resolveDirection(elementRef?.current)
22
+ );
23
+ react.useEffect(() => {
24
+ const update = () => setDirection(resolveDirection(elementRef?.current));
25
+ update();
26
+ const observer = new MutationObserver(update);
27
+ observer.observe(document.documentElement, {
28
+ attributes: true,
29
+ attributeFilter: ["dir"],
30
+ subtree: true
31
+ });
32
+ return () => observer.disconnect();
33
+ }, [elementRef]);
34
+ const currentElement = elementRef?.current ?? null;
35
+ react.useEffect(() => {
36
+ setDirection(resolveDirection(currentElement));
37
+ }, [currentElement]);
38
+ return direction;
39
+ }
40
+
41
+ exports.RTL_LOCALES = RTL_LOCALES;
42
+ exports.isRtl = isRtl;
43
+ exports.isRtlLocale = isRtlLocale;
44
+ exports.useDirection = useDirection;
45
+ //# sourceMappingURL=chunk-Z3WMDVMR.cjs.map
46
+ //# sourceMappingURL=chunk-Z3WMDVMR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useDirection.ts"],"names":["useState","useEffect"],"mappings":";;;;;AAMO,IAAM,WAAA,GAAc,CAAC,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAM3C,SAAS,YAAY,MAAA,EAAyB;AACnD,EAAA,MAAM,OAAO,MAAA,CAAO,WAAA,GAAc,KAAA,CAAM,MAAM,EAAE,CAAC,CAAA;AACjD,EAAA,OAAQ,WAAA,CAAkC,SAAS,IAAI,CAAA;AACzD;AAEA,SAAS,iBAAiB,OAAA,EAAqC;AAC7D,EAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,KAAA;AAC5C,EAAA,MAAM,MAAA,GAAS,WAAW,QAAA,CAAS,eAAA;AACnC,EAAA,OAAO,gBAAA,CAAiB,MAAM,CAAA,CAAE,SAAA,KAAc,QAAQ,KAAA,GAAQ,KAAA;AAChE;AAaO,SAAS,MAAM,OAAA,EAAmC;AACvD,EAAA,OAAO,gBAAA,CAAiB,OAAO,CAAA,KAAM,KAAA;AACvC;AAoBO,SAAS,aACd,UAAA,EACW;AACX,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,cAAA;AAAA,IAAoB,MACpD,gBAAA,CAAiB,UAAA,EAAY,OAAO;AAAA,GACtC;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,SAAS,MAAM,YAAA,CAAa,gBAAA,CAAiB,UAAA,EAAY,OAAO,CAAC,CAAA;AACvE,IAAA,MAAA,EAAO;AAEP,IAAA,MAAM,QAAA,GAAW,IAAI,gBAAA,CAAiB,MAAM,CAAA;AAC5C,IAAA,QAAA,CAAS,OAAA,CAAQ,SAAS,eAAA,EAAiB;AAAA,MACzC,UAAA,EAAY,IAAA;AAAA,MACZ,eAAA,EAAiB,CAAC,KAAK,CAAA;AAAA,MACvB,OAAA,EAAS;AAAA,KACV,CAAA;AACD,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAKf,EAAA,MAAM,cAAA,GAAiB,YAAY,OAAA,IAAW,IAAA;AAC9C,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,YAAA,CAAa,gBAAA,CAAiB,cAAc,CAAC,CAAA;AAAA,EAC/C,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,OAAO,SAAA;AACT","file":"chunk-Z3WMDVMR.cjs","sourcesContent":["import { useState, useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nexport type Direction = 'ltr' | 'rtl';\n\n/** Locales whose primary script reads right-to-left. */\nexport const RTL_LOCALES = ['ar', 'he', 'fa', 'ur'] as const;\n\n/**\n * Returns true when the given locale (e.g. `ar`, `ar-SA`, `he_IL`) uses a\n * right-to-left script.\n */\nexport function isRtlLocale(locale: string): boolean {\n const lang = locale.toLowerCase().split(/[-_]/)[0];\n return (RTL_LOCALES as readonly string[]).includes(lang);\n}\n\nfunction resolveDirection(element?: Element | null): Direction {\n if (typeof document === 'undefined') return 'ltr';\n const target = element ?? document.documentElement;\n return getComputedStyle(target).direction === 'rtl' ? 'rtl' : 'ltr';\n}\n\n/**\n * Non-hook check for event handlers: true when the element currently renders\n * right-to-left. Use inside `onKeyDown` to invert ArrowLeft/ArrowRight so\n * horizontal arrows follow the *visual* direction:\n *\n * ```ts\n * const rtl = isRtl(event.currentTarget);\n * ```\n *\n * Prefer `useDirection()` when the direction drives rendering.\n */\nexport function isRtl(element?: Element | null): boolean {\n return resolveDirection(element) === 'rtl';\n}\n\n/**\n * Hook returning the effective text direction (`ltr` | `rtl`) inherited from\n * the nearest `dir` attribute — zero setup for consumers who set\n * `<html dir=\"rtl\">`.\n *\n * Use for JS-level direction logic that CSS logical properties can't cover:\n * inverting ArrowLeft/ArrowRight keyboard handling, popover/toast placement,\n * drag math, etc.\n *\n * @param elementRef - Optional ref; when provided, direction is resolved from\n * that element (respecting any local `dir` override) instead of `<html>`.\n *\n * @example\n * ```tsx\n * const direction = useDirection();\n * const nextKey = direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n * ```\n */\nexport function useDirection(\n elementRef?: RefObject<HTMLElement | null>\n): Direction {\n const [direction, setDirection] = useState<Direction>(() =>\n resolveDirection(elementRef?.current)\n );\n\n useEffect(() => {\n const update = () => setDirection(resolveDirection(elementRef?.current));\n update();\n // dir changes are rare; observing the whole tree for just this attribute is cheap.\n const observer = new MutationObserver(update);\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir'],\n subtree: true,\n });\n return () => observer.disconnect();\n }, [elementRef]);\n\n // Re-sync when a re-render points elementRef.current at a different node:\n // the MutationObserver only fires on `dir` attribute mutations, so a swapped\n // ref target with a different inherited direction would otherwise go stale.\n const currentElement = elementRef?.current ?? null;\n useEffect(() => {\n setDirection(resolveDirection(currentElement));\n }, [currentElement]);\n\n return direction;\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunk4IS3QCOQ_cjs = require('../../chunk-4IS3QCOQ.cjs');
3
+ var chunk2FZYZ4HT_cjs = require('../../chunk-2FZYZ4HT.cjs');
4
4
  require('../../chunk-4NCDU5IG.cjs');
5
5
  require('../../chunk-XXVUHLQN.cjs');
6
+ require('../../chunk-Z3WMDVMR.cjs');
6
7
  require('../../chunk-S5RVSXDV.cjs');
7
8
  require('../../chunk-EUAMEVVI.cjs');
8
9
 
@@ -10,15 +11,15 @@ require('../../chunk-EUAMEVVI.cjs');
10
11
 
11
12
  Object.defineProperty(exports, "BoardView", {
12
13
  enumerable: true,
13
- get: function () { return chunk4IS3QCOQ_cjs.BoardView; }
14
+ get: function () { return chunk2FZYZ4HT_cjs.BoardView; }
14
15
  });
15
16
  Object.defineProperty(exports, "boardViewCardVariants", {
16
17
  enumerable: true,
17
- get: function () { return chunk4IS3QCOQ_cjs.cardVariants; }
18
+ get: function () { return chunk2FZYZ4HT_cjs.cardVariants; }
18
19
  });
19
20
  Object.defineProperty(exports, "defaultBoardLabels", {
20
21
  enumerable: true,
21
- get: function () { return chunk4IS3QCOQ_cjs.defaultBoardLabels; }
22
+ get: function () { return chunk2FZYZ4HT_cjs.defaultBoardLabels; }
22
23
  });
23
24
  //# sourceMappingURL=index.cjs.map
24
25
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,7 @@
1
- export { BoardView, cardVariants as boardViewCardVariants, defaultBoardLabels } from '../../chunk-XVW5DPPP.js';
1
+ export { BoardView, cardVariants as boardViewCardVariants, defaultBoardLabels } from '../../chunk-F7SZSOB3.js';
2
2
  import '../../chunk-3YBS4WUQ.js';
3
3
  import '../../chunk-UA7E7PDS.js';
4
+ import '../../chunk-YVKBXNPK.js';
4
5
  import '../../chunk-TQONQSJO.js';
5
6
  import '../../chunk-PX6F3LHL.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  require('../../chunk-ZNUMOJOI.cjs');
4
- var chunkC77FAR3F_cjs = require('../../chunk-C77FAR3F.cjs');
4
+ var chunkPINIBEIU_cjs = require('../../chunk-PINIBEIU.cjs');
5
5
  require('../../chunk-I44YNYI6.cjs');
6
6
  require('../../chunk-Z5S5JEJD.cjs');
7
7
  require('../../chunk-FHY3K6PL.cjs');
8
8
  require('../../chunk-FSGEDDF2.cjs');
9
9
  require('../../chunk-AOHJILLU.cjs');
10
+ require('../../chunk-Z3WMDVMR.cjs');
10
11
  require('../../chunk-IEY3ZJIT.cjs');
11
12
  require('../../chunk-S5RVSXDV.cjs');
12
13
  require('../../chunk-EUAMEVVI.cjs');
@@ -15,31 +16,31 @@ require('../../chunk-EUAMEVVI.cjs');
15
16
 
16
17
  Object.defineProperty(exports, "Dropdown", {
17
18
  enumerable: true,
18
- get: function () { return chunkC77FAR3F_cjs.Dropdown; }
19
+ get: function () { return chunkPINIBEIU_cjs.Dropdown; }
19
20
  });
20
21
  Object.defineProperty(exports, "DropdownContent", {
21
22
  enumerable: true,
22
- get: function () { return chunkC77FAR3F_cjs.DropdownContent; }
23
+ get: function () { return chunkPINIBEIU_cjs.DropdownContent; }
23
24
  });
24
25
  Object.defineProperty(exports, "DropdownHeader", {
25
26
  enumerable: true,
26
- get: function () { return chunkC77FAR3F_cjs.DropdownHeader; }
27
+ get: function () { return chunkPINIBEIU_cjs.DropdownHeader; }
27
28
  });
28
29
  Object.defineProperty(exports, "DropdownItem", {
29
30
  enumerable: true,
30
- get: function () { return chunkC77FAR3F_cjs.DropdownItem; }
31
+ get: function () { return chunkPINIBEIU_cjs.DropdownItem; }
31
32
  });
32
33
  Object.defineProperty(exports, "DropdownLabel", {
33
34
  enumerable: true,
34
- get: function () { return chunkC77FAR3F_cjs.DropdownLabel; }
35
+ get: function () { return chunkPINIBEIU_cjs.DropdownLabel; }
35
36
  });
36
37
  Object.defineProperty(exports, "DropdownSeparator", {
37
38
  enumerable: true,
38
- get: function () { return chunkC77FAR3F_cjs.DropdownSeparator; }
39
+ get: function () { return chunkPINIBEIU_cjs.DropdownSeparator; }
39
40
  });
40
41
  Object.defineProperty(exports, "DropdownSubmenu", {
41
42
  enumerable: true,
42
- get: function () { return chunkC77FAR3F_cjs.DropdownSubmenu; }
43
+ get: function () { return chunkPINIBEIU_cjs.DropdownSubmenu; }
43
44
  });
44
45
  //# sourceMappingURL=index.cjs.map
45
46
  //# sourceMappingURL=index.cjs.map
@@ -126,9 +126,10 @@ interface DropdownSubmenuProps {
126
126
  /**
127
127
  * A dropdown item that opens a nested flyout menu.
128
128
  *
129
- * Opens on hover or click, and via ArrowRight/Enter/Space from the keyboard;
130
- * ArrowLeft or Escape closes just the submenu (Escape is stopped so the root
131
- * menu stays open) and returns focus to the trigger.
129
+ * Opens on hover or click, and from the keyboard via Enter/Space or the
130
+ * arrow toward the inline-end (ArrowRight in LTR, ArrowLeft in RTL); the
131
+ * opposite arrow or Escape closes just the submenu (Escape is stopped so the
132
+ * root menu stays open) and returns focus to the trigger.
132
133
  *
133
134
  * @example
134
135
  * ```tsx
@@ -126,9 +126,10 @@ interface DropdownSubmenuProps {
126
126
  /**
127
127
  * A dropdown item that opens a nested flyout menu.
128
128
  *
129
- * Opens on hover or click, and via ArrowRight/Enter/Space from the keyboard;
130
- * ArrowLeft or Escape closes just the submenu (Escape is stopped so the root
131
- * menu stays open) and returns focus to the trigger.
129
+ * Opens on hover or click, and from the keyboard via Enter/Space or the
130
+ * arrow toward the inline-end (ArrowRight in LTR, ArrowLeft in RTL); the
131
+ * opposite arrow or Escape closes just the submenu (Escape is stopped so the
132
+ * root menu stays open) and returns focus to the trigger.
132
133
  *
133
134
  * @example
134
135
  * ```tsx
@@ -1,10 +1,11 @@
1
1
  import '../../chunk-AMYFRY7K.js';
2
- export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator, DropdownSubmenu } from '../../chunk-EEOGIGIA.js';
2
+ export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator, DropdownSubmenu } from '../../chunk-OYUIEJPN.js';
3
3
  import '../../chunk-6NZXWKUE.js';
4
4
  import '../../chunk-3IMM2PM4.js';
5
5
  import '../../chunk-T4ME7QCT.js';
6
6
  import '../../chunk-62ZOA6PX.js';
7
7
  import '../../chunk-WSNMQQ4P.js';
8
+ import '../../chunk-YVKBXNPK.js';
8
9
  import '../../chunk-F4N67NAF.js';
9
10
  import '../../chunk-TQONQSJO.js';
10
11
  import '../../chunk-PX6F3LHL.js';
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkW3HXHIDO_cjs = require('../../chunk-W3HXHIDO.cjs');
3
+ var chunkWSMBIXPU_cjs = require('../../chunk-WSMBIXPU.cjs');
4
4
  require('../../chunk-BXRQ6HEP.cjs');
5
- require('../../chunk-LC7PVBXH.cjs');
6
- require('../../chunk-DHU3FFC3.cjs');
5
+ require('../../chunk-S7AMZ4RD.cjs');
6
+ require('../../chunk-ATRW3J5Z.cjs');
7
7
  require('../../chunk-YP5T6NZD.cjs');
8
8
  require('../../chunk-PLMXN23Q.cjs');
9
9
  require('../../chunk-ZNUMOJOI.cjs');
10
- require('../../chunk-C77FAR3F.cjs');
10
+ require('../../chunk-PINIBEIU.cjs');
11
11
  require('../../chunk-7WJ6MBF5.cjs');
12
12
  require('../../chunk-C7RVKV25.cjs');
13
13
  require('../../chunk-BSDBI6H7.cjs');
@@ -18,6 +18,7 @@ require('../../chunk-CPDNX3LS.cjs');
18
18
  require('../../chunk-FHY3K6PL.cjs');
19
19
  require('../../chunk-FSGEDDF2.cjs');
20
20
  require('../../chunk-AOHJILLU.cjs');
21
+ require('../../chunk-Z3WMDVMR.cjs');
21
22
  require('../../chunk-EACNRR3C.cjs');
22
23
  require('../../chunk-ANMX7YDL.cjs');
23
24
  require('../../chunk-DXEPYK3I.cjs');
@@ -29,39 +30,39 @@ require('../../chunk-EUAMEVVI.cjs');
29
30
 
30
31
  Object.defineProperty(exports, "EMAIL_BLOCK_TYPES", {
31
32
  enumerable: true,
32
- get: function () { return chunkW3HXHIDO_cjs.EMAIL_BLOCK_TYPES; }
33
+ get: function () { return chunkWSMBIXPU_cjs.EMAIL_BLOCK_TYPES; }
33
34
  });
34
35
  Object.defineProperty(exports, "EmailEditor", {
35
36
  enumerable: true,
36
- get: function () { return chunkW3HXHIDO_cjs.EmailEditor; }
37
+ get: function () { return chunkWSMBIXPU_cjs.EmailEditor; }
37
38
  });
38
39
  Object.defineProperty(exports, "createDefaultDesignSettings", {
39
40
  enumerable: true,
40
- get: function () { return chunkW3HXHIDO_cjs.createDefaultDesignSettings; }
41
+ get: function () { return chunkWSMBIXPU_cjs.createDefaultDesignSettings; }
41
42
  });
42
43
  Object.defineProperty(exports, "createEmailBlock", {
43
44
  enumerable: true,
44
- get: function () { return chunkW3HXHIDO_cjs.createEmailBlock; }
45
+ get: function () { return chunkWSMBIXPU_cjs.createEmailBlock; }
45
46
  });
46
47
  Object.defineProperty(exports, "createEmailHtmlSanitizer", {
47
48
  enumerable: true,
48
- get: function () { return chunkW3HXHIDO_cjs.createEmailHtmlSanitizer; }
49
+ get: function () { return chunkWSMBIXPU_cjs.createEmailHtmlSanitizer; }
49
50
  });
50
51
  Object.defineProperty(exports, "createEmptyEmailContentTree", {
51
52
  enumerable: true,
52
- get: function () { return chunkW3HXHIDO_cjs.createEmptyEmailContentTree; }
53
+ get: function () { return chunkWSMBIXPU_cjs.createEmptyEmailContentTree; }
53
54
  });
54
55
  Object.defineProperty(exports, "defaultEmailEditorLabels", {
55
56
  enumerable: true,
56
- get: function () { return chunkW3HXHIDO_cjs.defaultEmailEditorLabels; }
57
+ get: function () { return chunkWSMBIXPU_cjs.defaultEmailEditorLabels; }
57
58
  });
58
59
  Object.defineProperty(exports, "generateEmailBlockId", {
59
60
  enumerable: true,
60
- get: function () { return chunkW3HXHIDO_cjs.generateEmailBlockId; }
61
+ get: function () { return chunkWSMBIXPU_cjs.generateEmailBlockId; }
61
62
  });
62
63
  Object.defineProperty(exports, "renderEmailMjml", {
63
64
  enumerable: true,
64
- get: function () { return chunkW3HXHIDO_cjs.renderEmailMjml; }
65
+ get: function () { return chunkWSMBIXPU_cjs.renderEmailMjml; }
65
66
  });
66
67
  //# sourceMappingURL=index.cjs.map
67
68
  //# sourceMappingURL=index.cjs.map
@@ -1,11 +1,11 @@
1
- export { EMAIL_BLOCK_TYPES, EmailEditor, createDefaultDesignSettings, createEmailBlock, createEmailHtmlSanitizer, createEmptyEmailContentTree, defaultEmailEditorLabels, generateEmailBlockId, renderEmailMjml } from '../../chunk-LUPRGPKP.js';
1
+ export { EMAIL_BLOCK_TYPES, EmailEditor, createDefaultDesignSettings, createEmailBlock, createEmailHtmlSanitizer, createEmptyEmailContentTree, defaultEmailEditorLabels, generateEmailBlockId, renderEmailMjml } from '../../chunk-LAN5VWGC.js';
2
2
  import '../../chunk-XBAAHOCP.js';
3
- import '../../chunk-B4CKCNWD.js';
4
- import '../../chunk-SACHTD7B.js';
3
+ import '../../chunk-ME7EVT6F.js';
4
+ import '../../chunk-LX323IMT.js';
5
5
  import '../../chunk-OQWZYKJM.js';
6
6
  import '../../chunk-AQ564XO7.js';
7
7
  import '../../chunk-AMYFRY7K.js';
8
- import '../../chunk-EEOGIGIA.js';
8
+ import '../../chunk-OYUIEJPN.js';
9
9
  import '../../chunk-CVNPNZMX.js';
10
10
  import '../../chunk-ERLPVXOV.js';
11
11
  import '../../chunk-H3YO5GBM.js';
@@ -16,6 +16,7 @@ import '../../chunk-HNXLLDPN.js';
16
16
  import '../../chunk-T4ME7QCT.js';
17
17
  import '../../chunk-62ZOA6PX.js';
18
18
  import '../../chunk-WSNMQQ4P.js';
19
+ import '../../chunk-YVKBXNPK.js';
19
20
  import '../../chunk-N5JDL4VE.js';
20
21
  import '../../chunk-WFBUBT54.js';
21
22
  import '../../chunk-GVM6DTR5.js';
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkZSNFL736_cjs = require('../../chunk-ZSNFL736.cjs');
4
- require('../../chunk-C77FAR3F.cjs');
3
+ var chunkIEZXJWHJ_cjs = require('../../chunk-IEZXJWHJ.cjs');
4
+ require('../../chunk-PINIBEIU.cjs');
5
5
  require('../../chunk-GKDHMNUA.cjs');
6
6
  require('../../chunk-I44YNYI6.cjs');
7
7
  require('../../chunk-Z5S5JEJD.cjs');
8
8
  require('../../chunk-FHY3K6PL.cjs');
9
9
  require('../../chunk-FSGEDDF2.cjs');
10
10
  require('../../chunk-AOHJILLU.cjs');
11
+ require('../../chunk-Z3WMDVMR.cjs');
11
12
  require('../../chunk-7E46YDOT.cjs');
12
13
  require('../../chunk-ANMX7YDL.cjs');
13
14
  require('../../chunk-DXEPYK3I.cjs');
@@ -19,11 +20,11 @@ require('../../chunk-EUAMEVVI.cjs');
19
20
 
20
21
  Object.defineProperty(exports, "RecordHeader", {
21
22
  enumerable: true,
22
- get: function () { return chunkZSNFL736_cjs.RecordHeader; }
23
+ get: function () { return chunkIEZXJWHJ_cjs.RecordHeader; }
23
24
  });
24
25
  Object.defineProperty(exports, "defaultRecordHeaderLabels", {
25
26
  enumerable: true,
26
- get: function () { return chunkZSNFL736_cjs.defaultRecordHeaderLabels; }
27
+ get: function () { return chunkIEZXJWHJ_cjs.defaultRecordHeaderLabels; }
27
28
  });
28
29
  //# sourceMappingURL=index.cjs.map
29
30
  //# sourceMappingURL=index.cjs.map
@@ -1,11 +1,12 @@
1
- export { RecordHeader, defaultRecordHeaderLabels } from '../../chunk-WFL4N5PC.js';
2
- import '../../chunk-EEOGIGIA.js';
1
+ export { RecordHeader, defaultRecordHeaderLabels } from '../../chunk-DXFP53KF.js';
2
+ import '../../chunk-OYUIEJPN.js';
3
3
  import '../../chunk-TI3TQQ7F.js';
4
4
  import '../../chunk-6NZXWKUE.js';
5
5
  import '../../chunk-3IMM2PM4.js';
6
6
  import '../../chunk-T4ME7QCT.js';
7
7
  import '../../chunk-62ZOA6PX.js';
8
8
  import '../../chunk-WSNMQQ4P.js';
9
+ import '../../chunk-YVKBXNPK.js';
9
10
  import '../../chunk-522WJIVI.js';
10
11
  import '../../chunk-WFBUBT54.js';
11
12
  import '../../chunk-GVM6DTR5.js';
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkOIMXMPH2_cjs = require('../../chunk-OIMXMPH2.cjs');
4
- require('../../chunk-LC7PVBXH.cjs');
3
+ var chunkPWXDRFJL_cjs = require('../../chunk-PWXDRFJL.cjs');
4
+ require('../../chunk-S7AMZ4RD.cjs');
5
5
  require('../../chunk-7WJ6MBF5.cjs');
6
+ require('../../chunk-Z3WMDVMR.cjs');
6
7
  require('../../chunk-7E46YDOT.cjs');
7
8
  require('../../chunk-S5RVSXDV.cjs');
8
9
  require('../../chunk-EUAMEVVI.cjs');
@@ -11,11 +12,11 @@ require('../../chunk-EUAMEVVI.cjs');
11
12
 
12
13
  Object.defineProperty(exports, "RecordLayout", {
13
14
  enumerable: true,
14
- get: function () { return chunkOIMXMPH2_cjs.RecordLayout; }
15
+ get: function () { return chunkPWXDRFJL_cjs.RecordLayout; }
15
16
  });
16
17
  Object.defineProperty(exports, "defaultRecordLayoutLabels", {
17
18
  enumerable: true,
18
- get: function () { return chunkOIMXMPH2_cjs.defaultRecordLayoutLabels; }
19
+ get: function () { return chunkPWXDRFJL_cjs.defaultRecordLayoutLabels; }
19
20
  });
20
21
  //# sourceMappingURL=index.cjs.map
21
22
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,7 @@
1
- export { RecordLayout, defaultRecordLayoutLabels } from '../../chunk-X3RSNAMX.js';
2
- import '../../chunk-B4CKCNWD.js';
1
+ export { RecordLayout, defaultRecordLayoutLabels } from '../../chunk-EGPDT7SM.js';
2
+ import '../../chunk-ME7EVT6F.js';
3
3
  import '../../chunk-CVNPNZMX.js';
4
+ import '../../chunk-YVKBXNPK.js';
4
5
  import '../../chunk-522WJIVI.js';
5
6
  import '../../chunk-TQONQSJO.js';
6
7
  import '../../chunk-PX6F3LHL.js';
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunkDHU3FFC3_cjs = require('../../chunk-DHU3FFC3.cjs');
3
+ var chunkATRW3J5Z_cjs = require('../../chunk-ATRW3J5Z.cjs');
4
4
  require('../../chunk-YP5T6NZD.cjs');
5
5
  require('../../chunk-ZNUMOJOI.cjs');
6
- require('../../chunk-C77FAR3F.cjs');
6
+ require('../../chunk-PINIBEIU.cjs');
7
7
  var chunkC7RVKV25_cjs = require('../../chunk-C7RVKV25.cjs');
8
8
  require('../../chunk-I44YNYI6.cjs');
9
9
  require('../../chunk-Z5S5JEJD.cjs');
10
10
  require('../../chunk-FHY3K6PL.cjs');
11
11
  require('../../chunk-FSGEDDF2.cjs');
12
12
  require('../../chunk-AOHJILLU.cjs');
13
+ require('../../chunk-Z3WMDVMR.cjs');
13
14
  require('../../chunk-EACNRR3C.cjs');
14
15
  require('../../chunk-ANMX7YDL.cjs');
15
16
  require('../../chunk-DXEPYK3I.cjs');
@@ -21,15 +22,15 @@ require('../../chunk-EUAMEVVI.cjs');
21
22
 
22
23
  Object.defineProperty(exports, "RichTextEditor", {
23
24
  enumerable: true,
24
- get: function () { return chunkDHU3FFC3_cjs.RichTextEditor; }
25
+ get: function () { return chunkATRW3J5Z_cjs.RichTextEditor; }
25
26
  });
26
27
  Object.defineProperty(exports, "convertAngleBracketsToMustache", {
27
28
  enumerable: true,
28
- get: function () { return chunkDHU3FFC3_cjs.convertAngleBracketsToMustache; }
29
+ get: function () { return chunkATRW3J5Z_cjs.convertAngleBracketsToMustache; }
29
30
  });
30
31
  Object.defineProperty(exports, "processDictation", {
31
32
  enumerable: true,
32
- get: function () { return chunkDHU3FFC3_cjs.processDictation; }
33
+ get: function () { return chunkATRW3J5Z_cjs.processDictation; }
33
34
  });
34
35
  Object.defineProperty(exports, "isHtmlEmpty", {
35
36
  enumerable: true,
@@ -1,13 +1,14 @@
1
- export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from '../../chunk-SACHTD7B.js';
1
+ export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from '../../chunk-LX323IMT.js';
2
2
  import '../../chunk-OQWZYKJM.js';
3
3
  import '../../chunk-AMYFRY7K.js';
4
- import '../../chunk-EEOGIGIA.js';
4
+ import '../../chunk-OYUIEJPN.js';
5
5
  export { isHtmlEmpty } from '../../chunk-ERLPVXOV.js';
6
6
  import '../../chunk-6NZXWKUE.js';
7
7
  import '../../chunk-3IMM2PM4.js';
8
8
  import '../../chunk-T4ME7QCT.js';
9
9
  import '../../chunk-62ZOA6PX.js';
10
10
  import '../../chunk-WSNMQQ4P.js';
11
+ import '../../chunk-YVKBXNPK.js';
11
12
  import '../../chunk-N5JDL4VE.js';
12
13
  import '../../chunk-WFBUBT54.js';
13
14
  import '../../chunk-GVM6DTR5.js';
@@ -2,12 +2,12 @@
2
2
 
3
3
  var chunkJFLC7SHM_cjs = require('../../chunk-JFLC7SHM.cjs');
4
4
  var chunkXRVMYT5G_cjs = require('../../chunk-XRVMYT5G.cjs');
5
- var chunkDZ3JTMKM_cjs = require('../../chunk-DZ3JTMKM.cjs');
5
+ var chunkU2RS574O_cjs = require('../../chunk-U2RS574O.cjs');
6
6
  var chunkAJPFQF3H_cjs = require('../../chunk-AJPFQF3H.cjs');
7
7
  require('../../chunk-GLXTVCHN.cjs');
8
8
  var chunkKQ6GLYFZ_cjs = require('../../chunk-KQ6GLYFZ.cjs');
9
9
  require('../../chunk-ZNUMOJOI.cjs');
10
- var chunkC77FAR3F_cjs = require('../../chunk-C77FAR3F.cjs');
10
+ var chunkPINIBEIU_cjs = require('../../chunk-PINIBEIU.cjs');
11
11
  require('../../chunk-PJ6CC53R.cjs');
12
12
  require('../../chunk-VBWRH4UW.cjs');
13
13
  var chunkVPTASZ2O_cjs = require('../../chunk-VPTASZ2O.cjs');
@@ -25,6 +25,7 @@ require('../../chunk-AOHJILLU.cjs');
25
25
  require('../../chunk-SCV7C55E.cjs');
26
26
  require('../../chunk-L7L5S2HO.cjs');
27
27
  var chunkYW2AKBLS_cjs = require('../../chunk-YW2AKBLS.cjs');
28
+ require('../../chunk-Z3WMDVMR.cjs');
28
29
  var chunk7E46YDOT_cjs = require('../../chunk-7E46YDOT.cjs');
29
30
  require('../../chunk-EACNRR3C.cjs');
30
31
  var chunkANMX7YDL_cjs = require('../../chunk-ANMX7YDL.cjs');
@@ -366,7 +367,7 @@ function ActionMenuItem({
366
367
  item,
367
368
  onSelect
368
369
  }) {
369
- return /* @__PURE__ */ jsxRuntime.jsx(chunkC77FAR3F_cjs.DropdownItem, { onClick: () => onSelect(item.onSelect), children: item.description ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex flex-col items-start", children: [
370
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkPINIBEIU_cjs.DropdownItem, { onClick: () => onSelect(item.onSelect), children: item.description ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex flex-col items-start", children: [
370
371
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label }),
371
372
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-normal text-neutral-400", children: item.description })
372
373
  ] }) : item.label });
@@ -398,7 +399,7 @@ function FooterActionButton({
398
399
  );
399
400
  if (!action.submenu) return button;
400
401
  return /* @__PURE__ */ jsxRuntime.jsx(
401
- chunkC77FAR3F_cjs.Dropdown,
402
+ chunkPINIBEIU_cjs.Dropdown,
402
403
  {
403
404
  open,
404
405
  onOpenChange: setOpen,
@@ -453,7 +454,7 @@ function MessageOverflowMenu({
453
454
  footerVisible && !open && "pointer-events-none invisible opacity-0"
454
455
  ),
455
456
  children: /* @__PURE__ */ jsxRuntime.jsx(
456
- chunkC77FAR3F_cjs.Dropdown,
457
+ chunkPINIBEIU_cjs.Dropdown,
457
458
  {
458
459
  open,
459
460
  onOpenChange: setOpen,
@@ -472,9 +473,9 @@ function MessageOverflowMenu({
472
473
  (action) => action.submenu ? (
473
474
  // Actions with variants collapse to just their submenu — a
474
475
  // top-level default item would duplicate the flyout's options.
475
- /* @__PURE__ */ jsxRuntime.jsx(chunkC77FAR3F_cjs.DropdownSubmenu, { label: action.submenu.label, children: action.submenu.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(ActionMenuItem, { item, onSelect: select }, item.id)) }, action.id)
476
+ /* @__PURE__ */ jsxRuntime.jsx(chunkPINIBEIU_cjs.DropdownSubmenu, { label: action.submenu.label, children: action.submenu.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(ActionMenuItem, { item, onSelect: select }, item.id)) }, action.id)
476
477
  ) : /* @__PURE__ */ jsxRuntime.jsx(
477
- chunkC77FAR3F_cjs.DropdownItem,
478
+ chunkPINIBEIU_cjs.DropdownItem,
478
479
  {
479
480
  onClick: () => select(action.onSelect),
480
481
  children: action.label
@@ -1410,7 +1411,7 @@ function SuperChat({
1410
1411
  mediaItems.length
1411
1412
  ]);
1412
1413
  React3__namespace.useEffect(() => {
1413
- chunkDZ3JTMKM_cjs.notifyComposerMigrationOnce("SuperChat");
1414
+ chunkU2RS574O_cjs.notifyComposerMigrationOnce("SuperChat");
1414
1415
  }, []);
1415
1416
  const renderText = React3__namespace.useMemo(
1416
1417
  () => renderTextContent ?? createMarkdownRenderer({
@@ -1896,7 +1897,7 @@ function SuperChat({
1896
1897
  }
1897
1898
  ),
1898
1899
  /* @__PURE__ */ jsxRuntime.jsx(
1899
- chunkDZ3JTMKM_cjs.ChatComposer,
1900
+ chunkU2RS574O_cjs.ChatComposer,
1900
1901
  {
1901
1902
  value: draft,
1902
1903
  onValueChange: handleDraftChange,