@alfadocs/ui-kit-debug 0.17.1 → 0.17.2

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 (202) hide show
  1. package/dist/_chunks/{accordion-DOmxGEWU.js → accordion-CNcodXuO.js} +6 -6
  2. package/dist/_chunks/{accordion-DOmxGEWU.js.map → accordion-CNcodXuO.js.map} +1 -1
  3. package/dist/_chunks/{ai-prompt-input-DEiQwIMn.js → ai-prompt-input-B-w5Rx3V.js} +184 -181
  4. package/dist/_chunks/ai-prompt-input-B-w5Rx3V.js.map +1 -0
  5. package/dist/_chunks/{alert-pgdXrEO5.js → alert-DBnawbmf.js} +64 -59
  6. package/dist/_chunks/alert-DBnawbmf.js.map +1 -0
  7. package/dist/_chunks/{audio-recorder-CRh4uyFL.js → audio-recorder-DNkQLW1G.js} +3 -3
  8. package/dist/_chunks/{audio-recorder-CRh4uyFL.js.map → audio-recorder-DNkQLW1G.js.map} +1 -1
  9. package/dist/_chunks/{autocomplete-mOg7WLOh.js → autocomplete-BxfabhZ8.js} +167 -164
  10. package/dist/_chunks/autocomplete-BxfabhZ8.js.map +1 -0
  11. package/dist/_chunks/{balance-cell-renderer-DWWtX-VM.js → balance-cell-renderer-DJB6WDPe.js} +2 -2
  12. package/dist/_chunks/{balance-cell-renderer-DWWtX-VM.js.map → balance-cell-renderer-DJB6WDPe.js.map} +1 -1
  13. package/dist/_chunks/{chat-input-UK-bXU7u.js → chat-input-B3XmFGDw.js} +123 -122
  14. package/dist/_chunks/chat-input-B3XmFGDw.js.map +1 -0
  15. package/dist/_chunks/checkbox-group-Bwmt1ovQ.js +213 -0
  16. package/dist/_chunks/checkbox-group-Bwmt1ovQ.js.map +1 -0
  17. package/dist/_chunks/{checkbox-D5EHnB14.js → checkbox-mwbrPZDY.js} +75 -70
  18. package/dist/_chunks/checkbox-mwbrPZDY.js.map +1 -0
  19. package/dist/_chunks/{collapsible-CuxUBoHJ.js → collapsible-hHiyZp0b.js} +61 -63
  20. package/dist/_chunks/collapsible-hHiyZp0b.js.map +1 -0
  21. package/dist/_chunks/{color-picker-BPfcByHH.js → color-picker-Bm-gzpsh.js} +2 -2
  22. package/dist/_chunks/{color-picker-BPfcByHH.js.map → color-picker-Bm-gzpsh.js.map} +1 -1
  23. package/dist/_chunks/{combobox-D5tWe0t_.js → combobox-Da9eq00i.js} +214 -211
  24. package/dist/_chunks/combobox-Da9eq00i.js.map +1 -0
  25. package/dist/_chunks/{copy-field-BCHAZ8QV.js → copy-field-BAF4mt9h.js} +95 -132
  26. package/dist/_chunks/copy-field-BAF4mt9h.js.map +1 -0
  27. package/dist/_chunks/{date-picker-BlhtBhPo.js → date-picker-BIoSLRly.js} +222 -219
  28. package/dist/_chunks/{date-picker-BlhtBhPo.js.map → date-picker-BIoSLRly.js.map} +1 -1
  29. package/dist/_chunks/{date-range-picker-C2hRu_Ke.js → date-range-picker-9gANFNG9.js} +81 -78
  30. package/dist/_chunks/date-range-picker-9gANFNG9.js.map +1 -0
  31. package/dist/_chunks/{date-time-picker-B67mPZmP.js → date-time-picker-DG7BiGdb.js} +98 -95
  32. package/dist/_chunks/date-time-picker-DG7BiGdb.js.map +1 -0
  33. package/dist/_chunks/{dialog-DRp6Dejy.js → dialog-DUomPCRS.js} +69 -71
  34. package/dist/_chunks/dialog-DUomPCRS.js.map +1 -0
  35. package/dist/_chunks/{dropdown-menu-dyV7gHh_.js → dropdown-menu-DZxwF23X.js} +108 -110
  36. package/dist/_chunks/dropdown-menu-DZxwF23X.js.map +1 -0
  37. package/dist/_chunks/{freemium-paywall-BTEiVkes.js → freemium-paywall-DXc7XlGE.js} +98 -97
  38. package/dist/_chunks/freemium-paywall-DXc7XlGE.js.map +1 -0
  39. package/dist/_chunks/{leo-sidebar-D3TuyH5_.js → leo-sidebar-DIsiTju3.js} +2 -2
  40. package/dist/_chunks/{leo-sidebar-D3TuyH5_.js.map → leo-sidebar-DIsiTju3.js.map} +1 -1
  41. package/dist/_chunks/{list-DcjV0m5B.js → list-BdvDctBz.js} +184 -180
  42. package/dist/_chunks/list-BdvDctBz.js.map +1 -0
  43. package/dist/_chunks/{message-tray-Fsend-du.js → message-tray-BNAS8al4.js} +111 -111
  44. package/dist/_chunks/message-tray-BNAS8al4.js.map +1 -0
  45. package/dist/_chunks/{multi-select-DooDzQIp.js → multi-select-CyspR5ZF.js} +157 -154
  46. package/dist/_chunks/multi-select-CyspR5ZF.js.map +1 -0
  47. package/dist/_chunks/{navigation-menu-DdufF-_4.js → navigation-menu-CyS1fBJ7.js} +85 -87
  48. package/dist/_chunks/navigation-menu-CyS1fBJ7.js.map +1 -0
  49. package/dist/_chunks/{notification-tray-C3dYdLAF.js → notification-tray-D_69dXFY.js} +114 -114
  50. package/dist/_chunks/notification-tray-D_69dXFY.js.map +1 -0
  51. package/dist/_chunks/{number-input-DH00o0DN.js → number-input-BZXu6bPY.js} +92 -89
  52. package/dist/_chunks/number-input-BZXu6bPY.js.map +1 -0
  53. package/dist/_chunks/{otp-input-BBXYvLx5.js → otp-input-BDF_iNpa.js} +92 -93
  54. package/dist/_chunks/otp-input-BDF_iNpa.js.map +1 -0
  55. package/dist/_chunks/{pagination-F1ei4khE.js → pagination-BWaXF7W0.js} +194 -211
  56. package/dist/_chunks/pagination-BWaXF7W0.js.map +1 -0
  57. package/dist/_chunks/{patient-shell-BE0CdPOJ.js → patient-shell-BOOaWZA9.js} +3 -3
  58. package/dist/_chunks/{patient-shell-BE0CdPOJ.js.map → patient-shell-BOOaWZA9.js.map} +1 -1
  59. package/dist/_chunks/{payment-form-CI77oIx1.js → payment-form-BjkuQeqR.js} +2 -2
  60. package/dist/_chunks/{payment-form-CI77oIx1.js.map → payment-form-BjkuQeqR.js.map} +1 -1
  61. package/dist/_chunks/{pdf-viewer-CnEJvmXC.js → pdf-viewer-BG_nsFT5.js} +2 -2
  62. package/dist/_chunks/{pdf-viewer-CnEJvmXC.js.map → pdf-viewer-BG_nsFT5.js.map} +1 -1
  63. package/dist/_chunks/{radio-group-Cz1a4QCA.js → radio-group-BHZOxrIK.js} +4 -4
  64. package/dist/_chunks/{radio-group-Cz1a4QCA.js.map → radio-group-BHZOxrIK.js.map} +1 -1
  65. package/dist/_chunks/{select-Ca6ibiDL.js → select-C92AT_OZ.js} +7 -7
  66. package/dist/_chunks/{select-Ca6ibiDL.js.map → select-C92AT_OZ.js.map} +1 -1
  67. package/dist/_chunks/{sidebar-D8Lq065m.js → sidebar-BqzlRBvC.js} +271 -291
  68. package/dist/_chunks/sidebar-BqzlRBvC.js.map +1 -0
  69. package/dist/_chunks/{slider-CkR6CLun.js → slider-CfEzeseL.js} +4 -4
  70. package/dist/_chunks/{slider-CkR6CLun.js.map → slider-CfEzeseL.js.map} +1 -1
  71. package/dist/_chunks/{tabs-CRCyPpJo.js → tabs-aEQfQV3x.js} +8 -8
  72. package/dist/_chunks/{tabs-CRCyPpJo.js.map → tabs-aEQfQV3x.js.map} +1 -1
  73. package/dist/_chunks/{theme-toggle-B3meAb3y.js → theme-toggle-BswYl0Yp.js} +2 -2
  74. package/dist/_chunks/{theme-toggle-B3meAb3y.js.map → theme-toggle-BswYl0Yp.js.map} +1 -1
  75. package/dist/_chunks/use-controllable-state-BiY4xTzM.js +23 -0
  76. package/dist/_chunks/use-controllable-state-BiY4xTzM.js.map +1 -0
  77. package/dist/_chunks/use-copy-to-clipboard-Cyfc_dlv.js +43 -0
  78. package/dist/_chunks/use-copy-to-clipboard-Cyfc_dlv.js.map +1 -0
  79. package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +1 -1
  80. package/dist/_chunks/use-direction-D6rvvG9G.js.map +1 -1
  81. package/dist/_chunks/use-persistent-state-i23OWy6G.js +24 -0
  82. package/dist/_chunks/use-persistent-state-i23OWy6G.js.map +1 -0
  83. package/dist/_chunks/{warning-stack-CeRihME9.js → warning-stack-CDH9TudY.js} +2 -2
  84. package/dist/_chunks/{warning-stack-CeRihME9.js.map → warning-stack-CDH9TudY.js.map} +1 -1
  85. package/dist/_chunks/{workflow-map-D3MvrsZV.js → workflow-map-BeKe23uw.js} +3 -3
  86. package/dist/_chunks/{workflow-map-D3MvrsZV.js.map → workflow-map-BeKe23uw.js.map} +1 -1
  87. package/dist/agent-catalog.json +1 -1
  88. package/dist/components/_shared/use-debounced-callback.d.ts +1 -5
  89. package/dist/components/_shared/use-debounced-callback.d.ts.map +1 -1
  90. package/dist/components/_shared/use-direction.d.ts +1 -18
  91. package/dist/components/_shared/use-direction.d.ts.map +1 -1
  92. package/dist/components/_shared/use-focus-trap.d.ts +1 -31
  93. package/dist/components/_shared/use-focus-trap.d.ts.map +1 -1
  94. package/dist/components/accordion/index.js +1 -1
  95. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  96. package/dist/components/ai-prompt-input/index.js +1 -1
  97. package/dist/components/alert/alert.d.ts.map +1 -1
  98. package/dist/components/alert/index.js +1 -1
  99. package/dist/components/audio-recorder/index.js +1 -1
  100. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  101. package/dist/components/autocomplete/index.js +1 -1
  102. package/dist/components/chat-input/chat-input.d.ts.map +1 -1
  103. package/dist/components/chat-input/index.js +1 -1
  104. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  105. package/dist/components/checkbox/index.js +1 -1
  106. package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
  107. package/dist/components/checkbox-group/index.js +1 -1
  108. package/dist/components/collapsible/collapsible.d.ts.map +1 -1
  109. package/dist/components/collapsible/index.js +1 -1
  110. package/dist/components/color-picker/index.js +1 -1
  111. package/dist/components/combobox/combobox.d.ts.map +1 -1
  112. package/dist/components/combobox/index.js +1 -1
  113. package/dist/components/command-palette/command-palette.d.ts +1 -1
  114. package/dist/components/copy-field/index.js +1 -1
  115. package/dist/components/data-table/index.js +1 -1
  116. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  117. package/dist/components/date-picker/index.js +1 -1
  118. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  119. package/dist/components/date-range-picker/index.js +1 -1
  120. package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
  121. package/dist/components/date-time-picker/index.js +1 -1
  122. package/dist/components/dialog/dialog.d.ts.map +1 -1
  123. package/dist/components/dialog/index.js +1 -1
  124. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  125. package/dist/components/dropdown-menu/index.js +1 -1
  126. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  127. package/dist/components/freemium-paywall/index.js +1 -1
  128. package/dist/components/icon-button-group/icon-button-group.d.ts +14 -14
  129. package/dist/components/list/index.js +1 -1
  130. package/dist/components/list/list.d.ts.map +1 -1
  131. package/dist/components/message-tray/index.js +1 -1
  132. package/dist/components/message-tray/message-tray.d.ts.map +1 -1
  133. package/dist/components/multi-select/index.js +1 -1
  134. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  135. package/dist/components/navigation-menu/index.js +1 -1
  136. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
  137. package/dist/components/notification-tray/index.js +1 -1
  138. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  139. package/dist/components/number-input/index.js +1 -1
  140. package/dist/components/number-input/number-input.d.ts.map +1 -1
  141. package/dist/components/otp-input/index.js +1 -1
  142. package/dist/components/otp-input/otp-input.d.ts.map +1 -1
  143. package/dist/components/pagination/index.js +1 -1
  144. package/dist/components/payment-form/index.js +1 -1
  145. package/dist/components/pdf-viewer/index.js +1 -1
  146. package/dist/components/radio-group/index.js +1 -1
  147. package/dist/components/select/index.js +1 -1
  148. package/dist/components/sidebar/index.js +8 -7
  149. package/dist/components/sidebar/index.js.map +1 -1
  150. package/dist/components/sidebar/sidebar.d.ts +1 -1
  151. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  152. package/dist/components/slider/index.js +1 -1
  153. package/dist/components/tabs/index.js +1 -1
  154. package/dist/components/theme-toggle/index.js +1 -1
  155. package/dist/components/warning-stack/index.js +1 -1
  156. package/dist/components/workflow/index.js +1 -1
  157. package/dist/hooks/index.d.ts +8 -0
  158. package/dist/hooks/index.d.ts.map +1 -1
  159. package/dist/hooks/index.js +98 -15
  160. package/dist/hooks/index.js.map +1 -1
  161. package/dist/hooks/use-debounced-callback.d.ts +19 -0
  162. package/dist/hooks/use-debounced-callback.d.ts.map +1 -0
  163. package/dist/hooks/use-debounced-value.d.ts +16 -0
  164. package/dist/hooks/use-debounced-value.d.ts.map +1 -0
  165. package/dist/hooks/use-direction.d.ts +19 -0
  166. package/dist/hooks/use-direction.d.ts.map +1 -0
  167. package/dist/hooks/use-focus-trap.d.ts +32 -0
  168. package/dist/hooks/use-focus-trap.d.ts.map +1 -0
  169. package/dist/hooks/use-isomorphic-layout-effect.d.ts +13 -0
  170. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  171. package/dist/hooks/use-persistent-state.d.ts +16 -0
  172. package/dist/hooks/use-persistent-state.d.ts.map +1 -0
  173. package/dist/index.js +493 -492
  174. package/dist/index.js.map +1 -1
  175. package/dist/patterns/leo-assistant/index.js +1 -1
  176. package/dist/patterns/patient-shell/index.js +1 -1
  177. package/dist/tokens.css +1 -1
  178. package/package.json +4 -2
  179. package/dist/_chunks/ai-prompt-input-DEiQwIMn.js.map +0 -1
  180. package/dist/_chunks/alert-pgdXrEO5.js.map +0 -1
  181. package/dist/_chunks/autocomplete-mOg7WLOh.js.map +0 -1
  182. package/dist/_chunks/chat-input-UK-bXU7u.js.map +0 -1
  183. package/dist/_chunks/checkbox-D5EHnB14.js.map +0 -1
  184. package/dist/_chunks/checkbox-group-Qkm3Rg1S.js +0 -208
  185. package/dist/_chunks/checkbox-group-Qkm3Rg1S.js.map +0 -1
  186. package/dist/_chunks/collapsible-CuxUBoHJ.js.map +0 -1
  187. package/dist/_chunks/combobox-D5tWe0t_.js.map +0 -1
  188. package/dist/_chunks/copy-field-BCHAZ8QV.js.map +0 -1
  189. package/dist/_chunks/date-range-picker-C2hRu_Ke.js.map +0 -1
  190. package/dist/_chunks/date-time-picker-B67mPZmP.js.map +0 -1
  191. package/dist/_chunks/dialog-DRp6Dejy.js.map +0 -1
  192. package/dist/_chunks/dropdown-menu-dyV7gHh_.js.map +0 -1
  193. package/dist/_chunks/freemium-paywall-BTEiVkes.js.map +0 -1
  194. package/dist/_chunks/list-DcjV0m5B.js.map +0 -1
  195. package/dist/_chunks/message-tray-Fsend-du.js.map +0 -1
  196. package/dist/_chunks/multi-select-DooDzQIp.js.map +0 -1
  197. package/dist/_chunks/navigation-menu-DdufF-_4.js.map +0 -1
  198. package/dist/_chunks/notification-tray-C3dYdLAF.js.map +0 -1
  199. package/dist/_chunks/number-input-DH00o0DN.js.map +0 -1
  200. package/dist/_chunks/otp-input-BBXYvLx5.js.map +0 -1
  201. package/dist/_chunks/pagination-F1ei4khE.js.map +0 -1
  202. package/dist/_chunks/sidebar-D8Lq065m.js.map +0 -1
