@krak-stack/registry 0.1.5 → 0.1.8

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.
@@ -1,9 +1,10 @@
1
1
  // ../../src/components/ui/virtualized-combobox.tsx
2
2
  import { Combobox as ComboboxPrimitive } from "@base-ui/react";
3
3
  import { useVirtualizer } from "@tanstack/react-virtual";
4
- import { Check, ChevronsUpDown } from "lucide-react";
4
+ import { Check, ChevronsUpDown, X } from "lucide-react";
5
5
  import {
6
6
  useCallback,
7
+ useEffect,
7
8
  useImperativeHandle,
8
9
  useRef
9
10
  } from "react";
@@ -139,6 +140,14 @@ var routeStrategies = [
139
140
  {
140
141
  match: "/api/:path(.*)?",
141
142
  exclude: true
143
+ },
144
+ {
145
+ match: "/sitemap.xml",
146
+ exclude: true
147
+ },
148
+ {
149
+ match: "/llms.txt",
150
+ exclude: true
142
151
  }
143
152
  ];
144
153
  var urlPatterns = [
@@ -554,11 +563,13 @@ import { jsx as jsx5, jsxs } from "react/jsx-runtime";
554
563
  "use client";
555
564
  var messages = {
556
565
  en: {
566
+ clear: "Clear selection",
557
567
  search: "Search...",
558
568
  selected: (count) => `${count} selected`,
559
569
  selectMore: "Select more"
560
570
  },
561
571
  fr: {
572
+ clear: "Effacer la sélection",
562
573
  search: "Rechercher...",
563
574
  selected: (count) => `${count} sélectionnés`,
564
575
  selectMore: "Sélectionner davantage"
@@ -572,6 +583,7 @@ var optionEquals = (item, selected) => item.value === selected.value;
572
583
  var VirtualizedComboboxList = ({
573
584
  emptyLabel,
574
585
  groupSelections,
586
+ itemIndexRef,
575
587
  messages: messageOverrides,
576
588
  renderItem,
577
589
  selectedValues,
@@ -579,22 +591,29 @@ var VirtualizedComboboxList = ({
579
591
  }) => {
580
592
  const filteredItems = ComboboxPrimitive.useFilteredItems();
581
593
  const labels = virtualizedComboboxMessages(messageOverrides);
582
- const entries = filteredItems.flatMap((item, index) => {
583
- if (!groupSelections)
584
- return [{ kind: "item", item, index }];
585
- const selected = selectedValues.has(item.value);
586
- const previous = filteredItems[index - 1];
587
- const startsGroup = index === 0 || selectedValues.has(previous?.value ?? "") !== selected;
588
- const itemEntry = { kind: "item", item, index };
589
- return startsGroup ? [
594
+ const itemEntries = filteredItems.map((item, index) => ({
595
+ kind: "item",
596
+ item,
597
+ index
598
+ }));
599
+ const selectedEntries = itemEntries.filter(({ item }) => selectedValues.has(item.value));
600
+ const availableEntries = itemEntries.filter(({ item }) => !selectedValues.has(item.value));
601
+ const entries = groupSelections ? [
602
+ ...selectedEntries.length > 0 ? [
590
603
  {
591
604
  kind: "group",
592
- key: selected ? "selected" : "available",
593
- label: selected ? labels.selected(selectedValues.size) : labels.selectMore
605
+ key: "selected",
606
+ label: labels.selected(selectedValues.size)
594
607
  },
595
- itemEntry
596
- ] : [itemEntry];
597
- });
608
+ ...selectedEntries
609
+ ] : [],
610
+ {
611
+ kind: "group",
612
+ key: "available",
613
+ label: labels.selectMore
614
+ },
615
+ ...availableEntries
616
+ ] : itemEntries;
598
617
  const scrollRef = useRef(null);
599
618
  const virtualizer = useVirtualizer({
600
619
  count: entries.length,
@@ -606,6 +625,9 @@ var VirtualizedComboboxList = ({
606
625
  estimateSize: () => 36,
607
626
  overscan: 8
608
627
  });
628
+ useEffect(() => {
629
+ itemIndexRef.current = new Map(entries.flatMap((entry, index) => entry.kind === "item" ? [[entry.index, index]] : []));
630
+ });
609
631
  useImperativeHandle(virtualizerRef, () => virtualizer, [virtualizer]);
610
632
  const handleScrollElementRef = useCallback((element) => {
611
633
  scrollRef.current = element;
@@ -677,6 +699,7 @@ var VirtualizedComboboxContent = ({
677
699
  contentClassName,
678
700
  emptyLabel,
679
701
  groupSelections,
702
+ itemIndexRef,
680
703
  messages: messageOverrides,
681
704
  renderItem,
682
705
  selectedValues,
@@ -705,6 +728,7 @@ var VirtualizedComboboxContent = ({
705
728
  /* @__PURE__ */ jsx5(VirtualizedComboboxList, {
706
729
  emptyLabel,
707
730
  groupSelections,
731
+ itemIndexRef,
708
732
  messages: messageOverrides,
709
733
  renderItem,
710
734
  selectedValues,
@@ -725,7 +749,7 @@ var defaultTrigger = (ariaLabel, ariaInvalid, disabled, label, triggerId) => /*
725
749
  variant: "outline",
726
750
  children: [
727
751
  /* @__PURE__ */ jsx5("span", {
728
- className: "min-w-0 truncate text-left",
752
+ className: "min-w-0 flex-1 truncate pr-7 text-left",
729
753
  children: label
730
754
  }),
731
755
  /* @__PURE__ */ jsx5(ChevronsUpDown, {
@@ -733,6 +757,14 @@ var defaultTrigger = (ariaLabel, ariaInvalid, disabled, label, triggerId) => /*
733
757
  })
734
758
  ]
735
759
  });
760
+ var defaultClear = (label) => /* @__PURE__ */ jsx5(ComboboxPrimitive.Clear, {
761
+ "aria-label": label,
762
+ 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",
763
+ type: "button",
764
+ children: /* @__PURE__ */ jsx5(X, {
765
+ className: "size-3.5"
766
+ })
767
+ });
736
768
  var selectedLabel = (value, placeholder) => {
737
769
  if (Array.isArray(value)) {
738
770
  return value.length > 0 ? value.map(({ label }) => label).join(", ") : placeholder;
@@ -745,6 +777,8 @@ var useComboboxVirtualizerRef = (providedRef) => {
745
777
  };
746
778
  var VirtualizedComboboxSingle = (props) => {
747
779
  const virtualizerRef = useComboboxVirtualizerRef(props.virtualizerRef);
780
+ const itemIndexRef = useRef(new Map);
781
+ const labels = virtualizedComboboxMessages(props.messages);
748
782
  return /* @__PURE__ */ jsxs(ComboboxPrimitive.Root, {
749
783
  disabled: props.disabled,
750
784
  inputValue: props.searchValue,
@@ -754,7 +788,7 @@ var VirtualizedComboboxSingle = (props) => {
754
788
  onInputValueChange: (value) => props.onSearchValueChange?.(value),
755
789
  onItemHighlighted: (_, { index, reason }) => {
756
790
  if (reason === "keyboard" && index >= 0) {
757
- virtualizerRef.current?.scrollToIndex(index, { align: "auto" });
791
+ virtualizerRef.current?.scrollToIndex(itemIndexRef.current.get(index) ?? index, { align: "auto" });
758
792
  }
759
793
  },
760
794
  onOpenChange: (open) => props.onOpenChange?.(open),
@@ -763,12 +797,19 @@ var VirtualizedComboboxSingle = (props) => {
763
797
  value: props.value,
764
798
  virtualized: true,
765
799
  children: [
766
- /* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
767
- render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
800
+ /* @__PURE__ */ jsxs("div", {
801
+ className: "relative",
802
+ children: [
803
+ /* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
804
+ render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
805
+ }),
806
+ props.trigger ? null : defaultClear(labels.clear)
807
+ ]
768
808
  }),
769
809
  /* @__PURE__ */ jsx5(VirtualizedComboboxContent, {
770
810
  ...props,
771
811
  groupSelections: false,
812
+ itemIndexRef,
772
813
  selectedValues: new Set(props.value ? [props.value.value] : []),
773
814
  virtualizerRef
774
815
  })
@@ -777,6 +818,8 @@ var VirtualizedComboboxSingle = (props) => {
777
818
  };
778
819
  var VirtualizedComboboxMultiple = (props) => {
779
820
  const virtualizerRef = useComboboxVirtualizerRef(props.virtualizerRef);
821
+ const itemIndexRef = useRef(new Map);
822
+ const labels = virtualizedComboboxMessages(props.messages);
780
823
  return /* @__PURE__ */ jsxs(ComboboxPrimitive.Root, {
781
824
  disabled: props.disabled,
782
825
  inputValue: props.searchValue,
@@ -787,7 +830,7 @@ var VirtualizedComboboxMultiple = (props) => {
787
830
  onInputValueChange: (value) => props.onSearchValueChange?.(value),
788
831
  onItemHighlighted: (_, { index, reason }) => {
789
832
  if (reason === "keyboard" && index >= 0) {
790
- virtualizerRef.current?.scrollToIndex(index, { align: "auto" });
833
+ virtualizerRef.current?.scrollToIndex(itemIndexRef.current.get(index) ?? index, { align: "auto" });
791
834
  }
792
835
  },
793
836
  onOpenChange: (open) => props.onOpenChange?.(open),
@@ -796,12 +839,19 @@ var VirtualizedComboboxMultiple = (props) => {
796
839
  value: [...props.value],
797
840
  virtualized: true,
798
841
  children: [
799
- /* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
800
- render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
842
+ /* @__PURE__ */ jsxs("div", {
843
+ className: "relative",
844
+ children: [
845
+ /* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
846
+ render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
847
+ }),
848
+ props.trigger ? null : defaultClear(labels.clear)
849
+ ]
801
850
  }),
802
851
  /* @__PURE__ */ jsx5(VirtualizedComboboxContent, {
803
852
  ...props,
804
853
  groupSelections: true,
854
+ itemIndexRef,
805
855
  selectedValues: new Set(props.value.map(({ value }) => value)),
806
856
  virtualizerRef
807
857
  })
@@ -21,7 +21,7 @@ export declare const readDocumentation: (args_0: {
21
21
  readonly path: string;
22
22
  readonly title: string;
23
23
  readonly description: string;
24
- readonly icon: string;
24
+ readonly icon?: string | undefined;
25
25
  readonly order: number;
26
26
  readonly locale: string;
27
27
  readonly section: string;
@@ -53,7 +53,7 @@ export declare const makeChatDocumentation: (args_0: {
53
53
  readonly path: Schema.String;
54
54
  readonly title: Schema.String;
55
55
  readonly description: Schema.String;
56
- readonly icon: Schema.String;
56
+ readonly icon: Schema.optional<Schema.String>;
57
57
  readonly order: Schema.Number;
58
58
  readonly locale: Schema.String;
59
59
  readonly section: Schema.String;
@@ -99,7 +99,7 @@ export declare const makeChatDocumentation: (args_0: {
99
99
  readonly path: Schema.String;
100
100
  readonly title: Schema.String;
101
101
  readonly description: Schema.String;
102
- readonly icon: Schema.String;
102
+ readonly icon: Schema.optional<Schema.String>;
103
103
  readonly order: Schema.Number;
104
104
  readonly locale: Schema.String;
105
105
  readonly section: Schema.String;
@@ -211,7 +211,7 @@ var DocsFrontmatter = Schema2.Struct({
211
211
  path: Schema2.String,
212
212
  title: Schema2.String,
213
213
  description: Schema2.String,
214
- icon: Schema2.String,
214
+ icon: Schema2.optional(Schema2.String),
215
215
  order: Schema2.Number,
216
216
  locale: Schema2.String,
217
217
  section: DocsSection,
@@ -231,6 +231,7 @@ var DocsPageSchema = Schema2.Struct({
231
231
  source: Schema2.String
232
232
  }).annotate({ identifier: "DocsPage" });
233
233
  var iconComponents = new Map;
234
+ var EmptyIcon = forwardRef(() => null);
234
235
 
235
236
  // ../../src/lib/docs-ai.ts
236
237
  var SearchDocumentation = Tool.make("searchDocumentation", {
@@ -10,7 +10,7 @@ export declare const DocsFrontmatter: Schema.Struct<{
10
10
  readonly path: Schema.String;
11
11
  readonly title: Schema.String;
12
12
  readonly description: Schema.String;
13
- readonly icon: Schema.String;
13
+ readonly icon: Schema.optional<Schema.String>;
14
14
  readonly order: Schema.Number;
15
15
  readonly locale: Schema.String;
16
16
  readonly section: Schema.String;
@@ -28,7 +28,7 @@ export declare const DocsPageSchema: Schema.Struct<{
28
28
  readonly path: Schema.String;
29
29
  readonly title: Schema.String;
30
30
  readonly description: Schema.String;
31
- readonly icon: Schema.String;
31
+ readonly icon: Schema.optional<Schema.String>;
32
32
  readonly order: Schema.Number;
33
33
  readonly locale: Schema.String;
34
34
  readonly section: Schema.String;
@@ -63,7 +63,7 @@ export declare const createDocsSource: (config: DocsSourceConfig) => {
63
63
  readonly path: string;
64
64
  readonly title: string;
65
65
  readonly description: string;
66
- readonly icon: string;
66
+ readonly icon?: string | undefined;
67
67
  readonly order: number;
68
68
  readonly locale: string;
69
69
  readonly section: string;
@@ -83,7 +83,7 @@ export declare const createDocsSource: (config: DocsSourceConfig) => {
83
83
  readonly path: string;
84
84
  readonly title: string;
85
85
  readonly description: string;
86
- readonly icon: string;
86
+ readonly icon?: string | undefined;
87
87
  readonly order: number;
88
88
  readonly locale: string;
89
89
  readonly section: string;
@@ -104,7 +104,7 @@ export declare const createDocsSource: (config: DocsSourceConfig) => {
104
104
  readonly path: string;
105
105
  readonly title: string;
106
106
  readonly description: string;
107
- readonly icon: string;
107
+ readonly icon?: string | undefined;
108
108
  readonly order: number;
109
109
  readonly locale: string;
110
110
  readonly section: string;
@@ -124,7 +124,7 @@ export declare const createDocsSource: (config: DocsSourceConfig) => {
124
124
  readonly path: string;
125
125
  readonly title: string;
126
126
  readonly description: string;
127
- readonly icon: string;
127
+ readonly icon?: string | undefined;
128
128
  readonly order: number;
129
129
  readonly locale: string;
130
130
  readonly section: string;
@@ -145,7 +145,7 @@ export declare const createDocsSource: (config: DocsSourceConfig) => {
145
145
  readonly path: string;
146
146
  readonly title: string;
147
147
  readonly description: string;
148
- readonly icon: string;
148
+ readonly icon?: string | undefined;
149
149
  readonly order: number;
150
150
  readonly locale: string;
151
151
  readonly section: string;
@@ -165,7 +165,7 @@ export declare const createDocsSource: (config: DocsSourceConfig) => {
165
165
  readonly path: string;
166
166
  readonly title: string;
167
167
  readonly description: string;
168
- readonly icon: string;
168
+ readonly icon?: string | undefined;
169
169
  readonly order: number;
170
170
  readonly locale: string;
171
171
  readonly section: string;
@@ -193,7 +193,7 @@ export declare const createMdxDocsSource: (config: MdxDocsSourceConfig) => {
193
193
  readonly path: string;
194
194
  readonly title: string;
195
195
  readonly description: string;
196
- readonly icon: string;
196
+ readonly icon?: string | undefined;
197
197
  readonly order: number;
198
198
  readonly locale: string;
199
199
  readonly section: string;
@@ -213,7 +213,7 @@ export declare const createMdxDocsSource: (config: MdxDocsSourceConfig) => {
213
213
  readonly path: string;
214
214
  readonly title: string;
215
215
  readonly description: string;
216
- readonly icon: string;
216
+ readonly icon?: string | undefined;
217
217
  readonly order: number;
218
218
  readonly locale: string;
219
219
  readonly section: string;
@@ -234,7 +234,7 @@ export declare const createMdxDocsSource: (config: MdxDocsSourceConfig) => {
234
234
  readonly path: string;
235
235
  readonly title: string;
236
236
  readonly description: string;
237
- readonly icon: string;
237
+ readonly icon?: string | undefined;
238
238
  readonly order: number;
239
239
  readonly locale: string;
240
240
  readonly section: string;
@@ -254,7 +254,7 @@ export declare const createMdxDocsSource: (config: MdxDocsSourceConfig) => {
254
254
  readonly path: string;
255
255
  readonly title: string;
256
256
  readonly description: string;
257
- readonly icon: string;
257
+ readonly icon?: string | undefined;
258
258
  readonly order: number;
259
259
  readonly locale: string;
260
260
  readonly section: string;
@@ -275,7 +275,7 @@ export declare const createMdxDocsSource: (config: MdxDocsSourceConfig) => {
275
275
  readonly path: string;
276
276
  readonly title: string;
277
277
  readonly description: string;
278
- readonly icon: string;
278
+ readonly icon?: string | undefined;
279
279
  readonly order: number;
280
280
  readonly locale: string;
281
281
  readonly section: string;
@@ -295,7 +295,7 @@ export declare const createMdxDocsSource: (config: MdxDocsSourceConfig) => {
295
295
  readonly path: string;
296
296
  readonly title: string;
297
297
  readonly description: string;
298
- readonly icon: string;
298
+ readonly icon?: string | undefined;
299
299
  readonly order: number;
300
300
  readonly locale: string;
301
301
  readonly section: string;
@@ -335,6 +335,7 @@ export type DocsConfig = {
335
335
  url: `https://${string}`;
336
336
  branch?: string;
337
337
  };
338
+ editable?: (page: DocsPage) => boolean;
338
339
  };
339
340
  export declare const makeDocs: (config: DocsConfig) => {
340
341
  basePath: string;
@@ -360,13 +361,13 @@ export declare const makeDocs: (config: DocsConfig) => {
360
361
  } | {
361
362
  title?: undefined;
362
363
  name: string;
363
- content: string;
364
+ content: string | undefined;
364
365
  property?: undefined;
365
366
  } | {
366
367
  title?: undefined;
367
368
  name?: undefined;
368
369
  property: string;
369
- content: string;
370
+ content: string | undefined;
370
371
  })[];
371
372
  links: ({
372
373
  rel: string;
@@ -376,6 +377,10 @@ export declare const makeDocs: (config: DocsConfig) => {
376
377
  hrefLang: string;
377
378
  href: string;
378
379
  })[];
380
+ scripts: {
381
+ type: string;
382
+ children: string;
383
+ }[];
379
384
  };
380
385
  getMessages: (locale: DocsLocale) => DocsRouteMessages;
381
386
  origin: string;
@@ -390,7 +395,7 @@ export declare const makeDocs: (config: DocsConfig) => {
390
395
  readonly path: string;
391
396
  readonly title: string;
392
397
  readonly description: string;
393
- readonly icon: string;
398
+ readonly icon?: string | undefined;
394
399
  readonly order: number;
395
400
  readonly locale: string;
396
401
  readonly section: string;
@@ -410,7 +415,7 @@ export declare const makeDocs: (config: DocsConfig) => {
410
415
  readonly path: string;
411
416
  readonly title: string;
412
417
  readonly description: string;
413
- readonly icon: string;
418
+ readonly icon?: string | undefined;
414
419
  readonly order: number;
415
420
  readonly locale: string;
416
421
  readonly section: string;
@@ -431,7 +436,7 @@ export declare const makeDocs: (config: DocsConfig) => {
431
436
  readonly path: string;
432
437
  readonly title: string;
433
438
  readonly description: string;
434
- readonly icon: string;
439
+ readonly icon?: string | undefined;
435
440
  readonly order: number;
436
441
  readonly locale: string;
437
442
  readonly section: string;
@@ -451,7 +456,7 @@ export declare const makeDocs: (config: DocsConfig) => {
451
456
  readonly path: string;
452
457
  readonly title: string;
453
458
  readonly description: string;
454
- readonly icon: string;
459
+ readonly icon?: string | undefined;
455
460
  readonly order: number;
456
461
  readonly locale: string;
457
462
  readonly section: string;
@@ -472,7 +477,7 @@ export declare const makeDocs: (config: DocsConfig) => {
472
477
  readonly path: string;
473
478
  readonly title: string;
474
479
  readonly description: string;
475
- readonly icon: string;
480
+ readonly icon?: string | undefined;
476
481
  readonly order: number;
477
482
  readonly locale: string;
478
483
  readonly section: string;
@@ -492,7 +497,7 @@ export declare const makeDocs: (config: DocsConfig) => {
492
497
  readonly path: string;
493
498
  readonly title: string;
494
499
  readonly description: string;
495
- readonly icon: string;
500
+ readonly icon?: string | undefined;
496
501
  readonly order: number;
497
502
  readonly locale: string;
498
503
  readonly section: string;
@@ -513,7 +518,7 @@ export declare const makeDocs: (config: DocsConfig) => {
513
518
  readonly path: string;
514
519
  readonly title: string;
515
520
  readonly description: string;
516
- readonly icon: string;
521
+ readonly icon?: string | undefined;
517
522
  readonly order: number;
518
523
  readonly locale: string;
519
524
  readonly section: string;
@@ -534,7 +539,7 @@ export declare const makeDocs: (config: DocsConfig) => {
534
539
  readonly path: string;
535
540
  readonly title: string;
536
541
  readonly description: string;
537
- readonly icon: string;
542
+ readonly icon?: string | undefined;
538
543
  readonly order: number;
539
544
  readonly locale: string;
540
545
  readonly section: string;
@@ -556,7 +561,7 @@ export declare const makeDocs: (config: DocsConfig) => {
556
561
  readonly path: string;
557
562
  readonly title: string;
558
563
  readonly description: string;
559
- readonly icon: string;
564
+ readonly icon?: string | undefined;
560
565
  readonly order: number;
561
566
  readonly locale: string;
562
567
  readonly section: string;
@@ -576,7 +581,7 @@ export declare const makeDocs: (config: DocsConfig) => {
576
581
  readonly path: string;
577
582
  readonly title: string;
578
583
  readonly description: string;
579
- readonly icon: string;
584
+ readonly icon?: string | undefined;
580
585
  readonly order: number;
581
586
  readonly locale: string;
582
587
  readonly section: string;
@@ -603,7 +608,7 @@ export declare const makeDocs: (config: DocsConfig) => {
603
608
  readonly path: string;
604
609
  readonly title: string;
605
610
  readonly description: string;
606
- readonly icon: string;
611
+ readonly icon?: string | undefined;
607
612
  readonly order: number;
608
613
  readonly locale: string;
609
614
  readonly section: string;