@akira-io/ui 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/blocks.d.ts +25 -25
  2. package/dist/blocks.js +74 -59
  3. package/dist/blocks.js.map +1 -1
  4. package/dist/{button-B6wQRe7p.d.ts → button-Bj6My68b.d.ts} +2 -1
  5. package/dist/{chunk-JAHTUAQL.js → chunk-2WIIRDHT.js} +5 -4
  6. package/dist/chunk-2WIIRDHT.js.map +1 -0
  7. package/dist/{chunk-KYWA5UYN.js → chunk-4SOQAVUP.js} +5 -5
  8. package/dist/{chunk-KYWA5UYN.js.map → chunk-4SOQAVUP.js.map} +1 -1
  9. package/dist/{chunk-UUTXPPRN.js → chunk-CFDDAFPJ.js} +125 -82
  10. package/dist/chunk-CFDDAFPJ.js.map +1 -0
  11. package/dist/{chunk-LKSM3WLK.js → chunk-FWQFB37J.js} +6 -5
  12. package/dist/chunk-FWQFB37J.js.map +1 -0
  13. package/dist/{chunk-DSD7MVLL.js → chunk-ODYCBCKS.js} +10 -7
  14. package/dist/chunk-ODYCBCKS.js.map +1 -0
  15. package/dist/{chunk-MNGNBEYN.js → chunk-QHZWW55M.js} +245 -156
  16. package/dist/chunk-QHZWW55M.js.map +1 -0
  17. package/dist/{chunk-SA5LM2GD.js → chunk-RPCL7VFQ.js} +41 -20
  18. package/dist/chunk-RPCL7VFQ.js.map +1 -0
  19. package/dist/{chunk-6QM5BA7B.js → chunk-T2INZOCM.js} +40 -23
  20. package/dist/chunk-T2INZOCM.js.map +1 -0
  21. package/dist/{chunk-UUEWFCKT.js → chunk-TGF54WAO.js} +6 -5
  22. package/dist/chunk-TGF54WAO.js.map +1 -0
  23. package/dist/{chunk-6X4TKSF6.js → chunk-XZCC6MTE.js} +11 -6
  24. package/dist/chunk-XZCC6MTE.js.map +1 -0
  25. package/dist/code.d.ts +5 -2
  26. package/dist/code.js +51 -52
  27. package/dist/code.js.map +1 -1
  28. package/dist/{context-VgHq4U98.d.ts → context-YWbxMH0C.d.ts} +26 -27
  29. package/dist/editor.d.ts +8 -6
  30. package/dist/editor.js +32 -18
  31. package/dist/editor.js.map +1 -1
  32. package/dist/index.d.ts +229 -229
  33. package/dist/index.js +431 -325
  34. package/dist/index.js.map +1 -1
  35. package/dist/inertia.d.ts +1 -1
  36. package/dist/inertia.js +5 -5
  37. package/dist/input-Dpi7pXeR.d.ts +6 -0
  38. package/dist/{json-viewer-BTHBACj9.d.ts → json-viewer-BARA2RCW.d.ts} +3 -2
  39. package/dist/locales/pt.d.ts +8 -8
  40. package/dist/{password-input-r39y2pCT.d.ts → password-input-DcXX7SG9.d.ts} +8 -7
  41. package/dist/shells.d.ts +7 -7
  42. package/dist/shells.js +10 -9
  43. package/dist/shells.js.map +1 -1
  44. package/dist/sidebar-DqkFRUxQ.d.ts +81 -0
  45. package/dist/{types-CT0rBsFc.d.ts → types-B-eGPoFD.d.ts} +3 -2
  46. package/dist/{types-B4QS3h5p.d.ts → types-cmBL8zOc.d.ts} +4 -1
  47. package/package.json +3 -3
  48. package/dist/chunk-6QM5BA7B.js.map +0 -1
  49. package/dist/chunk-6X4TKSF6.js.map +0 -1
  50. package/dist/chunk-DSD7MVLL.js.map +0 -1
  51. package/dist/chunk-JAHTUAQL.js.map +0 -1
  52. package/dist/chunk-LKSM3WLK.js.map +0 -1
  53. package/dist/chunk-MNGNBEYN.js.map +0 -1
  54. package/dist/chunk-SA5LM2GD.js.map +0 -1
  55. package/dist/chunk-UUEWFCKT.js.map +0 -1
  56. package/dist/chunk-UUTXPPRN.js.map +0 -1
  57. package/dist/input-4uxAHW6y.d.ts +0 -5
  58. package/dist/sidebar-BhOIlSjt.d.ts +0 -80
