@ckc-net/puck-extended 0.2.1 → 0.3.0

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/dist/index.d.ts CHANGED
@@ -1,29 +1,31 @@
1
1
  import * as react0 from "react";
2
- import React$1, { ComponentProps } from "react";
2
+ import React$1, { ComponentProps, ReactNode, SyntheticEvent } from "react";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ import { VariantProps } from "class-variance-authority";
3
5
  import * as react_jsx_runtime18 from "react/jsx-runtime";
6
+ import { Tooltip as Tooltip$1 } from "@base-ui/react/tooltip";
4
7
  import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
5
8
  import { Input as Input$1 } from "@base-ui/react/input";
6
9
  import { Select as Select$1 } from "@base-ui/react/select";
7
10
  import { Radio } from "@base-ui/react/radio";
8
11
  import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
9
12
  import * as _puckeditor_core0 from "@puckeditor/core";
10
- import { Field, FieldProps, Fields } from "@puckeditor/core";
13
+ import { ComponentConfig, Field, FieldProps, Fields, Slot } from "@puckeditor/core";
11
14
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
12
- import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
13
- import { Tooltip as Tooltip$1 } from "@base-ui/react/tooltip";
14
- import * as _tiptap_extension_link0 from "@tiptap/extension-link";
15
- import { useRender } from "@base-ui/react/use-render";
16
- import { VariantProps } from "class-variance-authority";
15
+ import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
17
16
  import { Popover as Popover$1 } from "@base-ui/react/popover";
18
17
  import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
18
+ import { ScrollArea as ScrollArea$1 } from "@base-ui/react/scroll-area";
19
+ import { ColumnDef, PaginationState, SortingState } from "@tanstack/react-table";
20
+ import * as _tiptap_extension_text_style0 from "@tiptap/extension-text-style";
19
21
  import { Menu as Menu$1 } from "@base-ui/react/menu";
20
22
  import { Separator as Separator$1 } from "@base-ui/react/separator";
21
23
  import { Switch as Switch$1 } from "@base-ui/react/switch";
22
24
  import { Toast } from "@base-ui/react/toast";
23
- import * as _tiptap_core0 from "@tiptap/core";
24
25
  import { Editor } from "@tiptap/react";
26
+ import * as _tiptap_core0 from "@tiptap/core";
25
27
  import * as class_variance_authority_types0 from "class-variance-authority/types";
26
- import * as _base_ui_react1 from "@base-ui/react";
28
+ import * as _base_ui_react0 from "@base-ui/react";
27
29
 
28
30
  //#region src/components/Fields/NumberUnit/index.d.ts
29
31
  type NumberUnitValue = {
@@ -102,10 +104,14 @@ declare const createPuckOverridesPlugin: () => {
102
104
  }) => react_jsx_runtime18.JSX.Element;
103
105
  fieldLabel: ({
104
106
  children,
105
- label
107
+ label,
108
+ field,
109
+ tooltip
106
110
  }: {
107
111
  children: React.ReactNode;
108
- label: string;
112
+ label?: string;
113
+ field?: any;
114
+ tooltip?: string;
109
115
  }) => react_jsx_runtime18.JSX.Element;
110
116
  fieldTypes: {
111
117
  checkbox: ({
@@ -122,6 +128,8 @@ declare const createPuckOverridesPlugin: () => {
122
128
  value: any;
123
129
  }>;
124
130
  layout?: CheckboxLayout;
131
+ readOnly?: boolean;
132
+ tooltip?: string;
125
133
  };
126
134
  }) & {
127
135
  label: string;
@@ -203,10 +211,12 @@ declare const createPuckOverridesPlugin: () => {
203
211
  //#region src/components/Fields/Label/index.d.ts
204
212
  declare const Label: ({
205
213
  label,
206
- readOnly
214
+ readOnly,
215
+ tooltip
207
216
  }: {
208
217
  label?: string;
209
218
  readOnly?: boolean;
219
+ tooltip?: string;
210
220
  }) => react_jsx_runtime18.JSX.Element;
211
221
  //#endregion
212
222
  //#region src/components/Fields/Input/index.d.ts
@@ -314,6 +324,8 @@ type CheckboxProps = FieldProps<Field<any>> & {
314
324
  value: any;
315
325
  }>;
316
326
  layout?: CheckboxLayout;
327
+ readOnly?: boolean;
328
+ tooltip?: string;
317
329
  };
318
330
  };
