@akira-io/ui 2.0.0 → 2.2.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.
Files changed (53) hide show
  1. package/dist/blocks.d.ts +4 -4
  2. package/dist/blocks.js +11 -10
  3. package/dist/blocks.js.map +1 -1
  4. package/dist/{chunk-3Z2VGVPI.js → chunk-53V4J7MC.js} +2 -2
  5. package/dist/{chunk-VA6A4HZ2.js → chunk-BH3B26DK.js} +5 -5
  6. package/dist/{chunk-TM5MN3MI.js → chunk-BP2YDMMI.js} +2 -2
  7. package/dist/{chunk-DE2AJ54R.js → chunk-BR3JI3KN.js} +6 -6
  8. package/dist/{chunk-YBXRJSR3.js → chunk-CAUTXZ4U.js} +2 -2
  9. package/dist/chunk-EXTOGROG.js +42 -0
  10. package/dist/chunk-EXTOGROG.js.map +1 -0
  11. package/dist/{chunk-SZUXATOF.js → chunk-MCHHCLV3.js} +4 -4
  12. package/dist/{chunk-2V6HUWST.js → chunk-NKPFIA32.js} +2 -2
  13. package/dist/{chunk-E26KKMGS.js → chunk-OS7YY5R4.js} +1 -1
  14. package/dist/{chunk-E26KKMGS.js.map → chunk-OS7YY5R4.js.map} +1 -1
  15. package/dist/{chunk-UXVI326F.js → chunk-PCYYU332.js} +3 -3
  16. package/dist/{chunk-KHOA4TEI.js → chunk-PPWJK5T3.js} +7 -1
  17. package/dist/chunk-PPWJK5T3.js.map +1 -0
  18. package/dist/{chunk-B3L6PRLX.js → chunk-PYXUFFMO.js} +12 -5
  19. package/dist/chunk-PYXUFFMO.js.map +1 -0
  20. package/dist/{chunk-EYPM6IMS.js → chunk-QZRSQVCN.js} +2 -2
  21. package/dist/{chunk-UCJTM3UM.js → chunk-RE4M2G2Y.js} +139 -55
  22. package/dist/chunk-RE4M2G2Y.js.map +1 -0
  23. package/dist/code.js +3 -3
  24. package/dist/{context-Soro3B1I.d.ts → context-Dqf-5Qne.d.ts} +10 -2
  25. package/dist/editor.js +5 -5
  26. package/dist/index.d.ts +23 -10
  27. package/dist/index.js +156 -123
  28. package/dist/index.js.map +1 -1
  29. package/dist/inertia.js +9 -8
  30. package/dist/inertia.js.map +1 -1
  31. package/dist/locales/fr.d.ts +44 -0
  32. package/dist/locales/fr.js +248 -0
  33. package/dist/locales/fr.js.map +1 -0
  34. package/dist/locales/pt.d.ts +2 -2
  35. package/dist/locales/pt.js.map +1 -1
  36. package/dist/shells.d.ts +1 -1
  37. package/dist/shells.js +6 -5
  38. package/dist/shells.js.map +1 -1
  39. package/dist/{sidebar-BLL2tgTt.d.ts → sidebar-_xQ3IehY.d.ts} +3 -1
  40. package/package.json +5 -1
  41. package/theme.css +11 -0
  42. package/dist/chunk-B3L6PRLX.js.map +0 -1
  43. package/dist/chunk-KHOA4TEI.js.map +0 -1
  44. package/dist/chunk-UCJTM3UM.js.map +0 -1
  45. /package/dist/{chunk-3Z2VGVPI.js.map → chunk-53V4J7MC.js.map} +0 -0
  46. /package/dist/{chunk-VA6A4HZ2.js.map → chunk-BH3B26DK.js.map} +0 -0
  47. /package/dist/{chunk-TM5MN3MI.js.map → chunk-BP2YDMMI.js.map} +0 -0
  48. /package/dist/{chunk-DE2AJ54R.js.map → chunk-BR3JI3KN.js.map} +0 -0
  49. /package/dist/{chunk-YBXRJSR3.js.map → chunk-CAUTXZ4U.js.map} +0 -0
  50. /package/dist/{chunk-SZUXATOF.js.map → chunk-MCHHCLV3.js.map} +0 -0
  51. /package/dist/{chunk-2V6HUWST.js.map → chunk-NKPFIA32.js.map} +0 -0
  52. /package/dist/{chunk-UXVI326F.js.map → chunk-PCYYU332.js.map} +0 -0
  53. /package/dist/{chunk-EYPM6IMS.js.map → chunk-QZRSQVCN.js.map} +0 -0
@@ -7,16 +7,26 @@ import {
7
7
  DialogFooter,
8
8
  DialogHeader,
9
9
  DialogTitle
10
- } from "./chunk-EYPM6IMS.js";
10
+ } from "./chunk-QZRSQVCN.js";
11
11
  import {
12
12
  useUiLabels
13
- } from "./chunk-E26KKMGS.js";
13
+ } from "./chunk-OS7YY5R4.js";
14
14
  import {
15
15
  Label
16
- } from "./chunk-TM5MN3MI.js";
16
+ } from "./chunk-BP2YDMMI.js";
17
+ import {
18
+ FLOATING_SHEET_OFFSET_LIMIT,
19
+ FloatingSheetEdgesContext,
20
+ FloatingSheetReportEdgesContext,
21
+ FloatingSheetStackContext,
22
+ floatingSheetDefaultEdges,
23
+ floatingSheetDefaultLabels,
24
+ useFloatingSheetStack,
25
+ useSheetPortalContainer
26
+ } from "./chunk-EXTOGROG.js";
17
27
  import {
18
28
  Input
19
- } from "./chunk-3Z2VGVPI.js";
29
+ } from "./chunk-53V4J7MC.js";
20
30
  import {
21
31
  Button,
22
32
  buttonVariants,
@@ -30,8 +40,11 @@ import {
30
40
  menuSurface,
31
41
  modalSurface,
32
42
  nestedSurfaceReset,
33
- panelSurface
34
- } from "./chunk-KHOA4TEI.js";
43
+ panelSurface,
44
+ scrollEdgeTransition,
45
+ scrollShadowFromBottom,
46
+ scrollShadowFromTop
47
+ } from "./chunk-PPWJK5T3.js";
35
48
 
36
49
  // src/components/ui/confirm-dialog.tsx
37
50
  import { AlertCircle, ChevronRight } from "lucide-react";
@@ -566,21 +579,25 @@ var PopoverContent = React2.forwardRef(
566
579
  align = "center",
567
580
  sideOffset = 4,
568
581
  slotName = "popover-content",
582
+ container,
569
583
  ...props
570
- }, ref) => /* @__PURE__ */ jsx4(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx4(
571
- PopoverPrimitive.Content,
572
- {
573
- ref,
574
- align,
575
- sideOffset,
576
- className: cn(
577
- `${panelSurface} p-4 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-full origin-[--radix-popover-content-transform-origin] bg-popover/90 outline-none`,
578
- className
579
- ),
580
- ...props,
581
- "data-slot": slotName
582
- }
583
- ) })
584
+ }, ref) => {
585
+ const portalContainer = useSheetPortalContainer(container);
586
+ return /* @__PURE__ */ jsx4(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx4(
587
+ PopoverPrimitive.Content,
588
+ {
589
+ ref,
590
+ align,
591
+ sideOffset,
592
+ className: cn(
593
+ `${panelSurface} p-4 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-full origin-[--radix-popover-content-transform-origin] bg-popover/90 outline-none`,
594
+ className
595
+ ),
596
+ ...props,
597
+ "data-slot": slotName
598
+ }
599
+ ) });
600
+ }
584
601
  );
