@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
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
/**
|
|
3
|
+
* Options for {@link useControllableOpen}. Mirrors the standard Radix open-state
|
|
4
|
+
* prop trio so a component can spread its own props straight in.
|
|
5
|
+
*/
|
|
6
|
+
export interface UseControllableOpenOptions {
|
|
7
|
+
/** Controlled open value. When defined, the hook is in controlled mode. */
|
|
8
|
+
open?: boolean;
|
|
9
|
+
/** Initial open value in uncontrolled mode. @default false */
|
|
10
|
+
defaultOpen?: boolean;
|
|
11
|
+
/** Called on every open/close request (both modes). */
|
|
12
|
+
onOpenChange?: (open: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface ControllableOpen {
|
|
15
|
+
/** The effective open state (controlled value, or internal state). */
|
|
16
|
+
open: boolean;
|
|
17
|
+
/** Request a new open state — updates internal state (uncontrolled) and always fires `onOpenChange`. */
|
|
18
|
+
setOpen: (next: boolean) => void;
|
|
19
|
+
/** Convenience: `setOpen(false)`. Stable across renders. */
|
|
20
|
+
close: () => void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Controlled/uncontrolled open-state machine shared by every overlay
|
|
24
|
+
* (Dialog, Popover, Sheet, Tooltip, DropdownMenu, …). The effective `open` is
|
|
25
|
+
* kept in React state even in controlled mode so overlays can drive
|
|
26
|
+
* `AnimatePresence` exit animations from it.
|
|
27
|
+
*
|
|
28
|
+
* Extracted so the identical block isn't hand-copied per overlay — one fix
|
|
29
|
+
* site instead of six.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useControllableOpen({ open: controlledOpen, defaultOpen, onOpenChange, }: UseControllableOpenOptions): ControllableOpen;
|
|
32
|
+
//# sourceMappingURL=use-controllable-open.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-controllable-open.d.ts","sourceRoot":"","sources":["../../../src/ui/lib/use-controllable-open.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uDAAuD;IACvD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,IAAI,EAAE,OAAO,CAAA;IACb,wGAAwG;IACxG,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EAAE,cAAc,EACpB,WAAmB,EACnB,YAAY,GACb,EAAE,0BAA0B,GAAG,gBAAgB,CAgB/C"}
|
package/dist/ui/lib/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { clsx as e, extendTailwindMerge as t } from "../../_chunks/vendor-utils.js";
|
|
2
2
|
//#region src/ui/lib/utils.ts
|
|
3
|
-
var n =
|
|
3
|
+
var n = t({ extend: {
|
|
4
4
|
theme: { spacing: [
|
|
5
5
|
"ds-01",
|
|
6
6
|
"ds-02",
|
|
@@ -33,8 +33,8 @@ var n = e({ extend: {
|
|
|
33
33
|
"6xl"
|
|
34
34
|
] }] }
|
|
35
35
|
} });
|
|
36
|
-
function r(...
|
|
37
|
-
return n(t
|
|
36
|
+
function r(...t) {
|
|
37
|
+
return n(e(t));
|
|
38
38
|
}
|
|
39
39
|
//#endregion
|
|
40
40
|
export { r as cn };
|
package/dist/ui/link.js
CHANGED
package/dist/ui/menubar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { CheckboxItem2 as e, Content2 as t, Group2 as n, Item3 as r, ItemIndicator2 as i, Label2 as a, Menu as o, Portal2 as s, RadioGroup2 as c, RadioItem2 as l, Root3 as u, Separator2 as d, Sub2 as f, SubContent2 as p, SubTrigger2 as m, Trigger$2 as h } from "../_chunks/primitives.js";
|
|
3
3
|
import { springs as g, tweens as _ } from "./lib/motion.js";
|
|
4
4
|
import { cn as v } from "./lib/utils.js";
|
|
5
5
|
import { Icon as y } from "./icon.js";
|
|
@@ -8,53 +8,53 @@ import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
|
8
8
|
import { IconCheck as C, IconChevronRight as w, IconCircle as T } from "@tabler/icons-react";
|
|
9
9
|
import { AnimatePresence as E, motion as D } from "framer-motion";
|
|
10
10
|
//#region src/ui/menubar.tsx
|
|
11
|
-
var O = b.createContext(!1), k = (e) => /* @__PURE__ */ x(
|
|
11
|
+
var O = b.createContext(!1), k = (e) => /* @__PURE__ */ x(o, { ...e });
|
|
12
12
|
k.displayName = "MenubarMenu";
|
|
13
|
-
var A =
|
|
14
|
-
let [i,
|
|
15
|
-
|
|
16
|
-
}, [
|
|
13
|
+
var A = n, j = s, M = ({ open: e, defaultOpen: t = !1, onOpenChange: n, ...r }) => {
|
|
14
|
+
let [i, a] = b.useState(t), o = e !== void 0, s = o ? e : i, c = b.useCallback((e) => {
|
|
15
|
+
o || a(e), n?.(e);
|
|
16
|
+
}, [o, n]);
|
|
17
17
|
return /* @__PURE__ */ x(O.Provider, {
|
|
18
|
-
value:
|
|
19
|
-
children: /* @__PURE__ */ x(
|
|
20
|
-
open:
|
|
21
|
-
onOpenChange:
|
|
18
|
+
value: s,
|
|
19
|
+
children: /* @__PURE__ */ x(f, {
|
|
20
|
+
open: s,
|
|
21
|
+
onOpenChange: c,
|
|
22
22
|
...r
|
|
23
23
|
})
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
26
|
M.displayName = "MenubarSub";
|
|
27
|
-
var N =
|
|
28
|
-
ref:
|
|
29
|
-
className: v("flex h-ds-sm-plus items-center space-x-ds-02 rounded-overlay bg-surface-overlay p-ds-02 shadow-raised",
|
|
30
|
-
...
|
|
27
|
+
var N = c, P = b.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ x(u, {
|
|
28
|
+
ref: n,
|
|
29
|
+
className: v("flex h-ds-sm-plus items-center space-x-ds-02 rounded-overlay bg-surface-overlay p-ds-02 shadow-raised", e),
|
|
30
|
+
...t
|
|
31
31
|
}));
|
|
32
|
-
P.displayName =
|
|
33
|
-
var F = b.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ x(
|
|
32
|
+
P.displayName = u.displayName;
|
|
33
|
+
var F = b.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ x(h, {
|
|
34
34
|
ref: n,
|
|
35
35
|
className: v("flex cursor-default select-none items-center rounded-control px-ds-04 py-ds-02 text-ds-md font-medium outline-hidden transition-colors hover:bg-surface-raised-hover focus-visible:bg-surface-raised-hover data-[state=open]:bg-surface-raised-hover", e),
|
|
36
36
|
...t
|
|
37
37
|
}));
|
|
38
|
-
F.displayName =
|
|
39
|
-
var I = b.forwardRef(({ className: e, inset:
|
|
40
|
-
ref:
|
|
41
|
-
className: v("flex cursor-default select-none items-center gap-ds-03 rounded-control px-ds-03 py-ds-02b text-ds-md outline-hidden focus:bg-surface-raised data-[state=open]:bg-surface-raised [&_svg]:pointer-events-none [&_svg]:h-ico-sm [&_svg]:w-ico-sm [&_svg]:shrink-0",
|
|
42
|
-
...
|
|
38
|
+
F.displayName = h.displayName;
|
|
39
|
+
var I = b.forwardRef(({ className: e, inset: t, children: n, ...r }, i) => /* @__PURE__ */ S(m, {
|
|
40
|
+
ref: i,
|
|
41
|
+
className: v("flex cursor-default select-none items-center gap-ds-03 rounded-control px-ds-03 py-ds-02b text-ds-md outline-hidden focus:bg-surface-raised data-[state=open]:bg-surface-raised [&_svg]:pointer-events-none [&_svg]:h-ico-sm [&_svg]:w-ico-sm [&_svg]:shrink-0", t && "pl-ds-07", e),
|
|
42
|
+
...r,
|
|
43
43
|
children: [/* @__PURE__ */ x("span", {
|
|
44
44
|
className: "min-w-0 truncate",
|
|
45
|
-
children:
|
|
45
|
+
children: n
|
|
46
46
|
}), /* @__PURE__ */ x(y, {
|
|
47
47
|
icon: w,
|
|
48
48
|
size: "sm",
|
|
49
49
|
className: "ml-auto shrink-0"
|
|
50
50
|
})]
|
|
51
51
|
}));
|
|
52
|
-
I.displayName =
|
|
53
|
-
var L = b.forwardRef(({ className: e, children: t, ...
|
|
54
|
-
ref:
|
|
52
|
+
I.displayName = m.displayName;
|
|
53
|
+
var L = b.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ x(E, { children: b.useContext(O) && /* @__PURE__ */ x(p, {
|
|
54
|
+
ref: r,
|
|
55
55
|
forceMount: !0,
|
|
56
56
|
asChild: !0,
|
|
57
|
-
...
|
|
57
|
+
...n,
|
|
58
58
|
children: /* @__PURE__ */ x(D.div, {
|
|
59
59
|
initial: {
|
|
60
60
|
opacity: 0,
|
|
@@ -76,62 +76,62 @@ var L = b.forwardRef(({ className: e, children: t, ...r }, i) => /* @__PURE__ */
|
|
|
76
76
|
children: t
|
|
77
77
|
})
|
|
78
78
|
}) }));
|
|
79
|
-
L.displayName =
|
|
80
|
-
var R = b.forwardRef(({ className: e, align:
|
|
81
|
-
ref:
|
|
82
|
-
align:
|
|
83
|
-
alignOffset:
|
|
84
|
-
sideOffset:
|
|
79
|
+
L.displayName = p.displayName;
|
|
80
|
+
var R = b.forwardRef(({ className: e, align: n = "start", alignOffset: r = -4, sideOffset: i = 8, children: a, ...o }, c) => /* @__PURE__ */ x(s, { children: /* @__PURE__ */ x(t, {
|
|
81
|
+
ref: c,
|
|
82
|
+
align: n,
|
|
83
|
+
alignOffset: r,
|
|
84
|
+
sideOffset: i,
|
|
85
85
|
className: v("z-popover min-w-[12rem] rounded-overlay bg-surface-overlay p-ds-02 text-surface-fg shadow-floating", "data-[state=open]:animate-popover-in data-[state=closed]:animate-popover-out", e),
|
|
86
|
-
...
|
|
87
|
-
children:
|
|
86
|
+
...o,
|
|
87
|
+
children: a
|
|
88
88
|
}) }));
|
|
89
|
-
R.displayName =
|
|
90
|
-
var z = b.forwardRef(({ className: e, inset: t, ...n },
|
|
91
|
-
ref:
|
|
89
|
+
R.displayName = t.displayName;
|
|
90
|
+
var z = b.forwardRef(({ className: e, inset: t, ...n }, i) => /* @__PURE__ */ x(r, {
|
|
91
|
+
ref: i,
|
|
92
92
|
className: v("relative flex cursor-default select-none items-center gap-ds-03 rounded-control px-ds-03 py-ds-02b text-ds-md outline-hidden transition-colors focus:bg-surface-raised focus:text-surface-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-action-disabled [&>svg]:h-ico-sm [&>svg]:w-ico-sm [&>svg]:shrink-0", t && "pl-ds-07", e),
|
|
93
93
|
...n
|
|
94
94
|
}));
|
|
95
|
-
z.displayName =
|
|
96
|
-
var B = b.forwardRef(({ className:
|
|
97
|
-
ref:
|
|
98
|
-
className: v("relative flex cursor-default select-none items-center rounded-control py-ds-02b pl-ds-07 pr-ds-03 text-ds-md outline-hidden transition-colors focus:bg-surface-raised focus:text-surface-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-action-disabled",
|
|
99
|
-
checked:
|
|
100
|
-
...
|
|
95
|
+
z.displayName = r.displayName;
|
|
96
|
+
var B = b.forwardRef(({ className: t, children: n, checked: r, ...a }, o) => /* @__PURE__ */ S(e, {
|
|
97
|
+
ref: o,
|
|
98
|
+
className: v("relative flex cursor-default select-none items-center rounded-control py-ds-02b pl-ds-07 pr-ds-03 text-ds-md outline-hidden transition-colors focus:bg-surface-raised focus:text-surface-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-action-disabled", t),
|
|
99
|
+
checked: r,
|
|
100
|
+
...a,
|
|
101
101
|
children: [/* @__PURE__ */ x("span", {
|
|
102
102
|
className: "absolute left-ds-03 flex h-ico-sm w-ico-sm items-center justify-center",
|
|
103
|
-
children: /* @__PURE__ */ x(
|
|
103
|
+
children: /* @__PURE__ */ x(i, { children: /* @__PURE__ */ x(y, {
|
|
104
104
|
icon: C,
|
|
105
105
|
size: "sm"
|
|
106
106
|
}) })
|
|
107
|
-
}),
|
|
107
|
+
}), n]
|
|
108
108
|
}));
|
|
109
|
-
B.displayName =
|
|
110
|
-
var V = b.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ S(
|
|
109
|
+
B.displayName = e.displayName;
|
|
110
|
+
var V = b.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ S(l, {
|
|
111
111
|
ref: r,
|
|
112
112
|
className: v("relative flex cursor-default select-none items-center rounded-control py-ds-02b pl-ds-07 pr-ds-03 text-ds-md outline-hidden transition-colors focus:bg-surface-raised focus:text-surface-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-action-disabled", e),
|
|
113
113
|
...n,
|
|
114
114
|
children: [/* @__PURE__ */ x("span", {
|
|
115
115
|
className: "absolute left-ds-03 flex h-ico-sm w-ico-sm items-center justify-center",
|
|
116
|
-
children: /* @__PURE__ */ x(
|
|
116
|
+
children: /* @__PURE__ */ x(i, { children: /* @__PURE__ */ x(T, { className: "h-2 w-2 fill-current" }) })
|
|
117
117
|
}), /* @__PURE__ */ x("span", {
|
|
118
118
|
className: "min-w-0 truncate",
|
|
119
119
|
children: t
|
|
120
120
|
})]
|
|
121
121
|
}));
|
|
122
|
-
V.displayName =
|
|
123
|
-
var H = b.forwardRef(({ className: e, inset: t, ...n }, r) => /* @__PURE__ */ x(
|
|
122
|
+
V.displayName = l.displayName;
|
|
123
|
+
var H = b.forwardRef(({ className: e, inset: t, ...n }, r) => /* @__PURE__ */ x(a, {
|
|
124
124
|
ref: r,
|
|
125
125
|
className: v("px-ds-03 py-ds-02b text-ds-md font-semibold", t && "pl-ds-07", e),
|
|
126
126
|
...n
|
|
127
127
|
}));
|
|
128
|
-
H.displayName =
|
|
129
|
-
var U = b.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ x(
|
|
128
|
+
H.displayName = a.displayName;
|
|
129
|
+
var U = b.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ x(d, {
|
|
130
130
|
ref: n,
|
|
131
131
|
className: v("-mx-ds-01 my-ds-02 h-px bg-surface-border", e),
|
|
132
132
|
...t
|
|
133
133
|
}));
|
|
134
|
-
U.displayName =
|
|
134
|
+
U.displayName = d.displayName;
|
|
135
135
|
var W = ({ className: e, ...t }) => /* @__PURE__ */ x("span", {
|
|
136
136
|
className: v("ml-auto text-ds-sm text-surface-fg-subtle", e),
|
|
137
137
|
...t
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { Content$1 as e, Indicator as t, Item as n, Link as r, List$1 as i, Root2$1 as a, Trigger$1 as o, Viewport as s } from "../_chunks/primitives.js";
|
|
3
3
|
import { springs as c, tweens as l } from "./lib/motion.js";
|
|
4
4
|
import { cn as u } from "./lib/utils.js";
|
|
5
5
|
import { Icon as d } from "./icon.js";
|
|
@@ -8,23 +8,23 @@ import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
|
8
8
|
import { IconChevronDown as h } from "@tabler/icons-react";
|
|
9
9
|
import { motion as g } from "framer-motion";
|
|
10
10
|
//#region src/ui/navigation-menu.tsx
|
|
11
|
-
var _ = f.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ m(
|
|
11
|
+
var _ = f.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ m(a, {
|
|
12
12
|
ref: r,
|
|
13
13
|
className: u("relative z-raised flex max-w-max flex-1 items-center justify-center", e),
|
|
14
14
|
...n,
|
|
15
15
|
children: [t, /* @__PURE__ */ p(w, {})]
|
|
16
16
|
}));
|
|
17
|
-
_.displayName =
|
|
17
|
+
_.displayName = a.displayName;
|
|
18
18
|
var v = f.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ p(i, {
|
|
19
19
|
ref: n,
|
|
20
20
|
className: u("group flex flex-1 list-none items-center justify-center space-x-ds-02", e),
|
|
21
21
|
...t
|
|
22
22
|
}));
|
|
23
23
|
v.displayName = i.displayName;
|
|
24
|
-
var y =
|
|
25
|
-
ref:
|
|
24
|
+
var y = n, b = f.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ m(o, {
|
|
25
|
+
ref: r,
|
|
26
26
|
className: u("group inline-flex h-ds-sm-plus w-max items-center justify-center rounded-control bg-transparent px-ds-05 py-ds-03 text-ds-md font-medium transition-colors hover:bg-surface-raised-hover focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 disabled:pointer-events-none disabled:opacity-action-disabled", e),
|
|
27
|
-
...
|
|
27
|
+
...n,
|
|
28
28
|
children: [
|
|
29
29
|
t,
|
|
30
30
|
" ",
|
|
@@ -35,7 +35,7 @@ var y = o, b = f.forwardRef(({ className: e, children: t, ...r }, i) => /* @__PU
|
|
|
35
35
|
})
|
|
36
36
|
]
|
|
37
37
|
}));
|
|
38
|
-
b.displayName =
|
|
38
|
+
b.displayName = o.displayName;
|
|
39
39
|
var x = {
|
|
40
40
|
"from-start": {
|
|
41
41
|
x: "-13rem",
|
|
@@ -95,16 +95,16 @@ var x = {
|
|
|
95
95
|
});
|
|
96
96
|
});
|
|
97
97
|
S.displayName = e.displayName;
|
|
98
|
-
var C =
|
|
99
|
-
let
|
|
100
|
-
|
|
101
|
-
}, [n]), [
|
|
98
|
+
var C = r, w = f.forwardRef(({ className: e, ...t }, n) => {
|
|
99
|
+
let r = f.useRef(null), i = f.useCallback((e) => {
|
|
100
|
+
r.current = e, typeof n == "function" ? n(e) : n && (n.current = e);
|
|
101
|
+
}, [n]), [a, o] = f.useState(!1);
|
|
102
102
|
return f.useEffect(() => {
|
|
103
|
-
let e =
|
|
103
|
+
let e = r.current;
|
|
104
104
|
if (!e) return;
|
|
105
|
-
|
|
105
|
+
o(e.getAttribute("data-state") === "open");
|
|
106
106
|
let t = new MutationObserver((t) => {
|
|
107
|
-
for (let n of t) n.attributeName === "data-state" &&
|
|
107
|
+
for (let n of t) n.attributeName === "data-state" && o(e.getAttribute("data-state") === "open");
|
|
108
108
|
});
|
|
109
109
|
return t.observe(e, {
|
|
110
110
|
attributes: !0,
|
|
@@ -112,15 +112,15 @@ var C = t, w = f.forwardRef(({ className: e, ...t }, n) => {
|
|
|
112
112
|
}), () => t.disconnect();
|
|
113
113
|
}, []), /* @__PURE__ */ m("div", {
|
|
114
114
|
className: u("absolute left-0 top-full flex justify-center"),
|
|
115
|
-
children: [/* @__PURE__ */ p(
|
|
115
|
+
children: [/* @__PURE__ */ p(s, {
|
|
116
116
|
className: u("origin-top-center relative mt-ds-02b h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-overlay bg-surface-overlay shadow-floating md:w-[var(--radix-navigation-menu-viewport-width)]", e),
|
|
117
|
-
ref:
|
|
117
|
+
ref: i,
|
|
118
118
|
...t
|
|
119
119
|
}), /* @__PURE__ */ p(g.div, {
|
|
120
120
|
"aria-hidden": !0,
|
|
121
121
|
className: "absolute inset-0 pointer-events-none",
|
|
122
122
|
initial: !1,
|
|
123
|
-
animate:
|
|
123
|
+
animate: a ? {
|
|
124
124
|
opacity: 1,
|
|
125
125
|
scale: 1
|
|
126
126
|
} : {
|
|
@@ -134,13 +134,13 @@ var C = t, w = f.forwardRef(({ className: e, ...t }, n) => {
|
|
|
134
134
|
})]
|
|
135
135
|
});
|
|
136
136
|
});
|
|
137
|
-
w.displayName =
|
|
138
|
-
var T = f.forwardRef(({ className: e, ...
|
|
139
|
-
let
|
|
140
|
-
|
|
141
|
-
}, [
|
|
137
|
+
w.displayName = s.displayName;
|
|
138
|
+
var T = f.forwardRef(({ className: e, ...n }, r) => {
|
|
139
|
+
let i = f.useRef(null), a = f.useCallback((e) => {
|
|
140
|
+
i.current = e, typeof r == "function" ? r(e) : r && (r.current = e);
|
|
141
|
+
}, [r]), [o, s] = f.useState(!1);
|
|
142
142
|
return f.useEffect(() => {
|
|
143
|
-
let e =
|
|
143
|
+
let e = i.current;
|
|
144
144
|
if (!e) return;
|
|
145
145
|
s(e.getAttribute("data-state") === "visible");
|
|
146
146
|
let t = new MutationObserver((t) => {
|
|
@@ -150,10 +150,10 @@ var T = f.forwardRef(({ className: e, ...t }, n) => {
|
|
|
150
150
|
attributes: !0,
|
|
151
151
|
attributeFilter: ["data-state"]
|
|
152
152
|
}), () => t.disconnect();
|
|
153
|
-
}, []), /* @__PURE__ */ p(
|
|
154
|
-
ref:
|
|
153
|
+
}, []), /* @__PURE__ */ p(t, {
|
|
154
|
+
ref: a,
|
|
155
155
|
className: u("top-full z-base flex h-ds-02b items-end justify-center overflow-hidden", e),
|
|
156
|
-
...
|
|
156
|
+
...n,
|
|
157
157
|
children: /* @__PURE__ */ p(g.div, {
|
|
158
158
|
layout: !0,
|
|
159
159
|
initial: !1,
|
|
@@ -163,6 +163,6 @@ var T = f.forwardRef(({ className: e, ...t }, n) => {
|
|
|
163
163
|
})
|
|
164
164
|
});
|
|
165
165
|
});
|
|
166
|
-
T.displayName =
|
|
166
|
+
T.displayName = t.displayName;
|
|
167
167
|
//#endregion
|
|
168
168
|
export { _ as NavigationMenu, S as NavigationMenuContent, T as NavigationMenuIndicator, y as NavigationMenuItem, C as NavigationMenuLink, v as NavigationMenuList, b as NavigationMenuTrigger, w as NavigationMenuViewport };
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
import { FieldState } from './lib/field-state';
|
|
3
4
|
import * as React from 'react';
|
|
4
|
-
|
|
5
|
+
/** @deprecated Use `FieldState` — the shared control-state type. Kept as an alias. */
|
|
6
|
+
export type NumberInputState = FieldState;
|
|
5
7
|
declare const numberInputWrapperVariants: (props?: ({
|
|
6
8
|
size?: "xs" | "sm" | "md" | "lg" | null | undefined;
|
|
7
9
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
@@ -47,7 +49,7 @@ export interface NumberInputProps extends Omit<React.InputHTMLAttributes<HTMLInp
|
|
|
47
49
|
/** Size of the number input. Controls height, button sizes, text size. */
|
|
48
50
|
size?: NumberInputSize;
|
|
49
51
|
/** Validation state controlling border color. */
|
|
50
|
-
state?:
|
|
52
|
+
state?: FieldState;
|
|
51
53
|
}
|
|
52
54
|
declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
53
55
|
export { NumberInput, numberInputWrapperVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/ui/number-input.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/ui/number-input.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,mBAAmB,CAAA;AAGtE,sFAAsF;AACtF,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAEzC,QAAA,MAAM,0BAA0B;;8EAa/B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAkClG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IACjI,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,iDAAiD;IACjD,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED,QAAA,MAAM,WAAW,2FAmHhB,CAAA;AAGD,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA"}
|
package/dist/ui/number-input.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { cva as e } from "../_chunks/vendor-utils.js";
|
|
3
3
|
import { cn as t } from "./lib/utils.js";
|
|
4
4
|
import { Icon as n } from "./icon.js";
|
|
5
5
|
import { useFormField as r } from "./form.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
6
|
+
import { resolveFieldState as i } from "../_chunks/field-state.js";
|
|
7
|
+
import * as a from "react";
|
|
8
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
9
|
+
import { IconMinus as c, IconPlus as l } from "@tabler/icons-react";
|
|
9
10
|
//#region src/ui/number-input.tsx
|
|
10
|
-
var
|
|
11
|
+
var u = e("flex items-center justify-between rounded-control border border-surface-border-strong", {
|
|
11
12
|
variants: { size: {
|
|
12
13
|
xs: "h-ds-xs-plus",
|
|
13
14
|
sm: "h-ds-sm",
|
|
@@ -15,89 +16,89 @@ var l = e("flex items-center justify-between rounded-control border border-surfa
|
|
|
15
16
|
lg: "h-ds-lg"
|
|
16
17
|
} },
|
|
17
18
|
defaultVariants: { size: "md" }
|
|
18
|
-
}),
|
|
19
|
+
}), d = {
|
|
19
20
|
xs: "h-[22px] w-[22px]",
|
|
20
21
|
sm: "h-ds-sm w-ds-sm",
|
|
21
22
|
md: "h-ds-sm w-ds-sm",
|
|
22
23
|
lg: "h-ds-md w-ds-md"
|
|
23
|
-
},
|
|
24
|
+
}, f = {
|
|
24
25
|
xs: "xs",
|
|
25
26
|
sm: "sm",
|
|
26
27
|
md: "sm",
|
|
27
28
|
lg: "md"
|
|
28
|
-
},
|
|
29
|
-
xs: "text-ds-sm w-
|
|
29
|
+
}, p = {
|
|
30
|
+
xs: "text-ds-sm w-ds-06b",
|
|
30
31
|
sm: "text-ds-sm w-ds-sm-plus",
|
|
31
32
|
md: "text-ds-md w-ds-sm-plus",
|
|
32
33
|
lg: "text-ds-md w-ds-md"
|
|
33
|
-
},
|
|
34
|
+
}, m = {
|
|
34
35
|
default: "",
|
|
35
36
|
error: "border-error-7",
|
|
36
37
|
warning: "border-warning-7",
|
|
37
38
|
success: "border-success-7"
|
|
38
|
-
},
|
|
39
|
-
let
|
|
39
|
+
}, h = a.forwardRef(({ value: e = 0, onValueChange: a, min: h = -(2 ** 53 - 1), max: g = 2 ** 53 - 1, step: _ = 1, disabled: v = !1, className: y, size: b = "md", state: x, "aria-label": S, ...C }, w) => {
|
|
40
|
+
let T = b ?? "md", E = r(), D = S ?? (C.id || E.helperTextId ? void 0 : "Numeric value"), O = i(x, E.state) ?? "default", k = (e) => {
|
|
40
41
|
let t = e.target.value.trim();
|
|
41
42
|
if (t === "" || t === "-") {
|
|
42
|
-
|
|
43
|
+
a?.(h >= 0 ? h : 0);
|
|
43
44
|
return;
|
|
44
45
|
}
|
|
45
46
|
let n = Number(t);
|
|
46
|
-
Number.isNaN(n) ||
|
|
47
|
-
}, k = (t) => {
|
|
48
|
-
t.preventDefault();
|
|
49
|
-
let n = e + g;
|
|
50
|
-
n <= h && i?.(n);
|
|
47
|
+
Number.isNaN(n) || a?.(Math.min(Math.max(n, h), g));
|
|
51
48
|
}, A = (t) => {
|
|
52
49
|
t.preventDefault();
|
|
53
|
-
let n = e
|
|
54
|
-
n
|
|
55
|
-
}, j =
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
let n = e + _;
|
|
51
|
+
n <= g && a?.(n);
|
|
52
|
+
}, j = (t) => {
|
|
53
|
+
t.preventDefault();
|
|
54
|
+
let n = e - _;
|
|
55
|
+
n >= h && a?.(n);
|
|
56
|
+
}, M = d[T], N = f[T], P = p[T];
|
|
57
|
+
return /* @__PURE__ */ s("div", {
|
|
58
|
+
className: t(u({ size: T }), m[O], y),
|
|
58
59
|
children: [
|
|
59
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ o("button", {
|
|
60
61
|
type: "button",
|
|
61
|
-
onClick:
|
|
62
|
-
disabled:
|
|
62
|
+
onClick: j,
|
|
63
|
+
disabled: v || e <= h,
|
|
63
64
|
"aria-label": "Decrease value",
|
|
64
65
|
title: "Decrease",
|
|
65
|
-
className: t("flex items-center justify-center border-0 rounded-control-inner text-surface-fg-subtle hover:bg-surface-raised-hover hover:text-surface-fg-muted active:scale-90 transition-[color,background-color,transform] duration-fast-01 ease-productive-standard disabled:opacity-action-disabled disabled:pointer-events-none",
|
|
66
|
-
children: /* @__PURE__ */
|
|
67
|
-
icon:
|
|
68
|
-
size:
|
|
66
|
+
className: t("flex items-center justify-center border-0 rounded-control-inner text-surface-fg-subtle hover:bg-surface-raised-hover hover:text-surface-fg-muted active:scale-90 transition-[color,background-color,transform] duration-fast-01 ease-productive-standard disabled:opacity-action-disabled disabled:pointer-events-none", M),
|
|
67
|
+
children: /* @__PURE__ */ o(n, {
|
|
68
|
+
icon: c,
|
|
69
|
+
size: N
|
|
69
70
|
})
|
|
70
71
|
}),
|
|
71
|
-
/* @__PURE__ */
|
|
72
|
-
ref:
|
|
72
|
+
/* @__PURE__ */ o("input", {
|
|
73
|
+
ref: w,
|
|
73
74
|
type: "number",
|
|
74
75
|
value: e,
|
|
75
|
-
onChange:
|
|
76
|
-
min:
|
|
77
|
-
max:
|
|
78
|
-
step:
|
|
79
|
-
disabled:
|
|
80
|
-
"aria-label":
|
|
81
|
-
"aria-invalid":
|
|
82
|
-
"aria-describedby":
|
|
83
|
-
className: t("bg-transparent font-semibold border-0 text-center text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
|
|
84
|
-
...
|
|
76
|
+
onChange: k,
|
|
77
|
+
min: h,
|
|
78
|
+
max: g,
|
|
79
|
+
step: _,
|
|
80
|
+
disabled: v,
|
|
81
|
+
"aria-label": D,
|
|
82
|
+
"aria-invalid": O === "error" || void 0,
|
|
83
|
+
"aria-describedby": C["aria-describedby"] ?? E.helperTextId,
|
|
84
|
+
className: t("bg-transparent font-semibold border-0 text-center text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none", P),
|
|
85
|
+
...C
|
|
85
86
|
}),
|
|
86
|
-
/* @__PURE__ */
|
|
87
|
+
/* @__PURE__ */ o("button", {
|
|
87
88
|
type: "button",
|
|
88
|
-
onClick:
|
|
89
|
-
disabled:
|
|
89
|
+
onClick: A,
|
|
90
|
+
disabled: v || e >= g,
|
|
90
91
|
"aria-label": "Increase value",
|
|
91
92
|
title: "Increase",
|
|
92
|
-
className: t("flex items-center justify-center border-0 rounded-control-inner text-surface-fg-subtle hover:bg-surface-raised-hover hover:text-surface-fg-muted active:scale-90 transition-[color,background-color,transform] duration-fast-01 ease-productive-standard disabled:opacity-action-disabled disabled:pointer-events-none",
|
|
93
|
-
children: /* @__PURE__ */
|
|
94
|
-
icon:
|
|
95
|
-
size:
|
|
93
|
+
className: t("flex items-center justify-center border-0 rounded-control-inner text-surface-fg-subtle hover:bg-surface-raised-hover hover:text-surface-fg-muted active:scale-90 transition-[color,background-color,transform] duration-fast-01 ease-productive-standard disabled:opacity-action-disabled disabled:pointer-events-none", M),
|
|
94
|
+
children: /* @__PURE__ */ o(n, {
|
|
95
|
+
icon: l,
|
|
96
|
+
size: N
|
|
96
97
|
})
|
|
97
98
|
})
|
|
98
99
|
]
|
|
99
100
|
});
|
|
100
101
|
});
|
|
101
|
-
|
|
102
|
+
h.displayName = "NumberInput";
|
|
102
103
|
//#endregion
|
|
103
|
-
export {
|
|
104
|
+
export { h as NumberInput, u as numberInputWrapperVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input.js","names":[],"sources":["../../src/ui/number-input.tsx"],"sourcesContent":["'use client'\n\nimport { IconMinus, IconPlus } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { useFormField } from './form'\nimport { Icon } from './icon'\nimport type { IconSize } from './icon-context'\nimport { cn } from './lib/utils'\n\
|
|
1
|
+
{"version":3,"file":"number-input.js","names":[],"sources":["../../src/ui/number-input.tsx"],"sourcesContent":["'use client'\n\nimport { IconMinus, IconPlus } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { useFormField } from './form'\nimport { Icon } from './icon'\nimport type { IconSize } from './icon-context'\nimport { type FieldState, resolveFieldState } from './lib/field-state'\nimport { cn } from './lib/utils'\n\n/** @deprecated Use `FieldState` — the shared control-state type. Kept as an alias. */\nexport type NumberInputState = FieldState\n\nconst numberInputWrapperVariants = cva(\n 'flex items-center justify-between rounded-control border border-surface-border-strong',\n {\n variants: {\n size: {\n xs: 'h-ds-xs-plus',\n sm: 'h-ds-sm',\n md: 'h-ds-md',\n lg: 'h-ds-lg',\n },\n },\n defaultVariants: { size: 'md' },\n },\n)\n\nexport type NumberInputSize = NonNullable<VariantProps<typeof numberInputWrapperVariants>['size']>\n\n/** Maps size to stepper button dimensions */\nconst buttonSizeMap: Record<NonNullable<NumberInputSize>, string> = {\n xs: 'h-[22px] w-[22px]',\n sm: 'h-ds-sm w-ds-sm',\n md: 'h-ds-sm w-ds-sm',\n lg: 'h-ds-md w-ds-md',\n}\n\n/** Maps size to Icon component size */\nconst iconSizeMap: Record<NonNullable<NumberInputSize>, IconSize> = {\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n}\n\n/** Maps size to input text and width classes */\nconst inputSizeMap: Record<NonNullable<NumberInputSize>, string> = {\n xs: 'text-ds-sm w-ds-06b',\n sm: 'text-ds-sm w-ds-sm-plus',\n md: 'text-ds-md w-ds-sm-plus',\n lg: 'text-ds-md w-ds-md',\n}\n\n/** Maps state to border color classes */\nconst stateColorMap: Record<NonNullable<NumberInputState>, string> = {\n default: '',\n error: 'border-error-7',\n warning: 'border-warning-7',\n success: 'border-success-7',\n}\n\n/**\n * Props for NumberInput — a stepper control with \"−\" and \"+\" buttons flanking a numeric input,\n * clamped between `min` and `max`. The decrement/increment buttons are disabled when bounds are reached.\n *\n * **Controlled only:** Pass `value` + `onValueChange` for controlled usage. Uncontrolled usage is\n * possible but the buttons won't update the displayed value without `onValueChange`.\n *\n * **Step:** The `step` prop controls how much each button press increments/decrements (default 1).\n * Direct text input is also clamped to `[min, max]` on change.\n *\n * **Sizes:** `xs` (28px) | `sm` (32px) | `md` (40px, default) | `lg` (48px)\n *\n * **Validation states:** `state=\"error\"` colors the border red.\n * Use with `<FormField>` to show helper text below the input.\n *\n * @example\n * // Quantity selector with 1–99 range:\n * <NumberInput value={qty} onValueChange={setQty} min={1} max={99} />\n *\n * @example\n * // Rating input (1–10, step 1):\n * <NumberInput value={rating} onValueChange={setRating} min={1} max={10} />\n *\n * @example\n * // Fine-grained opacity control (0–100, step 5):\n * <NumberInput value={opacity} onValueChange={setOpacity} min={0} max={100} step={5} />\n *\n * @example\n * // Disabled number display (read-only-like):\n * <NumberInput value={autoCalcValue} onValueChange={() => {}} disabled />\n * // These are just a few ways — feel free to combine props creatively!\n */\nexport interface NumberInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type' | 'size'> {\n value?: number\n onValueChange?: (value: number) => void\n min?: number\n max?: number\n step?: number\n /** Size of the number input. Controls height, button sizes, text size. */\n size?: NumberInputSize\n /** Validation state controlling border color. */\n state?: FieldState\n}\n\nconst NumberInput = React.forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n value = 0,\n onValueChange,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n step = 1,\n disabled = false,\n className,\n size: sizeProp = 'md',\n state: stateProp,\n 'aria-label': ariaLabelProp,\n ...rest\n },\n ref,\n ) => {\n const size = sizeProp ?? 'md'\n const fieldCtx = useFormField()\n // If no explicit aria-label and not inside a FormField (no id to associate with Label),\n // provide a sensible default\n const ariaLabel = ariaLabelProp ?? (rest.id || fieldCtx.helperTextId ? undefined : 'Numeric value')\n\n // Merge FormField context — explicit props always win (shared precedence)\n const state = resolveFieldState(stateProp, fieldCtx.state) ?? 'default'\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value.trim()\n if (raw === '' || raw === '-') {\n onValueChange?.(min >= 0 ? min : 0)\n return\n }\n const parsed = Number(raw)\n if (Number.isNaN(parsed)) return\n const clamped = Math.min(Math.max(parsed, min), max)\n onValueChange?.(clamped)\n }\n\n const handleIncrement = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault() // Prevent form submission\n const newValue = value + step\n if (newValue <= max) {\n onValueChange?.(newValue)\n }\n }\n\n const handleDecrement = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault() // Prevent form submission\n const newValue = value - step\n if (newValue >= min) {\n onValueChange?.(newValue)\n }\n }\n\n const resolvedButtonSize = buttonSizeMap[size]\n const resolvedIconSize = iconSizeMap[size]\n const resolvedInputSize = inputSizeMap[size]\n\n return (\n <div\n className={cn(\n numberInputWrapperVariants({ size }),\n stateColorMap[state],\n className,\n )}\n >\n <button\n type=\"button\"\n onClick={handleDecrement}\n disabled={disabled || value <= min}\n aria-label=\"Decrease value\"\n title=\"Decrease\"\n className={cn(\n 'flex items-center justify-center border-0 rounded-control-inner text-surface-fg-subtle hover:bg-surface-raised-hover hover:text-surface-fg-muted active:scale-90 transition-[color,background-color,transform] duration-fast-01 ease-productive-standard disabled:opacity-action-disabled disabled:pointer-events-none',\n resolvedButtonSize,\n )}\n >\n <Icon icon={IconMinus} size={resolvedIconSize} />\n </button>\n\n <input\n ref={ref}\n type=\"number\"\n value={value}\n onChange={handleInputChange}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-invalid={state === 'error' || undefined}\n aria-describedby={rest['aria-describedby'] ?? fieldCtx.helperTextId}\n className={cn(\n 'bg-transparent font-semibold border-0 text-center text-surface-fg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none',\n resolvedInputSize,\n )}\n {...rest}\n />\n\n <button\n type=\"button\"\n onClick={handleIncrement}\n disabled={disabled || value >= max}\n aria-label=\"Increase value\"\n title=\"Increase\"\n className={cn(\n 'flex items-center justify-center border-0 rounded-control-inner text-surface-fg-subtle hover:bg-surface-raised-hover hover:text-surface-fg-muted active:scale-90 transition-[color,background-color,transform] duration-fast-01 ease-productive-standard disabled:opacity-action-disabled disabled:pointer-events-none',\n resolvedButtonSize,\n )}\n >\n <Icon icon={IconPlus} size={resolvedIconSize} />\n </button>\n </div>\n )\n },\n)\nNumberInput.displayName = 'NumberInput'\n\nexport { NumberInput, numberInputWrapperVariants }\n"],"mappings":";;;;;;;;;;AAeA,IAAM,IAA6B,EACjC,yFACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EACF;CACD,iBAAiB,EAAE,MAAM,MAAM;CAChC,CACF,EAKK,IAA8D;CAClE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL,EAGK,IAA8D;CAClE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL,EAGK,IAA6D;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL,EAGK,IAA+D;CACnE,SAAS;CACT,OAAO;CACP,SAAS;CACT,SAAS;CACV,EA8CK,IAAc,EAAM,YAEtB,EACE,WAAQ,GACR,kBACA,SAAM,gBACN,sBACA,UAAO,GACP,cAAW,IACX,cACA,MAAM,IAAW,MACjB,OAAO,GACP,cAAc,GACd,GAAG,KAEL,MACG;CACH,IAAM,IAAO,KAAY,MACnB,IAAW,GAAc,EAGzB,IAAY,MAAkB,EAAK,MAAM,EAAS,eAAe,KAAA,IAAY,kBAG7E,IAAQ,EAAkB,GAAW,EAAS,MAAM,IAAI,WAExD,KAAqB,MAA2C;EACpE,IAAM,IAAM,EAAE,OAAO,MAAM,MAAM;AACjC,MAAI,MAAQ,MAAM,MAAQ,KAAK;AAC7B,OAAgB,KAAO,IAAI,IAAM,EAAE;AACnC;;EAEF,IAAM,IAAS,OAAO,EAAI;AACtB,SAAO,MAAM,EAAO,IAExB,IADgB,KAAK,IAAI,KAAK,IAAI,GAAQ,EAAI,EAAE,EAAI,CAC5B;IAGpB,KAAmB,MAA2C;AAClE,IAAE,gBAAgB;EAClB,IAAM,IAAW,IAAQ;AACzB,EAAI,KAAY,KACd,IAAgB,EAAS;IAIvB,KAAmB,MAA2C;AAClE,IAAE,gBAAgB;EAClB,IAAM,IAAW,IAAQ;AACzB,EAAI,KAAY,KACd,IAAgB,EAAS;IAIvB,IAAqB,EAAc,IACnC,IAAmB,EAAY,IAC/B,IAAoB,EAAa;AAEvC,QACE,kBAAC,OAAD;EACE,WAAW,EACT,EAA2B,EAAE,SAAM,CAAC,EACpC,EAAc,IACd,EACD;YALH;GAOE,kBAAC,UAAD;IACE,MAAK;IACL,SAAS;IACT,UAAU,KAAY,KAAS;IAC/B,cAAW;IACX,OAAM;IACN,WAAW,EACT,0TACA,EACD;cAED,kBAAC,GAAD;KAAM,MAAM;KAAW,MAAM;KAAoB,CAAA;IAC1C,CAAA;GAET,kBAAC,SAAD;IACO;IACL,MAAK;IACE;IACP,UAAU;IACL;IACA;IACC;IACI;IACV,cAAY;IACZ,gBAAc,MAAU,WAAW,KAAA;IACnC,oBAAkB,EAAK,uBAAuB,EAAS;IACvD,WAAW,EACT,8QACA,EACD;IACD,GAAI;IACJ,CAAA;GAEF,kBAAC,UAAD;IACE,MAAK;IACL,SAAS;IACT,UAAU,KAAY,KAAS;IAC/B,cAAW;IACX,OAAM;IACN,WAAW,EACT,0TACA,EACD;cAED,kBAAC,GAAD;KAAM,MAAM;KAAU,MAAM;KAAoB,CAAA;IACzC,CAAA;GACL;;EAGX;AACD,EAAY,cAAc"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
2
|
+
import { OAuth as e, OAuthButton as t, OAuthConnectionRow as n, OAuthDivider as r, OAuthGlyph as i, OAuthGroup as a, getOAuthLabel as o, getOAuthName as s } from "../../_chunks/oauth-button.js";
|
|
3
|
+
export { e as OAuth, t as OAuthButton, n as OAuthConnectionRow, r as OAuthDivider, i as OAuthGlyph, a as OAuthGroup, o as getOAuthLabel, s as getOAuthName };
|
package/dist/ui/pagination.js
CHANGED