@cryptlex/web-components 5.1.1 → 5.3.0-alpha

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 (209) hide show
  1. package/dist/components/data-table/data-table-filter.d.ts +27 -0
  2. package/dist/components/data-table/data-table-filter.js +2 -0
  3. package/dist/components/data-table/data-table-filter.js.map +1 -0
  4. package/dist/components/data-table/data-table.d.ts +72 -0
  5. package/dist/components/data-table/data-table.js +2 -0
  6. package/dist/components/data-table/data-table.js.map +1 -0
  7. package/dist/components/data-table/table-commons.d.ts +56 -0
  8. package/dist/components/data-table/table-commons.js +2 -0
  9. package/dist/components/data-table/table-commons.js.map +1 -0
  10. package/dist/components/inputs/checkbox.d.ts +8 -0
  11. package/dist/components/inputs/checkbox.js +2 -0
  12. package/dist/components/inputs/checkbox.js.map +1 -0
  13. package/dist/components/inputs/date-picker.d.ts +11 -0
  14. package/dist/components/inputs/date-picker.js +2 -0
  15. package/dist/components/inputs/date-picker.js.map +1 -0
  16. package/dist/components/inputs/datefield.d.ts +14 -0
  17. package/dist/components/inputs/datefield.js +2 -0
  18. package/dist/components/inputs/datefield.js.map +1 -0
  19. package/dist/components/inputs/field.d.ts +20 -0
  20. package/dist/components/inputs/field.js +2 -0
  21. package/dist/components/inputs/field.js.map +1 -0
  22. package/dist/components/inputs/id-search.d.ts +20 -0
  23. package/dist/components/inputs/id-search.js +2 -0
  24. package/dist/components/inputs/id-search.js.map +1 -0
  25. package/dist/components/inputs/input-otp.d.ts +7 -0
  26. package/dist/components/inputs/input-otp.js +2 -0
  27. package/dist/components/inputs/input-otp.js.map +1 -0
  28. package/dist/components/inputs/multi-select.d.ts +16 -0
  29. package/dist/components/inputs/multi-select.js +2 -0
  30. package/dist/components/inputs/multi-select.js.map +1 -0
  31. package/dist/components/inputs/numberfield.d.ts +6 -0
  32. package/dist/components/inputs/numberfield.js +2 -0
  33. package/dist/components/inputs/numberfield.js.map +1 -0
  34. package/dist/components/inputs/searchfield.d.ts +5 -0
  35. package/dist/components/inputs/searchfield.js +2 -0
  36. package/dist/components/inputs/searchfield.js.map +1 -0
  37. package/dist/components/inputs/select-options.d.ts +8 -0
  38. package/dist/components/inputs/select-options.js +2 -0
  39. package/dist/components/inputs/select-options.js.map +1 -0
  40. package/dist/components/inputs/select.d.ts +17 -0
  41. package/dist/components/inputs/select.js +2 -0
  42. package/dist/components/inputs/select.js.map +1 -0
  43. package/dist/components/inputs/textfield.d.ts +7 -0
  44. package/dist/components/inputs/textfield.js +2 -0
  45. package/dist/components/inputs/textfield.js.map +1 -0
  46. package/dist/components/key-value-card/key-value-card.d.ts +17 -0
  47. package/dist/components/key-value-card/key-value-card.js +2 -0
  48. package/dist/components/key-value-card/key-value-card.js.map +1 -0
  49. package/dist/components/ui/alert.d.ts +8 -0
  50. package/dist/components/ui/alert.js +2 -0
  51. package/dist/components/ui/alert.js.map +1 -0
  52. package/dist/components/ui/avatar.d.ts +7 -0
  53. package/dist/components/ui/avatar.js +2 -0
  54. package/dist/components/ui/avatar.js.map +1 -0
  55. package/dist/components/ui/badge.d.ts +1 -0
  56. package/dist/components/ui/badge.js +2 -0
  57. package/dist/components/ui/badge.js.map +1 -0
  58. package/dist/components/ui/breadcrumbs.d.ts +10 -0
  59. package/dist/components/ui/breadcrumbs.js +2 -0
  60. package/dist/components/ui/breadcrumbs.js.map +1 -0
  61. package/dist/components/ui/button.d.ts +11 -0
  62. package/dist/components/ui/button.js +2 -0
  63. package/dist/components/ui/button.js.map +1 -0
  64. package/dist/components/ui/calendar.d.ts +16 -0
  65. package/dist/components/ui/calendar.js +2 -0
  66. package/dist/components/ui/calendar.js.map +1 -0
  67. package/dist/components/ui/card.d.ts +7 -0
  68. package/dist/components/ui/card.js +2 -0
  69. package/dist/components/ui/card.js.map +1 -0
  70. package/dist/components/ui/dialog.d.ts +18 -0
  71. package/dist/components/ui/dialog.js +2 -0
  72. package/dist/components/ui/dialog.js.map +1 -0
  73. package/dist/components/ui/disclosure.d.ts +18 -0
  74. package/dist/components/ui/disclosure.js +2 -0
  75. package/dist/components/ui/disclosure.js.map +1 -0
  76. package/dist/components/ui/list-box.d.ts +5 -0
  77. package/dist/components/ui/list-box.js +2 -0
  78. package/dist/components/ui/list-box.js.map +1 -0
  79. package/dist/components/ui/loader.d.ts +5 -0
  80. package/dist/components/ui/loader.js +2 -0
  81. package/dist/components/ui/loader.js.map +1 -0
  82. package/dist/components/ui/menu.d.ts +24 -0
  83. package/dist/components/ui/menu.js +2 -0
  84. package/dist/components/ui/menu.js.map +1 -0
  85. package/dist/components/ui/popover.d.ts +4 -0
  86. package/dist/components/ui/popover.js +2 -0
  87. package/dist/components/ui/popover.js.map +1 -0
  88. package/dist/components/ui/sidebar.d.ts +52 -0
  89. package/dist/components/ui/sidebar.js +2 -0
  90. package/dist/components/ui/sidebar.js.map +1 -0
  91. package/dist/components/ui/skeleton.d.ts +1 -0
  92. package/dist/components/ui/skeleton.js +2 -0
  93. package/dist/components/ui/skeleton.js.map +1 -0
  94. package/dist/components/ui/sonner.d.ts +4 -0
  95. package/dist/components/ui/sonner.js +2 -0
  96. package/dist/components/ui/sonner.js.map +1 -0
  97. package/dist/components/ui/table.d.ts +8 -0
  98. package/dist/components/ui/table.js +2 -0
  99. package/dist/components/ui/table.js.map +1 -0
  100. package/dist/components/ui/tabs.d.ts +5 -0
  101. package/dist/components/ui/tabs.js +2 -0
  102. package/dist/components/ui/tabs.js.map +1 -0
  103. package/dist/components/ui/timeline.d.ts +15 -0
  104. package/dist/components/ui/timeline.js +2 -0
  105. package/dist/components/ui/timeline.js.map +1 -0
  106. package/dist/components/ui/tooltip.d.ts +4 -0
  107. package/dist/components/ui/tooltip.js +2 -0
  108. package/dist/components/ui/tooltip.js.map +1 -0
  109. package/dist/utils/form-context.d.ts +4 -0
  110. package/dist/utils/form-context.js +2 -0
  111. package/dist/utils/form-context.js.map +1 -0
  112. package/dist/utils/form-hook.d.ts +23 -0
  113. package/dist/utils/form-hook.js +2 -0
  114. package/dist/utils/form-hook.js.map +1 -0
  115. package/dist/utils/primitives.d.ts +44 -0
  116. package/dist/utils/primitives.js +2 -0
  117. package/dist/utils/primitives.js.map +1 -0
  118. package/dist/utils/resource-names.d.ts +11 -0
  119. package/dist/utils/resource-names.js +2 -0
  120. package/dist/utils/resource-names.js.map +1 -0
  121. package/dist/utils/use-mobile.d.ts +1 -0
  122. package/dist/utils/use-mobile.js +2 -0
  123. package/dist/utils/use-mobile.js.map +1 -0
  124. package/package.json +33 -35
  125. package/dist/components/data-table/data-table-filter.es.js +0 -132
  126. package/dist/components/data-table/data-table-filter.es.js.map +0 -1
  127. package/dist/components/data-table/data-table.es.js +0 -412
  128. package/dist/components/data-table/data-table.es.js.map +0 -1
  129. package/dist/components/data-table/table-commons.es.js +0 -136
  130. package/dist/components/data-table/table-commons.es.js.map +0 -1
  131. package/dist/components/inputs/checkbox.es.js +0 -61
  132. package/dist/components/inputs/checkbox.es.js.map +0 -1
  133. package/dist/components/inputs/date-picker.es.js +0 -124
  134. package/dist/components/inputs/date-picker.es.js.map +0 -1
  135. package/dist/components/inputs/datefield.es.js +0 -90
  136. package/dist/components/inputs/datefield.es.js.map +0 -1
  137. package/dist/components/inputs/field.es.js +0 -91
  138. package/dist/components/inputs/field.es.js.map +0 -1
  139. package/dist/components/inputs/id-search.es.js +0 -61
  140. package/dist/components/inputs/id-search.es.js.map +0 -1
  141. package/dist/components/inputs/input-otp.es.js +0 -60
  142. package/dist/components/inputs/input-otp.es.js.map +0 -1
  143. package/dist/components/inputs/multi-select.es.js +0 -47
  144. package/dist/components/inputs/multi-select.es.js.map +0 -1
  145. package/dist/components/inputs/numberfield.es.js +0 -101
  146. package/dist/components/inputs/numberfield.es.js.map +0 -1
  147. package/dist/components/inputs/searchfield.es.js +0 -80
  148. package/dist/components/inputs/searchfield.es.js.map +0 -1
  149. package/dist/components/inputs/select-options.es.js +0 -286
  150. package/dist/components/inputs/select-options.es.js.map +0 -1
  151. package/dist/components/inputs/select.es.js +0 -113
  152. package/dist/components/inputs/select.es.js.map +0 -1
  153. package/dist/components/inputs/textfield.es.js +0 -86
  154. package/dist/components/inputs/textfield.es.js.map +0 -1
  155. package/dist/components/key-value-card/key-value-card.es.js +0 -53
  156. package/dist/components/key-value-card/key-value-card.es.js.map +0 -1
  157. package/dist/components/ui/alert.es.js +0 -29
  158. package/dist/components/ui/alert.es.js.map +0 -1
  159. package/dist/components/ui/avatar.es.js +0 -19
  160. package/dist/components/ui/avatar.es.js.map +0 -1
  161. package/dist/components/ui/badge.es.js +0 -19
  162. package/dist/components/ui/badge.es.js.map +0 -1
  163. package/dist/components/ui/breadcrumbs.es.js +0 -104
  164. package/dist/components/ui/breadcrumbs.es.js.map +0 -1
  165. package/dist/components/ui/button.es.js +0 -58
  166. package/dist/components/ui/button.es.js.map +0 -1
  167. package/dist/components/ui/calendar.es.js +0 -163
  168. package/dist/components/ui/calendar.es.js.map +0 -1
  169. package/dist/components/ui/card.es.js +0 -53
  170. package/dist/components/ui/card.es.js.map +0 -1
  171. package/dist/components/ui/dialog.es.js +0 -156
  172. package/dist/components/ui/dialog.es.js.map +0 -1
  173. package/dist/components/ui/disclosure.es.js +0 -90
  174. package/dist/components/ui/disclosure.es.js.map +0 -1
  175. package/dist/components/ui/list-box.es.js +0 -76
  176. package/dist/components/ui/list-box.es.js.map +0 -1
  177. package/dist/components/ui/loader.es.js +0 -10
  178. package/dist/components/ui/loader.es.js.map +0 -1
  179. package/dist/components/ui/menu.es.js +0 -129
  180. package/dist/components/ui/menu.es.js.map +0 -1
  181. package/dist/components/ui/popover.es.js +0 -32
  182. package/dist/components/ui/popover.es.js.map +0 -1
  183. package/dist/components/ui/sidebar.es.js +0 -456
  184. package/dist/components/ui/sidebar.es.js.map +0 -1
  185. package/dist/components/ui/skeleton.es.js +0 -9
  186. package/dist/components/ui/skeleton.es.js.map +0 -1
  187. package/dist/components/ui/sonner.es.js +0 -24
  188. package/dist/components/ui/sonner.es.js.map +0 -1
  189. package/dist/components/ui/table.es.js +0 -88
  190. package/dist/components/ui/table.es.js.map +0 -1
  191. package/dist/components/ui/tabs.es.js +0 -83
  192. package/dist/components/ui/tabs.es.js.map +0 -1
  193. package/dist/components/ui/timeline.es.js +0 -46
  194. package/dist/components/ui/timeline.es.js.map +0 -1
  195. package/dist/components/ui/tooltip.es.js +0 -28
  196. package/dist/components/ui/tooltip.es.js.map +0 -1
  197. package/dist/index.es.d.ts +0 -861
  198. package/dist/index.es.js +0 -218
  199. package/dist/index.es.js.map +0 -1
  200. package/dist/utils/form-context.es.js +0 -8
  201. package/dist/utils/form-context.es.js.map +0 -1
  202. package/dist/utils/form-hook.es.js +0 -30
  203. package/dist/utils/form-hook.es.js.map +0 -1
  204. package/dist/utils/primitives.es.js +0 -31
  205. package/dist/utils/primitives.es.js.map +0 -1
  206. package/dist/utils/resource-names.es.js +0 -182
  207. package/dist/utils/resource-names.es.js.map +0 -1
  208. package/dist/utils/use-mobile.es.js +0 -17
  209. package/dist/utils/use-mobile.es.js.map +0 -1
