@box-kite/react 2.0.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/.claude/rules/box-kite-rules.md +24 -2
  2. package/.claude/skills/box-kite/SKILL.md +27 -5
  3. package/.claude/skills/box-kite/references/components.md +8 -3
  4. package/.claude/skills/box-kite/references/patterns.md +24 -1
  5. package/.claude/skills/box-kite/references/styling.md +23 -0
  6. package/.cursor/rules/box-kite.mdc +25 -3
  7. package/AGENTS.md +28 -3
  8. package/BOX_AI_CONTEXT.md +732 -12
  9. package/BOX_KITE_AI_CONTEXT.md +732 -12
  10. package/README.md +41 -9
  11. package/box.cjs +1 -1
  12. package/box.d.ts +13 -2
  13. package/box.mjs +25 -18
  14. package/catalog.cjs +1 -0
  15. package/catalog.d.ts +8 -0
  16. package/catalog.mjs +2347 -0
  17. package/client.cjs +1 -1
  18. package/client.mjs +59 -53
  19. package/components/agent.cjs +1 -0
  20. package/components/agent.d.ts +215 -0
  21. package/components/agent.mjs +405 -0
  22. package/components/button.cjs +1 -1
  23. package/components/button.mjs +10 -14
  24. package/components/chart.d.ts +1 -0
  25. package/components/dashboard.cjs +1 -0
  26. package/components/dashboard.d.ts +121 -0
  27. package/components/dashboard.mjs +690 -0
  28. package/components/dataGrid/components/dataGridBody.d.ts +2 -1
  29. package/components/dataGrid/components/dataGridDetailRow.d.ts +13 -2
  30. package/components/dataGrid/components/dataGridGroupRow.d.ts +13 -2
  31. package/components/dataGrid/components/dataGridRow.d.ts +13 -2
  32. package/components/dataGrid/contracts/dataGridContract.d.ts +66 -2
  33. package/components/dataGrid/models/cellModel.d.ts +3 -0
  34. package/components/dataGrid/models/editModel.d.ts +27 -0
  35. package/components/dataGrid/models/exportModel.d.ts +2 -1
  36. package/components/dataGrid/models/gridModel.d.ts +3 -0
  37. package/components/dataGrid/models/rangeModel.d.ts +119 -0
  38. package/components/dataGrid/models/viewportModel.d.ts +23 -2
  39. package/components/dataGrid/useGridNavigation.d.ts +10 -2
  40. package/components/dataGrid.cjs +4 -1
  41. package/components/dataGrid.d.ts +3 -0
  42. package/components/dataGrid.mjs +1056 -765
  43. package/components/flex.cjs +1 -1
  44. package/components/flex.mjs +10 -13
  45. package/components/form.cjs +1 -1
  46. package/components/form.mjs +7 -7
  47. package/components/grid.cjs +1 -1
  48. package/components/grid.mjs +10 -13
  49. package/components/markdown.cjs +1 -0
  50. package/components/markdown.d.ts +55 -0
  51. package/components/markdown.mjs +179 -0
  52. package/components/menu.cjs +1 -1
  53. package/components/menu.mjs +16 -16
  54. package/components/overlay.cjs +1 -1
  55. package/components/overlay.mjs +35 -34
  56. package/components/popover.cjs +1 -1
  57. package/components/popover.mjs +4 -4
  58. package/components/semantics.cjs +1 -1
  59. package/components/semantics.d.ts +29 -29
  60. package/components/semantics.mjs +9 -13
  61. package/components/skeleton.cjs +1 -0
  62. package/components/skeleton.d.ts +34 -0
  63. package/components/skeleton.mjs +25 -0
  64. package/components/svg.cjs +1 -1
  65. package/components/svg.mjs +38 -44
  66. package/components/textarea.cjs +1 -1
  67. package/components/textarea.mjs +12 -16
  68. package/components/textbox.cjs +1 -1
  69. package/components/textbox.mjs +12 -16
  70. package/components/toaster.cjs +1 -1
  71. package/components/toaster.mjs +42 -43
  72. package/components/visuallyHidden.cjs +1 -1
  73. package/components/visuallyHidden.mjs +10 -13
  74. package/dashboardSchema.cjs +1 -0
  75. package/dashboardSchema.mjs +78 -0
  76. package/docs/a11y.md +2 -3
  77. package/docs/catalog.md +451 -0
  78. package/docs/components.md +4 -0
  79. package/docs/index.md +3 -0
  80. package/docs/interop.md +237 -0
  81. package/docs/mcp.md +70 -0
  82. package/docs/props.md +135 -23
  83. package/interop.cjs +1 -0
  84. package/interop.d.ts +51 -0
  85. package/interop.mjs +454 -0
  86. package/layer.cjs +1 -1
  87. package/layer.mjs +61 -59
  88. package/mcp/src/data.d.ts +88 -0
  89. package/mcp/src/data.test.d.ts +1 -0
  90. package/mcp/src/engine.d.ts +23 -0
  91. package/mcp/src/index.d.ts +1 -0
  92. package/mcp/src/search.d.ts +26 -0
  93. package/mcp/src/search.test.d.ts +1 -0
  94. package/mcp/src/server.d.ts +18 -0
  95. package/mcp/src/server.test.d.ts +1 -0
  96. package/mcp/src/styles.d.ts +27 -0
  97. package/mcp/src/styles.test.d.ts +1 -0
  98. package/mcp/src/tools.d.ts +18 -0
  99. package/mcp/src/vocabulary.d.ts +41 -0
  100. package/package.json +170 -37
  101. package/react/boxComponent.d.ts +10 -0
  102. package/react/popover/useTopLayer.d.ts +17 -0
  103. package/react/spec/renderSpec.d.ts +51 -0
  104. package/react/spec/specBoundary.d.ts +25 -0
  105. package/react/spec/specRegistry.d.ts +42 -0
  106. package/react/spec/specRenderer.d.ts +10 -0
  107. package/react/theme/theme.d.ts +10 -0
  108. package/react/useStyles.d.ts +2 -0
  109. package/react-shared.cjs +1 -1
  110. package/react-shared.mjs +44 -37
  111. package/registry/blocks/dashboard-shell/dashboard-shell.d.ts +22 -0
  112. package/registry/blocks/dashboard-shell/dashboard-stats.d.ts +13 -0
  113. package/registry/blocks/data-grid/invoice-rows.d.ts +15 -0
  114. package/registry/blocks/data-grid/invoices-grid.d.ts +1 -0
  115. package/registry/blocks/settings-form/settings-form.d.ts +17 -0
  116. package/rsc.cjs +1 -1
  117. package/rsc.d.ts +11 -1
  118. package/rsc.mjs +15 -12
  119. package/spec.cjs +2 -0
  120. package/spec.d.ts +12 -0
  121. package/spec.mjs +382 -0
  122. package/specData.cjs +1 -0
  123. package/specData.mjs +69 -0
  124. package/specDefs.cjs +1 -0
  125. package/specDefs.mjs +33 -0
  126. package/specSchema.cjs +1 -0
  127. package/specSchema.mjs +88 -0
  128. package/ssg.cjs +1 -1
  129. package/ssg.d.ts +8 -2
  130. package/ssg.mjs +13 -9
  131. package/utils/agent/agentUtils.d.ts +81 -0
  132. package/utils/catalog/catalogContracts.d.ts +19 -0
  133. package/utils/catalog/catalogManifest.d.ts +8 -0
  134. package/utils/dashboard/dashboardSchema.d.ts +18 -0
  135. package/utils/dashboard/dashboardUtils.d.ts +97 -0
  136. package/utils/environment/environmentUtils.d.ts +5 -0
  137. package/utils/interop/a2uiInterop.d.ts +82 -0
  138. package/utils/interop/assistantUiInterop.d.ts +34 -0
  139. package/utils/interop/toolInterop.d.ts +30 -0
  140. package/utils/spec/specData.d.ts +19 -0
  141. package/utils/spec/specDefs.d.ts +11 -0
  142. package/utils/spec/specProps.d.ts +15 -0
  143. package/utils/spec/specSchema.d.ts +23 -0
  144. package/utils/spec/specTypes.d.ts +71 -0
  145. package/utils/spec/specValidate.d.ts +10 -0
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../rolldown-runtime.cjs");let t=require("react"),n=require("react/jsx-runtime"),r=require("@box-kite/react");r=e.t(r,1);function i(e,t){let{inline:i,...a}=e;return(0,n.jsx)(r.default,{ref:t,display:i?`inline-flex`:`flex`,...a})}var a=(0,t.forwardRef)(i);a.displayName=`Flex`,exports.default=a;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs");let t=require("@box-kite/react");function n(e,n){let{inline:r,...i}=e;return(0,t.useBoxElement)({display:r?`inline-flex`:`flex`,...i},n)}var r=e.f(n,`Flex`);exports.default=r;
@@ -1,16 +1,13 @@
1
- import { forwardRef as e } from "react";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import n from "@box-kite/react";
1
+ import { f as e } from "../react-shared.mjs";
2
+ import { useBoxElement as t } from "@box-kite/react";
4
3
  //#region src/components/flex.tsx