@@ -1,7 +1,8 @@
1
- import { jsxs as ee, jsx as M } from "react/jsx-runtime";
2
- import { forwardRef as te, useId as se, useState as L, useRef as R, useEffect as re, useCallback as N, useMemo as oe } from "react";
3
- import { c as O } from "./index-D2ZczOXr.js";
1
+ import { jsxs as Z, jsx as A } from "react/jsx-runtime";
2
+ import { forwardRef as x, useId as ee, useRef as R, useState as te, useEffect as re, useCallback as L, useMemo as se } from "react";
3
+ import { c as N } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as ae } from "react-i18next";
5
+ import { u as oe } from "./use-controllable-state-BiY4xTzM.js";
5
6
  import { u as ie } from "./form-field-context-B3APVHKx.js";
6
7
  import { u as ne } from "./registry-C9nwlNyL.js";
7
8
  const ce = {
@@ -27,8 +28,8 @@ const ce = {
27
28
  argsType: "{ value: string }",
28
29
  descriptionKey: "ui.agent.otpInput.actions.setValue",
29
30
  description: "Replace the entered digits.",
30
- invoke: (e, o) => {
31
- e.setValue(o.value);
31
+ invoke: (e, a) => {
32
+ e.setValue(a.value);
32
33
  }
33
34
  },
34
35
  clear: {
@@ -60,7 +61,7 @@ const ce = {
60
61
  description: "Sourced from the id prop."
61
62
  }
62
63
  }
63
- }, ue = O("ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]"), le = O(
64
+ }, ue = N("ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]"), le = N(
64
65
  [
65
66
  "ds:w-[var(--min-target-size)] ds:h-[var(--min-target-size)]",
66
67
  "ds:rounded-[var(--radius-sm)]",
@@ -81,94 +82,92 @@ const ce = {
81
82
  defaultVariants: { tone: "default" }
82
83
  }
83
84
  );
84
- function F(e) {
85
- return e.replace(/[\u0660-\u0669]/g, (o) => String(o.charCodeAt(0) - 1632)).replace(/[\u06F0-\u06F9]/g, (o) => String(o.charCodeAt(0) - 1776));
85
+ function M(e) {
86
+ return e.replace(/[\u0660-\u0669]/g, (a) => String(a.charCodeAt(0) - 1632)).replace(/[\u06F0-\u06F9]/g, (a) => String(a.charCodeAt(0) - 1776));
86
87
  }
87
- function g(e, o) {
88
- return F(e).replace(/\D/g, "").slice(0, o);
88
+ function g(e, a) {
89
+ return M(e).replace(/\D/g, "").slice(0, a);
89
90
  }
90
- function de(e, o) {
91
- const m = g(e, o), l = new Array(o).fill("");
91
+ function de(e, a) {
92
+ const m = g(e, a), l = new Array(a).fill("");
92
93
  for (let n = 0; n < m.length; n += 1)
93
94
  l[n] = m[n];
94
95
  return l;
95
96
  }
96
- const pe = te(
97
+ const pe = x(
97
98
  ({
98
99
  length: e = 6,
99
- value: o,
100
+ value: a,
100
101
  defaultValue: m,
101
102
  onChange: l,
102
103
  onComplete: n,
103
104
  disabled: S,
104
- error: $,
105
+ error: O,
105
106
  label: y,
106
- id: K,
107
- className: j
108
- }, z) => {
109
- const { t: H } = ae(), v = ie(), _ = se(), P = y ? _ : void 0, w = o !== void 0, [q, W] = L(
110
- () => g(m ?? "", e)
111
- ), p = g(
112
- w ? o : q,
113
- e
114
- ), G = de(p, e), I = v.disabled || !!S, B = v.invalid || !!$, J = B ? "error" : "default", C = R([]), h = R(p.length === e), d = R(p);
107
+ id: F,
108
+ className: $
109
+ }, j) => {
110
+ const { t: z } = ae(), v = ie(), H = ee(), K = y ? H : void 0, [_, P] = oe({
111
+ value: a,
112
+ defaultValue: g(m ?? "", e)
113
+ }), p = g(_ ?? "", e), q = de(p, e), w = v.disabled || !!S, B = v.invalid || !!O, W = B ? "error" : "default", C = R([]), I = R(p.length === e), d = R(p);
115
114
  d.current = p;
116
- const Q = () => {
117
- const s = p.length;
118
- return s >= e ? e - 1 : s;
119
- }, [f, k] = L(Q);
115
+ const G = () => {
116
+ const r = p.length;
117
+ return r >= e ? e - 1 : r;
118
+ }, [f, h] = te(G);
120
119
  re(() => {
121
- f >= e && k(e - 1);
120
+ f >= e && h(e - 1);
122
121
  }, [f, e]);
123
- const c = N(
124
- (s) => {
125
- const t = Math.max(0, Math.min(e - 1, s));
126
- k(t);
127
- const r = C.current[t];
128
- r && (r.focus(), r.select());
122
+ const c = L(
123
+ (r) => {
124
+ const t = Math.max(0, Math.min(e - 1, r));
125
+ h(t);
126
+ const s = C.current[t];
127
+ s && (s.focus(), s.select());
129
128
  },
130
129
  [e]
131
- ), u = N(
132
- (s) => {
133
- const t = g(s, e);
134
- w || W(t), d.current = t, l == null || l(t), t.length === e ? h.current || (h.current = !0, n == null || n(t)) : h.current = !1;
130
+ ), u = L(
131
+ (r) => {
132
+ const t = g(r, e);
133
+ P(t), d.current = t, l == null || l(t), t.length === e ? I.current || (I.current = !0, n == null || n(t)) : I.current = !1;
135
134
  },
136
- [w, e, l, n]
137
- ), U = (s) => (t) => {
138
- const r = t.target.value, a = F(r).replace(/\D/g, ""), i = d.current;
139
- if (a.length === 0) {
140
- if (r === "" && s < i.length) {
141
- const A = i.slice(0, s) + i.slice(s + 1);
142
- u(A);
135
+ [P, e, l, n]
136
+ ), J = (r) => (t) => {
137
+ const s = t.target.value, o = M(s).replace(/\D/g, ""), i = d.current;
138
+ if (o.length === 0) {
139
+ if (s === "" && r < i.length) {
140
+ const T = i.slice(0, r) + i.slice(r + 1);
141
+ u(T);
143
142
  }
144
143
  return;
145
144
  }
146
- const b = i.slice(0, s), V = i.slice(s + a.length), D = (b + a + V).slice(0, e);
147
- u(D);
148
- const T = Math.min(s + a.length, e - 1);
149
- c(T);
150
- }, X = (s) => (t) => {
151
- const r = d.current;
145
+ const b = i.slice(0, r), k = i.slice(r + o.length), V = (b + o + k).slice(0, e);
146
+ u(V);
147
+ const D = Math.min(r + o.length, e - 1);
148
+ c(D);
149
+ }, Q = (r) => (t) => {
150
+ const s = d.current;
152
151
  if (t.key === "Backspace") {
153
- if (r[s]) {
152
+ if (s[r]) {
154
153
  t.preventDefault();
155
- const a = r.slice(0, s) + r.slice(s + 1);
156
- u(a);
154
+ const o = s.slice(0, r) + s.slice(r + 1);
155
+ u(o);
157
156
  return;
158
157
  }
159
- if (s > 0) {
158
+ if (r > 0) {
160
159
  t.preventDefault();
161
- const a = r.slice(0, s - 1) + r.slice(s);
162
- u(a), c(s - 1);
160
+ const o = s.slice(0, r - 1) + s.slice(r);
161
+ u(o), c(r - 1);
163
162
  }
164
163
  return;
165
164
  }
166
165
  if (t.key === "ArrowLeft") {
167
- t.preventDefault(), s > 0 && c(s - 1);
166
+ t.preventDefault(), r > 0 && c(r - 1);
168
167
  return;
169
168
  }
170
169
  if (t.key === "ArrowRight") {
171
- t.preventDefault(), s < e - 1 && c(s + 1);
170
+ t.preventDefault(), r < e - 1 && c(r + 1);
172
171
  return;
173
172
  }
174
173
  if (t.key === "Home") {
@@ -176,56 +175,56 @@ const pe = te(
176
175
  return;
177
176
  }
178
177
  t.key === "End" && (t.preventDefault(), c(e - 1));
179
- }, Y = (s) => (t) => {
180
- const a = t.clipboardData.getData("text").replace(/\s+/g, ""), i = F(a);
178
+ }, U = (r) => (t) => {
179
+ const o = t.clipboardData.getData("text").replace(/\s+/g, ""), i = M(o);
181
180
  if (!/^[0-9]+$/.test(i)) return;
182
181
  t.preventDefault();
183
- const b = d.current, V = b.slice(0, s), D = b.slice(s + i.length), T = (V + i + D).slice(0, e);
184
- u(T);
185
- const A = Math.min(s + i.length, e - 1);
186
- c(A);
187
- }, Z = (s) => (t) => {
188
- k(s), t.currentTarget.select();
189
- }, E = v.id, x = oe(
182
+ const b = d.current, k = b.slice(0, r), V = b.slice(r + i.length), D = (k + i + V).slice(0, e);
183
+ u(D);
184
+ const T = Math.min(r + i.length, e - 1);
185
+ c(T);
186
+ }, X = (r) => (t) => {
187
+ h(r), t.currentTarget.select();
188
+ }, E = v.id, Y = se(
190
189
  () => ({
191
190
  getValue: () => d.current,
192
- setValue: (s) => u(s),
191
+ setValue: (r) => u(r),
193
192
  clear: () => u(""),
194
193
  focus: () => c(f),
195
194
  isComplete: () => d.current.length === e
196
195
  }),
197
196
  [u, c, f, e]
198
197
  );
199
- return ne(ce, x, K), /* @__PURE__ */ ee("div", { className: ue({ className: j }), children: [
200
- y ? /* @__PURE__ */ M(
198
+ return ne(ce, Y, F), /* @__PURE__ */ Z("div", { className: ue({ className: $ }), children: [
199
+ y ? /* @__PURE__ */ A(
201
200
  "label",
202
201
  {
203
- id: P,
202
+ id: K,
204
203
  htmlFor: `${E}-0`,
205
204
  className: "type-label ds:text-foreground",
206
205
  children: y
207
206
  }
208
207
  ) : null,
209
- /* @__PURE__ */ M(
208
+ /* @__PURE__ */ A(
210
209
  "div",
211
210
  {
212
- ref: z,
211
+ ref: j,
213
212
  role: "group",
214
213
  dir: "ltr",
215
- "aria-labelledby": P,
214
+ "aria-labelledby": K,
216
215
  "aria-invalid": B || void 0,
217
216
  "aria-describedby": v.describedBy || void 0,
218
- "aria-disabled": I || void 0,
217
+ "aria-disabled": w || void 0,
219
218
  "data-component": "otp-input",
220
- "data-component-id": K,
219
+ "data-component-id": F,
221
220
  className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]",
222
- children: G.map((s, t) => {
223
- const r = !I && t === f;
224
- return /* @__PURE__ */ M(
221
+ children: q.map((r, t) => {
222
+ const s = !w && t === f;
223
+ return /* @__PURE__ */ A(
225
224
  "input",
226
225
  {
227
- ref: (a) => {
228
- C.current[t] = a;
226
+ ref: (o) => {
227
+ C.current[t] = o;
229
228
  },
230
229
  id: `${E}-${t}`,
231
230
  type: "text",
@@ -233,18 +232,18 @@ const pe = te(
233
232
  pattern: "[0-9]*",
234
233
  autoComplete: t === 0 ? "one-time-code" : "off",
235
234
  maxLength: 1,
236
- value: s,
237
- disabled: I,
238
- tabIndex: r ? 0 : -1,
239
- "aria-label": H("inputs.otp.digitLabel", {
235
+ value: r,
236
+ disabled: w,
237
+ tabIndex: s ? 0 : -1,
238
+ "aria-label": z("inputs.otp.digitLabel", {
240
239
  current: t + 1,
241
240
  total: e
242
241
  }),
243
- onChange: U(t),
244
- onKeyDown: X(t),
245
- onPaste: Y(t),
246
- onFocus: Z(t),
247
- className: le({ tone: J })
242
+ onChange: J(t),
243
+ onKeyDown: Q(t),
244
+ onPaste: U(t),
245
+ onFocus: X(t),
246
+ className: le({ tone: W })
248
247
  },
249
248
  t
250
249
  );
@@ -258,4 +257,4 @@ pe.displayName = "OTPInput";
258
257
  export {
259
258
  pe as O
260
259
  };
261
- //# sourceMappingURL=otp-input-BBXYvLx5.js.map
260
+ //# sourceMappingURL=otp-input-BDF_iNpa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp-input-BDF_iNpa.js","sources":["../../src/components/otp-input/otp-input.agent.ts","../../src/components/otp-input/otp-input.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — OTPInput. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { OTPInputHandle } from './otp-input';\n\nexport const otpInputAgent: AgentAdapter<OTPInputHandle> = {\n id: 'otp-input',\n capabilities: ['edit_inline', 'submit'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.otpInput.state.value',\n description: 'Current digits entered, packed into a single string.',\n read: (handle) => handle.getValue(),\n },\n isComplete: {\n type: 'boolean',\n descriptionKey: 'ui.agent.otpInput.state.isComplete',\n description: 'Whether all required digits have been entered.',\n read: (handle) => handle.isComplete(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n descriptionKey: 'ui.agent.otpInput.actions.setValue',\n description: 'Replace the entered digits.',\n invoke: (handle, args: { value: string }) => {\n handle.setValue(args.value);\n },\n },\n clear: {\n safety: 'destructive',\n descriptionKey: 'ui.agent.otpInput.actions.clear',\n description: 'Empty all digit cells. Loses any typed value.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n focus: {\n safety: 'read',\n descriptionKey: 'ui.agent.otpInput.actions.focus',\n description: 'Move keyboard focus to the active digit cell.',\n invoke: (handle) => {\n handle.focus();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'otp-input',\n description:\n 'Marks the OTPInput wrapper. Completion is observable via state.isComplete; the host onComplete callback fires once when all digits are filled.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type ClipboardEvent,\n type FocusEvent,\n type KeyboardEvent,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useFormField } from '../form-field/form-field-context';\nimport { useAgentRegistration } from '../../agent';\nimport { otpInputAgent } from './otp-input.agent';\n\n/** Agent-readiness curated handle for OTPInput. */\nexport interface OTPInputHandle {\n getValue: () => string;\n setValue: (value: string) => void;\n clear: () => void;\n focus: () => void;\n isComplete: () => boolean;\n}\n\nconst wrapperVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]');\n\nconst boxVariants = cva(\n [\n 'ds:w-[var(--min-target-size)] ds:h-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:border ds:bg-input ds:text-foreground ds:text-center ds:font-medium ds:text-[length:var(--font-size-lg)]',\n 'ds:shadow-[var(--shadow-input)]',\n 'ds:transition-[colors,box-shadow] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n ].join(' '),\n {\n variants: {\n tone: {\n default: 'ds:border-border',\n error: 'ds:border-destructive',\n },\n },\n defaultVariants: { tone: 'default' },\n },\n);\n\nexport interface OTPInputProps {\n length?: 4 | 6 | 8;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onComplete?: (code: string) => void;\n disabled?: boolean;\n error?: boolean;\n label?: string;\n /** Stable id, used to address this instance from the agent runtime. */\n id?: string;\n className?: string;\n}\n\nfunction normaliseDigits(str: string): string {\n return str\n .replace(/[\\u0660-\\u0669]/g, (c) => String(c.charCodeAt(0) - 0x0660))\n .replace(/[\\u06F0-\\u06F9]/g, (c) => String(c.charCodeAt(0) - 0x06f0));\n}\n\nfunction packValue(value: string, length: number): string {\n return normaliseDigits(value).replace(/\\D/g, '').slice(0, length);\n}\n\nfunction valueToArray(value: string, length: number): string[] {\n const packed = packValue(value, length);\n const arr = new Array<string>(length).fill('');\n for (let i = 0; i < packed.length; i += 1) {\n arr[i] = packed[i];\n }\n return arr;\n}\n\nexport const OTPInput = forwardRef<HTMLDivElement, OTPInputProps>(\n (\n {\n length = 6,\n value,\n defaultValue,\n onChange,\n onComplete,\n disabled,\n error,\n label,\n id,\n className,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const ctx = useFormField();\n const generatedLabelId = useId();\n const labelId = label ? generatedLabelId : undefined;\n\n const [internalValueRaw, setInternalValue] = useControllableState<string>({\n value,\n defaultValue: packValue(defaultValue ?? '', length),\n });\n const currentValue = packValue(internalValueRaw ?? '', length);\n const digits = valueToArray(currentValue, length);\n\n const effectiveDisabled = ctx.disabled || Boolean(disabled);\n const effectiveError = ctx.invalid || Boolean(error);\n const effectiveTone = effectiveError ? 'error' : 'default';\n\n const inputsRef = useRef<Array<HTMLInputElement | null>>([]);\n const completedRef = useRef(currentValue.length === length);\n const valueRef = useRef(currentValue);\n valueRef.current = currentValue;\n\n const computeInitialIndex = () => {\n const firstEmpty = currentValue.length;\n if (firstEmpty >= length) return length - 1;\n return firstEmpty;\n };\n const [activeIndex, setActiveIndex] = useState<number>(computeInitialIndex);\n\n useEffect(() => {\n if (activeIndex >= length) setActiveIndex(length - 1);\n }, [activeIndex, length]);\n\n const focusBox = useCallback(\n (index: number) => {\n const clamped = Math.max(0, Math.min(length - 1, index));\n setActiveIndex(clamped);\n const node = inputsRef.current[clamped];\n if (node) {\n node.focus();\n node.select();\n }\n },\n [length],\n );\n\n const commit = useCallback(\n (next: string) => {\n const packed = packValue(next, length);\n setInternalValue(packed);\n valueRef.current = packed;\n onChange?.(packed);\n if (packed.length === length) {\n if (!completedRef.current) {\n completedRef.current = true;\n onComplete?.(packed);\n }\n } else {\n completedRef.current = false;\n }\n },\n [setInternalValue, length, onChange, onComplete],\n );\n\n const handleChange =\n (index: number) => (event: ChangeEvent<HTMLInputElement>) => {\n const raw = event.target.value;\n const norm = normaliseDigits(raw).replace(/\\D/g, '');\n const current = valueRef.current;\n\n if (norm.length === 0) {\n if (raw === '' && index < current.length) {\n const newValue = current.slice(0, index) + current.slice(index + 1);\n commit(newValue);\n }\n return;\n }\n\n const before = current.slice(0, index);\n const after = current.slice(index + norm.length);\n const newValue = (before + norm + after).slice(0, length);\n commit(newValue);\n\n const focusTarget = Math.min(index + norm.length, length - 1);\n focusBox(focusTarget);\n };\n\n const handleKeyDown =\n (index: number) => (event: KeyboardEvent<HTMLInputElement>) => {\n const current = valueRef.current;\n if (event.key === 'Backspace') {\n if (current[index]) {\n event.preventDefault();\n const newValue = current.slice(0, index) + current.slice(index + 1);\n commit(newValue);\n return;\n }\n if (index > 0) {\n event.preventDefault();\n const newValue = current.slice(0, index - 1) + current.slice(index);\n commit(newValue);\n focusBox(index - 1);\n }\n return;\n }\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (index > 0) focusBox(index - 1);\n return;\n }\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (index < length - 1) focusBox(index + 1);\n return;\n }\n if (event.key === 'Home') {\n event.preventDefault();\n focusBox(0);\n return;\n }\n if (event.key === 'End') {\n event.preventDefault();\n focusBox(length - 1);\n }\n };\n\n const handlePaste =\n (index: number) => (event: ClipboardEvent<HTMLInputElement>) => {\n const text = event.clipboardData.getData('text');\n const stripped = text.replace(/\\s+/g, '');\n const norm = normaliseDigits(stripped);\n if (!/^[0-9]+$/.test(norm)) return;\n event.preventDefault();\n const current = valueRef.current;\n const before = current.slice(0, index);\n const after = current.slice(index + norm.length);\n const newValue = (before + norm + after).slice(0, length);\n commit(newValue);\n const focusTarget = Math.min(index + norm.length, length - 1);\n focusBox(focusTarget);\n };\n\n const handleFocus =\n (index: number) => (event: FocusEvent<HTMLInputElement>) => {\n setActiveIndex(index);\n event.currentTarget.select();\n };\n\n const baseId = ctx.id;\n\n const agentHandle = useMemo<OTPInputHandle>(\n () => ({\n getValue: () => valueRef.current,\n setValue: (next) => commit(next),\n clear: () => commit(''),\n focus: () => focusBox(activeIndex),\n isComplete: () => valueRef.current.length === length,\n }),\n [commit, focusBox, activeIndex, length],\n );\n useAgentRegistration(otpInputAgent, agentHandle, id);\n\n return (\n <div className={wrapperVariants({ className })}>\n {label ? (\n <label\n id={labelId}\n htmlFor={`${baseId}-0`}\n className=\"type-label ds:text-foreground\"\n >\n {label}\n </label>\n ) : null}\n {/* eslint-disable-next-line jsx-a11y/role-supports-aria-props -- aria-invalid is a global ARIA state; conveys group-level validation */}\n <div\n ref={ref}\n role=\"group\"\n dir=\"ltr\"\n aria-labelledby={labelId}\n aria-invalid={effectiveError || undefined}\n aria-describedby={ctx.describedBy || undefined}\n aria-disabled={effectiveDisabled || undefined}\n data-component=\"otp-input\"\n data-component-id={id}\n className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]\"\n >\n {digits.map((digit, index) => {\n const isTabbable = !effectiveDisabled && index === activeIndex;\n return (\n <input\n key={index}\n ref={(node) => {\n inputsRef.current[index] = node;\n }}\n id={`${baseId}-${index}`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n autoComplete={index === 0 ? 'one-time-code' : 'off'}\n maxLength={1}\n value={digit}\n disabled={effectiveDisabled}\n tabIndex={isTabbable ? 0 : -1}\n aria-label={t('inputs.otp.digitLabel', {\n current: index + 1,\n total: length,\n })}\n onChange={handleChange(index)}\n onKeyDown={handleKeyDown(index)}\n onPaste={handlePaste(index)}\n onFocus={handleFocus(index)}\n className={boxVariants({ tone: effectiveTone })}\n />\n );\n })}\n </div>\n </div>\n );\n },\n);\n\nOTPInput.displayName = 'OTPInput';\n"],"names":["otpInputAgent","handle","args","wrapperVariants","cva","boxVariants","normaliseDigits","str","c","packValue","value","length","valueToArray","packed","arr","i","OTPInput","forwardRef","defaultValue","onChange","onComplete","disabled","error","label","id","className","ref","t","useTranslation","ctx","useFormField","generatedLabelId","useId","labelId","internalValueRaw","setInternalValue","useControllableState","currentValue","digits","effectiveDisabled","effectiveError","effectiveTone","inputsRef","useRef","completedRef","valueRef","computeInitialIndex","firstEmpty","activeIndex","setActiveIndex","useState","useEffect","focusBox","useCallback","index","clamped","node","commit","next","handleChange","event","raw","norm","current","newValue","before","after","focusTarget","handleKeyDown","handlePaste","stripped","handleFocus","baseId","agentHandle","useMemo","useAgentRegistration","jsx","digit","isTabbable"],"mappings":"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"}