@cloudflare/kumo 2.4.1 → 2.5.1

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 (37) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/ai/component-registry.json +34 -4
  3. package/ai/component-registry.md +176 -3
  4. package/ai/schemas.ts +1 -0
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +2 -0
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/ai/schemas.js +45 -43
  9. package/dist/ai/schemas.js.map +1 -1
  10. package/dist/chunks/{SankeyChart-npoyr1j06svoxsfe.js → SankeyChart-i1m7zv0lys3j0iq6.js} +74 -69
  11. package/dist/chunks/SankeyChart-i1m7zv0lys3j0iq6.js.map +1 -0
  12. package/dist/chunks/{dialog-my9fioafdstq50mi.js → dialog-3mpu1i1wssrsz8i6.js} +11 -11
  13. package/dist/chunks/dialog-3mpu1i1wssrsz8i6.js.map +1 -0
  14. package/dist/chunks/sidebar-nbdw4rgvuabxp5nj.js +1144 -0
  15. package/dist/chunks/sidebar-nbdw4rgvuabxp5nj.js.map +1 -0
  16. package/dist/chunks/{tabs-hice1yy5q2t889z8.js → tabs-ho9t1gkq22jb855l.js} +51 -28
  17. package/dist/chunks/tabs-ho9t1gkq22jb855l.js.map +1 -0
  18. package/dist/components/chart.js +1 -1
  19. package/dist/components/dialog.js +1 -1
  20. package/dist/components/flow.js +3 -2
  21. package/dist/components/flow.js.map +1 -1
  22. package/dist/components/sidebar.js +1 -1
  23. package/dist/components/tabs.js +1 -1
  24. package/dist/index.js +5 -5
  25. package/dist/src/components/chart/EChart.d.ts.map +1 -1
  26. package/dist/src/components/flow/connectors.d.ts.map +1 -1
  27. package/dist/src/components/sidebar/sidebar.d.ts +14 -2
  28. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -1
  29. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  30. package/dist/styles/kumo-binding.css +27 -20
  31. package/dist/styles/kumo-standalone.css +1 -1
  32. package/package.json +2 -2
  33. package/dist/chunks/SankeyChart-npoyr1j06svoxsfe.js.map +0 -1
  34. package/dist/chunks/dialog-my9fioafdstq50mi.js.map +0 -1
  35. package/dist/chunks/sidebar-hzio700cg85f7f31.js +0 -1014
  36. package/dist/chunks/sidebar-hzio700cg85f7f31.js.map +0 -1
  37. package/dist/chunks/tabs-hice1yy5q2t889z8.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as B } from "react/jsx-runtime";
3
- import { createContext as C, useContext as P } from "react";
2
+ import { jsx as e, jsxs as C } from "react/jsx-runtime";
3
+ import { createContext as P, useContext as v } from "react";
4
4
  import { L as h } from "./layer-card-er4flkcxmzfug8jw.js";
5
5
  import { c as x } from "./cn-ct4n7r74mh8y0f48.js";
6
6
  import { r as b } from "./resolve-variant-gw6eh7fa4st8ej7m.js";
@@ -28,16 +28,16 @@ const O = {
28
28
  }, s = {
29
29
  size: "base",
30
30
  role: "dialog"
31
- }, g = C("dialog");
31
+ }, g = P("dialog");
32
32
  function l() {
33
- return P(g);
33
+ return v(g);
34
34
  }
