@cryptlex/web-components 5.3.0 → 5.4.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 (163) hide show
  1. package/dist/components/{ui/alert.d.ts → alert.d.ts} +3 -3
  2. package/dist/components/alert.js +2 -0
  3. package/dist/components/alert.js.map +1 -0
  4. package/dist/components/{ui/avatar.d.ts → avatar.d.ts} +0 -1
  5. package/dist/components/avatar.js +2 -0
  6. package/dist/components/avatar.js.map +1 -0
  7. package/dist/components/{ui/badge.d.ts → badge.d.ts} +0 -1
  8. package/dist/components/badge.js +2 -0
  9. package/dist/components/badge.js.map +1 -0
  10. package/dist/components/{ui/breadcrumbs.d.ts → breadcrumbs.d.ts} +1 -1
  11. package/dist/components/breadcrumbs.js +2 -0
  12. package/dist/components/breadcrumbs.js.map +1 -0
  13. package/dist/components/{ui/button.d.ts → button.d.ts} +5 -5
  14. package/dist/components/button.js +2 -0
  15. package/dist/components/button.js.map +1 -0
  16. package/dist/components/{ui/calendar.d.ts → calendar.d.ts} +2 -3
  17. package/dist/components/calendar.js +2 -0
  18. package/dist/components/calendar.js.map +1 -0
  19. package/dist/components/card.js +2 -0
  20. package/dist/components/card.js.map +1 -0
  21. package/dist/components/{inputs/checkbox.d.ts → checkbox.d.ts} +3 -3
  22. package/dist/components/checkbox.js +2 -0
  23. package/dist/components/checkbox.js.map +1 -0
  24. package/dist/components/{data-table/table-commons.d.ts → data-table-commons.d.ts} +8 -8
  25. package/dist/components/data-table-commons.js +2 -0
  26. package/dist/components/data-table-commons.js.map +1 -0
  27. package/dist/components/{data-table/data-table-filter.d.ts → data-table-filter.d.ts} +3 -3
  28. package/dist/components/data-table-filter.js +2 -0
  29. package/dist/components/data-table-filter.js.map +1 -0
  30. package/dist/components/{data-table/data-table.d.ts → data-table.d.ts} +24 -25
  31. package/dist/components/data-table.js +2 -0
  32. package/dist/components/data-table.js.map +1 -0
  33. package/dist/components/{inputs/date-picker.d.ts → date-picker.d.ts} +3 -3
  34. package/dist/components/date-picker.js +2 -0
  35. package/dist/components/date-picker.js.map +1 -0
  36. package/dist/components/{inputs/datefield.d.ts → datefield.d.ts} +3 -3
  37. package/dist/components/datefield.js +2 -0
  38. package/dist/components/datefield.js.map +1 -0
  39. package/dist/components/{ui/dialog.d.ts → dialog.d.ts} +3 -4
  40. package/dist/components/dialog.js +2 -0
  41. package/dist/components/dialog.js.map +1 -0
  42. package/dist/components/{ui/disclosure.d.ts → disclosure.d.ts} +1 -2
  43. package/dist/components/disclosure.js +2 -0
  44. package/dist/components/disclosure.js.map +1 -0
  45. package/dist/components/{inputs/field.d.ts → field.d.ts} +5 -6
  46. package/dist/components/field.js +2 -0
  47. package/dist/components/field.js.map +1 -0
  48. package/dist/components/id-search.js +2 -0
  49. package/dist/components/id-search.js.map +1 -0
  50. package/dist/components/{inputs/input-otp.d.ts → input-otp.d.ts} +1 -2
  51. package/dist/components/input-otp.js +2 -0
  52. package/dist/components/input-otp.js.map +1 -0
  53. package/dist/components/key-value-card.js +2 -0
  54. package/dist/components/key-value-card.js.map +1 -0
  55. package/dist/components/{ui/list-box.d.ts → list-box.d.ts} +1 -1
  56. package/dist/components/list-box.js +2 -0
  57. package/dist/components/list-box.js.map +1 -0
  58. package/dist/components/loader.js +2 -0
  59. package/dist/components/loader.js.map +1 -0
  60. package/dist/components/{ui/menu.d.ts → menu.d.ts} +5 -6
  61. package/dist/components/menu.js +2 -0
  62. package/dist/components/menu.js.map +1 -0
  63. package/dist/components/{inputs/multi-select.d.ts → multi-select.d.ts} +3 -4
  64. package/dist/components/multi-select.js +2 -0
  65. package/dist/components/multi-select.js.map +1 -0
  66. package/dist/components/{inputs/numberfield.d.ts → numberfield.d.ts} +2 -3
  67. package/dist/components/numberfield.js +2 -0
  68. package/dist/components/numberfield.js.map +1 -0
  69. package/dist/components/{ui/popover.d.ts → popover.d.ts} +1 -1
  70. package/dist/components/popover.js +2 -0
  71. package/dist/components/popover.js.map +1 -0
  72. package/dist/components/{inputs/searchfield.d.ts → searchfield.d.ts} +2 -2
  73. package/dist/components/searchfield.js +2 -0
  74. package/dist/components/searchfield.js.map +1 -0
  75. package/dist/components/select-options.js +2 -0
  76. package/dist/components/select-options.js.map +1 -0
  77. package/dist/components/{inputs/select.d.ts → select.d.ts} +5 -5
  78. package/dist/components/select.js +2 -0
  79. package/dist/components/select.js.map +1 -0
  80. package/dist/components/{ui/sidebar.d.ts → sidebar.d.ts} +4 -5
  81. package/dist/components/sidebar.js +2 -0
  82. package/dist/components/sidebar.js.map +1 -0
  83. package/dist/components/skeleton.js +2 -0
  84. package/dist/components/skeleton.js.map +1 -0
  85. package/dist/components/{ui/sonner.d.ts → sonner.d.ts} +1 -1
  86. package/dist/components/sonner.js +2 -0
  87. package/dist/components/sonner.js.map +1 -0
  88. package/dist/components/table-of-contents.d.ts +9 -0
  89. package/dist/components/table-of-contents.js +2 -0
  90. package/dist/components/table-of-contents.js.map +1 -0
  91. package/dist/components/{ui/table.d.ts → table.d.ts} +0 -1
  92. package/dist/components/table.js +2 -0
  93. package/dist/components/table.js.map +1 -0
  94. package/dist/components/{ui/tabs.d.ts → tabs.d.ts} +1 -1
  95. package/dist/components/tabs.js +2 -0
  96. package/dist/components/tabs.js.map +1 -0
  97. package/dist/components/{inputs/textfield.d.ts → textfield.d.ts} +2 -2
  98. package/dist/components/textfield.js +2 -0
  99. package/dist/components/textfield.js.map +1 -0
  100. package/dist/components/{ui/timeline.d.ts → timeline.d.ts} +3 -3
  101. package/dist/components/timeline.js +2 -0
  102. package/dist/components/timeline.js.map +1 -0
  103. package/dist/components/{ui/tooltip.d.ts → tooltip.d.ts} +1 -1
  104. package/dist/components/tooltip.js +2 -0
  105. package/dist/components/tooltip.js.map +1 -0
  106. package/dist/utils/form-context.d.ts +1 -1
  107. package/dist/utils/form-context.js +2 -5
  108. package/dist/utils/form-context.js.map +1 -0
  109. package/dist/utils/form-hook.d.ts +9 -11
  110. package/dist/utils/form-hook.js +2 -30
  111. package/dist/utils/form-hook.js.map +1 -0
  112. package/dist/utils/primitives.d.ts +16 -2
  113. package/dist/utils/primitives.js +2 -39
  114. package/dist/utils/primitives.js.map +1 -0
  115. package/dist/utils/resource-names.d.ts +1 -13
  116. package/dist/utils/resource-names.js +2 -212
  117. package/dist/utils/resource-names.js.map +1 -0
  118. package/dist/utils/use-mobile.js +2 -15
  119. package/dist/utils/use-mobile.js.map +1 -0
  120. package/lib/utilities.css +1 -1
  121. package/package.json +13 -12
  122. package/dist/components/data-table/data-table-filter.js +0 -112
  123. package/dist/components/data-table/data-table.js +0 -265
  124. package/dist/components/data-table/table-commons.js +0 -137
  125. package/dist/components/inputs/checkbox.js +0 -25
  126. package/dist/components/inputs/date-picker.js +0 -22
  127. package/dist/components/inputs/datefield.js +0 -25
  128. package/dist/components/inputs/field.js +0 -48
  129. package/dist/components/inputs/id-search.js +0 -40
  130. package/dist/components/inputs/input-otp.js +0 -19
  131. package/dist/components/inputs/multi-select.js +0 -18
  132. package/dist/components/inputs/numberfield.js +0 -25
  133. package/dist/components/inputs/searchfield.js +0 -24
  134. package/dist/components/inputs/select-options.js +0 -286
  135. package/dist/components/inputs/select.js +0 -34
  136. package/dist/components/inputs/textfield.js +0 -28
  137. package/dist/components/key-value-card/key-value-card.js +0 -40
  138. package/dist/components/ui/alert.js +0 -18
  139. package/dist/components/ui/avatar.js +0 -5
  140. package/dist/components/ui/badge.js +0 -5
  141. package/dist/components/ui/breadcrumbs.js +0 -28
  142. package/dist/components/ui/button.js +0 -34
  143. package/dist/components/ui/calendar.js +0 -63
  144. package/dist/components/ui/card.js +0 -20
  145. package/dist/components/ui/dialog.js +0 -42
  146. package/dist/components/ui/disclosure.js +0 -20
  147. package/dist/components/ui/list-box.js +0 -24
  148. package/dist/components/ui/loader.js +0 -6
  149. package/dist/components/ui/menu.js +0 -38
  150. package/dist/components/ui/popover.js +0 -14
  151. package/dist/components/ui/sidebar.js +0 -177
  152. package/dist/components/ui/skeleton.js +0 -5
  153. package/dist/components/ui/sonner.js +0 -14
  154. package/dist/components/ui/table.js +0 -26
  155. package/dist/components/ui/tabs.js +0 -25
  156. package/dist/components/ui/timeline.js +0 -31
  157. package/dist/components/ui/tooltip.js +0 -12
  158. /package/dist/components/{ui/card.d.ts → card.d.ts} +0 -0
  159. /package/dist/components/{inputs/id-search.d.ts → id-search.d.ts} +0 -0
  160. /package/dist/components/{key-value-card/key-value-card.d.ts → key-value-card.d.ts} +0 -0
  161. /package/dist/components/{ui/loader.d.ts → loader.d.ts} +0 -0
  162. /package/dist/components/{inputs/select-options.d.ts → select-options.d.ts} +0 -0
  163. /package/dist/components/{ui/skeleton.d.ts → skeleton.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
- import { DatePickerProps as AriaDatePickerProps, DateRangePickerProps as AriaDateRangePickerProps, DateValue as AriaDateValue } from "react-aria-components";
2
- import { type ZonedDateTime } from "@internationalized/date";
3
- import { type FormFieldProps } from "lib/components/inputs/field";
1
+ import { DatePickerProps as AriaDatePickerProps, DateRangePickerProps as AriaDateRangePickerProps, DateValue as AriaDateValue } from 'react-aria-components';
2
+ import { ZonedDateTime } from '@internationalized/date';
3
+ import { FormFieldProps } from 'lib/components/field';
4
4
  interface DatePickerProps<T extends AriaDateValue> extends AriaDatePickerProps<T>, FormFieldProps {
5
5
  }
6
6
  export declare function DatePicker<T extends AriaDateValue>({ label, description, errorMessage, className, ...props }: DatePickerProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsxs as i,jsx as e}from"react/jsx-runtime";import{CalendarIcon as p}from"lucide-react";import{DatePicker as x,composeRenderProps as c,DateRangePicker as v,Popover as D,Dialog as N}from"react-aria-components";import{parseAbsolute as P,getLocalTimeZone as k}from"@internationalized/date";import{Button as u}from"./button.js";import{Calendar as C,RangeCalendar as F}from"./calendar.js";import{DateInput as m}from"./datefield.js";import{FormField as f,FieldGroup as g}from"./field.js";import{useFieldContext as R}from"../utils/form-context.js";import{classNames as n,getFieldErrorMessage as d}from"../utils/primitives.js";import"class-variance-authority";import"./loader.js";import"react";import"@tanstack/react-form";import"clsx";const h=({className:a,popoverClassName:r,...t})=>e(D,{className:c(r,o=>n("w-auto p-3",o)),children:e(N,{className:n("flex w-full flex-col gap-y-2 outline-none sm:flex-row sm:gap-x-icon sm:gap-y-0",a),...t})});function b({label:a,description:r,errorMessage:t,className:o,...l}){return i(x,{className:c(o,s=>n("group flex flex-col gap-2",s)),...l,children:[e(f,{label:a,description:r,errorMessage:t,children:i(g,{"aria-label":a,children:[e(m,{className:"flex-1",variant:"ghost"}),e(u,{variant:"ghost",size:"icon",className:"-me-2 ms-2",children:e(p,{"aria-hidden":!0})})]})}),e(h,{children:e(C,{})})]})}function q({...a}){const r=R();return e(b,{hideTimeZone:!0,value:r.state.value?P(r.state.value,k()):null,onChange:t=>t?r.handleChange(t.toAbsoluteString()):r.handleChange(null),onBlur:r.handleBlur,isInvalid:!!d(r),errorMessage:d(r),...a})}function H({label:a,description:r,errorMessage:t,className:o,...l}){return i(v,{className:c(o,s=>n("group flex flex-col gap-2",s)),...l,children:[e(f,{label:a,errorMessage:t,description:r,children:i(g,{children:[e(m,{variant:"ghost",slot:"start"}),e("span",{"aria-hidden":!0,className:"px-2 text-sm text-muted-foreground",children:"-"}),e(m,{className:"flex-1",variant:"ghost",slot:"end"}),e(u,{variant:"ghost",size:"icon",className:"mr-1 data-[focus-visible]:ring-offset-0",children:e(p,{"aria-hidden":!0})})]})}),e(h,{children:e(F,{})})]})}export{b as DatePicker,H as DateRangePicker,q as TfDatePicker};
2
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.js","sources":["../../lib/components/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 Popover\n} from \"react-aria-components\"\n\nimport { getLocalTimeZone, parseAbsolute, type ZonedDateTime } from \"@internationalized/date\"\nimport { Button } from \"lib/components/button\"\nimport { Calendar, RangeCalendar } from \"lib/components/calendar\"\nimport { DateInput } from \"lib/components/datefield\"\nimport { FieldGroup, FormField, type FormFieldProps } from \"lib/components/field\"\nimport { useFieldContext } from \"lib/utils/form-context\"\nimport { classNames, getFieldErrorMessage } from \"lib/utils/primitives\"\n\nconst DatePickerContent = ({\n className,\n popoverClassName,\n ...props\n}: AriaDialogProps & { popoverClassName?: AriaPopoverProps[\"className\"] }) => (\n <Popover\n className={composeRenderProps(popoverClassName, (className) =>\n classNames(\"w-auto p-3\", className)\n )}\n >\n <AriaDialog\n className={classNames(\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 classNames(\"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 classNames(\"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","classNames","AriaDialog","DatePicker","label","description","errorMessage","jsxs","AriaDatePicker","FormField","FieldGroup","DateInput","Button","CalendarIcon","Calendar","TfDatePicker","field","useFieldContext","parseAbsolute","getLocalTimeZone","v","getFieldErrorMessage","DateRangePicker","AriaDateRangePicker","RangeCalendar"],"mappings":"8tBAsBA,MAAMA,EAAoB,CAAC,CACzB,UAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAmBD,GAC/CM,EAAW,aAAcN,CAAS,CAAA,EAGpC,SAAAG,EAACI,EAAA,CACC,UAAWD,EACT,iFACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CACN,CACF,EAKK,SAASM,EAAoC,CAClD,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAX,EACA,GAAGE,CACL,EAAuB,CACrB,OACEU,EAACC,EAAA,CACC,UAAWR,EAAmBL,EAAYA,GACxCM,EAAW,4BAA6BN,CAAS,CAAA,EAElD,GAAGE,EAEJ,SAAA,CAAAC,EAACW,GAAU,MAAAL,EAAc,YAAAC,EAA0B,aAAAC,EACjD,SAAAC,EAACG,EAAA,CAAW,aAAYN,EACtB,SAAA,CAAAN,EAACa,EAAA,CAAU,UAAU,SAAS,QAAQ,QAAQ,EAC9Cb,EAACc,EAAA,CACC,QAAQ,QACR,KAAK,OACL,UAAW,aAEX,SAAAd,EAACe,EAAA,CAAa,cAAW,EAAA,CAAC,CAAA,CAAA,CAC5B,CAAA,CACF,CAAA,CACF,EACAf,EAACJ,EAAA,CACC,SAAAI,EAACgB,EAAA,CAAA,CAAS,CAAA,CACZ,CAAA,CAAA,CAAA,CAGN,CAEO,SAASC,EAAa,CAAE,GAAGlB,GAA+G,CAC/I,MAAMmB,EAAQC,EAAA,EACd,OACEnB,EAACK,EAAA,CACC,aAAY,GACZ,MAAOa,EAAM,MAAM,MAAQE,EAAcF,EAAM,MAAM,MAAOG,EAAA,CAAkB,EAAI,KAClF,SAAWC,GAAMA,EAAIJ,EAAM,aAAaI,EAAE,kBAAkB,EAAIJ,EAAM,aAAa,IAAI,EACvF,OAAQA,EAAM,WACd,UAAW,CAAC,CAACK,EAAqBL,CAAK,EACvC,aAAcK,EAAqBL,CAAK,EACvC,GAAGnB,CAAA,CAAA,CAEV,CAGO,SAASyB,EAAyC,CACvD,MAAAlB,EACA,YAAAC,EACA,aAAAC,EACA,UAAAX,EACA,GAAGE,CACL,EAA4B,CAC1B,OACEU,EAACgB,EAAA,CACC,UAAWvB,EAAmBL,EAAYA,GACxCM,EAAW,4BAA6BN,CAAS,CAAA,EAElD,GAAGE,EAEJ,SAAA,CAAAC,EAACW,EAAA,CAAU,MAAAL,EAAc,aAAAE,EAA4B,YAAAD,EACnD,WAACK,EAAA,CACC,SAAA,CAAAZ,EAACa,EAAA,CAAU,QAAQ,QAAQ,KAAM,QAAS,IACzC,OAAA,CAAK,cAAW,GAAC,UAAU,qCAAqC,SAAA,IAEjE,IACCA,EAAA,CAAU,UAAU,SAAS,QAAQ,QAAQ,KAAM,MAAO,EAC3Db,EAACc,EAAA,CACC,QAAQ,QACR,KAAK,OACL,UAAU,0CAEV,SAAAd,EAACe,EAAA,CAAa,cAAW,EAAA,CAAC,CAAA,CAAA,CAC5B,CAAA,CACF,CAAA,CACF,EACAf,EAACJ,EAAA,CACC,SAAAI,EAAC0B,EAAA,CAAA,CAAc,CAAA,CACjB,CAAA,CAAA,CAAA,CAGN"}
@@ -1,6 +1,6 @@
1
- import { VariantProps } from "class-variance-authority";
2
- import { DateFieldProps as AriaDateFieldProps, DateInputProps as AriaDateInputProps, DateSegmentProps as AriaDateSegmentProps, DateValue as AriaDateValue, TimeFieldProps as AriaTimeFieldProps, TimeValue as AriaTimeValue } from "react-aria-components";
3
- import { fieldGroupVariants, type FormFieldProps } from "./field";
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { DateFieldProps as AriaDateFieldProps, DateInputProps as AriaDateInputProps, DateSegmentProps as AriaDateSegmentProps, DateValue as AriaDateValue, TimeFieldProps as AriaTimeFieldProps, TimeValue as AriaTimeValue } from 'react-aria-components';
3
+ import { fieldGroupVariants, FormFieldProps } from './field';
4
4
  export declare function DateSegment({ className, ...props }: AriaDateSegmentProps): import("react/jsx-runtime").JSX.Element;
