@rinzai/zen 0.11.0 → 0.13.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 (289) hide show
  1. package/README.md +37 -7
  2. package/dist/accordion/index.d.ts +41 -0
  3. package/dist/accordion/index.d.ts.map +1 -0
  4. package/dist/accordion/index.js +81 -0
  5. package/dist/animated-number/index.d.ts +3 -2
  6. package/dist/animated-number/index.d.ts.map +1 -1
  7. package/dist/animated-number/index.js +40 -38
  8. package/dist/avatar/index.d.ts +7 -2
  9. package/dist/avatar/index.d.ts.map +1 -1
  10. package/dist/avatar/index.js +17 -11
  11. package/dist/backdrop/index.d.ts +4 -4
  12. package/dist/backdrop/index.d.ts.map +1 -1
  13. package/dist/backdrop/index.js +41 -39
  14. package/dist/badge/index.d.ts +4 -2
  15. package/dist/badge/index.d.ts.map +1 -1
  16. package/dist/badge/index.js +20 -11
  17. package/dist/base.css +4 -0
  18. package/dist/breadcrumbs/index.d.ts +1 -1
  19. package/dist/breadcrumbs/index.d.ts.map +1 -1
  20. package/dist/breadcrumbs/index.js +25 -24
  21. package/dist/button/index.d.ts +3 -3
  22. package/dist/button/index.d.ts.map +1 -1
  23. package/dist/button/index.js +16 -11
  24. package/dist/button-group/index.d.ts +13 -0
  25. package/dist/button-group/index.d.ts.map +1 -0
  26. package/dist/button-group/index.js +14 -0
  27. package/dist/calendar/index.d.ts +15 -8
  28. package/dist/calendar/index.d.ts.map +1 -1
  29. package/dist/calendar/index.js +97 -91
  30. package/dist/calendar-heatmap/index.d.ts +7 -5
  31. package/dist/calendar-heatmap/index.d.ts.map +1 -1
  32. package/dist/calendar-heatmap/index.js +32 -30
  33. package/dist/canvas/geometry.js +0 -1
  34. package/dist/canvas/index.d.ts +6 -6
  35. package/dist/canvas/index.d.ts.map +1 -1
  36. package/dist/canvas/index.js +135 -133
  37. package/dist/carousel/index.d.ts +27 -0
  38. package/dist/carousel/index.d.ts.map +1 -0
  39. package/dist/carousel/index.js +162 -0
  40. package/dist/chart/index.d.ts +5 -4
  41. package/dist/chart/index.d.ts.map +1 -1
  42. package/dist/chart/index.js +137 -135
  43. package/dist/chart/palette.js +0 -1
  44. package/dist/checkbox/index.d.ts +3 -3
  45. package/dist/checkbox/index.d.ts.map +1 -1
  46. package/dist/checkbox/index.js +33 -30
  47. package/dist/chip/index.js +1 -1
  48. package/dist/code-block/index.d.ts.map +1 -1
  49. package/dist/code-block/index.js +27 -25
  50. package/dist/code-input/index.d.ts.map +1 -1
  51. package/dist/code-input/index.js +30 -24
  52. package/dist/collapse/index.d.ts +4 -3
  53. package/dist/collapse/index.d.ts.map +1 -1
  54. package/dist/collapse/index.js +42 -39
  55. package/dist/color-picker/index.d.ts +14 -7
  56. package/dist/color-picker/index.d.ts.map +1 -1
  57. package/dist/color-picker/index.js +139 -128
  58. package/dist/combobox/index.d.ts +14 -6
  59. package/dist/combobox/index.d.ts.map +1 -1
  60. package/dist/combobox/index.js +158 -146
  61. package/dist/command-palette/index.d.ts +4 -3
  62. package/dist/command-palette/index.d.ts.map +1 -1
  63. package/dist/command-palette/index.js +60 -57
  64. package/dist/confirm-dialog/index.d.ts +6 -7
  65. package/dist/confirm-dialog/index.d.ts.map +1 -1
  66. package/dist/confirm-dialog/index.js +20 -16
  67. package/dist/date-picker/index.d.ts +23 -14
  68. package/dist/date-picker/index.d.ts.map +1 -1
  69. package/dist/date-picker/index.js +109 -93
  70. package/dist/dialog/index.d.ts +3 -4
  71. package/dist/dialog/index.d.ts.map +1 -1
  72. package/dist/dialog/index.js +58 -55
  73. package/dist/disclosure/index.d.ts +8 -0
  74. package/dist/disclosure/index.d.ts.map +1 -1
  75. package/dist/disclosure/index.js +31 -32
  76. package/dist/editable-cell/index.d.ts +4 -5
  77. package/dist/editable-cell/index.d.ts.map +1 -1
  78. package/dist/editable-cell/index.js +23 -22
  79. package/dist/field/index.d.ts +8 -8
  80. package/dist/field/index.d.ts.map +1 -1
  81. package/dist/field/index.js +20 -18
  82. package/dist/filter-bar/index.d.ts +2 -2
  83. package/dist/filter-bar/index.d.ts.map +1 -1
  84. package/dist/filter-bar/index.js +38 -36
  85. package/dist/header/index.d.ts +1 -1
  86. package/dist/header/index.d.ts.map +1 -1
  87. package/dist/header/index.js +13 -11
  88. package/dist/hover-card/index.d.ts +32 -0
  89. package/dist/hover-card/index.d.ts.map +1 -0
  90. package/dist/hover-card/index.js +84 -0
  91. package/dist/icon-picker/index.d.ts +16 -5
  92. package/dist/icon-picker/index.d.ts.map +1 -1
  93. package/dist/icon-picker/index.js +42 -47
  94. package/dist/icons/micro/plus.d.ts +3 -0
  95. package/dist/icons/micro/plus.d.ts.map +1 -0
  96. package/dist/icons/micro/plus.js +17 -0
  97. package/dist/index.d.ts +37 -24
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/input/index.d.ts +5 -1
  100. package/dist/input/index.d.ts.map +1 -1
  101. package/dist/input/index.js +9 -9
  102. package/dist/input-group/index.d.ts +4 -1
  103. package/dist/input-group/index.d.ts.map +1 -1
  104. package/dist/input-group/index.js +14 -14
  105. package/dist/keypad/index.d.ts +9 -7
  106. package/dist/keypad/index.d.ts.map +1 -1
  107. package/dist/keypad/index.js +22 -19
  108. package/dist/lib.js +112 -97
  109. package/dist/load-more/index.d.ts +4 -2
  110. package/dist/load-more/index.d.ts.map +1 -1
  111. package/dist/load-more/index.js +26 -23
  112. package/dist/locale-provider/index.d.ts +23 -0
  113. package/dist/locale-provider/index.d.ts.map +1 -0
  114. package/dist/locale-provider/index.js +35 -0
  115. package/dist/menu/index.d.ts +62 -9
  116. package/dist/menu/index.d.ts.map +1 -1
  117. package/dist/menu/index.js +371 -128
  118. package/dist/meter/index.d.ts +2 -2
  119. package/dist/meter/index.d.ts.map +1 -1
  120. package/dist/meter/index.js +4 -4
  121. package/dist/money-input/index.d.ts +20 -10
  122. package/dist/money-input/index.d.ts.map +1 -1
  123. package/dist/money-input/index.js +199 -190
  124. package/dist/month-picker/index.d.ts +17 -10
  125. package/dist/month-picker/index.d.ts.map +1 -1
  126. package/dist/month-picker/index.js +97 -86
  127. package/dist/navigation-menu/index.d.ts +42 -0
  128. package/dist/navigation-menu/index.d.ts.map +1 -0
  129. package/dist/navigation-menu/index.js +144 -0
  130. package/dist/number-field/index.d.ts +34 -0
  131. package/dist/number-field/index.d.ts.map +1 -0
  132. package/dist/number-field/index.js +119 -0
  133. package/dist/page-header/index.d.ts +4 -3
  134. package/dist/page-header/index.d.ts.map +1 -1
  135. package/dist/page-header/index.js +2 -1
  136. package/dist/pagination/index.d.ts +1 -1
  137. package/dist/pagination/index.d.ts.map +1 -1
  138. package/dist/pagination/index.js +35 -33
  139. package/dist/progress-ring/index.d.ts +4 -3
  140. package/dist/progress-ring/index.d.ts.map +1 -1
  141. package/dist/progress-ring/index.js +11 -10
  142. package/dist/radio-cards/index.d.ts +9 -5
  143. package/dist/radio-cards/index.d.ts.map +1 -1
  144. package/dist/radio-cards/index.js +26 -24
  145. package/dist/radio-group/index.d.ts +9 -8
  146. package/dist/radio-group/index.d.ts.map +1 -1
  147. package/dist/radio-group/index.js +35 -34
  148. package/dist/range-slider/index.d.ts +10 -4
  149. package/dist/range-slider/index.d.ts.map +1 -1
  150. package/dist/range-slider/index.js +43 -31
  151. package/dist/repeat-picker/index.d.ts +13 -6
  152. package/dist/repeat-picker/index.d.ts.map +1 -1
  153. package/dist/repeat-picker/index.js +73 -61
  154. package/dist/resizable/index.d.ts +29 -0
  155. package/dist/resizable/index.d.ts.map +1 -0
  156. package/dist/resizable/index.js +135 -0
  157. package/dist/segmented/index.d.ts +8 -5
  158. package/dist/segmented/index.d.ts.map +1 -1
  159. package/dist/segmented/index.js +36 -34
  160. package/dist/select/index.d.ts +9 -3
  161. package/dist/select/index.d.ts.map +1 -1
  162. package/dist/select/index.js +99 -96
  163. package/dist/separator/index.d.ts +14 -0
  164. package/dist/separator/index.d.ts.map +1 -0
  165. package/dist/separator/index.js +15 -0
  166. package/dist/side-nav/index.js +1 -1
  167. package/dist/skeleton/index.d.ts +4 -4
  168. package/dist/skeleton/index.d.ts.map +1 -1
  169. package/dist/skeleton/index.js +4 -3
  170. package/dist/slider/index.d.ts +6 -3
  171. package/dist/slider/index.d.ts.map +1 -1
  172. package/dist/slider/index.js +29 -23
  173. package/dist/sortable/index.d.ts +10 -20
  174. package/dist/sortable/index.d.ts.map +1 -1
  175. package/dist/sortable/index.js +72 -134
  176. package/dist/sortable/shared.d.ts +56 -0
  177. package/dist/sortable/shared.d.ts.map +1 -0
  178. package/dist/sortable/shared.js +104 -0
  179. package/dist/sortable/tree-model.d.ts +46 -0
  180. package/dist/sortable/tree-model.d.ts.map +1 -0
  181. package/dist/sortable/tree-model.js +87 -0
  182. package/dist/sortable/tree.d.ts +31 -0
  183. package/dist/sortable/tree.d.ts.map +1 -0
  184. package/dist/sortable/tree.js +150 -0
  185. package/dist/sparkline/index.d.ts +1 -1
  186. package/dist/sparkline/index.d.ts.map +1 -1
  187. package/dist/sparkline/index.js +26 -25
  188. package/dist/spinner/index.d.ts +4 -3
  189. package/dist/spinner/index.d.ts.map +1 -1
  190. package/dist/spinner/index.js +2 -1
  191. package/dist/status-pill/index.d.ts.map +1 -1
  192. package/dist/status-pill/index.js +1 -1
  193. package/dist/stepper/index.d.ts +1 -1
  194. package/dist/stepper/index.d.ts.map +1 -1
  195. package/dist/stepper/index.js +31 -30
  196. package/dist/tab-bar/index.js +1 -1
  197. package/dist/table/index.d.ts +5 -5
  198. package/dist/table/index.d.ts.map +1 -1
  199. package/dist/table/index.js +66 -64
  200. package/dist/table/selection.d.ts +2 -2
  201. package/dist/table/selection.d.ts.map +1 -1
  202. package/dist/table/selection.js +41 -38
  203. package/dist/table/swipe.d.ts +1 -1
  204. package/dist/table/swipe.d.ts.map +1 -1
  205. package/dist/table/swipe.js +1 -1
  206. package/dist/table-of-contents/index.d.ts +4 -2
  207. package/dist/table-of-contents/index.d.ts.map +1 -1
  208. package/dist/table-of-contents/index.js +27 -25
  209. package/dist/tabs/index.d.ts.map +1 -1
  210. package/dist/tabs/index.js +90 -88
  211. package/dist/tag-input/index.d.ts +3 -1
  212. package/dist/tag-input/index.d.ts.map +1 -1
  213. package/dist/tag-input/index.js +61 -52
  214. package/dist/theme-toggle/index.d.ts +9 -8
  215. package/dist/theme-toggle/index.d.ts.map +1 -1
  216. package/dist/theme-toggle/index.js +30 -28
  217. package/dist/theme.css +90 -12
  218. package/dist/time-field/index.d.ts +31 -0
  219. package/dist/time-field/index.d.ts.map +1 -0
  220. package/dist/time-field/index.js +175 -0
  221. package/dist/timeline/index.js +1 -1
  222. package/dist/toast/index.d.ts +1 -1
  223. package/dist/toast/index.d.ts.map +1 -1
  224. package/dist/toast/index.js +127 -125
  225. package/dist/toggle/index.d.ts +2 -2
  226. package/dist/toggle/index.d.ts.map +1 -1
  227. package/dist/toggle/index.js +8 -6
  228. package/dist/toggle-group/index.d.ts +35 -0
  229. package/dist/toggle-group/index.d.ts.map +1 -0
  230. package/dist/toggle-group/index.js +53 -0
  231. package/dist/toolbar/index.d.ts +19 -0
  232. package/dist/toolbar/index.d.ts.map +1 -0
  233. package/dist/toolbar/index.js +36 -0
  234. package/dist/tooltip/index.d.ts.map +1 -1
  235. package/dist/tooltip/index.js +40 -74
  236. package/dist/tree/index.d.ts.map +1 -1
  237. package/dist/tree/index.js +105 -102
  238. package/dist/trend/index.d.ts +2 -2
  239. package/dist/trend/index.d.ts.map +1 -1
  240. package/dist/trend/index.js +20 -19
  241. package/dist/utils/color.js +0 -1
  242. package/dist/utils/cva.js +0 -1
  243. package/dist/utils/cx.js +0 -1
  244. package/dist/utils/date.d.ts +6 -0
  245. package/dist/utils/date.d.ts.map +1 -1
  246. package/dist/utils/date.js +1 -2
  247. package/dist/utils/direction.d.ts +7 -0
  248. package/dist/utils/direction.d.ts.map +1 -0
  249. package/dist/utils/direction.js +6 -0
  250. package/dist/utils/form-value.d.ts +15 -0
  251. package/dist/utils/form-value.d.ts.map +1 -0
  252. package/dist/utils/form-value.js +29 -0
  253. package/dist/utils/fx.js +0 -1
  254. package/dist/utils/merge.js +0 -1
  255. package/dist/utils/messages.d.ts +137 -0
  256. package/dist/utils/messages.d.ts.map +1 -0
  257. package/dist/utils/messages.js +133 -0
  258. package/dist/utils/money.js +0 -1
  259. package/dist/utils/month.js +0 -1
  260. package/dist/utils/motion.js +0 -1
  261. package/dist/utils/refs.d.ts +6 -0
  262. package/dist/utils/refs.d.ts.map +1 -0
  263. package/dist/utils/refs.js +13 -0
  264. package/dist/utils/repeat.d.ts +3 -1
  265. package/dist/utils/repeat.d.ts.map +1 -1
  266. package/dist/utils/repeat.js +28 -25
  267. package/dist/utils/roving.d.ts +17 -0
  268. package/dist/utils/roving.d.ts.map +1 -0
  269. package/dist/utils/roving.js +35 -0
  270. package/dist/utils/section-link.js +0 -1
  271. package/dist/utils/slot.d.ts.map +1 -1
  272. package/dist/utils/slot.js +7 -11
  273. package/dist/utils/status-icons.js +7 -7
  274. package/dist/utils/styles.d.ts +9 -2
  275. package/dist/utils/styles.d.ts.map +1 -1
  276. package/dist/utils/styles.js +6 -3
  277. package/dist/utils/theme-wave.js +0 -1
  278. package/dist/utils/theme.js +0 -1
  279. package/dist/utils/useAnchoredPopup.d.ts +7 -4
  280. package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
  281. package/dist/utils/useAnchoredPopup.js +18 -11
  282. package/dist/utils/useControllable.d.ts +9 -0
  283. package/dist/utils/useControllable.d.ts.map +1 -0
  284. package/dist/utils/useControllable.js +15 -0
  285. package/dist/utils/useHoverPopup.d.ts +39 -0
  286. package/dist/utils/useHoverPopup.d.ts.map +1 -0
  287. package/dist/utils/useHoverPopup.js +64 -0
  288. package/dist/zen.css +1 -1
  289. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { FieldSize } from '../utils/styles';
