@flamingo-stack/openframe-frontend-core 0.0.744 → 0.0.745

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 (81) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-NURAL5HD.cjs → chunk-3LX5AGZO.cjs} +9 -9
  3. package/dist/{chunk-PYWHDPVC.cjs → chunk-6IQDQQ56.cjs} +25 -25
  4. package/dist/{chunk-FTYQS6VI.cjs → chunk-75BF7YJR.cjs} +7 -7
  5. package/dist/{chunk-H62FNZGG.cjs → chunk-7KHQHYXL.cjs} +11 -11
  6. package/dist/{chunk-65LJNDR2.cjs → chunk-7PQOZLVP.cjs} +9 -9
  7. package/dist/{chunk-7YDF3QBN.cjs → chunk-DJO7YMT3.cjs} +126 -13
  8. package/dist/{chunk-2JRCJV3M.cjs → chunk-FNIFUCXU.cjs} +3 -3
  9. package/dist/{chunk-35IQLGV3.cjs → chunk-GEEKJ7SH.cjs} +37 -37
  10. package/dist/{chunk-OC2LBQQJ.cjs → chunk-GOTEXQZN.cjs} +15 -15
  11. package/dist/{chunk-HHL23RFC.cjs → chunk-GQ2TRIOV.cjs} +33 -33
  12. package/dist/{chunk-2UBR53AN.cjs → chunk-HMSCUL4R.cjs} +4 -4
  13. package/dist/{chunk-HMSUYWSB.cjs → chunk-HVR7DPAY.cjs} +4 -4
  14. package/dist/{chunk-AT6ZI4CO.cjs → chunk-M4FKV2U5.cjs} +6 -6
  15. package/dist/{chunk-QZYF2YQ3.cjs → chunk-NFINQ7IZ.cjs} +4 -4
  16. package/dist/{chunk-HTQJYN47.cjs → chunk-PM5ELQBL.cjs} +17 -17
  17. package/dist/{chunk-HJ4KGA2M.cjs → chunk-QES5NV4T.cjs} +716 -532
  18. package/dist/{chunk-QSO56JZ2.cjs → chunk-RIGSZEXS.cjs} +66 -66
  19. package/dist/{cloud-tenants-JPXAXSPE.cjs → cloud-tenants-DECPWIYQ.cjs} +4 -4
  20. package/dist/components/case-studies/index.cjs +14 -14
  21. package/dist/components/chat/index.cjs +3 -3
  22. package/dist/components/contact/index.cjs +5 -5
  23. package/dist/components/docs/index.cjs +8 -8
  24. package/dist/components/embeds/index.cjs +5 -5
  25. package/dist/components/embeds/reddit-embed-client.d.ts +3 -1
  26. package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -1
  27. package/dist/components/embeds/reddit-embed-client.js +5 -3
  28. package/dist/components/embeds/twitter-embed-client.d.ts +3 -1
  29. package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -1
  30. package/dist/components/embeds/twitter-embed-client.js +5 -3
  31. package/dist/components/faq/index.cjs +6 -6
  32. package/dist/components/features/index.cjs +4 -4
  33. package/dist/components/help-center-pages/index.cjs +74 -74
  34. package/dist/components/index.cjs +41 -37
  35. package/dist/components/meeting-scheduler/index.cjs +22 -22
  36. package/dist/components/navigation/index.cjs +7 -7
  37. package/dist/components/onboarding-guides/index.cjs +6 -6
  38. package/dist/components/product-demo/index.cjs +7 -7
  39. package/dist/components/tickets/index.cjs +9 -9
  40. package/dist/components/ui/index.cjs +8 -4
  41. package/dist/components/ui/index.d.ts +1 -0
  42. package/dist/components/ui/index.d.ts.map +1 -1
  43. package/dist/components/ui/index.js +1 -0
  44. package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
  45. package/dist/components/ui/markdown/base-components.js +3 -2
  46. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -1
  47. package/dist/components/ui/markdown/rich/embed-overrides.js +11 -8
  48. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  49. package/dist/components/ui/markdown-editor.js +4 -0
  50. package/dist/components/ui/markdown-link-command.d.ts +37 -0
  51. package/dist/components/ui/markdown-link-command.d.ts.map +1 -0
  52. package/dist/components/ui/markdown-link-command.js +180 -0
  53. package/dist/{devices-ONC4JOVH.cjs → devices-HJKDRWQX.cjs} +5 -5
  54. package/dist/{embeddable-chat-7ZEGCDVF.cjs → embeddable-chat-3SKFBO2P.cjs} +64 -64
  55. package/dist/index.cjs +24 -8
  56. package/dist/{knowledge-G7XU5YST.cjs → knowledge-NH2CGY2C.cjs} +5 -5
  57. package/dist/{logs-5B7NY4G6.cjs → logs-KZYIDYQK.cjs} +12 -12
  58. package/dist/{policies-OYR3SLJN.cjs → policies-UAVTPIKM.cjs} +8 -8
  59. package/dist/{scripts-6CWHTY6U.cjs → scripts-FRPY43KU.cjs} +9 -9
  60. package/dist/{software-update-AJPIY4SQ.cjs → software-update-AEJJNLX5.cjs} +7 -7
  61. package/dist/utils/index.cjs +119 -4
  62. package/dist/utils/index.d.ts +1 -0
  63. package/dist/utils/index.d.ts.map +1 -1
  64. package/dist/utils/index.js +1 -0
  65. package/dist/utils/markdown-link.d.ts +44 -0
  66. package/dist/utils/markdown-link.d.ts.map +1 -0
  67. package/dist/utils/markdown-link.js +83 -0
  68. package/dist/utils/markdown-to-plain.d.ts +3 -16
  69. package/dist/utils/markdown-to-plain.d.ts.map +1 -1
  70. package/dist/utils/markdown-to-plain.js +33 -3
  71. package/package.json +3 -1
  72. package/src/components/embeds/reddit-embed-client.tsx +7 -3
  73. package/src/components/embeds/twitter-embed-client.tsx +7 -3
  74. package/src/components/ui/index.ts +1 -0
  75. package/src/components/ui/markdown/base-components.tsx +5 -2
  76. package/src/components/ui/markdown/rich/embed-overrides.tsx +12 -9
  77. package/src/components/ui/markdown-editor.tsx +6 -0
  78. package/src/components/ui/markdown-link-command.tsx +252 -0
  79. package/src/utils/index.ts +1 -0
  80. package/src/utils/markdown-link.ts +148 -0
  81. package/src/utils/markdown-to-plain.ts +64 -22
