@mintlify/msft-sdk 1.1.0 → 1.1.2

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 (91) hide show
  1. package/dist/components/content-components/callouts.js +35 -20
  2. package/dist/components/content-components/callouts.js.map +1 -1
  3. package/dist/components/content-components/code-block.js +87 -60
  4. package/dist/components/content-components/code-block.js.map +1 -1
  5. package/dist/components/content-components/default-components.js +52 -33
  6. package/dist/components/content-components/default-components.js.map +1 -1
  7. package/dist/components/content-components/details/details.js +28 -25
  8. package/dist/components/content-components/details/details.js.map +1 -1
  9. package/dist/components/content-components/heading.js +6 -1
  10. package/dist/components/content-components/heading.js.map +1 -1
  11. package/dist/components/content-components/home.js +256 -163
  12. package/dist/components/content-components/home.js.map +1 -1
  13. package/dist/components/content-components/link.js +7 -7
  14. package/dist/components/content-components/link.js.map +1 -1
  15. package/dist/components/content-components/param-name.js +4 -5
  16. package/dist/components/content-components/param-name.js.map +1 -1
  17. package/dist/components/content-components/table/index.js +101 -67
  18. package/dist/components/content-components/table/index.js.map +1 -1
  19. package/dist/components/content-components/table/table-modal.js +31 -32
  20. package/dist/components/content-components/table/table-modal.js.map +1 -1
  21. package/dist/components/content-components/tabs/tabs.js +51 -46
  22. package/dist/components/content-components/tabs/tabs.js.map +1 -1
  23. package/dist/components/content-components/zone-pivots/zone-pivot-selector.js +39 -36
  24. package/dist/components/content-components/zone-pivots/zone-pivot-selector.js.map +1 -1
  25. package/dist/components/mdx-renderer.js +16 -8
  26. package/dist/components/mdx-renderer.js.map +1 -1
  27. package/dist/components/nav-tree/dropdown-menu.js +40 -33
  28. package/dist/components/nav-tree/dropdown-menu.js.map +1 -1
  29. package/dist/components/nav-tree/index.js +122 -93
  30. package/dist/components/nav-tree/index.js.map +1 -1
  31. package/dist/components/nav-tree/mobile-nav.js +60 -41
  32. package/dist/components/nav-tree/mobile-nav.js.map +1 -1
  33. package/dist/components/page-context-menu.js +107 -90
  34. package/dist/components/page-context-menu.js.map +1 -1
  35. package/dist/components/page.js +108 -86
  36. package/dist/components/page.js.map +1 -1
  37. package/dist/components/plain-text-page.js +3 -4
  38. package/dist/components/plain-text-page.js.map +1 -1
  39. package/dist/components/toc/index.js +45 -42
  40. package/dist/components/toc/index.js.map +1 -1
  41. package/dist/context/components-context.js +17 -0
  42. package/dist/context/components-context.js.map +1 -0
  43. package/dist/index.d.ts +34 -5
  44. package/dist/index.js +109 -103
  45. package/dist/index.js.map +1 -1
  46. package/dist/node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.js +2732 -0
  47. package/dist/node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  48. package/dist/styles.css +1 -1
  49. package/dist/utils/cn.js +9 -0
  50. package/dist/utils/cn.js.map +1 -0
  51. package/package.json +5 -1
  52. package/dist/components/content-components/callouts.module.css.js +0 -26
  53. package/dist/components/content-components/callouts.module.css.js.map +0 -1
  54. package/dist/components/content-components/code-block.module.css.js +0 -32
  55. package/dist/components/content-components/code-block.module.css.js.map +0 -1
  56. package/dist/components/content-components/default-components.module.css.js +0 -12
  57. package/dist/components/content-components/default-components.module.css.js.map +0 -1
  58. package/dist/components/content-components/details/details.module.css.js +0 -20
  59. package/dist/components/content-components/details/details.module.css.js.map +0 -1
  60. package/dist/components/content-components/home.module.css.js +0 -74
  61. package/dist/components/content-components/home.module.css.js.map +0 -1
  62. package/dist/components/content-components/link.module.css.js +0 -10
  63. package/dist/components/content-components/link.module.css.js.map +0 -1
  64. package/dist/components/content-components/param-name.module.css.js +0 -8
  65. package/dist/components/content-components/param-name.module.css.js.map +0 -1
  66. package/dist/components/content-components/table/table-modal.module.css.js +0 -18
  67. package/dist/components/content-components/table/table-modal.module.css.js.map +0 -1
  68. package/dist/components/content-components/table/table.module.css.js +0 -30
  69. package/dist/components/content-components/table/table.module.css.js.map +0 -1
  70. package/dist/components/content-components/tabs/tabs.module.css.js +0 -24
  71. package/dist/components/content-components/tabs/tabs.module.css.js.map +0 -1
  72. package/dist/components/content-components/zone-pivots/zone-pivot-selector.module.css.js +0 -14
  73. package/dist/components/content-components/zone-pivots/zone-pivot-selector.module.css.js.map +0 -1
  74. package/dist/components/mdx-renderer.module.css.js +0 -8
  75. package/dist/components/mdx-renderer.module.css.js.map +0 -1
  76. package/dist/components/nav-tree/dropdown-menu.module.css.js +0 -52
  77. package/dist/components/nav-tree/dropdown-menu.module.css.js.map +0 -1
  78. package/dist/components/nav-tree/mobile-nav.module.css.js +0 -22
  79. package/dist/components/nav-tree/mobile-nav.module.css.js.map +0 -1
  80. package/dist/components/nav-tree/nav-tree.module.css.js +0 -50
  81. package/dist/components/nav-tree/nav-tree.module.css.js.map +0 -1
  82. package/dist/components/page-context-menu.module.css.js +0 -42
  83. package/dist/components/page-context-menu.module.css.js.map +0 -1
  84. package/dist/components/page.module.css.js +0 -52
  85. package/dist/components/page.module.css.js.map +0 -1
  86. package/dist/components/plain-text-page.module.css.js +0 -10
  87. package/dist/components/plain-text-page.module.css.js.map +0 -1
  88. package/dist/components/prose.module.css.js +0 -8
  89. package/dist/components/prose.module.css.js.map +0 -1
  90. package/dist/components/toc/toc.module.css.js +0 -18
  91. package/dist/components/toc/toc.module.css.js.map +0 -1