585
602
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
586
603
 
@@ -633,9 +650,11 @@ function SelectContent({
633
650
  children,
634
651
  position = "popper",
635
652
  slotName = "select-content",
653
+ container,
636
654
  ...props
637
655
  }) {
638
- return /* @__PURE__ */ jsx5(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs3(
656
+ const portalContainer = useSheetPortalContainer(container);
657
+ return /* @__PURE__ */ jsx5(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs3(
639
658
  SelectPrimitive.Content,
640
659
  {
641
660
  className: cn(
@@ -756,27 +775,9 @@ function SelectScrollDownButton({
756
775
  );
757
776
  }
758
777
 
759
- // src/components/ui/floating-sheet-context.ts
760
- import * as React3 from "react";
761
- var floatingSheetDefaultLabels = {
762
- backLabel: "Back",
763
- closeLabel: "Close"
764
- };
765
- var FLOATING_SHEET_OFFSET_LIMIT = 3;
766
- var FloatingSheetStackContext = React3.createContext(null);
767
- function useFloatingSheetStack() {
768
- const context = React3.useContext(FloatingSheetStackContext);
769
- if (!context) {
770
- throw new Error(
771
- "FloatingSheet must be rendered inside a FloatingSheetStack."
772
- );
773
- }
774
- return context;
775
- }
776
-
777
778
  // src/components/ui/floating-sheet-stack.tsx
778
779
  import * as DialogPrimitive from "@radix-ui/react-dialog";
779
- import * as React4 from "react";
780
+ import * as React3 from "react";
780
781
  import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
781
782
  function FloatingSheetStack({
782
783
  children,
@@ -788,22 +789,22 @@ function FloatingSheetStack({
788
789
  floatingSheetDefaultLabels,
789
790
  labels
790
791
  );
791
- const [entries, setEntries] = React4.useState([]);
792
- const [container, setContainer] = React4.useState(null);
793
- const register = React4.useCallback((entry) => {
792
+ const [entries, setEntries] = React3.useState([]);
793
+ const [container, setContainer] = React3.useState(null);
794
+ const register = React3.useCallback((entry) => {
794
795
  setEntries(
795
796
  (current) => current.some((item) => item.id === entry.id) ? current.map((item) => item.id === entry.id ? entry : item) : [...current, entry]
796
797
  );
797
798
  }, []);
798
- const unregister = React4.useCallback((id) => {
799
+ const unregister = React3.useCallback((id) => {
799
800
  setEntries((current) => current.filter((item) => item.id !== id));
800
801
  }, []);
801
- const closeAll = React4.useCallback(() => {
802
+ const closeAll = React3.useCallback(() => {
802
803
  for (const entry of [...entries].reverse()) {
803
804
  entry.close();
804
805
  }
805
806
  }, [entries]);
806
- const value = React4.useMemo(
807
+ const value = React3.useMemo(
807
808
  () => ({
808
809
  labels: { backLabel, closeLabel },
809
810
  container,
@@ -839,7 +840,7 @@ function FloatingSheetStack({
839
840
  DialogPrimitive.Overlay,
840
841
  {
841
842
  "data-slot": "floating-sheet-overlay",
842
- className: "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50"
843
+ className: "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/10 fixed z-50"
843
844
  }
844
845
  ),
845
846
  /* @__PURE__ */ jsxs4(
@@ -884,6 +885,47 @@ function FloatingSheetStack({
884
885
  import { ArrowLeftIcon, XIcon } from "lucide-react";
885
886
  import * as React5 from "react";
886
887
  import { createPortal } from "react-dom";
888
+
889
+ // src/hooks/use-floating-sheet-body-edges.ts
890
+ import * as React4 from "react";
891
+ function useFloatingSheetBodyEdges(containerRef, topSentinelRef, bottomSentinelRef, reportEdges) {
892
+ React4.useEffect(() => {
893
+ const container = containerRef.current;
894
+ const topSentinel = topSentinelRef.current;
895
+ const bottomSentinel = bottomSentinelRef.current;
896
+ if (!reportEdges || !container || !topSentinel || !bottomSentinel || typeof IntersectionObserver === "undefined") {
897
+ return;
898
+ }
899
+ let edges = floatingSheetDefaultEdges;
900
+ const edgeKeyByTarget = /* @__PURE__ */ new Map([
901
+ [topSentinel, "top"],
902
+ [bottomSentinel, "bottom"]
903
+ ]);
904
+ const observer = new IntersectionObserver(
905
+ (entries) => {
906
+ const next = { ...edges };
907
+ for (const entry of entries) {
908
+ const key = edgeKeyByTarget.get(entry.target);
909
+ if (!key) {
910
+ continue;
911
+ }
912
+ next[key] = entry.isIntersecting;
913
+ }
914
+ edges = next;
915
+ reportEdges(next);
916
+ },
917
+ { root: container, threshold: 0 }
918
+ );
919
+ observer.observe(topSentinel);
920
+ observer.observe(bottomSentinel);
921
+ return () => {
922
+ observer.disconnect();
923
+ reportEdges(floatingSheetDefaultEdges);
924
+ };
925
+ }, [containerRef, topSentinelRef, bottomSentinelRef, reportEdges]);
926
+ }
927
+
928
+ // src/components/ui/floating-sheet.tsx
887
929
  import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
888
930
  function FloatingSheet({
889
931
  open,
@@ -906,6 +948,9 @@ function FloatingSheet({
906
948
  const openerRef = React5.useRef(null);
907
949
  const panelRef = React5.useRef(null);
908
950
  const focusedRef = React5.useRef(false);
951
+ const [edges, setEdges] = React5.useState(
952
+ floatingSheetDefaultEdges
953
+ );
909
954
  React5.useEffect(() => {
910
955
  closeRef.current = close;
911
956
  titleRef.current = title;
@@ -985,7 +1030,11 @@ function FloatingSheet({
985
1030
  "header",
986
1031
  {
987
1032
  "data-slot": "floating-sheet-header",
988
- className: "gap-1 p-5 flex flex-col",
1033
+ className: cn(
1034
+ "gap-1 p-5 relative z-10 flex flex-col",
1035
+ scrollEdgeTransition,
1036
+ !edges.top && scrollShadowFromTop
1037
+ ),
989
1038
  children: [
990
1039
  index > 0 ? /* @__PURE__ */ jsxs5(
991
1040
  "button",
@@ -1024,7 +1073,7 @@ function FloatingSheet({
1024
1073
  ]
1025
1074
  }
1026
1075
  ),
1027
- children,
1076
+ /* @__PURE__ */ jsx7(FloatingSheetReportEdgesContext.Provider, { value: setEdges, children: /* @__PURE__ */ jsx7(FloatingSheetEdgesContext.Provider, { value: edges, children }) }),
1028
1077
  /* @__PURE__ */ jsx7(
1029
1078
  "button",
1030
1079
  {
@@ -1033,7 +1082,7 @@ function FloatingSheet({
1033
1082
  "aria-label": labels.closeLabel,
1034
1083
  onClick: closeAll,
1035
1084
  className: cn(
1036
- "top-4 right-4 size-9 shadow-xs absolute flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:pointer-events-none",
1085
+ "top-4 right-4 size-9 shadow-xs absolute z-20 flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:pointer-events-none",
1037
1086
  focusRing
1038
1087
  ),
1039
1088
  children: /* @__PURE__ */ jsx7(XIcon, { className: "size-4" })
@@ -1048,14 +1097,47 @@ function FloatingSheet({
1048
1097
  function FloatingSheetBody({
1049
1098
  className,
1050
1099
  slotName = "floating-sheet-body",
1100
+ children,
1051
1101
  ...props
1052
1102
  }) {
1053
- return /* @__PURE__ */ jsx7(
1103
+ const reportEdges = React5.useContext(FloatingSheetReportEdgesContext);
1104
+ const containerRef = React5.useRef(null);
1105
+ const topSentinelRef = React5.useRef(null);
1106
+ const bottomSentinelRef = React5.useRef(null);
1107
+ useFloatingSheetBodyEdges(
1108
+ containerRef,
1109
+ topSentinelRef,
1110
+ bottomSentinelRef,
1111
+ reportEdges
1112
+ );
1113
+ return /* @__PURE__ */ jsxs5(
1054
1114
  "div",
1055
1115
  {
1116
+ ref: containerRef,
1056
1117
  className: cn("p-5 flex-1 overflow-y-auto", className),
1057
1118
  ...props,
1058
- "data-slot": slotName
1119
+ "data-slot": slotName,
1120
+ children: [
1121
+ /* @__PURE__ */ jsx7(
1122
+ "div",
1123
+ {
1124
+ ref: topSentinelRef,
1125
+ "aria-hidden": "true",
1126
+ "data-slot": "floating-sheet-top-sentinel",
1127
+ className: "h-0"
1128
+ }
1129
+ ),
1130
+ children,
1131
+ /* @__PURE__ */ jsx7(
1132
+ "div",
1133
+ {
1134
+ ref: bottomSentinelRef,
1135
+ "aria-hidden": "true",
1136
+ "data-slot": "floating-sheet-bottom-sentinel",
1137
+ className: "h-0"
1138
+ }
1139
+ )
1140
+ ]
1059
1141
  }
1060
1142
  );
1061
1143
  }
@@ -1064,11 +1146,14 @@ function FloatingSheetFooter({
1064
1146
  slotName = "floating-sheet-footer",
1065
1147
  ...props
1066
1148
  }) {
1149
+ const edges = React5.useContext(FloatingSheetEdgesContext);
1067
1150
  return /* @__PURE__ */ jsx7(
1068
1151
  "div",
1069
1152
  {
1070
1153
  className: cn(
1071
- "gap-2 p-5 mt-auto flex items-center justify-end",
1154
+ "gap-2 p-5 relative z-10 mt-auto flex items-center justify-end",
1155
+ scrollEdgeTransition,
1156
+ !edges.bottom && scrollShadowFromBottom,
1072
1157
  className
1073
1158
  ),
1074
1159
  ...props,
@@ -1249,7 +1334,6 @@ export {
1249
1334
  SelectSeparator,
1250
1335
  SelectScrollUpButton,
1251
1336
  SelectScrollDownButton,
1252
- floatingSheetDefaultLabels,
1253
1337
  FloatingSheetStack,
1254
1338
  FloatingSheet,
1255
1339
  FloatingSheetBody,
@@ -1265,4 +1349,4 @@ export {
1265
1349
  TabsContent,
1266
1350
  Textarea
1267
1351
  };
1268
- //# sourceMappingURL=chunk-UCJTM3UM.js.map
1352
+ //# sourceMappingURL=chunk-RE4M2G2Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/confirm-dialog.tsx","../src/components/ui/calendar.tsx","../src/components/ui/command.tsx","../src/components/ui/popover.tsx","../src/components/ui/select.tsx","../src/components/ui/floating-sheet-stack.tsx","../src/components/ui/floating-sheet.tsx","../src/hooks/use-floating-sheet-body-edges.ts","../src/components/ui/input-otp.tsx","../src/components/ui/switch.tsx","../src/components/ui/tabs.tsx","../src/components/ui/textarea.tsx"],"sourcesContent":["import { Button } from '@/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/components/ui/dialog';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { cn } from '@/lib/utils';\nimport { useUiLabels } from '@/locales/context';\nimport type { SlotNameProps } from '@/types';\nimport { AlertCircle, ChevronRight } from 'lucide-react';\nimport { ReactNode, useEffect, useId, useState } from 'react';\n\nexport interface ConfirmDialogLabels {\n title: string;\n description: string;\n confirmText: string;\n cancelText: string;\n}\n\nexport const confirmDialogDefaultLabels: ConfirmDialogLabels = {\n title: 'Confirm Action',\n description:\n 'Are you sure you want to continue? This action cannot be undone.',\n confirmText: 'Confirm',\n cancelText: 'Cancel',\n};\n\ninterface ConfirmDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: ConfirmDialogLabels['title'];\n description?: ConfirmDialogLabels['description'] | ReactNode;\n confirmText?: ConfirmDialogLabels['confirmText'];\n cancelText?: ConfirmDialogLabels['cancelText'];\n variant?: 'destructive' | 'default';\n processing?: boolean;\n requiredValue?: string;\n requiredValueLabel?: string;\n onConfirm: () => void;\n onCancel?: () => void;\n}\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmText,\n cancelText,\n variant = 'destructive',\n processing = false,\n requiredValue,\n requiredValueLabel = 'Type {{value}} to confirm',\n onConfirm,\n onCancel,\n slotName = 'confirm-dialog',\n}: ConfirmDialogProps & SlotNameProps) {\n const labels = useUiLabels('confirmDialog', confirmDialogDefaultLabels, {\n title,\n confirmText,\n cancelText,\n });\n const resolvedDescription = description ?? labels.description;\n const inputId = useId();\n const [typedValue, setTypedValue] = useState('');\n const unlocked =\n requiredValue === undefined || typedValue === requiredValue;\n\n useEffect(() => {\n if (!open) {\n setTypedValue('');\n }\n }, [open]);\n\n const handleConfirm = () => {\n if (processing || !unlocked) {\n return;\n }\n onConfirm();\n onOpenChange(false);\n };\n\n const handleCancel = () => {\n if (processing) {\n return;\n }\n onCancel?.();\n onOpenChange(false);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-w-md p-0\" slotName={slotName}>\n <DialogHeader className=\"p-6 md:p-8\">\n <div className=\"mb-6 flex justify-center\">\n <div\n className={cn(\n 'size-16 rounded-3xl shadow-xl flex items-center justify-center',\n variant === 'destructive'\n ? 'bg-destructive text-destructive-foreground shadow-destructive/20'\n : 'bg-primary text-primary-foreground shadow-primary/20',\n )}\n >\n <AlertCircle className=\"h-8 w-8\" />\n </div>\n </div>\n <DialogTitle>{labels.title}</DialogTitle>\n <DialogDescription>{resolvedDescription}</DialogDescription>\n </DialogHeader>\n\n {requiredValue !== undefined && (\n <div\n data-slot=\"confirm-dialog-gate\"\n className=\"gap-2 px-6 md:px-8 flex flex-col\"\n >\n <Label htmlFor={inputId}>\n {requiredValueLabel.replace(\n '{{value}}',\n requiredValue,\n )}\n </Label>\n <Input\n id={inputId}\n value={typedValue}\n autoComplete=\"off\"\n disabled={processing}\n onChange={(event) =>\n setTypedValue(event.target.value)\n }\n />\n </div>\n )}\n\n <DialogFooter className=\"p-6 md:p-8\">\n <div className=\"gap-4 sm:grid-cols-2 grid w-full\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n disabled={processing}\n onClick={handleCancel}\n className=\"text-muted-foreground\"\n >\n {labels.cancelText}\n </Button>\n <Button\n variant={variant}\n disabled={processing || !unlocked}\n onClick={handleConfirm}\n >\n {labels.confirmText}\n <ChevronRight className=\"ml-2 h-5 w-5\" />\n </Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from 'lucide-react';\nimport * as React from 'react';\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from 'react-day-picker';\n\nimport { Button, buttonVariants } from '@/components/ui/button';\nimport { elevatedSurface, nestedSurfaceReset } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n slotName = 'calendar',\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n} & SlotNameProps) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n 'group/calendar p-4 [--cell-size:--spacing(8)] bg-card',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn(\n 'gap-4 md:flex-row relative flex flex-col',\n defaultClassNames.months,\n ),\n month: cn(\n 'gap-4 flex w-full flex-col',\n defaultClassNames.month,\n ),\n nav: cn(\n 'inset-x-0 top-0 gap-1 absolute flex w-full items-center justify-between',\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'p-0 size-(--cell-size) select-none aria-disabled:opacity-50',\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'p-0 size-(--cell-size) select-none aria-disabled:opacity-50',\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n 'flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)',\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n 'gap-1.5 text-sm font-medium flex h-(--cell-size) w-full items-center justify-center',\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n 'shadow-xs rounded-xl relative border border-border has-focus:outline-1 has-focus:outline-offset-0 has-focus:outline-ring has-focus:outline-solid',\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\n 'inset-0 absolute bg-popover opacity-0',\n defaultClassNames.dropdown,\n ),\n caption_label: cn(\n 'font-medium select-none',\n captionLayout === 'label'\n ? 'text-sm'\n : 'h-8 gap-1 pr-1 pl-2 text-sm [&>svg]:size-3.5 rounded-xl flex items-center [&>svg]:text-muted-foreground',\n defaultClassNames.caption_label,\n ),\n month_grid: cn(\n 'w-full border-collapse',\n defaultClassNames.month_grid,\n ),\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'font-normal rounded-xl flex-1 text-[0.8rem] text-muted-foreground select-none',\n defaultClassNames.weekday,\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn(\n 'w-(--cell-size) select-none',\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n 'text-[0.8rem] text-muted-foreground select-none',\n defaultClassNames.week_number,\n ),\n day: cn(\n 'group/day p-0 [&:last-child[data-selected=true]_button]:rounded-r-xl relative aspect-square h-full w-full text-center select-none',\n props.showWeekNumber\n ? '[&:nth-child(2)[data-selected=true]_button]:rounded-l-xl'\n : '[&:first-child[data-selected=true]_button]:rounded-l-xl',\n defaultClassNames.day,\n ),\n range_start: cn(\n 'rounded-l-xl bg-accent',\n defaultClassNames.range_start,\n ),\n range_middle: cn(\n 'rounded-none',\n defaultClassNames.range_middle,\n ),\n range_end: cn(\n 'rounded-r-xl bg-accent',\n defaultClassNames.range_end,\n ),\n today: cn(\n 'rounded-xl bg-accent text-accent-foreground data-[selected=true]:rounded-none',\n defaultClassNames.today,\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside,\n ),\n disabled: cn(\n 'text-muted-foreground opacity-50',\n defaultClassNames.disabled,\n ),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n ref={rootRef}\n className={cn(className)}\n {...props}\n data-slot={slotName}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return (\n <ChevronLeftIcon\n className={cn('size-4', className)}\n {...props}\n />\n );\n }\n\n if (orientation === 'right') {\n return (\n <ChevronRightIcon\n className={cn('size-4', className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon\n className={cn('size-4', className)}\n {...props}\n />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'gap-1 font-normal [&>span]:text-xs data-[range-end=true]:rounded-xl data-[range-end=true]:rounded-r-xl data-[range-start=true]:rounded-xl data-[range-start=true]:rounded-l-xl flex aspect-square size-auto w-full min-w-(--cell-size) flex-col leading-none group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-accent-foreground [&>span]:opacity-70',\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n","'use client';\n\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon, SearchXIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '@/components/ui/dialog';\nimport {\n elevatedSurface,\n fieldSurface,\n modalSurface,\n nestedSurfaceReset,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Command({\n className,\n slotName = 'command',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive> & SlotNameProps) {\n return (\n <CommandPrimitive\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n 'flex h-full w-full flex-col overflow-hidden bg-card text-card-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n hideCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n hideCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n `${modalSurface} gap-0 p-0 overflow-hidden`,\n className,\n )}\n hideCloseButton={hideCloseButton}\n >\n <Command className=\"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-item]]:py-2.5 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n slotName = 'command-input',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input> & SlotNameProps) {\n return (\n <div className=\"shrink-0 border-b border-border\">\n <div\n data-slot=\"command-input-wrapper\"\n className={cn(\n fieldSurface,\n 'h-11 gap-3 px-4 m-3 flex items-center',\n )}\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(\n 'h-11 text-base sm:text-sm font-medium flex w-full bg-transparent outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n </div>\n </div>\n );\n}\n\nfunction CommandList({\n className,\n slotName = 'command-list',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List> & SlotNameProps) {\n return (\n <CommandPrimitive.List\n className={cn(\n 'scroll-py-1 max-h-[300px] overflow-x-hidden overflow-y-auto',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandEmpty({\n className,\n children,\n slotName = 'command-empty',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty> & SlotNameProps) {\n return (\n <CommandPrimitive.Empty\n className={cn(\n 'gap-3 px-6 py-10 flex flex-col items-center justify-center text-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <span className=\"size-10 flex items-center justify-center rounded-full bg-surface-recessed text-muted-foreground\">\n <SearchXIcon className=\"size-5\" />\n </span>\n <span className=\"text-sm text-muted-foreground\">{children}</span>\n </CommandPrimitive.Empty>\n );\n}\n\nfunction CommandGroup({\n className,\n slotName = 'command-group',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group> & SlotNameProps) {\n return (\n <CommandPrimitive.Group\n className={cn(\n 'p-3 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium overflow-hidden text-foreground [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n slotName = 'command-separator',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator> & SlotNameProps) {\n return (\n <CommandPrimitive.Separator\n className={cn('mx-3 h-px bg-border', className)}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandItem({\n className,\n slotName = 'command-item',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item> & SlotNameProps) {\n return (\n <CommandPrimitive.Item\n className={cn(\n \"gap-2 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n slotName = 'command-shortcut',\n ...props\n}: React.ComponentProps<'span'> & SlotNameProps) {\n return (\n <span\n className={cn(\n 'text-xs tracking-widest ml-auto text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n","import { Popover as PopoverPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { useSheetPortalContainer } from '@/hooks/use-sheet-portal-container';\nimport { panelSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> &\n SlotNameProps & { container?: HTMLElement | null }\n>(\n (\n {\n className,\n align = 'center',\n sideOffset = 4,\n slotName = 'popover-content',\n container,\n ...props\n },\n ref,\n ) => {\n const portalContainer = useSheetPortalContainer(container);\n\n return (\n <PopoverPrimitive.Portal container={portalContainer}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n `${panelSurface} p-4 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-full origin-[--radix-popover-content-transform-origin] bg-popover/90 outline-none`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n </PopoverPrimitive.Portal>\n );\n },\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n","import * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { useSheetPortalContainer } from '@/hooks/use-sheet-portal-container';\nimport { fieldFocus, fieldSurface, menuSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Select({\n slotName = 'select',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root> & SlotNameProps) {\n return <SelectPrimitive.Root {...props} data-slot={slotName} />;\n}\n\nfunction SelectGroup({\n slotName = 'select-group',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group> & SlotNameProps) {\n return <SelectPrimitive.Group {...props} data-slot={slotName} />;\n}\n\nfunction SelectValue({\n slotName = 'select-value',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value> & SlotNameProps) {\n return <SelectPrimitive.Value {...props} data-slot={slotName} />;\n}\n\nfunction SelectTrigger({\n className,\n children,\n slotName = 'select-trigger',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & SlotNameProps) {\n return (\n <SelectPrimitive.Trigger\n className={cn(\n `${fieldSurface} h-11 px-4 font-medium *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0 [&>span]:line-clamp-1 ${fieldFocus}`,\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n slotName = 'select-content',\n container,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content> &\n SlotNameProps & { container?: HTMLElement | null }) {\n const portalContainer = useSheetPortalContainer(container);\n\n return (\n <SelectPrimitive.Portal container={portalContainer}>\n <SelectPrimitive.Content\n className={cn(\n `${menuSurface} max-h-96 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 relative z-50 min-w-[8rem] overflow-hidden bg-popover/95`,\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n data-slot={slotName}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'scroll-my-1 h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n slotName = 'select-label',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label> & SlotNameProps) {\n return (\n <SelectPrimitive.Label\n className={cn(\n 'px-2 py-1.5 text-xs font-medium tracking-wider text-muted-foreground uppercase',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n slotName = 'select-item',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item> & SlotNameProps) {\n return (\n <SelectPrimitive.Item\n className={cn(\n \"gap-2 rounded-xl py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 focus:font-semibold relative flex w-full cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center\",\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <span className=\"right-2 size-3.5 absolute flex items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n slotName = 'select-separator',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator> & SlotNameProps) {\n return (\n <SelectPrimitive.Separator\n className={cn(\n '-mx-1 my-1 pointer-events-none h-px bg-border',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n slotName = 'select-scroll-up-button',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton> &\n SlotNameProps) {\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\n 'py-1 flex cursor-default items-center justify-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n slotName = 'select-scroll-down-button',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton> &\n SlotNameProps) {\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\n 'py-1 flex cursor-default items-center justify-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as React from 'react';\n\nimport {\n FloatingSheetStackContext,\n floatingSheetDefaultLabels,\n type FloatingSheetLabels,\n type FloatingSheetStackContextValue,\n type FloatingSheetStackEntry,\n} from '@/components/ui/floating-sheet-context';\nimport { useUiLabels } from '@/locales/context';\nimport type { SlotNameProps } from '@/types';\n\nexport function FloatingSheetStack({\n children,\n labels,\n slotName = 'floating-sheet-stack',\n}: {\n children: React.ReactNode;\n labels?: Partial<FloatingSheetLabels>;\n} & SlotNameProps) {\n const { backLabel, closeLabel } = useUiLabels(\n 'floatingSheet',\n floatingSheetDefaultLabels,\n labels,\n );\n const [entries, setEntries] = React.useState<FloatingSheetStackEntry[]>([]);\n const [container, setContainer] = React.useState<HTMLElement | null>(null);\n\n const register = React.useCallback((entry: FloatingSheetStackEntry) => {\n setEntries((current) =>\n current.some((item) => item.id === entry.id)\n ? current.map((item) => (item.id === entry.id ? entry : item))\n : [...current, entry],\n );\n }, []);\n\n const unregister = React.useCallback((id: string) => {\n setEntries((current) => current.filter((item) => item.id !== id));\n }, []);\n\n const closeAll = React.useCallback(() => {\n for (const entry of [...entries].reverse()) {\n entry.close();\n }\n }, [entries]);\n\n const value = React.useMemo<FloatingSheetStackContextValue>(\n () => ({\n labels: { backLabel, closeLabel },\n container,\n entries,\n register,\n unregister,\n closeAll,\n }),\n [\n backLabel,\n closeLabel,\n container,\n entries,\n register,\n unregister,\n closeAll,\n ],\n );\n\n const top = entries.at(-1);\n\n return (\n <FloatingSheetStackContext.Provider value={value}>\n {children}\n\n <DialogPrimitive.Root\n open={entries.length > 0}\n onOpenChange={(open) => {\n if (!open) {\n closeAll();\n }\n }}\n >\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n data-slot=\"floating-sheet-overlay\"\n className=\"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/10 fixed z-50\"\n />\n <DialogPrimitive.Content\n aria-describedby={undefined}\n onEscapeKeyDown={(event) => {\n event.preventDefault();\n\n if (!top?.persistent) {\n top?.close();\n }\n }}\n onInteractOutside={(event) => {\n if (top?.persistent) {\n event.preventDefault();\n }\n }}\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n className=\"inset-2 sm:inset-y-4 sm:right-4 sm:left-auto sm:w-[calc(100vw-2rem)] sm:max-w-lg sm:p-0 fixed z-50 p-[env(safe-area-inset-top)_env(safe-area-inset-right)_env(safe-area-inset-bottom)_env(safe-area-inset-left)] outline-none\"\n data-slot={slotName}\n >\n <DialogPrimitive.Title className=\"sr-only\">\n {top?.title}\n </DialogPrimitive.Title>\n <div\n ref={setContainer}\n data-slot=\"floating-sheet-panels\"\n className=\"relative h-full w-full\"\n />\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n </FloatingSheetStackContext.Provider>\n );\n}\n","import { ArrowLeftIcon, XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n FLOATING_SHEET_OFFSET_LIMIT,\n floatingSheetDefaultEdges,\n floatingSheetDefaultLabels,\n FloatingSheetEdgesContext,\n FloatingSheetReportEdgesContext,\n useFloatingSheetStack,\n type FloatingSheetEdges,\n type FloatingSheetLabels,\n} from '@/components/ui/floating-sheet-context';\nimport { FloatingSheetStack } from '@/components/ui/floating-sheet-stack';\nimport { useFloatingSheetBodyEdges } from '@/hooks/use-floating-sheet-body-edges';\nimport {\n focusRing,\n modalSurface,\n scrollEdgeTransition,\n scrollShadowFromBottom,\n scrollShadowFromTop,\n} from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction FloatingSheet({\n open,\n onOpenChange,\n title,\n description,\n persistent = false,\n className,\n children,\n slotName = 'floating-sheet',\n ...props\n}: Omit<React.ComponentProps<'section'>, 'title'> & {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: React.ReactNode;\n description?: React.ReactNode;\n persistent?: boolean;\n} & SlotNameProps) {\n const { labels, container, entries, register, unregister, closeAll } =\n useFloatingSheetStack();\n const id = React.useId();\n const titleId = `${id}-title`;\n const descriptionId = `${id}-description`;\n const close = React.useCallback(() => onOpenChange(false), [onOpenChange]);\n const closeRef = React.useRef(close);\n const titleRef = React.useRef(title);\n const openerRef = React.useRef<Element | null>(null);\n const panelRef = React.useRef<HTMLElement | null>(null);\n const focusedRef = React.useRef(false);\n const [edges, setEdges] = React.useState<FloatingSheetEdges>(\n floatingSheetDefaultEdges,\n );\n\n React.useEffect(() => {\n closeRef.current = close;\n titleRef.current = title;\n });\n\n React.useEffect(() => {\n if (!open) {\n return;\n }\n\n register({\n id,\n title: titleRef.current,\n persistent,\n close: () => closeRef.current(),\n });\n }, [open, id, persistent, register]);\n\n React.useEffect(() => {\n if (!open) {\n return;\n }\n\n return () => unregister(id);\n }, [open, id, unregister]);\n\n const index = entries.findIndex((entry) => entry.id === id);\n const depth = index === -1 ? 0 : entries.length - 1 - index;\n const isTop = index !== -1 && depth === 0;\n\n React.useEffect(() => {\n if (open) {\n openerRef.current = document.activeElement;\n\n return;\n }\n\n const opener = openerRef.current;\n openerRef.current = null;\n\n if (opener instanceof HTMLElement && document.contains(opener)) {\n opener.focus();\n }\n }, [open]);\n\n React.useEffect(() => {\n if (!open) {\n focusedRef.current = false;\n\n return;\n }\n\n if (!isTop || focusedRef.current) {\n return;\n }\n\n focusedRef.current = true;\n\n const frame = requestAnimationFrame(() => panelRef.current?.focus());\n\n return () => cancelAnimationFrame(frame);\n }, [open, isTop]);\n\n if (!open || !container) {\n return null;\n }\n\n const offset = Math.min(depth, FLOATING_SHEET_OFFSET_LIMIT);\n\n return createPortal(\n <section\n ref={panelRef}\n data-depth={depth}\n role=\"dialog\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n tabIndex={-1}\n inert={!isTop}\n style={{\n transform: `translateX(-${offset * 26}px) scale(${1 - offset * 0.035})`,\n zIndex: index,\n }}\n className={cn(\n `${modalSurface} inset-0 ease-out absolute flex flex-col overflow-hidden transition-transform duration-300 outline-none`,\n depth > 0 && 'max-sm:hidden pointer-events-none',\n depth > FLOATING_SHEET_OFFSET_LIMIT && 'hidden',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n <header\n data-slot=\"floating-sheet-header\"\n className={cn(\n 'gap-1 p-5 relative z-10 flex flex-col',\n scrollEdgeTransition,\n !edges.top && scrollShadowFromTop,\n )}\n >\n {index > 0 ? (\n <button\n type=\"button\"\n data-slot=\"floating-sheet-back\"\n onClick={close}\n className={cn(\n 'gap-2 h-8 -ml-2 px-2 text-sm font-medium inline-flex w-fit items-center rounded-full text-muted-foreground transition-colors hover:bg-accent hover:text-foreground',\n focusRing,\n )}\n >\n <ArrowLeftIcon className=\"size-4\" />\n {labels.backLabel}\n </button>\n ) : null}\n\n <h2\n id={titleId}\n data-slot=\"floating-sheet-title\"\n className=\"pr-10 text-lg font-semibold text-foreground\"\n >\n {title}\n </h2>\n\n {description ? (\n <p\n id={descriptionId}\n data-slot=\"floating-sheet-description\"\n className=\"text-sm text-muted-foreground\"\n >\n {description}\n </p>\n ) : null}\n </header>\n\n <FloatingSheetReportEdgesContext.Provider value={setEdges}>\n <FloatingSheetEdgesContext.Provider value={edges}>\n {children}\n </FloatingSheetEdgesContext.Provider>\n </FloatingSheetReportEdgesContext.Provider>\n\n <button\n type=\"button\"\n data-slot=\"floating-sheet-close\"\n aria-label={labels.closeLabel}\n onClick={closeAll}\n className={cn(\n 'top-4 right-4 size-9 shadow-xs absolute z-20 flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:pointer-events-none',\n focusRing,\n )}\n >\n <XIcon className=\"size-4\" />\n </button>\n </section>,\n container,\n );\n}\n\nfunction FloatingSheetBody({\n className,\n slotName = 'floating-sheet-body',\n children,\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n const reportEdges = React.useContext(FloatingSheetReportEdgesContext);\n const containerRef = React.useRef<HTMLDivElement | null>(null);\n const topSentinelRef = React.useRef<HTMLDivElement | null>(null);\n const bottomSentinelRef = React.useRef<HTMLDivElement | null>(null);\n\n useFloatingSheetBodyEdges(\n containerRef,\n topSentinelRef,\n bottomSentinelRef,\n reportEdges,\n );\n\n return (\n <div\n ref={containerRef}\n className={cn('p-5 flex-1 overflow-y-auto', className)}\n {...props}\n data-slot={slotName}\n >\n <div\n ref={topSentinelRef}\n aria-hidden=\"true\"\n data-slot=\"floating-sheet-top-sentinel\"\n className=\"h-0\"\n />\n {children}\n <div\n ref={bottomSentinelRef}\n aria-hidden=\"true\"\n data-slot=\"floating-sheet-bottom-sentinel\"\n className=\"h-0\"\n />\n </div>\n );\n}\n\nfunction FloatingSheetFooter({\n className,\n slotName = 'floating-sheet-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n const edges = React.useContext(FloatingSheetEdgesContext);\n\n return (\n <div\n className={cn(\n 'gap-2 p-5 relative z-10 mt-auto flex items-center justify-end',\n scrollEdgeTransition,\n !edges.bottom && scrollShadowFromBottom,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n FloatingSheet,\n FloatingSheetBody,\n floatingSheetDefaultLabels,\n FloatingSheetFooter,\n FloatingSheetStack,\n type FloatingSheetLabels,\n};\n","import * as React from 'react';\n\nimport {\n floatingSheetDefaultEdges,\n type FloatingSheetEdges,\n} from '@/components/ui/floating-sheet-context';\n\nexport function useFloatingSheetBodyEdges(\n containerRef: React.RefObject<HTMLElement | null>,\n topSentinelRef: React.RefObject<HTMLElement | null>,\n bottomSentinelRef: React.RefObject<HTMLElement | null>,\n reportEdges: ((edges: FloatingSheetEdges) => void) | null,\n): void {\n React.useEffect(() => {\n const container = containerRef.current;\n const topSentinel = topSentinelRef.current;\n const bottomSentinel = bottomSentinelRef.current;\n\n if (\n !reportEdges ||\n !container ||\n !topSentinel ||\n !bottomSentinel ||\n typeof IntersectionObserver === 'undefined'\n ) {\n return;\n }\n\n let edges = floatingSheetDefaultEdges;\n const edgeKeyByTarget = new Map<Element, keyof FloatingSheetEdges>([\n [topSentinel, 'top'],\n [bottomSentinel, 'bottom'],\n ]);\n\n const observer = new IntersectionObserver(\n (entries) => {\n const next = { ...edges };\n\n for (const entry of entries) {\n const key = edgeKeyByTarget.get(entry.target);\n\n if (!key) {\n continue;\n }\n\n next[key] = entry.isIntersecting;\n }\n\n edges = next;\n reportEdges(next);\n },\n { root: container, threshold: 0 },\n );\n\n observer.observe(topSentinel);\n observer.observe(bottomSentinel);\n\n return () => {\n observer.disconnect();\n reportEdges(floatingSheetDefaultEdges);\n };\n }, [containerRef, topSentinelRef, bottomSentinelRef, reportEdges]);\n}\n","import { OTPInput, OTPInputContext } from 'input-otp';\nimport { Minus } from 'lucide-react';\nimport * as React from 'react';\n\nimport { controlFill, glassControl } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n 'gap-2 flex items-center has-[:disabled]:opacity-50',\n containerClassName,\n )}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n));\nInputOTP.displayName = 'InputOTP';\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n));\nInputOTPGroup.displayName = 'InputOTPGroup';\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'> & { index: number } & SlotNameProps\n>(({ index, className, slotName = 'input-otp-slot', ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n return (\n <div\n ref={ref}\n className={cn(\n glassControl,\n controlFill,\n 'size-11 text-base sm:text-sm font-medium first:rounded-l-2xl last:rounded-r-2xl relative flex items-center justify-center rounded-none transition-all',\n isActive && 'z-10 ring-[3px] ring-ring/50',\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"inset-0 pointer-events-none absolute flex items-center justify-center\">\n <div className=\"h-4 animate-caret-blink w-px bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = 'InputOTPSlot';\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n));\nInputOTPSeparator.displayName = 'InputOTPSeparator';\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n","import * as SwitchPrimitives from '@radix-ui/react-switch';\nimport * as React from 'react';\n\nimport { focusRing } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SlotNameProps\n>(({ className, slotName = 'switch', ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n `peer h-6 w-11 shadow-sm inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent transition-colors disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input ${focusRing}`,\n className,\n )}\n {...props}\n ref={ref}\n data-slot={slotName}\n >\n <SwitchPrimitives.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'size-5 shadow-lg data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 pointer-events-none block rounded-full bg-background ring-0 transition-transform',\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\n\nimport { elevatedSurface, focusRing, nestedSurfaceReset } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Tabs = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> & SlotNameProps\n>(({ slotName = 'tabs', ...props }, ref) => (\n <TabsPrimitive.Root ref={ref} {...props} data-slot={slotName} />\n));\nTabs.displayName = TabsPrimitive.Root.displayName;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & SlotNameProps\n>(({ className, slotName = 'tabs-list', ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'h-11 p-1.5 rounded-2xl inline-flex items-center justify-center bg-muted text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & SlotNameProps\n>(({ className, slotName = 'tabs-trigger', ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n `px-4 text-sm font-medium data-[state=active]:shadow-sm h-8 rounded-xl data-[state=active]:font-semibold inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-tab-active data-[state=active]:text-foreground ${focusRing}`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> & SlotNameProps\n>(({ className, slotName = 'tabs-content', ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n elevatedSurface,\n nestedSurfaceReset,\n `mt-2 p-5 bg-card ${focusRing}`,\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n","import * as React from 'react';\n\nimport { fieldFocus, fieldSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<'textarea'> & SlotNameProps\n>(({ className, slotName = 'textarea', ...props }, ref) => {\n return (\n <textarea\n className={cn(\n fieldSurface,\n 'px-4 py-3 font-medium min-h-24 flex w-full resize-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n fieldFocus,\n 'aria-invalid:border-destructive aria-invalid:ring-destructive/20',\n className,\n )}\n ref={ref}\n {...props}\n data-slot={slotName}\n />\n );\n});\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":"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","names":["jsx","className","props","jsx","jsxs","React","jsx","ChevronDownIcon","jsx","jsxs","ChevronDownIcon","React","jsx","jsxs","React","React","jsx","jsxs","React","jsx","jsxs","React","jsx","React","jsx","React","jsx"]}
package/dist/code.js CHANGED
@@ -3,10 +3,10 @@
3
3
  "use client";
4
4
  import {
5
5
  CopyButton
6
- } from "./chunk-UXVI326F.js";
6
+ } from "./chunk-PCYYU332.js";
7
7
  import {
8
8
  useUiLabels
9
- } from "./chunk-E26KKMGS.js";
9
+ } from "./chunk-OS7YY5R4.js";
10
10
  import {
11
11
  Button,
12
12
  cn,
@@ -15,7 +15,7 @@ import {
15
15
  elevatedSurface,
16
16
  focusRing,
17
17
  nestedSurfaceReset
18
- } from "./chunk-KHOA4TEI.js";
18
+ } from "./chunk-PPWJK5T3.js";
19
19
 
20
20
  // src/components/ui/code.tsx
21
21
  import { jsx } from "react/jsx-runtime";
@@ -249,12 +249,13 @@ interface DataTableRowAction<TData> {
249
249
  label: string;
250
250
  icon?: IconComponent;
251
251
  variant?: 'default' | 'destructive';
252
+ hidden?: (row: TData) => boolean;
252
253
  onClick: (row: TData) => void;
253
254
  }
254
255
  declare function RowActionsMenu<TData>({ row, actions, slotName, }: {
255
256
  row: TData;
256
257
  actions: DataTableRowAction<TData>[];
257
- } & SlotNameProps): React.JSX.Element;
258
+ } & SlotNameProps): React.JSX.Element | null;
258
259
 
259
260
  interface DataTableLabels {
260
261
  searchPlaceholder: string;
@@ -403,6 +404,13 @@ type UiLabels = {
403
404
  dateFilterOperators?: DateFilterOption[];
404
405
  dateFilterUnits?: DateFilterOption[];
405
406
  };
407
+ type FullUiLabels = {
408
+ [Section in keyof UiLabelSections]: UiLabelSections[Section];
409
+ } & {
410
+ dateFilterPresets: DateFilterOption[];
411
+ dateFilterOperators: DateFilterOption[];
412
+ dateFilterUnits: DateFilterOption[];
413
+ };
406
414
  declare function UiLocaleProvider({ labels, children, }: {
407
415
  labels: UiLabels;
408
416
  children: ReactNode;
@@ -410,4 +418,4 @@ declare function UiLocaleProvider({ labels, children, }: {
410
418
  declare function useUiLocale(): UiLabels;
411
419
  declare function useUiLabels<Section extends keyof UiLabelSections>(section: Section, defaults: UiLabelSections[Section], overrides?: Partial<UiLabelSections[Section]>): UiLabelSections[Section];
412
420
 
413
- export { DatePicker as $, useUiLocale as A, Alert as B, type CopyButtonLabels as C, type DateFilterValue as D, AlertDescription as E, type FloatingSheetLabels as F, type AlertLabels as G, AlertTitle as H, AppearanceToggle as I, type AppearanceToggleLabels as J, type AppearanceToggleProps as K, Combobox as L, type ComboboxLabels as M, type ComboboxOption as N, type ComboboxProps as O, ConfirmDialog as P, type ConfirmDialogLabels as Q, CopyButton as R, SettingsEntry as S, type CopyButtonProps as T, type UiLabelSections as U, DataTable as V, type DataTableFacetedFilterLabels as W, type DataTableFilter as X, type DataTableLabels as Y, type DataTableRowAction as Z, type DataTableServerFilter as _, type DateFilterLabels as a, type DatePickerLabels as a0, type DatePickerProps as a1, DateRangeFilter as a2, type DateRangeFilterLabels as a3, type DateRangeFilterProps as a4, FacetedFilter as a5, PasswordInput as a6, type PasswordInputLabels as a7, RowActionsMenu as a8, SAVED_DURATION as a9, SaveStatus as aa, type SaveStatusLabels as ab, type SaveStatusProps as ac, type SaveStatusState as ad, ServerFacetedFilter as ae, alertDefaultLabels as af, appearanceToggleDefaultLabels as ag, comboboxDefaultLabels as ah, confirmDialogDefaultLabels as ai, copyButtonLabels as aj, dataTableDefaultLabels as ak, dataTableFacetedFilterDefaultLabels as al, datePickerDefaultLabels as am, dateRangeFilterDefaultLabels as an, floatingSheetDefaultLabels as ao, passwordInputDefaultLabels as ap, saveStatusLabels as aq, type CommandPaletteLabels as ar, type DateFilterOption as b, type DateFilterUnit as c, CommandPalette as d, type CommandPaletteGroup as e, type CommandPaletteItem as f, type CommandPaletteProps as g, DEFAULT_LABELS as h, DEFAULT_OPERATORS as i, DEFAULT_PRESETS as j, DEFAULT_UNITS as k, type DateFilterMode as l, type DateFilterOperator as m, type SettingsEntryProps as n, SettingsGroup as o, type SettingsGroupProps as p, type SettingsLabels as q, SettingsPage as r, type SettingsPageProps as s, SettingsSection as t, type SettingsSectionProps as u, type UiLabels as v, UiLocaleProvider as w, settingsLabels as x, useCommandPalette as y, useUiLabels as z };
421
+ export { DatePicker as $, useUiLocale as A, Alert as B, type CopyButtonLabels as C, type DateFilterValue as D, AlertDescription as E, type FloatingSheetLabels as F, type AlertLabels as G, AlertTitle as H, AppearanceToggle as I, type AppearanceToggleLabels as J, type AppearanceToggleProps as K, Combobox as L, type ComboboxLabels as M, type ComboboxOption as N, type ComboboxProps as O, ConfirmDialog as P, type ConfirmDialogLabels as Q, CopyButton as R, SettingsEntry as S, type CopyButtonProps as T, type UiLabelSections as U, DataTable as V, type DataTableFacetedFilterLabels as W, type DataTableFilter as X, type DataTableLabels as Y, type DataTableRowAction as Z, type DataTableServerFilter as _, type DateFilterLabels as a, type DatePickerLabels as a0, type DatePickerProps as a1, DateRangeFilter as a2, type DateRangeFilterLabels as a3, type DateRangeFilterProps as a4, FacetedFilter as a5, PasswordInput as a6, type PasswordInputLabels as a7, RowActionsMenu as a8, SAVED_DURATION as a9, SaveStatus as aa, type SaveStatusLabels as ab, type SaveStatusProps as ac, type SaveStatusState as ad, ServerFacetedFilter as ae, alertDefaultLabels as af, appearanceToggleDefaultLabels as ag, comboboxDefaultLabels as ah, confirmDialogDefaultLabels as ai, copyButtonLabels as aj, dataTableDefaultLabels as ak, dataTableFacetedFilterDefaultLabels as al, datePickerDefaultLabels as am, dateRangeFilterDefaultLabels as an, floatingSheetDefaultLabels as ao, passwordInputDefaultLabels as ap, saveStatusLabels as aq, type CommandPaletteLabels as ar, type FullUiLabels as as, type DateFilterOption as b, type DateFilterUnit as c, CommandPalette as d, type CommandPaletteGroup as e, type CommandPaletteItem as f, type CommandPaletteProps as g, DEFAULT_LABELS as h, DEFAULT_OPERATORS as i, DEFAULT_PRESETS as j, DEFAULT_UNITS as k, type DateFilterMode as l, type DateFilterOperator as m, type SettingsEntryProps as n, SettingsGroup as o, type SettingsGroupProps as p, type SettingsLabels as q, SettingsPage as r, type SettingsPageProps as s, SettingsSection as t, type SettingsSectionProps as u, type UiLabels as v, UiLocaleProvider as w, settingsLabels as x, useCommandPalette as y, useUiLabels as z };
package/dist/editor.js CHANGED
@@ -3,7 +3,7 @@
3
3
  "use client";
4
4
  import {
5
5
  Toggle
6
- } from "./chunk-YBXRJSR3.js";
6
+ } from "./chunk-CAUTXZ4U.js";
7
7
  import {
8
8
  Dialog,
9
9
  DialogContent,
@@ -11,20 +11,20 @@ import {
11
11
  DialogFooter,
12
12
  DialogHeader,
13
13
  DialogTitle
14
- } from "./chunk-EYPM6IMS.js";
14
+ } from "./chunk-QZRSQVCN.js";
15
15
  import {
16
16
  Label
17
- } from "./chunk-TM5MN3MI.js";
17
+ } from "./chunk-BP2YDMMI.js";
18
18
  import {
19
19
  Input,
20
20
  Separator
21
- } from "./chunk-3Z2VGVPI.js";
21
+ } from "./chunk-53V4J7MC.js";
22
22
  import {
23
23
  Button,
24
24
  cn,
25
25
  fieldSurface,
26
26
  focusRing
27
- } from "./chunk-KHOA4TEI.js";
27
+ } from "./chunk-PPWJK5T3.js";
28
28
 
29
29
  // src/components/ui/editor/content.tsx
30
30
  import { EditorContent as TiptapContent } from "@tiptap/react";