1
2
  import { ForeignAmount, RateTable } from '../utils/fx';
2
3
  import { Money } from '../utils/money';
3
4
  import { ChangeEvent, ComponentProps, KeyboardEvent, ReactNode } from 'react';
@@ -12,7 +13,7 @@ import { ChangeEvent, ComponentProps, KeyboardEvent, ReactNode } from 'react';
12
13
  * never sent anywhere). Replace the symbol with `start`, or build your own field
13
14
  * from useMoneyInput, MoneyCurrencyMenu and MoneyConversionHint.
14
15
  */
15
- export default function MoneyInput({ value, onChange, currency, locale, allowNegative, allowEmpty, live, onCancel, convert, start, end, compact, disabled, className, onFocus, onBlur, onKeyDown, 'aria-describedby': describedBy, ...input }: MoneyInputProps): import('react').JSX.Element;
16
+ export default function MoneyInput({ value, defaultValue, onValueChange, currency, locale, allowNegative, allowEmpty, live, onCancel, convert, start, end, compact, size, disabled, className, onFocus, onBlur, onKeyDown, 'aria-describedby': describedBy, name, ...input }: MoneyInputProps): import('react').JSX.Element;
16
17
  /**
17
18
  * The currency switch for a converting field (`convert`): shows the symbol, or
18
19
  * the code of the foreign currency being typed in, and opens a menu of your
@@ -35,7 +36,7 @@ export declare function MoneyConversionHint({ money, className }: {
35
36
  * input (e.g. an InputGroupInput next to your own addons) and show `error`.
36
37
  * With `convert`, `conversion` drives MoneyCurrencyMenu and MoneyConversionHint.
37
38
  */