35
35
  function _({
36
36
  size: a = s.size
37
37
  } = {}) {
38
38
  return x(
39
39
  // Base styles
40
- "shadow-m ring ring-kumo-line fixed top-1/2 left-1/2 w-full sm:w-auto max-w-[calc(100vw-2rem)] sm:max-w-[calc(100vw-3rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-xl bg-kumo-base text-kumo-default duration-150 data-ending-style:scale-90 data-ending-style:opacity-0 data-starting-style:scale-90 data-starting-style:opacity-0",
40
+ "shadow-m ring ring-kumo-line fixed top-1/2 left-1/2 w-full sm:w-auto max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-xl bg-kumo-base text-kumo-default duration-150 data-ending-style:scale-90 data-ending-style:opacity-0 data-starting-style:scale-90 data-starting-style:opacity-0",
41
41
  // Apply size from KUMO_DIALOG_VARIANTS
42
42
  b(O.size, a, s.size).classes
43
43
  );
@@ -50,7 +50,7 @@ function $({
50
50
  container: n
51
51
  }) {
52
52
  const r = l(), c = A();
53
- return /* @__PURE__ */ B(r === "alertdialog" ? u : u, { container: n ?? c ?? void 0, children: [
53
+ return /* @__PURE__ */ C(r === "alertdialog" ? u : u, { container: n ?? c ?? void 0, children: [
54
54
  /* @__PURE__ */ e(r === "alertdialog" ? D : D, { className: "fixed inset-0 bg-kumo-recessed opacity-80 transition-all duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0" }),
55
55
  /* @__PURE__ */ e(
56
56
  h,
@@ -111,17 +111,17 @@ function k({ className: a, ...o }) {
111
111
  return /* @__PURE__ */ e(t, { className: a, ...o });
112
112
  }
113
113
  k.displayName = "Dialog.Description";
114
- function v({ children: a, ...o }) {
114
+ function B({ children: a, ...o }) {
115
115
  const t = l() === "alertdialog" ? p : p;
116
116
  return /* @__PURE__ */ e(t, { "data-kumo-component": "Dialog", "data-kumo-part": "close", ...o, children: a });
117
117
  }
118
- v.displayName = "Dialog.Close";
118
+ B.displayName = "Dialog.Close";
119
119
  const H = Object.assign($, {
120
120
  Root: y,
121
121
  Trigger: w,
122
122
  Title: T,
123
123
  Description: k,
124
- Close: v
124
+ Close: B
125
125
  });
126
126
  export {
127
127
  H as D,
@@ -129,6 +129,6 @@ export {
129
129
  w as b,
130
130
  T as c,
131
131
  k as d,
132
- v as e
132
+ B as e
133
133
  };
134
- //# sourceMappingURL=dialog-my9fioafdstq50mi.js.map
134
+ //# sourceMappingURL=dialog-3mpu1i1wssrsz8i6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-3mpu1i1wssrsz8i6.js","sources":["../../src/components/dialog/dialog.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n type ComponentPropsWithoutRef,\n type CSSProperties,\n type ReactNode,\n} from \"react\";\nimport { Dialog as DialogBase } from \"@base-ui/react/dialog\";\nimport { AlertDialog as AlertDialogBase } from \"@base-ui/react/alert-dialog\";\nimport { LayerCard } from \"../layer-card\";\nimport { cn } from \"../../utils/cn\";\nimport { resolveVariant } from \"../../utils/resolve-variant\";\nimport {\n usePortalContainer,\n type PortalContainer,\n} from \"../../utils/portal-provider\";\n\n/** Dialog size variant definitions mapping sizes to their minimum widths. */\nexport const KUMO_DIALOG_VARIANTS = {\n size: {\n base: {\n classes: \"sm:min-w-96\",\n description: \"Default dialog width\",\n },\n sm: {\n classes: \"min-w-72\",\n description: \"Small dialog for simple confirmations\",\n },\n lg: {\n classes: \"min-w-[32rem]\",\n description: \"Large dialog for complex content\",\n },\n xl: {\n classes: \"min-w-[48rem]\",\n description: \"Extra large dialog for detailed views\",\n },\n },\n role: {\n dialog: {\n classes: \"\",\n description: \"Standard dialog for general-purpose modals\",\n },\n alertdialog: {\n classes: \"\",\n description:\n \"Alert dialog for confirmation flows requiring explicit user acknowledgment\",\n },\n },\n} as const;\n\nexport const KUMO_DIALOG_DEFAULT_VARIANTS = {\n size: \"base\",\n role: \"dialog\",\n} as const;\n\nexport const KUMO_DIALOG_STYLING = {\n dimensions: {\n sm: {\n width: 350,\n titleSize: 20,\n descSize: 16,\n padding: 16,\n gap: 8,\n buttonSize: \"sm\",\n },\n base: {\n width: 384,\n titleSize: 20,\n descSize: 16,\n padding: 24,\n gap: 16,\n buttonSize: \"base\",\n },\n lg: {\n width: 512,\n titleSize: 20,\n descSize: 16,\n padding: 24,\n gap: 16,\n buttonSize: \"base\",\n },\n xl: {\n width: 768,\n titleSize: 20,\n descSize: 16,\n padding: 24,\n gap: 16,\n buttonSize: \"base\",\n },\n },\n baseTokens: {\n background: \"color-surface\",\n text: \"text-color-surface\",\n borderRadius: 12,\n shadow: \"shadow-m\",\n },\n backdrop: {\n background: \"color-surface-secondary\",\n opacity: 0.8,\n },\n header: {\n title: { fontWeight: 600, color: \"text-color-surface\" },\n closeIcon: { name: \"ph-x\", size: 20, color: \"text-color-muted\" },\n },\n description: {\n fontWeight: 400,\n color: \"text-color-muted\",\n },\n buttons: {\n primary: { background: \"color-primary\", text: \"white\" },\n secondary: { ring: \"color-border\", text: \"text-color-surface\" },\n },\n} as const;\n\n// Derived types from KUMO_DIALOG_VARIANTS\nexport type KumoDialogSize = keyof typeof KUMO_DIALOG_VARIANTS.size;\nexport type KumoDialogRole = keyof typeof KUMO_DIALOG_VARIANTS.role;\n\nexport interface KumoDialogVariantsProps {\n /**\n * Dialog width.\n * - `\"sm\"` — Small (min 288px) for simple confirmations\n * - `\"base\"` — Default (min 384px)\n * - `\"lg\"` — Large (min 512px) for complex content\n * - `\"xl\"` — Extra large (min 768px) for detailed views\n * @default \"base\"\n */\n size?: KumoDialogSize;\n}\n\n// ============================================================================\n// Dialog Role Context\n// ============================================================================\n\nconst DialogRoleContext = createContext<KumoDialogRole>(\"dialog\");\n\nfunction useDialogRole() {\n return useContext(DialogRoleContext);\n}\n\nexport function dialogVariants({\n size = KUMO_DIALOG_DEFAULT_VARIANTS.size,\n}: KumoDialogVariantsProps = {}) {\n return cn(\n // Base styles\n \"shadow-m ring ring-kumo-line fixed top-1/2 left-1/2 w-full sm:w-auto max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-xl bg-kumo-base text-kumo-default duration-150 data-ending-style:scale-90 data-ending-style:opacity-0 data-starting-style:scale-90 data-starting-style:opacity-0\",\n // Apply size from KUMO_DIALOG_VARIANTS\n resolveVariant(KUMO_DIALOG_VARIANTS.size, size, KUMO_DIALOG_DEFAULT_VARIANTS.size).classes,\n );\n}\n\n/**\n * Dialog component props — the modal content panel.\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger render={(p) => <Button {...p}>Open</Button>} />\n * <Dialog className=\"p-8\">\n * <Dialog.Title>Confirm Action</Dialog.Title>\n * <Dialog.Description>Are you sure?</Dialog.Description>\n * <Dialog.Close render={(p) => <Button {...p}>Cancel</Button>} />\n * </Dialog>\n * </Dialog.Root>\n * ```\n */\nexport type DialogProps = KumoDialogVariantsProps & {\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Dialog content (typically Title, Description, Close, and action buttons). */\n children: ReactNode;\n /** Inline styles. */\n style?: CSSProperties;\n /**\n * Container element for the portal. Use this to render the dialog inside\n * a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.\n * @default document.body (or KumoPortalProvider container if set)\n */\n container?: PortalContainer;\n};\n\n/**\n * Modal dialog overlay with backdrop. Compound component with `Dialog.Root`,\n * `Dialog.Trigger`, `Dialog.Title`, `Dialog.Description`, and `Dialog.Close`.\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger render={(p) => <Button {...p}>Delete</Button>} />\n * <Dialog className=\"p-8\">\n * <Dialog.Title>Delete Item</Dialog.Title>\n * <Dialog.Description>This action cannot be undone.</Dialog.Description>\n * <Dialog.Close render={(p) => <Button variant=\"destructive\" {...p}>Delete</Button>} />\n * </Dialog>\n * </Dialog.Root>\n * ```\n *\n * @example Alert Dialog for destructive actions\n * ```tsx\n * <Dialog.Root role=\"alertdialog\">\n * <Dialog.Trigger render={(p) => <Button variant=\"destructive\" {...p}>Delete Project</Button>} />\n * <Dialog className=\"p-8\">\n * <Dialog.Title>Delete Project?</Dialog.Title>\n * <Dialog.Description>This action cannot be undone.</Dialog.Description>\n * <Dialog.Close render={(p) => <Button variant=\"secondary\" {...p}>Cancel</Button>} />\n * <Dialog.Close render={(p) => <Button variant=\"destructive\" {...p}>Delete</Button>} />\n * </Dialog>\n * </Dialog.Root>\n * ```\n */\nfunction DialogContent({\n className,\n children,\n style,\n size = KUMO_DIALOG_DEFAULT_VARIANTS.size,\n container: containerProp,\n}: DialogProps) {\n const role = useDialogRole();\n const contextContainer = usePortalContainer();\n const container = containerProp ?? contextContainer ?? undefined;\n\n const BasePortal =\n role === \"alertdialog\" ? AlertDialogBase.Portal : DialogBase.Portal;\n const BaseBackdrop =\n role === \"alertdialog\" ? AlertDialogBase.Backdrop : DialogBase.Backdrop;\n const BasePopup =\n role === \"alertdialog\" ? AlertDialogBase.Popup : DialogBase.Popup;\n\n return (\n <BasePortal container={container}>\n <BaseBackdrop className=\"fixed inset-0 bg-kumo-recessed opacity-80 transition-all duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0\" />\n <LayerCard\n render={<BasePopup />}\n className={cn(dialogVariants({ size }), className)}\n style={\n {\n transitionProperty: \"scale, opacity\",\n transitionTimingFunction:\n \"var(--default-transition-timing-function)\",\n \"--tw-shadow\":\n \"0 20px 25px -5px rgb(0 0 0 / 0.03), 0 8px 10px -6px rgb(0 0 0 / 0.03)\",\n ...style,\n } as CSSProperties\n }\n >\n {children}\n </LayerCard>\n </BasePortal>\n );\n}\n\n// ============================================================================\n// Dialog Root\n// ============================================================================\n\ntype BaseDialogRootProps = ComponentPropsWithoutRef<typeof DialogBase.Root>;\ntype BaseAlertDialogRootProps = ComponentPropsWithoutRef<\n typeof AlertDialogBase.Root\n>;\n\ntype StandardDialogRootProps = BaseDialogRootProps & {\n /**\n * The ARIA role for the dialog.\n * - `\"dialog\"` — Standard dialog for general-purpose modals. Dismissible via outside click by default.\n * - `\"alertdialog\"` — Alert dialog for destructive or confirmation flows. Not dismissible via outside click.\n *\n * Use `role=\"alertdialog\"` for:\n * - Destructive actions (delete, discard, remove)\n * - Confirmation dialogs requiring explicit user acknowledgment\n * - Actions that cannot be undone\n *\n * @default \"dialog\"\n */\n role?: \"dialog\";\n};\n\ntype AlertDialogRootProps = BaseAlertDialogRootProps & {\n role: \"alertdialog\";\n};\n\nexport type DialogRootProps = StandardDialogRootProps | AlertDialogRootProps;\n\nfunction DialogRoot(props: DialogRootProps) {\n if (props.role === \"alertdialog\") {\n const { children, role, ...rootProps } = props;\n\n return (\n <DialogRoleContext.Provider value={role}>\n <AlertDialogBase.Root {...rootProps}>{children}</AlertDialogBase.Root>\n </DialogRoleContext.Provider>\n );\n }\n\n const {\n children,\n role = KUMO_DIALOG_DEFAULT_VARIANTS.role,\n ...rootProps\n } = props;\n\n return (\n <DialogRoleContext.Provider value={role}>\n <DialogBase.Root {...rootProps}>{children}</DialogBase.Root>\n </DialogRoleContext.Provider>\n );\n}\n\nDialogRoot.displayName = \"Dialog.Root\";\n\n// ============================================================================\n// Dialog Trigger\n// ============================================================================\n\ntype BaseDialogTriggerProps = ComponentPropsWithoutRef<\n typeof DialogBase.Trigger\n>;\ntype BaseAlertDialogTriggerProps = ComponentPropsWithoutRef<\n typeof AlertDialogBase.Trigger\n>;\n\nexport type DialogTriggerProps =\n | BaseDialogTriggerProps\n | BaseAlertDialogTriggerProps;\n\nfunction DialogTrigger({ children, ...props }: DialogTriggerProps) {\n const role = useDialogRole();\n\n if (role === \"alertdialog\") {\n return (\n <AlertDialogBase.Trigger\n data-kumo-component=\"Dialog\"\n data-kumo-part=\"trigger\"\n {...(props as BaseAlertDialogTriggerProps)}\n >\n {children}\n </AlertDialogBase.Trigger>\n );\n }\n\n return (\n <DialogBase.Trigger\n data-kumo-component=\"Dialog\"\n data-kumo-part=\"trigger\"\n {...props}\n >\n {children}\n </DialogBase.Trigger>\n );\n}\n\nDialogTrigger.displayName = \"Dialog.Trigger\";\n\n// ============================================================================\n// Dialog Title\n// ============================================================================\n\ntype BaseDialogTitleProps = ComponentPropsWithoutRef<typeof DialogBase.Title>;\n\nexport type DialogTitleProps = BaseDialogTitleProps;\n\nfunction DialogTitle({ className, ...props }: DialogTitleProps) {\n const role = useDialogRole();\n const BaseTitle =\n role === \"alertdialog\" ? AlertDialogBase.Title : DialogBase.Title;\n return <BaseTitle className={className} {...props} />;\n}\n\nDialogTitle.displayName = \"Dialog.Title\";\n\n// ============================================================================\n// Dialog Description\n// ============================================================================\n\ntype BaseDialogDescriptionProps = ComponentPropsWithoutRef<\n typeof DialogBase.Description\n>;\n\nexport type DialogDescriptionProps = BaseDialogDescriptionProps;\n\nfunction DialogDescription({ className, ...props }: DialogDescriptionProps) {\n const role = useDialogRole();\n const BaseDescription =\n role === \"alertdialog\"\n ? AlertDialogBase.Description\n : DialogBase.Description;\n return <BaseDescription className={className} {...props} />;\n}\n\nDialogDescription.displayName = \"Dialog.Description\";\n\n// ============================================================================\n// Dialog Close\n// ============================================================================\n\ntype BaseDialogCloseProps = ComponentPropsWithoutRef<typeof DialogBase.Close>;\n\nexport type DialogCloseProps = BaseDialogCloseProps;\n\nfunction DialogClose({ children, ...props }: DialogCloseProps) {\n const role = useDialogRole();\n const BaseClose =\n role === \"alertdialog\" ? AlertDialogBase.Close : DialogBase.Close;\n return (\n <BaseClose data-kumo-component=\"Dialog\" data-kumo-part=\"close\" {...props}>\n {children}\n </BaseClose>\n );\n}\n\nDialogClose.displayName = \"Dialog.Close\";\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nconst Dialog = Object.assign(DialogContent, {\n Root: DialogRoot,\n Trigger: DialogTrigger,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n});\n\nexport {\n Dialog,\n DialogRoot,\n DialogTrigger,\n DialogTitle,\n DialogDescription,\n DialogClose,\n};\n"],"names":["KUMO_DIALOG_VARIANTS","KUMO_DIALOG_DEFAULT_VARIANTS","DialogRoleContext","createContext","useDialogRole","useContext","dialogVariants","size","cn","resolveVariant","DialogContent","className","children","style","containerProp","role","contextContainer","usePortalContainer","jsxs","AlertDialogBase.Portal","DialogBase.Portal","jsx","AlertDialogBase.Backdrop","DialogBase.Backdrop","LayerCard","AlertDialogBase.Popup","DialogBase.Popup","DialogRoot","props","rootProps","AlertDialogBase.Root","DialogBase.Root","DialogTrigger","AlertDialogBase.Trigger","DialogBase.Trigger","DialogTitle","BaseTitle","AlertDialogBase.Title","DialogBase.Title","DialogDescription","BaseDescription","AlertDialogBase.Description","DialogBase.Description","DialogClose","BaseClose","AlertDialogBase.Close","DialogBase.Close","Dialog"],"mappings":"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"}