@@ -8,7 +8,7 @@ var _chunkSTEJZPIOcjs = require('./chunk-STEJZPIO.cjs');
8
8
  var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
9
9
 
10
10
 
11
- var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
11
+ var _chunkQES5NV4Tcjs = require('./chunk-QES5NV4T.cjs');
12
12
  require('./chunk-URVIPSAJ.cjs');
13
13
  require('./chunk-NTGIQP7O.cjs');
14
14
  require('./chunk-U2O5YQRP.cjs');
@@ -21,10 +21,10 @@ require('./chunk-A6P6DHEZ.cjs');
21
21
  require('./chunk-MZ4KBSH7.cjs');
22
22
  require('./chunk-GAGNKWOC.cjs');
23
23
  require('./chunk-YUMFVQIN.cjs');
24
- require('./chunk-OC2LBQQJ.cjs');
24
+ require('./chunk-GOTEXQZN.cjs');
25
25
 
26
26
 
27
- var _chunk7YDF3QBNcjs = require('./chunk-7YDF3QBN.cjs');
27
+ var _chunkDJO7YMT3cjs = require('./chunk-DJO7YMT3.cjs');
28
28
  require('./chunk-OWGLRE74.cjs');
29
29
  require('./chunk-3RFQPQ7Z.cjs');
30
30
  require('./chunk-5TCIRWHL.cjs');
@@ -1905,10 +1905,10 @@ function KnowledgeScreen(_props) {
1905
1905
  const cast = _chunkSTEJZPIOcjs.useProductDemoCast.call(void 0, );
1906
1906
  const fixture = _react.useMemo.call(void 0, () => buildKnowledgeFixture(cast), [cast]);
1907
1907
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1908
- _chunkHJ4KGA2Mcjs.KnowledgeBaseArticleView,
1908
+ _chunkQES5NV4Tcjs.KnowledgeBaseArticleView,
1909
1909
  {
1910
1910
  ...fixture.article,
1911
- content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.SimpleMarkdownRenderer, { content: fixture.content, textSize: "compact" })
1911
+ content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.SimpleMarkdownRenderer, { content: fixture.content, textSize: "compact" })
1912
1912
  }
1913
1913
  ) });
1914
1914
  }
@@ -16,7 +16,7 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
19
+ var _chunkQES5NV4Tcjs = require('./chunk-QES5NV4T.cjs');
20
20
  require('./chunk-URVIPSAJ.cjs');
21
21
  require('./chunk-NTGIQP7O.cjs');
22
22
  require('./chunk-U2O5YQRP.cjs');
@@ -31,8 +31,8 @@ require('./chunk-GAGNKWOC.cjs');
31
31
  require('./chunk-YUMFVQIN.cjs');
32
32
 
33
33
 
34
- var _chunkOC2LBQQJcjs = require('./chunk-OC2LBQQJ.cjs');
35
- require('./chunk-7YDF3QBN.cjs');
34
+ var _chunkGOTEXQZNcjs = require('./chunk-GOTEXQZN.cjs');
35
+ require('./chunk-DJO7YMT3.cjs');
36
36
  require('./chunk-OWGLRE74.cjs');
37
37
  require('./chunk-3RFQPQ7Z.cjs');
38
38
  require('./chunk-5TCIRWHL.cjs');