package/dist/blocks.js CHANGED
@@ -1,13 +1,13 @@
1
- import { CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, ConfirmDialog, Popover, PopoverTrigger, PopoverContent, FloatingSheet, FloatingSheetBody, FloatingSheetFooter, Tabs, TabsList, TabsTrigger, TabsContent, Textarea, Switch, FieldError, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, InputOTP, InputOTPGroup, InputOTPSlot, Alert, AlertDescription, Calendar } from './chunk-UUTXPPRN.js';
2
- import { CopyButton } from './chunk-JAHTUAQL.js';
3
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, Label } from './chunk-6QM5BA7B.js';
4
- import { Card } from './chunk-SA5LM2GD.js';
1
+ import { CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, ConfirmDialog, Popover, PopoverTrigger, PopoverContent, FloatingSheet, FloatingSheetBody, FloatingSheetFooter, Tabs, TabsList, TabsTrigger, TabsContent, Textarea, Switch, FieldError, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, InputOTP, InputOTPGroup, InputOTPSlot, Alert, AlertDescription, Calendar } from './chunk-CFDDAFPJ.js';
2
+ import { CopyButton } from './chunk-2WIIRDHT.js';
3
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, Label } from './chunk-T2INZOCM.js';
4
+ import { Card } from './chunk-RPCL7VFQ.js';
5
5
  export { DEFAULT_TOUR_LABELS, TourProvider, resolveSteps, shouldStartTour, stepsForBreakpoint, useTour, useTourController } from './chunk-YOVY3KT6.js';
6
6
  import { useUiLabels, useUiLocale } from './chunk-5AJFQ6C4.js';
7
7
  export { UiLocaleProvider, useUiLabels, useUiLocale } from './chunk-5AJFQ6C4.js';
8
8
  import { resolveLink } from './chunk-L2H5GIF7.js';
9
- import { Input } from './chunk-6X4TKSF6.js';
10
- import { Button, cn, elevatedSurface, nestedSurfaceReset, recessedSurface, compactRadius, controlRadius, Spinner } from './chunk-DSD7MVLL.js';
9
+ import { Input } from './chunk-XZCC6MTE.js';
10
+ import { Button, cn, elevatedSurface, nestedSurfaceReset, recessedSurface, compactRadius, controlRadius, Spinner } from './chunk-ODYCBCKS.js';
11
11
  import { createContext, useState, useCallback, useEffect, useContext, useId, useRef } from 'react';
12
12
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
13
13
  import { TriangleAlert, CalendarDays, ArrowLeft, ChevronRight, AlertCircle, ShieldOff, EyeOff, Eye, RefreshCw, ChevronLeft, ArrowLeftToLine, X, ArrowRight, ArrowUpRight, ArrowDownRight } from 'lucide-react';