5
- function r(e, r) {
6
- let { inline: i, ...a } = e;
7
- return /* @__PURE__ */ t(n, {
8
- ref: r,
9
- display: i ? "inline-flex" : "flex",
10
- ...a
11
- });
4
+ function n(e, n) {
5
+ let { inline: r, ...i } = e;
6
+ return t({
7
+ display: r ? "inline-flex" : "flex",
8
+ ...i
9
+ }, n);
12
10
  }
13
- var i = e(r);
14
- i.displayName = "Flex";
11
+ var r = e(n, "Flex");
15
12
  //#endregion
16
- export { i as default };
13
+ export { r as default };
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs");let t=require("react"),n=require("react/jsx-runtime");var r;(function(e){function t(e){let t=Array.from(e.elements).reduce((e,t)=>{let n=t.name;return n?(e[n]||(e[n]=[]),e[n].push(t),e):e},{});return Object.entries(t).reduce((e,[t,r])=>{if(r.length===1){let i=r[0];n(e,t,i.type===`checkbox`||i.type===`radio`?i.checked:i.value)}else n(e,t,r.reduce((e,t)=>(t.type===`checkbox`||t.type===`radio`?t.checked&&e.push(t.value):e.push(t.value),e),[]));return e},{})}e.getFormEntries=t;function n(e,t,n){if(t.includes(`.`)){let r=t.split(`.`),i=e;r.forEach((e,t)=>{if(r.length>t+1){let t=e.match(/^(.+)\[(\d)\]$/);if(t){let[,e,n]=t;i[e]=i[e]||[],i[e][n]=i[e][n]||{},i=i[e][n]}else i[e]=i[e]||{},i=i[e]}else i[e]=n})}else e[t]=n}})(r||={});var i=r;function a(r){let{onSubmit:a,props:o}=r,s=(0,t.useRef)(null),c=(0,t.useCallback)(e=>{e.preventDefault();let t=i.getFormEntries(s.current);a(t,e)},[a]),l={...o,onSubmit:c,ref:s};return(0,n.jsx)(e.default,{tag:`form`,...r,props:l})}a.displayName=`Form`,exports.default=a;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs");let t=require("react"),n=require("react/jsx-runtime");var r;(function(e){function t(e){let t=Array.from(e.elements).reduce((e,t)=>{let n=t.name;return n?(e[n]||(e[n]=[]),e[n].push(t),e):e},{});return Object.entries(t).reduce((e,[t,r])=>{if(r.length===1){let i=r[0];n(e,t,i.type===`checkbox`||i.type===`radio`?i.checked:i.value)}else n(e,t,r.reduce((e,t)=>(t.type===`checkbox`||t.type===`radio`?t.checked&&e.push(t.value):e.push(t.value),e),[]));return e},{})}e.getFormEntries=t;function n(e,t,n){if(t.includes(`.`)){let r=t.split(`.`),i=e;r.forEach((e,t)=>{if(r.length>t+1){let t=e.match(/^(.+)\[(\d)\]$/);if(t){let[,e,n]=t;i[e]=i[e]||[],i[e][n]=i[e][n]||{},i=i[e][n]}else i[e]=i[e]||{},i=i[e]}else i[e]=n})}else e[t]=n}})(r||={});var i=r;function a(r){let{onSubmit:a,props:o,...s}=r,c=(0,t.useRef)(null),l=(0,t.useCallback)(e=>{e.preventDefault();let t=i.getFormEntries(c.current);a(t,e)},[a]),u={...o,onSubmit:l,ref:c};return(0,n.jsx)(e.default,{tag:`form`,...s,props:u})}a.displayName=`Form`,exports.default=a;
@@ -38,19 +38,19 @@ var a = i;
38
38
  //#endregion
39
39
  //#region src/components/form.tsx
40
40
  function o(i) {
41
- let { onSubmit: o, props: s } = i, c = n(null), l = t((e) => {
41
+ let { onSubmit: o, props: s, ...c } = i, l = n(null), u = t((e) => {
42
42
  e.preventDefault();
43
- let t = a.getFormEntries(c.current);
43
+ let t = a.getFormEntries(l.current);
44
44
  o(t, e);
45
- }, [o]), u = {
45
+ }, [o]), d = {
46
46
  ...s,
47
- onSubmit: l,
48
- ref: c
47
+ onSubmit: u,
48
+ ref: l
49
49
  };
50
50
  return /* @__PURE__ */ r(e, {
51
51
  tag: "form",
52
- ...i,
53
- props: u
52
+ ...c,
53
+ props: d
54
54
  });
55
55
  }
56
56
  o.displayName = "Form";
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../rolldown-runtime.cjs");let t=require("react"),n=require("react/jsx-runtime"),r=require("@box-kite/react");r=e.t(r,1);function i(e,t){let{inline:i,...a}=e;return(0,n.jsx)(r.default,{ref:t,display:i?`inline-grid`:`grid`,...a})}var a=(0,t.forwardRef)(i);a.displayName=`Grid`,exports.default=a;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs");let t=require("@box-kite/react");function n(e,n){let{inline:r,...i}=e;return(0,t.useBoxElement)({display:r?`inline-grid`:`grid`,...i},n)}var r=e.f(n,`Grid`);exports.default=r;
@@ -1,16 +1,13 @@
1
- import { forwardRef as e } from "react";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import n from "@box-kite/react";
1
+ import { f as e } from "../react-shared.mjs";
2
+ import { useBoxElement as t } from "@box-kite/react";
4
3
  //#region src/components/grid.tsx
