@krak-stack/registry 0.1.25 → 0.1.27
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/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/components/ui/data-table.js +212 -207
- package/dist/components/ui/effect-form.js +170 -169
- package/dist/components/ui/form.js +113 -112
- package/dist/components/ui/icon-input.js +43 -40
- package/dist/components/ui/pagination.js +2 -2
- package/dist/components/ui/sidebar-layout.d.ts +5 -2
- package/dist/components/ui/sidebar-layout.js +88 -80
- package/dist/components/ui/theme-switcher.js +3 -3
- package/dist/components/ui/virtualized-combobox.js +34 -31
- package/dist/lib/docs.d.ts +3 -1
- package/dist/lib/docs.js +181 -162
- package/dist/lib/docs.server.js +62 -36
- package/dist/lib/documentation-toolkit.js +63 -37
- package/dist/lib/httpapi-cli.js +7 -7
- package/dist/lib/httpapi-client.js +3 -3
- package/dist/lib/httpapi-helpers.js +11 -11
- package/dist/lib/httpapi-mcp.js +2 -2
- package/dist/lib/httpapi-toolkit.js +2 -2
- package/dist/lib/query.js +7 -7
- package/dist/lib/seo.js +2 -2
- package/dist/lib/webfetch-toolkit.js +6 -6
- package/dist/services/agent/client/index.js +129 -128
- package/dist/services/agent/schema.js +5 -5
- package/dist/services/file-extraction/index.js +4 -4
- package/dist/services/file-extraction/schema.js +2 -2
- package/dist/services/health/index.js +9 -9
- package/dist/services/notification/channels/ses/index.d.ts +2 -2
- package/dist/services/notification/channels/ses/index.js +2 -2
- package/dist/services/notification/channels/ses/schema.js +2 -2
- package/dist/services/notification/client/index.js +5 -5
- package/dist/services/notification/index.js +2 -2
- package/dist/services/notification/persistence/drizzle.d.ts +868 -0
- package/dist/services/notification/persistence/drizzle.js +2 -2
- package/dist/services/notification/persistence/index.d.ts +2 -0
- package/dist/services/notification/persistence/index.js +15 -15
- package/dist/services/notification/persistence/schema.d.ts +143 -0
- package/dist/services/notification/persistence/schema.js +12 -12
- package/dist/services/notification/public.js +7 -7
- package/dist/services/notification/schema.js +2 -2
- package/dist/services/s3/index.js +2 -2
- package/dist/services/s3/schema.js +2 -2
- package/package.json +2 -2
|
@@ -90,10 +90,13 @@ function Input({ className, type, ...props }) {
|
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
// ../../src/components/ui/
|
|
93
|
+
// ../../src/components/ui/textarea.tsx
|
|
94
94
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
95
|
+
|
|
96
|
+
// ../../src/components/ui/input-group.tsx
|
|
97
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
95
98
|
function InputGroup({ className, ...props }) {
|
|
96
|
-
return /* @__PURE__ */
|
|
99
|
+
return /* @__PURE__ */ jsx4("div", {
|
|
97
100
|
"data-slot": "input-group",
|
|
98
101
|
role: "group",
|
|
99
102
|
className: cn("group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", className),
|
|
@@ -126,7 +129,7 @@ function InputGroupInput({
|
|
|
126
129
|
className,
|
|
127
130
|
...props
|
|
128
131
|
}) {
|
|
129
|
-
return /* @__PURE__ */
|
|
132
|
+
return /* @__PURE__ */ jsx4(Input, {
|
|
130
133
|
"data-slot": "input-group-control",
|
|
131
134
|
className: cn("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent", className),
|
|
132
135
|
...props
|
|
@@ -570,7 +573,7 @@ function isCustomStrategy(strategy2) {
|
|
|
570
573
|
}
|
|
571
574
|
|
|
572
575
|
// ../../src/components/ui/virtualized-combobox.tsx
|
|
573
|
-
import { jsx as
|
|
576
|
+
import { jsx as jsx5, jsxs } from "react/jsx-runtime";
|
|
574
577
|
"use client";
|
|
575
578
|
var messages = {
|
|
576
579
|
en: {
|
|
@@ -646,19 +649,19 @@ var VirtualizedComboboxList = ({
|
|
|
646
649
|
virtualizer.measure();
|
|
647
650
|
}, [virtualizer]);
|
|
648
651
|
if (filteredItems.length === 0) {
|
|
649
|
-
return /* @__PURE__ */
|
|
652
|
+
return /* @__PURE__ */ jsx5("div", {
|
|
650
653
|
className: "text-muted-foreground py-6 text-center text-sm",
|
|
651
654
|
children: emptyLabel
|
|
652
655
|
});
|
|
653
656
|
}
|
|
654
|
-
return /* @__PURE__ */
|
|
657
|
+
return /* @__PURE__ */ jsx5(ComboboxPrimitive.List, {
|
|
655
658
|
className: "scroll-py-1 overflow-auto overscroll-contain p-1",
|
|
656
659
|
ref: handleScrollElementRef,
|
|
657
660
|
style: {
|
|
658
661
|
height: Math.min(virtualizer.getTotalSize() + 8, 288),
|
|
659
662
|
maxHeight: "var(--available-height)"
|
|
660
663
|
},
|
|
661
|
-
children: /* @__PURE__ */
|
|
664
|
+
children: /* @__PURE__ */ jsx5("div", {
|
|
662
665
|
className: "relative w-full",
|
|
663
666
|
role: "presentation",
|
|
664
667
|
style: { height: virtualizer.getTotalSize() },
|
|
@@ -671,9 +674,9 @@ var VirtualizedComboboxList = ({
|
|
|
671
674
|
transform: `translateY(${virtualItem.start}px)`
|
|
672
675
|
};
|
|
673
676
|
if (entry.kind === "group") {
|
|
674
|
-
return /* @__PURE__ */
|
|
677
|
+
return /* @__PURE__ */ jsx5(ComboboxPrimitive.Group, {
|
|
675
678
|
className: "contents",
|
|
676
|
-
children: /* @__PURE__ */
|
|
679
|
+
children: /* @__PURE__ */ jsx5(ComboboxPrimitive.GroupLabel, {
|
|
677
680
|
className: "text-muted-foreground absolute top-0 left-0 w-full px-2 pt-3 pb-1 text-xs",
|
|
678
681
|
"data-index": virtualItem.index,
|
|
679
682
|
ref: virtualizer.measureElement,
|
|
@@ -692,13 +695,13 @@ var VirtualizedComboboxList = ({
|
|
|
692
695
|
style,
|
|
693
696
|
value: entry.item,
|
|
694
697
|
children: [
|
|
695
|
-
renderItem?.(entry.item) ?? /* @__PURE__ */
|
|
698
|
+
renderItem?.(entry.item) ?? /* @__PURE__ */ jsx5("span", {
|
|
696
699
|
className: "min-w-0 truncate",
|
|
697
700
|
children: entry.item.label
|
|
698
701
|
}),
|
|
699
|
-
/* @__PURE__ */
|
|
702
|
+
/* @__PURE__ */ jsx5(ComboboxPrimitive.ItemIndicator, {
|
|
700
703
|
className: "absolute right-2 flex size-4 items-center justify-center",
|
|
701
|
-
children: /* @__PURE__ */
|
|
704
|
+
children: /* @__PURE__ */ jsx5(Check, {})
|
|
702
705
|
})
|
|
703
706
|
]
|
|
704
707
|
}, entry.item.value);
|
|
@@ -717,8 +720,8 @@ var VirtualizedComboboxContent = ({
|
|
|
717
720
|
virtualizerRef
|
|
718
721
|
}) => {
|
|
719
722
|
const labels = virtualizedComboboxMessages(messageOverrides);
|
|
720
|
-
return /* @__PURE__ */
|
|
721
|
-
children: /* @__PURE__ */
|
|
723
|
+
return /* @__PURE__ */ jsx5(ComboboxPrimitive.Portal, {
|
|
724
|
+
children: /* @__PURE__ */ jsx5(ComboboxPrimitive.Positioner, {
|
|
722
725
|
align: "start",
|
|
723
726
|
className: "isolate z-50",
|
|
724
727
|
side: "bottom",
|
|
@@ -726,17 +729,17 @@ var VirtualizedComboboxContent = ({
|
|
|
726
729
|
children: /* @__PURE__ */ jsxs(ComboboxPrimitive.Popup, {
|
|
727
730
|
className: cn("relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-0 origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-in-95", contentClassName),
|
|
728
731
|
children: [
|
|
729
|
-
/* @__PURE__ */
|
|
732
|
+
/* @__PURE__ */ jsx5("div", {
|
|
730
733
|
className: "min-w-0 p-1 pb-0",
|
|
731
|
-
children: /* @__PURE__ */
|
|
734
|
+
children: /* @__PURE__ */ jsx5(InputGroup, {
|
|
732
735
|
className: "border-input/30 bg-input/30 h-8 w-full min-w-0 shadow-none",
|
|
733
|
-
children: /* @__PURE__ */
|
|
736
|
+
children: /* @__PURE__ */ jsx5(ComboboxPrimitive.Input, {
|
|
734
737
|
placeholder: labels.search,
|
|
735
|
-
render: /* @__PURE__ */
|
|
738
|
+
render: /* @__PURE__ */ jsx5(InputGroupInput, {})
|
|
736
739
|
})
|
|
737
740
|
})
|
|
738
741
|
}),
|
|
739
|
-
/* @__PURE__ */
|
|
742
|
+
/* @__PURE__ */ jsx5(VirtualizedComboboxList, {
|
|
740
743
|
emptyLabel,
|
|
741
744
|
groupSelections,
|
|
742
745
|
itemIndexRef,
|
|
@@ -759,20 +762,20 @@ var defaultTrigger = (ariaLabel, ariaInvalid, disabled, label, triggerId) => /*
|
|
|
759
762
|
type: "button",
|
|
760
763
|
variant: "outline",
|
|
761
764
|
children: [
|
|
762
|
-
/* @__PURE__ */
|
|
765
|
+
/* @__PURE__ */ jsx5("span", {
|
|
763
766
|
className: "min-w-0 flex-1 truncate pr-7 text-left",
|
|
764
767
|
children: label
|
|
765
768
|
}),
|
|
766
|
-
/* @__PURE__ */
|
|
769
|
+
/* @__PURE__ */ jsx5(ChevronsUpDown, {
|
|
767
770
|
className: "text-muted-foreground shrink-0 opacity-70"
|
|
768
771
|
})
|
|
769
772
|
]
|
|
770
773
|
});
|
|
771
|
-
var defaultClear = (label) => /* @__PURE__ */
|
|
774
|
+
var defaultClear = (label) => /* @__PURE__ */ jsx5(ComboboxPrimitive.Clear, {
|
|
772
775
|
"aria-label": label,
|
|
773
776
|
className: "text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-1/2 right-7 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-sm outline-none focus-visible:border focus-visible:ring-3",
|
|
774
777
|
type: "button",
|
|
775
|
-
children: /* @__PURE__ */
|
|
778
|
+
children: /* @__PURE__ */ jsx5(X, {
|
|
776
779
|
className: "size-3.5"
|
|
777
780
|
})
|
|
778
781
|
});
|
|
@@ -811,13 +814,13 @@ var VirtualizedComboboxSingle = (props) => {
|
|
|
811
814
|
/* @__PURE__ */ jsxs("div", {
|
|
812
815
|
className: "relative",
|
|
813
816
|
children: [
|
|
814
|
-
/* @__PURE__ */
|
|
817
|
+
/* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
|
|
815
818
|
render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
|
|
816
819
|
}),
|
|
817
820
|
props.trigger ? null : defaultClear(labels.clear)
|
|
818
821
|
]
|
|
819
822
|
}),
|
|
820
|
-
/* @__PURE__ */
|
|
823
|
+
/* @__PURE__ */ jsx5(VirtualizedComboboxContent, {
|
|
821
824
|
...props,
|
|
822
825
|
groupSelections: false,
|
|
823
826
|
itemIndexRef,
|
|
@@ -853,13 +856,13 @@ var VirtualizedComboboxMultiple = (props) => {
|
|
|
853
856
|
/* @__PURE__ */ jsxs("div", {
|
|
854
857
|
className: "relative",
|
|
855
858
|
children: [
|
|
856
|
-
/* @__PURE__ */
|
|
859
|
+
/* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
|
|
857
860
|
render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
|
|
858
861
|
}),
|
|
859
862
|
props.trigger ? null : defaultClear(labels.clear)
|
|
860
863
|
]
|
|
861
864
|
}),
|
|
862
|
-
/* @__PURE__ */
|
|
865
|
+
/* @__PURE__ */ jsx5(VirtualizedComboboxContent, {
|
|
863
866
|
...props,
|
|
864
867
|
groupSelections: true,
|
|
865
868
|
itemIndexRef,
|
|
@@ -870,15 +873,15 @@ var VirtualizedComboboxMultiple = (props) => {
|
|
|
870
873
|
});
|
|
871
874
|
};
|
|
872
875
|
function VirtualizedCombobox(props) {
|
|
873
|
-
return props.multiple ? /* @__PURE__ */
|
|
876
|
+
return props.multiple ? /* @__PURE__ */ jsx5(VirtualizedComboboxMultiple, {
|
|
874
877
|
...props
|
|
875
|
-
}) : /* @__PURE__ */
|
|
878
|
+
}) : /* @__PURE__ */ jsx5(VirtualizedComboboxSingle, {
|
|
876
879
|
...props
|
|
877
880
|
});
|
|
878
881
|
}
|
|
879
882
|
|
|
880
883
|
// ../../src/components/ui/icon-input.tsx
|
|
881
|
-
import { jsx as
|
|
884
|
+
import { jsx as jsx6, jsxs as jsxs2, Fragment } from "react/jsx-runtime";
|
|
882
885
|
var IconifySearchResponse = Schema.Struct({
|
|
883
886
|
icons: Schema.Array(Schema.String)
|
|
884
887
|
}).pipe(Schema.annotate({ identifier: "IconifySearchResponse" }));
|
|
@@ -932,20 +935,20 @@ function IconInput({
|
|
|
932
935
|
const isWaiting = deferredQuery.trim() !== "" && AsyncResult.isWaiting(iconSearchResult);
|
|
933
936
|
const items = icons.map((icon) => ({ label: icon, value: icon }));
|
|
934
937
|
const selectedItem = value ? { label: value, value } : null;
|
|
935
|
-
return /* @__PURE__ */
|
|
938
|
+
return /* @__PURE__ */ jsx6(VirtualizedCombobox, {
|
|
936
939
|
ariaLabel: copy.select,
|
|
937
940
|
contentClassName: "w-80",
|
|
938
941
|
emptyLabel: isWaiting ? null : /* @__PURE__ */ jsxs2("div", {
|
|
939
942
|
className: "text-muted-foreground flex flex-col items-center gap-2 px-3",
|
|
940
943
|
children: [
|
|
941
|
-
/* @__PURE__ */
|
|
944
|
+
/* @__PURE__ */ jsx6(Search, {
|
|
942
945
|
className: "size-5"
|
|
943
946
|
}),
|
|
944
|
-
/* @__PURE__ */
|
|
947
|
+
/* @__PURE__ */ jsx6("p", {
|
|
945
948
|
children: query ? copy.empty : copy.searchPrompt
|
|
946
949
|
}),
|
|
947
950
|
/* @__PURE__ */ jsxs2(Button, {
|
|
948
|
-
render: /* @__PURE__ */
|
|
951
|
+
render: /* @__PURE__ */ jsx6("a", {
|
|
949
952
|
href: iconifyCollectionUrl(collection),
|
|
950
953
|
rel: "noreferrer",
|
|
951
954
|
target: "_blank"
|
|
@@ -955,7 +958,7 @@ function IconInput({
|
|
|
955
958
|
children: [
|
|
956
959
|
copy.browse,
|
|
957
960
|
" ",
|
|
958
|
-
/* @__PURE__ */
|
|
961
|
+
/* @__PURE__ */ jsx6(ExternalLink, {
|
|
959
962
|
className: "inline size-3"
|
|
960
963
|
})
|
|
961
964
|
]
|
|
@@ -981,22 +984,22 @@ function IconInput({
|
|
|
981
984
|
placeholder: copy.select,
|
|
982
985
|
renderItem: (item) => /* @__PURE__ */ jsxs2(Fragment, {
|
|
983
986
|
children: [
|
|
984
|
-
/* @__PURE__ */
|
|
987
|
+
/* @__PURE__ */ jsx6(Icon, {
|
|
985
988
|
className: "size-5 shrink-0",
|
|
986
989
|
icon: `${collection}:${item.value}`
|
|
987
990
|
}),
|
|
988
|
-
/* @__PURE__ */
|
|
991
|
+
/* @__PURE__ */ jsx6("span", {
|
|
989
992
|
className: "truncate",
|
|
990
993
|
children: item.label
|
|
991
994
|
}),
|
|
992
|
-
/* @__PURE__ */
|
|
995
|
+
/* @__PURE__ */ jsx6("span", {
|
|
993
996
|
className: "sr-only",
|
|
994
997
|
children: copy.select
|
|
995
998
|
})
|
|
996
999
|
]
|
|
997
1000
|
}),
|
|
998
1001
|
searchValue: query,
|
|
999
|
-
trigger: /* @__PURE__ */
|
|
1002
|
+
trigger: /* @__PURE__ */ jsx6(Button, {
|
|
1000
1003
|
"aria-label": copy.select,
|
|
1001
1004
|
disabled,
|
|
1002
1005
|
id,
|
|
@@ -1004,7 +1007,7 @@ function IconInput({
|
|
|
1004
1007
|
title: value,
|
|
1005
1008
|
type: "button",
|
|
1006
1009
|
variant: "outline",
|
|
1007
|
-
children: /* @__PURE__ */
|
|
1010
|
+
children: /* @__PURE__ */ jsx6(Icon, {
|
|
1008
1011
|
className: "size-5",
|
|
1009
1012
|
icon: `${collection}:${value}`
|
|
1010
1013
|
})
|
|
@@ -2,7 +2,7 @@ import type { LucideIcon } from "lucide-react";
|
|
|
2
2
|
type NavItem = {
|
|
3
3
|
label: () => string;
|
|
4
4
|
href: string;
|
|
5
|
-
icon
|
|
5
|
+
icon?: LucideIcon;
|
|
6
6
|
badge?: () => string;
|
|
7
7
|
external?: boolean;
|
|
8
8
|
};
|
|
@@ -10,6 +10,7 @@ type NavGroup = {
|
|
|
10
10
|
label: () => string;
|
|
11
11
|
items: NavItem[];
|
|
12
12
|
};
|
|
13
|
+
export type SidebarCollapsible = "icon" | "offcanvas" | "none";
|
|
13
14
|
export type { NavItem, NavGroup };
|
|
14
15
|
export declare const useSidebarLayout: () => {
|
|
15
16
|
isMobile: boolean;
|
|
@@ -24,7 +25,7 @@ type SidebarPageHeaderProps = {
|
|
|
24
25
|
actions?: React.ReactNode;
|
|
25
26
|
};
|
|
26
27
|
export declare function SidebarPageHeader({ title, description, badge, actions, }: SidebarPageHeaderProps): import("react").JSX.Element;
|
|
27
|
-
export declare function SidebarLayout({ groups, children, sidebarFooter, sidebarHeader, headerActions, contentClassName, fullPage, }: {
|
|
28
|
+
export declare function SidebarLayout({ groups, children, sidebarFooter, sidebarHeader, headerActions, contentClassName, fullPage, sidebarCollapsible, defaultOpen, }: {
|
|
28
29
|
groups: NavGroup[];
|
|
29
30
|
children?: React.ReactNode;
|
|
30
31
|
sidebarFooter?: React.ReactNode;
|
|
@@ -32,4 +33,6 @@ export declare function SidebarLayout({ groups, children, sidebarFooter, sidebar
|
|
|
32
33
|
headerActions?: React.ReactNode;
|
|
33
34
|
contentClassName?: string;
|
|
34
35
|
fullPage?: boolean;
|
|
36
|
+
sidebarCollapsible?: SidebarCollapsible;
|
|
37
|
+
defaultOpen?: boolean;
|
|
35
38
|
}): import("react").JSX.Element;
|