@@ -1886,7 +1886,7 @@ function entry(logId, minutesAgo, severity, toolType, device2, summary) {
1886
1886
  id: logId,
1887
1887
  logId,
1888
1888
  timestamp: displayTime(_chunkDKOLQPE7cjs.demoMinutesAgo.call(void 0, minutesAgo)),
1889
- status: { label: severity, variant: _chunkHJ4KGA2Mcjs.logSeverityVariant.call(void 0, severity) },
1889
+ status: { label: severity, variant: _chunkQES5NV4Tcjs.logSeverityVariant.call(void 0, severity) },
1890
1890
  source: { name: toolType, toolType },
1891
1891
  device: device2,
1892
1892
  description: { title: summary }
@@ -1958,13 +1958,13 @@ var NO_FILTERS = {};
1958
1958
  var ACTION_COLUMNS = ["copy", "quickView", "open"];
1959
1959
  var BESIDE_DRAWER_HIDDEN = [...ACTION_COLUMNS, "tool", "source"];
1960
1960
  var logHref = () => "#";
1961
- var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.LogCopyIconButton, {});
1961
+ var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQES5NV4Tcjs.LogCopyIconButton, {});
1962
1962
  function LogsScreen({ compact = false }) {
1963
1963
  const [dock, setDock] = _react.useState.call(void 0, null);
1964
1964
  const selected = LOGS_FIXTURE_SELECTED;
1965
1965
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full bg-ods-bg", children: [
1966
1966
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1 overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1967
- _chunkHJ4KGA2Mcjs.LogsPageView,
1967
+ _chunkQES5NV4Tcjs.LogsPageView,
1968
1968
  {
1969
1969
  showHeader: false,
1970
1970
  className: "p-[var(--spacing-system-l)]",
@@ -1972,7 +1972,7 @@ function LogsScreen({ compact = false }) {
1972
1972
  onSearchChange: noop,
1973
1973
  onOpenFilters: noop,
1974
1974
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1975
- _chunkHJ4KGA2Mcjs.LogsTableView,
1975
+ _chunkQES5NV4Tcjs.LogsTableView,
1976
1976
  {
1977
1977
  logs: LOGS_FIXTURE_ENTRIES,
1978
1978
  facets: LOGS_FIXTURE_FACETS,
@@ -1986,8 +1986,8 @@ function LogsScreen({ compact = false }) {
1986
1986
  )
1987
1987
  }
1988
1988
  ) }),