@@ -102,7 +102,8 @@ function DangerZone({
102
102
  processing = false,
103
103
  labels,
104
104
  footer,
105
- className
105
+ className,
106
+ slotName = "danger-zone"
106
107
  }) {
107
108
  const copy = { ...dangerZoneLabels, ...labels };
108
109
  const [activeId, setActiveId] = useState(null);
@@ -110,13 +111,13 @@ function DangerZone({
110
111
  return /* @__PURE__ */ jsxs(
111
112
  "section",
112
113
  {
113
- "data-slot": "danger-zone",
114
114
  className: cn(
115
115
  elevatedSurface,
116
116
  nestedSurfaceReset,
117
117
  "gap-6 p-6 flex flex-col bg-destructive/5 ring-destructive/30",
118
118
  className
119
119
  ),
120
+ "data-slot": slotName,
120
121
  children: [
121
122
  /* @__PURE__ */ jsxs("div", { "data-slot": "danger-zone-header", className: "gap-3 flex", children: [
122
123
  /* @__PURE__ */ jsx("span", { className: "size-11 rounded-2xl flex shrink-0 items-center justify-center bg-destructive/10 text-destructive", children: /* @__PURE__ */ jsx(TriangleAlert, { className: "size-5" }) }),
@@ -813,13 +814,14 @@ function FormOverlayActions({
813
814
  submit = false,
814
815
  className,
815
816
  onCancel,
816
- onSave
817
+ onSave,
818
+ slotName = "form-overlay-actions"
817
819
  }) {
818
820
  return /* @__PURE__ */ jsxs(
819
821
  "div",
820
822
  {
821
- "data-slot": "form-overlay-actions",
822
823
  className: cn("gap-2 flex items-center justify-end", className),
824
+ "data-slot": slotName,
823
825
  children: [
824
826
  /* @__PURE__ */ jsx(
825
827
  Button,
@@ -858,7 +860,8 @@ function DetailEditSheet({
858
860
  className,
859
861
  children,
860
862
  onSave,
861
- onCancel
863
+ onCancel,
864
+ slotName = "detail-edit-sheet"
862
865
  }) {
863
866
  const handleSubmit = (event) => {
864
867
  event.preventDefault();
@@ -886,9 +889,9 @@ function DetailEditSheet({
886
889
  children: /* @__PURE__ */ jsxs(
887
890
  "form",
888
891
  {
889
- "data-slot": "detail-edit-sheet",
890
892
  onSubmit: handleSubmit,
891
893
  className: "min-h-0 flex flex-1 flex-col",
894
+ "data-slot": slotName,
892
895
  children: [
893
896
  /* @__PURE__ */ jsx(FloatingSheetBody, { children }),
894
897
  /* @__PURE__ */ jsx(FloatingSheetFooter, { children: /* @__PURE__ */ jsx(
@@ -918,7 +921,8 @@ function FormDialog({
918
921
  className,
919
922
  children,
920
923
  onSave,
921
- onCancel
924
+ onCancel,
925
+ slotName = "form-dialog"
922
926
  }) {
923
927
  const handleSubmit = (event) => {
924
928
  event.preventDefault();
@@ -952,11 +956,11 @@ function FormDialog({
952
956
  children: /* @__PURE__ */ jsx(
953
957
  DialogContent,
954
958
  {
955
- "data-slot": "form-dialog",
956
959
  ...description ? {} : { "aria-describedby": void 0 },
957
960
  className: cn("gap-0 p-0", className),
958
961
  onEscapeKeyDown: blockWhileProcessing,
959
962
  onInteractOutside: blockWhileProcessing,
963
+ slotName,
960
964
  children: /* @__PURE__ */ jsxs(
961
965
  "form",
962
966
  {
@@ -1013,14 +1017,15 @@ function InfoField({
1013
1017
  copyLabel,
1014
1018
  copiedLabel,
1015
1019
  iconClassName,
1016
- className
1020
+ className,
1021
+ slotName = "info-field"
1017
1022
  }) {
1018
1023
  const text = copyableText(value, copyValue);
1019
1024
  return /* @__PURE__ */ jsxs(
1020
1025
  "div",
1021
1026
  {
1022
- "data-slot": "info-field",
1023
1027
  className: cn("gap-3 flex items-center", className),
1028
+ "data-slot": slotName,
1024
1029
  children: [
1025
1030
  /* @__PURE__ */ jsx("div", { className: cn("p-2 rounded-xl bg-muted", iconClassName), children: /* @__PURE__ */ jsx(Icon, { className: "size-5 text-muted-foreground" }) }),
1026
1031
  /* @__PURE__ */ jsxs("div", { children: [
@@ -1155,12 +1160,12 @@ function SettingsCard({
1155
1160
  control,
1156
1161
  children,
1157
1162
  inset = false,
1158
- className
1163
+ className,
1164
+ slotName = "settings-card"
1159
1165
  }) {
1160
1166
  return /* @__PURE__ */ jsxs(
1161
1167
  "section",
1162
1168
  {
1163
- "data-slot": "settings-card",
1164
1169
  "data-inset": inset || void 0,
1165
1170
  className: cn(
1166
1171
  elevatedSurface,
@@ -1168,6 +1173,7 @@ function SettingsCard({
1168
1173
  inset && recessedSurface,
1169
1174
  className
1170
1175
  ),
1176
+ "data-slot": slotName,
1171
1177
  children: [
1172
1178
  /* @__PURE__ */ jsxs("div", { className: "gap-4 sm:flex-row sm:items-center sm:justify-between flex flex-col", children: [
1173
1179
  /* @__PURE__ */ jsxs("div", { className: "gap-3 flex items-center", children: [
@@ -1198,12 +1204,12 @@ function SettingsPanel({
1198
1204
  description,
1199
1205
  children,
1200
1206
  inset = true,
1201
- className
1207
+ className,
1208
+ slotName = "settings-panel"
1202
1209
  }) {
1203
1210
  return /* @__PURE__ */ jsxs(
1204
1211
  "div",
1205
1212
  {
1206
- "data-slot": "settings-panel",
1207
1213
  "data-inset": inset || void 0,
1208
1214
  className: cn(
1209
1215
  elevatedSurface,
@@ -1211,6 +1217,7 @@ function SettingsPanel({
1211
1217
  inset && recessedSurface,
1212
1218
  className
1213
1219
  ),
1220
+ "data-slot": slotName,
1214
1221
  children: [
1215
1222
  (title || description) && /* @__PURE__ */ jsxs("div", { children: [
1216
1223
  title && /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-foreground", children: title }),
@@ -1259,16 +1266,17 @@ function SettingsField({
1259
1266
  error,
1260
1267
  required,
1261
1268
  className,
1262
- children
1269
+ children,
1270
+ slotName = "settings-field"
1263
1271
  }) {
1264
1272
  const generated = useId();
1265
1273
  const fieldId = id ?? generated;
1266
1274
  return /* @__PURE__ */ jsxs(
1267
1275
  "div",
1268
1276
  {
1269
- "data-slot": "settings-field",
1270
1277
  "data-invalid": error ? true : void 0,
1271
1278
  className: cn("space-y-2 py-1", className),
1279
+ "data-slot": slotName,
1272
1280
  children: [
1273
1281
  /* @__PURE__ */ jsxs(Label, { htmlFor: fieldId, children: [
1274
1282
  label,
@@ -1302,6 +1310,7 @@ function TextField({
1302
1310
  onChange,
1303
1311
  disabled,
1304
1312
  placeholder,
1313
+ slotName = "text-field",
1305
1314
  ...field
1306
1315
  }) {
1307
1316
  return /* @__PURE__ */ jsx(SettingsField, { ...field, children: (fieldId) => /* @__PURE__ */ jsx(
@@ -1313,7 +1322,7 @@ function TextField({
1313
1322
  disabled,
1314
1323
  placeholder,
1315
1324
  "aria-invalid": field.error ? true : void 0,
1316
- "data-slot": "text-field",
1325
+ slotName,
1317
1326
  onChange: (event) => onChange(event.target.value)
1318
1327
  }
1319
1328
  ) });
@@ -1326,6 +1335,7 @@ function NumberField({
1326
1335
  min,
1327
1336
  max,
1328
1337
  step,
1338
+ slotName = "number-field",
1329
1339
  ...field
1330
1340
  }) {
1331
1341
  return /* @__PURE__ */ jsx(SettingsField, { ...field, children: (fieldId) => /* @__PURE__ */ jsx(
@@ -1341,7 +1351,7 @@ function NumberField({
1341
1351
  disabled,
1342
1352
  placeholder,
1343
1353
  "aria-invalid": field.error ? true : void 0,
1344
- "data-slot": "number-field",
1354
+ slotName,
1345
1355
  onChange: (event) => onChange(
1346
1356
  event.target.value === "" ? "" : event.target.valueAsNumber
1347
1357
  )
@@ -1354,6 +1364,7 @@ function DateField({
1354
1364
  disabled,
1355
1365
  min,
1356
1366
  max,
1367
+ slotName = "date-field",
1357
1368
  ...field
1358
1369
  }) {
1359
1370
  return /* @__PURE__ */ jsx(SettingsField, { ...field, children: (fieldId) => /* @__PURE__ */ jsx(
@@ -1366,7 +1377,7 @@ function DateField({
1366
1377
  max,
1367
1378
  disabled,
1368
1379
  "aria-invalid": field.error ? true : void 0,
1369
- "data-slot": "date-field",
1380
+ slotName,
1370
1381
  onChange: (event) => onChange(event.target.value)
1371
1382
  }
1372
1383
  ) });
@@ -1377,6 +1388,7 @@ function SelectField({
1377
1388
  options,
1378
1389
  disabled,
1379
1390
  placeholder,
1391
+ slotName = "select-field",
1380
1392
  ...field
1381
1393
  }) {
1382
1394
  return /* @__PURE__ */ jsx(SettingsField, { ...field, children: (fieldId) => /* @__PURE__ */ jsxs(
@@ -1390,7 +1402,7 @@ function SelectField({
1390
1402
  SelectTrigger,
1391
1403
  {
1392
1404
  id: fieldId,
1393
- "data-slot": "select-field",
1405
+ slotName,
1394
1406
  "aria-invalid": field.error ? true : void 0,
1395
1407
  children: /* @__PURE__ */ jsx(SelectValue, { placeholder })
1396
1408
  }
@@ -1415,16 +1427,17 @@ function SettingsPage({
1415
1427
  control,
1416
1428
  linkComponent,
1417
1429
  children,
1418
- className
1430
+ className,
1431
+ slotName = "settings-page"
1419
1432
  }) {
1420
1433
  return /* @__PURE__ */ jsx(SettingsLinkContext.Provider, { value: linkComponent, children: /* @__PURE__ */ jsxs(
1421
1434
  "div",
1422
1435
  {
1423
- "data-slot": "settings-page",
1424
1436
  className: cn(
1425
1437
  "gap-8 max-w-4xl mx-auto flex w-full flex-col",
1426
1438
  className
1427
1439
  ),
1440
+ "data-slot": slotName,
1428
1441
  children: [
1429
1442
  title && /* @__PURE__ */ jsx(
1430
1443
  SectionHeader,
@@ -1451,7 +1464,8 @@ function SettingsSection({
1451
1464
  wide = false,
1452
1465
  linkComponent,
1453
1466
  children,
1454
- className
1467
+ className,
1468
+ slotName = "settings-section"
1455
1469
  }) {
1456
1470
  const labels = useUiLabels("settings", settingsLabels, {
1457
1471
  back: backLabel
@@ -1461,12 +1475,12 @@ function SettingsSection({
1461
1475
  return /* @__PURE__ */ jsxs(
1462
1476
  "section",
1463
1477
  {
1464
- "data-slot": "settings-section",
1465
1478
  className: cn(
1466
1479
  "gap-6 mx-auto flex w-full flex-col",
1467
1480
  wide ? "max-w-4xl" : "max-w-2xl",
1468
1481
  className
1469
1482
  ),
1483
+ "data-slot": slotName,
1470
1484
  children: [
1471
1485
  backHref && /* @__PURE__ */ jsxs(
1472
1486
  Link,
@@ -1497,13 +1511,14 @@ function SettingsGroup({
1497
1511
  label,
1498
1512
  columns = 2,
1499
1513
  children,
1500
- className
1514
+ className,
1515
+ slotName = "settings-group"
1501
1516
  }) {
1502
1517
  return /* @__PURE__ */ jsxs(
1503
1518
  "div",
1504
1519
  {
1505
- "data-slot": "settings-group",
1506
1520
  className: cn("gap-3 flex flex-col", className),
1521
+ "data-slot": slotName,
1507
1522
  children: [
1508
1523
  label && /* @__PURE__ */ jsx("p", { className: "font-bold tracking-widest text-[11px] text-muted-foreground uppercase", children: label }),
1509
1524
  /* @__PURE__ */ jsx(
@@ -1530,7 +1545,8 @@ function SettingsEntry({
1530
1545
  badge,
1531
1546
  disabled = false,
1532
1547
  linkComponent,
1533
- className
1548
+ className,
1549
+ slotName = "settings-entry"
1534
1550
  }) {
1535
1551
  const contextLink = useContext(SettingsLinkContext);
1536
1552
  const Link = resolveLink(linkComponent ?? contextLink);
@@ -1568,25 +1584,17 @@ function SettingsEntry({
1568
1584
  }
1569
1585
  );
1570
1586
  if (disabled) {
1571
- return /* @__PURE__ */ jsx(
1572
- "div",
1573
- {
1574
- "data-slot": "settings-entry",
1575
- "data-disabled": "true",
1576
- "aria-disabled": "true",
1577
- children: card
1578
- }
1579
- );
1587
+ return /* @__PURE__ */ jsx("div", { "data-disabled": "true", "aria-disabled": "true", "data-slot": slotName, children: card });
1580
1588
  }
1581
1589
  return /* @__PURE__ */ jsx(
1582
1590
  Link,
1583
1591
  {
1584
- "data-slot": "settings-entry",
1585
1592
  href,
1586
1593
  className: cn(
1587
1594
  compactRadius,
1588
1595
  "outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50"
1589
1596
  ),
1597
+ "data-slot": slotName,
1590
1598
  children: card
1591
1599
  }
1592
1600
  );
@@ -1625,13 +1633,13 @@ function StatCard({
1625
1633
  trend,
1626
1634
  comparisonLabel,
1627
1635
  inset = false,
1628
- className
1636
+ className,
1637
+ slotName = "stat-card"
1629
1638
  }) {
1630
1639
  const resolvedTrend = resolveTrend(trend);
1631
1640
  return /* @__PURE__ */ jsxs(
1632
1641
  "div",
1633
1642
  {
1634
- "data-slot": "stat-card",
1635
1643
  "data-inset": inset || void 0,
1636
1644
  className: cn(
1637
1645
  elevatedSurface,
@@ -1639,6 +1647,7 @@ function StatCard({
1639
1647
  inset && recessedSurface,
1640
1648
  className
1641
1649
  ),
1650
+ "data-slot": slotName,
1642
1651
  children: [
1643
1652
  /* @__PURE__ */ jsxs("div", { className: "mb-4 gap-4 flex items-start justify-between", children: [
1644
1653
  /* @__PURE__ */ jsx("div", { className: cn("rounded-2xl p-3 shrink-0", iconClassName), children: /* @__PURE__ */ jsx(Icon, { className: "size-6" }) }),
@@ -1745,7 +1754,8 @@ function TwoFactorVerifyForm({
1745
1754
  submitLabel,
1746
1755
  footer,
1747
1756
  labels,
1748
- className
1757
+ className,
1758
+ slotName = "two-factor-verify-form"
1749
1759
  }) {
1750
1760
  const text = resolveLabels(labels);
1751
1761
  const fieldId = useId();
@@ -1778,11 +1788,11 @@ function TwoFactorVerifyForm({
1778
1788
  return /* @__PURE__ */ jsxs(
1779
1789
  "form",
1780
1790
  {
1781
- "data-slot": "two-factor-verify-form",
1782
1791
  "data-mode": mode,
1783
1792
  "data-pending": pending || void 0,
1784
1793
  onSubmit: handleSubmit,
1785
1794
  className: cn("gap-5 flex w-full flex-col", className),
1795
+ "data-slot": slotName,
1786
1796
  children: [
1787
1797
  /* @__PURE__ */ jsxs("div", { className: "gap-2 flex flex-col", children: [
1788
1798
  /* @__PURE__ */ jsx(Label, { htmlFor: fieldId, children: mode === "code" ? text.codeLabel : text.recoveryCodeLabel }),
@@ -1803,7 +1813,7 @@ function TwoFactorVerifyForm({
1803
1813
  Input,
1804
1814
  {
1805
1815
  id: fieldId,
1806
- "data-slot": "two-factor-recovery-input",
1816
+ slotName: "two-factor-recovery-input",
1807
1817
  value,
1808
1818
  autoComplete: "one-time-code",
1809
1819
  spellCheck: false,
@@ -1814,7 +1824,7 @@ function TwoFactorVerifyForm({
1814
1824
  }
1815
1825
  )
1816
1826
  ] }),
1817
- messages.length > 0 && /* @__PURE__ */ jsxs(Alert, { variant: "destructive", "data-slot": "two-factor-error", children: [
1827
+ messages.length > 0 && /* @__PURE__ */ jsxs(Alert, { variant: "destructive", slotName: "two-factor-error", children: [
1818
1828
  /* @__PURE__ */ jsx(AlertCircle, {}),
1819
1829
  /* @__PURE__ */ jsx(AlertDescription, { children: messages.map((message) => /* @__PURE__ */ jsx("p", { children: message }, message)) })
1820
1830
  ] }),
@@ -1854,14 +1864,15 @@ function TwoFactorChallenge({
1854
1864
  description,
1855
1865
  footer,
1856
1866
  labels,
1857
- className
1867
+ className,
1868
+ slotName = "two-factor-challenge"
1858
1869
  }) {
1859
1870
  const text = resolveLabels(labels);
1860
1871
  return /* @__PURE__ */ jsxs(
1861
1872
  "section",
1862
1873
  {
1863
- "data-slot": "two-factor-challenge",
1864
1874
  className: cn("gap-6 flex w-full flex-col", className),
1875
+ "data-slot": slotName,
1865
1876
  children: [
1866
1877
  /* @__PURE__ */ jsxs("div", { className: "gap-2 flex flex-col", children: [
1867
1878
  /* @__PURE__ */ jsx("h2", { className: "text-2xl font-bold tracking-tight text-foreground", children: title ?? text.challengeTitle }),
@@ -1888,7 +1899,8 @@ function TwoFactorDisableButton({
1888
1899
  variant = "destructive",
1889
1900
  size = "default",
1890
1901
  labels,
1891
- className
1902
+ className,
1903
+ slotName = "two-factor-disable"
1892
1904
  }) {
1893
1905
  const text = resolveLabels(labels);
1894
1906
  const [open, setOpen] = useState(false);
@@ -1904,9 +1916,9 @@ function TwoFactorDisableButton({
1904
1916
  return /* @__PURE__ */ jsxs(
1905
1917
  "span",
1906
1918
  {
1907
- "data-slot": "two-factor-disable",
1908
1919
  "data-open": open || void 0,
1909
1920
  className: cn("inline-flex", className),
1921
+ "data-slot": slotName,
1910
1922
  children: [
1911
1923
  /* @__PURE__ */ jsxs(
1912
1924
  Button,
@@ -1945,7 +1957,8 @@ function TwoFactorRecoveryCodes({
1945
1957
  onRegenerate,
1946
1958
  showHeading = true,
1947
1959
  labels,
1948
- className
1960
+ className,
1961
+ slotName = "two-factor-recovery-codes"
1949
1962
  }) {
1950
1963
  const text = resolveLabels(labels);
1951
1964
  const [revealed, setRevealed] = useState(defaultRevealed);
@@ -1965,9 +1978,9 @@ function TwoFactorRecoveryCodes({
1965
1978
  return /* @__PURE__ */ jsxs(
1966
1979
  "div",
1967
1980
  {
1968
- "data-slot": "two-factor-recovery-codes",
1969
1981
  "data-revealed": revealed || void 0,
1970
1982
  className: cn("gap-4 flex w-full flex-col", className),
1983
+ "data-slot": slotName,
1971
1984
  children: [
1972
1985
  showHeading && /* @__PURE__ */ jsxs("div", { className: "gap-1 flex flex-col", children: [
1973
1986
  /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-foreground", children: text.recoveryTitle }),
@@ -2057,15 +2070,16 @@ function TwoFactorScanStep({
2057
2070
  qrCodeSvg,
2058
2071
  manualSetupKey,
2059
2072
  labels,
2060
- className
2073
+ className,
2074
+ slotName = "two-factor-scan-step"
2061
2075
  }) {
2062
2076
  const text = resolveLabels(labels);
2063
2077
  const [revealed, setRevealed] = useState(false);
2064
2078
  return /* @__PURE__ */ jsxs(
2065
2079
  "div",
2066
2080
  {
2067
- "data-slot": "two-factor-scan-step",
2068
2081
  className: cn("gap-5 flex w-full flex-col", className),
2082
+ "data-slot": slotName,
2069
2083
  children: [
2070
2084
  /* @__PURE__ */ jsx(
2071
2085
  "div",
@@ -2149,7 +2163,8 @@ function TwoFactorSetupDialog({
2149
2163
  onRegenerateRecoveryCodes,
2150
2164
  onCompleted,
2151
2165
  labels,
2152
- className
2166
+ className,
2167
+ slotName = "two-factor-setup-dialog"
2153
2168
  }) {
2154
2169
  const text = resolveLabels(labels);
2155
2170
  const [step, setStep] = useState(
@@ -2199,9 +2214,9 @@ function TwoFactorSetupDialog({
2199
2214
  return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(
2200
2215
  DialogContent,
2201
2216
  {
2202
- "data-slot": "two-factor-setup-dialog",
2203
2217
  "data-step": step,
2204
2218
  className: cn("max-w-md p-0", className),
2219
+ slotName,
2205
2220
  children: [
2206
2221
  /* @__PURE__ */ jsxs(DialogHeader, { className: "p-6 md:p-8", children: [
2207
2222
  /* @__PURE__ */ jsx(DialogTitle, { children: heading }),