@etus/ui 0.4.0-beta.7 → 0.4.0-beta.8

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 (221) hide show
  1. package/dist/{chunk-2Y7PQ6ZL.js → chunk-237TQKWH.js} +4 -4
  2. package/dist/{chunk-2Y7PQ6ZL.js.map → chunk-237TQKWH.js.map} +1 -1
  3. package/dist/{chunk-KR3IVNQH.js → chunk-2FJJOHHH.js} +16 -10
  4. package/dist/chunk-2FJJOHHH.js.map +1 -0
  5. package/dist/{chunk-W4NC5CU5.js → chunk-2Q4I4VDB.js} +4 -4
  6. package/dist/{chunk-W4NC5CU5.js.map → chunk-2Q4I4VDB.js.map} +1 -1
  7. package/dist/chunk-2Z722V5K.js +231 -0
  8. package/dist/chunk-2Z722V5K.js.map +1 -0
  9. package/dist/chunk-37IIHQP4.js +233 -0
  10. package/dist/chunk-37IIHQP4.js.map +1 -0
  11. package/dist/{chunk-UFRMZ3M6.js → chunk-3JCV72FO.js} +6 -2
  12. package/dist/chunk-3JCV72FO.js.map +1 -0
  13. package/dist/{chunk-FCT6FEEZ.js → chunk-43BS3PPX.js} +5 -5
  14. package/dist/{chunk-FCT6FEEZ.js.map → chunk-43BS3PPX.js.map} +1 -1
  15. package/dist/{chunk-2UGDLAYC.js → chunk-45D4O7RK.js} +10 -3
  16. package/dist/chunk-45D4O7RK.js.map +1 -0
  17. package/dist/{chunk-OTSK2KAI.js → chunk-4EYYCHLD.js} +5 -5
  18. package/dist/{chunk-OTSK2KAI.js.map → chunk-4EYYCHLD.js.map} +1 -1
  19. package/dist/{chunk-J62TFQHR.js → chunk-5I7AXWJU.js} +13 -13
  20. package/dist/chunk-5I7AXWJU.js.map +1 -0
  21. package/dist/{chunk-65YSTUD2.js → chunk-5SUD32RK.js} +44 -14
  22. package/dist/chunk-5SUD32RK.js.map +1 -0
  23. package/dist/{chunk-23BHD62H.js → chunk-5TZDEGZN.js} +4 -4
  24. package/dist/chunk-5TZDEGZN.js.map +1 -0
  25. package/dist/{chunk-VPNFYQBL.js → chunk-6DN2UAIR.js} +3 -3
  26. package/dist/chunk-6DN2UAIR.js.map +1 -0
  27. package/dist/{chunk-EGYWK2XX.js → chunk-7CTFBOD4.js} +3 -3
  28. package/dist/{chunk-EGYWK2XX.js.map → chunk-7CTFBOD4.js.map} +1 -1
  29. package/dist/{chunk-36XTKR3B.js → chunk-BMNCNBPA.js} +3 -3
  30. package/dist/{chunk-36XTKR3B.js.map → chunk-BMNCNBPA.js.map} +1 -1
  31. package/dist/{chunk-AWYOWR5N.js → chunk-C5HSYDJC.js} +3 -3
  32. package/dist/{chunk-AWYOWR5N.js.map → chunk-C5HSYDJC.js.map} +1 -1
  33. package/dist/{chunk-VFALJSXB.js → chunk-DCUFQJYP.js} +3 -3
  34. package/dist/chunk-DCUFQJYP.js.map +1 -0
  35. package/dist/{chunk-LATTRPLQ.js → chunk-E2TI5V67.js} +3 -3
  36. package/dist/{chunk-LATTRPLQ.js.map → chunk-E2TI5V67.js.map} +1 -1
  37. package/dist/{chunk-IRKDMISK.js → chunk-G2MAGZHQ.js} +4 -3
  38. package/dist/chunk-G2MAGZHQ.js.map +1 -0
  39. package/dist/{chunk-ONQCNOLU.js → chunk-HDOR3SN3.js} +3 -3
  40. package/dist/{chunk-ONQCNOLU.js.map → chunk-HDOR3SN3.js.map} +1 -1
  41. package/dist/{chunk-PLLJNHWU.js → chunk-HI3T55XK.js} +3 -33
  42. package/dist/chunk-HI3T55XK.js.map +1 -0
  43. package/dist/chunk-HJ4E6YPW.js +236 -0
  44. package/dist/chunk-HJ4E6YPW.js.map +1 -0
  45. package/dist/{chunk-LS3WD6IZ.js → chunk-I55QJ4CU.js} +4 -4
  46. package/dist/{chunk-LS3WD6IZ.js.map → chunk-I55QJ4CU.js.map} +1 -1
  47. package/dist/{chunk-HKXQLWGR.js → chunk-IOWHM7ZY.js} +13 -11
  48. package/dist/chunk-IOWHM7ZY.js.map +1 -0
  49. package/dist/{chunk-ILAV2AZ4.js → chunk-IZC5YFGO.js} +3 -3
  50. package/dist/{chunk-ILAV2AZ4.js.map → chunk-IZC5YFGO.js.map} +1 -1
  51. package/dist/{chunk-Y7UFBSAD.js → chunk-KHOCAVQO.js} +3 -3
  52. package/dist/{chunk-Y7UFBSAD.js.map → chunk-KHOCAVQO.js.map} +1 -1
  53. package/dist/{chunk-IBVCSZCH.js → chunk-KVJOKWP4.js} +5 -4
  54. package/dist/chunk-KVJOKWP4.js.map +1 -0
  55. package/dist/{chunk-KC6CHPT3.js → chunk-KZRTQF64.js} +3 -3
  56. package/dist/{chunk-KC6CHPT3.js.map → chunk-KZRTQF64.js.map} +1 -1
  57. package/dist/{chunk-QIETN4UU.js → chunk-LEAK22ZP.js} +3 -3
  58. package/dist/{chunk-QIETN4UU.js.map → chunk-LEAK22ZP.js.map} +1 -1
  59. package/dist/{chunk-OWOVCGUZ.js → chunk-M2C7HBR5.js} +3 -3
  60. package/dist/{chunk-OWOVCGUZ.js.map → chunk-M2C7HBR5.js.map} +1 -1
  61. package/dist/{chunk-33JGPMUW.js → chunk-M7TPROVH.js} +20 -7
  62. package/dist/chunk-M7TPROVH.js.map +1 -0
  63. package/dist/{chunk-AVR3LVOQ.js → chunk-MQMRVBUL.js} +4 -4
  64. package/dist/{chunk-AVR3LVOQ.js.map → chunk-MQMRVBUL.js.map} +1 -1
  65. package/dist/{chunk-KPNNSUXM.js → chunk-O7AUE5GP.js} +5 -3
  66. package/dist/chunk-O7AUE5GP.js.map +1 -0
  67. package/dist/{chunk-6HEURMY3.js → chunk-OCXGG7UP.js} +5 -5
  68. package/dist/{chunk-6HEURMY3.js.map → chunk-OCXGG7UP.js.map} +1 -1
  69. package/dist/{chunk-V7XHE25E.js → chunk-ON7WFRYH.js} +3 -3
  70. package/dist/{chunk-V7XHE25E.js.map → chunk-ON7WFRYH.js.map} +1 -1
  71. package/dist/{chunk-FSMHI7DW.js → chunk-OXDWUKGP.js} +3 -3
  72. package/dist/chunk-OXDWUKGP.js.map +1 -0
  73. package/dist/{chunk-SJSYKUCL.js → chunk-Q335YODG.js} +3 -3
  74. package/dist/{chunk-SJSYKUCL.js.map → chunk-Q335YODG.js.map} +1 -1
  75. package/dist/{chunk-6ELVWWIA.js → chunk-QZWKXUZP.js} +3 -3
  76. package/dist/{chunk-6ELVWWIA.js.map → chunk-QZWKXUZP.js.map} +1 -1
  77. package/dist/{chunk-DDM2I5C6.js → chunk-R5OIL4I4.js} +3 -3
  78. package/dist/{chunk-DDM2I5C6.js.map → chunk-R5OIL4I4.js.map} +1 -1
  79. package/dist/{chunk-FYJHWYPM.js → chunk-S524YVMO.js} +3 -3
  80. package/dist/{chunk-FYJHWYPM.js.map → chunk-S524YVMO.js.map} +1 -1
  81. package/dist/{chunk-OWIFNJXZ.js → chunk-S7TVRVRU.js} +3 -3
  82. package/dist/chunk-S7TVRVRU.js.map +1 -0
  83. package/dist/{chunk-TNROOKX3.js → chunk-UDY3IDCY.js} +10 -2
  84. package/dist/chunk-UDY3IDCY.js.map +1 -0
  85. package/dist/{chunk-3WOGOTOV.js → chunk-UPYT2XM5.js} +7 -7
  86. package/dist/chunk-UPYT2XM5.js.map +1 -0
  87. package/dist/{chunk-YWA63YN3.js → chunk-VAVE4ZJF.js} +2 -2
  88. package/dist/chunk-VAVE4ZJF.js.map +1 -0
  89. package/dist/chunk-WKWLKGNI.js +643 -0
  90. package/dist/chunk-WKWLKGNI.js.map +1 -0
  91. package/dist/{chunk-Z3FL7LEK.js → chunk-X253YD45.js} +71 -6
  92. package/dist/chunk-X253YD45.js.map +1 -0
  93. package/dist/{chunk-6XY7QYVR.js → chunk-X3AXEE3S.js} +3 -3
  94. package/dist/{chunk-6XY7QYVR.js.map → chunk-X3AXEE3S.js.map} +1 -1
  95. package/dist/{chunk-R4UOT76L.js → chunk-XAIUZJOJ.js} +8 -8
  96. package/dist/chunk-XAIUZJOJ.js.map +1 -0
  97. package/dist/{chunk-ZO2EKJZM.js → chunk-XCZMJA2D.js} +7 -7
  98. package/dist/{chunk-ZO2EKJZM.js.map → chunk-XCZMJA2D.js.map} +1 -1
  99. package/dist/{chunk-XRMKL43Y.js → chunk-XOLV7G4S.js} +3 -3
  100. package/dist/{chunk-XRMKL43Y.js.map → chunk-XOLV7G4S.js.map} +1 -1
  101. package/dist/chunk-XYYOV5GW.js +186 -0
  102. package/dist/chunk-XYYOV5GW.js.map +1 -0
  103. package/dist/{chunk-4MQNDQ4O.js → chunk-YACIRNVP.js} +12 -4
  104. package/dist/chunk-YACIRNVP.js.map +1 -0
  105. package/dist/{chunk-JKYB5QAP.js → chunk-YDZBLZVZ.js} +3 -3
  106. package/dist/{chunk-JKYB5QAP.js.map → chunk-YDZBLZVZ.js.map} +1 -1
  107. package/dist/{chunk-5XQIH6WM.js → chunk-YM5YBDRM.js} +4 -4
  108. package/dist/{chunk-5XQIH6WM.js.map → chunk-YM5YBDRM.js.map} +1 -1
  109. package/dist/{chunk-AUCDXPWH.js → chunk-YQX7XZES.js} +4 -4
  110. package/dist/{chunk-AUCDXPWH.js.map → chunk-YQX7XZES.js.map} +1 -1
  111. package/dist/{chunk-Y3BOERVB.js → chunk-ZEFK3AXP.js} +3 -3
  112. package/dist/{chunk-Y3BOERVB.js.map → chunk-ZEFK3AXP.js.map} +1 -1
  113. package/dist/{chunk-L3Z5FAJE.js → chunk-ZEYLSDSG.js} +3 -3
  114. package/dist/{chunk-L3Z5FAJE.js.map → chunk-ZEYLSDSG.js.map} +1 -1
  115. package/dist/components/advanced/Calendar/index.js +4 -4
  116. package/dist/components/advanced/Command/index.js +1 -1
  117. package/dist/components/advanced/EventCalendar/index.js +4 -4
  118. package/dist/components/advanced/FileDropzone/index.js +1 -1
  119. package/dist/components/advanced/FilterBuilder/index.js +4 -4
  120. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  121. package/dist/components/advanced/RichTextEditor/index.js +2 -2
  122. package/dist/components/advanced/index.js +16 -16
  123. package/dist/components/data-display/AreaChart/index.js +1 -1
  124. package/dist/components/data-display/BarChart/index.js +1 -1
  125. package/dist/components/data-display/Carousel/index.js +4 -4
  126. package/dist/components/data-display/ChartCard/index.js +2 -2
  127. package/dist/components/data-display/DashboardFilterbar/index.js +5 -5
  128. package/dist/components/data-display/DataTable/FilterBuilder/index.js +4 -4
  129. package/dist/components/data-display/DataTable/index.js +7 -7
  130. package/dist/components/data-display/ImageGallery/index.js +7 -7
  131. package/dist/components/data-display/KPICard/index.js +4 -4
  132. package/dist/components/data-display/Lightbox/index.js +1 -1
  133. package/dist/components/data-display/LineChart/index.js +1 -1
  134. package/dist/components/data-display/List/index.js +2 -2
  135. package/dist/components/data-display/Table/index.js +1 -1
  136. package/dist/components/data-display/VirtualTable/index.js +2 -2
  137. package/dist/components/data-display/index.js +35 -35
  138. package/dist/components/feedback/Alert/index.js +1 -1
  139. package/dist/components/feedback/AlertDialog/index.js +4 -4
  140. package/dist/components/feedback/ConfirmModal/index.js +5 -5
  141. package/dist/components/feedback/Modal/index.js +1 -1
  142. package/dist/components/feedback/index.js +9 -9
  143. package/dist/components/forms/ColorPicker/index.js +1 -1
  144. package/dist/components/forms/DatePicker/index.js +5 -5
  145. package/dist/components/forms/DateRangePicker/index.js +5 -5
  146. package/dist/components/forms/IftaLabel/index.js +1 -1
  147. package/dist/components/forms/InputGroup/index.js +4 -4
  148. package/dist/components/forms/InputOTPField/index.js +2 -2
  149. package/dist/components/forms/MultiSelect/index.js +2 -1
  150. package/dist/components/forms/RadioButton/index.js +1 -1
  151. package/dist/components/forms/Rating/index.js +1 -1
  152. package/dist/components/forms/TagsInput/index.js +2 -2
  153. package/dist/components/forms/ToggleGroup/index.js +1 -1
  154. package/dist/components/forms/index.js +28 -28
  155. package/dist/components/index.js +138 -138
  156. package/dist/components/layout/index.js +3 -3
  157. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  158. package/dist/components/navigation/Drawer/index.js +1 -1
  159. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  160. package/dist/components/navigation/Header/index.js +1 -1
  161. package/dist/components/navigation/MobileSidebar/index.js +4 -4
  162. package/dist/components/navigation/Pagination/index.js +4 -4
  163. package/dist/components/navigation/Sidebar/index.js +5 -5
  164. package/dist/components/navigation/UserProfileDropdown/index.js +1 -1
  165. package/dist/components/navigation/WorkspaceDropdown/index.js +1 -1
  166. package/dist/components/navigation/index.js +15 -15
  167. package/dist/components/primitives/AspectRatio/index.js +1 -1
  168. package/dist/components/primitives/Badge/index.js +1 -1
  169. package/dist/components/primitives/Button/index.js +3 -3
  170. package/dist/components/primitives/ConfirmButton/index.js +5 -5
  171. package/dist/components/primitives/ProgressBar/index.js +1 -1
  172. package/dist/components/primitives/SplitButton/index.js +2 -2
  173. package/dist/components/primitives/StatusIndicator/index.js +1 -1
  174. package/dist/components/primitives/Tag/index.js +1 -1
  175. package/dist/components/primitives/Toggle/index.js +1 -1
  176. package/dist/components/primitives/index.js +18 -18
  177. package/dist/components/workflow/ApprovalFlow/index.js +4 -4
  178. package/dist/components/workflow/CommentSystem/index.js +4 -4
  179. package/dist/components/workflow/Dashboard/index.js +4 -4
  180. package/dist/components/workflow/DashboardBuilder/index.js +4 -4
  181. package/dist/components/workflow/KanbanBoard/index.js +4 -4
  182. package/dist/components/workflow/ReportGenerator/index.js +4 -4
  183. package/dist/components/workflow/TaskStatus/index.js +2 -2
  184. package/dist/components/workflow/Wizard/index.js +4 -4
  185. package/dist/components/workflow/index.js +15 -15
  186. package/dist/index.d.ts +156 -50
  187. package/dist/index.js +140 -140
  188. package/dist/styles.css +23 -0
  189. package/package.json +2 -2
  190. package/dist/chunk-23BHD62H.js.map +0 -1
  191. package/dist/chunk-2UGDLAYC.js.map +0 -1
  192. package/dist/chunk-33JGPMUW.js.map +0 -1
  193. package/dist/chunk-3WOGOTOV.js.map +0 -1
  194. package/dist/chunk-4MQNDQ4O.js.map +0 -1
  195. package/dist/chunk-65YSTUD2.js.map +0 -1
  196. package/dist/chunk-FSMHI7DW.js.map +0 -1
  197. package/dist/chunk-GAP3OZR7.js +0 -223
  198. package/dist/chunk-GAP3OZR7.js.map +0 -1
  199. package/dist/chunk-HKXQLWGR.js.map +0 -1
  200. package/dist/chunk-IBVCSZCH.js.map +0 -1
  201. package/dist/chunk-ICAQYWCX.js +0 -153
  202. package/dist/chunk-ICAQYWCX.js.map +0 -1
  203. package/dist/chunk-IRKDMISK.js.map +0 -1
  204. package/dist/chunk-J62TFQHR.js.map +0 -1
  205. package/dist/chunk-KPNNSUXM.js.map +0 -1
  206. package/dist/chunk-KR3IVNQH.js.map +0 -1
  207. package/dist/chunk-OWIFNJXZ.js.map +0 -1
  208. package/dist/chunk-PLLJNHWU.js.map +0 -1
  209. package/dist/chunk-R4UOT76L.js.map +0 -1
  210. package/dist/chunk-SHS6EGWS.js +0 -226
  211. package/dist/chunk-SHS6EGWS.js.map +0 -1
  212. package/dist/chunk-TNROOKX3.js.map +0 -1
  213. package/dist/chunk-UFRMZ3M6.js.map +0 -1
  214. package/dist/chunk-VFALJSXB.js.map +0 -1
  215. package/dist/chunk-VPNFYQBL.js.map +0 -1
  216. package/dist/chunk-XD5LE64P.js +0 -311
  217. package/dist/chunk-XD5LE64P.js.map +0 -1
  218. package/dist/chunk-XV6NXXXP.js +0 -206
  219. package/dist/chunk-XV6NXXXP.js.map +0 -1
  220. package/dist/chunk-YWA63YN3.js.map +0 -1
  221. package/dist/chunk-Z3FL7LEK.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-IBVCSZCH.js';
