@devalok/shilp-sutra 0.48.0 → 0.49.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.
- package/BREAKING.json +32 -0
- package/MIGRATION.md +891 -881
- package/dist/_chunks/badge-group.js +52 -65
- package/dist/_chunks/badge-group.js.map +1 -1
- package/dist/_chunks/block-shell.js +1 -1
- package/dist/_chunks/chart-container.js +1 -1
- package/dist/_chunks/chat.js +4 -4
- package/dist/_chunks/chat.js.map +1 -1
- package/dist/_chunks/colors.js +2 -2
- package/dist/_chunks/document-preview.js +4 -4
- package/dist/_chunks/emoji-suggestion.js +5 -5
- package/dist/_chunks/emoji-suggestion.js.map +1 -1
- package/dist/_chunks/emoji.js +1 -1
- package/dist/_chunks/field-state.js +8 -0
- package/dist/_chunks/field-state.js.map +1 -0
- package/dist/_chunks/grid-lines.js +1 -1
- package/dist/_chunks/image-preview.js +7 -7
- package/dist/_chunks/keybinding.js +1 -1
- package/dist/_chunks/link-context.js +1 -1
- package/dist/_chunks/mention-suggestion.js +2 -2
- package/dist/_chunks/mention.js +1 -1
- package/dist/_chunks/motion-provider.js +1 -1
- package/dist/_chunks/normalize-icon.js +1 -1
- package/dist/_chunks/oauth-button.js +2 -2
- package/dist/_chunks/popover.js +55 -52
- package/dist/_chunks/popover.js.map +1 -1
- package/dist/_chunks/primitives.js +155 -155
- package/dist/_chunks/primitives.js.map +1 -1
- package/dist/_chunks/shared.js +5 -5
- package/dist/_chunks/success.js +4 -4
- package/dist/_chunks/tiptap.js +8 -8
- package/dist/_chunks/tooltip.js +1 -1
- package/dist/_chunks/tree-view.js +2 -2
- package/dist/_chunks/use-calendar.js +2 -2
- package/dist/_chunks/use-calendar.js.map +1 -1
- package/dist/_chunks/use-controllable-open.js +15 -0
- package/dist/_chunks/use-controllable-open.js.map +1 -0
- package/dist/_chunks/vendor-client.js +1 -1
- package/dist/_chunks/vendor-utils.js +1 -1
- package/dist/ai/block-renderer.js +7 -7
- package/dist/ai/blocks/error.js +1 -1
- package/dist/ai/blocks/index.js +2 -2
- package/dist/ai/blocks/text.js +1 -1
- package/dist/ai/command-bar.js +6 -6
- package/dist/ai/conversation.js +2 -2
- package/dist/ai/index.js +3 -3
- package/dist/composed/avatar-group.js +1 -1
- package/dist/composed/bulk-action-bar.js +1 -1
- package/dist/composed/command-palette.js +9 -9
- package/dist/composed/command-palette.js.map +1 -1
- package/dist/composed/confirm-dialog.js +3 -3
- package/dist/composed/confirm-dialog.js.map +1 -1
- package/dist/composed/content-card.js +1 -1
- package/dist/composed/date-picker/index.js +13 -13
- package/dist/composed/date-picker/index.js.map +1 -1
- package/dist/composed/emoji-picker.js +4 -4
- package/dist/composed/empty-state.js +1 -1
- package/dist/composed/error-boundary.js +1 -1
- package/dist/composed/error-boundary.js.map +1 -1
- package/dist/composed/extensions/emoji-node.js +1 -1
- package/dist/composed/extensions/emoji-suggestion.js +1 -1
- package/dist/composed/file-preview.js +14 -14
- package/dist/composed/filter-bar.js +1 -1
- package/dist/composed/index.d.ts +3 -1
- package/dist/composed/index.d.ts.map +1 -1
- package/dist/composed/index.js +4 -3
- package/dist/composed/loading-skeleton.js +15 -15
- package/dist/composed/loading-skeleton.js.map +1 -1
- package/dist/composed/multi-select-popover.js +3 -3
- package/dist/composed/page-header.d.ts.map +1 -1
- package/dist/composed/page-header.js +32 -45
- package/dist/composed/page-header.js.map +1 -1
- package/dist/composed/page-skeletons.js +19 -19
- package/dist/composed/page-skeletons.js.map +1 -1
- package/dist/composed/priority-indicator.js +1 -1
- package/dist/composed/responsive-modal.d.ts +39 -0
- package/dist/composed/responsive-modal.d.ts.map +1 -0
- package/dist/composed/responsive-modal.js +212 -0
- package/dist/composed/responsive-modal.js.map +1 -0
- package/dist/composed/rich-chat-input.js +445 -445
- package/dist/composed/rich-chat-input.js.map +1 -1
- package/dist/composed/rich-text-editor.js +29 -29
- package/dist/composed/rich-text-editor.js.map +1 -1
- package/dist/composed/schedule-view.d.ts +1 -1
- package/dist/composed/schedule-view.d.ts.map +1 -1
- package/dist/composed/schedule-view.js +48 -54
- package/dist/composed/schedule-view.js.map +1 -1
- package/dist/composed/status-badge.d.ts +13 -11
- package/dist/composed/status-badge.d.ts.map +1 -1
- package/dist/composed/status-badge.js +54 -130
- package/dist/composed/status-badge.js.map +1 -1
- package/dist/motion/index.js +2 -2
- package/dist/shell/bottom-navbar.js +3 -3
- package/dist/shell/bottom-navbar.js.map +1 -1
- package/dist/shell/index.js +2 -2
- package/dist/shell/link-context.js +2 -2
- package/dist/shell/notification-center.js +3 -3
- package/dist/shell/sidebar.js +2 -2
- package/dist/shell/top-bar.js +2 -2
- package/dist/shell/top-bar.js.map +1 -1
- package/dist/tokens/semantic.css +8 -1
- package/dist/ui/accordion.js +11 -11
- package/dist/ui/alert-dialog.js +34 -34
- package/dist/ui/alert.js +1 -1
- package/dist/ui/aspect-ratio.js +1 -1
- package/dist/ui/autocomplete.js +7 -7
- package/dist/ui/avatar.d.ts.map +1 -1
- package/dist/ui/avatar.js +84 -79
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/badge-group.js +1 -1
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/badge.js +1 -1
- package/dist/ui/banner.js +1 -1
- package/dist/ui/breadcrumb.d.ts +0 -1
- package/dist/ui/breadcrumb.d.ts.map +1 -1
- package/dist/ui/breadcrumb.js +58 -35
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/button.js +3 -3
- package/dist/ui/card.js +1 -1
- package/dist/ui/charts/area-chart.js +6 -6
- package/dist/ui/charts/bar-chart.js +6 -6
- package/dist/ui/charts/chart-container.js +1 -1
- package/dist/ui/charts/gauge-chart.js +2 -2
- package/dist/ui/charts/index.js +2 -2
- package/dist/ui/charts/line-chart.js +6 -6
- package/dist/ui/charts/pie-chart.js +5 -5
- package/dist/ui/charts/radar-chart.js +5 -5
- package/dist/ui/charts/sparkline.js +2 -2
- package/dist/ui/chat/index.js +2 -2
- package/dist/ui/checkbox.d.ts +4 -2
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +33 -28
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/collapsible.js +5 -5
- package/dist/ui/color-input.js +4 -4
- package/dist/ui/combobox.d.ts +3 -0
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +137 -132
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/context-menu.js +32 -32
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +49 -46
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/dot.d.ts +38 -0
- package/dist/ui/dot.d.ts.map +1 -0
- package/dist/ui/dot.js +92 -0
- package/dist/ui/dot.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/ui/dropdown-menu.js +81 -76
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/hover-card.js +6 -6
- package/dist/ui/icon-button.js +1 -1
- package/dist/ui/index.d.ts +3 -2
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +67 -67
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/input-otp.js +1 -1
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/input.d.ts +4 -2
- package/dist/ui/input.d.ts.map +1 -1
- package/dist/ui/input.js +39 -38
- package/dist/ui/input.js.map +1 -1
- package/dist/ui/label.js +1 -1
- package/dist/ui/lib/field-state.d.ts +21 -0
- package/dist/ui/lib/field-state.d.ts.map +1 -0
- package/dist/ui/lib/use-controllable-open.d.ts +32 -0
- package/dist/ui/lib/use-controllable-open.d.ts.map +1 -0
- package/dist/ui/lib/utils.js +4 -4
- package/dist/ui/link.js +1 -1
- package/dist/ui/menubar.js +53 -53
- package/dist/ui/navigation-menu.js +27 -27
- package/dist/ui/number-input.d.ts +4 -2
- package/dist/ui/number-input.d.ts.map +1 -1
- package/dist/ui/number-input.js +52 -51
- package/dist/ui/number-input.js.map +1 -1
- package/dist/ui/oauth-button/index.js +2 -2
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/popover.d.ts.map +1 -1
- package/dist/ui/popover.js +2 -2
- package/dist/ui/progress.d.ts +66 -42
- package/dist/ui/progress.d.ts.map +1 -1
- package/dist/ui/progress.js +144 -40
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/radio.d.ts +6 -2
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +44 -33
- package/dist/ui/radio.js.map +1 -1
- package/dist/ui/segmented-control.js +1 -1
- package/dist/ui/select.d.ts +1 -1
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +56 -55
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/separator.js +2 -2
- package/dist/ui/separator.js.map +1 -1
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +56 -53
- package/dist/ui/sheet.js.map +1 -1
- package/dist/ui/sidebar.js +6 -6
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.js +8 -8
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/split-button.js +3 -3
- package/dist/ui/stat-card.d.ts.map +1 -1
- package/dist/ui/stat-card.js +123 -126
- package/dist/ui/stat-card.js.map +1 -1
- package/dist/ui/stat-flash.js +1 -1
- package/dist/ui/stepper.js +1 -1
- package/dist/ui/surface.js +2 -2
- package/dist/ui/switch.d.ts +3 -1
- package/dist/ui/switch.d.ts.map +1 -1
- package/dist/ui/switch.js +32 -27
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table-row-link.js +1 -1
- package/dist/ui/tabs.js +13 -13
- package/dist/ui/text.js +1 -1
- package/dist/ui/textarea.d.ts +3 -3
- package/dist/ui/textarea.d.ts.map +1 -1
- package/dist/ui/textarea.js +19 -18
- package/dist/ui/textarea.js.map +1 -1
- package/dist/ui/toast.js +2 -2
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toggle-group.js +1 -1
- package/dist/ui/toggle.js +2 -2
- package/dist/ui/tooltip.d.ts.map +1 -1
- package/dist/ui/tooltip.js +37 -34
- package/dist/ui/tooltip.js.map +1 -1
- package/dist/ui/tree-view/index.js +2 -2
- package/docs/components/ai/ai-command-provider.md +46 -0
- package/docs/components/ai/block-renderer.md +59 -0
- package/docs/components/ai/command-bar.md +78 -0
- package/docs/components/ai/conversation.md +59 -0
- package/docs/components/ai/devadoot-icon.md +41 -0
- package/docs/components/composed/page-header.md +1 -1
- package/docs/components/composed/responsive-modal.md +66 -0
- package/docs/components/composed/schedule-view.md +6 -2
- package/docs/components/ui/breadcrumb.md +1 -1
- package/docs/components/ui/checkbox.md +4 -1
- package/docs/components/ui/combobox.md +4 -0
- package/docs/components/ui/dot.md +61 -0
- package/docs/components/ui/progress.md +54 -16
- package/docs/components/ui/radio.md +6 -2
- package/docs/components/ui/select.md +9 -5
- package/docs/components/ui/switch.md +4 -1
- package/docs/components/ui/table.md +2 -1
- package/llms.txt +11 -3
- package/make-kit/components/form.md +2 -2
- package/make-kit/components/icon.md +2 -2
- package/make-kit/components/overview.md +2 -2
- package/make-kit/components/select.md +1 -1
- package/make-kit/components/table.md +1 -1
- package/mcp-manifest.json +2656 -1068
- package/mcp-manifest.schema.json +18 -0
- package/package.json +11 -6
- package/skill/SKILL.md +1 -1
- package/skill/references/components.md +11 -3
- package/dist/ui/status-dot.d.ts +0 -27
- package/dist/ui/status-dot.d.ts.map +0 -1
- package/dist/ui/status-dot.js +0 -68
- package/dist/ui/status-dot.js.map +0 -1
- package/docs/components/ui/status-dot.md +0 -35
package/dist/_chunks/shared.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { Range as e, Root$3 as t, Thumb$1 as n, Track as r } from "./primitives.js";
|
|
3
3
|
import { tweens as i } from "../ui/lib/motion.js";
|
|
4
4
|
import { cn as a } from "../ui/lib/utils.js";
|
|
5
5
|
import { Icon as o } from "../ui/icon.js";
|
|
@@ -61,7 +61,7 @@ function _() {
|
|
|
61
61
|
}
|
|
62
62
|
function v({ value: i, max: o = 100, step: s = 1, onValueChange: u, tone: d = "light", ariaLabel: f, disabled: p, className: m }) {
|
|
63
63
|
let h = d === "dark";
|
|
64
|
-
return /* @__PURE__ */ l(
|
|
64
|
+
return /* @__PURE__ */ l(t, {
|
|
65
65
|
className: a("group/ms relative flex h-3 w-full cursor-pointer touch-none select-none items-center", m),
|
|
66
66
|
value: [i],
|
|
67
67
|
max: o,
|
|
@@ -71,8 +71,8 @@ function v({ value: i, max: o = 100, step: s = 1, onValueChange: u, tone: d = "l
|
|
|
71
71
|
"aria-label": f,
|
|
72
72
|
children: [/* @__PURE__ */ c(r, {
|
|
73
73
|
className: a("relative h-1 w-full grow overflow-hidden rounded-pill", h ? "bg-white/30" : "bg-surface-sunken"),
|
|
74
|
-
children: /* @__PURE__ */ c(
|
|
75
|
-
}), /* @__PURE__ */ c(
|
|
74
|
+
children: /* @__PURE__ */ c(e, { className: a("absolute h-full rounded-pill", h ? "bg-white" : "bg-accent-9") })
|
|
75
|
+
}), /* @__PURE__ */ c(n, { className: a("block h-3 w-3 rounded-pill shadow-raised outline-hidden transition-[opacity,transform] duration-fast-02", "opacity-0 group-hover/ms:opacity-100 focus:opacity-100 active:scale-110", "focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-offset-1", h ? "bg-white focus-visible:ring-white" : "bg-accent-9 focus-visible:ring-accent-9") })]
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
function y({ volume: e, muted: t, onVolumeChange: n, onMuteToggle: r, variant: i = "light" }) {
|
|
@@ -110,4 +110,4 @@ function b(e) {
|
|
|
110
110
|
return t > 0 ? `${t}:${n.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}` : `${n}:${r.toString().padStart(2, "0")}`;
|
|
111
111
|
}
|
|
112
112
|
//#endregion
|
|
113
|
-
export {
|
|
113
|
+
export { h as ErrorFallback, v as MediaSlider, g as Toolbar, _ as ToolbarDivider, y as VolumeControl, b as formatTime };
|
package/dist/_chunks/success.js
CHANGED
|
@@ -4,14 +4,14 @@ import { cn as r } from "../ui/lib/utils.js";
|
|
|
4
4
|
import { Icon as i } from "../ui/icon.js";
|
|
5
5
|
import { Alert as a } from "../ui/alert.js";
|
|
6
6
|
import { Skeleton as o } from "../ui/skeleton.js";
|
|
7
|
-
import {
|
|
7
|
+
import { BadgeCompound as s } from "./badge-group.js";
|
|
8
8
|
import { Button as c } from "../ui/button.js";
|
|
9
9
|
import { Collapsible as l, CollapsibleContent as u, CollapsibleTrigger as d } from "../ui/collapsible.js";
|
|
10
10
|
import { Table as f, TableBody as p, TableCaption as m, TableCell as h, TableHead as g, TableHeader as _, TableRow as v } from "../ui/table.js";
|
|
11
11
|
import { Separator as y } from "../ui/separator.js";
|
|
12
12
|
import { StatCard as b } from "../ui/stat-card.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import { useMotion as x } from "./motion-provider.js";
|
|
14
|
+
import { BlockShell as S } from "./block-shell.js";
|
|
15
15
|
import * as C from "react";
|
|
16
16
|
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
17
17
|
import { IconCircle as E, IconCircleCheck as D, IconCircleX as O } from "@tabler/icons-react";
|
|
@@ -394,4 +394,4 @@ var B = 5e3, V = C.memo(function({ data: e, blockId: t, confidence: n, onAction:
|
|
|
394
394
|
});
|
|
395
395
|
V.displayName = "SuccessBlock";
|
|
396
396
|
//#endregion
|
|
397
|
-
export {
|
|
397
|
+
export { M as BlockTable, N as ConfirmBlock, P as DividerBlock, F as InfoBlock, R as LoadingBlock, z as StatRowBlock, V as SuccessBlock };
|
package/dist/_chunks/tiptap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { arrow as e, autoPlacement as t, computePosition as n, flip$1 as r, hide as i, inline as a, offset$1 as o, shift$1 as s, size$1 as c } from "./primitives.js";
|
|
3
3
|
import l, { createContext as u, createElement as d, createRef as f, forwardRef as p, memo as m, useContext as h, useDebugValue as g, useEffect as _, useLayoutEffect as v, useMemo as y, useRef as b, useState as x, version as S } from "react";
|
|
4
4
|
import { Fragment as ee, jsx as C, jsxs as te } from "react/jsx-runtime";
|
|
5
5
|
import ne, { createPortal as re, flushSync as ie } from "react-dom";
|
|
@@ -13117,8 +13117,8 @@ var vh = class {
|
|
|
13117
13117
|
}, this.element.tabIndex = 0, o && (this.shouldShow = o), this.element.addEventListener("mousedown", this.mousedownHandler, { capture: !0 }), this.view.dom.addEventListener("dragstart", this.dragstartHandler), this.editor.on("focus", this.focusHandler), this.editor.on("blur", this.blurHandler), this.editor.on("transaction", this.transactionHandler), window.addEventListener("resize", this.resizeHandler), this.scrollTarget.addEventListener("scroll", this.resizeHandler), this.update(n, n.state), this.getShouldShow() && (this.show(), this.updatePosition());
|
|
13118
13118
|
}
|
|
13119
13119
|
get middlewares() {
|
|
13120
|
-
let
|
|
13121
|
-
return this.floatingUIOptions.flip &&
|
|
13120
|
+
let n = [];
|
|
13121
|
+
return this.floatingUIOptions.flip && n.push(r(typeof this.floatingUIOptions.flip == "boolean" ? void 0 : this.floatingUIOptions.flip)), this.floatingUIOptions.shift && n.push(s(typeof this.floatingUIOptions.shift == "boolean" ? void 0 : this.floatingUIOptions.shift)), this.floatingUIOptions.offset && n.push(o(typeof this.floatingUIOptions.offset == "boolean" ? void 0 : this.floatingUIOptions.offset)), this.floatingUIOptions.arrow && n.push(e(this.floatingUIOptions.arrow)), this.floatingUIOptions.size && n.push(c(typeof this.floatingUIOptions.size == "boolean" ? void 0 : this.floatingUIOptions.size)), this.floatingUIOptions.autoPlacement && n.push(t(typeof this.floatingUIOptions.autoPlacement == "boolean" ? void 0 : this.floatingUIOptions.autoPlacement)), this.floatingUIOptions.hide && n.push(i(typeof this.floatingUIOptions.hide == "boolean" ? void 0 : this.floatingUIOptions.hide)), this.floatingUIOptions.inline && n.push(a(typeof this.floatingUIOptions.inline == "boolean" ? void 0 : this.floatingUIOptions.inline)), n;
|
|
13122
13122
|
}
|
|
13123
13123
|
get virtualElement() {
|
|
13124
13124
|
let { selection: e } = this.editor.state, t = this.getReferencedVirtualElement?.call(this);
|
|
@@ -13149,7 +13149,7 @@ var vh = class {
|
|
|
13149
13149
|
updatePosition() {
|
|
13150
13150
|
if (!this.isVisible) return;
|
|
13151
13151
|
let e = this.virtualElement;
|
|
13152
|
-
e &&
|
|
13152
|
+
e && n(e, this.element, {
|
|
13153
13153
|
placement: this.floatingUIOptions.placement,
|
|
13154
13154
|
strategy: this.floatingUIOptions.strategy,
|
|
13155
13155
|
middleware: this.middlewares
|
|
@@ -13287,8 +13287,8 @@ var bh = class {
|
|
|
13287
13287
|
return fu(e, { textSerializers: pu(this.editor.schema) });
|
|
13288
13288
|
}
|
|
13289
13289
|
get middlewares() {
|
|
13290
|
-
let
|
|
13291
|
-
return this.floatingUIOptions.flip &&
|
|
13290
|
+
let n = [];
|
|
13291
|
+
return this.floatingUIOptions.flip && n.push(r(typeof this.floatingUIOptions.flip == "boolean" ? void 0 : this.floatingUIOptions.flip)), this.floatingUIOptions.shift && n.push(s(typeof this.floatingUIOptions.shift == "boolean" ? void 0 : this.floatingUIOptions.shift)), this.floatingUIOptions.offset && n.push(o(typeof this.floatingUIOptions.offset == "boolean" ? void 0 : this.floatingUIOptions.offset)), this.floatingUIOptions.arrow && n.push(e(this.floatingUIOptions.arrow)), this.floatingUIOptions.size && n.push(c(typeof this.floatingUIOptions.size == "boolean" ? void 0 : this.floatingUIOptions.size)), this.floatingUIOptions.autoPlacement && n.push(t(typeof this.floatingUIOptions.autoPlacement == "boolean" ? void 0 : this.floatingUIOptions.autoPlacement)), this.floatingUIOptions.hide && n.push(i(typeof this.floatingUIOptions.hide == "boolean" ? void 0 : this.floatingUIOptions.hide)), this.floatingUIOptions.inline && n.push(a(typeof this.floatingUIOptions.inline == "boolean" ? void 0 : this.floatingUIOptions.inline)), n;
|
|
13292
13292
|
}
|
|
13293
13293
|
getShouldShow(e) {
|
|
13294
13294
|
let { state: t } = this.view, { selection: n } = t, { ranges: r } = n, i = Math.min(...r.map((e) => e.$from.pos)), a = Math.max(...r.map((e) => e.$to.pos));
|
|
@@ -13312,7 +13312,7 @@ var bh = class {
|
|
|
13312
13312
|
}
|
|
13313
13313
|
updatePosition() {
|
|
13314
13314
|
let { selection: e } = this.editor.state, t = Iu(this.view, e.from, e.to);
|
|
13315
|
-
|
|
13315
|
+
n({
|
|
13316
13316
|
getBoundingClientRect: () => t,
|
|
13317
13317
|
getClientRects: () => [t]
|
|
13318
13318
|
}, this.element, {
|
|
@@ -15823,4 +15823,4 @@ var ty = "listItem", ny = "textStyle", ry = /^(\d+)\.\s$/, iy = J.create({
|
|
|
15823
15823
|
}
|
|
15824
15824
|
});
|
|
15825
15825
|
//#endregion
|
|
15826
|
-
export {
|
|
15826
|
+
export { qh as BubbleMenu, sp as CharacterCount, vm as EditorContent, q as Extension, cy as ListKit, J as Node3, jm as NodeViewWrapper, fp as Placeholder, P as PluginKey, zm as ReactNodeViewRenderer, vy as index_default, _y as index_default$1, wf as index_default$2, bf as index_default$3, hf as index_default$4, pf as index_default$5, K as mergeAttributes, Em as useEditor, xm as useEditorState };
|
package/dist/_chunks/tooltip.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { IconProvider as e } from "../ui/icon-context.js";
|
|
3
3
|
import { cn as t } from "../ui/lib/utils.js";
|
|
4
4
|
import { Icon as n } from "../ui/icon.js";
|
|
5
|
-
import {
|
|
5
|
+
import { normalizeIcon as r } from "./normalize-icon.js";
|
|
6
6
|
import { Checkbox as i } from "../ui/checkbox.js";
|
|
7
7
|
import * as a from "react";
|
|
8
8
|
import { useCallback as o, useState as s } from "react";
|
|
@@ -238,4 +238,4 @@ var _ = a.forwardRef(({ itemId: o, label: s, icon: d, secondaryLabel: f, actions
|
|
|
238
238
|
});
|
|
239
239
|
_.displayName = "TreeItem";
|
|
240
240
|
//#endregion
|
|
241
|
-
export {
|
|
241
|
+
export { _ as TreeItem, g as TreeView, d as useTree };
|
|
@@ -136,7 +136,7 @@ var T = [
|
|
|
136
136
|
className: "flex gap-px justify-center absolute bottom-[2px] left-0 right-0",
|
|
137
137
|
children: m.slice(0, 3).map((e, t) => /* @__PURE__ */ i("span", {
|
|
138
138
|
"data-event-dot": !0,
|
|
139
|
-
className: "h-
|
|
139
|
+
className: "h-ds-02 w-ds-02 rounded-pill",
|
|
140
140
|
style: { backgroundColor: e.color ?? "var(--color-accent-9)" }
|
|
141
141
|
}, t))
|
|
142
142
|
})]
|
|
@@ -160,4 +160,4 @@ function D(e) {
|
|
|
160
160
|
};
|
|
161
161
|
}
|
|
162
162
|
//#endregion
|
|
163
|
-
export { E as
|
|
163
|
+
export { E as CalendarGrid, D as useCalendar };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-calendar.js","names":[],"sources":["../../src/composed/date-picker/calendar-grid.tsx","../../src/composed/date-picker/use-calendar.ts"],"sourcesContent":["'use client'\n\nimport { IconChevronLeft, IconChevronRight } from '@tabler/icons-react'\nimport {\n addDays,\n addMonths,\n endOfMonth,\n endOfWeek,\n format,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n lastDayOfMonth,\n startOfDay,\n startOfMonth,\n startOfWeek,\n subMonths,\n} from 'date-fns'\nimport * as React from 'react'\n\nimport { Icon } from '../../ui/icon'\nimport { cn } from '../../ui/lib/utils'\n\nconst WEEKDAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n\nexport interface CalendarEvent {\n date: Date\n color?: string\n label?: string\n}\n\nexport interface CalendarGridProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onSelect'> {\n currentMonth: Date\n selected?: Date | null\n rangeStart?: Date | null\n rangeEnd?: Date | null\n hoverDate?: Date | null\n onSelect: (date: Date) => void\n onHover?: (date: Date | null) => void\n onMonthChange: (date: Date) => void\n onHeaderClick?: () => void\n disabledDates?: (date: Date) => boolean\n minDate?: Date\n maxDate?: Date\n /** Hide the previous-month navigation arrow */\n hidePrevNav?: boolean\n /** Hide the next-month navigation arrow */\n hideNextNav?: boolean\n /** Events to display as dot indicators on dates */\n events?: CalendarEvent[]\n}\n\nexport const CalendarGrid = React.forwardRef<HTMLDivElement, CalendarGridProps>(\n function CalendarGrid({\n currentMonth,\n selected,\n rangeStart,\n rangeEnd,\n hoverDate,\n onSelect,\n onHover,\n onMonthChange,\n onHeaderClick,\n disabledDates,\n minDate,\n maxDate,\n hidePrevNav,\n hideNextNav,\n events,\n className,\n ...props\n}, forwardedRef) {\n const gridRef = React.useRef<HTMLDivElement>(null)\n\n const eventsByDate = React.useMemo(() => {\n const map = new Map<string, CalendarEvent[]>()\n if (!events) return map\n for (const evt of events) {\n const key = format(evt.date, 'yyyy-MM-dd')\n const arr = map.get(key) ?? []\n arr.push(evt)\n map.set(key, arr)\n }\n return map\n }, [events])\n\n const monthStart = startOfMonth(currentMonth)\n const monthEnd = endOfMonth(currentMonth)\n const calendarStart = startOfWeek(monthStart)\n const calendarEnd = endOfWeek(monthEnd)\n\n const days: Date[] = []\n let day = calendarStart\n while (day <= calendarEnd) {\n days.push(day)\n day = addDays(day, 1)\n }\n\n const isDateDisabled = (date: Date): boolean => {\n if (disabledDates?.(date)) return true\n if (minDate && isBefore(date, startOfDay(minDate))) return true\n if (maxDate && isAfter(date, startOfDay(maxDate))) return true\n return false\n }\n\n const isInRange = (date: Date) => {\n if (rangeStart && rangeEnd) {\n const start = isBefore(rangeStart, rangeEnd) ? rangeStart : rangeEnd\n const end = isAfter(rangeEnd, rangeStart) ? rangeEnd : rangeStart\n return isWithinInterval(date, { start, end })\n }\n if (rangeStart && hoverDate) {\n const start = isBefore(rangeStart, hoverDate) ? rangeStart : hoverDate\n const end = isAfter(hoverDate, rangeStart) ? hoverDate : rangeStart\n return isWithinInterval(date, { start, end })\n }\n return false\n }\n\n const isRangeEdge = (date: Date) => {\n if (rangeStart && isSameDay(date, rangeStart)) return true\n if (rangeEnd && isSameDay(date, rangeEnd)) return true\n return false\n }\n\n const focusDate = (target: Date) => {\n if (!gridRef.current) return\n const dateStr = format(target, 'yyyy-MM-dd')\n const btn = gridRef.current.querySelector<HTMLButtonElement>(\n `[data-date=\"${dateStr}\"]`,\n )\n if (btn) {\n btn.focus()\n } else {\n // Date is in a different month — navigate there and focus after render\n onMonthChange(startOfMonth(target))\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement\n const dateStr = target.getAttribute('data-date')\n if (!dateStr) return\n\n const current = new Date(dateStr + 'T00:00:00')\n let next: Date | null = null\n\n switch (e.key) {\n case 'ArrowLeft':\n next = addDays(current, -1)\n break\n case 'ArrowRight':\n next = addDays(current, 1)\n break\n case 'ArrowUp':\n next = addDays(current, -7)\n break\n case 'ArrowDown':\n next = addDays(current, 7)\n break\n case 'Home':\n next = startOfMonth(current)\n break\n case 'End':\n next = lastDayOfMonth(current)\n break\n case 'Enter':\n case ' ': {\n e.preventDefault()\n if (!isDateDisabled(current) && isSameMonth(current, currentMonth)) {\n onSelect(current)\n }\n return\n }\n default:\n return\n }\n\n if (next) {\n e.preventDefault()\n focusDate(next)\n }\n }\n\n return (\n <div ref={forwardedRef} {...props} className={cn(\"w-[252px]\", className)}>\n <div className=\"flex items-center justify-between px-ds-02 pb-ds-04\">\n {hidePrevNav ? (\n <span className=\"h-ds-xs-plus w-ds-xs-plus\" />\n ) : (\n <button\n type=\"button\"\n onClick={() => onMonthChange(subMonths(currentMonth, 1))}\n className=\"inline-flex h-ds-xs-plus w-ds-xs-plus items-center justify-center rounded-control text-surface-fg-subtle transition-colors duration-fast-01 ease-productive-standard hover:bg-surface-raised-hover hover:text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9\"\n aria-label=\"Previous month\"\n >\n <Icon icon={IconChevronLeft} size=\"sm\" stroke=\"light\" />\n </button>\n )}\n <button\n type=\"button\"\n onClick={onHeaderClick}\n className={cn(\n 'text-ds-md font-semibold text-surface-fg',\n onHeaderClick &&\n 'cursor-pointer rounded-control px-ds-02 transition-colors duration-fast-01 ease-productive-standard hover:bg-surface-raised-hover',\n )}\n aria-label=\"Switch to month/year view\"\n >\n {format(currentMonth, 'MMMM yyyy')}\n </button>\n {hideNextNav ? (\n <span className=\"h-ds-xs-plus w-ds-xs-plus\" />\n ) : (\n <button\n type=\"button\"\n onClick={() => onMonthChange(addMonths(currentMonth, 1))}\n className=\"inline-flex h-ds-xs-plus w-ds-xs-plus items-center justify-center rounded-control text-surface-fg-subtle transition-colors duration-fast-01 ease-productive-standard hover:bg-surface-raised-hover hover:text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9\"\n aria-label=\"Next month\"\n >\n <Icon icon={IconChevronRight} size=\"sm\" stroke=\"light\" />\n </button>\n )}\n </div>\n\n <div\n ref={gridRef}\n className=\"grid grid-cols-7 gap-0\"\n role=\"grid\"\n tabIndex={0}\n aria-label=\"Calendar\"\n onKeyDown={handleKeyDown}\n >\n {WEEKDAYS.map((wd) => (\n <div\n key={wd}\n role=\"columnheader\"\n className=\"flex h-ds-sm items-center justify-center text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle\"\n >\n {wd}\n </div>\n ))}\n\n {days.map((d, i) => {\n const inMonth = isSameMonth(d, currentMonth)\n const disabled = isDateDisabled(d)\n const isSelected = selected && isSameDay(d, selected)\n const inRange = isInRange(d)\n const edge = isRangeEdge(d)\n const isToday = isSameDay(d, new Date())\n const dateKey = format(d, 'yyyy-MM-dd')\n const dayEvents = eventsByDate.get(dateKey) ?? []\n\n return (\n <button\n key={i}\n type=\"button\"\n role=\"gridcell\"\n data-date={dateKey}\n tabIndex={inMonth && !disabled ? 0 : -1}\n disabled={!inMonth || disabled}\n onClick={() => {\n if (inMonth && !disabled) onSelect(d)\n }}\n onMouseEnter={() => onHover?.(d)}\n onMouseLeave={() => onHover?.(null)}\n aria-label={format(d, 'EEEE, MMMM d, yyyy')}\n aria-selected={isSelected || edge || undefined}\n aria-disabled={!inMonth || disabled || undefined}\n className={cn(\n 'relative flex h-ds-sm w-ds-sm-plus items-center justify-center rounded-control text-ds-md font-body transition-colors duration-fast-01 ease-productive-standard',\n !inMonth && 'pointer-events-none opacity-0',\n inMonth && disabled && 'opacity-action-disabled pointer-events-none cursor-not-allowed',\n inMonth && !disabled && !isSelected && !edge && !inRange &&\n 'text-surface-fg hover:bg-surface-raised-hover',\n inRange && !edge &&\n 'rounded-none bg-surface-raised-hover text-surface-fg',\n (isSelected || edge) &&\n 'bg-accent-9 text-accent-fg hover:bg-accent-10',\n isToday && !isSelected && !edge && !disabled &&\n 'font-semibold text-accent-11',\n )}\n >\n {format(d, 'd')}\n {dayEvents.length > 0 && (\n <span className=\"flex gap-px justify-center absolute bottom-[2px] left-0 right-0\">\n {dayEvents.slice(0, 3).map((evt, idx) => (\n <span\n key={idx}\n data-event-dot\n className=\"h-[4px] w-[4px] rounded-pill\"\n style={{ backgroundColor: evt.color ?? 'var(--color-accent-9)' }}\n />\n ))}\n </span>\n )}\n </button>\n )\n })}\n </div>\n </div>\n )\n},\n)\n\nCalendarGrid.displayName = 'CalendarGrid'\n","'use client'\n\nimport { addMonths, setMonth, setYear,subMonths } from 'date-fns'\nimport { useState } from 'react'\n\nexport function useCalendar(initialMonth?: Date) {\n const [currentMonth, setCurrentMonth] = useState(initialMonth ?? new Date())\n\n const goToPreviousMonth = () => setCurrentMonth((prev) => subMonths(prev, 1))\n const goToNextMonth = () => setCurrentMonth((prev) => addMonths(prev, 1))\n const goToMonth = (month: number) =>\n setCurrentMonth((prev) => setMonth(prev, month))\n const goToYear = (year: number) =>\n setCurrentMonth((prev) => setYear(prev, year))\n\n return {\n currentMonth,\n setCurrentMonth,\n goToPreviousMonth,\n goToNextMonth,\n goToMonth,\n goToYear,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-calendar.js","names":[],"sources":["../../src/composed/date-picker/calendar-grid.tsx","../../src/composed/date-picker/use-calendar.ts"],"sourcesContent":["'use client'\n\nimport { IconChevronLeft, IconChevronRight } from '@tabler/icons-react'\nimport {\n addDays,\n addMonths,\n endOfMonth,\n endOfWeek,\n format,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n lastDayOfMonth,\n startOfDay,\n startOfMonth,\n startOfWeek,\n subMonths,\n} from 'date-fns'\nimport * as React from 'react'\n\nimport { Icon } from '../../ui/icon'\nimport { cn } from '../../ui/lib/utils'\n\nconst WEEKDAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n\nexport interface CalendarEvent {\n date: Date\n color?: string\n label?: string\n}\n\nexport interface CalendarGridProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onSelect'> {\n currentMonth: Date\n selected?: Date | null\n rangeStart?: Date | null\n rangeEnd?: Date | null\n hoverDate?: Date | null\n onSelect: (date: Date) => void\n onHover?: (date: Date | null) => void\n onMonthChange: (date: Date) => void\n onHeaderClick?: () => void\n disabledDates?: (date: Date) => boolean\n minDate?: Date\n maxDate?: Date\n /** Hide the previous-month navigation arrow */\n hidePrevNav?: boolean\n /** Hide the next-month navigation arrow */\n hideNextNav?: boolean\n /** Events to display as dot indicators on dates */\n events?: CalendarEvent[]\n}\n\nexport const CalendarGrid = React.forwardRef<HTMLDivElement, CalendarGridProps>(\n function CalendarGrid({\n currentMonth,\n selected,\n rangeStart,\n rangeEnd,\n hoverDate,\n onSelect,\n onHover,\n onMonthChange,\n onHeaderClick,\n disabledDates,\n minDate,\n maxDate,\n hidePrevNav,\n hideNextNav,\n events,\n className,\n ...props\n}, forwardedRef) {\n const gridRef = React.useRef<HTMLDivElement>(null)\n\n const eventsByDate = React.useMemo(() => {\n const map = new Map<string, CalendarEvent[]>()\n if (!events) return map\n for (const evt of events) {\n const key = format(evt.date, 'yyyy-MM-dd')\n const arr = map.get(key) ?? []\n arr.push(evt)\n map.set(key, arr)\n }\n return map\n }, [events])\n\n const monthStart = startOfMonth(currentMonth)\n const monthEnd = endOfMonth(currentMonth)\n const calendarStart = startOfWeek(monthStart)\n const calendarEnd = endOfWeek(monthEnd)\n\n const days: Date[] = []\n let day = calendarStart\n while (day <= calendarEnd) {\n days.push(day)\n day = addDays(day, 1)\n }\n\n const isDateDisabled = (date: Date): boolean => {\n if (disabledDates?.(date)) return true\n if (minDate && isBefore(date, startOfDay(minDate))) return true\n if (maxDate && isAfter(date, startOfDay(maxDate))) return true\n return false\n }\n\n const isInRange = (date: Date) => {\n if (rangeStart && rangeEnd) {\n const start = isBefore(rangeStart, rangeEnd) ? rangeStart : rangeEnd\n const end = isAfter(rangeEnd, rangeStart) ? rangeEnd : rangeStart\n return isWithinInterval(date, { start, end })\n }\n if (rangeStart && hoverDate) {\n const start = isBefore(rangeStart, hoverDate) ? rangeStart : hoverDate\n const end = isAfter(hoverDate, rangeStart) ? hoverDate : rangeStart\n return isWithinInterval(date, { start, end })\n }\n return false\n }\n\n const isRangeEdge = (date: Date) => {\n if (rangeStart && isSameDay(date, rangeStart)) return true\n if (rangeEnd && isSameDay(date, rangeEnd)) return true\n return false\n }\n\n const focusDate = (target: Date) => {\n if (!gridRef.current) return\n const dateStr = format(target, 'yyyy-MM-dd')\n const btn = gridRef.current.querySelector<HTMLButtonElement>(\n `[data-date=\"${dateStr}\"]`,\n )\n if (btn) {\n btn.focus()\n } else {\n // Date is in a different month — navigate there and focus after render\n onMonthChange(startOfMonth(target))\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement\n const dateStr = target.getAttribute('data-date')\n if (!dateStr) return\n\n const current = new Date(dateStr + 'T00:00:00')\n let next: Date | null = null\n\n switch (e.key) {\n case 'ArrowLeft':\n next = addDays(current, -1)\n break\n case 'ArrowRight':\n next = addDays(current, 1)\n break\n case 'ArrowUp':\n next = addDays(current, -7)\n break\n case 'ArrowDown':\n next = addDays(current, 7)\n break\n case 'Home':\n next = startOfMonth(current)\n break\n case 'End':\n next = lastDayOfMonth(current)\n break\n case 'Enter':\n case ' ': {\n e.preventDefault()\n if (!isDateDisabled(current) && isSameMonth(current, currentMonth)) {\n onSelect(current)\n }\n return\n }\n default:\n return\n }\n\n if (next) {\n e.preventDefault()\n focusDate(next)\n }\n }\n\n return (\n <div ref={forwardedRef} {...props} className={cn(\"w-[252px]\", className)}>\n <div className=\"flex items-center justify-between px-ds-02 pb-ds-04\">\n {hidePrevNav ? (\n <span className=\"h-ds-xs-plus w-ds-xs-plus\" />\n ) : (\n <button\n type=\"button\"\n onClick={() => onMonthChange(subMonths(currentMonth, 1))}\n className=\"inline-flex h-ds-xs-plus w-ds-xs-plus items-center justify-center rounded-control text-surface-fg-subtle transition-colors duration-fast-01 ease-productive-standard hover:bg-surface-raised-hover hover:text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9\"\n aria-label=\"Previous month\"\n >\n <Icon icon={IconChevronLeft} size=\"sm\" stroke=\"light\" />\n </button>\n )}\n <button\n type=\"button\"\n onClick={onHeaderClick}\n className={cn(\n 'text-ds-md font-semibold text-surface-fg',\n onHeaderClick &&\n 'cursor-pointer rounded-control px-ds-02 transition-colors duration-fast-01 ease-productive-standard hover:bg-surface-raised-hover',\n )}\n aria-label=\"Switch to month/year view\"\n >\n {format(currentMonth, 'MMMM yyyy')}\n </button>\n {hideNextNav ? (\n <span className=\"h-ds-xs-plus w-ds-xs-plus\" />\n ) : (\n <button\n type=\"button\"\n onClick={() => onMonthChange(addMonths(currentMonth, 1))}\n className=\"inline-flex h-ds-xs-plus w-ds-xs-plus items-center justify-center rounded-control text-surface-fg-subtle transition-colors duration-fast-01 ease-productive-standard hover:bg-surface-raised-hover hover:text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9\"\n aria-label=\"Next month\"\n >\n <Icon icon={IconChevronRight} size=\"sm\" stroke=\"light\" />\n </button>\n )}\n </div>\n\n <div\n ref={gridRef}\n className=\"grid grid-cols-7 gap-0\"\n role=\"grid\"\n tabIndex={0}\n aria-label=\"Calendar\"\n onKeyDown={handleKeyDown}\n >\n {WEEKDAYS.map((wd) => (\n <div\n key={wd}\n role=\"columnheader\"\n className=\"flex h-ds-sm items-center justify-center text-ds-xs font-semibold uppercase tracking-wider text-surface-fg-subtle\"\n >\n {wd}\n </div>\n ))}\n\n {days.map((d, i) => {\n const inMonth = isSameMonth(d, currentMonth)\n const disabled = isDateDisabled(d)\n const isSelected = selected && isSameDay(d, selected)\n const inRange = isInRange(d)\n const edge = isRangeEdge(d)\n const isToday = isSameDay(d, new Date())\n const dateKey = format(d, 'yyyy-MM-dd')\n const dayEvents = eventsByDate.get(dateKey) ?? []\n\n return (\n <button\n key={i}\n type=\"button\"\n role=\"gridcell\"\n data-date={dateKey}\n tabIndex={inMonth && !disabled ? 0 : -1}\n disabled={!inMonth || disabled}\n onClick={() => {\n if (inMonth && !disabled) onSelect(d)\n }}\n onMouseEnter={() => onHover?.(d)}\n onMouseLeave={() => onHover?.(null)}\n aria-label={format(d, 'EEEE, MMMM d, yyyy')}\n aria-selected={isSelected || edge || undefined}\n aria-disabled={!inMonth || disabled || undefined}\n className={cn(\n 'relative flex h-ds-sm w-ds-sm-plus items-center justify-center rounded-control text-ds-md font-body transition-colors duration-fast-01 ease-productive-standard',\n !inMonth && 'pointer-events-none opacity-0',\n inMonth && disabled && 'opacity-action-disabled pointer-events-none cursor-not-allowed',\n inMonth && !disabled && !isSelected && !edge && !inRange &&\n 'text-surface-fg hover:bg-surface-raised-hover',\n inRange && !edge &&\n 'rounded-none bg-surface-raised-hover text-surface-fg',\n (isSelected || edge) &&\n 'bg-accent-9 text-accent-fg hover:bg-accent-10',\n isToday && !isSelected && !edge && !disabled &&\n 'font-semibold text-accent-11',\n )}\n >\n {format(d, 'd')}\n {dayEvents.length > 0 && (\n <span className=\"flex gap-px justify-center absolute bottom-[2px] left-0 right-0\">\n {dayEvents.slice(0, 3).map((evt, idx) => (\n <span\n key={idx}\n data-event-dot\n className=\"h-ds-02 w-ds-02 rounded-pill\"\n style={{ backgroundColor: evt.color ?? 'var(--color-accent-9)' }}\n />\n ))}\n </span>\n )}\n </button>\n )\n })}\n </div>\n </div>\n )\n},\n)\n\nCalendarGrid.displayName = 'CalendarGrid'\n","'use client'\n\nimport { addMonths, setMonth, setYear,subMonths } from 'date-fns'\nimport { useState } from 'react'\n\nexport function useCalendar(initialMonth?: Date) {\n const [currentMonth, setCurrentMonth] = useState(initialMonth ?? new Date())\n\n const goToPreviousMonth = () => setCurrentMonth((prev) => subMonths(prev, 1))\n const goToNextMonth = () => setCurrentMonth((prev) => addMonths(prev, 1))\n const goToMonth = (month: number) =>\n setCurrentMonth((prev) => setMonth(prev, month))\n const goToYear = (year: number) =>\n setCurrentMonth((prev) => setYear(prev, year))\n\n return {\n currentMonth,\n setCurrentMonth,\n goToPreviousMonth,\n goToNextMonth,\n goToMonth,\n goToYear,\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as e from "react";
|
|
3
|
+
//#region src/ui/lib/use-controllable-open.ts
|
|
4
|
+
function t({ open: t, defaultOpen: n = !1, onOpenChange: r }) {
|
|
5
|
+
let [i, a] = e.useState(n), o = t !== void 0, s = o ? t : i, c = e.useCallback((e) => {
|
|
6
|
+
o || a(e), r?.(e);
|
|
7
|
+
}, [o, r]);
|
|
8
|
+
return {
|
|
9
|
+
open: s,
|
|
10
|
+
setOpen: c,
|
|
11
|
+
close: e.useCallback(() => c(!1), [c])
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { t as useControllableOpen };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-controllable-open.js","names":[],"sources":["../../src/ui/lib/use-controllable-open.ts"],"sourcesContent":["import * as React from 'react'\n\n/**\n * Options for {@link useControllableOpen}. Mirrors the standard Radix open-state\n * prop trio so a component can spread its own props straight in.\n */\nexport interface UseControllableOpenOptions {\n /** Controlled open value. When defined, the hook is in controlled mode. */\n open?: boolean\n /** Initial open value in uncontrolled mode. @default false */\n defaultOpen?: boolean\n /** Called on every open/close request (both modes). */\n onOpenChange?: (open: boolean) => void\n}\n\nexport interface ControllableOpen {\n /** The effective open state (controlled value, or internal state). */\n open: boolean\n /** Request a new open state — updates internal state (uncontrolled) and always fires `onOpenChange`. */\n setOpen: (next: boolean) => void\n /** Convenience: `setOpen(false)`. Stable across renders. */\n close: () => void\n}\n\n/**\n * Controlled/uncontrolled open-state machine shared by every overlay\n * (Dialog, Popover, Sheet, Tooltip, DropdownMenu, …). The effective `open` is\n * kept in React state even in controlled mode so overlays can drive\n * `AnimatePresence` exit animations from it.\n *\n * Extracted so the identical block isn't hand-copied per overlay — one fix\n * site instead of six.\n */\nexport function useControllableOpen({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n}: UseControllableOpenOptions): ControllableOpen {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen)\n const isControlled = controlledOpen !== undefined\n const open = isControlled ? controlledOpen : uncontrolledOpen\n\n const setOpen = React.useCallback(\n (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next)\n onOpenChange?.(next)\n },\n [isControlled, onOpenChange],\n )\n\n const close = React.useCallback(() => setOpen(false), [setOpen])\n\n return { open, setOpen, close }\n}\n"],"mappings":";;AAiCA,SAAgB,EAAoB,EAClC,MAAM,GACN,iBAAc,IACd,mBAC+C;CAC/C,IAAM,CAAC,GAAkB,KAAuB,EAAM,SAAS,EAAY,EACrE,IAAe,MAAmB,KAAA,GAClC,IAAO,IAAe,IAAiB,GAEvC,IAAU,EAAM,aACnB,MAAkB;AAEjB,EADK,KAAc,EAAoB,EAAK,EAC5C,IAAe,EAAK;IAEtB,CAAC,GAAc,EAAa,CAC7B;AAID,QAAO;EAAE;EAAM;EAAS,OAFV,EAAM,kBAAkB,EAAQ,GAAM,EAAE,CAAC,EAAQ,CAAC;EAEjC"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { springs as e } from "../ui/lib/motion.js";
|
|
3
3
|
import { cn as t } from "../ui/lib/utils.js";
|
|
4
4
|
import { Alert as n } from "../ui/alert.js";
|
|
5
|
-
import {
|
|
5
|
+
import { useMotion as r } from "../_chunks/motion-provider.js";
|
|
6
6
|
import { useAICommand as i } from "./ai-command-provider.js";
|
|
7
|
-
import { a,
|
|
7
|
+
import { BlockTable as a, ConfirmBlock as o, DividerBlock as s, InfoBlock as c, LoadingBlock as l, StatRowBlock as u, SuccessBlock as d } from "../_chunks/success.js";
|
|
8
8
|
import { ErrorBlock as f } from "./blocks/error.js";
|
|
9
9
|
import { TextBlock as p } from "./blocks/text.js";
|
|
10
10
|
import * as m from "react";
|
|
@@ -13,14 +13,14 @@ import { motion as g } from "framer-motion";
|
|
|
13
13
|
//#region src/ai/block-renderer.tsx
|
|
14
14
|
var _ = {
|
|
15
15
|
text: p,
|
|
16
|
-
table:
|
|
17
|
-
confirm:
|
|
16
|
+
table: a,
|
|
17
|
+
confirm: o,
|
|
18
18
|
success: d,
|
|
19
19
|
error: f,
|
|
20
|
-
info:
|
|
20
|
+
info: c,
|
|
21
21
|
loading: l,
|
|
22
|
-
divider:
|
|
23
|
-
stat_row:
|
|
22
|
+
divider: s,
|
|
23
|
+
stat_row: u
|
|
24
24
|
};
|
|
25
25
|
function v({ data: e, type: t }) {
|
|
26
26
|
return /* @__PURE__ */ h(n, {
|
package/dist/ai/blocks/error.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Alert as e } from "../../ui/alert.js";
|
|
3
|
-
import { t } from "../../_chunks/block-shell.js";
|
|
3
|
+
import { BlockShell as t } from "../../_chunks/block-shell.js";
|
|
4
4
|
import * as n from "react";
|
|
5
5
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
6
6
|
import a from "react-markdown";
|
package/dist/ai/blocks/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
2
|
+
import { BlockTable as e, ConfirmBlock as t, DividerBlock as n, InfoBlock as r, LoadingBlock as i, StatRowBlock as a, SuccessBlock as o } from "../../_chunks/success.js";
|
|
3
|
+
export { e as BlockTable, t as ConfirmBlock, n as DividerBlock, r as InfoBlock, i as LoadingBlock, a as StatRowBlock, o as SuccessBlock };
|
package/dist/ai/blocks/text.js
CHANGED
package/dist/ai/command-bar.js
CHANGED
|
@@ -3,11 +3,11 @@ import { IconProvider as e } from "../ui/icon-context.js";
|
|
|
3
3
|
import { springs as t, tweens as n } from "../ui/lib/motion.js";
|
|
4
4
|
import { cn as r } from "../ui/lib/utils.js";
|
|
5
5
|
import { Icon as i } from "../ui/icon.js";
|
|
6
|
-
import {
|
|
6
|
+
import { normalizeIcon as a } from "../_chunks/normalize-icon.js";
|
|
7
7
|
import { Dialog as o, DialogContentRaw as s, DialogDescription as ee, DialogOverlay as te, DialogPortal as ne, DialogTitle as re } from "../ui/dialog.js";
|
|
8
8
|
import { VisuallyHidden as ie } from "../ui/visually-hidden.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { useMotion as c } from "../_chunks/motion-provider.js";
|
|
10
|
+
import { getIsMac as ae, getModifierDisplay as oe, matchesKeybinding as se } from "../_chunks/keybinding.js";
|
|
11
11
|
import * as l from "react";
|
|
12
12
|
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
13
13
|
import { IconArrowDown as ce, IconArrowUp as le, IconCornerDownLeft as ue, IconLoader2 as de, IconSearch as fe, IconX as pe } from "@tabler/icons-react";
|
|
@@ -115,7 +115,7 @@ var h = l.forwardRef(function({ onSubmit: u, state: h = "idle", groups: g = [],
|
|
|
115
115
|
let M = l.useCallback((e) => {
|
|
116
116
|
let t = typeof e == "function" ? e(j.current) : e;
|
|
117
117
|
k || De(t), Te?.(t);
|
|
118
|
-
}, [k, Te]), [N, P] = l.useState(""), [F, I] = l.useState(-1), [L, Oe] = l.useState(""), [R, ke] = l.useState(!1), [z, Ae] = l.useState(!1), B = l.useRef(null), je = l.useRef(null), V = l.useId(), Me = `command-bar-listbox-${V}`, { reducedMotion: H } = c(), U = { duration: 0 }, Ne = l.useMemo(() =>
|
|
118
|
+
}, [k, Te]), [N, P] = l.useState(""), [F, I] = l.useState(-1), [L, Oe] = l.useState(""), [R, ke] = l.useState(!1), [z, Ae] = l.useState(!1), B = l.useRef(null), je = l.useRef(null), V = l.useId(), Me = `command-bar-listbox-${V}`, { reducedMotion: H } = c(), U = { duration: 0 }, Ne = l.useMemo(() => ae(), []), W = l.useMemo(() => Array.isArray(y) ? y : [y], [y]), G = g.length > 0, K = l.useMemo(() => {
|
|
119
119
|
if (!G) return [];
|
|
120
120
|
if (!N.trim()) return g;
|
|
121
121
|
let e = N.toLowerCase();
|
|
@@ -136,7 +136,7 @@ var h = l.forwardRef(function({ onSubmit: u, state: h = "idle", groups: g = [],
|
|
|
136
136
|
if (v !== "floating" || S === !1) return;
|
|
137
137
|
let e = Array.isArray(S) ? S : [S];
|
|
138
138
|
function t(t) {
|
|
139
|
-
for (let n of e) if (
|
|
139
|
+
for (let n of e) if (se(t, n)) {
|
|
140
140
|
t.preventDefault(), M((e) => !e);
|
|
141
141
|
return;
|
|
142
142
|
}
|
|
@@ -258,7 +258,7 @@ var h = l.forwardRef(function({ onSubmit: u, state: h = "idle", groups: g = [],
|
|
|
258
258
|
exit: H ? void 0 : { opacity: 0 },
|
|
259
259
|
transition: J,
|
|
260
260
|
className: "hidden shrink-0 select-none rounded-control border border-surface-border-strong bg-surface-raised px-ds-02b py-ds-01 text-ds-sm font-medium text-surface-fg-subtle shadow-kbd sm:inline-flex",
|
|
261
|
-
children: [
|
|
261
|
+
children: [oe(Ne), "J"]
|
|
262
262
|
}) }) : null
|
|
263
263
|
]
|
|
264
264
|
})
|
package/dist/ai/conversation.js
CHANGED
|
@@ -3,8 +3,8 @@ import { IconProvider as e } from "../ui/icon-context.js";
|
|
|
3
3
|
import { durations as t, springs as n } from "../ui/lib/motion.js";
|
|
4
4
|
import { cn as r } from "../ui/lib/utils.js";
|
|
5
5
|
import { Icon as i } from "../ui/icon.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { normalizeIcon as a } from "../_chunks/normalize-icon.js";
|
|
7
|
+
import { useMotion as o } from "../_chunks/motion-provider.js";
|
|
8
8
|
import { useAICommand as s } from "./ai-command-provider.js";
|
|
9
9
|
import { BlockRenderer as c } from "./block-renderer.js";
|
|
10
10
|
import * as l from "react";
|
package/dist/ai/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn as e } from "../ui/lib/utils.js";
|
|
3
|
-
import {
|
|
3
|
+
import { useMotion as t } from "../_chunks/motion-provider.js";
|
|
4
4
|
import { AICommandProvider as n, useAICommand as r } from "./ai-command-provider.js";
|
|
5
5
|
import { CommandBar as i } from "./command-bar.js";
|
|
6
|
-
import { a,
|
|
6
|
+
import { BlockTable as a, ConfirmBlock as o, DividerBlock as s, InfoBlock as c, LoadingBlock as l, StatRowBlock as u, SuccessBlock as d } from "../_chunks/success.js";
|
|
7
7
|
import { AIConversation as f } from "./conversation.js";
|
|
8
8
|
import * as p from "react";
|
|
9
9
|
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
@@ -180,4 +180,4 @@ var k = p.memo(function({ state: n = "idle", size: r = 20, className: i }) {
|
|
|
180
180
|
});
|
|
181
181
|
k.displayName = "DevadootIcon";
|
|
182
182
|
//#endregion
|
|
183
|
-
export { n as AICommandProvider, f as AIConversation,
|
|
183
|
+
export { n as AICommandProvider, f as AIConversation, a as BlockTable, i as CommandBar, o as ConfirmBlock, k as DevadootIcon, s as DividerBlock, c as InfoBlock, l as LoadingBlock, u as StatRowBlock, d as SuccessBlock, r as useAICommand };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { springs as e } from "../ui/lib/motion.js";
|
|
3
|
-
import { t } from "../_chunks/vendor-utils.js";
|
|
3
|
+
import { cva as t } from "../_chunks/vendor-utils.js";
|
|
4
4
|
import { cn as n } from "../ui/lib/utils.js";
|
|
5
5
|
import { Avatar as r, AvatarFallback as i, AvatarImage as a } from "../ui/avatar.js";
|
|
6
6
|
import { Tooltip as o, TooltipContent as s, TooltipProvider as c, TooltipTrigger as l } from "../ui/tooltip.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { springs as e } from "../ui/lib/motion.js";
|
|
3
3
|
import { cn as t } from "../ui/lib/utils.js";
|
|
4
4
|
import { Icon as n } from "../ui/icon.js";
|
|
5
|
-
import {
|
|
5
|
+
import { BadgeCompound as r } from "../_chunks/badge-group.js";
|
|
6
6
|
import { Button as i } from "../ui/button.js";
|
|
7
7
|
import * as a from "react";
|
|
8
8
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
@@ -3,11 +3,11 @@ import { IconProvider as e } from "../ui/icon-context.js";
|
|
|
3
3
|
import { springs as t, tweens as n } from "../ui/lib/motion.js";
|
|
4
4
|
import { cn as r } from "../ui/lib/utils.js";
|
|
5
5
|
import { Icon as i } from "../ui/icon.js";
|
|
6
|
-
import {
|
|
6
|
+
import { normalizeIcon as a } from "../_chunks/normalize-icon.js";
|
|
7
7
|
import { Dialog as o, DialogContentRaw as s, DialogDescription as c, DialogOverlay as l, DialogPortal as ee, DialogTitle as u } from "../ui/dialog.js";
|
|
8
8
|
import { VisuallyHidden as te } from "../ui/visually-hidden.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { useMotion as ne } from "../_chunks/motion-provider.js";
|
|
10
|
+
import { getIsMac as d, getModifierDisplay as f, matchesKeybinding as p } from "../_chunks/keybinding.js";
|
|
11
11
|
import * as m from "react";
|
|
12
12
|
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
13
13
|
import { IconArrowDown as re, IconArrowUp as ie, IconCornerDownLeft as _, IconSearch as ae } from "@tabler/icons-react";
|
|
@@ -28,7 +28,7 @@ var b = m.forwardRef(function({ groups: b = [], placeholder: x = "Search or jump
|
|
|
28
28
|
let R = m.useCallback((e) => {
|
|
29
29
|
let t = typeof e == "function" ? e(L.current) : e;
|
|
30
30
|
N || F(t), E?.(t);
|
|
31
|
-
}, [N, E]), [z, B] = m.useState(""), [V, H] = m.useState(0), U = m.useRef(null), W = m.useRef(null), G = m.useId(), K = `command-palette-listbox-${G}`, { reducedMotion: q } = ne(), J = { duration: 0 }, ue = m.useMemo(() =>
|
|
31
|
+
}, [N, E]), [z, B] = m.useState(""), [V, H] = m.useState(0), U = m.useRef(null), W = m.useRef(null), G = m.useId(), K = `command-palette-listbox-${G}`, { reducedMotion: q } = ne(), J = { duration: 0 }, ue = m.useMemo(() => d(), []), Y = m.useMemo(() => {
|
|
32
32
|
if (!z.trim()) return b;
|
|
33
33
|
let e = z.toLowerCase();
|
|
34
34
|
return b.map((t) => ({
|
|
@@ -40,7 +40,7 @@ var b = m.forwardRef(function({ groups: b = [], placeholder: x = "Search or jump
|
|
|
40
40
|
if (D === !1) return;
|
|
41
41
|
let e = Array.isArray(D) ? D : [D];
|
|
42
42
|
function t(t) {
|
|
43
|
-
for (let n of e) if (
|
|
43
|
+
for (let n of e) if (p(t, n)) {
|
|
44
44
|
t.preventDefault(), R((e) => !e);
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
@@ -228,8 +228,8 @@ var b = m.forwardRef(function({ groups: b = [], placeholder: x = "Search or jump
|
|
|
228
228
|
n.shortcut && /* @__PURE__ */ h("span", {
|
|
229
229
|
className: "flex shrink-0 items-center gap-ds-01",
|
|
230
230
|
children: y(n.shortcut).map((e, t) => /* @__PURE__ */ h("kbd", {
|
|
231
|
-
className: r("inline-flex min-w-
|
|
232
|
-
children: e === "Ctrl" || e === "ctrl" ?
|
|
231
|
+
className: r("inline-flex min-w-ds-05b items-center justify-center rounded border px-ds-02b py-ds-01 text-ds-xs font-medium shadow-kbd transition-colors duration-fast-02 ease-productive-standard", s ? "bg-accent-2 text-accent-11 border-accent-6" : "bg-surface-raised text-surface-fg-subtle border-surface-border-strong"),
|
|
232
|
+
children: e === "Ctrl" || e === "ctrl" ? f(ue) : e
|
|
233
233
|
}, t))
|
|
234
234
|
}),
|
|
235
235
|
/* @__PURE__ */ h(oe, { children: s && /* @__PURE__ */ h(v.span, {
|
|
@@ -275,14 +275,14 @@ var b = m.forwardRef(function({ groups: b = [], placeholder: x = "Search or jump
|
|
|
275
275
|
})
|
|
276
276
|
})]
|
|
277
277
|
}) : e.keys === "↵" ? /* @__PURE__ */ h("kbd", {
|
|
278
|
-
className: "inline-flex h-
|
|
278
|
+
className: "inline-flex h-ds-05b items-center justify-center rounded-control border border-surface-border-strong bg-surface-raised px-ds-02b shadow-kbd",
|
|
279
279
|
children: /* @__PURE__ */ h(i, {
|
|
280
280
|
icon: _,
|
|
281
281
|
size: "xs",
|
|
282
282
|
className: "text-surface-fg-subtle"
|
|
283
283
|
})
|
|
284
284
|
}) : /* @__PURE__ */ h("kbd", {
|
|
285
|
-
className: "inline-flex h-
|
|
285
|
+
className: "inline-flex h-ds-05b items-center justify-center rounded-control border border-surface-border-strong bg-surface-raised px-ds-02b text-ds-xs font-medium text-surface-fg-subtle shadow-kbd",
|
|
286
286
|
children: e.keys
|
|
287
287
|
}), /* @__PURE__ */ h("span", {
|
|
288
288
|
className: "text-ds-xs text-surface-fg-subtle",
|