5
- function r(e, r) {
6
- let { inline: i, ...a } = e;
7
- return /* @__PURE__ */ t(n, {
8
- ref: r,
9
- display: i ? "inline-grid" : "grid",
10
- ...a
11
- });
4
+ function n(e, n) {
5
+ let { inline: r, ...i } = e;
6
+ return t({
7
+ display: r ? "inline-grid" : "grid",
8
+ ...i
9
+ }, n);
12
10
  }
13
- var i = e(r);
14
- i.displayName = "Grid";
11
+ var r = e(n, "Grid");
15
12
  //#endregion
16
- export { i as default };
13
+ export { r as default };
@@ -0,0 +1 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../rolldown-runtime.cjs"),t=require("./semantics.cjs");let n=require("react"),r=require("react/jsx-runtime"),i=require("@box-kite/react");i=e.t(i,1);function a(e){let t=/(?:^|\s)language-([\w+-]+)/.exec(e??``);return t?t[1]:``}var o=(e,t)=>function({children:n}){return(0,r.jsx)(e,{component:`markdown.heading`,variant:`level${t}`,children:n})};function s({children:e}){return(0,r.jsx)(t.P,{component:`markdown.paragraph`,children:e})}function c({children:e,href:n,title:i}){return(0,r.jsx)(t.Link,{component:`markdown.link`,props:{href:n,title:i,rel:`noreferrer`},children:e})}function l({children:e}){return(0,r.jsx)(t.Ul,{component:`markdown.list`,children:e})}function u({children:e,start:n}){return(0,r.jsx)(t.Ol,{component:`markdown.list`,variant:{ordered:!0},props:{start:n},children:e})}function d({children:e}){return(0,r.jsx)(t.Li,{component:`markdown.item`,children:e})}function f({children:e}){return(0,r.jsx)(i.default,{tag:`blockquote`,component:`markdown.quote`,children:e})}function p({children:e}){return(0,r.jsx)(i.default,{tag:`code`,component:`markdown.code`,children:e})}function m({children:e}){let t=(0,n.isValidElement)(e)?e.props:void 0,o=a(t?.className);return(0,r.jsxs)(i.default,{tag:`pre`,component:`markdown.codeBlock`,children:[o!==``&&(0,r.jsx)(i.default,{tag:`span`,component:`markdown.codeBlock.language`,children:o}),(0,r.jsx)(i.default,{tag:`code`,component:`markdown.codeBlock.code`,children:t?t.children:e})]})}function h(){return(0,r.jsx)(i.default,{tag:`hr`,component:`markdown.rule`})}function g({src:e,alt:n,title:i}){return(0,r.jsx)(t.Img,{component:`markdown.image`,props:{src:e,alt:n,title:i}})}function _({children:e}){return(0,r.jsx)(i.default,{component:`markdown.tableWrap`,children:(0,r.jsx)(i.default,{tag:`table`,component:`markdown.table`,children:e})})}var v=(e,t)=>function({children:n}){return(0,r.jsx)(i.default,{tag:e,display:t,children:n})};function y({children:e}){return(0,r.jsx)(i.default,{tag:`tr`,component:`markdown.row`,children:e})}var b=(e,t)=>function({children:n}){return(0,r.jsx)(i.default,{tag:e,component:`markdown.cell`,variant:{header:t},children:n})},x=e=>function({children:t}){return(0,r.jsx)(i.default,{tag:e,component:`markdown.inline`,variant:e===`del`?{struck:!0}:{strong:e===`strong`},children:t})};function S({checked:e}){return(0,r.jsx)(i.default,{tag:`input`,component:`markdown.checkbox`,disabled:!0,props:{type:`checkbox`,defaultChecked:e===!0}})}var C={h1:o(t.H1,1),h2:o(t.H2,2),h3:o(t.H3,3),h4:o(t.H4,4),h5:o(t.H5,5),h6:o(t.H6,6),p:s,a:c,ul:l,ol:u,li:d,blockquote:f,code:p,pre:m,hr:h,img:g,table:_,thead:v(`thead`,`table-header-group`),tbody:v(`tbody`,`table-row-group`),tr:y,th:b(`th`,!0),td:b(`td`,!1),strong:x(`strong`),em:x(`em`),del:x(`del`),input:S};exports.default=C,exports.markdownComponents=C;
@@ -0,0 +1,55 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ /**
3
+ * Box Kite's half of a markdown renderer: the `components` map that `react-markdown`, `streamdown` and
4
+ * every other renderer built on that shape already takes, with the engine's own classes in it.
5
+ *
6
+ * The dependency is deliberately **not** taken. Streamdown — the hardened streaming renderer this would
7
+ * otherwise wrap — asks a project for a Tailwind `@source` line pointing into its `dist/` and for
8
+ * shadcn's design tokens in a global stylesheet, which is the one thing this library exists not to need;
9
+ * and a parser is a choice an app has usually already made. So what ships is the half that is ours, and
10
+ * it works with whichever renderer is already there.
11
+ */
12
+ /**
13
+ * What a renderer hands one of these components. A superset of what any single node uses, which is what
14
+ * makes the map assignable to `react-markdown`'s own `Components` type without importing it.
15
+ */
16
+ export interface MarkdownNodeProps {
17
+ children?: ReactNode;
18
+ /** A fenced block's `language-ts`, and nothing else the map reads. */
19
+ className?: string;
20
+ href?: string;
21
+ src?: string;
22
+ alt?: string;
23
+ title?: string;
24
+ /** A task list's box. `null` is a list item that is not one. */
25
+ checked?: boolean | null;
26
+ /** Where an ordered list starts, when the source said. */
27
+ start?: number;
28
+ }
29
+ export type MarkdownComponents = Record<string, ComponentType<MarkdownNodeProps>>;
30
+ /**
31
+ * Markdown rendered with Box components — the map a renderer takes, so an agent's prose is themed,
32
+ * restylable and needs no stylesheet.
33
+ *
34
+ * ```tsx
35
+ * import Markdown from 'react-markdown';
36
+ * import { markdownComponents } from '@box-kite/react/components/markdown';
37
+ *
38
+ * <Box component="markdown">
39
+ * <Markdown components={markdownComponents}>{message}</Markdown>
40
+ * </Box>
41
+ * ```
42
+ *
43
+ * **It is a constant, not a factory, and that matters while streaming.** A map built inside render is a
44
+ * new set of component *types* every token, and React unmounts and rebuilds the whole tree for each one.
45
+ * Override a node by spreading — `{ ...markdownComponents, h1: MyHeading }` — at module scope.
46
+ *
47
+ * **Whether a URL is safe is the renderer's**, not this map's: by the time a component is called the href
48
+ * has already been parsed, so `urlTransform` (react-markdown) or `defaultUrlTransform` (Streamdown) is
49
+ * where a `javascript:` link is refused. What is set here is `rel="noreferrer"`, which costs nothing.
50
+ *
51
+ * Wrapping the renderer in `<Box component="markdown">` is what gives the block its size and colour; the
52
+ * nodes inherit from it, so restyling the prose is one place.
53
+ */
54
+ export declare const markdownComponents: MarkdownComponents;
55
+ export default markdownComponents;
@@ -0,0 +1,179 @@
1
+ import { H1 as e, H2 as t, H3 as n, H4 as r, H5 as i, H6 as a, Img as o, Li as s, Link as c, Ol as l, P as u, Ul as d } from "./semantics.mjs";
2
+ import { isValidElement as f } from "react";
3
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
4
+ import h from "@box-kite/react";
5
+ //#region src/components/markdown.tsx
6
+ function g(e) {
7
+ let t = /(?:^|\s)language-([\w+-]+)/.exec(e ?? "");
8
+ return t ? t[1] : "";
9
+ }
10
+ var _ = (e, t) => function({ children: n }) {
11
+ return /* @__PURE__ */ p(e, {
12
+ component: "markdown.heading",
13
+ variant: `level${t}`,
14
+ children: n
15
+ });
16
+ };
17
+ function v({ children: e }) {
18
+ return /* @__PURE__ */ p(u, {
19
+ component: "markdown.paragraph",
20
+ children: e
21
+ });
22
+ }
23
+ function y({ children: e, href: t, title: n }) {
24
+ return /* @__PURE__ */ p(c, {
25
+ component: "markdown.link",
26
+ props: {
27
+ href: t,
28
+ title: n,
29
+ rel: "noreferrer"
30
+ },
31
+ children: e
32
+ });
33
+ }
34
+ function b({ children: e }) {
35
+ return /* @__PURE__ */ p(d, {
36
+ component: "markdown.list",
37
+ children: e
38
+ });
39
+ }
40
+ function x({ children: e, start: t }) {
41
+ return /* @__PURE__ */ p(l, {
42
+ component: "markdown.list",
43
+ variant: { ordered: !0 },
44
+ props: { start: t },
45
+ children: e
46
+ });
47
+ }
48
+ function S({ children: e }) {
49
+ return /* @__PURE__ */ p(s, {
50
+ component: "markdown.item",
51
+ children: e
52
+ });
53
+ }
54
+ function C({ children: e }) {
55
+ return /* @__PURE__ */ p(h, {
56
+ tag: "blockquote",
57
+ component: "markdown.quote",
58
+ children: e
59
+ });
60
+ }
61
+ function w({ children: e }) {
62
+ return /* @__PURE__ */ p(h, {
63
+ tag: "code",
64
+ component: "markdown.code",
65
+ children: e
66
+ });
67
+ }
68
+ function T({ children: e }) {
69
+ let t = f(e) ? e.props : void 0, n = g(t?.className);
70
+ return /* @__PURE__ */ m(h, {
71
+ tag: "pre",
72
+ component: "markdown.codeBlock",
73
+ children: [n !== "" && /* @__PURE__ */ p(h, {
74
+ tag: "span",
75
+ component: "markdown.codeBlock.language",
76
+ children: n
77
+ }), /* @__PURE__ */ p(h, {
78
+ tag: "code",
79
+ component: "markdown.codeBlock.code",
80
+ children: t ? t.children : e
81
+ })]
82
+ });
83
+ }
84
+ function E() {
85
+ return /* @__PURE__ */ p(h, {
86
+ tag: "hr",
87
+ component: "markdown.rule"
88
+ });
89
+ }
90
+ function D({ src: e, alt: t, title: n }) {
91
+ return /* @__PURE__ */ p(o, {
92
+ component: "markdown.image",
93
+ props: {
94
+ src: e,
95
+ alt: t,
96
+ title: n
97
+ }
98
+ });
99
+ }
100
+ function O({ children: e }) {
101
+ return /* @__PURE__ */ p(h, {
102
+ component: "markdown.tableWrap",
103
+ children: /* @__PURE__ */ p(h, {
104
+ tag: "table",
105
+ component: "markdown.table",
106
+ children: e
107
+ })
108
+ });
109
+ }
110
+ var k = (e, t) => function({ children: n }) {
111
+ return /* @__PURE__ */ p(h, {
112
+ tag: e,
113
+ display: t,
114
+ children: n
115
+ });
116
+ };
117
+ function A({ children: e }) {
118
+ return /* @__PURE__ */ p(h, {
119
+ tag: "tr",
120
+ component: "markdown.row",
121
+ children: e
122
+ });
123
+ }
124
+ var j = (e, t) => function({ children: n }) {
125
+ return /* @__PURE__ */ p(h, {
126
+ tag: e,
127
+ component: "markdown.cell",
128
+ variant: { header: t },
129
+ children: n
130
+ });
131
+ }, M = (e) => function({ children: t }) {
132
+ return /* @__PURE__ */ p(h, {
133
+ tag: e,
134
+ component: "markdown.inline",
135
+ variant: e === "del" ? { struck: !0 } : { strong: e === "strong" },
136
+ children: t
137
+ });
138
+ };
139
+ function N({ checked: e }) {
140
+ return /* @__PURE__ */ p(h, {
141
+ tag: "input",
142
+ component: "markdown.checkbox",
143
+ disabled: !0,
144
+ props: {
145
+ type: "checkbox",
146
+ defaultChecked: e === !0
147
+ }
148
+ });
149
+ }
150
+ var P = {
151
+ h1: _(e, 1),
152
+ h2: _(t, 2),
153
+ h3: _(n, 3),
154
+ h4: _(r, 4),
155
+ h5: _(i, 5),
156
+ h6: _(a, 6),
157
+ p: v,
158
+ a: y,
159
+ ul: b,
160
+ ol: x,
161
+ li: S,
162
+ blockquote: C,
163
+ code: w,
164
+ pre: T,
165
+ hr: E,
166
+ img: D,
167
+ table: O,
168
+ thead: k("thead", "table-header-group"),
169
+ tbody: k("tbody", "table-row-group"),
170
+ tr: A,
171
+ th: j("th", !0),
172
+ td: j("td", !1),
173
+ strong: M("strong"),
174
+ em: M("em"),
175
+ del: M("del"),
176
+ input: N
177
+ };
178
+ //#endregion
179
+ export { P as default, P as markdownComponents };
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../effects.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../keyboard.cjs"),o=require("../placement.cjs"),s=require("./overlay.cjs"),c=require("../layer.cjs");let l=require("react"),u=require("react/jsx-runtime");var d;(function(e){let t=e.ITEM_SELECTOR=`[role="menuitem"],[role="menuitemcheckbox"],[role="menuitemradio"]`;function n(e,t){return t instanceof Element&&t.closest(`[role="menu"]`)===e}e.owns=n;function r(e){return[...e.querySelectorAll(t)].filter(t=>n(e,t))}e.items=r;function i(e){return e.getAttribute(`aria-disabled`)===`true`}e.isDisabled=i;function o(e){return e.getAttribute(`aria-haspopup`)===`menu`}e.isSubTrigger=o;function s(e,t,n){if(e.length!==0)return e[t<0?n>0?0:e.length-1:((t+n)%e.length+e.length)%e.length]}e.step=s;function c(e,t,n){let r=a.t.target(t,n,e.length,t=>e[t].textContent??``);return r<0?void 0:e[r]}e.typeaheadTarget=c})(d||={});var f=d,p=(0,l.createContext)(null);function m(e){let t=(0,l.useContext)(p);if(!t)throw Error(`<${e}> must be rendered inside a <Menu>.`);return t}function h(e){let[t,n]=(0,l.useState)([]);return{panels:t,registerLayer:(0,l.useCallback)(t=>{n(e=>[...e,t]);let r=e?.(t);return()=>{n(e=>e.filter(e=>e!==t)),r?.()}},[e])}}var g=(0,l.createContext)(null);function _(e){let{trigger:t,children:n,open:i,defaultOpen:a=!1,onOpenChange:o,label:s,labelledBy:d,side:m=`bottom`,align:g=`start`,offset:_=1,flip:y=!0,matchWidth:b=!1,props:x,...S}=e,C=(0,l.useRef)(`first`),w=r.a(e=>{let t=f.items(e),n=C.current===`last`?t[t.length-1]:t[0];C.current=`first`,(n??e).focus()}),{panels:T,registerLayer:E}=h(),D=c.t({haspopup:`menu`,idPrefix:`menu`,id:S.id,open:i,defaultOpen:a,onOpenChange:o,onOpened:w,inside:T}),O=r.a(e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),C.current=e.key===`ArrowUp`?`last`:`first`,D.isOpen&&D.panelElement?w(D.panelElement):D.setOpen(!0,{reason:`trigger`,event:e}))}),k=(0,l.useMemo)(()=>({ref:D.trigger.ref,props:{...D.trigger.props,onKeyDown:O}}),[O,D.trigger]),A=r.a(e=>D.setOpen(!1,e)),j=(0,l.useMemo)(()=>({open:D.isOpen,closeAll:A,registerLayer:E}),[A,D.isOpen,E]);return(0,u.jsxs)(u.Fragment,{children:[t(k),(0,u.jsx)(p.Provider,{value:j,children:(0,u.jsx)(v,{layer:D,side:m,align:g,offset:_,flip:y,matchWidth:b,label:s,labelledBy:d??(s?void 0:D.triggerId),contentProps:x,...S,children:n})})]})}function v(t){let{layer:i,side:c,align:d,offset:p,flip:h,matchWidth:g,label:_,labelledBy:v,contentProps:y,closeSelf:b,children:x,...S}=t,{platform:C,isOpen:w,id:T,triggerElement:E,setPanel:D}=i,O=m(`Menu`),k=(0,l.useRef)({query:``,at:0}),A=o.t({side:c,align:d,offset:p,flip:h,matchWidth:g,anchor:E}),j={role:`menu`,"aria-label":_,"aria-labelledby":v,tabIndex:-1,onKeyDown:r.a(t=>{let n=t.currentTarget;if(!f.owns(n,t.target))return;let r=f.items(n),i=r.indexOf(document.activeElement),o=e=>{e&&(t.preventDefault(),e.focus())},s=e.u(n)?`ArrowRight`:`ArrowLeft`;switch(t.key){case`ArrowDown`:return o(f.step(r,i,1));case`ArrowUp`:return o(f.step(r,i,-1));case`Home`:return o(r[0]);case`End`:return o(r[r.length-1]);case`Tab`:return O.closeAll({reason:`tab`,event:t});case s:return b?(t.preventDefault(),b({reason:`trigger`,event:t})):void 0}if(a.t.isPrintable(t)){let e=a.t.push(k.current,t.key,t.timeStamp);o(f.typeaheadTarget(r,e,i))}}),onPointerOver:r.a(e=>{let t=e.currentTarget,n=e.target?.closest(f.ITEM_SELECTOR);!n||!f.owns(t,n)||n===document.activeElement||n.focus()}),...y};return C?(0,u.jsx)(n.default,{ref:D,component:`menu`,...S,variant:[S.variant,{topLayer:!0}],...A.layerProps,id:T,props:{popover:`auto`,...j},children:x}):w?(0,u.jsx)(s.default,{contentRef:D,anchor:E,side:c,align:d,offset:p,flip:h,matchWidth:g,component:`menu`,...S,id:T,props:j,children:x}):null}function y(a){let{label:o,children:s,disabled:d,side:g=`end`,align:_=`start`,offset:y=0,flip:b=!0,itemProps:x,props:S,...C}=a,w=m(`Menu.Sub`),T=i.t(`menu-sub`),E=r.a(e=>{(f.items(e)[0]??e).focus()}),D=r.a((e,t)=>{e&&t?.focus()}),{panels:O,registerLayer:k}=h(w.registerLayer),A=c.t({haspopup:`menu`,idPrefix:`menu-sub`,id:C.id,onOpened:E,onClosing:D,inside:O});t.n(()=>{if(!(!A.isOpen||!A.panelElement))return w.registerLayer(A.panelElement)},[A.isOpen,A.panelElement,w.registerLayer]),t.n(()=>{w.open||A.setOpen(!1,{reason:`imperative`})},[w.open,A.setOpen]),t.n(()=>{if(!A.isOpen)return;let t=new AbortController;return document.addEventListener(`focusin`,t=>{e.l(t,[A.panelElement,A.triggerElement])||A.setOpen(!1,{reason:`imperative`,event:t})},{signal:t.signal}),()=>t.abort()},[A.isOpen,A.panelElement,A.triggerElement,A.setOpen]);let j=r.a(t=>{let n=e.u(t.currentTarget)?`ArrowLeft`:`ArrowRight`;d||t.key!==n||(t.preventDefault(),A.setOpen(!0,{reason:`trigger`,event:t}))}),M=r.a(e=>{d||A.setOpen(!0,{reason:`trigger`,event:e})}),N=(0,l.useMemo)(()=>({open:A.isOpen,closeAll:w.closeAll,registerLayer:k}),[A.isOpen,w.closeAll,k]);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(n.default,{tag:`button`,ref:d?void 0:A.trigger.ref,component:`menu.item`,variant:{sub:!0},id:T,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":d||void 0,...A.trigger.props,...x,onKeyDown:j,onPointerEnter:M},children:[o,(0,u.jsx)(n.default,{component:`menu.arrow`})]}),!d&&(0,u.jsx)(p.Provider,{value:N,children:(0,u.jsx)(v,{layer:A,side:g,align:_,offset:y,flip:b,matchWidth:!1,labelledBy:T,contentProps:S,closeSelf:e=>A.setOpen(!1,e),...C,children:s})})]})}function b(e){let{onSelect:t,disabled:i,closeOnSelect:a=!0,props:o,children:s,...c}=e,l=m(`Menu.Item`),d=r.a(e=>{i||(t?.(e),a&&l.closeAll({reason:`select`,event:e}))});return(0,u.jsx)(n.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":i||void 0,...o,onClick:d},children:s})}function x(e){let{checked:t,defaultChecked:i=!1,onCheckedChange:a,disabled:o,closeOnSelect:s=!1,props:c,children:l,...d}=e,f=m(`Menu.CheckboxItem`),[p,h]=r.i({value:t,defaultValue:i,onChange:a}),g=r.a(e=>{o||(h(!p,{reason:`select`,event:e}),s&&f.closeAll({reason:`select`,event:e}))});return(0,u.jsxs)(n.default,{tag:`button`,component:`menu.item`,...d,props:{type:`button`,role:`menuitemcheckbox`,tabIndex:-1,"aria-checked":p,"aria-disabled":o||void 0,...c,onClick:g},children:[(0,u.jsx)(n.default,{component:`menu.indicator`,children:p&&(0,u.jsx)(n.default,{component:`menu.check`})}),l]})}function S(e){let{label:t,value:n,defaultValue:i=``,onValueChange:a,children:o,...s}=e,[c,d]=r.i({value:n,defaultValue:i,onChange:a}),f=r.a((e,t)=>d(e,{reason:`select`,event:t})),p=(0,l.useMemo)(()=>({value:c,select:f}),[c,f]);return(0,u.jsx)(g.Provider,{value:p,children:(0,u.jsx)(w,{label:t,...s,children:o})})}function C(e){let{value:t,disabled:i,closeOnSelect:a=!1,props:o,children:s,...c}=e,d=m(`Menu.RadioItem`),f=(0,l.useContext)(g);if(!f)throw Error(`<Menu.RadioItem> must be rendered inside a <Menu.RadioGroup>.`);let p=f.value===t,h=r.a(e=>{i||(f.select(t,e),a&&d.closeAll({reason:`select`,event:e}))});return(0,u.jsxs)(n.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitemradio`,tabIndex:-1,"aria-checked":p,"aria-disabled":i||void 0,...o,onClick:h},children:[(0,u.jsx)(n.default,{component:`menu.indicator`,children:p&&(0,u.jsx)(n.default,{component:`menu.dot`})}),s]})}function w(e){let{label:t,props:r,children:a,...o}=e,s=i.t(`menu-group`);return(0,u.jsxs)(n.default,{component:`menu.group`,...o,props:{role:`group`,"aria-labelledby":t?s:void 0,...r},children:[t&&(0,u.jsx)(n.default,{component:`menu.label`,id:s,props:{role:`presentation`},children:t}),a]})}function T(e){let{props:t,...r}=e;return(0,u.jsx)(n.default,{component:`menu.separator`,...r,props:{role:`separator`,...t}})}b.displayName=`Menu.Item`,x.displayName=`Menu.CheckboxItem`,S.displayName=`Menu.RadioGroup`,C.displayName=`Menu.RadioItem`,w.displayName=`Menu.Group`,T.displayName=`Menu.Separator`,y.displayName=`Menu.Sub`;var E=Object.assign(_,{Item:b,CheckboxItem:x,RadioGroup:S,RadioItem:C,Group:w,Separator:T,Sub:y});_.displayName=`Menu`,exports.default=E;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../effects.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../keyboard.cjs"),o=require("../placement.cjs"),s=require("../layer.cjs"),c=require("./overlay.cjs");let l=require("react"),u=require("react/jsx-runtime");var d;(function(e){let t=e.ITEM_SELECTOR=`[role="menuitem"],[role="menuitemcheckbox"],[role="menuitemradio"]`;function n(e,t){return t instanceof Element&&t.closest(`[role="menu"]`)===e}e.owns=n;function r(e){return[...e.querySelectorAll(t)].filter(t=>n(e,t))}e.items=r;function i(e){return e.getAttribute(`aria-disabled`)===`true`}e.isDisabled=i;function o(e){return e.getAttribute(`aria-haspopup`)===`menu`}e.isSubTrigger=o;function s(e,t,n){if(e.length!==0)return e[t<0?n>0?0:e.length-1:((t+n)%e.length+e.length)%e.length]}e.step=s;function c(e,t,n){let r=a.t.target(t,n,e.length,t=>e[t].textContent??``);return r<0?void 0:e[r]}e.typeaheadTarget=c})(d||={});var f=d,p=(0,l.createContext)(null);function m(e){let t=(0,l.useContext)(p);if(!t)throw Error(`<${e}> must be rendered inside a <Menu>.`);return t}function h(e){let[t,n]=(0,l.useState)([]);return{panels:t,registerLayer:(0,l.useCallback)(t=>{n(e=>[...e,t]);let r=e?.(t);return()=>{n(e=>e.filter(e=>e!==t)),r?.()}},[e])}}var g=(0,l.createContext)(null);function _(e){let{trigger:t,children:n,open:i,defaultOpen:a=!1,onOpenChange:o,label:c,labelledBy:d,side:m=`bottom`,align:g=`start`,offset:_=1,flip:y=!0,matchWidth:b=!1,props:x,...S}=e,C=(0,l.useRef)(`first`),w=r.a(e=>{let t=f.items(e),n=C.current===`last`?t[t.length-1]:t[0];C.current=`first`,(n??e).focus()}),{panels:T,registerLayer:E}=h(),D=s.t({haspopup:`menu`,idPrefix:`menu`,id:S.id,open:i,defaultOpen:a,onOpenChange:o,onOpened:w,inside:T}),O=r.a(e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),C.current=e.key===`ArrowUp`?`last`:`first`,D.isOpen&&D.panelElement?w(D.panelElement):D.setOpen(!0,{reason:`trigger`,event:e}))}),k=(0,l.useMemo)(()=>({ref:D.trigger.ref,props:{...D.trigger.props,onKeyDown:O}}),[O,D.trigger]),A=r.a(e=>D.setOpen(!1,e)),j=(0,l.useMemo)(()=>({open:D.isOpen,closeAll:A,registerLayer:E}),[A,D.isOpen,E]);return(0,u.jsxs)(u.Fragment,{children:[t(k),(0,u.jsx)(p.Provider,{value:j,children:(0,u.jsx)(v,{layer:D,side:m,align:g,offset:_,flip:y,matchWidth:b,label:c,labelledBy:d??(c?void 0:D.triggerId),contentProps:x,...S,children:n})})]})}function v(t){let{layer:i,side:s,align:d,offset:p,flip:h,matchWidth:g,label:_,labelledBy:v,contentProps:y,closeSelf:b,children:x,...S}=t,{platform:C,isOpen:w,id:T,triggerElement:E,setPanel:D}=i,O=m(`Menu`),k=(0,l.useRef)({query:``,at:0}),A=o.t({side:s,align:d,offset:p,flip:h,matchWidth:g,anchor:E}),j={role:`menu`,"aria-label":_,"aria-labelledby":v,tabIndex:-1,onKeyDown:r.a(t=>{let n=t.currentTarget;if(!f.owns(n,t.target))return;let r=f.items(n),i=r.indexOf(document.activeElement),o=e=>{e&&(t.preventDefault(),e.focus())},s=e.u(n)?`ArrowRight`:`ArrowLeft`;switch(t.key){case`ArrowDown`:return o(f.step(r,i,1));case`ArrowUp`:return o(f.step(r,i,-1));case`Home`:return o(r[0]);case`End`:return o(r[r.length-1]);case`Tab`:return O.closeAll({reason:`tab`,event:t});case s:return b?(t.preventDefault(),b({reason:`trigger`,event:t})):void 0}if(a.t.isPrintable(t)){let e=a.t.push(k.current,t.key,t.timeStamp);o(f.typeaheadTarget(r,e,i))}}),onPointerOver:r.a(e=>{let t=e.currentTarget,n=e.target?.closest(f.ITEM_SELECTOR);!n||!f.owns(t,n)||n===document.activeElement||n.focus()}),...y};return C?(0,u.jsx)(n.default,{ref:D,component:`menu`,...S,variant:[S.variant,{topLayer:!0}],...A.layerProps,id:T,props:{popover:`auto`,...j},children:x}):w?(0,u.jsx)(c.default,{contentRef:D,anchor:E,side:s,align:d,offset:p,flip:h,matchWidth:g,component:`menu`,...S,id:T,props:j,children:x}):null}function y(a){let{label:o,children:c,disabled:d,side:g=`end`,align:_=`start`,offset:y=0,flip:b=!0,itemProps:x,props:S,...C}=a,w=m(`Menu.Sub`),T=i.t(`menu-sub`),E=r.a(e=>{(f.items(e)[0]??e).focus()}),D=r.a((e,t)=>{e&&t?.focus()}),{panels:O,registerLayer:k}=h(w.registerLayer),A=s.t({haspopup:`menu`,idPrefix:`menu-sub`,id:C.id,onOpened:E,onClosing:D,inside:O});t.n(()=>{if(!(!A.isOpen||!A.panelElement))return w.registerLayer(A.panelElement)},[A.isOpen,A.panelElement,w.registerLayer]),t.n(()=>{w.open||A.setOpen(!1,{reason:`imperative`})},[w.open,A.setOpen]),t.n(()=>{if(!A.isOpen)return;let t=new AbortController;return document.addEventListener(`focusin`,t=>{e.l(t,[A.panelElement,A.triggerElement])||A.setOpen(!1,{reason:`imperative`,event:t})},{signal:t.signal}),()=>t.abort()},[A.isOpen,A.panelElement,A.triggerElement,A.setOpen]);let j=r.a(t=>{let n=e.u(t.currentTarget)?`ArrowLeft`:`ArrowRight`;d||t.key!==n||(t.preventDefault(),A.setOpen(!0,{reason:`trigger`,event:t}))}),M=r.a(e=>{d||A.setOpen(!0,{reason:`trigger`,event:e})}),N=(0,l.useMemo)(()=>({open:A.isOpen,closeAll:w.closeAll,registerLayer:k}),[A.isOpen,w.closeAll,k]);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(n.default,{tag:`button`,ref:d?void 0:A.trigger.ref,component:`menu.item`,variant:{sub:!0},id:T,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":d||void 0,...A.trigger.props,...x,onKeyDown:j,onPointerEnter:M},children:[o,(0,u.jsx)(n.default,{component:`menu.arrow`})]}),!d&&(0,u.jsx)(p.Provider,{value:N,children:(0,u.jsx)(v,{layer:A,side:g,align:_,offset:y,flip:b,matchWidth:!1,labelledBy:T,contentProps:S,closeSelf:e=>A.setOpen(!1,e),...C,children:c})})]})}function b(e){let{onSelect:t,disabled:i,closeOnSelect:a=!0,props:o,children:s,...c}=e,l=m(`Menu.Item`),d=r.a(e=>{i||(t?.(e),a&&l.closeAll({reason:`select`,event:e}))});return(0,u.jsx)(n.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":i||void 0,...o,onClick:d},children:s})}function x(e){let{checked:t,defaultChecked:i=!1,onCheckedChange:a,disabled:o,closeOnSelect:s=!1,props:c,children:l,...d}=e,f=m(`Menu.CheckboxItem`),[p,h]=r.i({value:t,defaultValue:i,onChange:a}),g=r.a(e=>{o||(h(!p,{reason:`select`,event:e}),s&&f.closeAll({reason:`select`,event:e}))});return(0,u.jsxs)(n.default,{tag:`button`,component:`menu.item`,...d,props:{type:`button`,role:`menuitemcheckbox`,tabIndex:-1,"aria-checked":p,"aria-disabled":o||void 0,...c,onClick:g},children:[(0,u.jsx)(n.default,{component:`menu.indicator`,children:p&&(0,u.jsx)(n.default,{component:`menu.check`})}),l]})}function S(e){let{label:t,value:n,defaultValue:i=``,onValueChange:a,children:o,...s}=e,[c,d]=r.i({value:n,defaultValue:i,onChange:a}),f=r.a((e,t)=>d(e,{reason:`select`,event:t})),p=(0,l.useMemo)(()=>({value:c,select:f}),[c,f]);return(0,u.jsx)(g.Provider,{value:p,children:(0,u.jsx)(w,{label:t,...s,children:o})})}function C(e){let{value:t,disabled:i,closeOnSelect:a=!1,props:o,children:s,...c}=e,d=m(`Menu.RadioItem`),f=(0,l.useContext)(g);if(!f)throw Error(`<Menu.RadioItem> must be rendered inside a <Menu.RadioGroup>.`);let p=f.value===t,h=r.a(e=>{i||(f.select(t,e),a&&d.closeAll({reason:`select`,event:e}))});return(0,u.jsxs)(n.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitemradio`,tabIndex:-1,"aria-checked":p,"aria-disabled":i||void 0,...o,onClick:h},children:[(0,u.jsx)(n.default,{component:`menu.indicator`,children:p&&(0,u.jsx)(n.default,{component:`menu.dot`})}),s]})}function w(e){let{label:t,props:r,children:a,...o}=e,s=i.t(`menu-group`);return(0,u.jsxs)(n.default,{component:`menu.group`,...o,props:{role:`group`,"aria-labelledby":t?s:void 0,...r},children:[t&&(0,u.jsx)(n.default,{component:`menu.label`,id:s,props:{role:`presentation`},children:t}),a]})}function T(e){let{props:t,...r}=e;return(0,u.jsx)(n.default,{component:`menu.separator`,...r,props:{role:`separator`,...t}})}b.displayName=`Menu.Item`,x.displayName=`Menu.CheckboxItem`,S.displayName=`Menu.RadioGroup`,C.displayName=`Menu.RadioItem`,w.displayName=`Menu.Group`,T.displayName=`Menu.Separator`,y.displayName=`Menu.Sub`;var E=Object.assign(_,{Item:b,CheckboxItem:x,RadioGroup:S,RadioItem:C,Group:w,Separator:T,Sub:y});_.displayName=`Menu`,exports.default=E;
@@ -6,8 +6,8 @@ import { a as i, i as a } from "../behavior.mjs";
6
6
  import { t as o } from "../identity.mjs";
7
7
  import { t as s } from "../keyboard.mjs";
8
8
  import { t as c } from "../placement.mjs";
9
- import l from "./overlay.mjs";
10
- import { t as u } from "../layer.mjs";
9
+ import { t as l } from "../layer.mjs";
10
+ import u from "./overlay.mjs";
11
11
  import { createContext as d, useCallback as f, useContext as p, useMemo as m, useRef as h, useState as g } from "react";
12
12
  import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
13
13
  //#region src/utils/menu/menuUtils.ts
@@ -61,10 +61,10 @@ function w(e) {
61
61
  }
62
62
  var T = d(null);
63
63
  function E(e) {
64
- let { trigger: t, children: n, open: r, defaultOpen: a = !1, onOpenChange: o, label: s, labelledBy: c, side: l = "bottom", align: d = "start", offset: f = 1, flip: p = !0, matchWidth: g = !1, props: b, ...C } = e, T = h("first"), E = i((e) => {
64
+ let { trigger: t, children: n, open: r, defaultOpen: a = !1, onOpenChange: o, label: s, labelledBy: c, side: u = "bottom", align: d = "start", offset: f = 1, flip: p = !0, matchWidth: g = !1, props: b, ...C } = e, T = h("first"), E = i((e) => {
65
65
  let t = x.items(e), n = T.current === "last" ? t[t.length - 1] : t[0];
66
66
  T.current = "first", (n ?? e).focus();
67
- }), { panels: O, registerLayer: k } = w(), A = u({
67
+ }), { panels: O, registerLayer: k } = w(), A = l({
68
68
  haspopup: "menu",
69
69
  idPrefix: "menu",
70
70
  id: C.id,
@@ -97,7 +97,7 @@ function E(e) {
97
97
  value: P,
98
98
  children: /* @__PURE__ */ v(D, {
99
99
  layer: A,
100
- side: l,
100
+ side: u,
101
101
  align: d,
102
102
  offset: f,
103
103
  flip: p,
@@ -111,13 +111,13 @@ function E(e) {
111
111
  })] });
112
112
  }
113
113
  function D(e) {
114
- let { layer: n, side: a, align: o, offset: u, flip: d, matchWidth: f, label: p, labelledBy: m, contentProps: g, closeSelf: _, children: y, ...b } = e, { platform: S, isOpen: w, id: T, triggerElement: E, setPanel: D } = n, O = C("Menu"), k = h({
114
+ let { layer: n, side: a, align: o, offset: l, flip: d, matchWidth: f, label: p, labelledBy: m, contentProps: g, closeSelf: _, children: y, ...b } = e, { platform: S, isOpen: w, id: T, triggerElement: E, setPanel: D } = n, O = C("Menu"), k = h({
115
115
  query: "",
116
116
  at: 0
117
117
  }), A = c({
118
118
  side: a,
119
119
  align: o,
120
- offset: u,
120
+ offset: l,
121
121
  flip: d,
122
122
  matchWidth: f,
123
123
  anchor: E
@@ -169,12 +169,12 @@ function D(e) {
169
169
  ...j
170
170
  },
171
171
  children: y
172
- }) : w ? /* @__PURE__ */ v(l, {
172
+ }) : w ? /* @__PURE__ */ v(u, {
173
173
  contentRef: D,
174
174
  anchor: E,
175
175
  side: a,
176
176
  align: o,
177
- offset: u,
177
+ offset: l,
178
178
  flip: d,
179
179
  matchWidth: f,
180
180
  component: "menu",
@@ -185,11 +185,11 @@ function D(e) {
185
185
  }) : null;
186
186
  }
187
187
  function O(a) {
188
- let { label: s, children: c, disabled: l, side: d = "end", align: f = "start", offset: p = 0, flip: h = !0, itemProps: g, props: b, ...T } = a, E = C("Menu.Sub"), O = o("menu-sub"), k = i((e) => {
188
+ let { label: s, children: c, disabled: u, side: d = "end", align: f = "start", offset: p = 0, flip: h = !0, itemProps: g, props: b, ...T } = a, E = C("Menu.Sub"), O = o("menu-sub"), k = i((e) => {
189
189
  (x.items(e)[0] ?? e).focus();
190
190
  }), A = i((e, t) => {
191
191
  e && t?.focus();
192
- }), { panels: j, registerLayer: M } = w(E.registerLayer), N = u({
192
+ }), { panels: j, registerLayer: M } = w(E.registerLayer), N = l({
193
193
  haspopup: "menu",
194
194
  idPrefix: "menu-sub",
195
195
  id: T.id,
@@ -222,12 +222,12 @@ function O(a) {
222
222
  ]);
223
223
  let P = i((e) => {
224
224
  let n = t(e.currentTarget) ? "ArrowLeft" : "ArrowRight";
225
- l || e.key !== n || (e.preventDefault(), N.setOpen(!0, {
225
+ u || e.key !== n || (e.preventDefault(), N.setOpen(!0, {
226
226
  reason: "trigger",
227
227
  event: e
228
228
  }));
229
229
  }), F = i((e) => {
230
- l || N.setOpen(!0, {
230
+ u || N.setOpen(!0, {
231
231
  reason: "trigger",
232
232
  event: e
233
233
  });
@@ -242,7 +242,7 @@ function O(a) {
242
242
  ]);
243
243
  return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ y(r, {
244
244
  tag: "button",
245
- ref: l ? void 0 : N.trigger.ref,
245
+ ref: u ? void 0 : N.trigger.ref,
246
246
  component: "menu.item",
247
247
  variant: { sub: !0 },
248
248
  id: O,
@@ -250,14 +250,14 @@ function O(a) {
250
250
  type: "button",
251
251
  role: "menuitem",
252
252
  tabIndex: -1,
253
- "aria-disabled": l || void 0,
253
+ "aria-disabled": u || void 0,
254
254
  ...N.trigger.props,
255
255
  ...g,
256
256
  onKeyDown: P,
257
257
  onPointerEnter: F
258
258
  },
259
259
  children: [s, /* @__PURE__ */ v(r, { component: "menu.arrow" })]
260
- }), !l && /* @__PURE__ */ v(S.Provider, {
260
+ }), !u && /* @__PURE__ */ v(S.Provider, {
261
261
  value: I,
262
262
  children: /* @__PURE__ */ v(D, {
263
263
  layer: N,
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../client.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../placement.cjs");let a=require("react"),o=require("react/jsx-runtime"),s=require("react-dom");function c(c,l){let{side:u=`bottom`,align:d=`center`,offset:f=0,flip:p=!0,onSideChange:m,anchor:h,contentRef:g,matchWidth:_=!0,...v}=c,[y,b]=(0,a.useState)(null),[x,S]=(0,a.useState)(!1),C=(0,a.useRef)(null),[w]=(0,a.useState)(e.a),T=(0,a.useRef)(null),E=t.t(!w),D=i.t({side:u,align:d,offset:f,flip:p,matchWidth:_,anchor:h??y,trackSide:!!m});n.n(()=>{let e=T.current;!w||!e||!e.isConnected||e.matches(`:popover-open`)||e.showPopover()}),n.n(()=>{if(w)return;let t=e.c(h)??y;S(!!t&&e.u(t))},[h,y,w]),n.n(()=>{C.current!==D.side&&(C.current=D.side,m?.(D.side))});let O=D.layerProps.ref,k=(0,a.useCallback)(e=>{O?.(e),T.current=e,typeof l==`function`?l(e):l&&(l.current=e)},[O,l]),A=(0,o.jsx)(r.default,{...D.layerProps,ref:k,transition:`none`,props:w?{popover:`manual`}:{dir:x?`rtl`:`ltr`},children:(0,o.jsx)(r.default,{ref:g,...v})});return(0,o.jsxs)(o.Fragment,{children:[!h&&(0,o.jsx)(r.default,{ref:b}),w?A:E&&(0,s.createPortal)(A,E)]})}var l=(0,a.forwardRef)(c);l.displayName=`Overlay`,exports.default=l;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../client.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../placement.cjs"),a=require("../layer.cjs");let o=require("react"),s=require("react-dom"),c=require("react/jsx-runtime");function l(l,u){let{side:d=`bottom`,align:f=`center`,offset:p=0,flip:m=!0,onSideChange:h,anchor:g,contentRef:_,matchWidth:v=!0,...y}=l,[b,x]=(0,o.useState)(null),[S,C]=(0,o.useState)(!1),w=(0,o.useRef)(null),T=a.n(),E=(0,o.useRef)(null),D=t.t(!T),O=i.t({side:d,align:f,offset:p,flip:m,matchWidth:v,anchor:g??b,trackSide:!!h});n.n(()=>{let t=E.current;!T||!e.a()||!t||!t.isConnected||t.matches(`:popover-open`)||t.showPopover()}),n.n(()=>{if(T)return;let t=e.c(g)??b;C(!!t&&e.u(t))},[g,b,T]),n.n(()=>{w.current!==O.side&&(w.current=O.side,h?.(O.side))});let k=O.layerProps.ref,A=(0,o.useCallback)(e=>{k?.(e),E.current=e,typeof u==`function`?u(e):u&&(u.current=e)},[k,u]),j=(0,c.jsx)(r.default,{...O.layerProps,ref:A,transition:`none`,props:T?{popover:`manual`}:{dir:S?`rtl`:`ltr`},children:(0,c.jsx)(r.default,{ref:_,...y})});return(0,c.jsxs)(c.Fragment,{children:[!g&&(0,c.jsx)(r.default,{ref:x}),T?j:D&&(0,s.createPortal)(j,D)]})}var u=(0,o.forwardRef)(l);u.displayName=`Overlay`,exports.default=u;
@@ -4,49 +4,50 @@ import { t as r } from "../client.mjs";
4
4
  import { n as i } from "../effects.mjs";
5
5
  import a from "../box.mjs";
6
6
  import { t as o } from "../placement.mjs";
7
- import { forwardRef as s, useCallback as c, useRef as l, useState as u } from "react";
8
- import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
9
- import { createPortal as m } from "react-dom";
7
+ import { n as s } from "../layer.mjs";
8
+ import { forwardRef as c, useCallback as l, useRef as u, useState as d } from "react";
9
+ import { createPortal as f } from "react-dom";
10
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
10
11
  //#region src/components/overlay.tsx
11
- function h(s, h) {
12
- let { side: g = "bottom", align: _ = "center", offset: v = 0, flip: y = !0, onSideChange: b, anchor: x, contentRef: S, matchWidth: C = !0, ...w } = s, [T, E] = u(null), [D, O] = u(!1), k = l(null), [A] = u(e), j = l(null), M = r(!A), N = o({
13
- side: g,
14
- align: _,
15
- offset: v,
16
- flip: y,
17
- matchWidth: C,
18
- anchor: x ?? T,
19
- trackSide: !!b
12
+ function g(c, g) {
13
+ let { side: _ = "bottom", align: v = "center", offset: y = 0, flip: b = !0, onSideChange: x, anchor: S, contentRef: C, matchWidth: w = !0, ...T } = c, [E, D] = d(null), [O, k] = d(!1), A = u(null), j = s(), M = u(null), N = r(!j), P = o({
14
+ side: _,
15
+ align: v,
16
+ offset: y,
17
+ flip: b,
18
+ matchWidth: w,
19
+ anchor: S ?? E,
20
+ trackSide: !!x
20
21
  });
21
22
  i(() => {
22
- let e = j.current;
23
- !A || !e || !e.isConnected || e.matches(":popover-open") || e.showPopover();
23
+ let t = M.current;
24
+ !j || !e() || !t || !t.isConnected || t.matches(":popover-open") || t.showPopover();
24
25
  }), i(() => {
25
- if (A) return;
26
- let e = t(x) ?? T;
27
- O(!!e && n(e));
26
+ if (j) return;
27
+ let e = t(S) ?? E;
28
+ k(!!e && n(e));
28
29
  }, [
29
- x,
30
- T,
31
- A
30
+ S,
31
+ E,
32
+ j
32
33
  ]), i(() => {
33
- k.current !== N.side && (k.current = N.side, b?.(N.side));
34
+ A.current !== P.side && (A.current = P.side, x?.(P.side));
34
35
  });
35
- let P = N.layerProps.ref, F = c((e) => {
36
- P?.(e), j.current = e, typeof h == "function" ? h(e) : h && (h.current = e);
37
- }, [P, h]), I = /* @__PURE__ */ f(a, {
38
- ...N.layerProps,
39
- ref: F,
36
+ let F = P.layerProps.ref, I = l((e) => {
37
+ F?.(e), M.current = e, typeof g == "function" ? g(e) : g && (g.current = e);
38
+ }, [F, g]), L = /* @__PURE__ */ m(a, {
39
+ ...P.layerProps,
40
+ ref: I,
40
41
  transition: "none",
41
- props: A ? { popover: "manual" } : { dir: D ? "rtl" : "ltr" },
42
- children: /* @__PURE__ */ f(a, {
43
- ref: S,
44
- ...w
42
+ props: j ? { popover: "manual" } : { dir: O ? "rtl" : "ltr" },
43
+ children: /* @__PURE__ */ m(a, {
44
+ ref: C,
45
+ ...T
45
46
  })
46
47
  });
47
- return /* @__PURE__ */ p(d, { children: [!x && /* @__PURE__ */ f(a, { ref: E }), A ? I : M && m(I, M)] });
48
+ return /* @__PURE__ */ h(p, { children: [!S && /* @__PURE__ */ m(a, { ref: D }), j ? L : N && f(L, N)] });
48
49
  }
49
- var g = s(h);
50
- g.displayName = "Overlay";
50
+ var _ = c(g);
51
+ _.displayName = "Overlay";
51
52
  //#endregion
52
- export { g as default };
53
+ export { _ as default };
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs"),t=require("../behavior.cjs"),n=require("../placement.cjs"),r=require("./overlay.cjs"),i=require("../layer.cjs");let a=require("react/jsx-runtime");function o(o){let{trigger:s,children:c,open:l,defaultOpen:u=!1,onOpenChange:d,label:f,labelledBy:p,side:m=`bottom`,align:h=`center`,offset:g=2,flip:_=!0,matchWidth:v=!1,autoFocus:y=!0,props:b,...x}=o,S=t.a(e=>{!y||e.contains(document.activeElement)||e.focus()}),{platform:C,isOpen:w,id:T,trigger:E,triggerElement:D,setPanel:O}=i.t({haspopup:`dialog`,idPrefix:`popover`,id:x.id,open:l,defaultOpen:u,onOpenChange:d,onOpened:S}),k=n.t({side:m,align:h,offset:g,flip:_,matchWidth:v,anchor:D}),A={"aria-label":f,"aria-labelledby":p},j=x;return C?(0,a.jsxs)(a.Fragment,{children:[s(E),(0,a.jsx)(e.default,{ref:O,component:`popover`,...j,variant:[j.variant,{topLayer:!0}],...k.layerProps,id:T,props:{popover:`auto`,role:`dialog`,...A,tabIndex:-1,...b},children:c})]}):(0,a.jsxs)(a.Fragment,{children:[s(E),w&&(0,a.jsx)(r.default,{contentRef:O,anchor:D,side:m,align:h,offset:g,flip:_,matchWidth:v,component:`popover`,...j,id:T,props:{role:`dialog`,...A,tabIndex:-1,...b},children:c})]})}var s=o;s.displayName=`Popover`,exports.default=s;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs"),t=require("../behavior.cjs"),n=require("../placement.cjs"),r=require("../layer.cjs"),i=require("./overlay.cjs");let a=require("react/jsx-runtime");function o(o){let{trigger:s,children:c,open:l,defaultOpen:u=!1,onOpenChange:d,label:f,labelledBy:p,side:m=`bottom`,align:h=`center`,offset:g=2,flip:_=!0,matchWidth:v=!1,autoFocus:y=!0,props:b,...x}=o,S=t.a(e=>{!y||e.contains(document.activeElement)||e.focus()}),{platform:C,isOpen:w,id:T,trigger:E,triggerElement:D,setPanel:O}=r.t({haspopup:`dialog`,idPrefix:`popover`,id:x.id,open:l,defaultOpen:u,onOpenChange:d,onOpened:S}),k=n.t({side:m,align:h,offset:g,flip:_,matchWidth:v,anchor:D}),A={"aria-label":f,"aria-labelledby":p},j=x;return C?(0,a.jsxs)(a.Fragment,{children:[s(E),(0,a.jsx)(e.default,{ref:O,component:`popover`,...j,variant:[j.variant,{topLayer:!0}],...k.layerProps,id:T,props:{popover:`auto`,role:`dialog`,...A,tabIndex:-1,...b},children:c})]}):(0,a.jsxs)(a.Fragment,{children:[s(E),w&&(0,a.jsx)(i.default,{contentRef:O,anchor:D,side:m,align:h,offset:g,flip:_,matchWidth:v,component:`popover`,...j,id:T,props:{role:`dialog`,...A,tabIndex:-1,...b},children:c})]})}var s=o;s.displayName=`Popover`,exports.default=s;
@@ -2,14 +2,14 @@
2
2
  import e from "../box.mjs";
3
3
  import { a as t } from "../behavior.mjs";
4
4
  import { t as n } from "../placement.mjs";
5
- import r from "./overlay.mjs";
6
- import { t as i } from "../layer.mjs";
5
+ import { t as r } from "../layer.mjs";
6
+ import i from "./overlay.mjs";
7
7
  import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
8
8
  //#region src/components/popover.tsx
9
9
  function c(c) {
10
10
  let { trigger: l, children: u, open: d, defaultOpen: f = !1, onOpenChange: p, label: m, labelledBy: h, side: g = "bottom", align: _ = "center", offset: v = 2, flip: y = !0, matchWidth: b = !1, autoFocus: x = !0, props: S, ...C } = c, w = t((e) => {
11
11
  !x || e.contains(document.activeElement) || e.focus();
12
- }), { platform: T, isOpen: E, id: D, trigger: O, triggerElement: k, setPanel: A } = i({
12
+ }), { platform: T, isOpen: E, id: D, trigger: O, triggerElement: k, setPanel: A } = r({
13
13
  haspopup: "dialog",
14
14
  idPrefix: "popover",
15
15
  id: C.id,
@@ -43,7 +43,7 @@ function c(c) {
43
43
  ...S
44
44
  },
45
45
  children: u
46
- })] }) : /* @__PURE__ */ s(a, { children: [l(O), E && /* @__PURE__ */ o(r, {
46
+ })] }) : /* @__PURE__ */ s(a, { children: [l(O), E && /* @__PURE__ */ o(i, {
47
47
  contentRef: A,
48
48
  anchor: k,
49
49
  side: g,