1989
- !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.AppLayoutDrawerContainerContext.Provider, { value: dock, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1990
- _chunkHJ4KGA2Mcjs.LogDrawer,
1989
+ !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQES5NV4Tcjs.AppLayoutDrawerContainerContext.Provider, { value: dock, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1990
+ _chunkQES5NV4Tcjs.LogDrawer,
1991
1991
  {
1992
1992
  docked: true,
1993
1993
  isOpen: true,
@@ -1999,12 +1999,12 @@ function LogsScreen({ compact = false }) {
1999
1999
  { label: "Log ID", value: selected.logId },
2000
2000
  {
2001
2001
  label: "Source",
2002
- value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.ToolBadge, { toolType: _chunkOC2LBQQJcjs.normalizeToolTypeWithFallback.call(void 0, selected.source.toolType) })
2002
+ value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQES5NV4Tcjs.ToolBadge, { toolType: _chunkGOTEXQZNcjs.normalizeToolTypeWithFallback.call(void 0, selected.source.toolType) })
2003
2003
  },
2004
- { label: "Device", value: _chunkHJ4KGA2Mcjs.logSourceLabels.call(void 0, selected.device).deviceName }
2004
+ { label: "Device", value: _chunkQES5NV4Tcjs.logSourceLabels.call(void 0, selected.device).deviceName }
2005
2005
  ],
2006
2006
  deviceCard: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2007
- _chunkHJ4KGA2Mcjs.DeviceCard,
2007
+ _chunkQES5NV4Tcjs.DeviceCard,
2008
2008
  {
2009
2009
  ...LOGS_FIXTURE_DEVICE,
2010
2010
  actions: {
@@ -10,7 +10,7 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
13
+ var _chunkQES5NV4Tcjs = require('./chunk-QES5NV4T.cjs');
14
14
  require('./chunk-URVIPSAJ.cjs');
15
15
  require('./chunk-NTGIQP7O.cjs');
16
16
  require('./chunk-U2O5YQRP.cjs');
@@ -23,8 +23,8 @@ require('./chunk-A6P6DHEZ.cjs');
23
23
  require('./chunk-MZ4KBSH7.cjs');
24
24
  require('./chunk-GAGNKWOC.cjs');
25
25
  require('./chunk-YUMFVQIN.cjs');
26
- require('./chunk-OC2LBQQJ.cjs');
27
- require('./chunk-7YDF3QBN.cjs');
26
+ require('./chunk-GOTEXQZN.cjs');
27
+ require('./chunk-DJO7YMT3.cjs');
28
28
  require('./chunk-OWGLRE74.cjs');
29
29
  require('./chunk-3RFQPQ7Z.cjs');
30
30
  require('./chunk-5TCIRWHL.cjs');
@@ -1891,14 +1891,14 @@ var POLICIES = [
1891
1891
  policy("policy-local-admins", "No local admins", "No everyday account is a local administrator.", false, 0)
1892
1892
  ];
1893
1893
  var POLICIES_FIXTURE = {
1894
- summary: _chunkHJ4KGA2Mcjs.computePolicySummary.call(void 0, POLICIES),
1894
+ summary: _chunkQES5NV4Tcjs.computePolicySummary.call(void 0, POLICIES),
1895
1895
  rows: POLICIES.map((item) => ({
1896
1896
  id: item.id,
1897
1897
  name: item.name,
1898
1898
  description: item.description,
1899
1899
  critical: item.critical,
1900
1900
  severityLabel: item.critical ? "Critical" : "Low",
1901
- status: _chunkHJ4KGA2Mcjs.getPolicyTableStatus.call(void 0, item),
1901
+ status: _chunkQES5NV4Tcjs.getPolicyTableStatus.call(void 0, item),
1902
1902
  actions: [
1903
1903
  { label: "Policy Details", onClick: noop },
1904
1904
  { label: "Delete Policy", onClick: noop }
@@ -1912,16 +1912,16 @@ var POLICIES_FIXTURE = {
1912
1912
  var _jsxruntime = require('react/jsx-runtime');
1913
1913
  function PoliciesScreen({ compact = false }) {
1914
1914
  const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1915
- _chunkHJ4KGA2Mcjs.PoliciesTable,
1915
+ _chunkQES5NV4Tcjs.PoliciesTable,
1916
1916
  {
1917
1917
  rows: POLICIES_FIXTURE.rows,
1918
1918
  rowAsLink: true,
1919
- rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.DataTable.RowCount, {}),
1919
+ rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQES5NV4Tcjs.DataTable.RowCount, {}),
1920
1920
  emptyMessage: "No policies found."
1921
1921
  }
1922
1922
  );
1923
1923
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col gap-[var(--spacing-system-l)] bg-ods-bg p-[var(--spacing-system-l)]", children: [
1924
- !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.PolicySummaryCards, { summary: POLICIES_FIXTURE.summary, now: POLICIES_FIXTURE.now }),
1924
+ !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQES5NV4Tcjs.PolicySummaryCards, { summary: POLICIES_FIXTURE.summary, now: POLICIES_FIXTURE.now }),
1925
1925
  table
1926
1926
  ] });
1927
1927
  }
@@ -13,7 +13,7 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
13
13
 
14
14
 
15
15
 
16
- var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
16
+ var _chunkQES5NV4Tcjs = require('./chunk-QES5NV4T.cjs');
17
17
  require('./chunk-URVIPSAJ.cjs');
18
18
  require('./chunk-NTGIQP7O.cjs');
19
19
 
@@ -28,8 +28,8 @@ require('./chunk-A6P6DHEZ.cjs');
28
28
  require('./chunk-MZ4KBSH7.cjs');
29
29
  require('./chunk-GAGNKWOC.cjs');
30
30
  require('./chunk-YUMFVQIN.cjs');
31
- require('./chunk-OC2LBQQJ.cjs');
32
- require('./chunk-7YDF3QBN.cjs');
31
+ require('./chunk-GOTEXQZN.cjs');
32
+ require('./chunk-DJO7YMT3.cjs');
33
33
  require('./chunk-OWGLRE74.cjs');
34
34
  require('./chunk-3RFQPQ7Z.cjs');
35
35
  require('./chunk-5TCIRWHL.cjs');
@@ -1995,8 +1995,8 @@ function buildScriptsFixture(cast) {
1995
1995
  var _jsxruntime = require('react/jsx-runtime');
1996
1996
  var WIDE_HIDDEN_COLUMNS = ["result", "open"];
1997
1997
  var COMPACT_COLUMNS = [
1998
- { ..._chunkHJ4KGA2Mcjs.EXECUTION_COLUMNS.machineId, width: "flex-1 min-w-0", hideAt: void 0 },
1999
- _chunkHJ4KGA2Mcjs.EXECUTION_COLUMNS.status
1998
+ { ..._chunkQES5NV4Tcjs.EXECUTION_COLUMNS.machineId, width: "flex-1 min-w-0", hideAt: void 0 },
1999
+ _chunkQES5NV4Tcjs.EXECUTION_COLUMNS.status
2000
2000
  ];
2001
2001
  var COMPACT_ROWS = 4;
2002
2002
  var TOKEN_CLASS = {
@@ -2055,7 +2055,7 @@ function ScriptCodePicture({ script }) {
2055
2055
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center justify-between gap-[var(--spacing-system-m)]", children: [
2056
2056
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU2O5YQRPcjs.TruncateText, { variant: "h6", tone: "secondary", children: `Written by ${provenance.author} \xB7 approved by ${provenance.approver}` }),
2057
2057
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2058
- _chunkHJ4KGA2Mcjs.ScriptShellBadge,
2058
+ _chunkQES5NV4Tcjs.ScriptShellBadge,
2059
2059
  {
2060
2060
  value: script.shellType,
2061
2061
  className: "shrink-0 text-ods-text-secondary text-h6",
@@ -2079,7 +2079,7 @@ function ScriptsScreen({ compact = false }) {
2079
2079
  return (
2080
2080
  // Four runs of the card's row height fill the frame; the padding is what is left round them.
2081
2081
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full overflow-hidden bg-ods-bg p-[var(--spacing-system-xsf)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2082
- _chunkHJ4KGA2Mcjs.ScriptExecutionsTable,
2082
+ _chunkQES5NV4Tcjs.ScriptExecutionsTable,
2083
2083
  {
2084
2084
  rows: fixture.executions.slice(0, COMPACT_ROWS),
2085
2085
  columns: COMPACT_COLUMNS,
@@ -2089,13 +2089,13 @@ function ScriptsScreen({ compact = false }) {
2089
2089
  ) })
2090
2090
  );
2091
2091
  }
2092
- const renderOutput = (row) => row.id === fixture.openExecutionId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.ScriptExecutionResult, { result: row.result, empty: "\u2014" }) : null;
2092
+ const renderOutput = (row) => row.id === fixture.openExecutionId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQES5NV4Tcjs.ScriptExecutionResult, { result: row.result, empty: "\u2014" }) : null;
2093
2093
  return (
2094
2094
  // The frame's tighter padding and no header row: the output opened under a run needs the height.
2095
2095
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full gap-[var(--spacing-system-m)] overflow-hidden bg-ods-bg p-[var(--spacing-system-m)]", children: [
2096
2096
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[39%] shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScriptCodePicture, { script: fixture.script }) }),
2097
2097
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1 overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2098
- _chunkHJ4KGA2Mcjs.ScriptExecutionsTable,
2098
+ _chunkQES5NV4Tcjs.ScriptExecutionsTable,
2099
2099
  {
2100
2100
  rows: fixture.executions,
2101
2101
  hideColumns: WIDE_HIDDEN_COLUMNS,
@@ -15,7 +15,7 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
15
15
 
16
16
 
17
17
 
18
- var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
18
+ var _chunkQES5NV4Tcjs = require('./chunk-QES5NV4T.cjs');
19
19
  require('./chunk-URVIPSAJ.cjs');
20
20
  require('./chunk-NTGIQP7O.cjs');
21
21
 
@@ -30,8 +30,8 @@ require('./chunk-A6P6DHEZ.cjs');
30
30
  require('./chunk-MZ4KBSH7.cjs');
31
31
  require('./chunk-GAGNKWOC.cjs');
32
32
  require('./chunk-YUMFVQIN.cjs');
33
- require('./chunk-OC2LBQQJ.cjs');
34
- require('./chunk-7YDF3QBN.cjs');
33
+ require('./chunk-GOTEXQZN.cjs');
34
+ require('./chunk-DJO7YMT3.cjs');
35
35
  require('./chunk-OWGLRE74.cjs');
36
36
  require('./chunk-3RFQPQ7Z.cjs');
37
37
  require('./chunk-5TCIRWHL.cjs');
@@ -1922,12 +1922,12 @@ function StaticPackageField({ value }) {
1922
1922
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1923
1923
  _chunkU2O5YQRPcjs.Autocomplete,
1924
1924
  {
1925
- label: _chunkHJ4KGA2Mcjs.PACKAGE_SEARCH_LABEL,
1925
+ label: _chunkQES5NV4Tcjs.PACKAGE_SEARCH_LABEL,
1926
1926
  labelVariant: "large",
1927
1927
  options: value ? [{ value: value.id, label: value.name, description: _nullishCoalesce(value.description, () => ( void 0)) }] : [],
1928
1928
  value: _nullishCoalesce(_optionalChain([value, 'optionalAccess', _ => _.id]), () => ( null)),
1929
1929
  onChange: noop,
1930
- placeholder: _chunkHJ4KGA2Mcjs.PACKAGE_SEARCH_PLACEHOLDER
1930
+ placeholder: _chunkQES5NV4Tcjs.PACKAGE_SEARCH_PLACEHOLDER
1931
1931
  }
1932
1932
  );
1933
1933
  }