@@ -1,74 +1,77 @@
1
- import { jsx as c } from "react/jsx-runtime";
2
- import { useRef as p } from "react";
3
- import { useZonePivotContext as w } from "./zone-pivot-context.js";
4
- import s from "./zone-pivot-selector.module.css.js";
5
- function I({
6
- group: t,
7
- className: m
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import { useRef as w } from "react";
3
+ import { useZonePivotContext as u } from "./zone-pivot-context.js";
4
+ import { cn as p } from "../../../utils/cn.js";
5
+ function P({
6
+ group: e,
7
+ className: h
8
8
  }) {
9
- var b;
10
- const { activePivots: h, setActivePivot: r } = w(), l = p(null), f = (b = t.pivots.find((e) => h.has(e.id))) == null ? void 0 : b.id, x = t.pivots.findIndex((e) => e.id === f), u = (e) => {
11
- var v;
12
- const { key: i } = e, n = x;
9
+ var l;
10
+ const { activePivots: b, setActivePivot: s } = u(), m = w(null), c = (l = e.pivots.find((t) => b.has(t.id))) == null ? void 0 : l.id, v = e.pivots.findIndex((t) => t.id === c), x = (t) => {
11
+ var f;
12
+ const { key: i } = t, n = v;
13
13
  let o = n;
14
14
  switch (i) {
15
15
  case "ArrowLeft":
16
16
  case "ArrowUp":
17
- e.preventDefault(), o = n > 0 ? n - 1 : t.pivots.length - 1;
17
+ t.preventDefault(), o = n > 0 ? n - 1 : e.pivots.length - 1;
18
18
  break;
19
19
  case "ArrowRight":
20
20
  case "ArrowDown":
21
- e.preventDefault(), o = n < t.pivots.length - 1 ? n + 1 : 0;
21
+ t.preventDefault(), o = n < e.pivots.length - 1 ? n + 1 : 0;
22
22
  break;
23
23
  case "Home":
24
- e.preventDefault(), o = 0;
24
+ t.preventDefault(), o = 0;
25
25
  break;
26
26
  case "End":
27
- e.preventDefault(), o = t.pivots.length - 1;
27
+ t.preventDefault(), o = e.pivots.length - 1;
28
28
  break;
29
29
  default:
30
30
  return;
31
31
  }
32
- const d = t.pivots[o];
33
- if (d) {
34
- r(t.id, d.id);
35
- const a = (v = l.current) == null ? void 0 : v.querySelector(
36
- `[data-pivot-id="${d.id}"]`
32
+ const r = e.pivots[o];
33
+ if (r) {
34
+ s(e.id, r.id);
35
+ const a = (f = m.current) == null ? void 0 : f.querySelector(
36
+ `[data-pivot-id="${r.id}"]`
37
37
  );
38
38
  a == null || a.focus();
39
39
  }
40
40
  };
41
- return /* @__PURE__ */ c("div", { className: m, "data-zone-pivot-group": t.id, children: /* @__PURE__ */ c(
41
+ return /* @__PURE__ */ d("div", { className: h, "data-zone-pivot-group": e.id, children: /* @__PURE__ */ d(
42
42
  "div",
43
43
  {
44
- ref: l,
44
+ ref: m,
45
45
  role: "tablist",
46
- "aria-label": t.prompt,
47
- className: s.container,
48
- children: t.pivots.map((e) => {
49
- const i = e.id === f;
50
- return /* @__PURE__ */ c(
46
+ "aria-label": e.prompt,
47
+ className: "mint:inline-flex mint:items-center mint:gap-1 mint:p-1 mint:bg-gray-100 mint:rounded-lg mint:dark:bg-white/5",
48
+ children: e.pivots.map((t) => {
49
+ const i = t.id === c;
50
+ return /* @__PURE__ */ d(
51
51
  "button",
52
52
  {
53
- id: `tab-${t.id}-${e.id}`,
53
+ id: `tab-${e.id}-${t.id}`,
54
54
  role: "tab",
55
55
  type: "button",
56
- "data-pivot-id": e.id,
56
+ "data-pivot-id": t.id,
57
57
  "aria-selected": i,
58
- "aria-controls": `panel-${t.id}-${e.id}`,
58
+ "aria-controls": `panel-${e.id}-${t.id}`,
59
59
  tabIndex: i ? 0 : -1,
60
- onClick: () => r(t.id, e.id),
61
- onKeyDown: u,
62
- className: `${s.button} ${i ? s.buttonSelected : s.buttonUnselected}`,
63
- children: e.title
60
+ onClick: () => s(e.id, t.id),
61
+ onKeyDown: x,
62
+ className: p(
63
+ "mint:relative mint:px-3 mint:py-1.5 mint:text-sm mint:font-medium mint:rounded-md mint:bg-transparent mint:border-none mint:cursor-pointer mint:transition-all mint:duration-150 mint:focus:outline-none mint:focus-visible:shadow-[0_0_0_2px_#3b82f6] mint:focus-visible:outline-offset-2",
64
+ i ? "mint:bg-white mint:text-[#141414] mint:shadow-sm mint:dark:bg-white/10 mint:dark:text-white" : "mint:text-gray-600 mint:hover:text-[#141414] mint:hover:bg-white/50 mint:dark:text-gray-400 mint:dark:hover:text-white mint:dark:hover:bg-white/10"
65
+ ),
66
+ children: t.title
64
67
  },
65
- e.id
68
+ t.id
66
69
  );
67
70
  })
68
71
  }
69
72
  ) });
70
73
  }
71
74
  export {
72
- I as ZonePivotSelector
75
+ P as ZonePivotSelector
73
76
  };
74
77
  //# sourceMappingURL=zone-pivot-selector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zone-pivot-selector.js","sources":["../../../../src/components/content-components/zone-pivots/zone-pivot-selector.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { useZonePivotContext } from \"./zone-pivot-context\";\nimport type { ZonePivotGroup } from \"../../../types/page\";\nimport styles from \"./zone-pivot-selector.module.css\";\n\nexport interface ZonePivotSelectorProps {\n group: ZonePivotGroup;\n className?: string;\n}\n\nexport function ZonePivotSelector({\n group,\n className,\n}: ZonePivotSelectorProps) {\n const { activePivots, setActivePivot } = useZonePivotContext();\n const tabListRef = useRef<HTMLDivElement>(null);\n\n const selectedPivotId = group.pivots.find((p) => activePivots.has(p.id))?.id;\n const selectedIndex = group.pivots.findIndex((p) => p.id === selectedPivotId);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const { key } = event;\n const currentIndex = selectedIndex;\n let nextIndex = currentIndex;\n\n switch (key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n nextIndex =\n currentIndex > 0 ? currentIndex - 1 : group.pivots.length - 1;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n nextIndex =\n currentIndex < group.pivots.length - 1 ? currentIndex + 1 : 0;\n break;\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = group.pivots.length - 1;\n break;\n default:\n return;\n }\n\n const nextPivot = group.pivots[nextIndex];\n if (nextPivot) {\n setActivePivot(group.id, nextPivot.id);\n const button = tabListRef.current?.querySelector(\n `[data-pivot-id=\"${nextPivot.id}\"]`\n ) as HTMLButtonElement;\n button?.focus();\n }\n };\n\n return (\n <div className={className} data-zone-pivot-group={group.id}>\n <div\n ref={tabListRef}\n role=\"tablist\"\n aria-label={group.prompt}\n className={styles.container}\n >\n {group.pivots.map((pivot) => {\n const isSelected = pivot.id === selectedPivotId;\n return (\n <button\n key={pivot.id}\n id={`tab-${group.id}-${pivot.id}`}\n role=\"tab\"\n type=\"button\"\n data-pivot-id={pivot.id}\n aria-selected={isSelected}\n aria-controls={`panel-${group.id}-${pivot.id}`}\n tabIndex={isSelected ? 0 : -1}\n onClick={() => setActivePivot(group.id, pivot.id)}\n onKeyDown={handleKeyDown}\n className={`${styles.button} ${isSelected ? styles.buttonSelected : styles.buttonUnselected}`}\n >\n {pivot.title}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n"],"names":["ZonePivotSelector","group","className","activePivots","setActivePivot","useZonePivotContext","tabListRef","useRef","selectedPivotId","_a","p","selectedIndex","handleKeyDown","event","key","currentIndex","nextIndex","nextPivot","button","jsx","styles","pivot","isSelected"],"mappings":";;;;AAUO,SAASA,EAAkB;AAAA,EAChC,OAAAC;AAAA,EACA,WAAAC;AACF,GAA2B;;AACzB,QAAM,EAAE,cAAAC,GAAc,gBAAAC,EAAA,IAAmBC,EAAA,GACnCC,IAAaC,EAAuB,IAAI,GAExCC,KAAkBC,IAAAR,EAAM,OAAO,KAAK,CAACS,MAAMP,EAAa,IAAIO,EAAE,EAAE,CAAC,MAA/C,gBAAAD,EAAkD,IACpEE,IAAgBV,EAAM,OAAO,UAAU,CAACS,MAAMA,EAAE,OAAOF,CAAe,GAEtEI,IAAgB,CAACC,MAAkD;;AACvE,UAAM,EAAE,KAAAC,MAAQD,GACVE,IAAeJ;AACrB,QAAIK,IAAYD;AAEhB,YAAQD,GAAA;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AACH,QAAAD,EAAM,eAAA,GACNG,IACED,IAAe,IAAIA,IAAe,IAAId,EAAM,OAAO,SAAS;AAC9D;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,QAAAY,EAAM,eAAA,GACNG,IACED,IAAed,EAAM,OAAO,SAAS,IAAIc,IAAe,IAAI;AAC9D;AAAA,MACF,KAAK;AACH,QAAAF,EAAM,eAAA,GACNG,IAAY;AACZ;AAAA,MACF,KAAK;AACH,QAAAH,EAAM,eAAA,GACNG,IAAYf,EAAM,OAAO,SAAS;AAClC;AAAA,MACF;AACE;AAAA,IAAA;AAGJ,UAAMgB,IAAYhB,EAAM,OAAOe,CAAS;AACxC,QAAIC,GAAW;AACb,MAAAb,EAAeH,EAAM,IAAIgB,EAAU,EAAE;AACrC,YAAMC,KAAST,IAAAH,EAAW,YAAX,gBAAAG,EAAoB;AAAA,QACjC,mBAAmBQ,EAAU,EAAE;AAAA;AAEjC,MAAAC,KAAA,QAAAA,EAAQ;AAAA,IACV;AAAA,EACF;AAEA,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAAjB,GAAsB,yBAAuBD,EAAM,IACtD,UAAA,gBAAAkB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKb;AAAA,MACL,MAAK;AAAA,MACL,cAAYL,EAAM;AAAA,MAClB,WAAWmB,EAAO;AAAA,MAEjB,UAAAnB,EAAM,OAAO,IAAI,CAACoB,MAAU;AAC3B,cAAMC,IAAaD,EAAM,OAAOb;AAChC,eACE,gBAAAW;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,IAAI,OAAOlB,EAAM,EAAE,IAAIoB,EAAM,EAAE;AAAA,YAC/B,MAAK;AAAA,YACL,MAAK;AAAA,YACL,iBAAeA,EAAM;AAAA,YACrB,iBAAeC;AAAA,YACf,iBAAe,SAASrB,EAAM,EAAE,IAAIoB,EAAM,EAAE;AAAA,YAC5C,UAAUC,IAAa,IAAI;AAAA,YAC3B,SAAS,MAAMlB,EAAeH,EAAM,IAAIoB,EAAM,EAAE;AAAA,YAChD,WAAWT;AAAA,YACX,WAAW,GAAGQ,EAAO,MAAM,IAAIE,IAAaF,EAAO,iBAAiBA,EAAO,gBAAgB;AAAA,YAE1F,UAAAC,EAAM;AAAA,UAAA;AAAA,UAZFA,EAAM;AAAA,QAAA;AAAA,MAejB,CAAC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}
1
+ {"version":3,"file":"zone-pivot-selector.js","sources":["../../../../src/components/content-components/zone-pivots/zone-pivot-selector.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { useZonePivotContext } from \"./zone-pivot-context\";\nimport type { ZonePivotGroup } from \"../../../types/page\";\nimport { cn } from \"../../../utils/cn\";\n\nexport interface ZonePivotSelectorProps {\n group: ZonePivotGroup;\n className?: string;\n}\n\nexport function ZonePivotSelector({\n group,\n className,\n}: ZonePivotSelectorProps) {\n const { activePivots, setActivePivot } = useZonePivotContext();\n const tabListRef = useRef<HTMLDivElement>(null);\n\n const selectedPivotId = group.pivots.find((p) => activePivots.has(p.id))?.id;\n const selectedIndex = group.pivots.findIndex((p) => p.id === selectedPivotId);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const { key } = event;\n const currentIndex = selectedIndex;\n let nextIndex = currentIndex;\n\n switch (key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n nextIndex =\n currentIndex > 0 ? currentIndex - 1 : group.pivots.length - 1;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n nextIndex =\n currentIndex < group.pivots.length - 1 ? currentIndex + 1 : 0;\n break;\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = group.pivots.length - 1;\n break;\n default:\n return;\n }\n\n const nextPivot = group.pivots[nextIndex];\n if (nextPivot) {\n setActivePivot(group.id, nextPivot.id);\n const button = tabListRef.current?.querySelector(\n `[data-pivot-id=\"${nextPivot.id}\"]`\n ) as HTMLButtonElement;\n button?.focus();\n }\n };\n\n return (\n <div className={className} data-zone-pivot-group={group.id}>\n <div\n ref={tabListRef}\n role=\"tablist\"\n aria-label={group.prompt}\n className=\"mint:inline-flex mint:items-center mint:gap-1 mint:p-1 mint:bg-gray-100 mint:rounded-lg mint:dark:bg-white/5\"\n >\n {group.pivots.map((pivot) => {\n const isSelected = pivot.id === selectedPivotId;\n return (\n <button\n key={pivot.id}\n id={`tab-${group.id}-${pivot.id}`}\n role=\"tab\"\n type=\"button\"\n data-pivot-id={pivot.id}\n aria-selected={isSelected}\n aria-controls={`panel-${group.id}-${pivot.id}`}\n tabIndex={isSelected ? 0 : -1}\n onClick={() => setActivePivot(group.id, pivot.id)}\n onKeyDown={handleKeyDown}\n className={cn(\n \"mint:relative mint:px-3 mint:py-1.5 mint:text-sm mint:font-medium mint:rounded-md mint:bg-transparent mint:border-none mint:cursor-pointer mint:transition-all mint:duration-150 mint:focus:outline-none mint:focus-visible:shadow-[0_0_0_2px_#3b82f6] mint:focus-visible:outline-offset-2\",\n isSelected\n ? \"mint:bg-white mint:text-[#141414] mint:shadow-sm mint:dark:bg-white/10 mint:dark:text-white\"\n : \"mint:text-gray-600 mint:hover:text-[#141414] mint:hover:bg-white/50 mint:dark:text-gray-400 mint:dark:hover:text-white mint:dark:hover:bg-white/10\"\n )}\n >\n {pivot.title}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n"],"names":["ZonePivotSelector","group","className","activePivots","setActivePivot","useZonePivotContext","tabListRef","useRef","selectedPivotId","_a","p","selectedIndex","handleKeyDown","event","key","currentIndex","nextIndex","nextPivot","button","jsx","pivot","isSelected","cn"],"mappings":";;;;AAUO,SAASA,EAAkB;AAAA,EAChC,OAAAC;AAAA,EACA,WAAAC;AACF,GAA2B;;AACzB,QAAM,EAAE,cAAAC,GAAc,gBAAAC,EAAA,IAAmBC,EAAA,GACnCC,IAAaC,EAAuB,IAAI,GAExCC,KAAkBC,IAAAR,EAAM,OAAO,KAAK,CAACS,MAAMP,EAAa,IAAIO,EAAE,EAAE,CAAC,MAA/C,gBAAAD,EAAkD,IACpEE,IAAgBV,EAAM,OAAO,UAAU,CAACS,MAAMA,EAAE,OAAOF,CAAe,GAEtEI,IAAgB,CAACC,MAAkD;;AACvE,UAAM,EAAE,KAAAC,MAAQD,GACVE,IAAeJ;AACrB,QAAIK,IAAYD;AAEhB,YAAQD,GAAA;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AACH,QAAAD,EAAM,eAAA,GACNG,IACED,IAAe,IAAIA,IAAe,IAAId,EAAM,OAAO,SAAS;AAC9D;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,QAAAY,EAAM,eAAA,GACNG,IACED,IAAed,EAAM,OAAO,SAAS,IAAIc,IAAe,IAAI;AAC9D;AAAA,MACF,KAAK;AACH,QAAAF,EAAM,eAAA,GACNG,IAAY;AACZ;AAAA,MACF,KAAK;AACH,QAAAH,EAAM,eAAA,GACNG,IAAYf,EAAM,OAAO,SAAS;AAClC;AAAA,MACF;AACE;AAAA,IAAA;AAGJ,UAAMgB,IAAYhB,EAAM,OAAOe,CAAS;AACxC,QAAIC,GAAW;AACb,MAAAb,EAAeH,EAAM,IAAIgB,EAAU,EAAE;AACrC,YAAMC,KAAST,IAAAH,EAAW,YAAX,gBAAAG,EAAoB;AAAA,QACjC,mBAAmBQ,EAAU,EAAE;AAAA;AAEjC,MAAAC,KAAA,QAAAA,EAAQ;AAAA,IACV;AAAA,EACF;AAEA,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAAjB,GAAsB,yBAAuBD,EAAM,IACtD,UAAA,gBAAAkB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKb;AAAA,MACL,MAAK;AAAA,MACL,cAAYL,EAAM;AAAA,MAClB,WAAU;AAAA,MAET,UAAAA,EAAM,OAAO,IAAI,CAACmB,MAAU;AAC3B,cAAMC,IAAaD,EAAM,OAAOZ;AAChC,eACE,gBAAAW;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,IAAI,OAAOlB,EAAM,EAAE,IAAImB,EAAM,EAAE;AAAA,YAC/B,MAAK;AAAA,YACL,MAAK;AAAA,YACL,iBAAeA,EAAM;AAAA,YACrB,iBAAeC;AAAA,YACf,iBAAe,SAASpB,EAAM,EAAE,IAAImB,EAAM,EAAE;AAAA,YAC5C,UAAUC,IAAa,IAAI;AAAA,YAC3B,SAAS,MAAMjB,EAAeH,EAAM,IAAImB,EAAM,EAAE;AAAA,YAChD,WAAWR;AAAA,YACX,WAAWU;AAAA,cACT;AAAA,cACAD,IACI,gGACA;AAAA,YAAA;AAAA,YAGL,UAAAD,EAAM;AAAA,UAAA;AAAA,UAjBFA,EAAM;AAAA,QAAA;AAAA,MAoBjB,CAAC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}
@@ -1,13 +1,21 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { MDXProvider as m } from "@mdx-js/react";
3
- import n from "./mdx-renderer.module.css.js";
4
- import s from "./prose.module.css.js";
5
- import { defaultComponents as p } from "./content-components/default-components.js";
6
- function a({ children: r, components: e = {} }) {
7
- const t = { ...p, ...e };
8
- return /* @__PURE__ */ o("div", { className: `${n.container} ${s.prose}`, children: /* @__PURE__ */ o(m, { components: t, children: r }) });
2
+ import { MDXProvider as r } from "@mdx-js/react";
3
+ import { useComponents as i } from "../context/components-context.js";
4
+ import { cn as p } from "../utils/cn.js";
5
+ import { createDefaultComponents as s } from "./content-components/default-components.js";
6
+ function l({ children: n, components: e = {} }) {
7
+ const { LinkComponent: t } = i(), m = { ...s({ LinkComponent: t }), ...e };
8
+ return /* @__PURE__ */ o(
9
+ "div",
10
+ {
11
+ className: p(
12
+ "mint:min-w-0 mint:prose mint:prose-gray mint:dark:prose-invert mint:max-w-none"
13
+ ),
14
+ children: /* @__PURE__ */ o(r, { components: m, children: n })
15
+ }
16
+ );
9
17
  }
10
18
  export {
11
- a as MDXRenderer
19
+ l as MDXRenderer
12
20
  };
13
21
  //# sourceMappingURL=mdx-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdx-renderer.js","sources":["../../src/components/mdx-renderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { MDXProvider } from \"@mdx-js/react\";\nimport { defaultComponents } from \"./content-components\";\nimport type { MDXComponents } from \"../types\";\nimport styles from \"./mdx-renderer.module.css\";\nimport proseStyles from \"./prose.module.css\";\n\ninterface MDXRendererProps {\n children: React.ReactNode;\n components?: MDXComponents;\n}\n\nexport function MDXRenderer({ children, components = {} }: MDXRendererProps) {\n const mergedComponents = { ...defaultComponents, ...components };\n\n return (\n <div className={`${styles.container} ${proseStyles.prose}`}>\n <MDXProvider components={mergedComponents}>{children}</MDXProvider>\n </div>\n );\n}\n"],"names":["MDXRenderer","children","components","mergedComponents","defaultComponents","jsx","styles","proseStyles","MDXProvider"],"mappings":";;;;;AAYO,SAASA,EAAY,EAAE,UAAAC,GAAU,YAAAC,IAAa,CAAA,KAAwB;AAC3E,QAAMC,IAAmB,EAAE,GAAGC,GAAmB,GAAGF,EAAA;AAEpD,SACE,gBAAAG,EAAC,OAAA,EAAI,WAAW,GAAGC,EAAO,SAAS,IAAIC,EAAY,KAAK,IACtD,UAAA,gBAAAF,EAACG,GAAA,EAAY,YAAYL,GAAmB,UAAAF,GAAS,GACvD;AAEJ;"}
1
+ {"version":3,"file":"mdx-renderer.js","sources":["../../src/components/mdx-renderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { MDXProvider } from \"@mdx-js/react\";\nimport { createDefaultComponents } from \"./content-components\";\nimport { useComponents } from \"../context/components-context\";\nimport type { MDXComponents } from \"../types\";\nimport { cn } from \"../utils/cn\";\n\ninterface MDXRendererProps {\n children: React.ReactNode;\n components?: MDXComponents;\n}\n\nexport function MDXRenderer({ children, components = {} }: MDXRendererProps) {\n const { LinkComponent } = useComponents();\n const defaultComponents = createDefaultComponents({ LinkComponent });\n const mergedComponents = { ...defaultComponents, ...components };\n\n return (\n <div\n className={cn(\n \"mint:min-w-0 mint:prose mint:prose-gray mint:dark:prose-invert mint:max-w-none\"\n )}\n >\n <MDXProvider components={mergedComponents}>{children}</MDXProvider>\n </div>\n );\n}\n"],"names":["MDXRenderer","children","components","LinkComponent","useComponents","mergedComponents","createDefaultComponents","jsx","cn","MDXProvider"],"mappings":";;;;;AAYO,SAASA,EAAY,EAAE,UAAAC,GAAU,YAAAC,IAAa,CAAA,KAAwB;AAC3E,QAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GAEpBC,IAAmB,EAAE,GADDC,EAAwB,EAAE,eAAAH,GAAe,GAClB,GAAGD,EAAA;AAEpD,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAD,EAACE,GAAA,EAAY,YAAYJ,GAAmB,UAAAJ,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAG3D;"}
@@ -1,37 +1,44 @@
1
- import { jsxs as s, jsx as n } from "react/jsx-runtime";
2
- import { useState as h } from "react";
3
- import { DocumentRegular as p, CheckmarkFilled as v } from "@fluentui/react-icons";
4
- import e from "./dropdown-menu.module.css.js";
5
- function x({
6
- dropdown: a,
7
- isActive: c = !1,
8
- activeHref: o,
1
+ import { jsxs as m, jsx as t } from "react/jsx-runtime";
2
+ import { useState as b } from "react";
3
+ import { DocumentRegular as h, CheckmarkFilled as x } from "@fluentui/react-icons";
4
+ import { useComponents as u } from "../../context/components-context.js";
5
+ import { cn as r } from "../../utils/cn.js";
6
+ function _({
7
+ dropdown: i,
8
+ isActive: a = !1,
9
+ activeHref: s,
9
10
  className: l = ""
10
11
  }) {
11
- const [i, t] = h(!1), d = a.icon || p;
12
- return /* @__PURE__ */ s("div", { className: `${e.container} ${l}`, children: [
13
- /* @__PURE__ */ n(
12
+ const [e, o] = b(!1), { LinkComponent: d } = u(), c = i.icon || h;
13
+ return /* @__PURE__ */ m("div", { className: r("mint:mb-2 mint:lg:mb-2", l), children: [
14
+ /* @__PURE__ */ t(
14
15
  "button",
15
16
  {
16
- onClick: () => t(!i),
17
- "aria-expanded": i,
18
- "aria-label": `${i ? "Collapse" : "Expand"} ${a.title} dropdown`,
19
- className: `${e.button} ${c ? e.buttonActive : ""}`,
20
- children: /* @__PURE__ */ s("div", { className: e.buttonContent, children: [
21
- /* @__PURE__ */ n("div", { className: e.iconContainer, children: /* @__PURE__ */ n("div", { className: e.iconWrapper, children: /* @__PURE__ */ n(d, { className: e.icon }) }) }),
22
- /* @__PURE__ */ s("div", { className: e.textContainer, children: [
23
- /* @__PURE__ */ n("div", { className: e.title, children: a.title }),
24
- /* @__PURE__ */ n("div", { className: e.description, children: a.description })
17
+ onClick: () => o(!e),
18
+ "aria-expanded": e,
19
+ "aria-label": `${e ? "Collapse" : "Expand"} ${i.title} dropdown`,
20
+ className: r(
21
+ "mint:w-full mint:py-2 mint:px-3 mint:rounded-xl mint:bg-white mint:dark:bg-[#1f1f1f] mint:border mint:border-[rgba(229,231,235,0.7)] mint:dark:border-[rgba(255,255,255,0.07)] mint:cursor-pointer mint:hover:border-[#d1d5db] mint:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:border-[rgba(255,255,255,0.15)] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
22
+ a && "mint:shadow-[0_0_0_2px_rgba(100,63,178,0.2)] mint:border-[rgba(100,63,178,0.3)]"
23
+ ),
24
+ children: /* @__PURE__ */ m("div", { className: "mint:flex mint:items-center mint:gap-2", children: [
25
+ /* @__PURE__ */ t("div", { className: "mint:flex-shrink-0", children: /* @__PURE__ */ t("div", { className: "mint:w-8 mint:h-8 mint:rounded-lg mint:flex mint:items-center mint:justify-center mint:bg-[#e1cefc] mint:dark:bg-[#38255e] mint:border mint:border-[#643fb2] mint:dark:border-[#c9aaf9]", children: /* @__PURE__ */ t(c, { className: "mint:w-4 mint:h-4 mint:text-[#643fb2] mint:dark:text-[#c9aaf9]" }) }) }),
26
+ /* @__PURE__ */ m("div", { className: "mint:flex-1 mint:text-left mint:min-w-0", children: [
27
+ /* @__PURE__ */ t("div", { className: "mint:text-sm mint:font-medium mint:text-[#111827] mint:dark:text-white", children: i.title }),
28
+ /* @__PURE__ */ t("div", { className: "mint:text-xs mint:text-[#4b5563] mint:dark:text-[#9ca3af] mint:line-clamp-2", children: i.description })
25
29
  ] }),
26
- /* @__PURE__ */ n("div", { className: e.chevronContainer, children: /* @__PURE__ */ n(
30
+ /* @__PURE__ */ t("div", { className: "mint:flex-shrink-0", children: /* @__PURE__ */ t(
27
31
  "svg",
28
32
  {
29
- className: `${e.chevron} ${i ? e.chevronExpanded : e.chevronCollapsed}`,
33
+ className: r(
34
+ "mint:w-4 mint:h-4 mint:text-[#6b7280] mint:dark:text-[#9ca3af] mint:transition-transform mint:duration-200",
35
+ e ? "mint:rotate-180" : "mint:rotate-0"
36
+ ),
30
37
  fill: "none",
31
38
  stroke: "currentColor",
32
39
  viewBox: "0 0 24 24",
33
40
  "aria-hidden": "true",
34
- children: /* @__PURE__ */ n(
41
+ children: /* @__PURE__ */ t(
35
42
  "path",
36
43
  {
37
44
  strokeLinecap: "round",
@@ -45,24 +52,24 @@ function x({
45
52
  ] })
46
53
  }
47
54
  ),
48
- i && a.items && a.items.length > 0 && /* @__PURE__ */ n("div", { className: e.dropdownContainer, children: /* @__PURE__ */ n("div", { className: e.dropdown, children: /* @__PURE__ */ n("div", { className: e.dropdownList, children: a.items.map((r, m) => /* @__PURE__ */ s(
49
- "a",
55
+ e && i.items && i.items.length > 0 && /* @__PURE__ */ t("div", { className: "mint:relative mint:mt-2", children: /* @__PURE__ */ t("div", { className: "mint:absolute mint:top-0 mint:left-0 mint:right-0 mint:z-10 mint:w-full mint:p-1 mint:rounded-lg mint:bg-white mint:dark:bg-[#1f1f1f] mint:border mint:border-[rgba(229,231,235,0.7)] mint:dark:border-[rgba(255,255,255,0.07)] mint:shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)]", children: /* @__PURE__ */ t("div", { className: "mint:flex mint:flex-col mint:gap-1", children: i.items.map((n, f) => /* @__PURE__ */ m(
56
+ d || "a",
50
57
  {
51
- href: r.href,
52
- className: e.dropdownItem,
58
+ href: n.href,
59
+ className: "mint:flex mint:items-center mint:justify-between mint:py-1.5 mint:px-2 mint:text-sm mint:rounded-xl mint:transition-all mint:duration-150 mint:no-underline mint:text-[#111827] mint:dark:text-white mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#111827] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
53
60
  children: [
54
- /* @__PURE__ */ s("div", { className: e.dropdownItemContent, children: [
55
- r.icon && /* @__PURE__ */ n("div", { className: e.dropdownItemIconWrapper, children: /* @__PURE__ */ n(r.icon, { className: e.dropdownItemIcon }) }),
56
- /* @__PURE__ */ n("span", { className: e.dropdownItemTitle, children: r.title })
61
+ /* @__PURE__ */ m("div", { className: "mint:flex mint:items-center mint:gap-2", children: [
62
+ n.icon && /* @__PURE__ */ t("div", { className: "mint:w-7 mint:h-7 mint:rounded-lg mint:flex mint:items-center mint:justify-center mint:bg-[#e1cefc] mint:dark:bg-[#38255e] mint:border mint:border-[#643fb2] mint:dark:border-[#c9aaf9]", children: /* @__PURE__ */ t(n.icon, { className: "mint:w-4 mint:h-4 mint:text-[#643fb2] mint:dark:text-[#c9aaf9]" }) }),
63
+ /* @__PURE__ */ t("span", { className: "mint:font-medium", children: n.title })
57
64
  ] }),
58
- r.href && o === r.href && /* @__PURE__ */ n(v, { className: e.checkmark })
65
+ n.href && s === n.href && /* @__PURE__ */ t(x, { className: "mint:w-3 mint:h-3 mint:text-[#643fb2] mint:dark:text-[#c9aaf9]" })
59
66
  ]
60
67
  },
61
- `${r.href}-${m}`
68
+ `${n.href}-${f}`
62
69
  )) }) }) })
63
70
  ] });
64
71
  }
65
72
  export {
66
- x as DropdownMenu
73
+ _ as DropdownMenu
67
74
  };
68
75
  //# sourceMappingURL=dropdown-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/nav-tree/dropdown-menu.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { CheckmarkFilled, DocumentRegular } from \"@fluentui/react-icons\";\nimport styles from \"./dropdown-menu.module.css\";\n\nexport interface DropdownConfig {\n title: string;\n description: string;\n icon?: React.ComponentType<{ className?: string }>;\n color?: {\n light?: string;\n dark?: string;\n };\n items?: DropdownItem[];\n}\n\nexport interface DropdownItem {\n title: string;\n href?: string;\n description?: string;\n icon?: React.ComponentType<{ className?: string }>;\n}\n\ninterface DropdownMenuProps {\n dropdown: DropdownConfig;\n isActive?: boolean;\n activeHref?: string;\n className?: string;\n}\n\nexport function DropdownMenu({\n dropdown,\n isActive = false,\n activeHref,\n className = \"\",\n}: DropdownMenuProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const Icon = dropdown.icon || DocumentRegular;\n\n return (\n <div className={`${styles.container} ${className}`}>\n <button\n onClick={() => setIsExpanded(!isExpanded)}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} ${\n dropdown.title\n } dropdown`}\n className={`${styles.button} ${isActive ? styles.buttonActive : \"\"}`}\n >\n <div className={styles.buttonContent}>\n <div className={styles.iconContainer}>\n <div className={styles.iconWrapper}>\n <Icon className={styles.icon} />\n </div>\n </div>\n\n <div className={styles.textContainer}>\n <div className={styles.title}>{dropdown.title}</div>\n <div className={styles.description}>{dropdown.description}</div>\n </div>\n\n <div className={styles.chevronContainer}>\n <svg\n className={`${styles.chevron} ${\n isExpanded ? styles.chevronExpanded : styles.chevronCollapsed\n }`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </div>\n </div>\n </button>\n\n {isExpanded && dropdown.items && dropdown.items.length > 0 && (\n <div className={styles.dropdownContainer}>\n <div className={styles.dropdown}>\n <div className={styles.dropdownList}>\n {dropdown.items.map((item, index) => (\n <a\n key={`${item.href}-${index}`}\n href={item.href}\n className={styles.dropdownItem}\n >\n <div className={styles.dropdownItemContent}>\n {item.icon && (\n <div className={styles.dropdownItemIconWrapper}>\n <item.icon className={styles.dropdownItemIcon} />\n </div>\n )}\n <span className={styles.dropdownItemTitle}>\n {item.title}\n </span>\n </div>\n {item.href && activeHref === item.href && (\n <CheckmarkFilled className={styles.checkmark} />\n )}\n </a>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["DropdownMenu","dropdown","isActive","activeHref","className","isExpanded","setIsExpanded","useState","Icon","DocumentRegular","jsxs","styles","jsx","item","index","CheckmarkFilled"],"mappings":";;;;AA6BO,SAASA,EAAa;AAAA,EAC3B,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,YAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAsB;AACpB,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAS,EAAK,GAC5CC,IAAOP,EAAS,QAAQQ;AAE9B,SACE,gBAAAC,EAAC,SAAI,WAAW,GAAGC,EAAO,SAAS,IAAIP,CAAS,IAC9C,UAAA;AAAA,IAAA,gBAAAQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMN,EAAc,CAACD,CAAU;AAAA,QACxC,iBAAeA;AAAA,QACf,cAAY,GAAGA,IAAa,aAAa,QAAQ,IAC/CJ,EAAS,KACX;AAAA,QACA,WAAW,GAAGU,EAAO,MAAM,IAAIT,IAAWS,EAAO,eAAe,EAAE;AAAA,QAElE,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,eACrB,UAAA;AAAA,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,eACrB,4BAAC,OAAA,EAAI,WAAWA,EAAO,aACrB,4BAACH,GAAA,EAAK,WAAWG,EAAO,KAAA,CAAM,GAChC,GACF;AAAA,UAEA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,eACrB,UAAA;AAAA,YAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,OAAQ,YAAS,OAAM;AAAA,8BAC7C,OAAA,EAAI,WAAWA,EAAO,aAAc,YAAS,YAAA,CAAY;AAAA,UAAA,GAC5D;AAAA,UAEA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,kBACrB,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAGD,EAAO,OAAO,IAC1BN,IAAaM,EAAO,kBAAkBA,EAAO,gBAC/C;AAAA,cACA,MAAK;AAAA,cACL,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,eAAY;AAAA,cAEZ,UAAA,gBAAAC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,eAAc;AAAA,kBACd,gBAAe;AAAA,kBACf,aAAa;AAAA,kBACb,GAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACJ;AAAA,UAAA,EACF,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAGDP,KAAcJ,EAAS,SAASA,EAAS,MAAM,SAAS,KACvD,gBAAAW,EAAC,OAAA,EAAI,WAAWD,EAAO,mBACrB,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,UACrB,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,cACpB,UAAAV,EAAS,MAAM,IAAI,CAACY,GAAMC,MACzB,gBAAAJ;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,MAAMG,EAAK;AAAA,QACX,WAAWF,EAAO;AAAA,QAElB,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,qBACpB,UAAA;AAAA,YAAAE,EAAK,QACJ,gBAAAD,EAAC,OAAA,EAAI,WAAWD,EAAO,yBACrB,UAAA,gBAAAC,EAACC,EAAK,MAAL,EAAU,WAAWF,EAAO,kBAAkB,GACjD;AAAA,8BAED,QAAA,EAAK,WAAWA,EAAO,mBACrB,YAAK,MAAA,CACR;AAAA,UAAA,GACF;AAAA,UACCE,EAAK,QAAQV,MAAeU,EAAK,QAChC,gBAAAD,EAACG,GAAA,EAAgB,WAAWJ,EAAO,UAAA,CAAW;AAAA,QAAA;AAAA,MAAA;AAAA,MAf3C,GAAGE,EAAK,IAAI,IAAIC,CAAK;AAAA,IAAA,CAkB7B,EAAA,CACH,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/nav-tree/dropdown-menu.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { CheckmarkFilled, DocumentRegular } from \"@fluentui/react-icons\";\nimport { useComponents } from \"../../context/components-context\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DropdownConfig {\n title: string;\n description: string;\n icon?: React.ComponentType<{ className?: string }>;\n color?: {\n light?: string;\n dark?: string;\n };\n items?: DropdownItem[];\n}\n\nexport interface DropdownItem {\n title: string;\n href?: string;\n description?: string;\n icon?: React.ComponentType<{ className?: string }>;\n}\n\ninterface DropdownMenuProps {\n dropdown: DropdownConfig;\n isActive?: boolean;\n activeHref?: string;\n className?: string;\n}\n\nexport function DropdownMenu({\n dropdown,\n isActive = false,\n activeHref,\n className = \"\",\n}: DropdownMenuProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const { LinkComponent } = useComponents();\n const Icon = dropdown.icon || DocumentRegular;\n\n return (\n <div className={cn(\"mint:mb-2 mint:lg:mb-2\", className)}>\n <button\n onClick={() => setIsExpanded(!isExpanded)}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} ${\n dropdown.title\n } dropdown`}\n className={cn(\n \"mint:w-full mint:py-2 mint:px-3 mint:rounded-xl mint:bg-white mint:dark:bg-[#1f1f1f] mint:border mint:border-[rgba(229,231,235,0.7)] mint:dark:border-[rgba(255,255,255,0.07)] mint:cursor-pointer mint:hover:border-[#d1d5db] mint:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:border-[rgba(255,255,255,0.15)] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive &&\n \"mint:shadow-[0_0_0_2px_rgba(100,63,178,0.2)] mint:border-[rgba(100,63,178,0.3)]\"\n )}\n >\n <div className=\"mint:flex mint:items-center mint:gap-2\">\n <div className=\"mint:flex-shrink-0\">\n <div className=\"mint:w-8 mint:h-8 mint:rounded-lg mint:flex mint:items-center mint:justify-center mint:bg-[#e1cefc] mint:dark:bg-[#38255e] mint:border mint:border-[#643fb2] mint:dark:border-[#c9aaf9]\">\n <Icon className=\"mint:w-4 mint:h-4 mint:text-[#643fb2] mint:dark:text-[#c9aaf9]\" />\n </div>\n </div>\n\n <div className=\"mint:flex-1 mint:text-left mint:min-w-0\">\n <div className=\"mint:text-sm mint:font-medium mint:text-[#111827] mint:dark:text-white\">\n {dropdown.title}\n </div>\n <div className=\"mint:text-xs mint:text-[#4b5563] mint:dark:text-[#9ca3af] mint:line-clamp-2\">\n {dropdown.description}\n </div>\n </div>\n\n <div className=\"mint:flex-shrink-0\">\n <svg\n className={cn(\n \"mint:w-4 mint:h-4 mint:text-[#6b7280] mint:dark:text-[#9ca3af] mint:transition-transform mint:duration-200\",\n isExpanded ? \"mint:rotate-180\" : \"mint:rotate-0\"\n )}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </div>\n </div>\n </button>\n\n {isExpanded && dropdown.items && dropdown.items.length > 0 && (\n <div className=\"mint:relative mint:mt-2\">\n <div className=\"mint:absolute mint:top-0 mint:left-0 mint:right-0 mint:z-10 mint:w-full mint:p-1 mint:rounded-lg mint:bg-white mint:dark:bg-[#1f1f1f] mint:border mint:border-[rgba(229,231,235,0.7)] mint:dark:border-[rgba(255,255,255,0.07)] mint:shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)]\">\n <div className=\"mint:flex mint:flex-col mint:gap-1\">\n {dropdown.items.map((item, index) => {\n const LinkElement = LinkComponent || \"a\";\n return (\n <LinkElement\n key={`${item.href}-${index}`}\n href={item.href}\n className=\"mint:flex mint:items-center mint:justify-between mint:py-1.5 mint:px-2 mint:text-sm mint:rounded-xl mint:transition-all mint:duration-150 mint:no-underline mint:text-[#111827] mint:dark:text-white mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#111827] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\"\n >\n <div className=\"mint:flex mint:items-center mint:gap-2\">\n {item.icon && (\n <div className=\"mint:w-7 mint:h-7 mint:rounded-lg mint:flex mint:items-center mint:justify-center mint:bg-[#e1cefc] mint:dark:bg-[#38255e] mint:border mint:border-[#643fb2] mint:dark:border-[#c9aaf9]\">\n <item.icon className=\"mint:w-4 mint:h-4 mint:text-[#643fb2] mint:dark:text-[#c9aaf9]\" />\n </div>\n )}\n <span className=\"mint:font-medium\">{item.title}</span>\n </div>\n {item.href && activeHref === item.href && (\n <CheckmarkFilled className=\"mint:w-3 mint:h-3 mint:text-[#643fb2] mint:dark:text-[#c9aaf9]\" />\n )}\n </LinkElement>\n );\n })}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["DropdownMenu","dropdown","isActive","activeHref","className","isExpanded","setIsExpanded","useState","LinkComponent","useComponents","Icon","DocumentRegular","cn","jsx","jsxs","item","index","CheckmarkFilled"],"mappings":";;;;;AA8BO,SAASA,EAAa;AAAA,EAC3B,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,YAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAsB;AACpB,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAS,EAAK,GAC5C,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GACpBC,IAAOT,EAAS,QAAQU;AAE9B,2BACG,OAAA,EAAI,WAAWC,EAAG,0BAA0BR,CAAS,GACpD,UAAA;AAAA,IAAA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMP,EAAc,CAACD,CAAU;AAAA,QACxC,iBAAeA;AAAA,QACf,cAAY,GAAGA,IAAa,aAAa,QAAQ,IAC/CJ,EAAS,KACX;AAAA,QACA,WAAWW;AAAA,UACT;AAAA,UACAV,KACE;AAAA,QAAA;AAAA,QAGJ,UAAA,gBAAAY,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,sBACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2LACb,UAAA,gBAAAA,EAACH,GAAA,EAAK,WAAU,iEAAA,CAAiE,EAAA,CACnF,GACF;AAAA,UAEA,gBAAAI,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,YAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,0EACZ,UAAAZ,EAAS,OACZ;AAAA,YACA,gBAAAY,EAAC,OAAA,EAAI,WAAU,+EACZ,YAAS,YAAA,CACZ;AAAA,UAAA,GACF;AAAA,UAEA,gBAAAA,EAAC,OAAA,EAAI,WAAU,sBACb,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWD;AAAA,gBACT;AAAA,gBACAP,IAAa,oBAAoB;AAAA,cAAA;AAAA,cAEnC,MAAK;AAAA,cACL,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,eAAY;AAAA,cAEZ,UAAA,gBAAAQ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,eAAc;AAAA,kBACd,gBAAe;AAAA,kBACf,aAAa;AAAA,kBACb,GAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACJ;AAAA,UAAA,EACF,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAGDR,KAAcJ,EAAS,SAASA,EAAS,MAAM,SAAS,KACvD,gBAAAY,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA,gBAAAA,EAAC,SAAI,WAAU,kTACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,sCACZ,YAAS,MAAM,IAAI,CAACE,GAAMC,MAGvB,gBAAAF;AAAA,MAFkBN,KAAiB;AAAA,MAElC;AAAA,QAEC,MAAMO,EAAK;AAAA,QACX,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,0CACZ,UAAA;AAAA,YAAAC,EAAK,QACJ,gBAAAF,EAAC,OAAA,EAAI,WAAU,2LACb,UAAA,gBAAAA,EAACE,EAAK,MAAL,EAAU,WAAU,iEAAA,CAAiE,EAAA,CACxF;AAAA,YAEF,gBAAAF,EAAC,QAAA,EAAK,WAAU,oBAAoB,YAAK,MAAA,CAAM;AAAA,UAAA,GACjD;AAAA,UACCE,EAAK,QAAQZ,MAAeY,EAAK,QAChC,gBAAAF,EAACI,GAAA,EAAgB,WAAU,iEAAA,CAAiE;AAAA,QAAA;AAAA,MAAA;AAAA,MAbzF,GAAGF,EAAK,IAAI,IAAIC,CAAK;AAAA,IAAA,CAiB/B,EAAA,CACH,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}