5
5
  interface DateInputProps extends AriaDateInputProps, VariantProps<typeof fieldGroupVariants> {
6
6
  }
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import{DateSegment as u,composeRenderProps as i,DateInput as m,DateField as f,TimeField as p}from"react-aria-components";import{classNames as n}from"../utils/primitives.js";import{fieldGroupVariants as g,FormField as c}from"./field.js";import"clsx";import"class-variance-authority";import"lucide-react";function v({className:t,...a}){return e(u,{className:i(t,d=>n("inline caret-transparent outline-0","data-[placeholder]:text-muted-foreground","disabled-muted","data-[focused]:bg-accent data-[focused]:text-accent-foreground","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",d)),...a})}function s({className:t,variant:a,...d}){return e(m,{className:i(t,r=>n(g({variant:a}),"text-sm",r)),...d,children:r=>e(v,{segment:r})})}function I({label:t,description:a,className:d,errorMessage:r,...o}){return e(f,{className:i(d,l=>n("group form-field",l)),...o,children:e(c,{label:t,description:a,errorMessage:r,children:e(s,{})})})}function S({label:t,description:a,errorMessage:d,className:r,...o}){return e(p,{className:i(r,l=>n("group form-field",l)),...o,children:e(c,{label:t,description:a,errorMessage:d,children:e(s,{})})})}export{I as DateField,s as DateInput,v as DateSegment,S as TimeField};
2
+ //# sourceMappingURL=datefield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datefield.js","sources":["../../lib/components/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\n\nimport { classNames } from \"lib/utils/primitives\"\nimport { fieldGroupVariants, FormField, type FormFieldProps } from \"./field\"\n\nexport function DateSegment({ className, ...props }: AriaDateSegmentProps) {\n return (\n <AriaDateSegment\n className={composeRenderProps(className, (className) =>\n classNames(\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 classNames(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 classNames(\"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 classNames(\"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","classNames","DateInput","variant","AriaDateInput","fieldGroupVariants","segment","DateField","label","description","errorMessage","AriaDateField","FormField","TimeField","AriaTimeField"],"mappings":"oWAqBO,SAASA,EAAY,CAAE,UAAAC,EAAW,GAAGC,GAA+B,CACzE,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EACE,qCAEA,2CAEA,iBAEA,iEAEA,yQACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAMO,SAASK,EAAU,CACxB,UAAAN,EACA,QAAAO,EACA,GAAGN,CACL,EAAqC,CACnC,OACEC,EAACM,EAAA,CACC,UAAWJ,EAAmBJ,EAAYA,GACxCK,EAAWI,EAAmB,CAAE,QAAAF,CAAA,CAAS,EAAG,UAAWP,CAAS,CAAA,EAEjE,GAAGC,EAEH,SAACS,GAAYR,EAACH,EAAA,CAAY,QAAAW,CAAA,CAAkB,CAAA,CAAA,CAGnD,CAIO,SAASC,EAAmC,CACjD,MAAAC,EACA,YAAAC,EACA,UAAAb,EACA,aAAAc,EACA,GAAGb,CACL,EAAsB,CACpB,OACEC,EAACa,EAAA,CACC,UAAWX,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,WAACe,EAAA,CAAU,MAAAJ,EAAc,YAAAC,EAA0B,aAAAC,EACjD,SAAAZ,EAACI,IAAU,CAAA,CACb,CAAA,CAAA,CAGN,CAIO,SAASW,EAAmC,CACjD,MAAAL,EACA,YAAAC,EACA,aAAAC,EACA,UAAAd,EACA,GAAGC,CACL,EAAsB,CACpB,OACEC,EAACgB,EAAA,CACC,UAAWd,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,WAACe,EAAA,CAAU,MAAAJ,EAAc,YAAAC,EAA0B,aAAAC,EACjD,SAAAZ,EAACI,IAAU,CAAA,CACb,CAAA,CAAA,CAGN"}
@@ -1,9 +1,8 @@
1
- import { type VariantProps } from "class-variance-authority";
2
- import * as React from "react";
3
- import { DialogProps as AriaDialogProps, DialogTrigger as AriaDialogTrigger, HeadingProps as AriaHeadingProps, Modal as AriaModal, ModalOverlayProps as AriaModalOverlayProps } from "react-aria-components";
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { DialogProps as AriaDialogProps, DialogTrigger as AriaDialogTrigger, HeadingProps as AriaHeadingProps, Modal as AriaModal, ModalOverlayProps as AriaModalOverlayProps } from 'react-aria-components';
4
3
  declare const sheetVariants: (props?: ({
5
4
  side?: "left" | "right" | "top" | "bottom" | null | undefined;
6
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
6
  export declare const DialogTrigger: typeof AriaDialogTrigger;
8
7
  export declare const DialogOverlay: ({ className, isDismissable, ...props }: AriaModalOverlayProps) => import("react/jsx-runtime").JSX.Element;
9
8
  export interface DialogContentProps extends Omit<React.ComponentProps<typeof AriaModal>, "children">, VariantProps<typeof sheetVariants> {
@@ -0,0 +1,2 @@
1
+ import{jsx as a,jsxs as s,Fragment as f}from"react/jsx-runtime";import{cva as c}from"class-variance-authority";import{DialogTrigger as u,ModalOverlay as x,composeRenderProps as l,Modal as p,Dialog as h,Heading as b}from"react-aria-components";import{Button as v}from"./button.js";import{classNames as i}from"../utils/primitives.js";import{X as y}from"lucide-react";import"./loader.js";import"clsx";const N=c(["fixed z-50 gap-4 bg-popover transition ease-in-out","data-[entering]:duration-200 data-[entering]:animate-in data-[entering]:fade-in-0 data-[exiting]:duration-200 data-[exiting]:animate-out data-[exiting]:fade-out-0"],{variants:{side:{top:"inset-x-0 top-0 border-b data-[entering]:slide-in-from-top data-[exiting]:slide-out-to-top max-h-table",bottom:"inset-x-0 bottom-0 border-t data-[entering]:slide-in-from-bottom data-[exiting]:slide-out-to-bottom max-h-table",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[entering]:slide-in-from-left data-[exiting]:slide-out-to-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[entering]:slide-in-from-right data-[exiting]:slide-out-to-right sm:max-w-sm"}}}),M=u,O=({className:t,isDismissable:e=!0,...n})=>a(x,{isDismissable:e,className:l(t,o=>i("fixed inset-0 z-50 bg-card/20","data-[exiting]:duration-100 data-[exiting]:animate-out","data-[entering]:animate-in",o)),...n});function P({className:t,children:e,side:n,role:o,closeButton:d=!0,...g}){return a(p,{className:l(t,r=>i(n?N({side:n,className:"h-full p-6"}):["fixed left-[50vw] top-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 border bg-popover p-icon duration-100 data-[exiting]:duration-100 data-[entering]:animate-in data-[exiting]:animate-out data-[entering]:fade-in-0 data-[exiting]:fade-out-0 data-[entering]:zoom-in-95 data-[exiting]:zoom-out-95 md:w-full"],r)),...g,children:a(h,{role:o,className:i(!n&&"grid h-full gap-4 relative","h-full outline-none"),children:l(e,(r,m)=>s(f,{children:[r,d&&a("div",{className:"absolute right-1 top-1",children:s(v,{size:"icon",variant:"destructive",onPress:m.close,className:"opacity-70 transition-opacity data-[hovered]:opacity-100",children:[a(y,{}),a("span",{className:"sr-only",children:"Close"})]})})]}))})})}function k({className:t,...e}){return a("div",{className:i("flex flex-col gap-y-2 text-center sm:text-left",t),...e})}function B({className:t,...e}){return a("div",{className:i("flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2",t),...e})}function R({className:t,...e}){return a(b,{slot:"title",className:i("text-lg font-semibold leading-none tracking-tight",t),...e})}function V({className:t,...e}){return a("p",{className:i("flex flex-col gap-y-1 text-center sm:text-left",t),...e})}export{P as DialogContent,V as DialogDescription,B as DialogFooter,k as DialogHeader,O as DialogOverlay,R as DialogTitle,M as DialogTrigger};
2
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sources":["../../lib/components/dialog.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport {\n Dialog as AriaDialog,\n DialogProps as AriaDialogProps,\n DialogTrigger as AriaDialogTrigger,\n Heading as AriaHeading,\n HeadingProps as AriaHeadingProps,\n Modal as AriaModal,\n ModalOverlay as AriaModalOverlay,\n ModalOverlayProps as AriaModalOverlayProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { Button } from \"lib/components/button\"\nimport { classNames } from \"lib/utils/primitives\"\nimport { X } from \"lucide-react\"\n\nconst sheetVariants = cva(\n [\n \"fixed z-50 gap-4 bg-popover transition ease-in-out\",\n \"data-[entering]:duration-200 data-[entering]:animate-in data-[entering]:fade-in-0 data-[exiting]:duration-200 data-[exiting]:animate-out data-[exiting]:fade-out-0\",\n ],\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[entering]:slide-in-from-top data-[exiting]:slide-out-to-top max-h-table\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[entering]:slide-in-from-bottom data-[exiting]:slide-out-to-bottom max-h-table\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[entering]:slide-in-from-left data-[exiting]:slide-out-to-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[entering]:slide-in-from-right data-[exiting]:slide-out-to-right sm:max-w-sm\",\n },\n },\n }\n)\n\nexport const DialogTrigger = AriaDialogTrigger\n\nexport const DialogOverlay = ({\n className,\n isDismissable = true,\n ...props\n}: AriaModalOverlayProps) => (\n <AriaModalOverlay\n isDismissable={isDismissable}\n className={composeRenderProps(className, (className) =>\n classNames(\n \"fixed inset-0 z-50 bg-card/20\",\n /* Exiting */\n \"data-[exiting]:duration-100 data-[exiting]:animate-out\",\n /* Entering */\n \"data-[entering]:animate-in\",\n className\n )\n )}\n {...props}\n />\n)\n\nexport interface DialogContentProps\n extends Omit<React.ComponentProps<typeof AriaModal>, \"children\">,\n VariantProps<typeof sheetVariants> {\n children?: AriaDialogProps[\"children\"]\n role?: AriaDialogProps[\"role\"]\n closeButton?: boolean\n}\n\nexport function DialogContent({\n className,\n children,\n side,\n role,\n closeButton = true,\n ...props\n}: DialogContentProps) {\n return (\n <AriaModal\n className={composeRenderProps(className, (className) =>\n classNames(\n side\n ? sheetVariants({ side, className: \"h-full p-6\" })\n : [\"fixed left-[50vw] top-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 border bg-popover p-icon duration-100 data-[exiting]:duration-100 data-[entering]:animate-in data-[exiting]:animate-out data-[entering]:fade-in-0 data-[exiting]:fade-out-0 data-[entering]:zoom-in-95 data-[exiting]:zoom-out-95 md:w-full\"],\n className\n )\n )}\n {...props}\n >\n <AriaDialog\n role={role}\n className={classNames(!side && \"grid h-full gap-4 relative\", \"h-full outline-none\")}\n >\n {composeRenderProps(children, (children, renderProps) => (\n <>\n {children}\n {closeButton && (\n <div className=\"absolute right-1 top-1\">\n <Button\n size={'icon'}\n variant={'destructive'}\n onPress={renderProps.close}\n className=\"opacity-70 transition-opacity data-[hovered]:opacity-100\"\n >\n <X />\n <span className=\"sr-only\">Close</span>\n </Button>\n </div>\n )}\n </>\n ))}\n </AriaDialog>\n </AriaModal>\n )\n}\n\nexport function DialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={classNames(\n \"flex flex-col gap-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function DialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={classNames(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function DialogTitle({ className, ...props }: AriaHeadingProps) {\n return (\n <AriaHeading\n slot=\"title\"\n className={classNames(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function DialogDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n className={classNames(\n \"flex flex-col gap-y-1 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n )\n}"],"names":["sheetVariants","cva","DialogTrigger","AriaDialogTrigger","DialogOverlay","className","isDismissable","props","jsx","AriaModalOverlay","composeRenderProps","classNames","DialogContent","children","side","role","closeButton","AriaModal","AriaDialog","renderProps","jsxs","Fragment","Button","X","DialogHeader","DialogFooter","DialogTitle","AriaHeading","DialogDescription"],"mappings":"8YAiBA,MAAMA,EAAgBC,EACpB,CACE,qDACA,qKAAA,EAEF,CACE,SAAU,CACR,KAAM,CACJ,IAAK,yGACL,OACE,kHACF,KAAM,yHACN,MACE,4HAAA,CACJ,CACF,CAEJ,EAEaC,EAAgBC,EAEhBC,EAAgB,CAAC,CAC5B,UAAAC,EACA,cAAAC,EAAgB,GAChB,GAAGC,CACL,IACEC,EAACC,EAAA,CACC,cAAAH,EACA,UAAWI,EAAmBL,EAAYA,GACxCM,EACE,gCAEA,yDAEA,6BACAN,CAAA,CACF,EAED,GAAGE,CAAA,CACN,EAWK,SAASK,EAAc,CAC5B,UAAAP,EACA,SAAAQ,EACA,KAAAC,EACA,KAAAC,EACA,YAAAC,EAAc,GACd,GAAGT,CACL,EAAuB,CACrB,OACEC,EAACS,EAAA,CACC,UAAWP,EAAmBL,EAAYA,GACxCM,EACEG,EACId,EAAc,CAAE,KAAAc,EAAM,UAAW,YAAA,CAAc,EAC/C,CAAC,8TAA8T,EACnUT,CAAA,CACF,EAED,GAAGE,EAEJ,SAAAC,EAACU,EAAA,CACC,KAAAH,EACA,UAAWJ,EAAW,CAACG,GAAQ,6BAA8B,qBAAqB,EAEjF,SAAAJ,EAAmBG,EAAU,CAACA,EAAUM,IACvCC,EAAAC,EAAA,CACG,SAAA,CAAAR,EACAG,GACCR,EAAC,MAAA,CAAI,UAAU,yBACb,SAAAY,EAACE,EAAA,CACC,KAAM,OACN,QAAS,cACT,QAASH,EAAY,MACrB,UAAU,2DAEV,SAAA,CAAAX,EAACe,EAAA,EAAE,EACHf,EAAC,OAAA,CAAK,UAAU,UAAU,SAAA,OAAA,CAAK,CAAA,CAAA,CAAA,CACjC,CACF,CAAA,EAEJ,CACD,CAAA,CAAA,CACH,CAAA,CAGN,CAEO,SAASgB,EAAa,CAC3B,UAAAnB,EACA,GAAGE,CACL,EAAyC,CACvC,OACEC,EAAC,MAAA,CACC,UAAWG,EACT,iDACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEO,SAASkB,EAAa,CAC3B,UAAApB,EACA,GAAGE,CACL,EAAyC,CACvC,OACEC,EAAC,MAAA,CACC,UAAWG,EACT,8DACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEO,SAASmB,EAAY,CAAE,UAAArB,EAAW,GAAGE,GAA2B,CACrE,OACEC,EAACmB,EAAA,CACC,KAAK,QACL,UAAWhB,EACT,oDACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEO,SAASqB,EAAkB,CAChC,UAAAvB,EACA,GAAGE,CACL,EAA+C,CAC7C,OACEC,EAAC,IAAA,CACC,UAAWG,EACT,iDACAN,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
@@ -1,5 +1,4 @@
1
- import React from "react";
2
- import { DisclosureGroupProps as AriaDisclosureGroupProps, DisclosurePanelProps as AriaDisclosurePanelProps, DisclosureProps as AriaDisclosureProps, ButtonProps } from "react-aria-components";
1
+ import { DisclosureGroupProps as AriaDisclosureGroupProps, DisclosurePanelProps as AriaDisclosurePanelProps, DisclosureProps as AriaDisclosureProps, ButtonProps } from 'react-aria-components';
3
2
  export interface DisclosureProps extends AriaDisclosureProps {
4
3
  children: React.ReactNode;
5
4
  }
@@ -0,0 +1,2 @@
1
+ import{jsx as s,jsxs as l}from"react/jsx-runtime";import{ChevronDownIcon as u}from"lucide-react";import{useContext as d}from"react";import{DisclosureGroupStateContext as c,Disclosure as m,composeRenderProps as t,Heading as p,Button as f,DisclosurePanel as b,DisclosureGroup as g}from"react-aria-components";import{classNames as i}from"../utils/primitives.js";import"clsx";function y({children:e,className:r,...o}){let n=d(c)!==null;return s(m,{...o,className:t(r,(a,D)=>i("group min-w-64",n&&"border-0 border-b last:border-b-0",a)),children:e})}function P({children:e,className:r}){return s(p,{className:"flex",children:l(f,{slot:"trigger",className:t(r,o=>i("group flex flex-1 items-center justify-between rounded-md py-4 font-medium ring-offset-background transition-all hover:underline","data-[disabled]:pointer-events-none data-[disabled]:opacity-50","data-[focus-visible]:outline-none data-[focus-visible]:ring-2 data-[focus-visible]:ring-ring data-[focus-visible]:ring-offset-2","outline-none",o)),children:[e,s(u,{"aria-hidden":!0,className:i("size-4 shrink-0 transition-transform duration-200","group-data-[expanded]:rotate-180","group-data-[disabled]:opacity-50")})]})})}function j({children:e,className:r,...o}){return s(b,{...o,className:"overflow-hidden text-sm transition-all",children:s("div",{className:i("pb-4 pt-0",r),children:e})})}function C({children:e,className:r,...o}){return s(g,{...o,className:t(r,(n,a)=>i("",n)),children:e})}export{y as Disclosure,C as DisclosureGroup,P as DisclosureHeader,j as DisclosurePanel};
2
+ //# sourceMappingURL=disclosure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disclosure.js","sources":["../../lib/components/disclosure.tsx"],"sourcesContent":["import { ChevronDownIcon } from \"lucide-react\"\nimport { useContext } from \"react\"\nimport {\n Disclosure as AriaDisclosure,\n DisclosureGroup as AriaDisclosureGroup,\n DisclosureGroupProps as AriaDisclosureGroupProps,\n DisclosurePanel as AriaDisclosurePanel,\n DisclosurePanelProps as AriaDisclosurePanelProps,\n DisclosureProps as AriaDisclosureProps,\n Button,\n ButtonProps,\n composeRenderProps,\n DisclosureGroupStateContext,\n Heading,\n} from \"react-aria-components\"\n\nimport { classNames } from \"lib/utils/primitives\"\n\nexport interface DisclosureProps extends AriaDisclosureProps {\n children: React.ReactNode\n}\n\nexport function Disclosure({ children, className, ...props }: DisclosureProps) {\n let isInGroup = useContext(DisclosureGroupStateContext) !== null\n return (\n <AriaDisclosure\n {...props}\n className={composeRenderProps(className, (className, _) =>\n classNames(\n \"group min-w-64\",\n isInGroup && \"border-0 border-b last:border-b-0\",\n className\n )\n )}\n >\n {children}\n </AriaDisclosure>\n )\n}\n\nexport interface DisclosureHeaderProps {\n children: React.ReactNode\n className?: ButtonProps[\"className\"]\n}\n\nexport function DisclosureHeader({ children, className }: DisclosureHeaderProps) {\n return (\n <Heading className=\"flex\">\n <Button\n slot=\"trigger\"\n className={composeRenderProps(className, (className) => {\n return classNames(\n \"group flex flex-1 items-center justify-between rounded-md py-4 font-medium ring-offset-background transition-all hover:underline\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"data-[focus-visible]:outline-none data-[focus-visible]:ring-2 data-[focus-visible]:ring-ring data-[focus-visible]:ring-offset-2\",\n \"outline-none\",\n className\n )\n })}\n >\n {children}\n <ChevronDownIcon\n aria-hidden\n className={classNames(\n \"size-4 shrink-0 transition-transform duration-200\",\n \"group-data-[expanded]:rotate-180\",\n \"group-data-[disabled]:opacity-50\"\n )}\n />\n </Button>\n </Heading>\n )\n}\n\nexport interface DisclosurePanelProps extends AriaDisclosurePanelProps {\n children: React.ReactNode\n}\n\nexport function DisclosurePanel({\n children,\n className,\n ...props\n}: DisclosurePanelProps) {\n return (\n <AriaDisclosurePanel\n {...props}\n className={\"overflow-hidden text-sm transition-all\"}\n >\n <div className={classNames(\"pb-4 pt-0\", className)}>{children}</div>\n </AriaDisclosurePanel>\n )\n}\n\nexport interface DisclosureGroupProps extends AriaDisclosureGroupProps {\n children: React.ReactNode\n}\n\nexport function DisclosureGroup({\n children,\n className,\n ...props\n}: DisclosureGroupProps) {\n return (\n <AriaDisclosureGroup\n {...props}\n className={composeRenderProps(className, (className, _) =>\n classNames(\"\", className)\n )}\n >\n {children}\n </AriaDisclosureGroup>\n )\n}\n"],"names":["Disclosure","children","className","props","isInGroup","useContext","DisclosureGroupStateContext","jsx","AriaDisclosure","composeRenderProps","_","classNames","DisclosureHeader","Heading","jsxs","Button","ChevronDownIcon","DisclosurePanel","AriaDisclosurePanel","DisclosureGroup","AriaDisclosureGroup"],"mappings":"oXAsBO,SAASA,EAAW,CAAE,SAAAC,EAAU,UAAAC,EAAW,GAAGC,GAA0B,CAC7E,IAAIC,EAAYC,EAAWC,CAA2B,IAAM,KAC5D,OACEC,EAACC,EAAA,CACE,GAAGL,EACJ,UAAWM,EAAmBP,EAAW,CAACA,EAAWQ,IACnDC,EACE,iBACAP,GAAa,oCACbF,CAAA,CACF,EAGD,SAAAD,CAAA,CAAA,CAGP,CAOO,SAASW,EAAiB,CAAE,SAAAX,EAAU,UAAAC,GAAoC,CAC/E,OACEK,EAACM,EAAA,CAAQ,UAAU,OACjB,SAAAC,EAACC,EAAA,CACC,KAAK,UACL,UAAWN,EAAmBP,EAAYA,GACjCS,EACL,mIACA,iEACA,kIACA,eACAT,CAAA,CAEH,EAEA,SAAA,CAAAD,EACDM,EAACS,EAAA,CACC,cAAW,GACX,UAAWL,EACT,oDACA,mCACA,kCAAA,CACF,CAAA,CACF,CAAA,CAAA,EAEJ,CAEJ,CAMO,SAASM,EAAgB,CAC9B,SAAAhB,EACA,UAAAC,EACA,GAAGC,CACL,EAAyB,CACvB,OACEI,EAACW,EAAA,CACE,GAAGf,EACJ,UAAW,yCAEX,WAAC,MAAA,CAAI,UAAWQ,EAAW,YAAaT,CAAS,EAAI,SAAAD,CAAA,CAAS,CAAA,CAAA,CAGpE,CAMO,SAASkB,EAAgB,CAC9B,SAAAlB,EACA,UAAAC,EACA,GAAGC,CACL,EAAyB,CACvB,OACEI,EAACa,EAAA,CACE,GAAGjB,EACJ,UAAWM,EAAmBP,EAAW,CAACA,EAAWQ,IACnDC,EAAW,GAAIT,CAAS,CAAA,EAGzB,SAAAD,CAAA,CAAA,CAGP"}
@@ -1,13 +1,12 @@
1
- import { type VariantProps } from "class-variance-authority";
2
- import { GroupProps as AriaGroupProps, LabelProps as AriaLabelProps, TextProps as AriaTextProps } from "react-aria-components";
3
- import type React from "react";
4
- export declare const labelVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { GroupProps as AriaGroupProps, LabelProps as AriaLabelProps, TextProps as AriaTextProps } from 'react-aria-components';
3
+ export declare const labelVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
5
4
  export declare function FieldLabel({ className, ...props }: AriaLabelProps): import("react/jsx-runtime").JSX.Element;
6
5
  export declare function FieldDescription({ className, children, ...props }: AriaTextProps): import("react/jsx-runtime").JSX.Element;
7
6
  export declare function FieldError({ className, children, ...props }: React.ComponentPropsWithRef<'div'>): import("react/jsx-runtime").JSX.Element;
8
7
  export declare const fieldGroupVariants: (props?: ({
9
- variant?: "default" | "ghost" | null | undefined;
10
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ variant?: "ghost" | "default" | null | undefined;
9
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
11
10
  export interface GroupProps extends AriaGroupProps, VariantProps<typeof fieldGroupVariants> {
12
11
  }
13
12
  export declare function FieldGroup({ className, variant, ...props }: GroupProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ "use client";import{jsxs as o,Fragment as l,jsx as n}from"react/jsx-runtime";import{cva as s}from"class-variance-authority";import{Group as d,composeRenderProps as m,Label as c,Text as u}from"react-aria-components";import{classNames as r}from"../utils/primitives.js";import{Info as f,CircleX as p}from"lucide-react";import"clsx";const x=s(["select-none text-sm font-medium leading-none","disabled-muted","group-data-[invalid]:text-destructive"]);function g({className:e,...t}){return n(c,{className:r(x(),e),...t})}function h({className:e,children:t,...i}){return o(u,{className:r("text-sm text-muted leading-tight",e),...i,slot:"description",children:[t,n(f,{className:"inline size-2 align-text-top ms-0.5"})]})}function v({className:e,children:t,...i}){return o("div",{className:r("text-sm leading-tight text-destructive duration-150 animate-in transition-transform slide-in-from-top-5 fade-in",e),...i,children:[t,n(p,{className:"inline size-2 align-text-top ms-0.5"})]})}const b=s("",{variants:{variant:{default:["relative flex h-input w-full items-center overflow-hidden border border-input bg-card px-2 py-2 text-sm ring-offset-background","focus-ring","disabled-muted"],ghost:""}},defaultVariants:{variant:"default"}});function z({className:e,variant:t,...i}){return n(d,{className:m(e,a=>r(b({variant:t}),a)),...i})}function L({label:e,description:t,errorMessage:i,children:a}){return o(l,{children:[e&&n(g,{children:e}),a,t&&n(h,{children:t}),i&&n(v,{children:i})]})}export{h as FieldDescription,v as FieldError,z as FieldGroup,g as FieldLabel,L as FormField,b as fieldGroupVariants,x as labelVariants};
2
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sources":["../../lib/components/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 { classNames } from \"lib/utils/primitives\"\nimport { CircleX, Info } from \"lucide-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={classNames(labelVariants(), className)} {...props} />\n )\n}\n\nexport function FieldDescription({ className, children, ...props }: AriaTextProps) {\n return (\n <AriaText\n className={classNames(\"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={classNames(\"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 classNames(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","classNames","FieldDescription","children","jsxs","AriaText","Info","FieldError","CircleX","fieldGroupVariants","FieldGroup","variant","AriaGroup","composeRenderProps","FormField","label","description","errorMessage","Fragment"],"mappings":"yUAgBO,MAAMA,EAAgBC,EAAI,CAC/B,+CAEA,iBAEA,uCACF,CAAC,EAEM,SAASC,EAAW,CAAE,UAAAC,EAAW,GAAGC,GAAyB,CAClE,OACEC,EAACC,GAAU,UAAWC,EAAWP,IAAiBG,CAAS,EAAI,GAAGC,EAAO,CAE7E,CAEO,SAASI,EAAiB,CAAE,UAAAL,EAAW,SAAAM,EAAU,GAAGL,GAAwB,CACjF,OACEM,EAACC,EAAA,CACC,UAAWJ,EAAW,mCAAoCJ,CAAS,EAClE,GAAGC,EACJ,KAAK,cAEJ,SAAA,CAAAK,EAASJ,EAACO,EAAA,CAAK,UAAU,qCAAA,CAAsC,CAAA,CAAA,CAAA,CAGtE,CAGO,SAASC,EAAW,CAAE,UAAAV,EAAW,SAAAM,EAAU,GAAGL,GAA6C,CAChG,OACEM,EAAC,MAAA,CACC,UAAWH,EAAW,mHAAoHJ,CAAS,EAClJ,GAAGC,EAEH,SAAA,CAAAK,EAASJ,EAACS,EAAA,CAAQ,UAAU,qCAAA,CAAsC,CAAA,CAAA,CAAA,CAGzE,CAEO,MAAMC,EAAqBd,EAAI,GAAI,CACxC,SAAU,CACR,QAAS,CACP,QAAS,CAEP,iIAEA,aAEA,gBAAA,EAEF,MAAO,EAAA,CACT,EAEF,gBAAiB,CACf,QAAS,SAAA,CAEb,CAAC,EAMM,SAASe,EAAW,CAAE,UAAAb,EAAW,QAAAc,EAAS,GAAGb,GAAqB,CACvE,OACEC,EAACa,EAAA,CACC,UAAWC,EAAmBhB,EAAYA,GACxCI,EAAWQ,EAAmB,CAAE,QAAAE,CAAA,CAAS,EAAGd,CAAS,CAAA,EAEtD,GAAGC,CAAA,CAAA,CAGV,CASO,SAASgB,EAAU,CAAE,MAAAC,EAAO,YAAAC,EAAa,aAAAC,EAAc,SAAAd,GAE3D,CACD,OAAOC,EAAAc,EAAA,CACJ,SAAA,CAAAH,GAAShB,EAACH,GAAY,SAAAmB,CAAA,CAAM,EAC5BZ,EACAa,GAAgBjB,EAACG,EAAA,CAAkB,SAAAc,CAAA,CAAY,EAC/CC,GAAgBlB,EAACQ,EAAA,CAAY,SAAAU,CAAA,CAAa,CAAA,EAC7C,CACF"}
@@ -0,0 +1,2 @@
1
+ import{jsx as r,Fragment as x,jsxs as d}from"react/jsx-runtime";import{useQuery as l}from"@tanstack/react-query";import{Button as F}from"./button.js";import{Loader as I}from"./loader.js";import{Menu as N,MenuItem as C}from"./menu.js";import{PopoverTrigger as B,Popover as q}from"./popover.js";import{SearchField as j}from"./searchfield.js";import{useFieldContext as K}from"../utils/form-context.js";import{useId as M,useState as v}from"react";import{Autocomplete as A}from"react-aria-components";import"class-variance-authority";import"../utils/primitives.js";import"clsx";import"lucide-react";import"./list-box.js";import"./select.js";import"./field.js";import"@tanstack/react-form";function E({value:t,disabled:i=!1,searchFn:n,multiple:o,onChange:p,onBlur:f,accessor:h="id",idLookup:m}){const a=M(),[s,g]=v(""),{data:y,isError:c,isFetching:u,error:S}=l({queryKey:[a,s],queryFn:()=>n(s)}),b=l({queryKey:[a,t],queryFn:()=>m(Array.from(t.keys()).map(e=>e.toString())),enabled:m&&t.size>0});return r(x,{children:d(B,{onOpenChange:e=>{e||f?.(t)},children:[r(F,{className:"min-w-3xs",isDisabled:i,children:b.data?.join(",")}),r(q,{className:"p-2",children:d(A,{inputValue:s,onInputChange:g,children:[r(j,{className:"mb-icon",autoFocus:!0}),u&&r(I,{className:"p-input"}),!u&&!c&&r(N,{selectedKeys:t,selectionMode:o?"multiple":"single",onSelectionChange:e=>{typeof e!="string"&&p(e)},className:"text-sm",items:y,renderEmptyState:()=>"No results found.",children:e=>r(C,{id:e[h],children:e.name},e.id)}),c&&r("div",{className:"text-destructive p-icon",children:S.message})]})})]})})}function Z({disabled:t,...i}){const n=K();return r(E,{...i,disabled:t||n.form.state.isSubmitting,value:n.state.value,onBlur:o=>n.handleBlur(),onChange:o=>n.handleChange(o)})}export{E as IdSearchInput,Z as TfIdSearchInput};
2
+ //# sourceMappingURL=id-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-search.js","sources":["../../lib/components/id-search.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { Button } from \"lib/components/button\";\nimport { Loader } from \"lib/components/loader\";\nimport { Menu, MenuItem } from \"lib/components/menu\";\nimport { Popover, PopoverTrigger } from \"lib/components/popover\";\nimport { SearchField } from \"lib/components/searchfield\";\nimport { useFieldContext } from \"lib/utils/form-context\";\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","Popover","Autocomplete","SearchField","Loader","Menu","s","item","MenuItem","TfIdSearchInput","props","field","useFieldContext","_","e"],"mappings":"4qBAsBO,SAASA,EAAsD,CAAE,MAAAC,EAAO,SAAAC,EAAW,GAAO,SAAAC,EAAU,SAAAC,EAAU,SAAAC,EAAU,OAAAC,EAAQ,SAAAC,EAAW,KAAM,SAAAC,CAAA,EAAiC,CACrL,MAAMC,EAAKC,EAAA,EACL,CAACC,EAAQC,CAAU,EAAIC,EAAS,EAAE,EAClC,CAAE,KAAAC,EAAM,QAAAC,EAAS,WAAAC,EAAY,MAAAC,CAAA,EAAUC,EAAS,CAClD,SAAU,CAACT,EAAIE,CAAM,EACrB,QAAS,IAAMR,EAASQ,CAAM,CAAA,CACjC,EAEKQ,EAAaD,EAAS,CACxB,SAAU,CAACT,EAAIR,CAAK,EACpB,QAAS,IAAMO,EAAU,MAAM,KAAKP,EAAM,MAAM,EAAE,IAAIQ,GAAMA,EAAG,SAAA,CAAU,CAAC,EAC1E,QAASD,GAAYP,EAAM,KAAO,CAAA,CACrC,EAMD,OAAOmB,EAAAC,EAAA,CACH,SAAAC,EAACC,EAAA,CAAe,aAAeC,GAAM,CAC5BA,GAEDlB,IAASL,CAAK,CAEtB,EACI,SAAA,CAAAmB,EAACK,GAAO,UAAW,YAAa,WAAYvB,EAAW,SAVpDiB,EAAW,MAAM,KAAK,GAAG,EAU+C,EAC3EC,EAACM,EAAA,CAAQ,UAAW,MAChB,SAAAJ,EAACK,EAAA,CACG,WAAYhB,EACZ,cAAeC,EAEf,SAAA,CAAAQ,EAACQ,EAAA,CAAY,UAAW,UAAW,UAAS,GAAC,EAC5CZ,GAAcI,EAACS,EAAA,CAAO,UAAU,SAAA,CAAU,EAC1C,CAACb,GAAc,CAACD,KAAYe,EAAA,CAAK,aAAc7B,EAAO,cAAeG,EAAW,WAAa,SAAU,kBAAoB2B,GAAM,CAC1H,OAAQA,GAAO,UACnB1B,EAAS0B,CAAC,CACd,EAAG,UAAW,UAAW,MAAOjB,EAAM,iBAAkB,IAAM,oBACzD,SAACkB,KAAWC,EAAA,CAA0B,GAAID,EAAKzB,CAAQ,EAAI,WAAK,MAAtCyB,EAAK,EAAsC,CAAA,CAC1E,EAEIjB,GAAWK,EAAC,MAAA,CAAI,UAAU,0BAA2B,WAAM,OAAA,CAAQ,CAAA,CAAA,CAAA,CAE3E,CACJ,CAAA,CAAA,CACJ,CAAA,CACJ,CAEJ,CAEO,SAASc,EAAwD,CAAE,SAAAhC,EAAU,GAAGiC,GAA0D,CAC7I,MAAMC,EAAQC,EAAA,EACd,OACIjB,EAACpB,EAAA,CACI,GAAGmC,EACJ,SAAUjC,GAAYkC,EAAM,KAAK,MAAM,aACvC,MAAOA,EAAM,MAAM,MACnB,OAAQE,GAAKF,EAAM,WAAA,EACnB,SAAWG,GAAMH,EAAM,aAAaG,CAAC,CAAA,CAAA,CAGjD"}
@@ -1,5 +1,4 @@
1
- import { OTPInput } from "input-otp";
2
- import * as React from "react";
1
+ import { OTPInput } from 'input-otp';
3
2
  export declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput>): import("react/jsx-runtime").JSX.Element;
4
3
  export declare function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
4
  export declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<"div"> & {
@@ -0,0 +1,2 @@
1
+ import{jsx as t,jsxs as l}from"react/jsx-runtime";import{OTPInput as u,OTPInputContext as m}from"input-otp";import{classNames as n}from"../utils/primitives.js";import{Minus as p}from"lucide-react";import{use as d}from"react";import"clsx";function O({className:e,containerClassName:r,...i}){return t(u,{containerClassName:n("flex items-center gap-2 has-disabled:opacity-50",r),className:n("disabled:cursor-not-allowed",e),...i})}function P({className:e,...r}){return t("div",{className:n("flex items-center",e),...r})}function T({index:e,className:r,...i}){const o=d(m),{char:s,hasFakeCaret:a,isActive:c}=o.slots[e];return l("div",{className:n("relative flex h-input w-9 items-center justify-center border-2 border-input body transition-all",c?"z-10 border-2 border-primary":"",r),...i,children:[s,a&&t("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:t("div",{className:"h-icon w-px animate-caret-blink bg-foreground duration-1000"})})]})}function I({...e}){return t("div",{role:"separator",...e,children:t(p,{})})}export{O as InputOTP,P as InputOTPGroup,I as InputOTPSeparator,T as InputOTPSlot};
2
+ //# sourceMappingURL=input-otp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.js","sources":["../../lib/components/input-otp.tsx"],"sourcesContent":["import { OTPInput, OTPInputContext } from \"input-otp\";\nimport { classNames } from \"lib/utils/primitives\";\nimport { Minus } from \"lucide-react\";\nimport { use } 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={classNames(\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={classNames(\"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={classNames(\"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 = use(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\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","classNames","InputOTPGroup","InputOTPSlot","index","inputOTPContext","use","OTPInputContext","char","hasFakeCaret","isActive","jsxs","InputOTPSeparator","Minus"],"mappings":"8OAKO,SAASA,EAAS,CACxB,UAAAC,EACA,mBAAAC,EACA,GAAGC,CACJ,EAA0C,CACzC,OACCC,EAACC,EAAA,CACA,mBAAoBC,EACnB,kDACAJ,CAAA,EAED,UAAWI,EAAW,8BAA+BL,CAAS,EAC7D,GAAGE,CAAA,CAAA,CAGP,CAEO,SAASI,EAAc,CAC7B,UAAAN,EACA,GAAGE,CACJ,EAAgC,CAC/B,OAAOC,EAAC,OAAI,UAAWE,EAAW,oBAAqBL,CAAS,EAAI,GAAGE,EAAO,CAC/E,CAEO,SAASK,EAAa,CAC5B,MAAAC,EACA,UAAAR,EACA,GAAGE,CACJ,EAAoD,CACnD,MAAMO,EAAkBC,EAAIC,CAAe,EACrC,CAAE,KAAAC,EAAM,aAAAC,EAAc,SAAAC,GAAaL,EAAgB,MAAMD,CAAK,EAEpE,OACCO,EAAC,MAAA,CACA,UAAWV,EACV,kGACAS,EAAW,gCAAkC,GAC7Cd,CAAA,EAEA,GAAGE,EAEH,SAAA,CAAAU,EACAC,KACC,MAAA,CAAI,UAAU,wEACd,SAAAV,EAAC,MAAA,CAAI,UAAU,6DAAA,CAA8D,CAAA,CAC9E,CAAA,CAAA,CAAA,CAIJ,CAEO,SAASa,EAAkB,CAAE,GAAGd,GAAsC,CAC5E,OACCC,EAAC,OAAI,KAAK,YAAa,GAAGD,EACzB,SAAAC,EAACc,IAAM,CAAA,CACR,CAEF"}
@@ -0,0 +1,2 @@
1
+ import{jsxs as i,jsx as t}from"react/jsx-runtime";import{Badge as p}from"./badge.js";import{Card as m,CardHeader as d,CardTitle as f,CardContent as h}from"./card.js";import{formatDate as x}from"./data-table-commons.js";import{Skeleton as u}from"./skeleton.js";import"../utils/primitives.js";import"clsx";import"@tanstack/react-table";import"date-fns";import"./checkbox.js";import"react-aria-components";import"./field.js";import"class-variance-authority";import"lucide-react";import"../utils/form-context.js";import"@tanstack/react-form";const Y=({data:n,label:l,fields:o})=>{const c=(e,r)=>{if(e.transform)return e.transform(r);if(r==null)return"-";switch(e.type){case"date":return t("span",{children:x(r)});case"yesno":return t("span",{children:r?"Yes":"No"});case"badge":return t("div",{className:"flex flex-wrap gap-1",children:Array.isArray(r)?r.map((s,a)=>t(p,{children:typeof s=="object"?s?.name||s?.id:s},a)):r});case"boolean":return t("span",{children:r.toString()});default:return t("span",{children:r})}};return i(m,{children:[t(d,{children:t(f,{children:l})}),t(h,{children:t("div",{className:"flex flex-col gap-2",children:n?o.map(e=>{const r=e.accessor?e.accessor.split(".").reduce((s,a)=>s&&a in s?s[a]:void 0,n):null;return i("div",{className:"flex w-full flex-col md:flex-row justify-between first:pt-0 last:pb-0",children:[t("p",{className:"text-sm flex w-full justify-start col-span-1",children:e.display}),t("div",{className:"text-sm flex w-full justify-start text-wrap break-all",children:c(e,r)})]},e.display)}):o.map((e,r)=>t(u,{className:"h-12 w-full"},r))})})]})};export{Y as KeyValueCard};
2
+ //# sourceMappingURL=key-value-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-value-card.js","sources":["../../lib/components/key-value-card.tsx"],"sourcesContent":["import { Badge } from \"lib/components/badge\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"lib/components/card\";\nimport { formatDate } from \"lib/components/data-table-commons\";\nimport { Skeleton } from \"lib/components/skeleton\";\n\n// Utility type to handle nested keys (dot notation) in any object\ntype NestedKeyOf<T> = T extends object\n\t? {\n\t\t[K in keyof T]: K extends string | number\n\t\t? `${K & string}` | `${K & string}.${NestedKeyOf<T[K]>}`\n\t\t: never;\n\t}[keyof T]\n\t: never;\n\n// DisplayField type that works with nested keys\nexport type DisplayField<T> = {\n\tdisplay: string;\n\taccessor: NestedKeyOf<T>;\n\ttype?:\n\t| \"text\"\n\t| \"badge\"\n\t| \"boolean\"\n\t| \"date\"\n\t| \"yesno\"\n\t| \"copyButton\"\n\t| \"link\"; // Field types\n\ttransform?: (value: any) => React.ReactNode;\n};\n\nexport interface KeyValueCardProps<T> {\n\tdata: T; // Ensure data is of type T\n\tlabel: string;\n\tfields: DisplayField<T>[];\n\tclassName?: string;\n}\n\nexport const KeyValueCard = <T extends {}>({\n\tdata,\n\tlabel,\n\tfields,\n}: KeyValueCardProps<T>) => {\n\tconst renderValue = (field: DisplayField<T>, value: any) => {\n\t\tif (field.transform) {\n\t\t\treturn field.transform(value);\n\t\t}\n\t\tif (value === undefined || value === null) {\n\t\t\treturn \"-\";\n\t\t}\n\t\tswitch (field.type) {\n\t\t\tcase \"date\":\n\t\t\t\treturn <span>{formatDate(value)}</span>;\n\t\t\tcase \"yesno\":\n\t\t\t\treturn <span>{value ? \"Yes\" : \"No\"}</span>;\n\t\t\tcase \"badge\":\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"flex flex-wrap gap-1\">\n\t\t\t\t\t\t{Array.isArray(value)\n\t\t\t\t\t\t\t? value.map((item, index) => (\n\t\t\t\t\t\t\t\t<Badge key={index}>\n\t\t\t\t\t\t\t\t\t{typeof item === \"object\" ? item?.name || item?.id : item}\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t: value}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\n\t\t\tcase \"boolean\":\n\t\t\t\treturn <span>{value.toString()}</span>;\n\t\t\tdefault:\n\t\t\t\treturn <span>{value}</span>;\n\t\t}\n\t};\n\n\treturn (\n\t\t<Card>\n\t\t\t<CardHeader>\n\t\t\t\t<CardTitle>{label}</CardTitle>\n\t\t\t</CardHeader>\n\t\t\t<CardContent>\n\t\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t\t{data\n\t\t\t\t\t\t? fields.map((field) => {\n\t\t\t\t\t\t\t// TODO: improve this\n\t\t\t\t\t\t\tconst value = field.accessor\n\t\t\t\t\t\t\t\t? field.accessor\n\t\t\t\t\t\t\t\t\t.split(\".\")\n\t\t\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t\t\t(obj, key) =>\n\t\t\t\t\t\t\t\t\t\t\tobj && key in obj ? obj[key] : undefined,\n\t\t\t\t\t\t\t\t\t\tdata as Record<string, any>,\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={field.display}\n\t\t\t\t\t\t\t\t\tclassName=\"flex w-full flex-col md:flex-row justify-between first:pt-0 last:pb-0\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<p className=\"text-sm flex w-full justify-start col-span-1\">\n\t\t\t\t\t\t\t\t\t\t{field.display}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<div className=\"text-sm flex w-full justify-start text-wrap break-all\">\n\t\t\t\t\t\t\t\t\t\t{renderValue(field, value)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t: fields.map((_, index) => (\n\t\t\t\t\t\t\t<Skeleton key={index} className=\"h-12 w-full\" />\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</CardContent>\n\t\t</Card>\n\t);\n};\n"],"names":["KeyValueCard","data","label","fields","renderValue","field","value","jsx","formatDate","item","index","Badge","Card","CardHeader","CardTitle","CardContent","obj","key","jsxs","_","Skeleton"],"mappings":"0hBAoCO,MAAMA,EAAe,CAAe,CAC1C,KAAAC,EACA,MAAAC,EACA,OAAAC,CACD,IAA4B,CAC3B,MAAMC,EAAc,CAACC,EAAwBC,IAAe,CAC3D,GAAID,EAAM,UACT,OAAOA,EAAM,UAAUC,CAAK,EAE7B,GAA2BA,GAAU,KACpC,MAAO,IAER,OAAQD,EAAM,KAAA,CACb,IAAK,OACJ,OAAOE,EAAC,OAAA,CAAM,SAAAC,EAAWF,CAAK,EAAE,EACjC,IAAK,QACJ,OAAOC,EAAC,OAAA,CAAM,SAAAD,EAAQ,MAAQ,KAAK,EACpC,IAAK,QACJ,OACCC,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,MAAM,QAAQD,CAAK,EACjBA,EAAM,IAAI,CAACG,EAAMC,MACjBC,EAAA,CACC,SAAA,OAAOF,GAAS,SAAWA,GAAM,MAAQA,GAAM,GAAKA,CAAA,EAD1CC,CAEZ,CACA,EACCJ,CAAA,CACJ,EAGF,IAAK,UACJ,OAAOC,EAAC,OAAA,CAAM,SAAAD,EAAM,SAAA,EAAW,EAChC,QACC,OAAOC,EAAC,QAAM,SAAAD,CAAA,CAAM,CAAA,CAEvB,EAEA,SACEM,EAAA,CACA,SAAA,CAAAL,EAACM,EAAA,CACA,SAAAN,EAACO,EAAA,CAAW,SAAAZ,CAAA,CAAM,EACnB,EACAK,EAACQ,EAAA,CACA,SAAAR,EAAC,MAAA,CAAI,UAAU,sBACb,SAAAN,EACEE,EAAO,IAAKE,GAAU,CAEvB,MAAMC,EAAQD,EAAM,SACjBA,EAAM,SACN,MAAM,GAAG,EACT,OACA,CAACW,EAAKC,IACLD,GAAOC,KAAOD,EAAMA,EAAIC,CAAG,EAAI,OAChChB,CAAA,EAEA,KAEH,OACCiB,EAAC,MAAA,CAEA,UAAU,wEAEV,SAAA,CAAAX,EAAC,IAAA,CAAE,UAAU,+CACX,SAAAF,EAAM,QACR,IACC,MAAA,CAAI,UAAU,wDACb,SAAAD,EAAYC,EAAOC,CAAK,CAAA,CAC1B,CAAA,CAAA,EARKD,EAAM,OAAA,CAWd,CAAC,EACCF,EAAO,IAAI,CAACgB,EAAGT,IAChBH,EAACa,EAAA,CAAqB,UAAU,aAAA,EAAjBV,CAA+B,CAC9C,EACH,CAAA,CACD,CAAA,EACD,CAEF"}
@@ -1,4 +1,4 @@
1
- import { Collection as AriaCollection, Header as AriaHeader, ListBoxItemProps as AriaListBoxItemProps, ListBoxProps as AriaListBoxProps } from "react-aria-components";
1
+ import { Collection as AriaCollection, Header as AriaHeader, ListBoxItemProps as AriaListBoxItemProps, ListBoxProps as AriaListBoxProps } from 'react-aria-components';
2
2
  export declare const ListBoxCollection: typeof AriaCollection;
3
3
  export declare function ListBox<T extends object>({ className, ...props }: AriaListBoxProps<T>): import("react/jsx-runtime").JSX.Element;
4
4
  export declare function ListBoxItem<T extends object>({ className, children, ...props }: AriaListBoxItemProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as o,jsxs as c,Fragment as m}from"react/jsx-runtime";import{ListBoxItem as l,composeRenderProps as r,Collection as d,ListBox as p,Header as u}from"react-aria-components";import{classNames as n}from"../utils/primitives.js";import{Check as x}from"lucide-react";import"clsx";const v=d;function y({className:t,...e}){return o(p,{className:r(t,s=>n(s,"group overflow-auto border bg-popover p-1 text-popover-foreground shadow-md outline-none","data-[empty]:p-6 data-[empty]:text-center data-[empty]:text-sm")),...e})}function N({className:t,children:e,...s}){return o(l,{textValue:s.textValue||(typeof e=="string"?e:void 0),className:r(t,a=>n("relative flex w-full cursor-default select-none items-center px-2 py-1.5 text-sm outline-none","disabled-muted","data-[focused]:bg-accent data-[focused]:text-accent-foreground","data-[hovered]:bg-accent data-[hovered]:text-accent-foreground","data-[selection-mode]:pl-input",a)),...s,children:r(e,(a,i)=>c(m,{children:[i.isSelected&&o("span",{className:"absolute left-2 flex size-icon items-center justify-center",children:o(x,{className:"size-icon"})}),a]}))})}function h({className:t,...e}){return o(u,{className:n("py-1.5 pl-input pr-2 text-sm font-semibold",t),...e})}export{y as ListBox,v as ListBoxCollection,h as ListBoxHeader,N as ListBoxItem};
2
+ //# sourceMappingURL=list-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-box.js","sources":["../../lib/components/list-box.tsx"],"sourcesContent":["import {\n Collection as AriaCollection,\n Header as AriaHeader,\n ListBox as AriaListBox,\n ListBoxItem as AriaListBoxItem,\n ListBoxItemProps as AriaListBoxItemProps,\n ListBoxProps as AriaListBoxProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { classNames } from \"lib/utils/primitives\"\nimport { Check } from \"lucide-react\"\n\n\nexport const ListBoxCollection = AriaCollection\n\nexport function ListBox<T extends object>({\n className,\n ...props\n}: AriaListBoxProps<T>) {\n return (\n <AriaListBox\n className={composeRenderProps(className, (className) =>\n classNames(\n className,\n \"group overflow-auto border bg-popover p-1 text-popover-foreground shadow-md outline-none\",\n /* Empty */\n \"data-[empty]:p-6 data-[empty]:text-center data-[empty]:text-sm\"\n )\n )}\n {...props}\n />\n )\n}\n\nexport function ListBoxItem<T extends object>({\n className,\n children,\n ...props\n}: AriaListBoxItemProps<T>) {\n return (\n <AriaListBoxItem\n textValue={\n props.textValue || (typeof children === \"string\" ? children : undefined)\n }\n className={composeRenderProps(className, (className) =>\n classNames(\n \"relative flex w-full cursor-default select-none items-center px-2 py-1.5 text-sm outline-none\",\n /* Disabled */\n \"disabled-muted\",\n /* Focused */\n \"data-[focused]:bg-accent data-[focused]:text-accent-foreground\",\n /* Hovered */\n \"data-[hovered]:bg-accent data-[hovered]:text-accent-foreground\",\n /* Selection */\n \"data-[selection-mode]:pl-input\",\n className\n )\n )}\n {...props}\n >\n {composeRenderProps(children, (children, renderProps) => (\n <>\n {renderProps.isSelected && (\n <span className=\"absolute left-2 flex size-icon items-center justify-center\">\n <Check className=\"size-icon\" />\n </span>\n )}\n {children}\n </>\n ))}\n </AriaListBoxItem>\n )\n}\n\nexport function ListBoxHeader({\n className,\n ...props\n}: React.ComponentProps<typeof AriaHeader>) {\n return (\n <AriaHeader\n className={classNames(\"py-1.5 pl-input pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n )\n}\n"],"names":["ListBoxCollection","AriaCollection","ListBox","className","props","jsx","AriaListBox","composeRenderProps","classNames","ListBoxItem","children","AriaListBoxItem","renderProps","jsxs","Fragment","Check","ListBoxHeader","AriaHeader"],"mappings":"2RAcO,MAAMA,EAAoBC,EAE1B,SAASC,EAA0B,CACxC,UAAAC,EACA,GAAGC,CACL,EAAwB,CACtB,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EACEL,EACA,2FAEA,gEAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASK,EAA8B,CAC5C,UAAAN,EACA,SAAAO,EACA,GAAGN,CACL,EAA4B,CAC1B,OACEC,EAACM,EAAA,CACC,UACEP,EAAM,YAAc,OAAOM,GAAa,SAAWA,EAAW,QAEhE,UAAWH,EAAmBJ,EAAYA,GACxCK,EACE,gGAEA,iBAEA,iEAEA,iEAEA,iCACAL,CAAA,CACF,EAED,GAAGC,EAEH,SAAAG,EAAmBG,EAAU,CAACA,EAAUE,IACvCC,EAAAC,EAAA,CACG,SAAA,CAAAF,EAAY,cACV,OAAA,CAAK,UAAU,6DACd,SAAAP,EAACU,EAAA,CAAM,UAAU,WAAA,CAAY,CAAA,CAC/B,EAEDL,CAAA,EACH,CACD,CAAA,CAAA,CAGP,CAEO,SAASM,EAAc,CAC5B,UAAAb,EACA,GAAGC,CACL,EAA4C,CAC1C,OACEC,EAACY,EAAA,CACC,UAAWT,EAAW,6CAA8CL,CAAS,EAC5E,GAAGC,CAAA,CAAA,CAGV"}
@@ -0,0 +1,2 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{classNames as m}from"../utils/primitives.js";import{Loader2 as i}from"lucide-react";import"clsx";function n({className:o}){return r(i,{className:m("animate-spin size-icon",o)})}export{n as Loader};
2
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sources":["../../lib/components/loader.tsx"],"sourcesContent":["import { classNames } from \"lib/utils/primitives\";\nimport { Loader2 } from \"lucide-react\";\n\ninterface LoaderProps {\n\tclassName?: string; // Define props interface\n}\n\nexport function Loader({ className }: LoaderProps) {\n\treturn <Loader2 className={classNames(`animate-spin size-icon`, className)} />;\n}\n"],"names":["Loader","className","Loader2","classNames"],"mappings":"gJAOO,SAASA,EAAO,CAAE,UAAAC,GAA0B,CAClD,SAAQC,EAAA,CAAQ,UAAWC,EAAW,yBAA0BF,CAAS,EAAG,CAC7E"}
@@ -1,10 +1,9 @@
1
- import { VariantProps } from "class-variance-authority";
2
- import * as React from "react";
3
- import { Header as AriaHeader, Keyboard as AriaKeyboard, MenuItemProps as AriaMenuItemProps, MenuProps as AriaMenuProps, MenuTrigger as AriaMenuTrigger, MenuTriggerProps as AriaMenuTriggerProps, SeparatorProps as AriaSeparatorProps, PopoverProps } from "react-aria-components";
4
- import { buttonVariants } from "./button";
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Header as AriaHeader, Keyboard as AriaKeyboard, MenuItemProps as AriaMenuItemProps, MenuProps as AriaMenuProps, MenuTrigger as AriaMenuTrigger, MenuTriggerProps as AriaMenuTriggerProps, SeparatorProps as AriaSeparatorProps, PopoverProps } from 'react-aria-components';
3
+ import { buttonVariants } from './button';
5
4
  export declare const MenuTrigger: typeof AriaMenuTrigger;
6
- export declare const MenuSubTrigger: (props: import("react-aria-components").SubmenuTriggerProps & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
7
- export declare const MenuCollection: typeof import("react-aria-components").Collection;
5
+ export declare const MenuSubTrigger: (props: import('react-aria-components').SubmenuTriggerProps & React.RefAttributes<HTMLDivElement>) => import('react').ReactElement | null;
6
+ export declare const MenuCollection: typeof import('react-aria-components').Collection;
8
7
  export declare function MenuPopover({ className, ...props }: PopoverProps): import("react/jsx-runtime").JSX.Element;
9
8
  export declare function Menu<T extends object>({ className, ...props }: AriaMenuProps<T>): import("react/jsx-runtime").JSX.Element;
10
9
  export declare function MenuItem({ children, className, ...props }: AriaMenuItemProps & {
@@ -0,0 +1,2 @@
1
+ import{jsxs as s,jsx as o,Fragment as m}from"react/jsx-runtime";import{MenuTrigger as l,MenuItem as p,composeRenderProps as u,Menu as d,SubmenuTrigger as f,Header as g,Separator as x,Keyboard as b}from"react-aria-components";import{classNames as a}from"../utils/primitives.js";import{Dot as M,Check as h,ChevronRight as N}from"lucide-react";import{Button as y}from"./button.js";import{ListBoxCollection as v}from"./list-box.js";import{SelectPopover as S}from"./select.js";import"clsx";import"class-variance-authority";import"./loader.js";import"./field.js";import"../utils/form-context.js";import"@tanstack/react-form";import"./popover.js";const T=l,L=f,q=v;function _({className:e,...t}){return o(S,{className:u(e,n=>a(n)),...t})}function z({className:e,...t}){return o(d,{className:a("overflow-auto p-1 outline-0 [clip-path:inset(0_0_0_0_round_calc(var(--radius)-2px))]",e),escapeKeyBehavior:"none",...t})}function A({children:e,className:t,...n}){return o(p,{textValue:n.textValue||(typeof e=="string"?e:void 0),className:u(t,r=>a("relative flex cursor-default select-none items-center gap-2 px-2 py-1.5 text-sm outline-none transition-colors","disabled-muted","data-[focused]:bg-accent data-[focused]:text-accent-foreground ","data-[selection-mode]:pl-input",r)),...n,children:u(e,(r,i)=>s(m,{children:[o("span",{className:"absolute left-2 flex size-icon items-center justify-center",children:i.isSelected&&s(m,{children:[i.selectionMode=="single"&&o(M,{className:"size-icon fill-current"}),i.selectionMode=="multiple"&&o(h,{className:"size-icon"})]})}),r,i.hasSubmenu&&o(N,{className:"ml-auto size-icon"})]}))})}function G({className:e,inset:t,separator:n=!0,...r}){return o(g,{className:a("px-3 py-1.5 text-sm font-semibold",t&&"pl-input",n&&"-mx-1 mb-1 border-b border-b-border pb-2.5",e),...r})}function J({className:e,...t}){return o(x,{className:a("-mx-1 my-1 h-px bg-muted",e),...t})}function O({className:e,...t}){return o(b,{className:a("ml-auto text-xs tracking-widest opacity-60",e),...t})}function P({label:e,children:t,variant:n,isDisabled:r,size:i,...c}){return s(T,{...c,children:[o(y,{isDisabled:r,type:"button",variant:n,size:i,children:e}),o(_,{className:"overflow-auto",children:o(z,{...c,children:t})})]})}export{P as EasyMenu,z as Menu,q as MenuCollection,G as MenuHeader,A as MenuItem,O as MenuKeyboard,_ as MenuPopover,J as MenuSeparator,L as MenuSubTrigger,T as MenuTrigger};
2
+ //# sourceMappingURL=menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","sources":["../../lib/components/menu.tsx"],"sourcesContent":["import { VariantProps } from \"class-variance-authority\"\nimport {\n Header as AriaHeader,\n Keyboard as AriaKeyboard,\n Menu as AriaMenu,\n MenuItem as AriaMenuItem,\n MenuItemProps as AriaMenuItemProps,\n MenuProps as AriaMenuProps,\n MenuTrigger as AriaMenuTrigger,\n MenuTriggerProps as AriaMenuTriggerProps,\n Separator as AriaSeparator,\n SeparatorProps as AriaSeparatorProps,\n SubmenuTrigger as AriaSubmenuTrigger,\n composeRenderProps,\n PopoverProps,\n} from \"react-aria-components\"\n\nimport { classNames } from \"lib/utils/primitives\"\n\nimport { Check, ChevronRight, Dot } from \"lucide-react\"\nimport { Button, buttonVariants } from \"./button\"\nimport { ListBoxCollection } from \"./list-box\"\nimport { SelectPopover } from \"./select\"\n\nexport const MenuTrigger = AriaMenuTrigger\nexport const MenuSubTrigger = AriaSubmenuTrigger\nexport const MenuCollection = ListBoxCollection\n\nexport function MenuPopover({ className, ...props }: PopoverProps) {\n return (\n <SelectPopover\n className={composeRenderProps(className, (className) =>\n classNames(className)\n )}\n {...props}\n />\n )\n}\n\nexport function Menu<T extends object>({ className, ...props }: AriaMenuProps<T>) {\n return (\n <AriaMenu\n className={classNames(\n \"overflow-auto p-1 outline-0 [clip-path:inset(0_0_0_0_round_calc(var(--radius)-2px))]\",\n className\n )}\n escapeKeyBehavior=\"none\"\n {...props}\n />\n )\n}\n\nexport function MenuItem({ children, className, ...props }: AriaMenuItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n return (\n <AriaMenuItem\n textValue={\n props.textValue || (typeof children === \"string\" ? children : undefined)\n }\n className={composeRenderProps(className, (className) =>\n classNames(\n \"relative flex cursor-default select-none items-center gap-2 px-2 py-1.5 text-sm outline-none transition-colors\",\n /* Disabled */\n \"disabled-muted\",\n /* Focused */\n \"data-[focused]:bg-accent data-[focused]:text-accent-foreground \",\n /* Selection Mode */\n \"data-[selection-mode]:pl-input\",\n className\n )\n )}\n {...props}\n >\n {composeRenderProps(children, (children, renderProps) => (\n <>\n <span className=\"absolute left-2 flex size-icon items-center justify-center\">\n {renderProps.isSelected && (\n <>\n {renderProps.selectionMode == \"single\" && (\n <Dot className=\"size-icon fill-current\" />\n )}\n {renderProps.selectionMode == \"multiple\" && (\n <Check className=\"size-icon\" />\n )}\n </>\n )}\n </span>\n\n {children}\n\n {renderProps.hasSubmenu && <ChevronRight className=\"ml-auto size-icon\" />}\n </>\n ))}\n </AriaMenuItem>\n )\n}\n\ninterface MenuHeaderProps extends React.ComponentProps<typeof AriaHeader> {\n inset?: boolean\n separator?: boolean\n}\n\nexport function MenuHeader({\n className,\n inset,\n separator = true,\n ...props\n}: MenuHeaderProps) {\n return (\n <AriaHeader\n className={classNames(\n \"px-3 py-1.5 text-sm font-semibold\",\n inset && \"pl-input\",\n separator && \"-mx-1 mb-1 border-b border-b-border pb-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport function MenuSeparator({ className, ...props }: AriaSeparatorProps) {\n return (\n <AriaSeparator\n className={classNames(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport function MenuKeyboard({\n className,\n ...props\n}: React.ComponentProps<typeof AriaKeyboard>) {\n return (\n <AriaKeyboard\n className={classNames(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\ninterface MenuProps<T>\n extends AriaMenuProps<T>,\n VariantProps<typeof buttonVariants>,\n Omit<AriaMenuTriggerProps, \"children\"> {\n label?: React.ReactNode\n isDisabled?: boolean\n}\n// TODO name this better\nexport function EasyMenu<T extends object>({\n label,\n children,\n variant,\n isDisabled,\n size,\n ...props\n}: MenuProps<T>) {\n return (\n <MenuTrigger {...props}>\n <Button isDisabled={isDisabled} type=\"button\" variant={variant} size={size}>\n {label}\n </Button>\n <MenuPopover className=\"overflow-auto\">\n <Menu {...props}>{children}</Menu>\n </MenuPopover>\n </MenuTrigger>\n )\n}\n"],"names":["MenuTrigger","AriaMenuTrigger","MenuSubTrigger","AriaSubmenuTrigger","MenuCollection","ListBoxCollection","MenuPopover","className","props","jsx","SelectPopover","composeRenderProps","classNames","Menu","AriaMenu","MenuItem","children","AriaMenuItem","renderProps","jsxs","Fragment","Dot","Check","ChevronRight","MenuHeader","inset","separator","AriaHeader","MenuSeparator","AriaSeparator","MenuKeyboard","AriaKeyboard","EasyMenu","label","variant","isDisabled","size","Button"],"mappings":"goBAwBO,MAAMA,EAAcC,EACdC,EAAiBC,EACjBC,EAAiBC,EAEvB,SAASC,EAAY,CAAE,UAAAC,EAAW,GAAGC,GAAuB,CACjE,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EAAWL,CAAS,CAAA,EAErB,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASK,EAAuB,CAAE,UAAAN,EAAW,GAAGC,GAA2B,CAChF,OACEC,EAACK,EAAA,CACC,UAAWF,EACT,uFACAL,CAAA,EAEF,kBAAkB,OACjB,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASO,EAAS,CAAE,SAAAC,EAAU,UAAAT,EAAW,GAAGC,GAAkE,CACnH,OACEC,EAACQ,EAAA,CACC,UACET,EAAM,YAAc,OAAOQ,GAAa,SAAWA,EAAW,QAEhE,UAAWL,EAAmBJ,EAAYA,GACxCK,EACE,iHAEA,iBAEA,kEAEA,iCACAL,CAAA,CACF,EAED,GAAGC,EAEH,SAAAG,EAAmBK,EAAU,CAACA,EAAUE,IACvCC,EAAAC,EAAA,CACE,SAAA,CAAAX,EAAC,OAAA,CAAK,UAAU,6DACb,SAAAS,EAAY,YACXC,EAAAC,EAAA,CACG,SAAA,CAAAF,EAAY,eAAiB,UAC5BT,EAACY,EAAA,CAAI,UAAU,yBAAyB,EAEzCH,EAAY,eAAiB,YAC5BT,EAACa,EAAA,CAAM,UAAU,WAAA,CAAY,CAAA,CAAA,CAEjC,CAAA,CAEJ,EAECN,EAEAE,EAAY,YAAcT,EAACc,EAAA,CAAa,UAAU,mBAAA,CAAoB,CAAA,EACzE,CACD,CAAA,CAAA,CAGP,CAOO,SAASC,EAAW,CACzB,UAAAjB,EACA,MAAAkB,EACA,UAAAC,EAAY,GACZ,GAAGlB,CACL,EAAoB,CAClB,OACEC,EAACkB,EAAA,CACC,UAAWf,EACT,oCACAa,GAAS,WACTC,GAAa,6CACbnB,CAAA,EAED,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASoB,EAAc,CAAE,UAAArB,EAAW,GAAGC,GAA6B,CACzE,OACEC,EAACoB,EAAA,CACC,UAAWjB,EAAW,2BAA4BL,CAAS,EAC1D,GAAGC,CAAA,CAAA,CAGV,CAEO,SAASsB,EAAa,CAC3B,UAAAvB,EACA,GAAGC,CACL,EAA8C,CAC5C,OACEC,EAACsB,EAAA,CACC,UAAWnB,EAAW,6CAA8CL,CAAS,EAC5E,GAAGC,CAAA,CAAA,CAGV,CASO,SAASwB,EAA2B,CACzC,MAAAC,EACA,SAAAjB,EACA,QAAAkB,EACA,WAAAC,EACA,KAAAC,EACA,GAAG5B,CACL,EAAiB,CACf,OACEW,EAACnB,EAAA,CAAa,GAAGQ,EACf,SAAA,CAAAC,EAAC4B,GAAO,WAAAF,EAAwB,KAAK,SAAS,QAAAD,EAAkB,KAAAE,EAC7D,SAAAH,EACH,EACAxB,EAACH,GAAY,UAAU,gBACrB,WAACO,EAAA,CAAM,GAAGL,EAAQ,SAAAQ,CAAA,CAAS,CAAA,CAC7B,CAAA,EACF,CAEJ"}
@@ -1,7 +1,6 @@
1
- import { type FormFieldProps } from "lib/components/inputs/field";
2
- import type { SelectOption } from "lib/components/inputs/select-options";
3
- import { EasyMenu } from "lib/components/ui/menu";
4
- import React from "react";
1
+ import { FormFieldProps } from 'lib/components/field';
2
+ import { EasyMenu } from 'lib/components/menu';
3
+ import { SelectOption } from 'lib/components/select-options';
5
4
  interface MultipleSelectionProps {
6
5
  value: Set<string | number>;
7
6
  onChange: (v: Set<string | number>) => void;
@@ -0,0 +1,2 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{FormField as d}from"./field.js";import{EasyMenu as p,MenuItem as a}from"./menu.js";import{useFieldContext as u}from"../utils/form-context.js";import{getFieldErrorMessage as c}from"../utils/primitives.js";import"class-variance-authority";import"react-aria-components";import"lucide-react";import"./button.js";import"./loader.js";import"./list-box.js";import"./select.js";import"./popover.js";import"@tanstack/react-form";import"clsx";function f({items:i,value:e,onChange:t,label:l,errorMessage:n,description:m,...s}){return o("div",{className:"group form-field",children:o(d,{label:l,description:m,errorMessage:n,children:o(p,{selectionMode:"multiple",selectedKeys:e,onSelectionChange:r=>{typeof r!="string"&&t(r)},items:i,label:e.size,...s,children:r=>o(a,{id:r.id,isDisabled:r?.disabled,children:r.label},r.id)})})})}function I({...i}){const e=u();return o(f,{value:e.state.value,onChange:e.setValue,onClose:e.handleBlur,errorMessage:c(e),...i})}export{f as MultiSelect,I as TfMultiSelect};
2
+ //# sourceMappingURL=multi-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select.js","sources":["../../lib/components/multi-select.tsx"],"sourcesContent":["import { FormField, type FormFieldProps } from \"lib/components/field\";\nimport { EasyMenu, MenuItem } from \"lib/components/menu\";\nimport type { SelectOption } from \"lib/components/select-options\";\nimport { useFieldContext } from \"lib/utils/form-context\";\nimport { getFieldErrorMessage } from \"lib/utils/primitives\";\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":"geAcO,SAASA,EAAY,CAC3B,MAAAC,EACA,MAAAC,EACA,SAAUC,EACV,MAAAC,EACA,aAAAC,EACA,YAAAC,EACA,GAAGC,CACJ,EAAqB,CACpB,OACCC,EAAC,MAAA,CAAI,UAAU,mBACd,SAAAA,EAACC,EAAA,CAAgB,MAAAL,EAAO,YAAAE,EAAa,aAAAD,EACpC,SAAAG,EAACE,EAAA,CACA,cAAc,WACd,aAAcR,EACd,kBAAoBS,GAAM,CACrB,OAAQA,GAAO,UACnBR,EAASQ,CAAC,CACX,EACA,MAAAV,EACA,MAAOC,EAAM,KACZ,GAAGK,EACH,SAACK,GAASJ,EAACK,EAAA,CAAS,GAAID,EAAK,GAAkB,WAAYA,GAAM,SAAW,SAAAA,EAAK,KAAA,EAA3CA,EAAK,EAA4C,CAAA,CAAA,EAE1F,CAAA,CACD,CAEF,CAMO,SAASE,EAAc,CAAE,GAAGP,GAA6B,CAC/D,MAAMQ,EAAQC,EAAA,EAEd,OACCR,EAACR,EAAA,CACA,MAAOe,EAAM,MAAM,MACnB,SAAUA,EAAM,SAChB,QAASA,EAAM,WACf,aAAcE,EAAqBF,CAAK,EACvC,GAAGR,CAAA,CAAA,CAGP"}
@@ -1,6 +1,5 @@
1
- import { NumberFieldProps as AriaNumberFieldProps } from "react-aria-components";
2
- import type React from "react";
3
- import { type FormFieldProps } from "./field";
1
+ import { NumberFieldProps as AriaNumberFieldProps } from 'react-aria-components';
2
+ import { FormFieldProps } from './field';
4
3
  type NumberFieldProps = AriaNumberFieldProps & FormFieldProps;
5
4
  export declare function NumberField({ label, description, errorMessage, className, ...props }: NumberFieldProps): import("react/jsx-runtime").JSX.Element;
6
5
  export declare function TfNumberField({ isDisabled, ...props }: Omit<React.ComponentProps<typeof NumberField>, 'value' | 'id' | 'onChange' | 'onBlur'>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as r,jsxs as d}from"react/jsx-runtime";import{NumberField as c,composeRenderProps as n,Input as p}from"react-aria-components";import{Button as f}from"./button.js";import{useFieldContext as h}from"../utils/form-context.js";import{getFieldErrorMessage as l,classNames as t}from"../utils/primitives.js";import{ChevronUp as b,ChevronDown as N}from"lucide-react";import{FormField as g,FieldGroup as F}from"./field.js";import"class-variance-authority";import"./loader.js";import"@tanstack/react-form";import"clsx";const x=c;function v({className:o,...i}){return r(p,{className:n(o,e=>t("w-fit min-w-0 flex-1 border-r border-transparent bg-card pr-2 outline-0 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden",e)),...i})}function w({className:o,...i}){return d("div",{className:t("absolute right-0 flex h-full flex-col border-l",o),...i,children:[r(s,{slot:"increment",children:r(b,{"aria-hidden":!0,className:"size-icon"})}),r("div",{className:"border-b"}),r(s,{slot:"decrement",children:r(N,{"aria-hidden":!0,className:"size-icon"})})]})}function s({className:o,...i}){return r(f,{className:n(o,e=>t("w-auto grow h-3 px-0.5 text-muted-foreground",e)),variant:"ghost",size:"none",...i})}function C({label:o,description:i,errorMessage:e,className:m,...a}){return r(x,{className:n(m,u=>t("group form-field",u)),...a,children:r(g,{label:o,description:i,errorMessage:e,children:d(F,{children:[r(v,{}),r(w,{})]})})})}function P({isDisabled:o,...i}){const e=h();return r(C,{isInvalid:!!l(e),isDisabled:o||e.form.state.isSubmitting,value:e.state.value,id:e.name,onChange:e.handleChange,onBlur:e.handleBlur,errorMessage:l(e),...i})}export{C as NumberField,P as TfNumberField};
2
+ //# sourceMappingURL=numberfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberfield.js","sources":["../../lib/components/numberfield.tsx"],"sourcesContent":["import {\n ButtonProps as AriaButtonProps,\n Input as AriaInput,\n InputProps as AriaInputProps,\n NumberField as AriaNumberField,\n NumberFieldProps as AriaNumberFieldProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { Button } from \"lib/components/button\"\nimport { useFieldContext } from \"lib/utils/form-context\"\nimport { classNames, getFieldErrorMessage } from \"lib/utils/primitives\"\nimport { ChevronDown, ChevronUp } from \"lucide-react\"\nimport { FieldGroup, FormField, type FormFieldProps } from \"./field\"\n\nconst ANumberField = AriaNumberField\n\nfunction NumberFieldInput({ className, ...props }: AriaInputProps) {\n return (\n <AriaInput\n className={composeRenderProps(className, (className) =>\n classNames(\n \"w-fit min-w-0 flex-1 border-r border-transparent bg-card pr-2 outline-0 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nfunction NumberFieldSteppers({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={classNames(\n \"absolute right-0 flex h-full flex-col border-l\",\n className\n )}\n {...props}\n >\n <NumberFieldStepper slot=\"increment\">\n <ChevronUp aria-hidden className=\"size-icon\" />\n </NumberFieldStepper>\n <div className=\"border-b\" />\n <NumberFieldStepper slot=\"decrement\">\n <ChevronDown aria-hidden className=\"size-icon\" />\n </NumberFieldStepper>\n </div>\n )\n}\n\nfunction NumberFieldStepper({ className, ...props }: AriaButtonProps) {\n return (\n <Button\n className={composeRenderProps(className, (className) =>\n classNames(\"w-auto grow h-3 px-0.5 text-muted-foreground\", className)\n )}\n variant={\"ghost\"}\n size={\"none\"}\n {...props}\n />\n )\n}\n\ntype NumberFieldProps = AriaNumberFieldProps & FormFieldProps\nexport function NumberField({\n label,\n description,\n errorMessage,\n className,\n ...props\n}: NumberFieldProps) {\n return (\n <ANumberField\n className={composeRenderProps(className, (className) =>\n classNames(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <FieldGroup>\n <NumberFieldInput />\n <NumberFieldSteppers />\n </FieldGroup>\n </FormField>\n </ANumberField>\n )\n}\n\nexport function TfNumberField({ isDisabled, ...props }: Omit<React.ComponentProps<typeof NumberField>, 'value' | 'id' | 'onChange' | 'onBlur'>) {\n const field = useFieldContext<number>();\n\n return (\n <NumberField\n isInvalid={!!getFieldErrorMessage(field)}\n isDisabled={isDisabled || field.form.state.isSubmitting}\n value={field.state.value}\n id={field.name}\n onChange={field.handleChange}\n onBlur={field.handleBlur}\n errorMessage={getFieldErrorMessage(field)}\n {...props}\n />)\n}\n\n"],"names":["ANumberField","AriaNumberField","NumberFieldInput","className","props","jsx","AriaInput","composeRenderProps","classNames","NumberFieldSteppers","jsxs","NumberFieldStepper","ChevronUp","ChevronDown","Button","NumberField","label","description","errorMessage","FormField","FieldGroup","TfNumberField","isDisabled","field","useFieldContext","getFieldErrorMessage"],"mappings":"ugBAeA,MAAMA,EAAeC,EAErB,SAASC,EAAiB,CAAE,UAAAC,EAAW,GAAGC,GAAyB,CACjE,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EACE,qJACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAoB,CAC3B,UAAAN,EACA,GAAGC,CACL,EAAgC,CAC9B,OACEM,EAAC,MAAA,CACC,UAAWF,EACT,iDACAL,CAAA,EAED,GAAGC,EAEJ,SAAA,CAAAC,EAACM,EAAA,CAAmB,KAAK,YACvB,SAAAN,EAACO,GAAU,cAAW,GAAC,UAAU,WAAA,CAAY,CAAA,CAC/C,EACAP,EAAC,MAAA,CAAI,UAAU,UAAA,CAAW,EAC1BA,EAACM,EAAA,CAAmB,KAAK,YACvB,SAAAN,EAACQ,GAAY,cAAW,GAAC,UAAU,WAAA,CAAY,CAAA,CACjD,CAAA,CAAA,CAAA,CAGN,CAEA,SAASF,EAAmB,CAAE,UAAAR,EAAW,GAAGC,GAA0B,CACpE,OACEC,EAACS,EAAA,CACC,UAAWP,EAAmBJ,EAAYA,GACxCK,EAAW,+CAAgDL,CAAS,CAAA,EAEtE,QAAS,QACT,KAAM,OACL,GAAGC,CAAA,CAAA,CAGV,CAGO,SAASW,EAAY,CAC1B,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAf,EACA,GAAGC,CACL,EAAqB,CACnB,OACEC,EAACL,EAAA,CACC,UAAWO,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,WAACe,EAAA,CAAU,MAAAH,EAAc,YAAAC,EAA0B,aAAAC,EACjD,WAACE,EAAA,CACC,SAAA,CAAAf,EAACH,EAAA,EAAiB,IACjBO,EAAA,CAAA,CAAoB,CAAA,CAAA,CACvB,CAAA,CACF,CAAA,CAAA,CAGN,CAEO,SAASY,EAAc,CAAE,WAAAC,EAAY,GAAGlB,GAAiG,CAC9I,MAAMmB,EAAQC,EAAA,EAEd,OACEnB,EAACU,EAAA,CACC,UAAW,CAAC,CAACU,EAAqBF,CAAK,EACvC,WAAYD,GAAcC,EAAM,KAAK,MAAM,aAC3C,MAAOA,EAAM,MAAM,MACnB,GAAIA,EAAM,KACV,SAAUA,EAAM,aAChB,OAAQA,EAAM,WACd,aAAcE,EAAqBF,CAAK,EACvC,GAAGnB,CAAA,CAAA,CAEV"}
@@ -1,4 +1,4 @@
1
- import { DialogProps as AriaDialogProps, DialogTrigger as AriaDialogTrigger, PopoverProps as AriaPopoverProps } from "react-aria-components";
1
+ import { DialogProps as AriaDialogProps, DialogTrigger as AriaDialogTrigger, PopoverProps as AriaPopoverProps } from 'react-aria-components';
2
2
  export declare const PopoverTrigger: typeof AriaDialogTrigger;
3
3
  export declare const Popover: ({ className, offset, ...props }: AriaPopoverProps) => import("react/jsx-runtime").JSX.Element;
4
4
  export declare function PopoverDialog({ className, ...props }: AriaDialogProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{Popover as n,composeRenderProps as m,DialogTrigger as p,Dialog as d}from"react-aria-components";import{classNames as a}from"../utils/primitives.js";import"clsx";const c=p,u=({className:o,offset:e=4,...i})=>t(n,{offset:e,className:m(o,r=>a("z-50 border bg-popover text-popover-foreground outline-none max-w-lg","data-[entering]:animate-in data-[entering]:fade-in-0 data-[entering]:zoom-in-95","data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95","data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2",r)),...i});function v({className:o,...e}){return t(d,{className:a("p-icon outline-0",o),...e})}export{u as Popover,v as PopoverDialog,c as PopoverTrigger};
2
+ //# sourceMappingURL=popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.js","sources":["../../lib/components/popover.tsx"],"sourcesContent":["import {\n\tDialog as AriaDialog,\n\tDialogProps as AriaDialogProps,\n\tDialogTrigger as AriaDialogTrigger,\n\tPopover as AriaPopover,\n\tPopoverProps as AriaPopoverProps,\n\tcomposeRenderProps,\n} from \"react-aria-components\"\n\nimport { classNames } from \"lib/utils/primitives\"\n\nexport const PopoverTrigger = AriaDialogTrigger\n\nexport const Popover = ({ className, offset = 4, ...props }: AriaPopoverProps) => (\n\t<AriaPopover\n\t\toffset={offset}\n\t\tclassName={composeRenderProps(className, (className) =>\n\t\t\tclassNames(\n\t\t\t\t\"z-50 border bg-popover text-popover-foreground outline-none max-w-lg\",\n\t\t\t\t/* Entering */\n\t\t\t\t\"data-[entering]:animate-in data-[entering]:fade-in-0 data-[entering]:zoom-in-95\",\n\t\t\t\t/* Exiting */\n\t\t\t\t\"data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95\",\n\t\t\t\t/* Placement */\n\t\t\t\t\"data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2\",\n\t\t\t\tclassName\n\t\t\t)\n\t\t)}\n\t\t{...props}\n\t/>\n)\n\nexport function PopoverDialog({ className, ...props }: AriaDialogProps) {\n\treturn (\n\t\t<AriaDialog className={classNames(\"p-icon outline-0\", className)} {...props} />\n\t)\n}\n"],"names":["PopoverTrigger","AriaDialogTrigger","Popover","className","offset","props","jsx","AriaPopover","composeRenderProps","classNames","PopoverDialog","AriaDialog"],"mappings":"gNAWO,MAAMA,EAAiBC,EAEjBC,EAAU,CAAC,CAAE,UAAAC,EAAW,OAAAC,EAAS,EAAG,GAAGC,KACnDC,EAACC,EAAA,CACA,OAAAH,EACA,UAAWI,EAAmBL,EAAYA,GACzCM,EACC,uEAEA,kFAEA,kFAEA,kLACAN,CAAA,CACD,EAEA,GAAGE,CAAA,CACL,EAGM,SAASK,EAAc,CAAE,UAAAP,EAAW,GAAGE,GAA0B,CACvE,OACCC,EAACK,GAAW,UAAWF,EAAW,mBAAoBN,CAAS,EAAI,GAAGE,EAAO,CAE/E"}
@@ -1,5 +1,5 @@
1
- import { SearchFieldProps as AriaSearchFieldProps } from "react-aria-components";
2
- import { type FormFieldProps } from "./field";
1
+ import { SearchFieldProps as AriaSearchFieldProps } from 'react-aria-components';
2
+ import { FormFieldProps } from './field';
3
3
  export interface SearchFieldProps extends AriaSearchFieldProps, FormFieldProps {
4
4
  }
5
5
  export declare function SearchField({ label, description, className, errorMessage, ...props }: SearchFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as l}from"react/jsx-runtime";import{SearchIcon as s,XIcon as m}from"lucide-react";import{composeRenderProps as n,SearchField as p,Input as u,Button as h}from"react-aria-components";import{classNames as a}from"../utils/primitives.js";import{FormField as f,FieldGroup as g}from"./field.js";import"clsx";import"class-variance-authority";function F({className:r,...i}){return e(p,{className:n(r,o=>a("group",o)),...i})}function b({className:r,...i}){return e(u,{className:n(r,o=>a("min-w-0 ring-0 focus-visible:outline-none flex-1 bg-card px-2 py-1.5 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden",o)),...i})}function x({className:r,...i}){return e(h,{className:n(r,o=>a("mr-1 opacity-70 ring-offset-background transition-opacity","data-[hovered]:opacity-100","data-[disabled]:pointer-events-none","group-data-[empty]:invisible",o)),...i})}function w({label:r,description:i,className:o,errorMessage:t,...c}){return e(F,{className:n(o,d=>a("group form-field",d)),...c,children:e(f,{label:r,description:i,errorMessage:t,children:l(g,{children:[e(s,{"aria-hidden":!0,className:"size-icon text-muted-foreground"}),e(b,{placeholder:""}),e(x,{children:e(m,{"aria-hidden":!0,className:"size-icon"})})]})})})}export{w as SearchField};
2
+ //# sourceMappingURL=searchfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchfield.js","sources":["../../lib/components/searchfield.tsx"],"sourcesContent":["import { SearchIcon, XIcon } from \"lucide-react\"\nimport {\n Button as AriaButton,\n ButtonProps as AriaButtonProps,\n Input as AriaInput,\n InputProps as AriaInputProps,\n SearchField as AriaSearchField,\n SearchFieldProps as AriaSearchFieldProps,\n composeRenderProps\n} from \"react-aria-components\"\n\nimport { classNames } from \"lib/utils/primitives\"\n\nimport { FieldGroup, FormField, type FormFieldProps } from \"./field\"\n\nfunction ASearchField({ className, ...props }: AriaSearchFieldProps) {\n return (\n <AriaSearchField\n className={composeRenderProps(className, (className) =>\n classNames(\"group\", className)\n )}\n {...props}\n />\n )\n}\n\nfunction ASearchFieldInput({ className, ...props }: AriaInputProps) {\n return (\n <AriaInput\n className={composeRenderProps(className, (className) =>\n classNames(\n \"min-w-0 ring-0 focus-visible:outline-none flex-1 bg-card px-2 py-1.5 placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nfunction SearchFieldClear({ className, ...props }: AriaButtonProps) {\n return (\n <AriaButton\n className={composeRenderProps(className, (className) =>\n classNames(\n \"mr-1 opacity-70 ring-offset-background transition-opacity\",\n /* Hover */\n \"data-[hovered]:opacity-100\",\n /* Disabled */\n \"data-[disabled]:pointer-events-none\",\n /* Empty */\n \"group-data-[empty]:invisible\",\n className\n )\n )}\n {...props}\n />\n )\n}\n\nexport interface SearchFieldProps extends AriaSearchFieldProps, FormFieldProps { };\nexport function SearchField({\n label,\n description,\n className,\n errorMessage,\n ...props\n}: SearchFieldProps) {\n return (\n <ASearchField\n className={composeRenderProps(className, (className) =>\n classNames(\"group form-field\", className)\n )}\n {...props}\n >\n <FormField label={label} description={description} errorMessage={errorMessage}>\n <FieldGroup>\n <SearchIcon aria-hidden className=\"size-icon text-muted-foreground\" />\n <ASearchFieldInput placeholder=\"\" />\n <SearchFieldClear>\n <XIcon aria-hidden className=\"size-icon\" />\n </SearchFieldClear>\n </FieldGroup>\n </FormField>\n </ASearchField>\n )\n}"],"names":["ASearchField","className","props","jsx","AriaSearchField","composeRenderProps","classNames","ASearchFieldInput","AriaInput","SearchFieldClear","AriaButton","SearchField","label","description","errorMessage","FormField","FieldGroup","SearchIcon","XIcon"],"mappings":"mWAeA,SAASA,EAAa,CAAE,UAAAC,EAAW,GAAGC,GAA+B,CACnE,OACEC,EAACC,EAAA,CACC,UAAWC,EAAmBJ,EAAYA,GACxCK,EAAW,QAASL,CAAS,CAAA,EAE9B,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAkB,CAAE,UAAAN,EAAW,GAAGC,GAAyB,CAClE,OACEC,EAACK,EAAA,CACC,UAAWH,EAAmBJ,EAAYA,GACxCK,EACE,kJACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASO,EAAiB,CAAE,UAAAR,EAAW,GAAGC,GAA0B,CAClE,OACEC,EAACO,EAAA,CACC,UAAWL,EAAmBJ,EAAYA,GACxCK,EACE,4DAEA,6BAEA,sCAEA,+BACAL,CAAA,CACF,EAED,GAAGC,CAAA,CAAA,CAGV,CAGO,SAASS,EAAY,CAC1B,MAAAC,EACA,YAAAC,EACA,UAAAZ,EACA,aAAAa,EACA,GAAGZ,CACL,EAAqB,CACnB,OACEC,EAACH,EAAA,CACC,UAAWK,EAAmBJ,EAAYA,GACxCK,EAAW,mBAAoBL,CAAS,CAAA,EAEzC,GAAGC,EAEJ,WAACa,EAAA,CAAU,MAAAH,EAAc,YAAAC,EAA0B,aAAAC,EACjD,WAACE,EAAA,CACC,SAAA,CAAAb,EAACc,EAAA,CAAW,cAAW,GAAC,UAAU,kCAAkC,EACpEd,EAACI,EAAA,CAAkB,YAAY,EAAA,CAAG,EAClCJ,EAACM,GACC,SAAAN,EAACe,EAAA,CAAM,cAAW,GAAC,UAAU,YAAY,CAAA,CAC3C,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAGN"}
@@ -0,0 +1,2 @@
1
+ import{jsxs as o,Fragment as n,jsx as i}from"react/jsx-runtime";const d=[{label:i(n,{children:"Node-locked"}),id:"node-locked"},{label:i(n,{children:"Hosted floating"}),id:"hosted-floating"},{label:i(n,{children:"LexFloatServer"}),id:"on-premise-floating"}];function t(a){function e(r){return String.fromCodePoint(127397+r.toUpperCase().charCodeAt(0))}return e(a[0])+e(a[1])}const l={AF:"Afghanistan",AX:"Åland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia (Plurinational State of)",BQ:"Bonaire, Sint Eustatius and Saba",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",CV:"Caboe Verde",KH:"Cambodia",CM:"Cameroon",CA:"Canada",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic of the",CK:"Cook Islands",CR:"Costa Rica",CI:"Côte d'voire",HR:"Croatia",CU:"Cuba",CW:"Curaçao",CY:"Cyprus",CZ:"Czechia",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",SZ:"Eswatini",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran (Islamic Republic of)",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (Democratic People's Republic of)",KR:"Korea (Republic of)",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao People's Democratic Republic",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia (Federated States of)",MD:"Moldova, Republic of",MC:"Monaco",MN:"Mongolia",ME:"Montenegro",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands, Kingdom of the",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MK:"North Macedonia",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine, State of",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Réunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",BL:"Saint Barthélemy",SH:"Saint Helena, Ascension Island, Tristan da Cunha",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",MF:"Saint Martin (French part)",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SX:"Sint Maarten (Dutch part)",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",SS:"South Sudan",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania, United Republic of",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Türkiye",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom of Great Britain and Northern Ireland",UM:"United States Minor Outlying Islands",US:"United States of America",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela (Bolivarian Republic of)",VN:"Viet Nam",VG:"Virgin Islands (British)",VI:"Virgin Islands (U.S)",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe"},u=Object.entries(l).map(a=>({label:o(n,{children:[t(a[0])," ",a[1]]}),id:a[0]}));export{u as COUNTRY_OPTIONS,d as LICENSE_TYPE_OPTIONS};
2
+ //# sourceMappingURL=select-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-options.js","sources":["../../lib/components/select-options.tsx"],"sourcesContent":["export type SelectOption = {\n\tid: string\n\tlabel: React.ReactNode,\n\tdisabled?: boolean\n}\nexport const LICENSE_TYPE_OPTIONS: SelectOption[] = [\n\t{\n\t\tlabel: <>Node-locked</>,\n\t\tid: \"node-locked\",\n\t},\n\t{\n\t\tlabel: <>Hosted floating</>,\n\t\tid: \"hosted-floating\",\n\t},\n\t{\n\t\tlabel: <>LexFloatServer</>,\n\t\tid: \"on-premise-floating\",\n\t},\n];\n\n\n/**\n * Creates Unicode flag from a two-letter ISO country code.\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\n * @param {string} country — A two-letter ISO country code (case-insensitive).\n * @return {string}\n */\nfunction getCountryFlag(country: string) {\n\tfunction getRegionalIndicatorSymbol(letter: string) {\n\t\treturn String.fromCodePoint(\n\t\t\t0x1f1e6 - 65 + letter.toUpperCase().charCodeAt(0),\n\t\t);\n\t}\n\n\treturn (\n\t\tgetRegionalIndicatorSymbol(country[0]) +\n\t\tgetRegionalIndicatorSymbol(country[1])\n\t);\n}\n\nconst ALL_COUNTRIES: { [key: string]: string } = {\n\tAF: \"Afghanistan\",\n\tAX: \"Åland Islands\",\n\tAL: \"Albania\",\n\tDZ: \"Algeria\",\n\tAS: \"American Samoa\",\n\tAD: \"Andorra\",\n\tAO: \"Angola\",\n\tAI: \"Anguilla\",\n\tAQ: \"Antarctica\",\n\tAG: \"Antigua and Barbuda\",\n\tAR: \"Argentina\",\n\tAM: \"Armenia\",\n\tAW: \"Aruba\",\n\tAU: \"Australia\",\n\tAT: \"Austria\",\n\tAZ: \"Azerbaijan\",\n\tBS: \"Bahamas\",\n\tBH: \"Bahrain\",\n\tBD: \"Bangladesh\",\n\tBB: \"Barbados\",\n\tBY: \"Belarus\",\n\tBE: \"Belgium\",\n\tBZ: \"Belize\",\n\tBJ: \"Benin\",\n\tBM: \"Bermuda\",\n\tBT: \"Bhutan\",\n\tBO: \"Bolivia (Plurinational State of)\",\n\tBQ: \"Bonaire, Sint Eustatius and Saba\",\n\tBA: \"Bosnia and Herzegovina\",\n\tBW: \"Botswana\",\n\tBV: \"Bouvet Island\",\n\tBR: \"Brazil\",\n\tIO: \"British Indian Ocean Territory\",\n\tBN: \"Brunei Darussalam\",\n\tBG: \"Bulgaria\",\n\tBF: \"Burkina Faso\",\n\tBI: \"Burundi\",\n\tCV: \"Caboe Verde\",\n\tKH: \"Cambodia\",\n\tCM: \"Cameroon\",\n\tCA: \"Canada\",\n\tKY: \"Cayman Islands\",\n\tCF: \"Central African Republic\",\n\tTD: \"Chad\",\n\tCL: \"Chile\",\n\tCN: \"China\",\n\tCX: \"Christmas Island\",\n\tCC: \"Cocos (Keeling) Islands\",\n\tCO: \"Colombia\",\n\tKM: \"Comoros\",\n\tCG: \"Congo\",\n\tCD: \"Congo, Democratic Republic of the\",\n\tCK: \"Cook Islands\",\n\tCR: \"Costa Rica\",\n\tCI: \"Côte d'voire\",\n\tHR: \"Croatia\",\n\tCU: \"Cuba\",\n\tCW: \"Curaçao\",\n\tCY: \"Cyprus\",\n\tCZ: \"Czechia\",\n\tDK: \"Denmark\",\n\tDJ: \"Djibouti\",\n\tDM: \"Dominica\",\n\tDO: \"Dominican Republic\",\n\tEC: \"Ecuador\",\n\tEG: \"Egypt\",\n\tSV: \"El Salvador\",\n\tGQ: \"Equatorial Guinea\",\n\tER: \"Eritrea\",\n\tEE: \"Estonia\",\n\tSZ: \"Eswatini\",\n\tET: \"Ethiopia\",\n\tFK: \"Falkland Islands (Malvinas)\",\n\tFO: \"Faroe Islands\",\n\tFJ: \"Fiji\",\n\tFI: \"Finland\",\n\tFR: \"France\",\n\tGF: \"French Guiana\",\n\tPF: \"French Polynesia\",\n\tTF: \"French Southern Territories\",\n\tGA: \"Gabon\",\n\tGM: \"Gambia\",\n\tGE: \"Georgia\",\n\tDE: \"Germany\",\n\tGH: \"Ghana\",\n\tGI: \"Gibraltar\",\n\tGR: \"Greece\",\n\tGL: \"Greenland\",\n\tGD: \"Grenada\",\n\tGP: \"Guadeloupe\",\n\tGU: \"Guam\",\n\tGT: \"Guatemala\",\n\tGG: \"Guernsey\",\n\tGN: \"Guinea\",\n\tGW: \"Guinea-Bissau\",\n\tGY: \"Guyana\",\n\tHT: \"Haiti\",\n\tHM: \"Heard Island and Mcdonald Islands\",\n\tVA: \"Holy See\",\n\tHN: \"Honduras\",\n\tHK: \"Hong Kong\",\n\tHU: \"Hungary\",\n\tIS: \"Iceland\",\n\tIN: \"India\",\n\tID: \"Indonesia\",\n\tIR: \"Iran (Islamic Republic of)\",\n\tIQ: \"Iraq\",\n\tIE: \"Ireland\",\n\tIM: \"Isle of Man\",\n\tIL: \"Israel\",\n\tIT: \"Italy\",\n\tJM: \"Jamaica\",\n\tJP: \"Japan\",\n\tJE: \"Jersey\",\n\tJO: \"Jordan\",\n\tKZ: \"Kazakhstan\",\n\tKE: \"Kenya\",\n\tKI: \"Kiribati\",\n\tKP: \"Korea (Democratic People's Republic of)\",\n\tKR: \"Korea (Republic of)\",\n\tKW: \"Kuwait\",\n\tKG: \"Kyrgyzstan\",\n\tLA: \"Lao People's Democratic Republic\",\n\tLV: \"Latvia\",\n\tLB: \"Lebanon\",\n\tLS: \"Lesotho\",\n\tLR: \"Liberia\",\n\tLY: \"Libya\",\n\tLI: \"Liechtenstein\",\n\tLT: \"Lithuania\",\n\tLU: \"Luxembourg\",\n\tMO: \"Macao\",\n\tMG: \"Madagascar\",\n\tMW: \"Malawi\",\n\tMY: \"Malaysia\",\n\tMV: \"Maldives\",\n\tML: \"Mali\",\n\tMT: \"Malta\",\n\tMH: \"Marshall Islands\",\n\tMQ: \"Martinique\",\n\tMR: \"Mauritania\",\n\tMU: \"Mauritius\",\n\tYT: \"Mayotte\",\n\tMX: \"Mexico\",\n\tFM: \"Micronesia (Federated States of)\",\n\tMD: \"Moldova, Republic of\",\n\tMC: \"Monaco\",\n\tMN: \"Mongolia\",\n\tME: \"Montenegro\",\n\tMS: \"Montserrat\",\n\tMA: \"Morocco\",\n\tMZ: \"Mozambique\",\n\tMM: \"Myanmar\",\n\tNA: \"Namibia\",\n\tNR: \"Nauru\",\n\tNP: \"Nepal\",\n\tNL: \"Netherlands, Kingdom of the\",\n\tNC: \"New Caledonia\",\n\tNZ: \"New Zealand\",\n\tNI: \"Nicaragua\",\n\tNE: \"Niger\",\n\tNG: \"Nigeria\",\n\tNU: \"Niue\",\n\tNF: \"Norfolk Island\",\n\tMK: \"North Macedonia\",\n\tMP: \"Northern Mariana Islands\",\n\tNO: \"Norway\",\n\tOM: \"Oman\",\n\tPK: \"Pakistan\",\n\tPW: \"Palau\",\n\tPS: \"Palestine, State of\",\n\tPA: \"Panama\",\n\tPG: \"Papua New Guinea\",\n\tPY: \"Paraguay\",\n\tPE: \"Peru\",\n\tPH: \"Philippines\",\n\tPN: \"Pitcairn\",\n\tPL: \"Poland\",\n\tPT: \"Portugal\",\n\tPR: \"Puerto Rico\",\n\tQA: \"Qatar\",\n\tRE: \"Réunion\",\n\tRO: \"Romania\",\n\tRU: \"Russian Federation\",\n\tRW: \"Rwanda\",\n\tBL: \"Saint Barthélemy\",\n\tSH: \"Saint Helena, Ascension Island, Tristan da Cunha\",\n\tKN: \"Saint Kitts and Nevis\",\n\tLC: \"Saint Lucia\",\n\tMF: \"Saint Martin (French part)\",\n\tPM: \"Saint Pierre and Miquelon\",\n\tVC: \"Saint Vincent and the Grenadines\",\n\tWS: \"Samoa\",\n\tSM: \"San Marino\",\n\tST: \"Sao Tome and Principe\",\n\tSA: \"Saudi Arabia\",\n\tSN: \"Senegal\",\n\tRS: \"Serbia\",\n\tSC: \"Seychelles\",\n\tSL: \"Sierra Leone\",\n\tSG: \"Singapore\",\n\tSX: \"Sint Maarten (Dutch part)\",\n\tSK: \"Slovakia\",\n\tSI: \"Slovenia\",\n\tSB: \"Solomon Islands\",\n\tSO: \"Somalia\",\n\tZA: \"South Africa\",\n\tGS: \"South Georgia and the South Sandwich Islands\",\n\tSS: \"South Sudan\",\n\tES: \"Spain\",\n\tLK: \"Sri Lanka\",\n\tSD: \"Sudan\",\n\tSR: \"Suriname\",\n\tSJ: \"Svalbard and Jan Mayen\",\n\tSE: \"Sweden\",\n\tCH: \"Switzerland\",\n\tSY: \"Syrian Arab Republic\",\n\tTW: \"Taiwan, Province of China\",\n\tTJ: \"Tajikistan\",\n\tTZ: \"Tanzania, United Republic of\",\n\tTH: \"Thailand\",\n\tTL: \"Timor-Leste\",\n\tTG: \"Togo\",\n\tTK: \"Tokelau\",\n\tTO: \"Tonga\",\n\tTT: \"Trinidad and Tobago\",\n\tTN: \"Tunisia\",\n\tTR: \"Türkiye\",\n\tTM: \"Turkmenistan\",\n\tTC: \"Turks and Caicos Islands\",\n\tTV: \"Tuvalu\",\n\tUG: \"Uganda\",\n\tUA: \"Ukraine\",\n\tAE: \"United Arab Emirates\",\n\tGB: \"United Kingdom of Great Britain and Northern Ireland\",\n\tUM: \"United States Minor Outlying Islands\",\n\tUS: \"United States of America\",\n\tUY: \"Uruguay\",\n\tUZ: \"Uzbekistan\",\n\tVU: \"Vanuatu\",\n\tVE: \"Venezuela (Bolivarian Republic of)\",\n\tVN: \"Viet Nam\",\n\tVG: \"Virgin Islands (British)\",\n\tVI: \"Virgin Islands (U.S)\",\n\tWF: \"Wallis and Futuna\",\n\tEH: \"Western Sahara\",\n\tYE: \"Yemen\",\n\tZM: \"Zambia\",\n\tZW: \"Zimbabwe\",\n};\n\n/** Options for MultiSelect component */\nexport const COUNTRY_OPTIONS: SelectOption[] = Object.entries(ALL_COUNTRIES).map((v) => {\n\treturn {\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{getCountryFlag(v[0])} {v[1]}\n\t\t\t</>\n\t\t),\n\t\tid: v[0],\n\t};\n});"],"names":["LICENSE_TYPE_OPTIONS","getCountryFlag","country","getRegionalIndicatorSymbol","letter","ALL_COUNTRIES","COUNTRY_OPTIONS","v","jsxs","Fragment"],"mappings":"gEAKO,MAAMA,EAAuC,CACnD,CACC,WAAS,SAAA,aAAA,CAAW,EACpB,GAAI,aAAA,EAEL,CACC,WAAS,SAAA,iBAAA,CAAe,EACxB,GAAI,iBAAA,EAEL,CACC,WAAS,SAAA,gBAAA,CAAc,EACvB,GAAI,qBAAA,CAEN,EASA,SAASC,EAAeC,EAAiB,CACxC,SAASC,EAA2BC,EAAgB,CACnD,OAAO,OAAO,cACb,OAAeA,EAAO,YAAA,EAAc,WAAW,CAAC,CAAA,CAElD,CAEA,OACCD,EAA2BD,EAAQ,CAAC,CAAC,EACrCC,EAA2BD,EAAQ,CAAC,CAAC,CAEvC,CAEA,MAAMG,EAA2C,CAChD,GAAI,cACJ,GAAI,gBACJ,GAAI,UACJ,GAAI,UACJ,GAAI,iBACJ,GAAI,UACJ,GAAI,SACJ,GAAI,WACJ,GAAI,aACJ,GAAI,sBACJ,GAAI,YACJ,GAAI,UACJ,GAAI,QACJ,GAAI,YACJ,GAAI,UACJ,GAAI,aACJ,GAAI,UACJ,GAAI,UACJ,GAAI,aACJ,GAAI,WACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,mCACJ,GAAI,mCACJ,GAAI,yBACJ,GAAI,WACJ,GAAI,gBACJ,GAAI,SACJ,GAAI,iCACJ,GAAI,oBACJ,GAAI,WACJ,GAAI,eACJ,GAAI,UACJ,GAAI,cACJ,GAAI,WACJ,GAAI,WACJ,GAAI,SACJ,GAAI,iBACJ,GAAI,2BACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,GAAI,mBACJ,GAAI,0BACJ,GAAI,WACJ,GAAI,UACJ,GAAI,QACJ,GAAI,oCACJ,GAAI,eACJ,GAAI,aACJ,GAAI,eACJ,GAAI,UACJ,GAAI,OACJ,GAAI,UACJ,GAAI,SACJ,GAAI,UACJ,GAAI,UACJ,GAAI,WACJ,GAAI,WACJ,GAAI,qBACJ,GAAI,UACJ,GAAI,QACJ,GAAI,cACJ,GAAI,oBACJ,GAAI,UACJ,GAAI,UACJ,GAAI,WACJ,GAAI,WACJ,GAAI,8BACJ,GAAI,gBACJ,GAAI,OACJ,GAAI,UACJ,GAAI,SACJ,GAAI,gBACJ,GAAI,mBACJ,GAAI,8BACJ,GAAI,QACJ,GAAI,SACJ,GAAI,UACJ,GAAI,UACJ,GAAI,QACJ,GAAI,YACJ,GAAI,SACJ,GAAI,YACJ,GAAI,UACJ,GAAI,aACJ,GAAI,OACJ,GAAI,YACJ,GAAI,WACJ,GAAI,SACJ,GAAI,gBACJ,GAAI,SACJ,GAAI,QACJ,GAAI,oCACJ,GAAI,WACJ,GAAI,WACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACJ,GAAI,QACJ,GAAI,YACJ,GAAI,6BACJ,GAAI,OACJ,GAAI,UACJ,GAAI,cACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,QACJ,GAAI,SACJ,GAAI,SACJ,GAAI,aACJ,GAAI,QACJ,GAAI,WACJ,GAAI,0CACJ,GAAI,sBACJ,GAAI,SACJ,GAAI,aACJ,GAAI,mCACJ,GAAI,SACJ,GAAI,UACJ,GAAI,UACJ,GAAI,UACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,YACJ,GAAI,aACJ,GAAI,QACJ,GAAI,aACJ,GAAI,SACJ,GAAI,WACJ,GAAI,WACJ,GAAI,OACJ,GAAI,QACJ,GAAI,mBACJ,GAAI,aACJ,GAAI,aACJ,GAAI,YACJ,GAAI,UACJ,GAAI,SACJ,GAAI,mCACJ,GAAI,uBACJ,GAAI,SACJ,GAAI,WACJ,GAAI,aACJ,GAAI,aACJ,GAAI,UACJ,GAAI,aACJ,GAAI,UACJ,GAAI,UACJ,GAAI,QACJ,GAAI,QACJ,GAAI,8BACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,YACJ,GAAI,QACJ,GAAI,UACJ,GAAI,OACJ,GAAI,iBACJ,GAAI,kBACJ,GAAI,2BACJ,GAAI,SACJ,GAAI,OACJ,GAAI,WACJ,GAAI,QACJ,GAAI,sBACJ,GAAI,SACJ,GAAI,mBACJ,GAAI,WACJ,GAAI,OACJ,GAAI,cACJ,GAAI,WACJ,GAAI,SACJ,GAAI,WACJ,GAAI,cACJ,GAAI,QACJ,GAAI,UACJ,GAAI,UACJ,GAAI,qBACJ,GAAI,SACJ,GAAI,mBACJ,GAAI,mDACJ,GAAI,wBACJ,GAAI,cACJ,GAAI,6BACJ,GAAI,4BACJ,GAAI,mCACJ,GAAI,QACJ,GAAI,aACJ,GAAI,wBACJ,GAAI,eACJ,GAAI,UACJ,GAAI,SACJ,GAAI,aACJ,GAAI,eACJ,GAAI,YACJ,GAAI,4BACJ,GAAI,WACJ,GAAI,WACJ,GAAI,kBACJ,GAAI,UACJ,GAAI,eACJ,GAAI,+CACJ,GAAI,cACJ,GAAI,QACJ,GAAI,YACJ,GAAI,QACJ,GAAI,WACJ,GAAI,yBACJ,GAAI,SACJ,GAAI,cACJ,GAAI,uBACJ,GAAI,4BACJ,GAAI,aACJ,GAAI,+BACJ,GAAI,WACJ,GAAI,cACJ,GAAI,OACJ,GAAI,UACJ,GAAI,QACJ,GAAI,sBACJ,GAAI,UACJ,GAAI,UACJ,GAAI,eACJ,GAAI,2BACJ,GAAI,SACJ,GAAI,SACJ,GAAI,UACJ,GAAI,uBACJ,GAAI,uDACJ,GAAI,uCACJ,GAAI,2BACJ,GAAI,UACJ,GAAI,aACJ,GAAI,UACJ,GAAI,qCACJ,GAAI,WACJ,GAAI,2BACJ,GAAI,uBACJ,GAAI,oBACJ,GAAI,iBACJ,GAAI,QACJ,GAAI,SACJ,GAAI,UACL,EAGaC,EAAkC,OAAO,QAAQD,CAAa,EAAE,IAAKE,IAC1E,CACN,MACCC,EAAAC,EAAA,CACE,SAAA,CAAAR,EAAeM,EAAE,CAAC,CAAC,EAAE,IAAEA,EAAE,CAAC,CAAA,EAC5B,EAED,GAAIA,EAAE,CAAC,CAAA,EAER"}
@@ -1,10 +1,10 @@
1
- import { PopoverProps as AriaPopoverProps, SelectProps as AriaSelectProps, SelectValueProps as AriaSelectValueProps } from "react-aria-components";
2
- import { type FormFieldProps } from "lib/components/inputs/field";
3
- import type { SelectOption } from "lib/components/inputs/select-options";
4
- import { ListBoxHeader, ListBoxItem } from "../ui/list-box";
1
+ import { PopoverProps as AriaPopoverProps, SelectProps as AriaSelectProps, SelectValueProps as AriaSelectValueProps } from 'react-aria-components';
2
+ import { FormFieldProps } from 'lib/components/field';
3
+ import { SelectOption } from 'lib/components/select-options';
4
+ import { ListBoxHeader, ListBoxItem } from './list-box';
5
5
  export declare const SelectItem: typeof ListBoxItem;
6
6
  export declare const SelectHeader: typeof ListBoxHeader;
7
- export declare const SelectCollection: typeof import("react-aria-components").Collection;
7
+ export declare const SelectCollection: typeof import('react-aria-components').Collection;
8
8
  export declare const SelectValue: <T extends object>({ className, ...props }: AriaSelectValueProps<T>) => import("react/jsx-runtime").JSX.Element;
9
9
  export declare function SelectPopover({ className, ...props }: AriaPopoverProps): import("react/jsx-runtime").JSX.Element;
10
10
  export interface SingleSelectProps<T extends SelectOption> extends Omit<AriaSelectProps<T>, "children">, FormFieldProps {
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as o,jsxs as c,Fragment as u}from"react/jsx-runtime";import{Select as p,composeRenderProps as i,SelectValue as f,ListBox as h}from"react-aria-components";import{Button as S}from"./button.js";import{FormField as g}from"./field.js";import{useFieldContext as x}from"../utils/form-context.js";import{getFieldErrorMessage as B,classNames as l}from"../utils/primitives.js";import{ChevronDown as N}from"lucide-react";import{ListBoxItem as v,ListBoxHeader as C,ListBoxCollection as w}from"./list-box.js";import{Popover as F}from"./popover.js";import"class-variance-authority";import"./loader.js";import"clsx";import"@tanstack/react-form";const L=p,_=v,G=C,J=w,P=({className:r,...t})=>o(f,{className:i(r,e=>l("line-clamp-1 data-[placeholder]:text-muted-foreground","[&>[slot=description]]:hidden",e)),...t});function V({className:r,children:t,...e}){return o(S,{...e,children:i(t,n=>c(u,{children:[n,o(N,{"aria-hidden":"true",className:"size-icon opacity-50"})]}))})}function j({className:r,...t}){return o(F,{className:i(r,e=>l("w-auto min-w-[--trigger-width]",e)),...t})}function y({className:r,...t}){return o(h,{className:i(r,e=>l("overflow-auto p-1 outline-none [clip-path:inset(0_0_0_0_round_calc(var(--radius)-2px))]",e)),...t})}function H({label:r,description:t,errorMessage:e,children:n,className:s,items:a,...m}){return o(L,{className:i(s,d=>l("group form-field",d)),...m,children:c(g,{label:r,description:t,errorMessage:e,children:[o(V,{children:o(P,{})}),o(j,{children:o(y,{items:a,children:n})})]})})}function O({...r}){const t=x();return o(H,{selectedKey:t.state.value,onSelectionChange:e=>t.handleChange(e.toString()),onBlur:t.handleBlur,errorMessage:B(t),...r,children:e=>o(_,{id:e.id,children:e.label},e.id)})}export{J as SelectCollection,G as SelectHeader,_ as SelectItem,j as SelectPopover,P as SelectValue,H as SingleSelect,O as TfSingleSelect};
2
+ //# sourceMappingURL=select.js.map