@@ -1941,7 +1941,7 @@ function SoftwareUpdateScreen({ compact = false }) {
1941
1941
  [fixture.devices, fixture.selectedIds]
1942
1942
  );
1943
1943
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1944
- _chunkHJ4KGA2Mcjs.SoftwareActionForm,
1944
+ _chunkQES5NV4Tcjs.SoftwareActionForm,
1945
1945
  {
1946
1946
  action: fixture.action,
1947
1947
  showHeader: false,
@@ -1953,7 +1953,7 @@ function SoftwareUpdateScreen({ compact = false }) {
1953
1953
  initialValues: fixture.initialValues,
1954
1954
  renderPackageSearch,
1955
1955
  renderDevicePicker: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1956
- _chunkHJ4KGA2Mcjs.DeviceSelector,
1956
+ _chunkQES5NV4Tcjs.DeviceSelector,
1957
1957
  {
1958
1958
  devices: selected,
1959
1959
  loading: false,
@@ -6,10 +6,21 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var libphonenumberJs = require('libphonenumber-js');
8
8
  var lucideReact = require('lucide-react');
9
+ var hastUtilToText = require('hast-util-to-text');
10
+ var rehypeRaw = require('rehype-raw');
11
+ var remark = require('remark');
12
+ var remarkBreaks = require('remark-breaks');
13
+ var remarkGfm = require('remark-gfm');
14
+ var remarkRehype = require('remark-rehype');
15
+ var unistUtilVisit = require('unist-util-visit');
9
16
 
10
17
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
18
 
12
19
  var React__default = /*#__PURE__*/_interopDefault(React);
20
+ var rehypeRaw__default = /*#__PURE__*/_interopDefault(rehypeRaw);
21
+ var remarkBreaks__default = /*#__PURE__*/_interopDefault(remarkBreaks);
22
+ var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
23
+ var remarkRehype__default = /*#__PURE__*/_interopDefault(remarkRehype);
13
24
 
14
25
  var __defProp = Object.defineProperty;
15
26
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -85228,18 +85239,116 @@ function buildDocumentTree(docs, mapFn, getParentPath, getPath) {
85228
85239
  return sortTreeChildren(rootNodes);
85229
85240
  }
85230
85241
 
85231
- // src/utils/markdown-to-plain.ts
85242
+ // src/utils/markdown-link.ts
85243
+ var AUTHORED_LINK_REL_TOKENS = ["nofollow", "ugc", "sponsored"];
85244
+ var NEW_TAB_REL = "noopener noreferrer";
85245
+ function authoredRelTokens(rel) {
85246
+ if (!rel) return [];
85247
+ const given = new Set(
85248
+ (typeof rel === "string" ? rel.split(/\s+/) : rel).map((token) => token.trim().toLowerCase()).filter(Boolean)
85249
+ );
85250
+ return AUTHORED_LINK_REL_TOKENS.filter((token) => given.has(token));
85251
+ }
85252
+ function isNofollowRel(rel) {
85253
+ return authoredRelTokens(rel).includes("nofollow");
85254
+ }
85255
+ function renderedLinkRel(authoredRel, opensInNewTab) {
85256
+ const tokens = authoredRelTokens(authoredRel);
85257
+ if (opensInNewTab) tokens.push(NEW_TAB_REL);
85258
+ return tokens.length > 0 ? tokens.join(" ") : void 0;
85259
+ }
85260
+ var MARKDOWN_LINK_RE = /(?<!!)\[((?:\\.|[^\]\\])*)\]\(\s*<?([^\s)>]*)>?(?:\s+"[^"]*")?\s*\)/g;
85261
+ var HTML_LINK_RE = /<a\s([^>]*)>([\s\S]*?)<\/a\s*>/gi;
85262
+ function htmlAttribute(attributes, name) {
85263
+ const match = new RegExp(`(?:^|\\s)${name}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s"'>]+))`, "i").exec(attributes);
85264
+ if (!match) return null;
85265
+ return match[1] ?? match[2] ?? match[3] ?? "";
85266
+ }
85267
+ function decodeHtmlEntities(value) {
85268
+ return value.replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
85269
+ }
85270
+ function escapeHtmlAttribute(value) {
85271
+ return value.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
85272
+ }
85273
+ function escapeHtmlText(value) {
85274
+ return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
85275
+ }
85276
+ function escapeMarkdownLinkText(value) {
85277
+ return value.replace(/([\\[\]<])/g, "\\$1");
85278
+ }
85279
+ function unescapeMarkdownLinkText(value) {
85280
+ return value.replace(/\\([\\[\]<])/g, "$1");
85281
+ }
85282
+ function encodeMarkdownUrl(url) {
85283
+ return url.replace(/\s/g, (match) => encodeURIComponent(match)).replace(/[()]/g, (match) => encodeURIComponent(match));
85284
+ }
85285
+ function findMarkdownLinkAt(text, selectionStart, selectionEnd = selectionStart) {
85286
+ const from = Math.min(selectionStart, selectionEnd);
85287
+ const to = Math.max(selectionStart, selectionEnd);
85288
+ const contains = (start, end) => start <= from && to <= end;
85289
+ for (const match of text.matchAll(HTML_LINK_RE)) {
85290
+ const start = match.index ?? 0;
85291
+ const end = start + match[0].length;
85292
+ if (!contains(start, end)) continue;
85293
+ const attributes = match[1] ?? "";
85294
+ return {
85295
+ start,
85296
+ end,
85297
+ text: decodeHtmlEntities(match[2] ?? ""),
85298
+ url: decodeHtmlEntities(htmlAttribute(attributes, "href") ?? ""),
85299
+ rel: authoredRelTokens(htmlAttribute(attributes, "rel"))
85300
+ };
85301
+ }
85302
+ for (const match of text.matchAll(MARKDOWN_LINK_RE)) {
85303
+ const start = match.index ?? 0;
85304
+ const end = start + match[0].length;
85305
+ if (!contains(start, end)) continue;
85306
+ return { start, end, text: unescapeMarkdownLinkText(match[1] ?? ""), url: match[2] ?? "", rel: [] };
85307
+ }
85308
+ return null;
85309
+ }
85310
+ function formatMarkdownLink({ text, url, rel }) {
85311
+ const label = text.length > 0 ? text : url;
85312
+ const tokens = authoredRelTokens(rel);
85313
+ if (tokens.length > 0) {
85314
+ return `<a href="${escapeHtmlAttribute(url)}" rel="${tokens.join(" ")}">${escapeHtmlText(label)}</a>`;
85315
+ }
85316
+ return `[${escapeMarkdownLinkText(label)}](${encodeMarkdownUrl(url)})`;
85317
+ }
85232
85318
  function stripInlineMarkdown(s) {
85233
85319
  return s.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/\*\*([^*]+)\*\*/g, "$1").replace(/\*([^*]+)\*/g, "$1").replace(/`([^`]+)`/g, "$1");
85234
85320
  }
85321
+ var toHtmlTree = remark.remark().use(remarkGfm__default.default).use(remarkBreaks__default.default).use(remarkRehype__default.default, { allowDangerousHtml: true }).use(rehypeRaw__default.default);
85322
+ var NOT_PROSE = /* @__PURE__ */ new Set(["pre", "img"]);
85323
+ var TABLE_SECTIONS = /* @__PURE__ */ new Set(["thead", "tbody", "tfoot"]);
85324
+ function proseTree(markdown) {
85325
+ const tree = toHtmlTree.runSync(toHtmlTree.parse(markdown));
85326
+ unistUtilVisit.visit(tree, "element", (node, index, parent) => {
85327
+ if (NOT_PROSE.has(node.tagName) && parent && index !== void 0) {
85328
+ parent.children.splice(index, 1);
85329
+ return [unistUtilVisit.SKIP, index];
85330
+ }
85331
+ if (TABLE_SECTIONS.has(node.tagName) && parent && index !== void 0) {
85332
+ const followedBySection = parent.children.slice(index + 1).some((sibling) => sibling.type === "element" && TABLE_SECTIONS.has(sibling.tagName));
85333
+ const rows = node.children.filter(
85334
+ (child) => child.type === "element" && child.tagName === "tr"
85335
+ );
85336
+ const lastRow = rows[rows.length - 1];
85337
+ if (followedBySection && lastRow) {
85338
+ lastRow.children.push({ type: "element", tagName: "br", properties: {}, children: [] });
85339
+ }
85340
+ }
85341
+ return void 0;
85342
+ });
85343
+ return tree;
85344
+ }
85235
85345
  function markdownToPlainText(markdown, options = {}) {
85236
85346
  const { mode = "article", maxChars } = options;
85237
- let out = markdown.replace(/```[\s\S]*?```/g, "").replace(/!\[[^\]]*\]\([^)]+\)/g, "");
85238
- out = stripInlineMarkdown(out).replace(/^#+\s*/gm, "").replace(/^\s*[-*+]\s+/gm, "");
85347
+ let out = hastUtilToText.toText(proseTree(markdown));
85239
85348
  if (mode === "preview") {
85240
85349
  out = out.replace(/\s+/g, " ").trim();
85241
85350
  } else {
85242
- out = out.replace(/\n{3,}/g, "\n\n").trim();
85351
+ out = out.replace(/[^\S\n]*\n[^\S\n]*/g, "\n").replace(/\n{3,}/g, "\n\n").trim();
85243
85352
  }
85244
85353
  if (maxChars != null && out.length > maxChars) {
85245
85354
  out = out.slice(0, maxChars);
@@ -85913,6 +86022,7 @@ function identityTint(accent) {
85913
86022
  exports.ACTIVE_ANCHOR_ATTRIBUTE = ACTIVE_ANCHOR_ATTRIBUTE;
85914
86023
  exports.AI_PROVIDERS = AI_PROVIDERS;
85915
86024
  exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME;
86025
+ exports.AUTHORED_LINK_REL_TOKENS = AUTHORED_LINK_REL_TOKENS;
85916
86026
  exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX;
85917
86027
  exports.BADGE_PALETTE = BADGE_PALETTE;
85918
86028
  exports.BITE_ID_RE = BITE_ID_RE;
@@ -86006,6 +86116,7 @@ exports.aiProvider = aiProvider;
86006
86116
  exports.analyzeImageColor = analyzeImageColor;
86007
86117
  exports.announcementDismissCookieName = announcementDismissCookieName;
86008
86118
  exports.applyProxyAuth = applyProxyAuth;
86119
+ exports.authoredRelTokens = authoredRelTokens;
86009
86120
  exports.brandMarkDataUri = brandMarkDataUri;
86010
86121
  exports.buildAutoContinuationDirective = buildAutoContinuationDirective;
86011
86122
  exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl;
@@ -86080,6 +86191,7 @@ exports.filledRescueFields = filledRescueFields;
86080
86191
  exports.findAnchorElementByNormalizedId = findAnchorElementByNormalizedId;
86081
86192
  exports.findDocNodeByPath = findDocNodeByPath;
86082
86193
  exports.findHoneypotCopySource = findHoneypotCopySource;
86194
+ exports.findMarkdownLinkAt = findMarkdownLinkAt;
86083
86195
  exports.firstParamValue = firstParamValue;
86084
86196
  exports.flattenAssistantContent = flattenAssistantContent;
86085
86197
  exports.formatAbbreviatedNumber = formatAbbreviatedNumber;
@@ -86114,6 +86226,7 @@ exports.formatEntryMonthUTC = formatEntryMonthUTC;
86114
86226
  exports.formatFileSize = formatFileSize;
86115
86227
  exports.formatLargeNumber = formatLargeNumber;
86116
86228
  exports.formatLegalDate = formatLegalDate;
86229
+ exports.formatMarkdownLink = formatMarkdownLink;
86117
86230
  exports.formatNumber = formatNumber;
86118
86231
  exports.formatPercent = formatPercent;
86119
86232
  exports.formatPhoneE164 = formatPhoneE164;
@@ -86224,6 +86337,7 @@ exports.isImageMedia = isImageMedia;
86224
86337
  exports.isLegalDocumentType = isLegalDocumentType;
86225
86338
  exports.isListedSchedulingName = isListedSchedulingName;
86226
86339
  exports.isLocalUrl = isLocalUrl;
86340
+ exports.isNofollowRel = isNofollowRel;
86227
86341
  exports.isOSPlatform = isOSPlatform;
86228
86342
  exports.isOpenFrameClassification = isOpenFrameClassification;
86229
86343
  exports.isOrderedRange = isOrderedRange;
@@ -86298,6 +86412,7 @@ exports.readDismissCookie = readDismissCookie;
86298
86412
  exports.readLeadingDecisionFrame = readLeadingDecisionFrame;
86299
86413
  exports.recordCountLabel = recordCountLabel;
86300
86414
  exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor;
86415
+ exports.renderedLinkRel = renderedLinkRel;
86301
86416
  exports.replaceLocationHash = replaceLocationHash;
86302
86417
  exports.rescueCompletionPct = rescueCompletionPct;
86303
86418
  exports.resolveContentFetchPath = resolveContentFetchPath;
@@ -78,6 +78,7 @@ export * from './doc-path-utils';
78
78
  export * from './doc-tree-nav';
79
79
  export * from './tree-builder';
80
80
  export * from './markdown-heading-id';
81
+ export * from './markdown-link';
81
82
  export * from './markdown-section-extractor';
82
83
  export * from './markdown-to-plain';
83
84
  export * from './embed-url-converters';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
@@ -236,6 +236,7 @@ export * from "./doc-path-utils.js";
236
236
  export * from "./doc-tree-nav.js";
237
237
  export * from "./tree-builder.js";
238
238
  export * from "./markdown-heading-id.js";
239
+ export * from "./markdown-link.js";
239
240
  export * from "./markdown-section-extractor.js";
240
241
  export * from "./markdown-to-plain.js";
241
242
  export * from "./embed-url-converters.js";
@@ -0,0 +1,44 @@
1
+ /**
2
+ * One link format for the markdown editors and one `rel` rule for the renderers.
3
+ *
4
+ * A FOLLOWED link is written as markdown, `[text](url)`, exactly as the editors always wrote it.
5
+ * A link with an authored `rel` (nofollow, sponsored or ugc, the values Google reads) is written as
6
+ * an HTML anchor, `<a href="url" rel="sponsored">text</a>`: markdown has no attribute syntax, and
7
+ * an HTML anchor is what stored content already uses for links that carry attributes (the
8
+ * sanitizer keeps `rel` on `a`). Reading back accepts both forms, so a link can be switched either
9
+ * way. Nothing is rewritten unless an editor changes a link.
10
+ *
11
+ * Server-safe: no React, no DOM.
12
+ */
13
+ /** The `rel` tokens an author may set on a link. Search engines read these; nothing else is kept. */
14
+ export declare const AUTHORED_LINK_REL_TOKENS: readonly ["nofollow", "ugc", "sponsored"];
15
+ export type AuthoredLinkRel = (typeof AUTHORED_LINK_REL_TOKENS)[number];
16
+ /** The authored SEO tokens in a `rel` value, in their canonical order. */
17
+ export declare function authoredRelTokens(rel: string | readonly string[] | null | undefined): AuthoredLinkRel[];
18
+ /** Whether an authored `rel` asks search engines not to follow the link. */
19
+ export declare function isNofollowRel(rel: string | readonly string[] | null | undefined): boolean;
20
+ /**
21
+ * The `rel` a renderer writes for a link: the author's SEO tokens, plus `noopener noreferrer` when
22
+ * the link opens in a new tab. `undefined` when there is nothing to write.
23
+ */
24
+ export declare function renderedLinkRel(authoredRel: string | readonly string[] | null | undefined, opensInNewTab: boolean): string | undefined;
25
+ /** A link as the editor's dialog edits it. */
26
+ export interface MarkdownLinkFields {
27
+ text: string;
28
+ url: string;
29
+ /** The authored `rel` values. Empty = a followed link. */
30
+ rel: AuthoredLinkRel[];
31
+ }
32
+ /** A link found in the editor's text, with the range it occupies. */
33
+ export interface MarkdownLinkMatch extends MarkdownLinkFields {
34
+ start: number;
35
+ end: number;
36
+ }
37
+ /**
38
+ * The link the selection `[selectionStart, selectionEnd]` is in or on, if any: a markdown link or an
39
+ * HTML anchor that contains the whole selection (a caret counts when it touches the link).
40
+ */
41
+ export declare function findMarkdownLinkAt(text: string, selectionStart: number, selectionEnd?: number): MarkdownLinkMatch | null;
42
+ /** The text that writes a link: markdown when followed, an HTML anchor when it carries a `rel`. */
43
+ export declare function formatMarkdownLink({ text, url, rel }: MarkdownLinkFields): string;
44
+ //# sourceMappingURL=markdown-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-link.d.ts","sourceRoot":"","sources":["../../src/utils/markdown-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,qGAAqG;AACrG,eAAO,MAAM,wBAAwB,2CAA4C,CAAC;AAElF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAKxE,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,EAAE,CAMvG;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEzF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC1D,aAAa,EAAE,OAAO,GACrB,MAAM,GAAG,SAAS,CAIpB;AAED,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,GAAG,EAAE,eAAe,EAAE,CAAC;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AA4CD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,MAAuB,GACpC,iBAAiB,GAAG,IAAI,CAyB1B;AAED,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,kBAAkB,GAAG,MAAM,CAOjF"}