319
331
  declare const FieldCheckbox: ({
@@ -329,29 +341,26 @@ declare const FieldCheckbox: ({
329
341
  //#region src/components/RichTextMenuLink/index.d.ts
330
342
  type RichTextMenuLinkProps = {
331
343
  editor: Editor | null;
332
- editorState?: {
333
- isLink?: boolean;
334
- canLink?: boolean;
335
- };
336
344
  };
337
- declare const richTextMenuLinkSelector: ({
338
- editor
339
- }: {
345
+ declare function RichTextMenuLink({
346
+ editor,
347
+ ...props
348
+ }: RichTextMenuLinkProps & Omit<ComponentProps<"div">, keyof RichTextMenuLinkProps>): react_jsx_runtime18.JSX.Element;
349
+ //#endregion
350
+ //#region src/components/RichTextMenuColorPicker/index.d.ts
351
+ type RichTextMenuColorPickerProps = {
340
352
  editor: Editor | null;
341
- }) => {
342
- isLink: boolean;
343
- canLink: boolean;
344
353
  };
345
354
  /**
346
- * Pre-configured tiptap Link extension ready to use in Puck's richtext field.
347
- * Add this to `tiptap.extensions` in your field config.
355
+ * Pre-configured tiptap extensions for text color support.
356
+ * Spread this into `tiptap.extensions` in your field config:
357
+ * `extensions: [...richTextMenuColorPickerExtension]`
348
358
  */
349
- declare const richTextMenuLinkExtension: _tiptap_core0.Mark<_tiptap_extension_link0.LinkOptions, any>;
350
- declare function RichTextMenuLink({
359
+ declare const richTextMenuColorPickerExtension: (_tiptap_core0.Mark<_tiptap_extension_text_style0.TextStyleOptions, any> | _tiptap_core0.Extension<_tiptap_extension_text_style0.ColorOptions, any>)[];
360
+ declare function RichTextMenuColorPicker({
351
361
  editor,
352
- editorState,
353
362
  ...props
354
- }: RichTextMenuLinkProps & Omit<ComponentProps<"div">, keyof RichTextMenuLinkProps>): react_jsx_runtime18.JSX.Element;
363
+ }: RichTextMenuColorPickerProps & Omit<ComponentProps<"div">, keyof RichTextMenuColorPickerProps>): react_jsx_runtime18.JSX.Element;
355
364
  //#endregion
356
365
  //#region src/components/MediaPicker/index.d.ts
357
366
  type MediaItem = {
@@ -361,10 +370,19 @@ type MediaItem = {
361
370
  thumbnail: string;
362
371
  type: string;
363
372
  };
373
+ /**
374
+ * Référence stable vers un média — ne contient jamais l'URL,
375
+ * qui peut changer. Utiliser `useMediaUrl` pour la résolution dynamique.
376
+ */
377
+ type MediaReference = {
378
+ id: number;
379
+ name: string;
380
+ thumbnail?: string;
381
+ };
364
382
  type MediaPickerValue = {
365
383
  type?: "url" | "media";
366
384
  url?: string;
367
- media?: MediaItem | null;
385
+ media?: MediaReference | null;
368
386
  };
369
387
  type MediaPickerProps = {
370
388
  value?: MediaPickerValue;
@@ -380,20 +398,48 @@ declare const MediaPicker: ({
380
398
  acceptedTypes,
381
399
  maxSize
382
400
  }: MediaPickerProps) => react_jsx_runtime18.JSX.Element;
401
+ /**
402
+ * Retourne l'URL directe si le type est "url".
403
+ * Pour les références média (`type: "media"`), utiliser `useMediaUrl` à la place.
404
+ */
383
405
  declare const getMediaUrl: (value?: MediaPickerValue) => string | undefined;
406
+ /**
407
+ * Hook React qui résout dynamiquement l'URL courante d'un `MediaPickerValue`.
408
+ *
409
+ * Pour les références média (`type: "media"`), l'URL est récupérée depuis
410
+ * l'API à partir de l'`id` du média — ce qui garantit que le lien reste
411
+ * valide même si l'URL du fichier a été modifiée après la sélection.
412
+ *
413
+ * @example
414
+ * const { url, loading } = useMediaUrl(value)
415
+ * return loading ? <Spinner /> : <img src={url} />
416
+ */
417
+ declare const useMediaUrl: (value?: MediaPickerValue) => {
418
+ url: string | undefined;
419
+ loading: boolean;
420
+ };
384
421
  //#endregion
385
422
  //#region src/components/PagePicker/index.d.ts
386
423
  type PageItem = {
387
424
  id: number;
388
425
  name: string;
389
- slug: string;
390
426
  url: string;
391
- status?: string;
427
+ /** Correspond au champ `published` (boolean) de PageLang */
428
+ published: boolean;
429
+ };
430
+ /**
431
+ * Référence stable vers une page — ne contient jamais l'URL,
432
+ * qui peut changer. Utiliser `usePageUrl` pour la résolution dynamique.
433
+ */
434
+ type PageReference = {
435
+ id: number;
436
+ name: string;
437
+ url: string;
392
438
  };
393
439
  type PagePickerValue = {
394
440
  type?: "url" | "page";
395
441
  url?: string;
396
- page?: PageItem | null;
442
+ page?: PageReference | null;
397
443
  };
398
444
  type PagePickerProps = {
399
445
  value?: PagePickerValue;
@@ -403,103 +449,191 @@ declare const PagePicker: ({
403
449
  value,
404
450
  onChange
405
451
  }: PagePickerProps) => react_jsx_runtime18.JSX.Element;
406
- declare const getPageUrl: (value?: PagePickerValue) => string | undefined;
452
+ /**
453
+ * Hook React qui résout dynamiquement l'URL courante d'un `PagePickerValue`.
454
+ *
455
+ * Pour les références de page (`type: "page"`), l'URL est récupérée depuis
456
+ * l'API à partir de l'`id` de la page — ce qui garantit que le lien reste
457
+ * valide même si l'URL de la page a été modifiée après la sélection.
458
+ *
459
+ * @example
460
+ * const { url, loading } = usePageUrl(value)
461
+ * return loading ? <Spinner /> : <a href={url}>Lien</a>
462
+ */
463
+ declare const usePageUrl: (value?: PagePickerValue) => {
464
+ url: string | undefined;
465
+ loading: boolean;
466
+ };
407
467
  //#endregion
408
- //#region src/components/ui/accordion.d.ts
409
- declare const cssAnimationPresets$2: {
410
- none: string;
411
- fade: string[];
412
- scale: string[];
413
- slide: string[];
414
- perspective: string[];
415
- perspectiveBlur: string[];
468
+ //#region src/components/ActionBar/index.d.ts
469
+ declare const ActionBar: {
470
+ ({
471
+ label,
472
+ parentAction,
473
+ children
474
+ }: {
475
+ label?: string;
476
+ parentAction?: ReactNode;
477
+ children?: ReactNode;
478
+ }): react_jsx_runtime18.JSX.Element;
479
+ Action: ({
480
+ children,
481
+ label,
482
+ onClick
483
+ }: {
484
+ children: ReactNode;
485
+ label?: string;
486
+ onClick: (e: SyntheticEvent) => void;
487
+ }) => react_jsx_runtime18.JSX.Element;
488
+ Label: ({
489
+ label
490
+ }: {
491
+ label: string;
492
+ }) => react_jsx_runtime18.JSX.Element;
493
+ Group: ({
494
+ children
495
+ }: {
496
+ children: ReactNode;
497
+ }) => react_jsx_runtime18.JSX.Element;
498
+ Separator: () => react_jsx_runtime18.JSX.Element;
416
499
  };
417
- declare const cssTransitionPresets$2: {
418
- inExpo: string;
419
- outExpo: string;
420
- inOutExpo: string;
421
- anticipate: string;
422
- quickOut: string;
423
- overshootOut: string;
424
- swiftOut: string;
425
- snappyOut: string;
426
- in: string;
427
- out: string;
428
- inOut: string;
429
- outIn: string;
430
- inQuad: string;
431
- outQuad: string;
432
- inOutQuad: string;
433
- inCubic: string;
434
- outCubic: string;
435
- inOutCubic: string;
436
- inQuart: string;
437
- outQuart: string;
438
- inOutQuart: string;
439
- inQuint: string;
440
- outQuint: string;
441
- inOutQuint: string;
442
- inCirc: string;
443
- outCirc: string;
444
- inOutCirc: string;
445
- inOutBase: string;
500
+ //#endregion
501
+ //#region src/components/DrawerItem/index.d.ts
502
+ declare const DrawerItem: ({
503
+ name,
504
+ icon
505
+ }: {
506
+ name: string;
507
+ icon?: React.ReactNode;
508
+ }) => react_jsx_runtime18.JSX.Element;
509
+ //#endregion
510
+ //#region src/components/FieldGroups/index.d.ts
511
+ type ItemSelector = {
512
+ path?: string;
513
+ index?: number;
446
514
  };
447
- type CSSAnimationPreset = keyof typeof cssAnimationPresets$2;
448
- type CSSTransitionPreset = keyof typeof cssTransitionPresets$2;
449
- type AccordionVariant = "default" | "card" | "swiss";
450
- interface AccordionProps extends Accordion$1.Root.Props {
451
- animationPreset?: CSSAnimationPreset;
452
- transitionPreset?: CSSTransitionPreset;
453
- reduceMotion?: boolean;
454
- variant?: AccordionVariant;
455
- }
456
- declare function Accordion({
457
- value,
458
- defaultValue,
459
- onValueChange,
460
- animationPreset,
461
- transitionPreset,
462
- reduceMotion,
463
- variant,
464
- className,
465
- multiple,
466
- ...props
467
- }: AccordionProps): react_jsx_runtime18.JSX.Element;
468
- interface AccordionItemProps extends Accordion$1.Item.Props {}
515
+ type FieldGroupsProps = {
516
+ children: React$1.ReactNode;
517
+ isLoading: boolean;
518
+ itemSelector?: ItemSelector | null;
519
+ };
520
+ declare const FieldGroups: ({
521
+ children
522
+ }: FieldGroupsProps) => react_jsx_runtime18.JSX.Element;
523
+ //#endregion
524
+ //#region src/components/PickerModal/index.d.ts
525
+ type PickerModalProps<T extends {
526
+ id: number | string;
527
+ }> = {
528
+ title: string;
529
+ /** Search */
530
+ searchQuery: string;
531
+ onSearch: (query: string) => void;
532
+ searchPlaceholder?: string;
533
+ /** Table data */
534
+ columns: ColumnDef<T>[];
535
+ data: T[];
536
+ loading: boolean;
537
+ totalItems: number;
538
+ /** Highlighted row */
539
+ selectedId?: number | string;
540
+ onRowClick: (item: T) => void;
541
+ /** Pagination — tanstack PaginationState */
542
+ pagination: PaginationState;
543
+ onPaginationChange: React$1.Dispatch<React$1.SetStateAction<PaginationState>>;
544
+ /** Sorting (optional — pass undefined to disable entirely) */
545
+ sorting?: SortingState;
546
+ onSortingChange?: React$1.Dispatch<React$1.SetStateAction<SortingState>>;
547
+ /** Page size selector options (defaults to [10, 25, 50, 100]) */
548
+ pageSizeOptions?: number[];
549
+ /** Empty state */
550
+ emptyIcon?: React$1.ReactNode;
551
+ emptyMessage?: string;
552
+ /** Optional footer (e.g. upload zone) */
553
+ footer?: React$1.ReactNode;
554
+ };
555
+ declare function PickerModal<T extends {
556
+ id: number | string;
557
+ }>({
558
+ title,
559
+ searchQuery,
560
+ onSearch,
561
+ searchPlaceholder,
562
+ columns,
563
+ data,
564
+ loading,
565
+ totalItems,
566
+ selectedId,
567
+ onRowClick,
568
+ pagination,
569
+ onPaginationChange,
570
+ sorting,
571
+ onSortingChange,
572
+ pageSizeOptions,
573
+ emptyIcon,
574
+ emptyMessage,
575
+ footer
576
+ }: PickerModalProps<T>): react_jsx_runtime18.JSX.Element;
577
+ //#endregion
578
+ //#region src/components/ColorPicker/index.d.ts
579
+ type ColorPickerProps = {
580
+ value?: string;
581
+ onChange: (value: string) => void;
582
+ };
583
+ declare const PREDEFINED_COLORS: {
584
+ name: string;
585
+ value: string;
586
+ }[];
587
+ declare const GRAY_COLORS: {
588
+ name: string;
589
+ value: string;
590
+ }[];
591
+ type ColorPickerContentProps = {
592
+ value?: string;
593
+ onChange: (value: string) => void;
594
+ onClear: () => void;
595
+ };
596
+ declare const ColorPickerContent: React$1.FC<ColorPickerContentProps>;
597
+ declare const ColorPicker: React$1.FC<ColorPickerProps>;
598
+ //#endregion
599
+ //#region src/components/ui/accordion.d.ts
600
+ declare function Accordion(props: AccordionPrimitive.Root.Props): React$1.ReactElement;
469
601
  declare function AccordionItem({
470
- value: itemValue,
471
- onOpenChange,
472
- className,
473
- ...rest
474
- }: AccordionItemProps): react_jsx_runtime18.JSX.Element;
475
- interface AccordionHeaderProps extends Accordion$1.Header.Props {}
476
- declare function AccordionHeader({
477
602
  className,
478
603
  ...props
479
- }: AccordionHeaderProps): react_jsx_runtime18.JSX.Element;
480
- interface AccordionTriggerProps extends Accordion$1.Trigger.Props {
481
- icon?: (props: {
482
- open: boolean;
483
- }) => React$1.ReactNode;
484
- }
604
+ }: AccordionPrimitive.Item.Props): React$1.ReactElement;
485
605
  declare function AccordionTrigger({
486
606
  className,
487
- icon,
488
607
  children,
489
608
  ...props
490
- }: AccordionTriggerProps): react_jsx_runtime18.JSX.Element;
491
- interface AccordionPanelProps extends Accordion$1.Panel.Props {}
609
+ }: AccordionPrimitive.Trigger.Props): React$1.ReactElement;
492
610
  declare function AccordionPanel({
493
611
  className,
494
612
  children,
495
- style,
496
613
  ...props
497
- }: AccordionPanelProps): react_jsx_runtime18.JSX.Element;
614
+ }: AccordionPrimitive.Panel.Props): React$1.ReactElement;
615
+ //#endregion
616
+ //#region src/components/ui/badge.d.ts
617
+ declare const badgeVariants: (props?: ({
618
+ size?: "default" | "lg" | "sm" | null | undefined;
619
+ variant?: "default" | "destructive" | "error" | "info" | "outline" | "secondary" | "success" | "warning" | null | undefined;
620
+ } & class_variance_authority_types0.ClassProp) | undefined) => string;
621
+ interface BadgeProps extends useRender.ComponentProps<"span"> {
622
+ variant?: VariantProps<typeof badgeVariants>["variant"];
623
+ size?: VariantProps<typeof badgeVariants>["size"];
624
+ }
625
+ declare function Badge({
626
+ className,
627
+ variant,
628
+ size,
629
+ render,
630
+ ...props
631
+ }: BadgeProps): react0.ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
498
632
  //#endregion
499
633
  //#region src/components/ui/button.d.ts
500
634
  declare const buttonVariants: (props?: ({
501
- size?: "icon" | "default" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "sm" | "xl" | "xs" | null | undefined;
502
- variant?: "link" | "default" | "destructive" | "destructive-outline" | "ghost" | "outline" | "primary" | "secondary" | null | undefined;
635
+ size?: "icon" | "default" | "lg" | "sm" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "xl" | "xs" | null | undefined;
636
+ variant?: "default" | "destructive" | "outline" | "secondary" | "link" | "destructive-outline" | "ghost" | "primary" | null | undefined;
503
637
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
504
638
  interface ButtonProps extends useRender.ComponentProps<"button"> {
505
639
  variant?: VariantProps<typeof buttonVariants>["variant"];
@@ -553,6 +687,32 @@ declare function DialogPanel({
553
687
  scrollFade?: boolean;
554
688
  }): react_jsx_runtime18.JSX.Element;
555
689
  //#endregion
690
+ //#region src/components/ui/frame.d.ts
691
+ declare function Frame({
692
+ className,
693
+ ...props
694
+ }: react0.ComponentProps<"div">): react_jsx_runtime18.JSX.Element;
695
+ declare function FramePanel({
696
+ className,
697
+ ...props
698
+ }: react0.ComponentProps<"div">): react_jsx_runtime18.JSX.Element;
699
+ declare function FrameHeader({
700
+ className,
701
+ ...props
702
+ }: react0.ComponentProps<"header">): react_jsx_runtime18.JSX.Element;
703
+ declare function FrameTitle({
704
+ className,
705
+ ...props
706
+ }: react0.ComponentProps<"div">): react_jsx_runtime18.JSX.Element;
707
+ declare function FrameDescription({
708
+ className,
709
+ ...props
710
+ }: react0.ComponentProps<"div">): react_jsx_runtime18.JSX.Element;
711
+ declare function FrameFooter({
712
+ className,
713
+ ...props
714
+ }: react0.ComponentProps<"footer">): react_jsx_runtime18.JSX.Element;
715
+ //#endregion
556
716
  //#region src/components/ui/input.d.ts
557
717
  type InputProps = Omit<Input$1.Props & react0.RefAttributes<HTMLInputElement>, "size"> & {
558
718
  size?: "sm" | "default" | "lg" | number;
@@ -608,7 +768,7 @@ declare function InputGroupTextarea({
608
768
  //#region src/components/ui/menu.d.ts
609
769
  declare const MenuCreateHandle: typeof Menu$1.createHandle;
610
770
  declare const Menu: typeof Menu$1.Root;
611
- declare const MenuPortal: react0.ForwardRefExoticComponent<Omit<_base_ui_react1.ContextMenuPortalProps, "ref"> & react0.RefAttributes<HTMLDivElement>>;
771
+ declare const MenuPortal: react0.ForwardRefExoticComponent<Omit<_base_ui_react0.ContextMenuPortalProps, "ref"> & react0.RefAttributes<HTMLDivElement>>;
612
772
  declare function MenuTrigger(props: Menu$1.Trigger.Props): react_jsx_runtime18.JSX.Element;
613
773
  declare function MenuPopup({
614
774
  children,
@@ -685,6 +845,42 @@ declare function MenuSubPopup({
685
845
  alignOffset?: Menu$1.Positioner.Props["alignOffset"];
686
846
  }): react_jsx_runtime18.JSX.Element;
687
847
  //#endregion
848
+ //#region src/components/ui/pagination.d.ts
849
+ declare function Pagination({
850
+ className,
851
+ ...props
852
+ }: react0.ComponentProps<"nav">): react_jsx_runtime18.JSX.Element;
853
+ declare function PaginationContent({
854
+ className,
855
+ ...props
856
+ }: react0.ComponentProps<"ul">): react_jsx_runtime18.JSX.Element;
857
+ declare function PaginationItem({
858
+ ...props
859
+ }: react0.ComponentProps<"li">): react_jsx_runtime18.JSX.Element;
860
+ type PaginationLinkProps = {
861
+ isActive?: boolean;
862
+ size?: react0.ComponentProps<typeof Button>["size"];
863
+ } & useRender.ComponentProps<"a">;
864
+ declare function PaginationLink({
865
+ className,
866
+ isActive,
867
+ size,
868
+ render,
869
+ ...props
870
+ }: PaginationLinkProps): react0.ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
871
+ declare function PaginationPrevious({
872
+ className,
873
+ ...props
874
+ }: react0.ComponentProps<typeof PaginationLink>): react_jsx_runtime18.JSX.Element;
875
+ declare function PaginationNext({
876
+ className,
877
+ ...props
878
+ }: react0.ComponentProps<typeof PaginationLink>): react_jsx_runtime18.JSX.Element;
879
+ declare function PaginationEllipsis({
880
+ className,
881
+ ...props
882
+ }: react0.ComponentProps<"span">): react_jsx_runtime18.JSX.Element;
883
+ //#endregion
688
884
  //#region src/components/ui/popover.d.ts
689
885
  declare const PopoverCreateHandle: typeof Popover$1.createHandle;
690
886
  declare const Popover: typeof Popover$1.Root;
@@ -717,165 +913,67 @@ declare function PopoverDescription({
717
913
  ...props
718
914
  }: Popover$1.Description.Props): react_jsx_runtime18.JSX.Element;
719
915
  //#endregion
720
- //#region src/components/ui/pagination.d.ts
721
- declare function Pagination({
722
- className,
723
- ...props
724
- }: react0.ComponentProps<"nav">): react_jsx_runtime18.JSX.Element;
725
- declare function PaginationContent({
726
- className,
727
- ...props
728
- }: react0.ComponentProps<"ul">): react_jsx_runtime18.JSX.Element;
729
- declare function PaginationItem({
730
- ...props
731
- }: react0.ComponentProps<"li">): react_jsx_runtime18.JSX.Element;
732
- type PaginationLinkProps = {
733
- isActive?: boolean;
734
- } & Pick<react0.ComponentProps<typeof Button>, "size"> & react0.ComponentProps<"a">;
735
- declare function PaginationLink({
736
- className,
737
- isActive,
738
- size,
739
- ...props
740
- }: PaginationLinkProps): react_jsx_runtime18.JSX.Element;
741
- declare function PaginationPrevious({
742
- className,
743
- ...props
744
- }: react0.ComponentProps<typeof PaginationLink>): react_jsx_runtime18.JSX.Element;
745
- declare function PaginationNext({
916
+ //#region src/components/ui/scroll-area.d.ts
917
+ declare function ScrollArea({
746
918
  className,
919
+ children,
920
+ scrollFade,
921
+ scrollbarGutter,
747
922
  ...props
748
- }: react0.ComponentProps<typeof PaginationLink>): react_jsx_runtime18.JSX.Element;
749
- declare function PaginationEllipsis({
923
+ }: ScrollArea$1.Root.Props & {
924
+ scrollFade?: boolean;
925
+ scrollbarGutter?: boolean;
926
+ }): react_jsx_runtime18.JSX.Element;
927
+ declare function ScrollBar({
750
928
  className,
929
+ orientation,
751
930
  ...props
752
- }: react0.ComponentProps<"span">): react_jsx_runtime18.JSX.Element;
931
+ }: ScrollArea$1.Scrollbar.Props): react_jsx_runtime18.JSX.Element;
753
932
  //#endregion
754
933
  //#region src/components/ui/select.d.ts
755
- declare const cssAnimationPresets$1: {
756
- none: string;
757
- scale: string[];
758
- fade: string[];
759
- slideOutside: string[];
760
- slideInside: string[];
761
- wipe: string[];
762
- wipeScale: string[];
763
- motion: string[];
764
- motionBlur: string[];
765
- };
766
- declare const cssTransitionPresets$1: {
767
- inExpo: string;
768
- outExpo: string;
769
- inOutExpo: string;
770
- anticipate: string;
771
- quickOut: string;
772
- overshootOut: string;
773
- swiftOut: string;
774
- snappyOut: string;
775
- in: string;
776
- out: string;
777
- inOut: string;
778
- outIn: string;
779
- inQuad: string;
780
- outQuad: string;
781
- inOutQuad: string;
782
- inCubic: string;
783
- outCubic: string;
784
- inOutCubic: string;
785
- inQuart: string;
786
- outQuart: string;
787
- inOutQuart: string;
788
- inQuint: string;
789
- outQuint: string;
790
- inOutQuint: string;
791
- inCirc: string;
792
- outCirc: string;
793
- inOutCirc: string;
794
- inOutBase: string;
795
- };
796
- type CSSAnimationPresets$1 = keyof typeof cssAnimationPresets$1;
797
- type CSSTransitionPresets$1 = keyof typeof cssTransitionPresets$1;
798
- type Backdrop = "opaque" | "blur" | "transparent";
799
- interface SelectRootProps extends React.ComponentProps<typeof Select$1.Root> {
800
- backdrop?: Backdrop;
801
- }
802
- declare function Select({
803
- backdrop,
804
- ...props
805
- }: SelectRootProps): react_jsx_runtime18.JSX.Element;
806
- interface SelectTriggerProps extends React.ComponentProps<typeof Select$1.Trigger> {}
934
+ declare const Select: typeof Select$1.Root;
935
+ declare const selectTriggerVariants: (props?: ({
936
+ size?: "default" | "lg" | "sm" | null | undefined;
937
+ } & class_variance_authority_types0.ClassProp) | undefined) => string;
807
938
  declare function SelectTrigger({
808
939
  className,
940
+ size,
941
+ children,
809
942
  ...props
810
- }: SelectTriggerProps): react_jsx_runtime18.JSX.Element;
811
- interface SelectValueProps extends React.ComponentProps<typeof Select$1.Value> {
812
- placeholder?: string;
813
- }
943
+ }: Select$1.Trigger.Props & VariantProps<typeof selectTriggerVariants>): react_jsx_runtime18.JSX.Element;
814
944
  declare function SelectValue({
815
- className,
816
- placeholder,
817
- ...props
818
- }: SelectValueProps): react_jsx_runtime18.JSX.Element;
819
- interface SelectIconProps extends React.ComponentProps<typeof Select$1.Icon> {}
820
- declare function SelectIcon({
821
945
  className,
822
946
  ...props
823
- }: SelectIconProps): react_jsx_runtime18.JSX.Element;
824
- interface SelectPositionerProps extends React.ComponentProps<typeof Select$1.Positioner> {}
825
- interface SelectPopupProps extends React.ComponentProps<typeof Select$1.Popup>, Pick<SelectPositionerProps, "side" | "sideOffset" | "align" | "alignOffset" | "alignItemWithTrigger"> {
826
- animationPreset?: CSSAnimationPresets$1;
827
- transitionPreset?: CSSTransitionPresets$1;
828
- reduceMotion?: boolean;
829
- showArrow?: boolean;
830
- }
947
+ }: Select$1.Value.Props): react_jsx_runtime18.JSX.Element;
831
948
  declare function SelectPopup({
832
949
  className,
833
- animationPreset,
834
- transitionPreset,
835
- reduceMotion,
836
- showArrow,
950
+ children,
837
951
  side,
838
952
  sideOffset,
839
953
  align,
840
954
  alignOffset,
841
955
  alignItemWithTrigger,
842
- children,
843
- ...rest
844
- }: SelectPopupProps): react_jsx_runtime18.JSX.Element;
845
- interface SelectListProps extends React.ComponentProps<typeof Select$1.List> {}
846
- declare function SelectList({
847
- className,
848
- ...props
849
- }: SelectListProps): react_jsx_runtime18.JSX.Element;
850
- interface SelectItemProps extends React.ComponentProps<typeof Select$1.Item> {}
956
+ anchor,
957
+ ...props
958
+ }: Select$1.Popup.Props & {
959
+ side?: Select$1.Positioner.Props["side"];
960
+ sideOffset?: Select$1.Positioner.Props["sideOffset"];
961
+ align?: Select$1.Positioner.Props["align"];
962
+ alignOffset?: Select$1.Positioner.Props["alignOffset"];
963
+ alignItemWithTrigger?: Select$1.Positioner.Props["alignItemWithTrigger"];
964
+ anchor?: Select$1.Positioner.Props["anchor"];
965
+ }): react_jsx_runtime18.JSX.Element;
851
966
  declare function SelectItem({
852
967
  className,
968
+ children,
853
969
  ...props
854
- }: SelectItemProps): react_jsx_runtime18.JSX.Element;
855
- interface SelectItemTextProps extends React.ComponentProps<typeof Select$1.ItemText> {}
856
- declare function SelectItemText({
857
- className,
858
- ...props
859
- }: SelectItemTextProps): react_jsx_runtime18.JSX.Element;
860
- interface SelectItemIndicatorProps extends React.ComponentProps<typeof Select$1.ItemIndicator> {}
861
- declare function SelectItemIndicator({
862
- className,
863
- ...props
864
- }: SelectItemIndicatorProps): react_jsx_runtime18.JSX.Element;
865
- interface SelectGroupProps extends React.ComponentProps<typeof Select$1.Group> {}
866
- declare function SelectGroup({
867
- ...props
868
- }: SelectGroupProps): react_jsx_runtime18.JSX.Element;
869
- interface SelectGroupLabelProps extends React.ComponentProps<typeof Select$1.GroupLabel> {}
870
- declare function SelectGroupLabel({
871
- ...props
872
- }: SelectGroupLabelProps): react_jsx_runtime18.JSX.Element;
873
- declare function SelectScrollUpArrow(props: React.ComponentProps<typeof Select$1.ScrollUpArrow>): react_jsx_runtime18.JSX.Element;
874
- declare function SelectScrollDownArrow(props: React.ComponentProps<typeof Select$1.ScrollDownArrow>): react_jsx_runtime18.JSX.Element;
875
- interface SelectSeparatorProps extends React.ComponentProps<typeof Select$1.Separator> {}
970
+ }: Select$1.Item.Props): react_jsx_runtime18.JSX.Element;
876
971
  declare function SelectSeparator({
972
+ className,
877
973
  ...props
878
- }: SelectSeparatorProps): react_jsx_runtime18.JSX.Element;
974
+ }: Select$1.Separator.Props): react_jsx_runtime18.JSX.Element;
975
+ declare function SelectGroup(props: Select$1.Group.Props): react_jsx_runtime18.JSX.Element;
976
+ declare function SelectGroupLabel(props: Select$1.GroupLabel.Props): react_jsx_runtime18.JSX.Element;
879
977
  //#endregion
880
978
  //#region src/components/ui/separator.d.ts
881
979
  declare function Separator({
@@ -948,8 +1046,8 @@ declare function TabsPanel({
948
1046
  }: Tabs$1.Panel.Props): react_jsx_runtime18.JSX.Element;
949
1047
  //#endregion
950
1048
  //#region src/components/ui/toast.d.ts
951
- declare const toastManager: _base_ui_react1.ToastManager;
952
- declare const anchoredToastManager: _base_ui_react1.ToastManager;
1049
+ declare const toastManager: _base_ui_react0.ToastManager;
1050
+ declare const anchoredToastManager: _base_ui_react0.ToastManager;
953
1051
  type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
954
1052
  interface ToastProviderProps extends Toast.Provider.Props {
955
1053
  position?: ToastPosition;
@@ -1040,6 +1138,73 @@ declare function TooltipPopup({
1040
1138
  ...rest
1041
1139
  }: TooltipPopupProps): react_jsx_runtime18.JSX.Element;
1042
1140
  //#endregion
1141
+ //#region src/blocks/Template/index.d.ts
1142
+ type TemplateProps = {
1143
+ template: string;
1144
+ children: Slot;
1145
+ };
1146
+ type TemplateData = Record<string, {
1147
+ label: string;
1148
+ data: Slot;
1149
+ }>;
1150
+ type CreateTemplateBlockOptions = {
1151
+ /**
1152
+ * Namespace key — used as the localStorage key prefix (without API) or as
1153
+ * the `key` column value in the database (with API).
1154
+ * Must be unique per project.
1155
+ * @default "puck-template"
1156
+ */
1157
+ storageKey?: string;
1158
+ /**
1159
+ * Static template presets always shown in the select (in addition to
1160
+ * "Blank"). Applied regardless of storage mode.
1161
+ */
1162
+ defaultTemplates?: TemplateData;
1163
+ /**
1164
+ * Base URL for the templates REST API.
1165
+ * When provided, templates are stored in the database instead of
1166
+ * localStorage, making them shared across all users.
1167
+ *
1168
+ * Accepts a lazy function so the URL can be resolved from the DOM
1169
+ * (e.g. from a data-* attribute) without breaking SSR or module init.
1170
+ *
1171
+ * Expected contract:
1172
+ * GET {apiUrl}?key={storageKey} → { templates: ApiTemplate[] }
1173
+ * POST {apiUrl} → { template: ApiTemplate }
1174
+ * body: { key, name, data }
1175
+ * DELETE {apiUrl}/{id} → { success: true }
1176
+ */
1177
+ apiUrl?: string | (() => string);
1178
+ /**
1179
+ * Returns headers merged into every API request.
1180
+ * Use this to inject CSRF tokens or custom auth headers.
1181
+ *
1182
+ * @example
1183
+ * getHeaders: () => ({ 'X-CSRF-TOKEN': getCsrfToken() })
1184
+ */
1185
+ getHeaders?: () => Record<string, string>;
1186
+ };
1187
+ /**
1188
+ * Factory that returns a ready-to-use Puck `ComponentConfig` for a Template
1189
+ * block.
1190
+ *
1191
+ * Without `apiUrl` — templates are saved in `localStorage` (per-browser).
1192
+ * With `apiUrl` — templates are saved in a database and shared across all
1193
+ * users and devices.
1194
+ *
1195
+ * @example
1196
+ * // Basic (localStorage)
1197
+ * Template: createTemplateBlock({ storageKey: 'my-project' })
1198
+ *
1199
+ * // Database-backed (shared)
1200
+ * Template: createTemplateBlock({
1201
+ * storageKey: 'my-project',
1202
+ * apiUrl: () => document.getElementById('editor')?.dataset.templatesUrl,
1203
+ * getHeaders: () => ({ 'X-CSRF-TOKEN': getCsrfToken() }),
1204
+ * })
1205
+ */
1206
+ declare function createTemplateBlock(options?: CreateTemplateBlockOptions): ComponentConfig<TemplateProps>;
1207
+ //#endregion
1043
1208
  //#region src/utils/animation.d.ts
1044
1209
  type AnimationTraitProps = {
1045
1210
  animation?: "" | "fade-in" | "fade-up" | "fade-down" | "fade-left" | "fade-right" | "fade-scale" | "scale-in" | "scale-up" | "scale-down" | "scale-out" | "slide-up" | "slide-down" | "slide-left" | "slide-right" | "blur-in" | "blur-up" | "blur-down";
@@ -1048,6 +1213,17 @@ declare const animationField: Fields;
1048
1213
  declare function animationToAttributes(animation?: AnimationTraitProps["animation"]): Record<string, string>;
1049
1214
  declare const animationDefaultProps: AnimationTraitProps;
1050
1215
  //#endregion
1216
+ //#region src/utils/customClasses.d.ts
1217
+ type CustomClassesTraitProps = {
1218
+ customClasses?: string[];
1219
+ };
1220
+ declare const customClassesField: Fields;
1221
+ declare function customClassesToClasses(customClasses?: string[]): string;
1222
+ declare const customClassesDefaultProps: CustomClassesTraitProps;
1223
+ //#endregion
1224
+ //#region src/utils/pagePicker.d.ts
1225
+ declare const pageField: Field<PagePickerValue>;
1226
+ //#endregion
1051
1227
  //#region src/utils/display.d.ts
1052
1228
  type DisplayTraitProps = {
1053
1229
  display?: "hidden" | "inline" | "inline-block" | "block" | "flex" | "inline-flex";
@@ -1213,5 +1389,5 @@ type OptimizedImageAttrs = {
1213
1389
  */
1214
1390
  declare function useOptimizedImage(src: string | undefined): OptimizedImageAttrs | null;
1215
1391
  //#endregion
1216
- export { Accordion, AccordionHeader, AccordionItem, AccordionPanel, AccordionTrigger, AnchoredToastProvider, AnimationTraitProps, Button, Checkbox, type CheckboxLayout, Dialog, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPopup, DialogTitle, DialogTrigger, DisplayTraitProps, FieldCheckbox, FieldInput, FieldNumberUnit, FieldRadio, FieldSelect, FieldTextarea, FontWeightTraitProps, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, type InputProps, Label, LineHeightTraitProps, MarginItem, MarginTraitProps, MarginValue, type MediaItem, MediaPicker, type MediaPickerProps, type MediaPickerValue, Menu, MenuCheckboxItem, MenuCreateHandle, MenuGroup, MenuGroupLabel, MenuItem, MenuPopup, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubPopup, MenuSubTrigger, MenuTrigger, OptimizedImageAttrs, PaddingItem, PaddingTraitProps, PaddingValue, type PageItem, PagePicker, type PagePickerProps, type PagePickerValue, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverTitle, PopoverTrigger, PositionTraitProps, RadioGroup, RadioGroupItem, type RadioLayout, RichTextMenuLink, Select, SelectGroup, SelectGroupLabel, SelectIcon, SelectItem, SelectItemIndicator, SelectItemText, SelectList, SelectPopup, SelectScrollDownArrow, SelectScrollUpArrow, SelectSeparator, SelectTrigger, SelectValue, Separator, SizeTraitProps, SizeValue, SpacingTraitProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextAlignTraitProps, TextColorTraitProps, TextDecorationTraitProps, TextSizeTraitProps, TextTransformTraitProps, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup, TooltipProvider, TooltipTrigger, TypographyTraitProps, anchoredToastManager, animationDefaultProps, animationField, animationToAttributes, buttonVariants, createPuckOverridesPlugin, displayDefaultProps, displayField, displayToClasses, fontWeightDefaultProps, fontWeightField, fontWeightToClasses, getMediaUrl, getPageUrl, lineHeightDefaultProps, lineHeightField, lineHeightToClasses, marginDefaultProps, marginField, marginToClasses, paddingDefaultProps, paddingField, paddingToClasses, positionDefaultProps, positionField, positionToClasses, richTextMenuLinkExtension, richTextMenuLinkSelector, sizeDefaultProps, sizeField, sizeToClasses, spacingDefaultProps, spacingFieldNames, spacingFields, spacingOptions, spacingToClasses, textAlignDefaultProps, textAlignField, textAlignToClasses, textColorDefaultProps, textColorField, textColorToClasses, textDecorationDefaultProps, textDecorationField, textDecorationToClasses, textSizeDefaultProps, textSizeField, textSizeToClasses, textTransformDefaultProps, textTransformField, textTransformToClasses, toastManager, typographyDefaultProps, typographyFieldNames, typographyFields, typographyToClasses, useOptimizedImage };
1392
+ export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, ActionBar, AnchoredToastProvider, AnimationTraitProps, Badge, Button, Checkbox, type CheckboxLayout, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type CreateTemplateBlockOptions, CustomClassesTraitProps, Dialog, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPopup, DialogTitle, DialogTrigger, DisplayTraitProps, DrawerItem, FieldCheckbox, FieldGroups, FieldInput, FieldNumberUnit, FieldRadio, FieldSelect, FieldTextarea, FontWeightTraitProps, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GRAY_COLORS, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, type InputProps, Label, LineHeightTraitProps, MarginItem, MarginTraitProps, MarginValue, type MediaItem, MediaPicker, type MediaPickerProps, type MediaPickerValue, type MediaReference, Menu, MenuCheckboxItem, MenuCreateHandle, MenuGroup, MenuGroupLabel, MenuItem, MenuPopup, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubPopup, MenuSubTrigger, MenuTrigger, OptimizedImageAttrs, PREDEFINED_COLORS, PaddingItem, PaddingTraitProps, PaddingValue, type PageItem, PagePicker, type PagePickerProps, type PagePickerValue, type PageReference, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PickerModal, type PickerModalProps, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverTitle, PopoverTrigger, PositionTraitProps, RadioGroup, RadioGroupItem, type RadioLayout, RichTextMenuColorPicker, RichTextMenuLink, ScrollArea, ScrollBar, Select, SelectGroup, SelectGroupLabel, SelectItem, SelectPopup, SelectSeparator, SelectTrigger, SelectValue, Separator, SizeTraitProps, SizeValue, SpacingTraitProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, type TemplateProps, TextAlignTraitProps, TextColorTraitProps, TextDecorationTraitProps, TextSizeTraitProps, TextTransformTraitProps, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup, TooltipProvider, TooltipTrigger, TypographyTraitProps, anchoredToastManager, animationDefaultProps, animationField, animationToAttributes, badgeVariants, buttonVariants, createPuckOverridesPlugin, createTemplateBlock, customClassesDefaultProps, customClassesField, customClassesToClasses, displayDefaultProps, displayField, displayToClasses, fontWeightDefaultProps, fontWeightField, fontWeightToClasses, getMediaUrl, lineHeightDefaultProps, lineHeightField, lineHeightToClasses, marginDefaultProps, marginField, marginToClasses, paddingDefaultProps, paddingField, paddingToClasses, pageField, positionDefaultProps, positionField, positionToClasses, richTextMenuColorPickerExtension, sizeDefaultProps, sizeField, sizeToClasses, spacingDefaultProps, spacingFieldNames, spacingFields, spacingOptions, spacingToClasses, textAlignDefaultProps, textAlignField, textAlignToClasses, textColorDefaultProps, textColorField, textColorToClasses, textDecorationDefaultProps, textDecorationField, textDecorationToClasses, textSizeDefaultProps, textSizeField, textSizeToClasses, textTransformDefaultProps, textTransformField, textTransformToClasses, toastManager, typographyDefaultProps, typographyFieldNames, typographyFields, typographyToClasses, useMediaUrl, useOptimizedImage, usePageUrl };
1217
1393
  //# sourceMappingURL=index.d.ts.map