38
- export declare function useMoneyInput({ value, onChange, currency, locale, allowNegative, allowEmpty, live, onCancel, convert, }: MoneyInputOptions): {
39
+ export declare function useMoneyInput({ value: valueProp, defaultValue, onValueChange, currency, locale: localeProp, allowNegative, allowEmpty, live, onCancel, convert, }: MoneyInputOptions): {
39
40
  inputProps: {
40
41
  readonly type: "text";
41
42
  readonly inputMode: "decimal";
@@ -49,6 +50,10 @@ export declare function useMoneyInput({ value, onChange, currency, locale, allow
49
50
  readonly onBlur: () => void;
50
51
  readonly onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void;
51
52
  };
53
+ /** The amount in minor units, or null. */
54
+ value: number | null;
55
+ /** Back to the first amount (on a form's reset). */
56
+ reset: () => void;
52
57
  /** The symbol of the currency being typed in, in this locale, e.g. "₹" or "$". */
53
58
  symbol: string;
54
59
  error: string | null;
@@ -103,13 +108,15 @@ export interface CurrencyConversion {
103
108
  initial?: ForeignAmount | null;
104
109
  }
105
110
  export interface MoneyInputOptions {
106
- /** Amount in minor units (paise, cents), or null when empty. */
107
- value: Money | null;
108
- onChange: (value: Money | null) => void;
111
+ /** Amount in minor units (paise, cents), or null when empty, when you keep it. */
112
+ value?: Money | null;
113
+ /** The first amount, when the field keeps its own. */
114
+ defaultValue?: Money | null;
115
+ onValueChange?: (value: Money | null) => void;
109
116
  /** ISO 4217 code, e.g. "INR", "USD". */
110
117
  currency: string;
111
- /** Decides digit grouping and the symbol, e.g. "en-IN" (1,52,000) or "en-US" (152,000). */
112
- locale: string;
118
+ /** Decides digit grouping and the symbol, e.g. "en-IN" (1,52,000) or "en-US" (152,000). Defaults to the LocaleProvider's. */
119
+ locale?: string;
113
120
  allowNegative?: boolean;
114
121
  allowEmpty?: boolean;
115
122
  /**
@@ -124,15 +131,18 @@ export interface MoneyInputOptions {
124
131
  convert?: CurrencyConversion;
125
132
  }
126
133
  /**
127
- * Also takes the input's own props (placeholder, name, aria-*, onBlur…), except
134
+ * Also takes the input's own props (placeholder, aria-*, onBlur…), except
128
135
  * the value and its typing, which MoneyInput runs. className goes on the wrapper.
136
+ * With `name`, the amount in minor units (e.g. "15200000") is submitted with a form.
129
137
  */
130
- export interface MoneyInputProps extends MoneyInputOptions, Omit<ComponentProps<'input'>, keyof MoneyInputOptions | 'defaultValue' | 'type' | 'inputMode' | 'children'> {
138
+ export interface MoneyInputProps extends MoneyInputOptions, Omit<ComponentProps<'input'>, keyof MoneyInputOptions | 'defaultValue' | 'size' | 'type' | 'inputMode' | 'children'> {
131
139
  /** Replaces the currency symbol (or the currency switch), e.g. with your own. */
132
140
  start?: ReactNode;
133
141
  /** Content after the input, e.g. a unit or a clear button. */
134
142
  end?: ReactNode;
135
- /** Smaller, for editing inside table rows. */
143
+ /** Height, matching Button's: sm (32px), default (40px) or lg (44px). */
144
+ size?: FieldSize;
145
+ /** Smaller still and right-aligned, for editing inside table rows. */
136
146
  compact?: boolean;
137
147
  }
138
148
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/money-input/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/money-input/index.tsx"],"names":[],"mappings":"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"}
@@ -1,243 +1,250 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import t, { MenuContent as n, MenuItem as r, MenuSeparator as i, MenuTrigger as a } from "../menu/index.js";
4
- import { currencySymbol as o, formatAmount as s, formatMoney as c, minorDigits as l, parseMoneyInput as u } from "../utils/money.js";
5
- import d from "../spinner/index.js";
6
- import { AlertIcon as f, InfoIcon as p } from "../utils/status-icons.js";
7
- import { FieldChevron as m } from "../utils/field-chevron.js";
8
- import h, { InputGroupAddon as g, InputGroupInput as _ } from "../input-group/index.js";
9
- import { convertMinor as v, rateBetween as y } from "../utils/fx.js";
10
- import { useEffect as b, useId as x, useRef as S, useState as C } from "react";
11
- import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
3
+ import { useControllable as t } from "../utils/useControllable.js";
4
+ import n, { MenuContent as r, MenuItem as i, MenuSeparator as a, MenuTrigger as o } from "../menu/index.js";
5
+ import { useLocale as s, useMessages as c } from "../locale-provider/index.js";
6
+ import { currencySymbol as l, formatAmount as u, formatMoney as d, minorDigits as f, parseMoneyInput as p } from "../utils/money.js";
7
+ import m from "../spinner/index.js";
8
+ import { AlertIcon as h, InfoIcon as g } from "../utils/status-icons.js";
9
+ import { FormValue as _ } from "../utils/form-value.js";
10
+ import { FieldChevron as v } from "../utils/field-chevron.js";
11
+ import y, { InputGroupAddon as b, InputGroupInput as x } from "../input-group/index.js";
12
+ import { convertMinor as S, rateBetween as C } from "../utils/fx.js";
13
+ import { useEffect as w, useId as T, useRef as E, useState as D } from "react";
14
+ import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
12
15
  //#region packages/money-input/index.tsx
13
- function D({ value: t, onChange: n, currency: r, locale: i, allowNegative: a, allowEmpty: o, live: s, onCancel: c, convert: l, start: u, end: d, compact: p = !1, disabled: m = !1, className: v, onFocus: y, onBlur: b, onKeyDown: x, "aria-describedby": S, ...C }) {
14
- let w = A({
16
+ function j({ value: t, defaultValue: n, onValueChange: r, currency: i, locale: a, allowNegative: o, allowEmpty: s, live: c, onCancel: l, convert: u, start: d, end: f, compact: p = !1, size: m, disabled: g = !1, className: v, onFocus: S, onBlur: C, onKeyDown: w, "aria-describedby": T, name: E, ...D }) {
17
+ let O = P({
15
18
  value: t,
16
- onChange: n,
17
- currency: r,
18
- locale: i,
19
- allowNegative: a,
20
- allowEmpty: o,
21
- live: s,
22
- onCancel: c,
23
- convert: l
24
- }), D = !!w.conversion?.foreign;
25
- return /* @__PURE__ */ E("div", {
19
+ defaultValue: n,
20
+ onValueChange: r,
21
+ currency: i,
22
+ locale: a,
23
+ allowNegative: o,
24
+ allowEmpty: s,
25
+ live: c,
26
+ onCancel: l,
27
+ convert: u
28
+ }), j = !!O.conversion?.foreign;
29
+ return /* @__PURE__ */ A("div", {
26
30
  className: e("zen__money-input flex flex-col gap-1", v),
27
- children: [/* @__PURE__ */ E(h, {
28
- invalid: !!w.error,
29
- "data-foreign": D || void 0,
30
- className: e(p && "h-7", "data-foreign:border-primary/50"),
31
- children: [
32
- u ?? (w.conversion && !m ? /* @__PURE__ */ T(O, { money: w }) : /* @__PURE__ */ T(g, {
33
- "aria-hidden": !0,
34
- "data-slot": "symbol",
35
- children: w.symbol
36
- })),
37
- /* @__PURE__ */ T(_, {
38
- ...C,
39
- ...w.inputProps,
40
- onFocus: (e) => {
41
- w.inputProps.onFocus(), y?.(e);
42
- },
43
- onBlur: (e) => {
44
- w.inputProps.onBlur(), b?.(e);
45
- },
46
- onKeyDown: (e) => {
47
- w.inputProps.onKeyDown(e), x?.(e);
48
- },
49
- "aria-describedby": e(w.inputProps["aria-describedby"], S) || void 0,
50
- disabled: m,
51
- className: e("tabular-nums", p ? "text-right" : "text-left")
52
- }),
53
- d
54
- ]
55
- }), w.error ? /* @__PURE__ */ E("p", {
56
- id: w.errorId,
57
- role: "alert",
58
- className: "text-destructive mt-0! flex items-center gap-1.5 text-xs font-medium",
59
- children: [/* @__PURE__ */ T(f, { className: "shrink-0" }), w.error]
60
- }) : /* @__PURE__ */ T(k, { money: w })]
31
+ children: [
32
+ /* @__PURE__ */ A(y, {
33
+ invalid: !!O.error,
34
+ size: m,
35
+ "data-foreign": j || void 0,
36
+ className: e(p && "h-7", "data-foreign:border-primary/50"),
37
+ children: [
38
+ d ?? (O.conversion && !g ? /* @__PURE__ */ k(M, { money: O }) : /* @__PURE__ */ k(b, {
39
+ "aria-hidden": !0,
40
+ "data-slot": "symbol",
41
+ children: O.symbol
42
+ })),
43
+ /* @__PURE__ */ k(x, {
44
+ ...D,
45
+ ...O.inputProps,
46
+ onFocus: (e) => {
47
+ O.inputProps.onFocus(), S?.(e);
48
+ },
49
+ onBlur: (e) => {
50
+ O.inputProps.onBlur(), C?.(e);
51
+ },
52
+ onKeyDown: (e) => {
53
+ O.inputProps.onKeyDown(e), w?.(e);
54
+ },
55
+ "aria-describedby": e(O.inputProps["aria-describedby"], T) || void 0,
56
+ disabled: g,
57
+ className: e("tabular-nums", p ? "text-end" : "text-start")
58
+ }),
59
+ f
60
+ ]
61
+ }),
62
+ /* @__PURE__ */ k(_, {
63
+ name: E,
64
+ value: O.value === null ? "" : String(O.value),
65
+ onReset: O.reset
66
+ }),
67
+ O.error ? /* @__PURE__ */ A("p", {
68
+ id: O.errorId,
69
+ role: "alert",
70
+ className: "text-destructive mt-0! flex items-center gap-1.5 text-xs font-medium",
71
+ children: [/* @__PURE__ */ k(h, { className: "shrink-0" }), O.error]
72
+ }) : /* @__PURE__ */ k(N, { money: O })
73
+ ]
61
74
  });
62
75
  }
63
- function O({ money: s, className: c }) {
64
- let l = s.conversion;
65
- return l ? /* @__PURE__ */ E(t, { children: [/* @__PURE__ */ E(a, {
66
- "aria-label": `Currency: ${l.currency}. Change to enter another currency`,
67
- className: e("group/currency hover:bg-tint/[0.07] focus-visible:ring-ring/50 -ml-1 flex shrink-0 items-center gap-0.5 rounded-md px-1 py-0.5 text-sm outline-hidden focus-visible:ring-2", l.foreign ? "text-primary" : "text-muted-foreground", c),
68
- children: [l.foreign ? l.currency : s.symbol, /* @__PURE__ */ T(m, { className: "text-inherit duration-150 group-data-popup-open/currency:rotate-180" })]
69
- }), /* @__PURE__ */ E(n, {
76
+ function M({ money: t, className: s }) {
77
+ let u = t.conversion, d = c();
78
+ return u ? /* @__PURE__ */ A(n, { children: [/* @__PURE__ */ A(o, {
79
+ "aria-label": d.changeCurrency(u.currency),
80
+ className: e("group/currency hover:bg-tint/[0.07] -ms-1 flex shrink-0 items-center gap-0.5 rounded-md px-1 py-0.5 text-sm outline-hidden focus-ring", u.foreign ? "text-primary" : "text-muted-foreground", s),
81
+ children: [u.foreign ? u.currency : t.symbol, /* @__PURE__ */ k(v, { className: "text-inherit duration-150 group-data-popup-open/currency:rotate-180" })]
82
+ }), /* @__PURE__ */ A(r, {
70
83
  align: "start",
71
84
  offset: 8,
72
- "aria-label": "Currency",
85
+ "aria-label": d.currency,
73
86
  className: "max-h-72 w-60 overflow-y-auto",
74
87
  children: [
75
- /* @__PURE__ */ E(r, {
76
- onSelect: () => l.pick(l.home),
88
+ /* @__PURE__ */ A(i, {
89
+ onSelect: () => u.pick(u.home),
77
90
  className: "gap-2 py-1.5",
78
- children: [/* @__PURE__ */ T("span", {
91
+ children: [/* @__PURE__ */ k("span", {
79
92
  className: "w-9 font-medium",
80
- children: l.home
81
- }), /* @__PURE__ */ T("span", {
93
+ children: u.home
94
+ }), /* @__PURE__ */ k("span", {
82
95
  className: "text-muted-foreground",
83
- children: "Your currency"
96
+ children: d.yourCurrency
84
97
  })]
85
98
  }),
86
- /* @__PURE__ */ T(i, {}),
87
- /* @__PURE__ */ T("div", {
99
+ /* @__PURE__ */ k(a, {}),
100
+ /* @__PURE__ */ k("div", {
88
101
  className: "text-muted-foreground px-3 pt-1 pb-1.5 text-xs",
89
- children: "Enter in another currency, converted at today’s rate"
102
+ children: d.otherCurrencies
90
103
  }),
91
- l.choices.map((e) => /* @__PURE__ */ E(r, {
92
- onSelect: () => l.pick(e),
104
+ u.choices.map((e) => /* @__PURE__ */ A(i, {
105
+ onSelect: () => u.pick(e),
93
106
  className: "gap-2 py-1.5",
94
- children: [/* @__PURE__ */ T("span", {
107
+ children: [/* @__PURE__ */ k("span", {
95
108
  className: "w-9 font-medium",
96
109
  children: e
97
- }), /* @__PURE__ */ T("span", {
110
+ }), /* @__PURE__ */ k("span", {
98
111
  className: "text-muted-foreground",
99
- children: o(e, "en")
112
+ children: l(e, "en")
100
113
  })]
101
114
  }, e))
102
115
  ]
103
116
  })] }) : null;
104
117
  }
105
- function k({ money: t, className: n }) {
106
- let r = t.conversion;
118
+ function N({ money: t, className: n }) {
119
+ let r = t.conversion, i = c();
107
120
  if (!r || !r.foreign && !r.converted) return null;
108
- let { home: i, locale: a } = r, o = e("text-muted-foreground flex items-center gap-1.5 text-xs", n);
121
+ let { home: a, locale: o } = r, s = e("text-muted-foreground flex items-center gap-1.5 text-xs", n);
109
122
  if (!r.foreign) {
110
123
  let e = r.converted;
111
- return /* @__PURE__ */ E("p", {
124
+ return /* @__PURE__ */ A("p", {
112
125
  id: t.hintId,
113
126
  role: "status",
114
- className: o,
115
- children: [
116
- /* @__PURE__ */ T(p, { className: "text-primary shrink-0" }),
117
- "Converted from ",
118
- c(e.amount, e.currency, a),
119
- " at ",
120
- M(e.rate)
121
- ]
127
+ className: s,
128
+ children: [/* @__PURE__ */ k(g, { className: "text-primary shrink-0" }), i.convertedFrom(d(e.amount, e.currency, o), I(e.rate))]
122
129
  });
123
130
  }
124
- return /* @__PURE__ */ T("p", {
131
+ return /* @__PURE__ */ k("p", {
125
132
  id: t.hintId,
126
133
  role: "status",
127
- className: o,
128
- children: r.status === "idle" || r.status === "loading" ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(d, { className: "size-3" }), " Getting today’s rate…"] }) : r.rate === null ? /* @__PURE__ */ E(w, { children: [
129
- /* @__PURE__ */ T(f, { className: "text-destructive shrink-0" }),
130
- " Couldn’t get exchange rates. Enter the amount in",
134
+ className: s,
135
+ children: r.status === "idle" || r.status === "loading" ? /* @__PURE__ */ A(O, { children: [
136
+ /* @__PURE__ */ k(m, { className: "size-3" }),
131
137
  " ",
132
- i,
133
- "."
134
- ] }) : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(p, { className: "text-primary shrink-0" }), /* @__PURE__ */ E("span", { children: [
135
- r.preview !== null && /* @__PURE__ */ E("span", {
138
+ i.gettingRate
139
+ ] }) : r.rate === null ? /* @__PURE__ */ A(O, { children: [
140
+ /* @__PURE__ */ k(h, { className: "text-destructive shrink-0" }),
141
+ " ",
142
+ i.ratesUnavailable(a)
143
+ ] }) : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(g, { className: "text-primary shrink-0" }), /* @__PURE__ */ A("span", { children: [
144
+ r.preview !== null && /* @__PURE__ */ A("span", {
136
145
  className: "text-foreground font-medium",
137
146
  children: [
138
147
  "≈ ",
139
- c(r.preview, i, a),
148
+ d(r.preview, a, o),
140
149
  " ·",
141
150
  " "
142
151
  ]
143
152
  }),
144
- "1 ",
145
- r.currency,
146
- " = ",
147
- c(Math.round(r.rate * 10 ** l(i)), i, a),
148
- " (",
153
+ i.rateOf(r.currency, d(Math.round(r.rate * 10 ** f(a)), a, o)),
154
+ " ",
155
+ "(",
149
156
  r.source ? `${r.source}, ` : "",
150
- N(r.date, a),
157
+ L(r.date, o),
151
158
  ")"
152
159
  ] })] })
153
160
  });
154
161
  }
155
- function A({ value: t, onChange: n, currency: r, locale: i, allowNegative: a = !1, allowEmpty: l = !1, live: d = !1, onCancel: f, convert: p }) {
156
- let m = p?.initial ?? null, [h, g] = C(() => m?.currency ?? r), _ = !!p && h !== r, S = j(p?.loadRates, _), w = (e) => e === null ? "" : s(e, r, i), [T, E] = C(() => m ? s(m.amount, m.currency, i) : w(t)), [D, O] = C(null), [k, A] = C(null), [M, N] = C(!1), [P, F] = C(!1), I = x(), L = x();
157
- b(() => {
158
- !M && !_ && !(d && P) && E(w(t));
162
+ function P({ value: n, defaultValue: r = null, onValueChange: i, currency: a, locale: o, allowNegative: f = !1, allowEmpty: m = !1, live: h = !1, onCancel: g, convert: _ }) {
163
+ let v = s(o), y = c(), [b, x, E] = t(n, r, i), O = _?.initial ?? null, [k, A] = D(() => O?.currency ?? a), j = !!_ && k !== a, M = F(_?.loadRates, j), N = (e) => e === null ? "" : u(e, a, v), [P, I] = D(() => O ? u(O.amount, O.currency, v) : N(b)), [L, R] = D(null), [z, B] = D(null), [V, H] = D(!1), [U, W] = D(!1), G = T(), K = T();
164
+ w(() => {
165
+ !V && !j && !(h && U) && I(N(b));
159
166
  }, [
160
- t,
161
- r,
162
- i
167
+ b,
168
+ a,
169
+ v
163
170
  ]);
164
- let R = (e) => {
165
- if (!S.table) return null;
171
+ let q = (e) => {
172
+ if (!M.table) return null;
166
173
  try {
167
- return y(S.table, e, r);
174
+ return C(M.table, e, a);
168
175
  } catch {
169
176
  return null;
170
177
  }
171
- }, z = _ ? R(h) : null, B = (e) => `Not an amount. Try ${s(3274e3, e, i)} or ${i.endsWith("-IN") ? "1.5L" : "10k"}.`;
172
- function V(e, t) {
178
+ }, J = j ? q(k) : null, Y = (e) => y.notAnAmount(u(3274e3, e, v), v.endsWith("-IN") ? "1.5L" : "10k");
179
+ function X(e, t) {
173
180
  let n = e.trim();
174
181
  if (n === "") {
175
- if (l) return null;
176
- O("Enter an amount.");
182
+ if (m) return null;
183
+ R(y.enterAmount);
177
184
  return;
178
185
  }
179
186
  let r;
180
187
  try {
181
- r = u(n, t);
188
+ r = p(n, t);
182
189
  } catch {
183
- O(B(t));
190
+ R(Y(t));
184
191
  return;
185
192
  }
186
- if (!a && r < 0) {
187
- O("Amount can't be negative.");
193
+ if (!f && r < 0) {
194
+ R(y.noNegative);
188
195
  return;
189
196
  }
190
- return O(null), r;
197
+ return R(null), r;
191
198
  }
192
- function H(e, t, i) {
193
- let a = e.trim();
194
- if (a === "") {
195
- n(null), p?.onForeign?.(null);
199
+ function Z(e, t, n) {
200
+ let r = e.trim();
201
+ if (r === "") {
202
+ x(null), _?.onForeign?.(null);
196
203
  return;
197
204
  }
198
- let o;
205
+ let i;
199
206
  try {
200
- o = u(a, t);
207
+ i = p(r, t);
201
208
  } catch {
202
- n(null);
209
+ x(null);
203
210
  return;
204
211
  }
205
- t === r ? (n(o), p?.onForeign?.(null)) : i === null ? n(null) : (n(v(o, i, t, r)), p?.onForeign?.({
212
+ t === a ? (x(i), _?.onForeign?.(null)) : n === null ? x(null) : (x(S(i, n, t, a)), _?.onForeign?.({
206
213
  currency: t,
207
- amount: o,
208
- rate: i,
209
- date: S.table.date
214
+ amount: i,
215
+ rate: n,
216
+ date: M.table.date
210
217
  }));
211
218
  }
212
- b(() => {
213
- d && P && _ && H(T, h, z);
214
- }, [z]);
215
- function U() {
216
- let e = V(T, h);
219
+ w(() => {
220
+ h && U && j && Z(P, k, J);
221
+ }, [J]);
222
+ function Q() {
223
+ let e = X(P, k);
217
224
  if (e === void 0) return !1;
218
- if (e !== null && _) {
219
- if (z === null) return O(S.status === "error" ? "Couldn't get today's exchange rate." : "Still getting today's rate…"), !1;
220
- let t = v(e, z, h, r), i = {
221
- currency: h,
225
+ if (e !== null && j) {
226
+ if (J === null) return R(M.status === "error" ? y.rateFailed : y.rateLoading), !1;
227
+ let t = S(e, J, k, a), n = {
228
+ currency: k,
222
229
  amount: e,
223
- rate: z,
224
- date: S.table.date
230
+ rate: J,
231
+ date: M.table.date
225
232
  };
226
- return A(i), g(r), E(w(t)), n(t), p?.onForeign?.(i), !0;
233
+ return B(n), A(a), I(N(t)), x(t), _?.onForeign?.(n), !0;
227
234
  }
228
- return E(w(e)), n(e), e !== t && (A(null), p?.onForeign?.(null)), !0;
235
+ return I(N(e)), x(e), e !== b && (B(null), _?.onForeign?.(null)), !0;
229
236
  }
230
- function W() {
231
- let e = V(T, h);
232
- e !== void 0 && E(e === null ? "" : s(e, h, i));
237
+ function $() {
238
+ let e = X(P, k);
239
+ e !== void 0 && I(e === null ? "" : u(e, k, v));
233
240
  }
234
- function G(e) {
235
- g(e), O(null), d && T.trim() && (F(!0), H(T, e, e === r ? null : R(e)));
241
+ function ee(e) {
242
+ A(e), R(null), h && P.trim() && (W(!0), Z(P, e, e === a ? null : q(e)));
236
243
  }
237
- let K = (() => {
238
- if (!_ || z === null || !T.trim()) return null;
244
+ let te = (() => {
245
+ if (!j || J === null || !P.trim()) return null;
239
246
  try {
240
- return v(u(T, h), z, h, r);
247
+ return S(p(P, k), J, k, a);
241
248
  } catch {
242
249
  return null;
243
250
  }
@@ -248,50 +255,52 @@ function A({ value: t, onChange: n, currency: r, locale: i, allowNegative: a = !
248
255
  inputMode: "decimal",
249
256
  autoComplete: "off",
250
257
  spellCheck: !1,
251
- value: T,
252
- "aria-invalid": D ? !0 : void 0,
253
- "aria-describedby": e(D ? I : (_ || !!k) && L) || void 0,
258
+ value: P,
259
+ "aria-invalid": L ? !0 : void 0,
260
+ "aria-describedby": e(L ? G : (j || !!z) && K) || void 0,
254
261
  onChange: (e) => {
255
- E(e.target.value), A(null), d && (F(!0), H(e.target.value, h, z));
262
+ I(e.target.value), B(null), h && (W(!0), Z(e.target.value, k, J));
256
263
  },
257
- onFocus: () => N(!0),
264
+ onFocus: () => H(!0),
258
265
  onBlur: () => {
259
- N(!1), d ? W() : U();
266
+ H(!1), h ? $() : Q();
260
267
  },
261
268
  onKeyDown: (e) => {
262
- e.key === "Enter" ? (e.preventDefault(), d ? W() : U()) : e.key === "Escape" && (e.preventDefault(), g(r), E(w(t)), O(null), f?.());
269
+ e.key === "Enter" ? (e.preventDefault(), h ? $() : Q()) : e.key === "Escape" && (e.preventDefault(), A(a), I(N(b)), R(null), g?.());
263
270
  }
264
271
  },
265
- symbol: o(h, i),
266
- error: D,
267
- errorId: I,
268
- hintId: L,
269
- text: T,
270
- setText: E,
271
- commit: U,
272
- formatted: t === null ? "" : c(t, r, i),
273
- conversion: p ? {
274
- home: r,
275
- locale: i,
276
- currency: h,
277
- foreign: _,
278
- choices: p.currencies.filter((e) => e !== r && (!S.table || e === S.table.base || e in S.table.rates)),
279
- pick: G,
280
- status: S.status,
281
- rate: z,
282
- date: S.table?.date ?? null,
283
- source: p.source,
284
- preview: K,
285
- converted: k
272
+ value: b,
273
+ reset: E,
274
+ symbol: l(k, v),
275
+ error: L,
276
+ errorId: G,
277
+ hintId: K,
278
+ text: P,
279
+ setText: I,
280
+ commit: Q,
281
+ formatted: b === null ? "" : d(b, a, v),
282
+ conversion: _ ? {
283
+ home: a,
284
+ locale: v,
285
+ currency: k,
286
+ foreign: j,
287
+ choices: _.currencies.filter((e) => e !== a && (!M.table || e === M.table.base || e in M.table.rates)),
288
+ pick: ee,
289
+ status: M.status,
290
+ rate: J,
291
+ date: M.table?.date ?? null,
292
+ source: _.source,
293
+ preview: te,
294
+ converted: z
286
295
  } : null
287
296
  };
288
297
  }
289
- function j(e, t) {
290
- let [n, r] = C({
298
+ function F(e, t) {
299
+ let [n, r] = D({
291
300
  table: null,
292
301
  status: "idle"
293
- }), i = S(e);
294
- return i.current = e, b(() => {
302
+ }), i = E(e);
303
+ return i.current = e, w(() => {
295
304
  let e = i.current;
296
305
  if (!e || !t || n.status === "ready" || n.status === "loading") return;
297
306
  let a = (e) => r(e ? {
@@ -313,10 +322,10 @@ function j(e, t) {
313
322
  }), o.then(a, () => a(null))) : a(o);
314
323
  }, [t]), n;
315
324
  }
316
- var M = (e) => e >= 100 ? e.toFixed(2) : e >= 1 ? e.toFixed(4) : e.toPrecision(4), N = (e, t) => new Intl.DateTimeFormat(t, {
325
+ var I = (e) => e >= 100 ? e.toFixed(2) : e >= 1 ? e.toFixed(4) : e.toPrecision(4), L = (e, t) => new Intl.DateTimeFormat(t, {
317
326
  day: "numeric",
318
327
  month: "short",
319
328
  timeZone: "UTC"
320
329
  }).format(/* @__PURE__ */ new Date(`${e}T00:00:00Z`));
321
330
  //#endregion
322
- export { k as MoneyConversionHint, O as MoneyCurrencyMenu, D as default, A as useMoneyInput };
331
+ export { N as MoneyConversionHint, M as MoneyCurrencyMenu, j as default, P as useMoneyInput };