@@ -1,61 +0,0 @@
1
- import { jsx as e, Fragment as i } from "react/jsx-runtime";
2
- import { CheckboxGroup as l, Checkbox as b, composeRenderProps as a } from "react-aria-components";
3
- import { FormField as m, labelVariants as p } from "./field.es.js";
4
- import { Minus as h, Check as x } from "lucide-react";
5
- import { cn as n } from "../../utils/primitives.es.js";
6
- import { useFieldContext as g } from "../../utils/form-context.es.js";
7
- const z = l;
8
- function f({ className: r, label: o, description: d, errorMessage: s, ...u }) {
9
- return /* @__PURE__ */ e("div", { className: "group form-field", children: /* @__PURE__ */ e(m, { label: o, description: d, errorMessage: s, children: /* @__PURE__ */ e(
10
- b,
11
- {
12
- className: a(
13
- r,
14
- (t) => n(
15
- "group/checkbox cursor-pointer focus-ring flex items-center gap-x-2",
16
- /* Disabled */
17
- "disabled-muted",
18
- p,
19
- t
20
- )
21
- ),
22
- ...u,
23
- children: a(/* @__PURE__ */ e(i, {}), (t, c) => /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(
24
- "div",
25
- {
26
- className: n(
27
- "flex size-input shrink-0 items-center bg-card justify-center border border-input text-current ring-offset-background",
28
- /* Selected */
29
- "group-data-[indeterminate]/checkbox:bg-primary group-data-[selected]/checkbox:bg-primary group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground",
30
- /* Disabled */
31
- "group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50",
32
- /* Invalid */
33
- "group-data-[invalid]/checkbox:border-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground",
34
- /* Resets */
35
- "focus:outline-none focus-visible:outline-none"
36
- ),
37
- children: c.isIndeterminate ? /* @__PURE__ */ e(h, { className: "size-icon" }) : c.isSelected ? /* @__PURE__ */ e(x, { className: "size-icon" }) : null
38
- }
39
- ) }))
40
- }
41
- ) }) });
42
- }
43
- function G({ ...r }) {
44
- const o = g();
45
- return /* @__PURE__ */ e(
46
- f,
47
- {
48
- isSelected: o.state.value,
49
- isDisabled: o.form.state.isSubmitting || r.isDisabled,
50
- onChange: () => o.handleChange(!o.state.value),
51
- onBlur: o.handleBlur,
52
- ...r
53
- }
54
- );
55
- }
56
- export {
57
- f as Checkbox,
58
- z as CheckboxGroup,
59
- G as TfCheckbox
60
- };
61
- //# sourceMappingURL=checkbox.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox.es.js","sources":["../../../lib/components/inputs/checkbox.tsx"],"sourcesContent":["import {\n Checkbox as AriaCheckbox,\n CheckboxGroup as AriaCheckboxGroup,\n composeRenderProps,\n type CheckboxProps as AriaCheckboxProps\n} from \"react-aria-components\"\n\nimport { cn, useFieldContext } from \"@/utils/index\"\n\nimport { FormField, labelVariants, type FormFieldProps } from \"@/components/inputs/field\"\nimport { Check, Minus } from \"lucide-react\"\n\nexport const CheckboxGroup = AriaCheckboxGroup\ntype CheckboxProps = AriaCheckboxProps & FormFieldProps;\nexport function Checkbox({ className, label, description, errorMessage, ...props }: Omit<CheckboxProps, 'children'>) {\n return (\n <div className=\"group form-field\">\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <AriaCheckbox\n className={composeRenderProps(className, (className) =>\n cn(\n \"group/checkbox cursor-pointer focus-ring flex items-center gap-x-2\",\n /* Disabled */\n \"disabled-muted\",\n labelVariants,\n className\n )\n )}\n {...props}\n >\n {composeRenderProps(<></>, (_, renderProps) => (\n <>\n <div\n className={cn(\n \"flex size-input shrink-0 items-center bg-card justify-center border border-input text-current ring-offset-background\",\n /* Selected */\n \"group-data-[indeterminate]/checkbox:bg-primary group-data-[selected]/checkbox:bg-primary group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground\",\n /* Disabled */\n \"group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50\",\n /* Invalid */\n \"group-data-[invalid]/checkbox:border-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground\",\n /* Resets */\n \"focus:outline-none focus-visible:outline-none\"\n )}\n >\n {renderProps.isIndeterminate ? (\n <Minus className=\"size-icon\" />\n ) : renderProps.isSelected ? (\n <Check className=\"size-icon\" />\n ) : null}\n </div>\n </>\n ))}\n </AriaCheckbox>\n </FormField>\n </div>\n )\n}\n\nexport type TfCheckboxProps = Omit<React.ComponentProps<typeof Checkbox>, \"onChange\" | \"onBlur\" | \"isChecked\">\nexport function TfCheckbox({ ...props }: TfCheckboxProps) {\n const field = useFieldContext<boolean>();\n return (\n <Checkbox\n isSelected={field.state.value}\n isDisabled={field.form.state.isSubmitting || props.isDisabled}\n onChange={() => field.handleChange(!field.state.value)}\n onBlur={field.handleBlur}\n {...props}\n />\n );\n};"],"names":["CheckboxGroup","AriaCheckboxGroup","Checkbox","className","label","description","errorMessage","props","jsx","FormField","AriaCheckbox","composeRenderProps","cn","labelVariants","Fragment","_","renderProps","Minus","Check","TfCheckbox","field","useFieldContext"],"mappings":";;;;;;AAYO,MAAMA,IAAgBC;AAEtB,SAASC,EAAS,EAAE,WAAAC,GAAW,OAAAC,GAAO,aAAAC,GAAa,cAAAC,GAAc,GAAGC,KAA0C;AACnH,SACE,gBAAAC,EAAC,SAAI,WAAU,oBACb,4BAACC,GAAA,EAAU,OAAAL,GAAc,aAAAC,GAA0B,cAAAC,GACjD,UAAA,gBAAAE;AAAA,IAACE;AAAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QAAmBR;AAAA,QAAW,CAACA,MACxCS;AAAA,UACE;AAAA;AAAA,UAEA;AAAA,UACAC;AAAA,UACAV;AAAAA,QAAA;AAAA,MACF;AAAA,MAED,GAAGI;AAAA,MAEH,YAAmB,gBAAAC,EAAAM,GAAA,CAAA,CAAE,GAAK,CAACC,GAAGC,MAC7B,gBAAAR,EAAAM,GAAA,EACE,UAAA,gBAAAN;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWI;AAAA,YACT;AAAA;AAAA,YAEA;AAAA;AAAA,YAEA;AAAA;AAAA,YAEA;AAAA;AAAA,YAEA;AAAA,UAAA;AAAA,UAGD,UAAAI,EAAY,kBACX,gBAAAR,EAACS,GAAA,EAAM,WAAU,YAAA,CAAY,IAC3BD,EAAY,aACd,gBAAAR,EAACU,GAAA,EAAM,WAAU,aAAY,IAC3B;AAAA,QAAA;AAAA,MAAA,GAER,CACD;AAAA,IAAA;AAAA,EAAA,GAEL,EAAA,CACF;AAEJ;AAGO,SAASC,EAAW,EAAE,GAAGZ,KAA0B;AACxD,QAAMa,IAAQC,EAAA;AACd,SACE,gBAAAb;AAAA,IAACN;AAAA,IAAA;AAAA,MACC,YAAYkB,EAAM,MAAM;AAAA,MACxB,YAAYA,EAAM,KAAK,MAAM,gBAAgBb,EAAM;AAAA,MACnD,UAAU,MAAMa,EAAM,aAAa,CAACA,EAAM,MAAM,KAAK;AAAA,MACrD,QAAQA,EAAM;AAAA,MACb,GAAGb;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,124 +0,0 @@
1
- import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
- import { CalendarIcon as f } from "lucide-react";
3
- import { DatePicker as x, composeRenderProps as m, DateRangePicker as v, Dialog as D } from "react-aria-components";
4
- import { DateInput as c } from "./datefield.es.js";
5
- import { FormField as u, FieldGroup as p } from "./field.es.js";
6
- import { Calendar as P, RangeCalendar as N } from "../ui/calendar.es.js";
7
- import { parseAbsolute as k, getLocalTimeZone as C } from "@internationalized/date";
8
- import { Popover as F } from "../ui/popover.es.js";
9
- import { Button as g } from "../ui/button.es.js";
10
- import { cn as i } from "../../utils/primitives.es.js";
11
- import { useFieldContext as R } from "../../utils/form-context.es.js";
12
- import { getFieldErrorMessage as d } from "../../utils/form-hook.es.js";
13
- const h = ({
14
- className: a,
15
- popoverClassName: r,
16
- ...o
17
- }) => /* @__PURE__ */ e(
18
- F,
19
- {
20
- className: m(
21
- r,
22
- (t) => i("w-auto p-3", t)
23
- ),
24
- children: /* @__PURE__ */ e(
25
- D,
26
- {
27
- className: i(
28
- "flex w-full flex-col gap-y-2 outline-none sm:flex-row sm:gap-x-icon sm:gap-y-0",
29
- a
30
- ),
31
- ...o
32
- }
33
- )
34
- }
35
- );
36
- function b({
37
- label: a,
38
- description: r,
39
- errorMessage: o,
40
- className: t,
41
- ...l
42
- }) {
43
- return /* @__PURE__ */ n(
44
- x,
45
- {
46
- className: m(
47
- t,
48
- (s) => i("group flex flex-col gap-2", s)
49
- ),
50
- ...l,
51
- children: [
52
- /* @__PURE__ */ e(u, { label: a, description: r, errorMessage: o, children: /* @__PURE__ */ n(p, { "aria-label": a, children: [
53
- /* @__PURE__ */ e(c, { className: "flex-1", variant: "ghost" }),
54
- /* @__PURE__ */ e(
55
- g,
56
- {
57
- variant: "ghost",
58
- size: "icon",
59
- className: "-me-2 ms-2",
60
- children: /* @__PURE__ */ e(f, { "aria-hidden": !0 })
61
- }
62
- )
63
- ] }) }),
64
- /* @__PURE__ */ e(h, { children: /* @__PURE__ */ e(P, {}) })
65
- ]
66
- }
67
- );
68
- }
69
- function G({ ...a }) {
70
- const r = R();
71
- return /* @__PURE__ */ e(
72
- b,
73
- {
74
- hideTimeZone: !0,
75
- value: r.state.value ? k(r.state.value, C()) : null,
76
- onChange: (o) => o ? r.handleChange(o.toAbsoluteString()) : r.handleChange(null),
77
- onBlur: r.handleBlur,
78
- isInvalid: !!d(r),
79
- errorMessage: d(r),
80
- ...a
81
- }
82
- );
83
- }
84
- function L({
85
- label: a,
86
- description: r,
87
- errorMessage: o,
88
- className: t,
89
- ...l
90
- }) {
91
- return /* @__PURE__ */ n(
92
- v,
93
- {
94
- className: m(
95
- t,
96
- (s) => i("group flex flex-col gap-2", s)
97
- ),
98
- ...l,
99
- children: [
100
- /* @__PURE__ */ e(u, { label: a, errorMessage: o, description: r, children: /* @__PURE__ */ n(p, { children: [
101
- /* @__PURE__ */ e(c, { variant: "ghost", slot: "start" }),
102
- /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "px-2 text-sm text-muted-foreground", children: "-" }),
103
- /* @__PURE__ */ e(c, { className: "flex-1", variant: "ghost", slot: "end" }),
104
- /* @__PURE__ */ e(
105
- g,
106
- {
107
- variant: "ghost",
108
- size: "icon",
109
- className: "mr-1 data-[focus-visible]:ring-offset-0",
110
- children: /* @__PURE__ */ e(f, { "aria-hidden": !0 })
111
- }
112
- )
113
- ] }) }),
114
- /* @__PURE__ */ e(h, { children: /* @__PURE__ */ e(N, {}) })
115
- ]
116
- }
117
- );
118
- }
119
- export {
120
- b as DatePicker,
121
- L as DateRangePicker,
122
- G as TfDatePicker
123
- };
124
- //# sourceMappingURL=date-picker.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-picker.es.js","sources":["../../../lib/components/inputs/date-picker.tsx"],"sourcesContent":["import { CalendarIcon } from \"lucide-react\"\nimport {\n DatePicker as AriaDatePicker,\n DatePickerProps as AriaDatePickerProps,\n DateRangePicker as AriaDateRangePicker,\n DateRangePickerProps as AriaDateRangePickerProps,\n DateValue as AriaDateValue,\n Dialog as AriaDialog,\n DialogProps as AriaDialogProps,\n PopoverProps as AriaPopoverProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { DateInput } from \"@/components/inputs/datefield\"\nimport { FieldGroup, FormField, type FormFieldProps } from \"@/components/inputs/field\"\nimport { Button, Popover } from \"@/components/ui\"\nimport { Calendar, RangeCalendar } from \"@/components/ui/calendar\"\nimport { cn, getFieldErrorMessage, useFieldContext } from \"@/utils/index\"\nimport { getLocalTimeZone, parseAbsolute, type ZonedDateTime } from \"@internationalized/date\"\n\nconst DatePickerContent = ({\n className,\n popoverClassName,\n ...props\n}: AriaDialogProps & { popoverClassName?: AriaPopoverProps[\"className\"] }) => (\n <Popover\n className={composeRenderProps(popoverClassName, (className) =>\n cn(\"w-auto p-3\", className)\n )}\n >\n <AriaDialog\n className={cn(\n \"flex w-full flex-col gap-y-2 outline-none sm:flex-row sm:gap-x-icon sm:gap-y-0\",\n className\n )}\n {...props}\n />\n </Popover>\n)\n\ninterface DatePickerProps<T extends AriaDateValue> extends AriaDatePickerProps<T>, FormFieldProps { }\n\nexport function DatePicker<T extends AriaDateValue>({\n label,\n description,\n errorMessage,\n className,\n ...props\n}: DatePickerProps<T>) {\n return (\n <AriaDatePicker\n className={composeRenderProps(className, (className) =>\n cn(\"group flex flex-col gap-2\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <FieldGroup aria-label={label}>\n <DateInput className=\"flex-1\" variant=\"ghost\" />\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={'-me-2 ms-2'}\n >\n <CalendarIcon aria-hidden />\n </Button>\n </FieldGroup>\n </FormField>\n <DatePickerContent>\n <Calendar />\n </DatePickerContent>\n </AriaDatePicker>\n )\n}\n\nexport function TfDatePicker({ ...props }: Omit<DatePickerProps<ZonedDateTime>, 'value' | 'onChange' | 'onBlur' | 'isInvalid' | 'errorMessage'>) {\n const field = useFieldContext<string | null>();\n return (\n <DatePicker\n hideTimeZone\n value={field.state.value ? parseAbsolute(field.state.value, getLocalTimeZone()) : null}\n onChange={(v) => v ? field.handleChange(v.toAbsoluteString()) : field.handleChange(null)}\n onBlur={field.handleBlur}\n isInvalid={!!getFieldErrorMessage(field)}\n errorMessage={getFieldErrorMessage(field)}\n {...props}\n />)\n}\n\ninterface DateRangePickerProps<T extends AriaDateValue> extends AriaDateRangePickerProps<T>, FormFieldProps { }\nexport function DateRangePicker<T extends AriaDateValue>({\n label,\n description,\n errorMessage,\n className,\n ...props\n}: DateRangePickerProps<T>) {\n return (\n <AriaDateRangePicker\n className={composeRenderProps(className, (className) =>\n cn(\"group flex flex-col gap-2\", className)\n )}\n {...props}\n >\n <FormField label={label} errorMessage={errorMessage} description={description}>\n <FieldGroup>\n <DateInput variant=\"ghost\" slot={\"start\"} />\n <span aria-hidden className=\"px-2 text-sm text-muted-foreground\">\n -\n </span>\n <DateInput className=\"flex-1\" variant=\"ghost\" slot={\"end\"} />\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"mr-1 data-[focus-visible]:ring-offset-0\"\n >\n <CalendarIcon aria-hidden />\n </Button>\n </FieldGroup>\n </FormField>\n <DatePickerContent>\n <RangeCalendar />\n </DatePickerContent>\n </AriaDateRangePicker>\n )\n}\n\n"],"names":["DatePickerContent","className","popoverClassName","props","jsx","Popover","composeRenderProps","cn","AriaDialog","DatePicker","label","description","errorMessage","jsxs","AriaDatePicker","FormField","FieldGroup","DateInput","Button","CalendarIcon","Calendar","TfDatePicker","field","useFieldContext","parseAbsolute","getLocalTimeZone","v","getFieldErrorMessage","DateRangePicker","AriaDateRangePicker","RangeCalendar"],"mappings":";;;;;;;;;;;;AAoBA,MAAMA,IAAoB,CAAC;AAAA,EACzB,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MAAmBJ;AAAA,MAAkB,CAACD,MAC/CM,EAAG,cAAcN,CAAS;AAAA,IAAA;AAAA,IAG5B,UAAA,gBAAAG;AAAA,MAACI;AAAAA,MAAA;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACAN;AAAA,QAAA;AAAA,QAED,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACF;AAKK,SAASM,EAAoC;AAAA,EAClD,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAX;AAAA,EACA,GAAGE;AACL,GAAuB;AACrB,SACE,gBAAAU;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWR;AAAA,QAAmBL;AAAA,QAAW,CAACA,MACxCM,EAAG,6BAA6BN,CAAS;AAAA,MAAA;AAAA,MAE1C,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAC,EAACW,KAAU,OAAAL,GAAc,aAAAC,GAA0B,cAAAC,GACjD,UAAA,gBAAAC,EAACG,GAAA,EAAW,cAAYN,GACtB,UAAA;AAAA,UAAA,gBAAAN,EAACa,GAAA,EAAU,WAAU,UAAS,SAAQ,SAAQ;AAAA,UAC9C,gBAAAb;AAAA,YAACc;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,WAAW;AAAA,cAEX,UAAA,gBAAAd,EAACe,GAAA,EAAa,eAAW,GAAA,CAAC;AAAA,YAAA;AAAA,UAAA;AAAA,QAC5B,EAAA,CACF,EAAA,CACF;AAAA,QACA,gBAAAf,EAACJ,GAAA,EACC,UAAA,gBAAAI,EAACgB,GAAA,CAAA,CAAS,EAAA,CACZ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASC,EAAa,EAAE,GAAGlB,KAA+G;AAC/I,QAAMmB,IAAQC,EAAA;AACd,SACE,gBAAAnB;AAAA,IAACK;AAAA,IAAA;AAAA,MACC,cAAY;AAAA,MACZ,OAAOa,EAAM,MAAM,QAAQE,EAAcF,EAAM,MAAM,OAAOG,EAAA,CAAkB,IAAI;AAAA,MAClF,UAAU,CAACC,MAAMA,IAAIJ,EAAM,aAAaI,EAAE,kBAAkB,IAAIJ,EAAM,aAAa,IAAI;AAAA,MACvF,QAAQA,EAAM;AAAA,MACd,WAAW,CAAC,CAACK,EAAqBL,CAAK;AAAA,MACvC,cAAcK,EAAqBL,CAAK;AAAA,MACvC,GAAGnB;AAAA,IAAA;AAAA,EAAA;AAEV;AAGO,SAASyB,EAAyC;AAAA,EACvD,OAAAlB;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAX;AAAA,EACA,GAAGE;AACL,GAA4B;AAC1B,SACE,gBAAAU;AAAA,IAACgB;AAAAA,IAAA;AAAA,MACC,WAAWvB;AAAA,QAAmBL;AAAA,QAAW,CAACA,MACxCM,EAAG,6BAA6BN,CAAS;AAAA,MAAA;AAAA,MAE1C,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAC,EAACW,GAAA,EAAU,OAAAL,GAAc,cAAAE,GAA4B,aAAAD,GACnD,4BAACK,GAAA,EACC,UAAA;AAAA,UAAA,gBAAAZ,EAACa,GAAA,EAAU,SAAQ,SAAQ,MAAM,SAAS;AAAA,4BACzC,QAAA,EAAK,eAAW,IAAC,WAAU,sCAAqC,UAAA,KAEjE;AAAA,4BACCA,GAAA,EAAU,WAAU,UAAS,SAAQ,SAAQ,MAAM,OAAO;AAAA,UAC3D,gBAAAb;AAAA,YAACc;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,WAAU;AAAA,cAEV,UAAA,gBAAAd,EAACe,GAAA,EAAa,eAAW,GAAA,CAAC;AAAA,YAAA;AAAA,UAAA;AAAA,QAC5B,EAAA,CACF,EAAA,CACF;AAAA,QACA,gBAAAf,EAACJ,GAAA,EACC,UAAA,gBAAAI,EAAC0B,GAAA,CAAA,CAAc,EAAA,CACjB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,90 +0,0 @@
1
- "use client";
2
- import { jsx as e } from "react/jsx-runtime";
3
- import { DateSegment as s, composeRenderProps as i, DateInput as m, DateField as f, TimeField as p } from "react-aria-components";
4
- import { fieldGroupVariants as g, FormField as l } from "./field.es.js";
5
- import { cn as n } from "../../utils/primitives.es.js";
6
- function v({ className: t, ...a }) {
7
- return /* @__PURE__ */ e(
8
- s,
9
- {
10
- className: i(
11
- t,
12
- (d) => n(
13
- "inline caret-transparent outline-0",
14
- /* Placeholder */
15
- "data-[placeholder]:text-muted-foreground",
16
- /* Disabled */
17
- "disabled-muted",
18
- /* Focused */
19
- "data-[focused]:bg-accent data-[focused]:text-accent-foreground",
20
- /* Invalid */
21
- "data-[invalid]:data-[focused]:bg-destructive data-[invalid]:data-[focused]:data-[placeholder]:text-destructive-foreground data-[invalid]:data-[focused]:text-destructive-foreground data-[invalid]:data-[placeholder]:text-destructive data-[invalid]:text-destructive",
22
- d
23
- )
24
- ),
25
- ...a
26
- }
27
- );
28
- }
29
- function u({
30
- className: t,
31
- variant: a,
32
- ...d
33
- }) {
34
- return /* @__PURE__ */ e(
35
- m,
36
- {
37
- className: i(
38
- t,
39
- (r) => n(g({ variant: a }), "text-sm", r)
40
- ),
41
- ...d,
42
- children: (r) => /* @__PURE__ */ e(v, { segment: r })
43
- }
44
- );
45
- }
46
- function N({
47
- label: t,
48
- description: a,
49
- className: d,
50
- errorMessage: r,
51
- ...o
52
- }) {
53
- return /* @__PURE__ */ e(
54
- f,
55
- {
56
- className: i(
57
- d,
58
- (c) => n("group form-field", c)
59
- ),
60
- ...o,
61
- children: /* @__PURE__ */ e(l, { label: t, description: a, errorMessage: r, children: /* @__PURE__ */ e(u, {}) })
62
- }
63
- );
64
- }
65
- function $({
66
- label: t,
67
- description: a,
68
- errorMessage: d,
69
- className: r,
70
- ...o
71
- }) {
72
- return /* @__PURE__ */ e(
73
- p,
74
- {
75
- className: i(
76
- r,
77
- (c) => n("group form-field", c)
78
- ),
79
- ...o,
80
- children: /* @__PURE__ */ e(l, { label: t, description: a, errorMessage: d, children: /* @__PURE__ */ e(u, {}) })
81
- }
82
- );
83
- }
84
- export {
85
- N as DateField,
86
- u as DateInput,
87
- v as DateSegment,
88
- $ as TimeField
89
- };
90
- //# sourceMappingURL=datefield.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datefield.es.js","sources":["../../../lib/components/inputs/datefield.tsx"],"sourcesContent":["\"use client\"\n\nimport { VariantProps } from \"class-variance-authority\"\nimport {\n DateField as AriaDateField,\n DateFieldProps as AriaDateFieldProps,\n DateInput as AriaDateInput,\n DateInputProps as AriaDateInputProps,\n DateSegment as AriaDateSegment,\n DateSegmentProps as AriaDateSegmentProps,\n DateValue as AriaDateValue,\n TimeField as AriaTimeField,\n TimeFieldProps as AriaTimeFieldProps,\n TimeValue as AriaTimeValue,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { cn } from \"@/utils/index\"\n\nimport { fieldGroupVariants, FormField, type FormFieldProps } from \"./field\"\n\nexport function DateSegment({ className, ...props }: AriaDateSegmentProps) {\n return (\n <AriaDateSegment\n className={composeRenderProps(className, (className) =>\n cn(\n \"inline caret-transparent outline-0\",\n /* Placeholder */\n \"data-[placeholder]:text-muted-foreground\",\n /* Disabled */\n \"disabled-muted\",\n /* Focused */\n \"data-[focused]:bg-accent data-[focused]:text-accent-foreground\",\n /* Invalid */\n \"data-[invalid]:data-[focused]:bg-destructive data-[invalid]:data-[focused]:data-[placeholder]:text-destructive-foreground data-[invalid]:data-[focused]:text-destructive-foreground data-[invalid]:data-[placeholder]:text-destructive data-[invalid]:text-destructive\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\ninterface DateInputProps\n extends AriaDateInputProps,\n VariantProps<typeof fieldGroupVariants> { }\n\nexport function DateInput({\n className,\n variant,\n ...props\n}: Omit<DateInputProps, \"children\">) {\n return (\n <AriaDateInput\n className={composeRenderProps(className, (className) =>\n cn(fieldGroupVariants({ variant }), \"text-sm\", className)\n )}\n {...props}\n >\n {(segment) => <DateSegment segment={segment} />}\n </AriaDateInput>\n )\n}\n\ninterface DateFieldProps<T extends AriaDateValue> extends AriaDateFieldProps<T>, FormFieldProps { }\n\nexport function DateField<T extends AriaDateValue>({\n label,\n description,\n className,\n errorMessage,\n ...props\n}: DateFieldProps<T>) {\n return (\n <AriaDateField\n className={composeRenderProps(className, (className) =>\n cn(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <DateInput />\n </FormField>\n </AriaDateField>\n )\n}\n\ninterface TimeFieldProps<T extends AriaTimeValue> extends AriaTimeFieldProps<T>, FormFieldProps { }\n\nexport function TimeField<T extends AriaTimeValue>({\n label,\n description,\n errorMessage,\n className,\n ...props\n}: TimeFieldProps<T>) {\n return (\n <AriaTimeField\n className={composeRenderProps(className, (className) =>\n cn(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <DateInput />\n </FormField>\n </AriaTimeField>\n )\n}\n"],"names":["DateSegment","className","props","jsx","AriaDateSegment","composeRenderProps","cn","DateInput","variant","AriaDateInput","fieldGroupVariants","segment","DateField","label","description","errorMessage","AriaDateField","FormField","TimeField","AriaTimeField"],"mappings":";;;;;AAqBO,SAASA,EAAY,EAAE,WAAAC,GAAW,GAAGC,KAA+B;AACzE,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QAAmBJ;AAAA,QAAW,CAACA,MACxCK;AAAA,UACE;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,UACAL;AAAAA,QAAA;AAAA,MACF;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAMO,SAASK,EAAU;AAAA,EACxB,WAAAN;AAAA,EACA,SAAAO;AAAA,EACA,GAAGN;AACL,GAAqC;AACnC,SACE,gBAAAC;AAAA,IAACM;AAAAA,IAAA;AAAA,MACC,WAAWJ;AAAA,QAAmBJ;AAAA,QAAW,CAACA,MACxCK,EAAGI,EAAmB,EAAE,SAAAF,EAAA,CAAS,GAAG,WAAWP,CAAS;AAAA,MAAA;AAAA,MAEzD,GAAGC;AAAA,MAEH,UAAA,CAACS,MAAY,gBAAAR,EAACH,GAAA,EAAY,SAAAW,EAAA,CAAkB;AAAA,IAAA;AAAA,EAAA;AAGnD;AAIO,SAASC,EAAmC;AAAA,EACjD,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAb;AAAA,EACA,cAAAc;AAAA,EACA,GAAGb;AACL,GAAsB;AACpB,SACE,gBAAAC;AAAA,IAACa;AAAAA,IAAA;AAAA,MACC,WAAWX;AAAA,QAAmBJ;AAAA,QAAW,CAACA,MACxCK,EAAG,oBAAoBL,CAAS;AAAA,MAAA;AAAA,MAEjC,GAAGC;AAAA,MAEJ,4BAACe,GAAA,EAAU,OAAAJ,GAAc,aAAAC,GAA0B,cAAAC,GACjD,UAAA,gBAAAZ,EAACI,KAAU,EAAA,CACb;AAAA,IAAA;AAAA,EAAA;AAGN;AAIO,SAASW,EAAmC;AAAA,EACjD,OAAAL;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAd;AAAA,EACA,GAAGC;AACL,GAAsB;AACpB,SACE,gBAAAC;AAAA,IAACgB;AAAAA,IAAA;AAAA,MACC,WAAWd;AAAA,QAAmBJ;AAAA,QAAW,CAACA,MACxCK,EAAG,oBAAoBL,CAAS;AAAA,MAAA;AAAA,MAEjC,GAAGC;AAAA,MAEJ,4BAACe,GAAA,EAAU,OAAAJ,GAAc,aAAAC,GAA0B,cAAAC,GACjD,UAAA,gBAAAZ,EAACI,KAAU,EAAA,CACb;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,91 +0,0 @@
1
- "use client";
2
- import { jsx as n, jsxs as o, Fragment as l } from "react/jsx-runtime";
3
- import { cva as s } from "class-variance-authority";
4
- import { Label as d, Text as m, Group as c, composeRenderProps as u } from "react-aria-components";
5
- import { Info as f, CircleX as p } from "lucide-react";
6
- import { cn as r } from "../../utils/primitives.es.js";
7
- const x = s([
8
- "select-none text-sm font-medium leading-none",
9
- /* Disabled */
10
- "disabled-muted",
11
- /* Invalid */
12
- "group-data-[invalid]:text-destructive"
13
- ]);
14
- function g({ className: e, ...t }) {
15
- return /* @__PURE__ */ n(d, { className: r(x(), e), ...t });
16
- }
17
- function h({ className: e, children: t, ...i }) {
18
- return /* @__PURE__ */ o(
19
- m,
20
- {
21
- className: r("text-sm text-muted leading-tight", e),
22
- ...i,
23
- slot: "description",
24
- children: [
25
- t,
26
- /* @__PURE__ */ n(f, { className: "inline size-2 align-text-top ms-0.5" })
27
- ]
28
- }
29
- );
30
- }
31
- function v({ className: e, children: t, ...i }) {
32
- return /* @__PURE__ */ o(
33
- "div",
34
- {
35
- className: r("text-sm leading-tight text-destructive duration-150 animate-in transition-transform slide-in-from-top-5 fade-in", e),
36
- ...i,
37
- children: [
38
- t,
39
- /* @__PURE__ */ n(p, { className: "inline size-2 align-text-top ms-0.5" })
40
- ]
41
- }
42
- );
43
- }
44
- const b = s("", {
45
- variants: {
46
- variant: {
47
- default: [
48
- // TODO standardize the padding here
49
- "relative flex h-input w-full items-center overflow-hidden border border-input bg-card px-2 py-2 text-sm ring-offset-background",
50
- /* Focus Within */
51
- "focus-ring",
52
- /* Disabled */
53
- "disabled-muted"
54
- ],
55
- ghost: ""
56
- }
57
- },
58
- defaultVariants: {
59
- variant: "default"
60
- }
61
- });
62
- function w({ className: e, variant: t, ...i }) {
63
- return /* @__PURE__ */ n(
64
- c,
65
- {
66
- className: u(
67
- e,
68
- (a) => r(b({ variant: t }), a)
69
- ),
70
- ...i
71
- }
72
- );
73
- }
74
- function z({ label: e, description: t, errorMessage: i, children: a }) {
75
- return /* @__PURE__ */ o(l, { children: [
76
- e && /* @__PURE__ */ n(g, { children: e }),
77
- a,
78
- t && /* @__PURE__ */ n(h, { children: t }),
79
- i && /* @__PURE__ */ n(v, { children: i })
80
- ] });
81
- }
82
- export {
83
- h as FieldDescription,
84
- v as FieldError,
85
- w as FieldGroup,
86
- g as FieldLabel,
87
- z as FormField,
88
- b as fieldGroupVariants,
89
- x as labelVariants
90
- };
91
- //# sourceMappingURL=field.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field.es.js","sources":["../../../lib/components/inputs/field.tsx"],"sourcesContent":["\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport {\n Group as AriaGroup,\n GroupProps as AriaGroupProps,\n Label as AriaLabel,\n LabelProps as AriaLabelProps,\n Text as AriaText,\n TextProps as AriaTextProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { cn } from \"@/utils/index\"\nimport { CircleX, Info } from \"lucide-react\"\nimport type React from \"react\"\n\nexport const labelVariants = cva([\n \"select-none text-sm font-medium leading-none\",\n /* Disabled */\n \"disabled-muted\",\n /* Invalid */\n \"group-data-[invalid]:text-destructive\",\n])\n\nexport function FieldLabel({ className, ...props }: AriaLabelProps) {\n return (\n <AriaLabel className={cn(labelVariants(), className)} {...props} />\n )\n}\n\nexport function FieldDescription({ className, children, ...props }: AriaTextProps) {\n return (\n <AriaText\n className={cn(\"text-sm text-muted leading-tight\", className)}\n {...props}\n slot=\"description\"\n >\n {children}<Info className=\"inline size-2 align-text-top ms-0.5\" />\n </AriaText>\n )\n}\n// TODO, if we were to use AriaFieldError, it would use the internal ValidationState Context object, which might be useful for composing inputs but\n// this would have significant overlap with what Tanstack Form is already doing for us. It has pros and cons, needs to be discussed and explored.\nexport function FieldError({ className, children, ...props }: React.ComponentPropsWithRef<'div'>) {\n return (\n <div\n className={cn(\"text-sm leading-tight text-destructive duration-150 animate-in transition-transform slide-in-from-top-5 fade-in\", className)}\n {...props}\n >\n {children}<CircleX className=\"inline size-2 align-text-top ms-0.5\" />\n </div>\n )\n}\n\nexport const fieldGroupVariants = cva(\"\", {\n variants: {\n variant: {\n default: [\n // TODO standardize the padding here\n \"relative flex h-input w-full items-center overflow-hidden border border-input bg-card px-2 py-2 text-sm ring-offset-background\",\n /* Focus Within */\n \"focus-ring\",\n /* Disabled */\n \"disabled-muted\",\n ],\n ghost: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nexport interface GroupProps\n extends AriaGroupProps,\n VariantProps<typeof fieldGroupVariants> { }\n\nexport function FieldGroup({ className, variant, ...props }: GroupProps) {\n return (\n <AriaGroup\n className={composeRenderProps(className, (className) =>\n cn(fieldGroupVariants({ variant }), className)\n )}\n {...props}\n />\n )\n}\n\nexport type FormFieldProps = {\n label?: string\n description?: React.ReactNode\n errorMessage?: string\n // | ((validation: AriaValidationResult) => string)\n}\n\nexport function FormField({ label, description, errorMessage, children }: FormFieldProps & {\n children: React.ReactNode\n}) {\n return <>\n {label && <FieldLabel>{label}</FieldLabel>}\n {children}\n {description && (<FieldDescription>{description}</FieldDescription>)}\n {errorMessage && <FieldError>{errorMessage}</FieldError>}\n </>\n}\n"],"names":["labelVariants","cva","FieldLabel","className","props","jsx","AriaLabel","cn","FieldDescription","children","jsxs","AriaText","Info","FieldError","CircleX","fieldGroupVariants","FieldGroup","variant","AriaGroup","composeRenderProps","FormField","label","description","errorMessage","Fragment"],"mappings":";;;;;;AAiBO,MAAMA,IAAgBC,EAAI;AAAA,EAC/B;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AACF,CAAC;AAEM,SAASC,EAAW,EAAE,WAAAC,GAAW,GAAGC,KAAyB;AAClE,SACE,gBAAAC,EAACC,KAAU,WAAWC,EAAGP,KAAiBG,CAAS,GAAI,GAAGC,GAAO;AAErE;AAEO,SAASI,EAAiB,EAAE,WAAAL,GAAW,UAAAM,GAAU,GAAGL,KAAwB;AACjF,SACE,gBAAAM;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWJ,EAAG,oCAAoCJ,CAAS;AAAA,MAC1D,GAAGC;AAAA,MACJ,MAAK;AAAA,MAEJ,UAAA;AAAA,QAAAK;AAAA,QAAS,gBAAAJ,EAACO,GAAA,EAAK,WAAU,sCAAA,CAAsC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGtE;AAGO,SAASC,EAAW,EAAE,WAAAV,GAAW,UAAAM,GAAU,GAAGL,KAA6C;AAChG,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWH,EAAG,oHAAoHJ,CAAS;AAAA,MAC1I,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QAAS,gBAAAJ,EAACS,GAAA,EAAQ,WAAU,sCAAA,CAAsC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzE;AAEO,MAAMC,IAAqBd,EAAI,IAAI;AAAA,EACxC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA;AAAA,QAEP;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA,MAAA;AAAA,MAEF,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,iBAAiB;AAAA,IACf,SAAS;AAAA,EAAA;AAEb,CAAC;AAMM,SAASe,EAAW,EAAE,WAAAb,GAAW,SAAAc,GAAS,GAAGb,KAAqB;AACvE,SACE,gBAAAC;AAAA,IAACa;AAAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QAAmBhB;AAAA,QAAW,CAACA,MACxCI,EAAGQ,EAAmB,EAAE,SAAAE,EAAA,CAAS,GAAGd,CAAS;AAAA,MAAA;AAAA,MAE9C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AASO,SAASgB,EAAU,EAAE,OAAAC,GAAO,aAAAC,GAAa,cAAAC,GAAc,UAAAd,KAE3D;AACD,SAAO,gBAAAC,EAAAc,GAAA,EACJ,UAAA;AAAA,IAAAH,KAAS,gBAAAhB,EAACH,KAAY,UAAAmB,EAAA,CAAM;AAAA,IAC5BZ;AAAA,IACAa,KAAgB,gBAAAjB,EAACG,GAAA,EAAkB,UAAAc,EAAA,CAAY;AAAA,IAC/CC,KAAgB,gBAAAlB,EAACQ,GAAA,EAAY,UAAAU,EAAA,CAAa;AAAA,EAAA,GAC7C;AACF;"}
@@ -1,61 +0,0 @@
1
- import { jsx as r, Fragment as x, jsxs as l } from "react/jsx-runtime";
2
- import { SearchField as F } from "./searchfield.es.js";
3
- import { Menu as I, MenuItem as N } from "../ui/menu.es.js";
4
- import { useQuery as p } from "@tanstack/react-query";
5
- import { useId as C, useState as q } from "react";
6
- import { Autocomplete as j } from "react-aria-components";
7
- import { PopoverTrigger as K, Popover as M } from "../ui/popover.es.js";
8
- import { Loader as v } from "../ui/loader.es.js";
9
- import { Button as A } from "../ui/button.es.js";
10
- import { useFieldContext as E } from "../../utils/form-context.es.js";
11
- function L({ value: t, disabled: i = !1, searchFn: n, multiple: o, onChange: f, onBlur: s, accessor: h = "id", idLookup: m }) {
12
- const c = C(), [a, g] = q(""), { data: y, isError: d, isFetching: u, error: S } = p({
13
- queryKey: [c, a],
14
- queryFn: () => n(a)
15
- }), b = p({
16
- queryKey: [c, t],
17
- queryFn: () => m(Array.from(t.keys()).map((e) => e.toString())),
18
- enabled: m && t.size > 0
19
- });
20
- return /* @__PURE__ */ r(x, { children: /* @__PURE__ */ l(K, { onOpenChange: (e) => {
21
- e || s == null || s(t);
22
- }, children: [
23
- /* @__PURE__ */ r(A, { className: "min-w-3xs", isDisabled: i, children: (() => {
24
- var e;
25
- return (e = b.data) == null ? void 0 : e.join(",");
26
- })() }),
27
- /* @__PURE__ */ r(M, { className: "p-2", children: /* @__PURE__ */ l(
28
- j,
29
- {
30
- inputValue: a,
31
- onInputChange: g,
32
- children: [
33
- /* @__PURE__ */ r(F, { className: "mb-icon", autoFocus: !0 }),
34
- u && /* @__PURE__ */ r(v, { className: "p-input" }),
35
- !u && !d && /* @__PURE__ */ r(I, { selectedKeys: t, selectionMode: o ? "multiple" : "single", onSelectionChange: (e) => {
36
- typeof e != "string" && f(e);
37
- }, className: "text-sm", items: y, renderEmptyState: () => "No results found.", children: (e) => /* @__PURE__ */ r(N, { id: e[h], children: e.name }, e.id) }),
38
- d && /* @__PURE__ */ r("div", { className: "text-destructive p-icon", children: S.message })
39
- ]
40
- }
41
- ) })
42
- ] }) });
43
- }
44
- function G({ disabled: t, ...i }) {
45
- const n = E();
46
- return /* @__PURE__ */ r(
47
- L,
48
- {
49
- ...i,
50
- disabled: t || n.form.state.isSubmitting,
51
- value: n.state.value,
52
- onBlur: (o) => n.handleBlur(),
53
- onChange: (o) => n.handleChange(o)
54
- }
55
- );
56
- }
57
- export {
58
- L as IdSearchInput,
59
- G as TfIdSearchInput
60
- };
61
- //# sourceMappingURL=id-search.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-search.es.js","sources":["../../../lib/components/inputs/id-search.tsx"],"sourcesContent":["import { SearchField } from \"@/components/inputs/searchfield\";\nimport { Button, Loader, Popover, PopoverTrigger } from \"@/components/ui\";\nimport { Menu, MenuItem } from \"@/components/ui/menu\";\nimport { useFieldContext } from \"@/utils\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useId, useState } from \"react\";\nimport { Autocomplete } from 'react-aria-components';\n\nexport type SelectState = Set<number | string>;\n\ntype SearchInputProps<T> = {\n value: SelectState;\n onChange: (v: SelectState) => void\n onBlur?: (v: SelectState) => void\n multiple: boolean\n disabled?: boolean\n idLookup?: (ids: string[]) => Promise<string[] | undefined>\n searchFn: (q: string) => Promise<T[] | undefined>\n accessor: 'id' | 'name';\n}\nexport function IdSearchInput<T extends { id: string; name: string }>({ value, disabled = false, searchFn, multiple, onChange, onBlur, accessor = 'id', idLookup }: SearchInputProps<T>) {\n const id = useId();\n const [search, _setSearch] = useState('');\n const { data, isError, isFetching, error } = useQuery({\n queryKey: [id, search],\n queryFn: () => searchFn(search)\n })\n\n const namesQuery = useQuery({\n queryKey: [id, value],\n queryFn: () => idLookup!(Array.from(value.keys()).map(id => id.toString())),\n enabled: idLookup && value.size > 0\n })\n\n const renderButtonLabel = () => {\n return namesQuery.data?.join(',');\n };\n\n return <>\n <PopoverTrigger onOpenChange={(o) => {\n if (!o) {\n // searchInputRef.current?.focus();\n onBlur?.(value);\n }\n }}>\n <Button className={'min-w-3xs'} isDisabled={disabled}>{renderButtonLabel()}</Button>\n <Popover className={'p-2'}>\n <Autocomplete\n inputValue={search}\n onInputChange={_setSearch}\n >\n <SearchField className={'mb-icon'} autoFocus />\n {isFetching && <Loader className=\"p-input\" />}\n {!isFetching && !isError && <Menu selectedKeys={value} selectionMode={multiple ? \"multiple\" : 'single'} onSelectionChange={(s) => {\n if (typeof (s) === 'string') return;\n onChange(s)\n }} className={'text-sm'} items={data} renderEmptyState={() => 'No results found.'}>\n {(item) => (<MenuItem key={item['id']} id={item[accessor]}>{item.name}</MenuItem>)}\n </Menu>}\n {\n isError && <div className=\"text-destructive p-icon\">{error.message}</div>\n }\n </Autocomplete>\n </Popover>\n </PopoverTrigger >\n </>\n\n}\n\nexport function TfIdSearchInput<T extends { id: string; name: string }>({ disabled, ...props }: Omit<SearchInputProps<T>, 'value' | 'onChange'>) {\n const field = useFieldContext<SelectState>();\n return (\n <IdSearchInput\n {...props}\n disabled={disabled || field.form.state.isSubmitting}\n value={field.state.value}\n onBlur={_ => field.handleBlur()}\n onChange={(e) => field.handleChange(e)}\n />\n );\n}"],"names":["IdSearchInput","value","disabled","searchFn","multiple","onChange","onBlur","accessor","idLookup","id","useId","search","_setSearch","useState","data","isError","isFetching","error","useQuery","namesQuery","jsx","Fragment","jsxs","PopoverTrigger","o","Button","_a","Popover","Autocomplete","SearchField","Loader","Menu","s","item","MenuItem","TfIdSearchInput","props","field","useFieldContext","_","e"],"mappings":";;;;;;;;;;AAoBO,SAASA,EAAsD,EAAE,OAAAC,GAAO,UAAAC,IAAW,IAAO,UAAAC,GAAU,UAAAC,GAAU,UAAAC,GAAU,QAAAC,GAAQ,UAAAC,IAAW,MAAM,UAAAC,EAAA,GAAiC;AACrL,QAAMC,IAAKC,EAAA,GACL,CAACC,GAAQC,CAAU,IAAIC,EAAS,EAAE,GAClC,EAAE,MAAAC,GAAM,SAAAC,GAAS,YAAAC,GAAY,OAAAC,EAAA,IAAUC,EAAS;AAAA,IAClD,UAAU,CAACT,GAAIE,CAAM;AAAA,IACrB,SAAS,MAAMR,EAASQ,CAAM;AAAA,EAAA,CACjC,GAEKQ,IAAaD,EAAS;AAAA,IACxB,UAAU,CAACT,GAAIR,CAAK;AAAA,IACpB,SAAS,MAAMO,EAAU,MAAM,KAAKP,EAAM,MAAM,EAAE,IAAI,CAAAQ,MAAMA,EAAG,SAAA,CAAU,CAAC;AAAA,IAC1E,SAASD,KAAYP,EAAM,OAAO;AAAA,EAAA,CACrC;AAMD,SAAO,gBAAAmB,EAAAC,GAAA,EACH,UAAA,gBAAAC,EAACC,GAAA,EAAe,cAAc,CAACC,MAAM;AACjC,IAAKA,KAEDlB,KAAA,QAAAA,EAASL;AAAA,EAEjB,GACI,UAAA;AAAA,IAAA,gBAAAmB,EAACK,KAAO,WAAW,aAAa,YAAYvB,GAAW,WAXrC,MAAM;;AAC5B,cAAOwB,IAAAP,EAAW,SAAX,gBAAAO,EAAiB,KAAK;AAAA,IACjC,MASmF;AAAA,IAC3E,gBAAAN,EAACO,GAAA,EAAQ,WAAW,OAChB,UAAA,gBAAAL;AAAA,MAACM;AAAA,MAAA;AAAA,QACG,YAAYjB;AAAA,QACZ,eAAeC;AAAA,QAEf,UAAA;AAAA,UAAA,gBAAAQ,EAACS,GAAA,EAAY,WAAW,WAAW,WAAS,IAAC;AAAA,UAC5Cb,KAAc,gBAAAI,EAACU,GAAA,EAAO,WAAU,UAAA,CAAU;AAAA,UAC1C,CAACd,KAAc,CAACD,uBAAYgB,GAAA,EAAK,cAAc9B,GAAO,eAAeG,IAAW,aAAa,UAAU,mBAAmB,CAAC4B,MAAM;AAC9H,YAAI,OAAQA,KAAO,YACnB3B,EAAS2B,CAAC;AAAA,UACd,GAAG,WAAW,WAAW,OAAOlB,GAAM,kBAAkB,MAAM,qBACzD,UAAA,CAACmB,wBAAWC,GAAA,EAA0B,IAAID,EAAK1B,CAAQ,GAAI,YAAK,QAAtC0B,EAAK,EAAsC,EAAA,CAC1E;AAAA,UAEIlB,KAAW,gBAAAK,EAAC,OAAA,EAAI,WAAU,2BAA2B,YAAM,QAAA,CAAQ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EAE3E,CACJ;AAAA,EAAA,EAAA,CACJ,EAAA,CACJ;AAEJ;AAEO,SAASe,EAAwD,EAAE,UAAAjC,GAAU,GAAGkC,KAA0D;AAC7I,QAAMC,IAAQC,EAAA;AACd,SACI,gBAAAlB;AAAA,IAACpB;AAAA,IAAA;AAAA,MACI,GAAGoC;AAAA,MACJ,UAAUlC,KAAYmC,EAAM,KAAK,MAAM;AAAA,MACvC,OAAOA,EAAM,MAAM;AAAA,MACnB,QAAQ,CAAAE,MAAKF,EAAM,WAAA;AAAA,MACnB,UAAU,CAACG,MAAMH,EAAM,aAAaG,CAAC;AAAA,IAAA;AAAA,EAAA;AAGjD;"}
@@ -1,60 +0,0 @@
1
- import { jsx as t, jsxs as u } from "react/jsx-runtime";
2
- import { OTPInput as l, OTPInputContext as p } from "input-otp";
3
- import { Minus as m } from "lucide-react";
4
- import * as d from "react";
5
- import { cn as n } from "../../utils/primitives.es.js";
6
- function v({
7
- className: e,
8
- containerClassName: r,
9
- ...i
10
- }) {
11
- return /* @__PURE__ */ t(
12
- l,
13
- {
14
- containerClassName: n(
15
- "flex items-center gap-2 has-disabled:opacity-50",
16
- r
17
- ),
18
- className: n("disabled:cursor-not-allowed", e),
19
- ...i
20
- }
21
- );
22
- }
23
- function O({
24
- className: e,
25
- ...r
26
- }) {
27
- return /* @__PURE__ */ t("div", { className: n("flex items-center", e), ...r });
28
- }
29
- function P({
30
- index: e,
31
- className: r,
32
- ...i
33
- }) {
34
- const o = d.use(p), { char: s, hasFakeCaret: a, isActive: c } = o.slots[e];
35
- return /* @__PURE__ */ u(
36
- "div",
37
- {
38
- className: n(
39
- "relative flex h-input w-9 items-center justify-center border-2 border-input body transition-all",
40
- c ? "z-10 border-2 border-primary" : "",
41
- r
42
- ),
43
- ...i,
44
- children: [
45
- s,
46
- a && /* @__PURE__ */ t("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ t("div", { className: "h-icon w-px animate-caret-blink bg-foreground duration-1000" }) })
47
- ]
48
- }
49
- );
50
- }
51
- function T({ ...e }) {
52
- return /* @__PURE__ */ t("div", { role: "separator", ...e, children: /* @__PURE__ */ t(m, {}) });
53
- }
54
- export {
55
- v as InputOTP,
56
- O as InputOTPGroup,
57
- T as InputOTPSeparator,
58
- P as InputOTPSlot
59
- };
60
- //# sourceMappingURL=input-otp.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-otp.es.js","sources":["../../../lib/components/inputs/input-otp.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Minus } from \"lucide-react\";\nimport * as React from \"react\";\n\nexport function InputOTP({\n\tclassName,\n\tcontainerClassName,\n\t...props\n}: React.ComponentProps<typeof OTPInput>) {\n\treturn (\n\t\t<OTPInput\n\t\t\tcontainerClassName={cn(\n\t\t\t\t\"flex items-center gap-2 has-disabled:opacity-50\",\n\t\t\t\tcontainerClassName,\n\t\t\t)}\n\t\t\tclassName={cn(\"disabled:cursor-not-allowed\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function InputOTPGroup({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn <div className={cn(\"flex items-center\", className)} {...props} />;\n}\n\nexport function InputOTPSlot({\n\tindex,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\"> & { index: number }) {\n\tconst inputOTPContext = React.use(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"relative flex h-input w-9 items-center justify-center border-2 border-input body transition-all\",\n\t\t\t\tisActive ? \"z-10 border-2 border-primary\" : \"\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{char}\n\t\t\t{hasFakeCaret && (\n\t\t\t\t<div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n\t\t\t\t\t<div className=\"h-icon w-px animate-caret-blink bg-foreground duration-1000\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div role=\"separator\" {...props}>\n\t\t\t<Minus />\n\t\t</div>\n\t);\n}\n"],"names":["InputOTP","className","containerClassName","props","jsx","OTPInput","cn","InputOTPGroup","InputOTPSlot","index","inputOTPContext","React","OTPInputContext","char","hasFakeCaret","isActive","jsxs","InputOTPSeparator","Minus"],"mappings":";;;;;AAKO,SAASA,EAAS;AAAA,EACxB,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,GAAGC;AACJ,GAA0C;AACzC,SACC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,oBAAoBC;AAAA,QACnB;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,WAAWI,EAAG,+BAA+BL,CAAS;AAAA,MACrD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASI,EAAc;AAAA,EAC7B,WAAAN;AAAA,EACA,GAAGE;AACJ,GAAgC;AAC/B,SAAO,gBAAAC,EAAC,SAAI,WAAWE,EAAG,qBAAqBL,CAAS,GAAI,GAAGE,GAAO;AACvE;AAEO,SAASK,EAAa;AAAA,EAC5B,OAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGE;AACJ,GAAoD;AACnD,QAAMO,IAAkBC,EAAM,IAAIC,CAAe,GAC3C,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,MAAaL,EAAgB,MAAMD,CAAK;AAEpE,SACC,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWV;AAAA,QACV;AAAA,QACAS,IAAW,kCAAkC;AAAA,QAC7Cd;AAAA,MAAA;AAAA,MAEA,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAU;AAAA,QACAC,uBACC,OAAA,EAAI,WAAU,yEACd,UAAA,gBAAAV,EAAC,OAAA,EAAI,WAAU,8DAAA,CAA8D,EAAA,CAC9E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIJ;AAEO,SAASa,EAAkB,EAAE,GAAGd,KAAsC;AAC5E,SACC,gBAAAC,EAAC,SAAI,MAAK,aAAa,GAAGD,GACzB,UAAA,gBAAAC,EAACc,KAAM,EAAA,CACR;AAEF;"}
@@ -1,47 +0,0 @@
1
- import { jsx as l } from "react/jsx-runtime";
2
- import { FormField as a } from "./field.es.js";
3
- import { EasyMenu as u, MenuItem as c } from "../ui/menu.es.js";
4
- import { useFieldContext as f } from "../../utils/form-context.es.js";
5
- import { getFieldErrorMessage as p } from "../../utils/form-hook.es.js";
6
- function g({
7
- items: o,
8
- value: r,
9
- onChange: n,
10
- label: i,
11
- errorMessage: t,
12
- description: s,
13
- ...d
14
- }) {
15
- return /* @__PURE__ */ l("div", { className: "group form-field", children: /* @__PURE__ */ l(a, { label: i, description: s, errorMessage: t, children: /* @__PURE__ */ l(
16
- u,
17
- {
18
- selectionMode: "multiple",
19
- selectedKeys: r,
20
- onSelectionChange: (e) => {
21
- typeof e != "string" && n(e);
22
- },
23
- items: o,
24
- label: r.size,
25
- ...d,
26
- children: (e) => /* @__PURE__ */ l(c, { id: e.id, isDisabled: e == null ? void 0 : e.disabled, children: e.label }, e.id)
27
- }
28
- ) }) });
29
- }
30
- function F({ ...o }) {
31
- const r = f();
32
- return /* @__PURE__ */ l(
33
- g,
34
- {
35
- value: r.state.value,
36
- onChange: r.setValue,
37
- onClose: r.handleBlur,
38
- errorMessage: p(r),
39
- ...o
40
- }
41
- );
42
- }
43
- export {
44
- g as MultiSelect,
45
- F as TfMultiSelect
46
- };
47
- //# sourceMappingURL=multi-select.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-select.es.js","sources":["../../../lib/components/inputs/multi-select.tsx"],"sourcesContent":["import { FormField, type FormFieldProps } from \"@/components/inputs/field\";\nimport type { SelectOption } from \"@/components/inputs/select-options\";\nimport { EasyMenu, MenuItem } from \"@/components/ui/menu\";\nimport { getFieldErrorMessage } from \"@/utils\";\nimport { useFieldContext } from \"@/utils/form-context\";\nimport React from \"react\";\n\ninterface MultipleSelectionProps {\n\tvalue: Set<string | number>;\n\tonChange: (v: Set<string | number>) => void;\n\tbuttonLabel?: React.ReactNode;\n\titems: SelectOption[];\n}\n\nexport interface MultiSelectProps extends MultipleSelectionProps, FormFieldProps, Omit<React.ComponentProps<typeof EasyMenu>, 'label' | 'items'> { }\n\nexport function MultiSelect({\n\titems,\n\tvalue,\n\tonChange: setValue,\n\tlabel,\n\terrorMessage,\n\tdescription,\n\t...props\n}: MultiSelectProps) {\n\treturn (\n\t\t<div className=\"group form-field\">\n\t\t\t<FormField {...{ label, description, errorMessage }}>\n\t\t\t\t<EasyMenu\n\t\t\t\t\tselectionMode=\"multiple\"\n\t\t\t\t\tselectedKeys={value}\n\t\t\t\t\tonSelectionChange={(v) => {\n\t\t\t\t\t\tif (typeof (v) === 'string') return\n\t\t\t\t\t\tsetValue(v)\n\t\t\t\t\t}}\n\t\t\t\t\titems={items}\n\t\t\t\t\tlabel={value.size}\n\t\t\t\t\t{...props}>\n\t\t\t\t\t{(item) => <MenuItem id={item.id} key={item.id} isDisabled={item?.disabled}>{item.label}</MenuItem>}\n\t\t\t\t</EasyMenu>\n\t\t\t</FormField>\n\t\t</div>\n\t);\n};\n\n\n// TODO implement isDisabled\nexport interface TfMultiSelectProps\n\textends Omit<MultiSelectProps, \"value\" | \"onChange\"> { }\nexport function TfMultiSelect({ ...props }: TfMultiSelectProps) {\n\tconst field = useFieldContext<Set<number | string>>();\n\n\treturn (\n\t\t<MultiSelect\n\t\t\tvalue={field.state.value}\n\t\t\tonChange={field.setValue}\n\t\t\tonClose={field.handleBlur}\n\t\t\terrorMessage={getFieldErrorMessage(field)}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n"],"names":["MultiSelect","items","value","setValue","label","errorMessage","description","props","jsx","FormField","EasyMenu","v","item","MenuItem","TfMultiSelect","field","useFieldContext","getFieldErrorMessage"],"mappings":";;;;;AAgBO,SAASA,EAAY;AAAA,EAC3B,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAUC;AAAA,EACV,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACJ,GAAqB;AACpB,SACC,gBAAAC,EAAC,OAAA,EAAI,WAAU,oBACd,UAAA,gBAAAA,EAACC,GAAA,EAAgB,OAAAL,GAAO,aAAAE,GAAa,cAAAD,GACpC,UAAA,gBAAAG;AAAA,IAACE;AAAA,IAAA;AAAA,MACA,eAAc;AAAA,MACd,cAAcR;AAAA,MACd,mBAAmB,CAACS,MAAM;AACzB,QAAI,OAAQA,KAAO,YACnBR,EAASQ,CAAC;AAAA,MACX;AAAA,MACA,OAAAV;AAAA,MACA,OAAOC,EAAM;AAAA,MACZ,GAAGK;AAAA,MACH,UAAA,CAACK,MAAS,gBAAAJ,EAACK,GAAA,EAAS,IAAID,EAAK,IAAkB,YAAYA,KAAA,gBAAAA,EAAM,UAAW,UAAAA,EAAK,MAAA,GAA3CA,EAAK,EAA4C;AAAA,IAAA;AAAA,EAAA,GAE1F,EAAA,CACD;AAEF;AAMO,SAASE,EAAc,EAAE,GAAGP,KAA6B;AAC/D,QAAMQ,IAAQC,EAAA;AAEd,SACC,gBAAAR;AAAA,IAACR;AAAA,IAAA;AAAA,MACA,OAAOe,EAAM,MAAM;AAAA,MACnB,UAAUA,EAAM;AAAA,MAChB,SAASA,EAAM;AAAA,MACf,cAAcE,EAAqBF,CAAK;AAAA,MACvC,GAAGR;AAAA,IAAA;AAAA,EAAA;AAGP;"}