1
+ import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-KVJOKWP4.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -86,5 +86,5 @@ function ConfirmModal({
86
86
  }
87
87
 
88
88
  export { ConfirmModal };
89
- //# sourceMappingURL=chunk-XRMKL43Y.js.map
90
- //# sourceMappingURL=chunk-XRMKL43Y.js.map
89
+ //# sourceMappingURL=chunk-XOLV7G4S.js.map
90
+ //# sourceMappingURL=chunk-XOLV7G4S.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/feedback/ConfirmModal/ConfirmModal.tsx"],"names":[],"mappings":"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","file":"chunk-XRMKL43Y.js","sourcesContent":["\"use client\"\n\nimport type {\n ConfirmModalProps,\n ConfirmModalSize,\n ConfirmModalVariant,\n} from \"./ConfirmModal.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"../AlertDialog\"\n\nconst sizeClasses: Record<ConfirmModalSize, string> = {\n sm: \"sm:max-w-sm\",\n md: \"sm:max-w-md\",\n lg: \"sm:max-w-lg\",\n}\n\nconst confirmButtonVariants: Record<ConfirmModalVariant, string> = {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n warning: \"bg-warning text-warning-fg hover:bg-warning/90\",\n}\n\nconst fallbackDescription = \"Confirme esta ação para continuar.\"\n\n/**\n * ConfirmModal - Simplified confirmation dialog\n *\n * A wrapper over AlertDialog that provides a declarative API for confirmation dialogs.\n * Abstracts the complexity of AlertDialog subcomponents into a simple props interface.\n *\n * @example\n * ```tsx\n * // Basic usage with trigger\n * <ConfirmModal\n * trigger={<Button>Delete</Button>}\n * title=\"Delete item\"\n * description=\"This action cannot be undone.\"\n * variant=\"destructive\"\n * onConfirm={() => deleteItem()}\n * />\n *\n * // Controlled usage\n * <ConfirmModal\n * open={open}\n * onOpenChange={setOpen}\n * title=\"Confirm action\"\n * onConfirm={handleConfirm}\n * />\n * ```\n */\nfunction ConfirmModal({\n open,\n onOpenChange,\n defaultOpen = false,\n title = \"Confirmar\",\n description,\n icon,\n children,\n confirmLabel = \"Confirmar\",\n cancelLabel = \"Cancelar\",\n variant = \"default\",\n onConfirm,\n onCancel,\n loading = false,\n disabled = false,\n trigger,\n className,\n size = \"md\",\n}: ConfirmModalProps) {\n const isDisabled = loading || disabled\n const accessibleDescription = description ?? fallbackDescription\n\n const handleConfirm = (\n event: React.MouseEvent<HTMLButtonElement>\n ): void => {\n event.preventDefault()\n if (onConfirm) {\n void onConfirm()\n }\n }\n\n const handleCancel = (): void => {\n onCancel?.()\n onOpenChange?.(false)\n }\n\n return (\n <AlertDialog\n defaultOpen={defaultOpen}\n open={open}\n onOpenChange={onOpenChange}\n >\n {trigger && <AlertDialogTrigger asChild>{trigger}</AlertDialogTrigger>}\n <AlertDialogContent\n className={cn(sizeClasses[size], className)}\n data-slot=\"confirm-modal\"\n >\n <AlertDialogHeader>\n {icon && (\n <div className=\"mb-2\" data-slot=\"confirm-modal-icon\">\n {icon}\n </div>\n )}\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription className={description ? undefined : \"sr-only\"}>\n {accessibleDescription}\n </AlertDialogDescription>\n </AlertDialogHeader>\n {children && (\n <div data-slot=\"confirm-modal-content\">{children}</div>\n )}\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isDisabled} onClick={handleCancel}>\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction\n className={cn(confirmButtonVariants[variant])}\n disabled={isDisabled}\n onClick={handleConfirm}\n >\n {confirmLabel}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n}\n\nexport { ConfirmModal }\n"]}
1
+ {"version":3,"sources":["../src/components/feedback/ConfirmModal/ConfirmModal.tsx"],"names":[],"mappings":"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","file":"chunk-XOLV7G4S.js","sourcesContent":["\"use client\"\n\nimport type {\n ConfirmModalProps,\n ConfirmModalSize,\n ConfirmModalVariant,\n} from \"./ConfirmModal.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"../AlertDialog\"\n\nconst sizeClasses: Record<ConfirmModalSize, string> = {\n sm: \"sm:max-w-sm\",\n md: \"sm:max-w-md\",\n lg: \"sm:max-w-lg\",\n}\n\nconst confirmButtonVariants: Record<ConfirmModalVariant, string> = {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n warning: \"bg-warning text-warning-fg hover:bg-warning/90\",\n}\n\nconst fallbackDescription = \"Confirme esta ação para continuar.\"\n\n/**\n * ConfirmModal - Simplified confirmation dialog\n *\n * A wrapper over AlertDialog that provides a declarative API for confirmation dialogs.\n * Abstracts the complexity of AlertDialog subcomponents into a simple props interface.\n *\n * @example\n * ```tsx\n * // Basic usage with trigger\n * <ConfirmModal\n * trigger={<Button>Delete</Button>}\n * title=\"Delete item\"\n * description=\"This action cannot be undone.\"\n * variant=\"destructive\"\n * onConfirm={() => deleteItem()}\n * />\n *\n * // Controlled usage\n * <ConfirmModal\n * open={open}\n * onOpenChange={setOpen}\n * title=\"Confirm action\"\n * onConfirm={handleConfirm}\n * />\n * ```\n */\nfunction ConfirmModal({\n open,\n onOpenChange,\n defaultOpen = false,\n title = \"Confirmar\",\n description,\n icon,\n children,\n confirmLabel = \"Confirmar\",\n cancelLabel = \"Cancelar\",\n variant = \"default\",\n onConfirm,\n onCancel,\n loading = false,\n disabled = false,\n trigger,\n className,\n size = \"md\",\n}: ConfirmModalProps) {\n const isDisabled = loading || disabled\n const accessibleDescription = description ?? fallbackDescription\n\n const handleConfirm = (\n event: React.MouseEvent<HTMLButtonElement>\n ): void => {\n event.preventDefault()\n if (onConfirm) {\n void onConfirm()\n }\n }\n\n const handleCancel = (): void => {\n onCancel?.()\n onOpenChange?.(false)\n }\n\n return (\n <AlertDialog\n defaultOpen={defaultOpen}\n open={open}\n onOpenChange={onOpenChange}\n >\n {trigger && <AlertDialogTrigger asChild>{trigger}</AlertDialogTrigger>}\n <AlertDialogContent\n className={cn(sizeClasses[size], className)}\n data-slot=\"confirm-modal\"\n >\n <AlertDialogHeader>\n {icon && (\n <div className=\"mb-2\" data-slot=\"confirm-modal-icon\">\n {icon}\n </div>\n )}\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription className={description ? undefined : \"sr-only\"}>\n {accessibleDescription}\n </AlertDialogDescription>\n </AlertDialogHeader>\n {children && (\n <div data-slot=\"confirm-modal-content\">{children}</div>\n )}\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isDisabled} onClick={handleCancel}>\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction\n className={cn(confirmButtonVariants[variant])}\n disabled={isDisabled}\n onClick={handleConfirm}\n >\n {confirmLabel}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n}\n\nexport { ConfirmModal }\n"]}
@@ -0,0 +1,186 @@
1
+ import { radioGroupIndicatorVariants, radioGroupItemVariants } from './chunk-ONTUN5XH.js';
2
+ import { cn } from './chunk-HRNDJU7D.js';
3
+ import * as React from 'react';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+ import { cva } from 'class-variance-authority';
6
+
7
+ function RadioButton({
8
+ className,
9
+ size = "md",
10
+ label,
11
+ description,
12
+ id,
13
+ ref,
14
+ "aria-describedby": ariaDescribedBy,
15
+ ...props
16
+ }) {
17
+ const generatedId = React.useId();
18
+ const inputId = id ?? generatedId;
19
+ const descriptionId = `${inputId}-description`;
20
+ const isChecked = props.checked ?? props.defaultChecked ?? false;
21
+ const hasText = Boolean(label) || Boolean(description);
22
+ const describedByParts = [
23
+ description ? descriptionId : void 0,
24
+ ariaDescribedBy
25
+ ].filter(Boolean);
26
+ const describedBy = describedByParts.length > 0 ? describedByParts.join(" ") : void 0;
27
+ return /* @__PURE__ */ jsxs(
28
+ "div",
29
+ {
30
+ className: cn(
31
+ "group inline-flex gap-2",
32
+ description ? "items-start" : "items-center"
33
+ ),
34
+ "data-disabled": props.disabled ? "" : void 0,
35
+ "data-slot": "radio-button-wrapper",
36
+ "data-state": isChecked ? "checked" : "unchecked",
37
+ children: [
38
+ /* @__PURE__ */ jsxs(
39
+ "div",
40
+ {
41
+ className: cn(
42
+ "relative inline-flex items-center justify-center",
43
+ description && "pt-[2px]"
44
+ ),
45
+ children: [
46
+ /* @__PURE__ */ jsx(
47
+ "input",
48
+ {
49
+ ref,
50
+ className: cn(
51
+ "peer absolute inset-0 z-10 cursor-pointer opacity-0 disabled:cursor-not-allowed",
52
+ className
53
+ ),
54
+ "aria-describedby": describedBy,
55
+ id: inputId,
56
+ type: "radio",
57
+ ...props
58
+ }
59
+ ),
60
+ /* @__PURE__ */ jsx(
61
+ "div",
62
+ {
63
+ className: cn(
64
+ radioGroupItemVariants({ size }),
65
+ "peer-checked:border-primary peer-focus-visible:border-ring peer-focus-visible:ring-ring/50 peer-focus-visible:ring-[3px]",
66
+ "peer-checked:[&_[data-slot=radio-button-indicator]]:flex"
67
+ ),
68
+ "data-slot": "radio-button-visual",
69
+ children: /* @__PURE__ */ jsx(
70
+ "div",
71
+ {
72
+ className: cn(
73
+ radioGroupIndicatorVariants({ size }),
74
+ "hidden items-center justify-center bg-transparent"
75
+ ),
76
+ "data-slot": "radio-button-indicator",
77
+ children: /* @__PURE__ */ jsx("div", { className: "size-full rounded-full bg-[color:var(--radio-indicator-color)]" })
78
+ }
79
+ )
80
+ }
81
+ )
82
+ ]
83
+ }
84
+ ),
85
+ hasText && /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
86
+ label && /* @__PURE__ */ jsx(
87
+ "label",
88
+ {
89
+ className: cn(
90
+ "text-sm font-medium leading-none cursor-pointer select-none",
91
+ "peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
92
+ size === "lg" && "text-base",
93
+ size === "sm" && "text-xs"
94
+ ),
95
+ "data-slot": "radio-button-label",
96
+ htmlFor: inputId,
97
+ children: label
98
+ }
99
+ ),
100
+ description && /* @__PURE__ */ jsx(
101
+ "p",
102
+ {
103
+ className: "text-xs leading-4 text-[color:var(--muted-foreground)] peer-disabled:opacity-50",
104
+ "data-slot": "radio-button-description",
105
+ children: description
106
+ }
107
+ )
108
+ ] })
109
+ ]
110
+ }
111
+ );
112
+ }
113
+ var radioButtonVariants = cva(
114
+ [
115
+ "peer appearance-none shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none cursor-pointer",
116
+ "border-input bg-background dark:bg-input/30",
117
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
118
+ "checked:border-primary checked:bg-primary",
119
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
120
+ "disabled:cursor-not-allowed disabled:opacity-50"
121
+ ],
122
+ {
123
+ variants: {
124
+ size: {
125
+ sm: "size-3.5",
126
+ md: "size-4",
127
+ lg: "size-5"
128
+ }
129
+ },
130
+ defaultVariants: {
131
+ size: "md"
132
+ }
133
+ }
134
+ );
135
+ var radioButtonIndicatorVariants = cva(
136
+ [
137
+ "pointer-events-none absolute rounded-full bg-primary-foreground transition-transform",
138
+ "scale-0 peer-checked:scale-100"
139
+ ],
140
+ {
141
+ variants: {
142
+ size: {
143
+ sm: "size-1.5",
144
+ md: "size-2",
145
+ lg: "size-2.5"
146
+ }
147
+ },
148
+ defaultVariants: {
149
+ size: "md"
150
+ }
151
+ }
152
+ );
153
+ var radioButtonWrapperVariants = cva(
154
+ "relative inline-flex items-center justify-center",
155
+ {
156
+ variants: {
157
+ size: {
158
+ sm: "size-3.5",
159
+ md: "size-4",
160
+ lg: "size-5"
161
+ }
162
+ },
163
+ defaultVariants: {
164
+ size: "md"
165
+ }
166
+ }
167
+ );
168
+ var radioButtonLabelVariants = cva(
169
+ "cursor-pointer select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
170
+ {
171
+ variants: {
172
+ size: {
173
+ sm: "text-sm ml-2",
174
+ md: "text-sm ml-2",
175
+ lg: "text-base ml-2.5"
176
+ }
177
+ },
178
+ defaultVariants: {
179
+ size: "md"
180
+ }
181
+ }
182
+ );
183
+
184
+ export { RadioButton, radioButtonIndicatorVariants, radioButtonLabelVariants, radioButtonVariants, radioButtonWrapperVariants };
185
+ //# sourceMappingURL=chunk-XYYOV5GW.js.map
186
+ //# sourceMappingURL=chunk-XYYOV5GW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/forms/RadioButton/RadioButton.tsx","../src/components/forms/RadioButton/RadioButton.variants.ts"],"names":[],"mappings":"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","file":"chunk-XYYOV5GW.js","sourcesContent":["import type { RadioButtonProps } from \"./RadioButton.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n radioGroupIndicatorVariants,\n radioGroupItemVariants,\n} from \"../RadioGroup/RadioGroup.variants\"\n\n/**\n * A standalone radio button component using native HTML input.\n * For simple use cases without RadioGroup.\n * Visuals are consistent with RadioGroup.\n *\n * @example\n * ```tsx\n * <RadioButton name=\"option\" value=\"1\" label=\"Option 1\" />\n * <RadioButton name=\"option\" value=\"2\" label=\"Option 2\" />\n * ```\n */\nfunction RadioButton({\n className,\n size = \"md\",\n label,\n description,\n id,\n ref,\n \"aria-describedby\": ariaDescribedBy,\n ...props\n}: RadioButtonProps) {\n const generatedId = React.useId()\n const inputId = id ?? generatedId\n const descriptionId = `${inputId}-description`\n const isChecked = props.checked ?? props.defaultChecked ?? false\n const hasText = Boolean(label) || Boolean(description)\n const describedByParts = [\n description ? descriptionId : undefined,\n ariaDescribedBy,\n ].filter(Boolean)\n const describedBy =\n describedByParts.length > 0 ? describedByParts.join(\" \") : undefined\n\n return (\n <div\n className={cn(\n \"group inline-flex gap-2\",\n description ? \"items-start\" : \"items-center\"\n )}\n data-disabled={props.disabled ? \"\" : undefined}\n data-slot=\"radio-button-wrapper\"\n data-state={isChecked ? \"checked\" : \"unchecked\"}\n >\n <div\n className={cn(\n \"relative inline-flex items-center justify-center\",\n description && \"pt-[2px]\"\n )}\n >\n <input\n ref={ref}\n className={cn(\n \"peer absolute inset-0 z-10 cursor-pointer opacity-0 disabled:cursor-not-allowed\",\n className\n )}\n aria-describedby={describedBy}\n id={inputId}\n type=\"radio\"\n {...props}\n />\n <div\n className={cn(\n radioGroupItemVariants({ size }),\n \"peer-checked:border-primary peer-focus-visible:border-ring peer-focus-visible:ring-ring/50 peer-focus-visible:ring-[3px]\",\n \"peer-checked:[&_[data-slot=radio-button-indicator]]:flex\"\n )}\n data-slot=\"radio-button-visual\"\n >\n <div\n className={cn(\n radioGroupIndicatorVariants({ size }),\n \"hidden items-center justify-center bg-transparent\"\n )}\n data-slot=\"radio-button-indicator\"\n >\n <div className=\"size-full rounded-full bg-[color:var(--radio-indicator-color)]\" />\n </div>\n </div>\n </div>\n {hasText && (\n <div className=\"grid gap-1.5\">\n {label && (\n <label\n className={cn(\n \"text-sm font-medium leading-none cursor-pointer select-none\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n size === \"lg\" && \"text-base\",\n size === \"sm\" && \"text-xs\"\n )}\n data-slot=\"radio-button-label\"\n htmlFor={inputId}\n >\n {label}\n </label>\n )}\n {description && (\n <p\n className=\"text-xs leading-4 text-[color:var(--muted-foreground)] peer-disabled:opacity-50\"\n data-slot=\"radio-button-description\"\n >\n {description}\n </p>\n )}\n </div>\n )}\n </div>\n )\n}\n\nexport { RadioButton }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const radioButtonVariants = cva(\n [\n \"peer appearance-none shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none cursor-pointer\",\n \"border-input bg-background dark:bg-input/30\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"checked:border-primary checked:bg-primary\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"size-3.5\",\n md: \"size-4\",\n lg: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const radioButtonIndicatorVariants = cva(\n [\n \"pointer-events-none absolute rounded-full bg-primary-foreground transition-transform\",\n \"scale-0 peer-checked:scale-100\",\n ],\n {\n variants: {\n size: {\n sm: \"size-1.5\",\n md: \"size-2\",\n lg: \"size-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const radioButtonWrapperVariants = cva(\n \"relative inline-flex items-center justify-center\",\n {\n variants: {\n size: {\n sm: \"size-3.5\",\n md: \"size-4\",\n lg: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const radioButtonLabelVariants = cva(\n \"cursor-pointer select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n {\n variants: {\n size: {\n sm: \"text-sm ml-2\",\n md: \"text-sm ml-2\",\n lg: \"text-base ml-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type RadioButtonVariantProps = VariantProps<typeof radioButtonVariants>\nexport type RadioButtonIndicatorVariantProps = VariantProps<typeof radioButtonIndicatorVariants>\nexport type RadioButtonWrapperVariantProps = VariantProps<typeof radioButtonWrapperVariants>\nexport type RadioButtonLabelVariantProps = VariantProps<typeof radioButtonLabelVariants>\n"]}
@@ -13,8 +13,11 @@ function IftaLabel({
13
13
  const wrapperRef = React.useRef(null);
14
14
  React.useEffect(() => {
15
15
  if (wrapperRef.current) {
16
- const input = wrapperRef.current.querySelector("input, select, textarea");
16
+ const input = wrapperRef.current.querySelector(
17
+ "input, select, textarea, [data-slot$='-trigger'], [data-slot='combobox']"
18
+ );
17
19
  if (input) {
20
+ input.setAttribute("data-ifta-field", "");
18
21
  const existingId = input.getAttribute("id");
19
22
  if (existingId) {
20
23
  setInputId(existingId);
@@ -35,8 +38,13 @@ function IftaLabel({
35
38
  ref: wrapperRef,
36
39
  className: cn(
37
40
  "relative group [&_input]:pt-[var(--ifta-label-wrapper-padding-top)] [&_input]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_input]:h-[var(--ifta-label-wrapper-height)]",
38
- "has-[input:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)]",
41
+ // Reserve label space on non-native controls (e.g. Select/Combobox
42
+ // button triggers) that have no descendant <input>. Uses min-height so
43
+ // the control's own height variant is respected, just floored to fit.
44
+ "[&_[data-ifta-field]:not(input)]:pt-[var(--ifta-label-wrapper-padding-top)] [&_[data-ifta-field]:not(input)]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_[data-ifta-field]:not(input)]:min-h-[var(--ifta-label-wrapper-height)]",
45
+ "has-[input:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)] has-[[data-ifta-field]:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)]",
39
46
  "has-[input:disabled]:pointer-events-none has-[input:disabled]:cursor-not-allowed",
47
+ "has-[[data-ifta-field]:disabled]:pointer-events-none has-[[data-ifta-field]:disabled]:cursor-not-allowed",
40
48
  className
41
49
  ),
42
50
  "data-slot": "ifta-label",
@@ -58,5 +66,5 @@ function IftaLabel({
58
66
  }
59
67
 
60
68
  export { IftaLabel };
61
- //# sourceMappingURL=chunk-4MQNDQ4O.js.map
62
- //# sourceMappingURL=chunk-4MQNDQ4O.js.map
69
+ //# sourceMappingURL=chunk-YACIRNVP.js.map
70
+ //# sourceMappingURL=chunk-YACIRNVP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/forms/IftaLabel/IftaLabel.tsx"],"names":[],"mappings":";;;;AAmBA,SAAS,SAAA,CAAU;AAAA,EACjB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAU,KAAA,CAAA,QAAA,EAA6B;AACjE,EAAA,MAAM,cAAoB,KAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,UAAA,GAAmB,aAAuB,IAAI,CAAA;AASpD,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,WAAW,OAAA,EAAS;AACtB,MAAA,MAAM,KAAA,GAAQ,WAAW,OAAA,CAAQ,aAAA;AAAA,QAC/B;AAAA,OACF;AACA,MAAA,IAAI,KAAA,EAAO;AAIT,QAAA,KAAA,CAAM,YAAA,CAAa,mBAAmB,EAAE,CAAA;AACxC,QAAA,MAAM,UAAA,GAAa,KAAA,CAAM,YAAA,CAAa,IAAI,CAAA;AAC1C,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,UAAA,CAAW,UAAU,CAAA;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,MAAM,QAAQ,CAAA,iBAAA,EAAoB,WAAA,CAAY,UAAA,CAAW,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA;AACjE,UAAA,KAAA,CAAM,YAAA,CAAa,MAAM,KAAK,CAAA;AAC9B,UAAA,UAAA,CAAW,KAAK,CAAA;AAAA,QAClB;AACA,QAAA,IAAI,MAAM,OAAA,KAAY,OAAA,IAAW,CAAC,KAAA,CAAM,YAAA,CAAa,aAAa,CAAA,EAAG;AACnE,UAAA,KAAA,CAAM,YAAA,CAAa,eAAe,GAAG,CAAA;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,WAAA,EAAa,QAAQ,CAAC,CAAA;AAG1B,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,UAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,4KAAA;AAAA;AAAA;AAAA;AAAA,QAIA,sOAAA;AAAA,QACA,iKAAA;AAAA,QACA,kFAAA;AAAA,QACA,0GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,WAAA,EAAU,YAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,8bAAA;AAAA,YACV,WAAA,EAAU,iBAAA;AAAA,YACV,OAAA,EAAS,OAAA;AAAA,YAER,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ","file":"chunk-YACIRNVP.js","sourcesContent":["import type { IftaLabelProps } from \"./IftaLabel.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * IftaLabel - A wrapper component with an always-visible label inside the input\n *\n * IFTA = \"In Field Top Aligned\" - the label is always visible at the top\n * of the input container, unlike FloatLabel which animates on focus.\n *\n * @example\n * ```tsx\n * <IftaLabel label=\"Email\">\n * <TextInput value={email} onChange={(e) => setEmail(e.target.value)} />\n * </IftaLabel>\n * ```\n */\nfunction IftaLabel({\n children,\n label,\n className,\n ...props\n}: IftaLabelProps) {\n const [inputId, setInputId] = React.useState<string | undefined>()\n const generatedId = React.useId()\n const wrapperRef = React.useRef<HTMLDivElement>(null)\n\n // Find the wrapped form control and get its id.\n // Covers native inputs/select/textarea AND button-based field shells\n // (Select / DatePicker via the `*-trigger` data-slot, Combobox via its\n // `combobox` data-slot), which have no descendant <input> to target.\n // The button precedes its inner `*-trigger` span in document order, so\n // querySelector returns the focusable button, not the span.\n /* eslint-disable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- DOM discovery for label-input association */\n React.useEffect(() => {\n if (wrapperRef.current) {\n const input = wrapperRef.current.querySelector(\n \"input, select, textarea, [data-slot$='-trigger'], [data-slot='combobox']\"\n )\n if (input) {\n // Mark the discovered control so the label-space reservation below\n // can target it regardless of element type (the [&_input] selector\n // alone misses non-native controls like Select's trigger button).\n input.setAttribute(\"data-ifta-field\", \"\")\n const existingId = input.getAttribute(\"id\")\n if (existingId) {\n setInputId(existingId)\n } else {\n const newId = `ifta-label-input-${generatedId.replaceAll(':', \"\")}`\n input.setAttribute(\"id\", newId)\n setInputId(newId)\n }\n if (input.tagName === \"INPUT\" && !input.hasAttribute(\"placeholder\")) {\n input.setAttribute(\"placeholder\", \" \")\n }\n }\n }\n }, [generatedId, children])\n /* eslint-enable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n return (\n <div\n ref={wrapperRef}\n className={cn(\n \"relative group [&_input]:pt-[var(--ifta-label-wrapper-padding-top)] [&_input]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_input]:h-[var(--ifta-label-wrapper-height)]\",\n // Reserve label space on non-native controls (e.g. Select/Combobox\n // button triggers) that have no descendant <input>. Uses min-height so\n // the control's own height variant is respected, just floored to fit.\n \"[&_[data-ifta-field]:not(input)]:pt-[var(--ifta-label-wrapper-padding-top)] [&_[data-ifta-field]:not(input)]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_[data-ifta-field]:not(input)]:min-h-[var(--ifta-label-wrapper-height)]\",\n \"has-[input:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)] has-[[data-ifta-field]:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)]\",\n \"has-[input:disabled]:pointer-events-none has-[input:disabled]:cursor-not-allowed\",\n \"has-[[data-ifta-field]:disabled]:pointer-events-none has-[[data-ifta-field]:disabled]:cursor-not-allowed\",\n className\n )}\n data-slot=\"ifta-label\"\n {...props}\n >\n <label\n className=\"pointer-events-none absolute left-3 top-1.5 text-xs font-normal text-[color:var(--ifta-label-label-color-muted)] group-focus-within:text-[color:var(--ifta-label-label-color-foreground)] group-has-[input:not(:placeholder-shown)]:text-[color:var(--ifta-label-label-color-foreground)] group-has-[[aria-invalid=true]]:text-[color:var(--ifta-label-label-color-destructive)] group-has-[input:disabled]:text-[color:var(--ifta-label-label-color-muted)]\"\n data-slot=\"ifta-label-text\"\n htmlFor={inputId}\n >\n {label}\n </label>\n {children}\n </div>\n )\n}\n\nexport { IftaLabel }\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Textarea } from './chunk-U6EOAIPK.js';
2
2
  import { Avatar, AvatarImage, AvatarFallback } from './chunk-YP2ATSXP.js';
3
- import { Button } from './chunk-ONQCNOLU.js';
3
+ import { Button } from './chunk-HDOR3SN3.js';
4
4
  import { cn } from './chunk-HRNDJU7D.js';
5
5
  import { Paperclip, Smile, Send, MoreHorizontal, Edit2, Trash2, CornerDownRight, X, MessageCircle } from 'lucide-react';
6
6
  import { useId, useRef, useState, useMemo, useCallback } from 'react';
@@ -1066,5 +1066,5 @@ function CommentSystem({
1066
1066
  }
1067
1067
 
1068
1068
  export { CommentInput, CommentItem, CommentReactions, CommentSystem, commentActionsVariants, commentContentVariants, commentEmptyStateVariants, commentHeaderVariants, commentInputContainerVariants, commentItemVariants, commentMentionVariants, commentReactionVariants, commentRepliesVariants, commentSystemVariants, commentThreadLineVariants, commentTimelineMarkerVariants, defaultReactions, mentionSuggestionItemVariants, mentionSuggestionsVariants };
1069
- //# sourceMappingURL=chunk-JKYB5QAP.js.map
1070
- //# sourceMappingURL=chunk-JKYB5QAP.js.map
1069
+ //# sourceMappingURL=chunk-YDZBLZVZ.js.map
1070
+ //# sourceMappingURL=chunk-YDZBLZVZ.js.map