ics-ui-kit 1.0.0-alpha.0 → 1.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/CalendarPreviousMonthButton-CHMp8bkd.js +2964 -0
  2. package/dist/CalendarPreviousMonthButton-CHMp8bkd.js.map +1 -0
  3. package/dist/{CheckboxField-Ca48ZYoX.js → CheckboxField-xDqHgXHh.js} +2 -2
  4. package/dist/{CheckboxField-Ca48ZYoX.js.map → CheckboxField-xDqHgXHh.js.map} +1 -1
  5. package/dist/{Command-CsW4aK7M.js → Command-WsAKNQrY.js} +2 -2
  6. package/dist/{Command-CsW4aK7M.js.map → Command-WsAKNQrY.js.map} +1 -1
  7. package/dist/{Dialog-BT_775Iz.js → Dialog-i_Y-phdM.js} +42 -43
  8. package/dist/Dialog-i_Y-phdM.js.map +1 -0
  9. package/dist/{Field-BRPdaQ8D.js → Field-BcwUtgGr.js} +2 -2
  10. package/dist/{Field-BRPdaQ8D.js.map → Field-BcwUtgGr.js.map} +1 -1
  11. package/dist/{FieldLabel-ic0eq9Un.js → FieldLabel-DYu1AcGH.js} +2 -2
  12. package/dist/{FieldLabel-ic0eq9Un.js.map → FieldLabel-DYu1AcGH.js.map} +1 -1
  13. package/dist/{FormFooterTemplate-BIwnBQhL.js → FormFooterTemplate-CHlas_Pp.js} +2 -2
  14. package/dist/{FormFooterTemplate-BIwnBQhL.js.map → FormFooterTemplate-CHlas_Pp.js.map} +1 -1
  15. package/dist/FormStack-DfoaOry7.js +1205 -0
  16. package/dist/FormStack-DfoaOry7.js.map +1 -0
  17. package/dist/{IconTooltip-CgbefRXG.js → IconTooltip-R6_6_f40.js} +2 -2
  18. package/dist/{IconTooltip-CgbefRXG.js.map → IconTooltip-R6_6_f40.js.map} +1 -1
  19. package/dist/{Popover-Dz2eNsXh.js → Popover-XrJa7lyb.js} +49 -50
  20. package/dist/Popover-XrJa7lyb.js.map +1 -0
  21. package/dist/{Select-Bfbtj5zt.js → Select-DO02vXt3.js} +185 -186
  22. package/dist/{Select-Bfbtj5zt.js.map → Select-DO02vXt3.js.map} +1 -1
  23. package/dist/{Sheet-aLBPtE1k.js → Sheet-C2UoHLL0.js} +35 -36
  24. package/dist/Sheet-C2UoHLL0.js.map +1 -0
  25. package/dist/{TextOverflowTooltip-BaNPKqnO.js → TextOverflowTooltip-XPDdO9Dz.js} +2 -2
  26. package/dist/{TextOverflowTooltip-BaNPKqnO.js.map → TextOverflowTooltip-XPDdO9Dz.js.map} +1 -1
  27. package/dist/{Tooltip-DOgKy50D.js → Tooltip-D2XvRS0c.js} +63 -64
  28. package/dist/Tooltip-D2XvRS0c.js.map +1 -0
  29. package/dist/blocks/auth/otp-form.js +3240 -204
  30. package/dist/blocks/auth/otp-form.js.map +1 -1
  31. package/dist/components/alert-dialog/AlertDialog.d.ts +2 -4
  32. package/dist/components/alert-dialog.js +70 -71
  33. package/dist/components/alert-dialog.js.map +1 -1
  34. package/dist/components/calendar/components/calendar-dropdown/CalendarDropdown.d.ts +24 -0
  35. package/dist/components/calendar/styles.d.ts +61 -0
  36. package/dist/components/calendar-scroll/CalendarScroll.d.ts +21 -0
  37. package/dist/components/calendar-scroll/CalendarScroll.stories.d.ts +16 -0
  38. package/dist/components/calendar-scroll/index.d.ts +3 -0
  39. package/dist/components/calendar-scroll.d.ts +2 -0
  40. package/dist/components/calendar-scroll.js +181 -0
  41. package/dist/components/calendar-scroll.js.map +1 -0
  42. package/dist/components/calendar.js +51 -147
  43. package/dist/components/calendar.js.map +1 -1
  44. package/dist/components/checkbox.js +1 -1
  45. package/dist/components/command.js +1 -1
  46. package/dist/components/dialog/Dialog.d.ts +2 -4
  47. package/dist/components/dialog.js +3 -3
  48. package/dist/components/drawer/components/drawer-content/DrawerContent.d.ts +1 -2
  49. package/dist/components/drawer.js +96 -97
  50. package/dist/components/drawer.js.map +1 -1
  51. package/dist/components/dropdown/Dropdown.d.ts +2 -4
  52. package/dist/components/dropdown.js +251 -252
  53. package/dist/components/dropdown.js.map +1 -1
  54. package/dist/components/field.js +1 -1
  55. package/dist/components/file-upload.js +1 -1
  56. package/dist/components/form/Form.d.ts +14 -0
  57. package/dist/components/form/components/form-field/FormField.d.ts +4 -0
  58. package/dist/components/form.js +3 -3
  59. package/dist/components/icon-tooltip.js +1 -1
  60. package/dist/components/label.js +1 -1
  61. package/dist/components/overflow-tooltip.js +1 -1
  62. package/dist/components/popover/Popover.d.ts +1 -2
  63. package/dist/components/popover.js +1 -1
  64. package/dist/components/resizable/Resizable.d.ts +1 -1
  65. package/dist/components/scheduler.js +1 -1
  66. package/dist/components/search-select/multi-select/MultiSelect.d.ts +1 -1
  67. package/dist/components/search-select.js +3 -3
  68. package/dist/components/search-select.js.map +1 -1
  69. package/dist/components/select/Select.d.ts +1 -2
  70. package/dist/components/select.js +1 -1
  71. package/dist/components/sheet/Sheet.d.ts +1 -2
  72. package/dist/components/sheet.js +1 -1
  73. package/dist/components/sidebar.js +2 -2
  74. package/dist/components/switch.js +1 -1
  75. package/dist/components/tag-input.js +1 -1
  76. package/dist/components/tooltip/Tooltip.d.ts +2 -4
  77. package/dist/components/tooltip.js +1 -1
  78. package/dist/tailwind.css +406 -361
  79. package/package.json +22 -18
  80. package/dist/DayPicker-4hE1QEvO.js +0 -2452
  81. package/dist/DayPicker-4hE1QEvO.js.map +0 -1
  82. package/dist/Dialog-BT_775Iz.js.map +0 -1
  83. package/dist/FormStack-CxiZhx1n.js +0 -127
  84. package/dist/FormStack-CxiZhx1n.js.map +0 -1
  85. package/dist/Popover-Dz2eNsXh.js.map +0 -1
  86. package/dist/Sheet-aLBPtE1k.js.map +0 -1
  87. package/dist/Tooltip-DOgKy50D.js.map +0 -1
  88. package/dist/buildMatchPatternFn-d7GTeGl_.js +0 -68
  89. package/dist/buildMatchPatternFn-d7GTeGl_.js.map +0 -1
  90. package/dist/components/portal-container/PortalContainer.d.ts +0 -10
  91. package/dist/components/portal-container/index.d.ts +0 -2
  92. package/dist/components/portal-container/portalContainerEvents.d.ts +0 -12
  93. package/dist/components/portal-container/usePortalContainer.d.ts +0 -11
  94. package/dist/components/portal-container.d.ts +0 -2
  95. package/dist/components/portal-container.js +0 -14
  96. package/dist/components/portal-container.js.map +0 -1
  97. package/dist/index.esm-CXA6i4d7.js +0 -1282
  98. package/dist/index.esm-CXA6i4d7.js.map +0 -1
  99. package/dist/normalizeDates-9A3c9WYM.js +0 -32
  100. package/dist/normalizeDates-9A3c9WYM.js.map +0 -1
  101. package/dist/styles.css +0 -9064
  102. package/dist/styles.d.ts +0 -1
  103. package/dist/usePortalContainer-B1xla842.js +0 -33
  104. package/dist/usePortalContainer-B1xla842.js.map +0 -1
  105. package/dist/vendors/date-fns/index.d.ts +0 -12
  106. package/dist/vendors/date-fns/locale/en-US/index.d.ts +0 -5
  107. package/dist/vendors/date-fns/locale/en-US.d.ts +0 -2
  108. package/dist/vendors/date-fns/locale/en-US.js +0 -372
  109. package/dist/vendors/date-fns/locale/en-US.js.map +0 -1
  110. package/dist/vendors/date-fns/locale/ru/index.d.ts +0 -5
  111. package/dist/vendors/date-fns/locale/ru.d.ts +0 -2
  112. package/dist/vendors/date-fns/locale/ru.js +0 -569
  113. package/dist/vendors/date-fns/locale/ru.js.map +0 -1
  114. package/dist/vendors/date-fns.d.ts +0 -2
  115. package/dist/vendors/date-fns.js +0 -2
  116. package/dist/vendors/date-fns.js.map +0 -1
  117. package/dist/vendors/react-day-picker/index.d.ts +0 -13
  118. package/dist/vendors/react-day-picker.d.ts +0 -2
  119. package/dist/vendors/react-day-picker.js +0 -87
  120. package/dist/vendors/react-day-picker.js.map +0 -1
  121. package/dist/vendors/react-hook-form/index.d.ts +0 -14
  122. package/dist/vendors/react-hook-form.d.ts +0 -2
  123. package/dist/vendors/react-hook-form.js +0 -19
  124. package/dist/vendors/react-hook-form.js.map +0 -1
  125. package/dist/vendors/tanstack/react-table/index.d.ts +0 -13
  126. package/dist/vendors/tanstack/react-table.d.ts +0 -2
  127. package/dist/vendors/tanstack/react-table.js +0 -2090
  128. package/dist/vendors/tanstack/react-table.js.map +0 -1
  129. package/dist/vendors/zod/index.d.ts +0 -13
  130. package/dist/vendors/zod.d.ts +0 -2
  131. package/dist/vendors/zod.js +0 -3080
  132. package/dist/vendors/zod.js.map +0 -1
  133. package/dist/zod-BMNoK3aM.js +0 -75
  134. package/dist/zod-BMNoK3aM.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"Dialog-BT_775Iz.js","sources":["../src/components/dialog/Dialog.tsx"],"sourcesContent":["import * as DialogPrimitive from \"@radix-ui/react-dialog\";\r\nimport { X } from \"lucide-react\";\r\nimport * as React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FormBody } from \"../form/components/form-body/FormBody\";\r\nimport { FormFooter } from \"../form/components/form-footer/FormFooter\";\r\nimport { formDescriptionStyles, FormHeader, formTitleStyles } from \"../form/components/form-header/FormHeader\";\r\nimport { Icon } from \"../icon\";\r\nimport { overlayStyles, OverlayVariants } from \"../overlay/Overlay\";\r\nimport { usePortalContainer } from \"../portal-container\";\r\n\r\nconst Dialog = DialogPrimitive.Root;\r\nDialog.displayName = \"Dialog\";\r\n\r\nconst DialogTrigger = DialogPrimitive.Trigger;\r\nDialogTrigger.displayName = \"DialogTrigger\";\r\n\r\nconst DialogPortal = DialogPrimitive.Portal;\r\nDialogPortal.displayName = \"DialogPortal\";\r\n\r\nconst DialogTitle = React.forwardRef<\r\n\tReact.ElementRef<typeof DialogPrimitive.Title>,\r\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => {\r\n\tconst styles = formTitleStyles({ class: className });\r\n\treturn <DialogPrimitive.Title ref={ref} className={styles} {...props} />;\r\n});\r\nDialogTitle.displayName = \"DialogTitle\";\r\n\r\nconst DialogDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof DialogPrimitive.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => {\r\n\tconst styles = formDescriptionStyles({ class: className });\r\n\treturn <DialogPrimitive.Description ref={ref} className={styles} {...props} />;\r\n});\r\nDialogDescription.displayName = \"DialogDescription\";\r\n\r\nconst DialogHeader = FormHeader;\r\nDialogHeader.displayName = \"DialogHeader\";\r\n\r\nconst DialogBody = FormBody;\r\nDialogBody.displayName = \"DialogBody\";\r\n\r\nconst DialogFooter = FormFooter;\r\nDialogFooter.displayName = \"DialogFooter\";\r\n\r\nconst DialogClose = DialogPrimitive.Close;\r\nDialogClose.displayName = \"DialogClose\";\r\n\r\nconst dialogOverlayStyles = tv({ extend: overlayStyles });\r\n\r\ninterface DialogOverlayProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>, OverlayVariants {}\r\n\r\nconst DialogOverlay = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Overlay>, DialogOverlayProps>(\r\n\t({ className, blur, type, ...props }, ref) => (\r\n\t\t<DialogPrimitive.Overlay\r\n\t\t\tref={ref}\r\n\t\t\tclassName={dialogOverlayStyles({ class: className, blur, type })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t)\r\n);\r\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\r\n\r\nconst dialogContentStyles = tv({\r\n\tbase: [\r\n\t\t\"fixed left-[50%] top-[45%] z-50 max-h-[min(90vh,calc(100vh-44px))] w-full max-w-[min(480px,calc(100vw-32px))] translate-x-[-50%] translate-y-[-45%] lg:top-[35%] lg:max-h-[min(90vh,830px)] lg:max-w-[min(544px,calc(100vw-32px))] lg:translate-y-[-35%]\",\r\n\t\t\"flex flex-col gap-0 overflow-hidden rounded-xl border border-secondary-border bg-secondary-bg p-0 shadow-soft-lg\",\r\n\t\t\"duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\"\r\n\t],\r\n\tslots: {\r\n\t\tcloseButton: \"absolute right-0 top-0 z-50 h-11 w-11 p-3.5 text-muted\",\r\n\t\tcloseIcon: \"h-4 w-4\"\r\n\t}\r\n});\r\n\r\ntype BackgroundProps = OverlayVariants;\r\n\r\nconst DialogContent = React.forwardRef<\r\n\tReact.ElementRef<typeof DialogPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\r\n\t\toverlayBlur?: BackgroundProps[\"blur\"];\r\n\t\toverlayType?: BackgroundProps[\"type\"];\r\n\t\tshowCloseButton?: boolean;\r\n\t\t/**\r\n\t\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\r\n\t\t * для поиска PortalContainer\r\n\t\t */\r\n\t\tportalContainer?: HTMLElement;\r\n\t}\r\n>((props, ref) => {\r\n\tconst {\r\n\t\tclassName,\r\n\t\tchildren,\r\n\t\toverlayBlur,\r\n\t\toverlayType,\r\n\t\tshowCloseButton = true,\r\n\t\tportalContainer,\r\n\t\t...restProps\r\n\t} = props;\r\n\tconst styles = dialogContentStyles();\r\n\tconst container = usePortalContainer(portalContainer);\r\n\treturn (\r\n\t\t<DialogPrimitive.Portal container={container}>\r\n\t\t\t<DialogOverlay blur={overlayBlur} type={overlayType} />\r\n\t\t\t<DialogPrimitive.Content ref={ref} className={styles.base({ className })} {...restProps}>\r\n\t\t\t\t{children}\r\n\t\t\t\t{showCloseButton && (\r\n\t\t\t\t\t<DialogPrimitive.Close className={styles.closeButton()}>\r\n\t\t\t\t\t\t<Icon className={styles.closeIcon()} size=\"lg\" icon={X}></Icon>\r\n\t\t\t\t\t</DialogPrimitive.Close>\r\n\t\t\t\t)}\r\n\t\t\t</DialogPrimitive.Content>\r\n\t\t</DialogPrimitive.Portal>\r\n\t);\r\n});\r\nDialogContent.displayName = \"DialogContent\";\r\n\r\nexport {\r\n\tDialog,\r\n\tDialogBody,\r\n\tDialogClose,\r\n\tDialogContent,\r\n\tDialogDescription,\r\n\tDialogFooter,\r\n\tDialogHeader,\r\n\tDialogOverlay,\r\n\tDialogPortal,\r\n\tDialogTitle,\r\n\tDialogTrigger\r\n};\r\n\r\n/** @deprecated Используйте Dialog вместо Modal */\r\nexport const Modal = Dialog;\r\n/** @deprecated Используйте DialogBody вместо ModalBody */\r\nexport const ModalBody = DialogBody;\r\n/** @deprecated Используйте DialogClose вместо ModalClose */\r\nexport const ModalClose = DialogClose;\r\n/** @deprecated Используйте DialogContent вместо ModalContent */\r\nexport const ModalContent = DialogContent;\r\n/** @deprecated Используйте DialogDescription вместо ModalDescription */\r\nexport const ModalDescription = DialogDescription;\r\n/** @deprecated Используйте DialogFooter вместо ModalFooter */\r\nexport const ModalFooter = DialogFooter;\r\n/** @deprecated Используйте DialogHeader вместо ModalHeader */\r\nexport const ModalHeader = DialogHeader;\r\n/** @deprecated Используйте DialogOverlay вместо ModalOverlay */\r\nexport const ModalOverlay = DialogOverlay;\r\n/** @deprecated Используйте DialogPortal вместо ModalPortal */\r\nexport const ModalPortal = DialogPortal;\r\n/** @deprecated Используйте DialogTitle вместо ModalTitle */\r\nexport const ModalTitle = DialogTitle;\r\n/** @deprecated Используйте DialogTrigger вместо ModalTrigger */\r\nexport const ModalTrigger = DialogTrigger;\r\n"],"names":["Dialog","DialogPrimitive.Root","DialogTrigger","DialogPrimitive.Trigger","DialogPortal","DialogPrimitive.Portal","DialogTitle","React","className","props","ref","styles","formTitleStyles","jsx","DialogPrimitive.Title","DialogDescription","formDescriptionStyles","DialogPrimitive.Description","DialogHeader","FormHeader","DialogBody","FormBody","DialogFooter","FormFooter","DialogClose","DialogPrimitive.Close","dialogOverlayStyles","tv","overlayStyles","DialogOverlay","blur","type","DialogPrimitive.Overlay","dialogContentStyles","DialogContent","children","overlayBlur","overlayType","showCloseButton","portalContainer","restProps","container","usePortalContainer","jsxs","DialogPrimitive.Content","Icon","X","Modal","ModalBody","ModalClose","ModalContent","ModalDescription","ModalFooter","ModalHeader","ModalOverlay","ModalPortal","ModalTitle","ModalTrigger"],"mappings":";;;;;;;;;AAWA,MAAMA,IAASC;AACfD,EAAO,cAAc;AAErB,MAAME,IAAgBC;AACtBD,EAAc,cAAc;AAE5B,MAAME,IAAeC;AACrBD,EAAa,cAAc;AAErB,MAAAE,IAAcC,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ;AACnC,QAAMC,IAASC,EAAgB,EAAE,OAAOJ,GAAW;AAC5C,SAAA,gBAAAK,EAACC,GAAA,EAAsB,KAAAJ,GAAU,WAAWC,GAAS,GAAGF,GAAO;AACvE,CAAC;AACDH,EAAY,cAAc;AAEpB,MAAAS,IAAoBR,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ;AACnC,QAAMC,IAASK,EAAsB,EAAE,OAAOR,GAAW;AAClD,SAAA,gBAAAK,EAACI,GAAA,EAA4B,KAAAP,GAAU,WAAWC,GAAS,GAAGF,GAAO;AAC7E,CAAC;AACDM,EAAkB,cAAc;AAEhC,MAAMG,IAAeC;AACrBD,EAAa,cAAc;AAE3B,MAAME,IAAaC;AACnBD,EAAW,cAAc;AAEzB,MAAME,IAAeC;AACrBD,EAAa,cAAc;AAE3B,MAAME,IAAcC;AACpBD,EAAY,cAAc;AAE1B,MAAME,IAAsBC,EAAG,EAAE,QAAQC,GAAe,GAIlDC,IAAgBtB,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAC,GAAW,MAAAsB,GAAM,MAAAC,GAAM,GAAGtB,EAAA,GAASC,MACrC,gBAAAG;AAAA,IAACmB;AAAAA,IAAA;AAAA,MACA,KAAAtB;AAAA,MACA,WAAWgB,EAAoB,EAAE,OAAOlB,GAAW,MAAAsB,GAAM,MAAAC,GAAM;AAAA,MAC9D,GAAGtB;AAAA,IAAA;AAAA,EAAA;AAGP;AACAoB,EAAc,cAAcG,EAAwB;AAEpD,MAAMC,IAAsBN,EAAG;AAAA,EAC9B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,EAAA;AAEb,CAAC,GAIKO,IAAgB3B,EAAM,WAY1B,CAACE,GAAOC,MAAQ;AACX,QAAA;AAAA,IACL,WAAAF;AAAA,IACA,UAAA2B;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,iBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACA/B,GACEE,IAASsB,EAAoB,GAC7BQ,IAAYC,EAAmBH,CAAe;AACpD,SACE,gBAAAI,EAAAtC,GAAA,EAAuB,WAAAoC,GACvB,UAAA;AAAA,IAAA,gBAAA5B,EAACgB,GAAc,EAAA,MAAMO,GAAa,MAAMC,GAAa;AAAA,IACpD,gBAAAM,EAAAC,GAAA,EAAwB,KAAAlC,GAAU,WAAWC,EAAO,KAAK,EAAE,WAAAH,EAAW,CAAA,GAAI,GAAGgC,GAC5E,UAAA;AAAA,MAAAL;AAAA,MACAG,KACC,gBAAAzB,EAAAY,GAAA,EAAsB,WAAWd,EAAO,YAAY,GACpD,4BAACkC,GAAK,EAAA,WAAWlC,EAAO,UAAU,GAAG,MAAK,MAAK,MAAMmC,GAAG,EACzD,CAAA;AAAA,IAAA,EAEF,CAAA;AAAA,EAAA,GACD;AAEF,CAAC;AACDZ,EAAc,cAAc;AAiBrB,MAAMa,IAAQ/C,GAERgD,KAAY5B,GAEZ6B,KAAazB,GAEb0B,KAAehB,GAEfiB,KAAmBpC,GAEnBqC,KAAc9B,GAEd+B,KAAcnC,GAEdoC,KAAezB,GAEf0B,KAAcnD,GAEdoD,KAAalD,GAEbmD,KAAevD;"}
@@ -1,127 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { f, a as w, C as R } from "./index.esm-CXA6i4d7.js";
3
- import * as n from "react";
4
- import $ from "react";
5
- import { S as F } from "./index-BtQfgaSF.js";
6
- import { T as d } from "./index-BVqs-uqP.js";
7
- import { F as M } from "./FieldLabel-ic0eq9Un.js";
8
- import { F as k } from "./Field-BRPdaQ8D.js";
9
- const L = d({
10
- base: "rounded-md border border-secondary-border bg-secondary-bg"
11
- }), Q = ({
12
- className: e,
13
- asChild: o,
14
- ...r
15
- }) => /* @__PURE__ */ s(o ? F : "div", { className: L({ className: e }), children: /* @__PURE__ */ s(w, { ...r }) }), u = n.createContext({}), P = ({
16
- ...e
17
- }) => /* @__PURE__ */ s(u.Provider, { value: { name: e.name }, children: /* @__PURE__ */ s(R, { ...e }) }), l = () => {
18
- const e = n.useContext(u), o = n.useContext(p), { getFieldState: r, formState: t } = f(), a = r(e.name, t);
19
- if (!e)
20
- throw new Error("useFormField should be used within <FormField>");
21
- const { id: m } = o;
22
- return {
23
- id: m,
24
- name: e.name,
25
- formItemId: `${m}-form-item`,
26
- formDescriptionId: `${m}-form-item-description`,
27
- formMessageId: `${m}-form-item-message`,
28
- ...a
29
- };
30
- }, p = n.createContext({}), D = d({
31
- base: "space-y-2"
32
- }), b = n.forwardRef(
33
- ({ className: e, ...o }, r) => {
34
- const t = n.useId();
35
- return /* @__PURE__ */ s(p.Provider, { value: { id: t }, children: /* @__PURE__ */ s("div", { ref: r, className: D({ className: e }), ...o }) });
36
- }
37
- );
38
- b.displayName = "FormItem";
39
- const _ = n.forwardRef(
40
- ({ className: e, required: o, ...r }, t) => {
41
- const { formItemId: a } = l();
42
- return /* @__PURE__ */ s(M, { required: o, ref: t, className: e, htmlFor: a, ...r });
43
- }
44
- );
45
- _.displayName = "FormLabel";
46
- const y = n.forwardRef(
47
- ({ ...e }, o) => {
48
- const { error: r, formItemId: t, formDescriptionId: a, formMessageId: m } = l();
49
- return /* @__PURE__ */ s(
50
- F,
51
- {
52
- ref: o,
53
- id: t,
54
- "aria-describedby": r ? `${a} ${m}` : `${a}`,
55
- "aria-invalid": !!r,
56
- ...e
57
- }
58
- );
59
- }
60
- );
61
- y.displayName = "FormControl";
62
- const j = d({
63
- base: "text-[0.8rem] font-medium text-destructive"
64
- }), E = n.forwardRef(
65
- ({ className: e, children: o, ...r }, t) => {
66
- const { error: a, formMessageId: m } = l(), i = a ? String(a?.message ?? "") : o;
67
- return i ? /* @__PURE__ */ s("p", { ref: t, id: m, className: j({ className: e }), ...r, children: i }) : null;
68
- }
69
- );
70
- E.displayName = "FormMessage";
71
- const T = d({
72
- slots: {
73
- label: "w-44"
74
- }
75
- });
76
- function U({
77
- name: e,
78
- title: o,
79
- description: r,
80
- control: t,
81
- required: a,
82
- className: m,
83
- labelClassName: i,
84
- readonly: C,
85
- layout: I = "responsive"
86
- }) {
87
- const g = f(), x = T();
88
- return /* @__PURE__ */ s(
89
- P,
90
- {
91
- control: g.control,
92
- name: e,
93
- render: ({ field: S, fieldState: c, formState: v }) => /* @__PURE__ */ s(b, { children: /* @__PURE__ */ s(
94
- k,
95
- {
96
- title: o,
97
- description: r,
98
- required: a,
99
- error: c.error?.message,
100
- labelClassName: x.label({ className: i }),
101
- className: m,
102
- readonly: C,
103
- layout: I,
104
- control: ({ id: N, readonly: h }) => /* @__PURE__ */ s(y, { id: N, children: t({ field: S, fieldState: c, formState: v, readonly: h }) })
105
- }
106
- ) })
107
- }
108
- );
109
- }
110
- const q = d({
111
- base: "space-y-5 lg:space-y-4"
112
- }), z = $.forwardRef(
113
- ({ className: e, children: o, ...r }, t) => /* @__PURE__ */ s("div", { ref: t, className: q({ className: e }), ...r, children: o })
114
- );
115
- z.displayName = "FormStack";
116
- export {
117
- z as F,
118
- Q as a,
119
- b,
120
- _ as c,
121
- y as d,
122
- E as e,
123
- P as f,
124
- U as g,
125
- l as u
126
- };
127
- //# sourceMappingURL=FormStack-CxiZhx1n.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormStack-CxiZhx1n.js","sources":["../src/components/form/Form.tsx","../src/components/form/components/form-field/FormField.tsx","../src/components/form/components/form-stack/FormStack.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport {\r\n\tController,\r\n\tFormProvider,\r\n\tuseFormContext,\r\n\ttype ControllerProps,\r\n\ttype FieldPath,\r\n\ttype FieldValues\r\n} from \"react-hook-form\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FieldLabel } from \"../label/field-label/FieldLabel\";\r\n\r\nconst formStyle = tv({\r\n\tbase: \"rounded-md border border-secondary-border bg-secondary-bg\"\r\n});\r\n\r\n/**\r\n * Основной контейнер формы\r\n */\r\nconst Form = <T extends FieldValues>({\r\n\tclassName,\r\n\tasChild,\r\n\t...props\r\n}: React.ComponentProps<typeof FormProvider<T>> & {\r\n\t/** Дополнительные классы */\r\n\tclassName?: string;\r\n\t/** Использовать ли дочерний элемент как корневой */\r\n\tasChild?: boolean;\r\n}) => {\r\n\tconst Comp = asChild ? Slot : \"div\";\r\n\treturn (\r\n\t\t<Comp className={formStyle({ className })}>\r\n\t\t\t<FormProvider {...props} />\r\n\t\t</Comp>\r\n\t);\r\n};\r\n\r\ntype FormFieldContextValue<\r\n\tTFieldValues extends FieldValues = FieldValues,\r\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n> = {\r\n\tname: TName;\r\n};\r\n\r\nconst FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue);\r\n\r\n/**\r\n * Поле формы с валидацией\r\n */\r\n\r\nconst FormField = <\r\n\tTFieldValues extends FieldValues = FieldValues,\r\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n>({\r\n\t...props\r\n}: ControllerProps<TFieldValues, TName>) => {\r\n\treturn (\r\n\t\t<FormFieldContext.Provider value={{ name: props.name }}>\r\n\t\t\t<Controller {...props} />\r\n\t\t</FormFieldContext.Provider>\r\n\t);\r\n};\r\n\r\nconst useFormField = () => {\r\n\tconst fieldContext = React.useContext(FormFieldContext);\r\n\tconst itemContext = React.useContext(FormItemContext);\r\n\tconst { getFieldState, formState } = useFormContext();\r\n\r\n\tconst fieldState = getFieldState(fieldContext.name, formState);\r\n\r\n\tif (!fieldContext) {\r\n\t\tthrow new Error(\"useFormField should be used within <FormField>\");\r\n\t}\r\n\r\n\tconst { id } = itemContext;\r\n\r\n\treturn {\r\n\t\tid,\r\n\t\tname: fieldContext.name,\r\n\t\tformItemId: `${id}-form-item`,\r\n\t\tformDescriptionId: `${id}-form-item-description`,\r\n\t\tformMessageId: `${id}-form-item-message`,\r\n\t\t...fieldState\r\n\t};\r\n};\r\n\r\ntype FormItemContextValue = {\r\n\tid: string;\r\n};\r\n\r\nconst FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue);\r\n\r\nconst formItemStyle = tv({\r\n\tbase: \"space-y-2\"\r\n});\r\n\r\n/**\r\n * Контейнер для элементов формы\r\n */\r\nconst FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\tconst id = React.useId();\r\n\r\n\t\treturn (\r\n\t\t\t<FormItemContext.Provider value={{ id }}>\r\n\t\t\t\t<div ref={ref} className={formItemStyle({ className })} {...props} />\r\n\t\t\t</FormItemContext.Provider>\r\n\t\t);\r\n\t}\r\n);\r\nFormItem.displayName = \"FormItem\";\r\n\r\ninterface FormLabelProps extends React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> {\r\n\t/** Обязательное ли поле */\r\n\trequired?: boolean;\r\n}\r\n\r\n/**\r\n * Лейбл для поля формы\r\n */\r\nconst FormLabel = React.forwardRef<React.ElementRef<typeof LabelPrimitive.Root>, FormLabelProps>(\r\n\t({ className, required, ...props }, ref) => {\r\n\t\tconst { formItemId } = useFormField();\r\n\r\n\t\treturn <FieldLabel required={required} ref={ref} className={className} htmlFor={formItemId} {...props} />;\r\n\t}\r\n);\r\nFormLabel.displayName = \"FormLabel\";\r\n\r\n/**\r\n * Контрол для поля формы\r\n */\r\nconst FormControl = React.forwardRef<React.ElementRef<typeof Slot>, React.ComponentPropsWithoutRef<typeof Slot>>(\r\n\t({ ...props }, ref) => {\r\n\t\tconst { error, formItemId, formDescriptionId, formMessageId } = useFormField();\r\n\r\n\t\treturn (\r\n\t\t\t<Slot\r\n\t\t\t\tref={ref}\r\n\t\t\t\tid={formItemId}\r\n\t\t\t\taria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\r\n\t\t\t\taria-invalid={!!error}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\nFormControl.displayName = \"FormControl\";\r\n\r\nconst formMessageStyle = tv({\r\n\tbase: \"text-[0.8rem] font-medium text-destructive\"\r\n});\r\n\r\n/**\r\n * Сообщение об ошибке\r\n */\r\nconst FormMessage = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\tconst { error, formMessageId } = useFormField();\r\n\t\tconst body = error ? String(error?.message ?? \"\") : children;\r\n\r\n\t\tif (!body) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<p ref={ref} id={formMessageId} className={formMessageStyle({ className })} {...props}>\r\n\t\t\t\t{body}\r\n\t\t\t</p>\r\n\t\t);\r\n\t}\r\n);\r\nFormMessage.displayName = \"FormMessage\";\r\n\r\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormMessage, FormField as FormFieldControl };\r\n","import * as React from \"react\";\r\nimport {\r\n\tuseFormContext,\r\n\ttype FieldPath,\r\n\ttype FieldValues,\r\n\ttype ControllerRenderProps,\r\n\ttype UseFormStateReturn,\r\n\ttype ControllerFieldState,\r\n\tPath\r\n} from \"react-hook-form\";\r\nimport { FormFieldControl, FormItem, FormControl } from \"../../Form\";\r\nimport { Field, FieldLayout } from \"@/components/field/Field\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst formFieldStyles = tv({\r\n\tslots: {\r\n\t\tlabel: \"w-44\"\r\n\t}\r\n});\r\n\r\nexport type FormFieldControlRenderer<TFieldValues extends FieldValues = FieldValues> = (props: {\r\n\tfield: ControllerRenderProps<TFieldValues, Path<TFieldValues>>;\r\n\tfieldState: ControllerFieldState;\r\n\tformState: UseFormStateReturn<TFieldValues>;\r\n\treadonly?: boolean;\r\n}) => React.ReactNode;\r\n\r\nexport interface FormFieldProps<\r\n\tTFieldValues extends FieldValues = FieldValues,\r\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n> {\r\n\t/** Имя поля формы */\r\n\tname: TName;\r\n\t/** Заголовок поля (лейбл) */\r\n\ttitle: string;\r\n\t/** Описание поля */\r\n\tdescription?: string;\r\n\t/** Функция рендеринга контрола */\r\n\tcontrol: FormFieldControlRenderer<TFieldValues>;\r\n\t/** Является ли поле обязательным */\r\n\trequired?: boolean;\r\n\t/** Дополнительные классы */\r\n\tclassName?: string;\r\n\t/** Классы для лейбла */\r\n\tlabelClassName?: string;\r\n\t/** Поле только для чтения */\r\n\treadonly?: boolean;\r\n\t/** Вариант расположения элементов поля */\r\n\tlayout?: FieldLayout;\r\n}\r\n\r\n/**\r\n * Компонент FormField объединяет несколько компонентов формы в один блок\r\n * для упрощения создания консистентных форм.\r\n *\r\n * ### Варианты раскладки (layout):\r\n *\r\n * - **responsive** (по умолчанию): адаптивная раскладка с mobile-first подходом.\r\n * На мобильных устройствах - вертикальный лейаут, на десктопе (от lg breakpoint) - горизонтальный.\r\n *\r\n * - **horizontal**: принудительно горизонтальная раскладка на всех экранах.\r\n * Лейбл располагается слева от поля ввода.\r\n *\r\n * - **vertical**: принудительно вертикальная раскладка на всех экранах.\r\n * Лейбл располагается над полем ввода.\r\n *\r\n * Компонент обеспечивает согласованное расположение элементов формы,\r\n * включая лейбл, поле ввода, подсказку и сообщение об ошибке.\r\n *\r\n * @example\r\n * <FormField\r\n * name=\"username\"\r\n * title=\"Имя пользователя\"\r\n * description=\"Ваше публичное имя пользователя\"\r\n * required\r\n * control={({ field }) => (\r\n * <TextInput\r\n * placeholder=\"Введите имя пользователя\"\r\n * startIcon={<Icon icon={User} />}\r\n * {...field}\r\n * />\r\n * )}\r\n * />\r\n */\r\n\r\nexport function FormField<\r\n\tTFieldValues extends FieldValues = FieldValues,\r\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n>({\r\n\tname,\r\n\ttitle,\r\n\tdescription,\r\n\tcontrol,\r\n\trequired,\r\n\tclassName,\r\n\tlabelClassName,\r\n\treadonly,\r\n\tlayout = \"responsive\"\r\n}: FormFieldProps<TFieldValues, TName>) {\r\n\tconst form = useFormContext<TFieldValues>();\r\n\tconst styles = formFieldStyles();\r\n\r\n\treturn (\r\n\t\t<FormFieldControl\r\n\t\t\tcontrol={form.control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, fieldState, formState }) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<FormItem>\r\n\t\t\t\t\t\t<Field\r\n\t\t\t\t\t\t\ttitle={title}\r\n\t\t\t\t\t\t\tdescription={description}\r\n\t\t\t\t\t\t\trequired={required}\r\n\t\t\t\t\t\t\terror={fieldState.error?.message}\r\n\t\t\t\t\t\t\tlabelClassName={styles.label({ className: labelClassName })}\r\n\t\t\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t\t\treadonly={readonly}\r\n\t\t\t\t\t\t\tlayout={layout}\r\n\t\t\t\t\t\t\tcontrol={({ id, readonly }) => (\r\n\t\t\t\t\t\t\t\t<FormControl id={id}>{control({ field, fieldState, formState, readonly })}</FormControl>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormItem>\r\n\t\t\t\t);\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n}\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst formStackStyles = tv({\r\n\tbase: \"space-y-5 lg:space-y-4\"\r\n});\r\n\r\n/** Оболочка для группы полей формы с внутренними отступами */\r\nexport const FormStack = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={formStackStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFormStack.displayName = \"FormStack\";\r\n"],"names":["formStyle","tv","Form","className","asChild","props","jsx","Slot","FormProvider","FormFieldContext","React","FormField","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","formState","useFormContext","fieldState","id","formItemStyle","FormItem","ref","FormLabel","required","formItemId","FieldLabel","FormControl","error","formDescriptionId","formMessageId","formMessageStyle","FormMessage","children","body","formFieldStyles","name","title","description","control","labelClassName","readonly","layout","form","styles","FormFieldControl","field","Field","formStackStyles","FormStack"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Popover-Dz2eNsXh.js","sources":["../node_modules/.pnpm/@radix-ui+react-popover@1.1_3205396e68ca917639ebdf7a5c8fe165/node_modules/@radix-ui/react-popover/dist/index.mjs","../src/components/popover/Popover.tsx"],"sourcesContent":["\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport { usePortalContainer } from \"../portal-container\";\r\nimport { TriggerButton } from \"../button\";\r\nimport type { TriggerButtonProps } from \"../button/trigger-button/TriggerButton\";\r\n\r\nconst POPOVER_ANATOMY = [\r\n\t\"z-50 w-72 outline-hidden\",\r\n\t\"origin-(--radix-popover-content-transform-origin)\",\r\n\t\"data-[state=open]:animate-in data-[state=closed]:animate-out\",\r\n\t\"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n\t\"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\r\n\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\r\n\t\"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\r\n];\r\n\r\nconst popoverStyles = tv({\r\n\tbase: [\r\n\t\t...POPOVER_ANATOMY,\r\n\t\t\"rounded-lg border border-secondary-border bg-secondary-bg p-4 text-popover-foreground shadow-soft-md\"\r\n\t]\r\n});\r\n\r\nconst glassPopoverStyles = tv({\r\n\tbase: [\r\n\t\t...POPOVER_ANATOMY,\r\n\t\t\"backdrop-glass-regular rounded-2xl bg-alpha-40 p-2 text-popover-foreground shadow-glass-md\"\r\n\t]\r\n});\r\n\r\ntype PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\r\n\t/**\r\n\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\r\n\t * для поиска PortalContainer\r\n\t */\r\n\tportalContainer?: HTMLElement;\r\n};\r\n\r\n/**\r\n * Корневой компонент Popover, который оборачивает всю функциональность всплывающего окна.\r\n * Построен на основе Radix UI Popover primitive.\r\n */\r\nconst Popover = PopoverPrimitive.Root;\r\n\r\n/**\r\n * Элемент-триггер, который открывает всплывающее окно при клике.\r\n */\r\nconst PopoverTrigger = PopoverPrimitive.Trigger;\r\n\r\n/**\r\n * Элемент-якорь, относительно которого позиционируется всплывающее окно.\r\n */\r\nconst PopoverAnchor = PopoverPrimitive.Anchor;\r\n\r\n/**\r\n * Компонент содержимого всплывающего окна.\r\n */\r\nconst PopoverContent = React.forwardRef<React.ElementRef<typeof PopoverPrimitive.Content>, PopoverContentProps>(\r\n\t({ className, align = \"center\", sideOffset = 4, portalContainer, ...props }, ref) => {\r\n\t\tconst { variant } = useComponentVariant();\r\n\t\tconst container = usePortalContainer(portalContainer);\r\n\t\tconst contentClassName = variant === \"glass\" ? glassPopoverStyles({ className }) : popoverStyles({ className });\r\n\t\treturn (\r\n\t\t\t<PopoverPrimitive.Portal container={container}>\r\n\t\t\t\t<PopoverPrimitive.Content\r\n\t\t\t\t\t// Фикс скроллинга внутри Popover когда он находится в Dialog\r\n\t\t\t\t\t// RemoveScroll в Dialog блокирует прокрутку body, но может блокировать и вложенные элементы\r\n\t\t\t\t\t// stopPropagation предотвращает всплытие событий скроллинга к заблокированному body\r\n\t\t\t\t\t// https://github.com/radix-ui/primitives/issues/1159\r\n\t\t\t\t\tonWheel={(e) => {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonTouchMove={(e) => {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\talign={align}\r\n\t\t\t\t\tsideOffset={sideOffset}\r\n\t\t\t\t\tclassName={contentClassName}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\t\t\t</PopoverPrimitive.Portal>\r\n\t\t);\r\n\t}\r\n);\r\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\r\n\r\n/**\r\n * Компонент-обертка для использования TriggerButton в качестве триггера поповера\r\n */\r\nconst PopoverTriggerButton = React.forwardRef<\r\n\tReact.ElementRef<typeof PopoverTrigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof PopoverTrigger> & Omit<TriggerButtonProps, \"dataState\">\r\n>(({ children, ...props }, ref) => {\r\n\treturn (\r\n\t\t<PopoverTrigger asChild ref={ref}>\r\n\t\t\t<TriggerButton {...props}>{children}</TriggerButton>\r\n\t\t</PopoverTrigger>\r\n\t);\r\n});\r\n\r\nPopoverTriggerButton.displayName = \"PopoverTriggerButton\";\r\n\r\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverTriggerButton };\r\n"],"names":["POPOVER_NAME","createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","hasCustomAnchor","setHasCustomAnchor","open","setOpen","useControllableState","jsx","PopperPrimitive.Root","useId","prevOpen","ANCHOR_NAME","PopoverAnchor","forwardedRef","anchorProps","context","onCustomAnchorAdd","onCustomAnchorRemove","PopperPrimitive.Anchor","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","getState","composeEventHandlers","PORTAL_NAME","PortalProvider","usePortalContext","PopoverPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","PopoverContent","portalContext","contentProps","PopoverContentModal","PopoverContentNonModal","Slot","createSlot","contentRef","composedRefs","isRightClickOutsideRef","content","hideOthers","RemoveScroll","PopoverContentImpl","event","originalEvent","ctrlLeftClick","isRightClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","target","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","useFocusGuards","FocusScope","DismissableLayer","PopperPrimitive.Content","CLOSE_NAME","PopoverClose","closeProps","ARROW_NAME","PopoverArrow","arrowProps","PopperPrimitive.Arrow","Root2","Anchor2","Trigger","Portal","Content2","POPOVER_ANATOMY","popoverStyles","tv","glassPopoverStyles","PopoverPrimitive.Root","PopoverPrimitive.Trigger","PopoverPrimitive.Anchor","className","align","sideOffset","portalContainer","ref","variant","useComponentVariant","usePortalContainer","contentClassName","PopoverPrimitive.Portal","PopoverPrimitive.Content","e","PopoverTriggerButton","TriggerButton"],"mappings":";;;;;;;;;;;;;;;;AAqBA,IAAIA,IAAe,WACf,CAACC,GAAsBC,EAAkB,IAAIC,EAAmBH,GAAc;AAAA,EAChFI;AACF,CAAC,GACGC,IAAiBD,EAAmB,GACpC,CAACE,IAAiBC,CAAiB,IAAIN,EAAqBD,CAAY,GACxEQ,IAAU,CAACC,MAAU;AACvB,QAAM;AAAA,IACJ,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAMC;AAAA,IACN,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,EACZ,IAAMN,GACEO,IAAcX,EAAeK,CAAc,GAC3CO,IAAaC,EAAM,OAAO,IAAI,GAC9B,CAACC,GAAiBC,CAAkB,IAAIF,EAAM,SAAS,EAAK,GAC5D,CAACG,GAAMC,CAAO,IAAIC,EAAqB;AAAA,IAC3C,MAAMX;AAAA,IACN,aAAaC,KAAe;AAAA,IAC5B,UAAUC;AAAA,IACV,QAAQd;AAAA,EACZ,CAAG;AACD,SAAuB,gBAAAwB,EAAIC,GAAsB,EAAE,GAAGT,GAAa,UAA0B,gBAAAQ;AAAA,IAC3FlB;AAAA,IACA;AAAA,MACE,OAAOI;AAAA,MACP,WAAWgB,EAAO;AAAA,MAClB,YAAAT;AAAA,MACA,MAAAI;AAAA,MACA,cAAcC;AAAA,MACd,cAAcJ,EAAM,YAAY,MAAMI,EAAQ,CAACK,MAAa,CAACA,CAAQ,GAAG,CAACL,CAAO,CAAC;AAAA,MACjF,iBAAAH;AAAA,MACA,mBAAmBD,EAAM,YAAY,MAAME,EAAmB,EAAI,GAAG,EAAE;AAAA,MACvE,sBAAsBF,EAAM,YAAY,MAAME,EAAmB,EAAK,GAAG,EAAE;AAAA,MAC3E,OAAAL;AAAA,MACA,UAAAJ;AAAA,IACN;AAAA,EACA,GAAK;AACL;AACAH,EAAQ,cAAcR;AACtB,IAAI4B,IAAc,iBACdC,IAAgBX,EAAM;AAAA,EACxB,CAACT,GAAOqB,MAAiB;AACvB,UAAM,EAAE,gBAAApB,GAAgB,GAAGqB,EAAW,IAAKtB,GACrCuB,IAAUzB,EAAkBqB,GAAalB,CAAc,GACvDM,IAAcX,EAAeK,CAAc,GAC3C,EAAE,mBAAAuB,GAAmB,sBAAAC,EAAoB,IAAKF;AACpD,WAAAd,EAAM,UAAU,OACde,EAAmB,GACZ,MAAMC,EAAsB,IAClC,CAACD,GAAmBC,CAAoB,CAAC,GACrB,gBAAAV,EAAIW,GAAwB,EAAE,GAAGnB,GAAa,GAAGe,GAAa,KAAKD,GAAc;AAAA,EAC5G;AACA;AACAD,EAAc,cAAcD;AAC5B,IAAIQ,IAAe,kBACfC,IAAiBnB,EAAM;AAAA,EACzB,CAACT,GAAOqB,MAAiB;AACvB,UAAM,EAAE,gBAAApB,GAAgB,GAAG4B,EAAY,IAAK7B,GACtCuB,IAAUzB,EAAkB6B,GAAc1B,CAAc,GACxDM,IAAcX,EAAeK,CAAc,GAC3C6B,IAAqBC,EAAgBV,GAAcE,EAAQ,UAAU,GACrES,IAA0B,gBAAAjB;AAAA,MAC9BkB,EAAU;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,iBAAiBV,EAAQ;AAAA,QACzB,iBAAiBA,EAAQ;AAAA,QACzB,cAAcW,EAASX,EAAQ,IAAI;AAAA,QACnC,GAAGM;AAAA,QACH,KAAKC;AAAA,QACL,SAASK,EAAqBnC,EAAM,SAASuB,EAAQ,YAAY;AAAA,MACzE;AAAA,IACK;AACD,WAAOA,EAAQ,kBAAkBS,IAA0B,gBAAAjB,EAAIW,GAAwB,EAAE,SAAS,IAAM,GAAGnB,GAAa,UAAUyB,EAAO,CAAE;AAAA,EAC/I;AACA;AACAJ,EAAe,cAAcD;AAC7B,IAAIS,IAAc,iBACd,CAACC,IAAgBC,EAAgB,IAAI9C,EAAqB4C,GAAa;AAAA,EACzE,YAAY;AACd,CAAC,GACGG,IAAgB,CAACvC,MAAU;AAC7B,QAAM,EAAE,gBAAAC,GAAgB,YAAAuC,GAAY,UAAAtC,GAAU,WAAAuC,EAAW,IAAGzC,GACtDuB,IAAUzB,EAAkBsC,GAAanC,CAAc;AAC7D,SAAuB,gBAAAc,EAAIsB,IAAgB,EAAE,OAAOpC,GAAgB,YAAAuC,GAAY,UAA0B,gBAAAzB,EAAI2B,GAAU,EAAE,SAASF,KAAcjB,EAAQ,MAAM,UAA0B,gBAAAR,EAAI4B,GAAiB,EAAE,SAAS,IAAM,WAAAF,GAAW,UAAAvC,GAAU,EAAC,CAAE,EAAC,CAAE;AAC5P;AACAqC,EAAc,cAAcH;AAC5B,IAAIQ,IAAe,kBACfC,IAAiBpC,EAAM;AAAA,EACzB,CAACT,GAAOqB,MAAiB;AACvB,UAAMyB,IAAgBR,GAAiBM,GAAc5C,EAAM,cAAc,GACnE,EAAE,YAAAwC,IAAaM,EAAc,YAAY,GAAGC,EAAc,IAAG/C,GAC7DuB,IAAUzB,EAAkB8C,GAAc5C,EAAM,cAAc;AACpE,WAAuB,gBAAAe,EAAI2B,GAAU,EAAE,SAASF,KAAcjB,EAAQ,MAAM,UAAUA,EAAQ,QAAwB,gBAAAR,EAAIiC,IAAqB,EAAE,GAAGD,GAAc,KAAK1B,EAAc,CAAA,IAAoB,gBAAAN,EAAIkC,IAAwB,EAAE,GAAGF,GAAc,KAAK1B,EAAY,CAAE,EAAC,CAAE;AAAA,EAClR;AACA;AACAwB,EAAe,cAAcD;AAC7B,IAAIM,KAAOC,EAAW,6BAA6B,GAC/CH,KAAsBvC,EAAM;AAAA,EAC9B,CAACT,GAAOqB,MAAiB;AACvB,UAAME,IAAUzB,EAAkB8C,GAAc5C,EAAM,cAAc,GAC9DoD,IAAa3C,EAAM,OAAO,IAAI,GAC9B4C,IAAetB,EAAgBV,GAAc+B,CAAU,GACvDE,IAAyB7C,EAAM,OAAO,EAAK;AACjD,WAAAA,EAAM,UAAU,MAAM;AACpB,YAAM8C,IAAUH,EAAW;AAC3B,UAAIG,EAAS,QAAOC,EAAWD,CAAO;AAAA,IACvC,GAAE,EAAE,GACkB,gBAAAxC,EAAI0C,GAAc,EAAE,IAAIP,IAAM,gBAAgB,IAAM,UAA0B,gBAAAnC;AAAA,MACnG2C;AAAA,MACA;AAAA,QACE,GAAG1D;AAAA,QACH,KAAKqD;AAAA,QACL,WAAW9B,EAAQ;AAAA,QACnB,6BAA6B;AAAA,QAC7B,kBAAkBY,EAAqBnC,EAAM,kBAAkB,CAAC2D,MAAU;AACxE,UAAAA,EAAM,eAAgB,GACjBL,EAAuB,WAAS/B,EAAQ,WAAW,SAAS,MAAO;AAAA,QAClF,CAAS;AAAA,QACD,sBAAsBY;AAAA,UACpBnC,EAAM;AAAA,UACN,CAAC2D,MAAU;AACT,kBAAMC,IAAgBD,EAAM,OAAO,eAC7BE,IAAgBD,EAAc,WAAW,KAAKA,EAAc,YAAY,IACxEE,IAAeF,EAAc,WAAW,KAAKC;AACnD,YAAAP,EAAuB,UAAUQ;AAAA,UAClC;AAAA,UACD,EAAE,0BAA0B,GAAK;AAAA,QAClC;AAAA,QACD,gBAAgB3B;AAAA,UACdnC,EAAM;AAAA,UACN,CAAC2D,MAAUA,EAAM,eAAgB;AAAA,UACjC,EAAE,0BAA0B,GAAK;AAAA,QAC3C;AAAA,MACA;AAAA,IACA,GAAO;AAAA,EACP;AACA,GACIV,KAAyBxC,EAAM;AAAA,EACjC,CAACT,GAAOqB,MAAiB;AACvB,UAAME,IAAUzB,EAAkB8C,GAAc5C,EAAM,cAAc,GAC9D+D,IAA0BtD,EAAM,OAAO,EAAK,GAC5CuD,IAA2BvD,EAAM,OAAO,EAAK;AACnD,WAAuB,gBAAAM;AAAA,MACrB2C;AAAA,MACA;AAAA,QACE,GAAG1D;AAAA,QACH,KAAKqB;AAAA,QACL,WAAW;AAAA,QACX,6BAA6B;AAAA,QAC7B,kBAAkB,CAACsC,MAAU;AAC3B,UAAA3D,EAAM,mBAAmB2D,CAAK,GACzBA,EAAM,qBACJI,EAAwB,WAASxC,EAAQ,WAAW,SAAS,MAAO,GACzEoC,EAAM,eAAgB,IAExBI,EAAwB,UAAU,IAClCC,EAAyB,UAAU;AAAA,QACpC;AAAA,QACD,mBAAmB,CAACL,MAAU;AAC5B,UAAA3D,EAAM,oBAAoB2D,CAAK,GAC1BA,EAAM,qBACTI,EAAwB,UAAU,IAC9BJ,EAAM,OAAO,cAAc,SAAS,kBACtCK,EAAyB,UAAU;AAGvC,gBAAMC,IAASN,EAAM;AAErB,UADwBpC,EAAQ,WAAW,SAAS,SAAS0C,CAAM,KAC9CN,EAAM,eAAgB,GACvCA,EAAM,OAAO,cAAc,SAAS,aAAaK,EAAyB,WAC5EL,EAAM,eAAgB;AAAA,QAElC;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA,GACID,IAAqBjD,EAAM;AAAA,EAC7B,CAACT,GAAOqB,MAAiB;AACvB,UAAM;AAAA,MACJ,gBAAApB;AAAA,MACA,WAAAiE;AAAA,MACA,iBAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,6BAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,sBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,GAAG1B;AAAA,IACT,IAAQ/C,GACEuB,IAAUzB,EAAkB8C,GAAc3C,CAAc,GACxDM,IAAcX,EAAeK,CAAc;AACjD,WAAAyE,EAAgB,GACO,gBAAA3D;AAAA,MACrB4D;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,MAAM;AAAA,QACN,SAAST;AAAA,QACT,kBAAkBC;AAAA,QAClB,oBAAoBC;AAAA,QACpB,UAA0B,gBAAArD;AAAA,UACxB6D;AAAA,UACA;AAAA,YACE,SAAS;AAAA,YACT,6BAAAP;AAAA,YACA,mBAAAI;AAAA,YACA,iBAAAH;AAAA,YACA,sBAAAC;AAAA,YACA,gBAAAC;AAAA,YACA,WAAW,MAAMjD,EAAQ,aAAa,EAAK;AAAA,YAC3C,UAA0B,gBAAAR;AAAA,cACxB8D;AAAAA,cACA;AAAA,gBACE,cAAc3C,EAASX,EAAQ,IAAI;AAAA,gBACnC,MAAM;AAAA,gBACN,IAAIA,EAAQ;AAAA,gBACZ,GAAGhB;AAAA,gBACH,GAAGwC;AAAA,gBACH,KAAK1B;AAAA,gBACL,OAAO;AAAA,kBACL,GAAG0B,EAAa;AAAA,kBAGd,4CAA4C;AAAA,kBAC5C,2CAA2C;AAAA,kBAC3C,4CAA4C;AAAA,kBAC5C,iCAAiC;AAAA,kBACjC,kCAAkC;AAAA,gBAEtD;AAAA,cACA;AAAA,YACA;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA,GACI+B,IAAa,gBACbC,KAAetE,EAAM;AAAA,EACvB,CAACT,GAAOqB,MAAiB;AACvB,UAAM,EAAE,gBAAApB,GAAgB,GAAG+E,EAAU,IAAKhF,GACpCuB,IAAUzB,EAAkBgF,GAAY7E,CAAc;AAC5D,WAAuB,gBAAAc;AAAA,MACrBkB,EAAU;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,GAAG+C;AAAA,QACH,KAAK3D;AAAA,QACL,SAASc,EAAqBnC,EAAM,SAAS,MAAMuB,EAAQ,aAAa,EAAK,CAAC;AAAA,MACtF;AAAA,IACK;AAAA,EACL;AACA;AACAwD,GAAa,cAAcD;AAC3B,IAAIG,KAAa,gBACbC,KAAezE,EAAM;AAAA,EACvB,CAACT,GAAOqB,MAAiB;AACvB,UAAM,EAAE,gBAAApB,GAAgB,GAAGkF,EAAU,IAAKnF,GACpCO,IAAcX,EAAeK,CAAc;AACjD,WAAuB,gBAAAc,EAAIqE,GAAuB,EAAE,GAAG7E,GAAa,GAAG4E,GAAY,KAAK9D,GAAc;AAAA,EAC1G;AACA;AACA6D,GAAa,cAAcD;AAC3B,SAAS/C,EAAStB,GAAM;AACtB,SAAOA,IAAO,SAAS;AACzB;AACA,IAAIyE,KAAQtF,GACRuF,KAAUlE,GACVmE,KAAU3D,GACV4D,KAASjD,GACTkD,IAAW5C;ACnSf,MAAM6C,IAAkB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAEMC,KAAgBC,EAAG;AAAA,EACxB,MAAM;AAAA,IACL,GAAGF;AAAA,IACH;AAAA,EAAA;AAEF,CAAC,GAEKG,KAAqBD,EAAG;AAAA,EAC7B,MAAM;AAAA,IACL,GAAGF;AAAA,IACH;AAAA,EAAA;AAEF,CAAC,GAcK3F,KAAU+F,IAKVlE,KAAiBmE,IAKjB3E,KAAgB4E,IAKhBnD,KAAiBpC,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAwF,GAAW,OAAAC,IAAQ,UAAU,YAAAC,IAAa,GAAG,iBAAAC,GAAiB,GAAGpG,EAAM,GAAGqG,MAAQ;AAC9E,UAAA,EAAE,SAAAC,EAAQ,IAAIC,GAAoB,GAClC9D,IAAY+D,GAAmBJ,CAAe,GAC9CK,IAAmBH,MAAY,UAAUT,GAAmB,EAAE,WAAAI,EAAU,CAAC,IAAIN,GAAc,EAAE,WAAAM,GAAW;AAC9G,WACE,gBAAAlF,EAAA2F,IAAA,EAAwB,WAAAjE,GACxB,UAAA,gBAAA1B;AAAA,MAAC4F;AAAAA,MAAA;AAAA,QAKA,SAAS,CAACC,MAAM;AACf,UAAAA,EAAE,gBAAgB;AAAA,QACnB;AAAA,QACA,aAAa,CAACA,MAAM;AACnB,UAAAA,EAAE,gBAAgB;AAAA,QACnB;AAAA,QACA,KAAAP;AAAA,QACA,OAAAH;AAAA,QACA,YAAAC;AAAA,QACA,WAAWM;AAAA,QACV,GAAGzG;AAAA,MAAA;AAAA,IAAA,GAEN;AAAA,EAAA;AAGH;AACA6C,GAAe,cAAc8D,EAAyB;AAKhD,MAAAE,KAAuBpG,EAAM,WAGjC,CAAC,EAAE,UAAAP,GAAU,GAAGF,EAAM,GAAGqG,MAEzB,gBAAAtF,EAACa,IAAe,EAAA,SAAO,IAAC,KAAAyE,GACvB,4BAACS,IAAe,EAAA,GAAG9G,GAAQ,UAAAE,EAAA,CAAS,EACrC,CAAA,CAED;AAED2G,GAAqB,cAAc;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Sheet-aLBPtE1k.js","sources":["../src/components/sheet/Sheet.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { X } from \"lucide-react\";\r\nimport { overlayStyles, OverlayVariants } from \"../overlay/Overlay\";\r\nimport { usePortalContainer } from \"../portal-container\";\r\nimport { Icon } from \"../icon\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst Sheet = SheetPrimitive.Root;\r\n\r\nconst SheetTrigger = SheetPrimitive.Trigger;\r\n\r\nconst SheetClose = SheetPrimitive.Close;\r\n\r\nconst SheetPortal = SheetPrimitive.Portal;\r\n\r\nconst sheetOverlayStyles = tv({ extend: overlayStyles });\r\n\r\ninterface SheetOverlayProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>, OverlayVariants {}\r\n\r\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, SheetOverlayProps>(\r\n\t({ className, blur, type, ...props }, ref) => (\r\n\t\t<SheetPrimitive.Overlay className={sheetOverlayStyles({ blur, type, className })} {...props} ref={ref} />\r\n\t)\r\n);\r\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\r\n\r\nconst sheetCloseButtonStyles = tv({\r\n\tbase: \"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\"\r\n});\r\n\r\nconst SheetCloseButton = React.forwardRef<\r\n\tReact.ElementRef<typeof SheetPrimitive.Close>,\r\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Close>\r\n>(({ className, ...props }, ref) => (\r\n\t<SheetPrimitive.Close ref={ref} className={sheetCloseButtonStyles({ className })} {...props}>\r\n\t\t<Icon icon={X} />\r\n\t\t<span className=\"sr-only\">Close</span>\r\n\t</SheetPrimitive.Close>\r\n));\r\n\r\nSheetCloseButton.displayName = SheetPrimitive.Close.displayName;\r\n\r\nexport interface SheetContentVariants {\r\n\tside?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n}\r\n\r\nconst sheetContentStyles = tv({\r\n\tbase: \"shadow-soft-lg fixed z-50 flex flex-col bg-background transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\r\n\tvariants: {\r\n\t\tside: {\r\n\t\t\ttop: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\r\n\t\t\tbottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\r\n\t\t\tleft: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\r\n\t\t\tright: \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<SheetContentVariants>,\r\n\tdefaultVariants: {\r\n\t\tside: \"right\"\r\n\t}\r\n});\r\n\r\ninterface SheetContentProps\r\n\textends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\r\n\t\tSheetContentVariants {\r\n\tshowCloseButton?: boolean;\r\n\toverlayType?: OverlayVariants[\"type\"];\r\n\toverlayBlur?: OverlayVariants[\"blur\"];\r\n\t/**\r\n\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\r\n\t * для поиска PortalContainer\r\n\t */\r\n\tportalContainer?: HTMLElement;\r\n}\r\n\r\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tside = \"right\",\r\n\t\t\tclassName,\r\n\t\t\tchildren,\r\n\t\t\tshowCloseButton = true,\r\n\t\t\toverlayType,\r\n\t\t\toverlayBlur,\r\n\t\t\tportalContainer,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = sheetContentStyles({ side, className });\r\n\t\tconst container = usePortalContainer(portalContainer);\r\n\r\n\t\treturn (\r\n\t\t\t<SheetPortal container={container}>\r\n\t\t\t\t<SheetOverlay type={overlayType} blur={overlayBlur} />\r\n\t\t\t\t<SheetPrimitive.Content ref={ref} className={styles} {...props}>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\t{showCloseButton && <SheetCloseButton />}\r\n\t\t\t\t</SheetPrimitive.Content>\r\n\t\t\t</SheetPortal>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSheetContent.displayName = SheetPrimitive.Content.displayName;\r\n\r\nconst sheetHeaderStyles = tv({\r\n\tbase: \"flex flex-col space-y-2 p-6 text-center sm:text-left\"\r\n});\r\n\r\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={sheetHeaderStyles({ className })} {...props} />\r\n);\r\n\r\nSheetHeader.displayName = \"SheetHeader\";\r\n\r\nconst sheetFooterStyles = tv({\r\n\tbase: \"flex flex-col-reverse p-6 pt-0 sm:flex-row sm:justify-end sm:space-x-2\"\r\n});\r\n\r\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={sheetFooterStyles({ className })} {...props} />\r\n);\r\n\r\nSheetFooter.displayName = \"SheetFooter\";\r\n\r\nconst sheetTitleStyles = tv({\r\n\tbase: \"text-lg font-semibold text-foreground\"\r\n});\r\n\r\nconst SheetTitle = React.forwardRef<\r\n\tReact.ElementRef<typeof SheetPrimitive.Title>,\r\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n\t<SheetPrimitive.Title ref={ref} className={sheetTitleStyles({ className })} {...props} />\r\n));\r\n\r\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\r\n\r\nconst sheetDescriptionStyles = tv({\r\n\tbase: \"text-sm text-muted-foreground\"\r\n});\r\n\r\nconst SheetDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof SheetPrimitive.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n\t<SheetPrimitive.Description ref={ref} className={sheetDescriptionStyles({ className })} {...props} />\r\n));\r\n\r\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\r\n\r\nexport {\r\n\tSheet,\r\n\tSheetPortal,\r\n\tSheetOverlay,\r\n\tSheetTrigger,\r\n\tSheetClose,\r\n\tSheetContent,\r\n\tSheetHeader,\r\n\tSheetFooter,\r\n\tSheetTitle,\r\n\tSheetDescription\r\n};\r\n"],"names":["Sheet","SheetPrimitive.Root","SheetTrigger","SheetPrimitive.Trigger","SheetClose","SheetPrimitive.Close","SheetPortal","SheetPrimitive.Portal","sheetOverlayStyles","tv","overlayStyles","SheetOverlay","React","className","blur","type","props","ref","jsx","SheetPrimitive.Overlay","sheetCloseButtonStyles","SheetCloseButton","jsxs","Icon","X","sheetContentStyles","SheetContent","side","children","showCloseButton","overlayType","overlayBlur","portalContainer","styles","container","usePortalContainer","SheetPrimitive.Content","sheetHeaderStyles","SheetHeader","sheetFooterStyles","SheetFooter","sheetTitleStyles","SheetTitle","SheetPrimitive.Title","sheetDescriptionStyles","SheetDescription","SheetPrimitive.Description"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tooltip-DOgKy50D.js","sources":["../node_modules/.pnpm/@radix-ui+react-tooltip@1.2_c0a573e5fee67df1b7628ac6f2833e9e/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../src/components/tooltip/useTooltipContext.ts","../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\n\r\nexport type TooltipVariants = {\r\n\tfocus?: \"high\";\r\n};\r\n\r\nexport const TooltipContext = React.createContext<TooltipVariants>({});\r\n\r\nexport const useTooltipContext = () => {\r\n\tconst context = React.useContext(TooltipContext);\r\n\treturn context;\r\n};\r\n","import * as React from \"react\";\r\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Icon, IconProps } from \"../icon/Icon\";\r\nimport { Shortcut } from \"../shortcut\";\r\nimport { usePortalContainer } from \"../portal-container\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { TooltipContext, TooltipVariants, useTooltipContext } from \"./useTooltipContext\";\r\nimport { Text } from \"@/components/text\";\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider;\r\n\r\nconst Tooltip = TooltipPrimitive.Root;\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger;\r\n\r\nconst tooltipArrowStyles = tv({\r\n\tslots: {\r\n\t\tfill: \"fill-status-neutral-fg\",\r\n\t\tstroke: \"stroke-primary-border stroke-[0.5px]\",\r\n\t\tsvg: \"rotate-180\"\r\n\t},\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: {\r\n\t\t\t\tfill: \"fill-alpha-high-20\",\r\n\t\t\t\tstroke: \"stroke-none\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipArrowProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>;\r\n\r\nconst TooltipArrow = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Arrow>, TooltipArrowProps>(\r\n\t({ width, height, className, ...props }, ref) => {\r\n\t\tconst { focus } = useTooltipContext();\r\n\t\tconst styles = tooltipArrowStyles({ focus });\r\n\r\n\t\treturn (\r\n\t\t\t<TooltipPrimitive.Arrow ref={ref} asChild {...props}>\r\n\t\t\t\t<svg\r\n\t\t\t\t\twidth={width || \"10\"}\r\n\t\t\t\t\theight={height || \"5\"}\r\n\t\t\t\t\tviewBox=\"0 0 10 5\"\r\n\t\t\t\t\tfill=\"none\"\r\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\tclassName={styles.svg({ className })}\r\n\t\t\t\t>\r\n\t\t\t\t\t<path d=\"M5.00082 0.248638L10 5.99523L0 6.00001L5.00082 0.248638Z\" className={styles.fill()} />\r\n\t\t\t\t\t<path\r\n\t\t\t\t\t\td=\"M9.57422 5.25L5.37732 0.433047C5.17793 0.204195 4.82228 0.204345 4.62308 0.433365L0.433594 5.25\"\r\n\t\t\t\t\t\tclassName={styles.stroke()}\r\n\t\t\t\t\t\tstrokeLinecap=\"round\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</svg>\r\n\t\t\t</TooltipPrimitive.Arrow>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\r\n\r\nconst tooltipContentStyles = tv({\r\n\tbase: [\r\n\t\t\"z-50 rounded-lg border-[0.5px] px-2 py-1.5 text-xs backdrop-blur animate-in fade-in-0 zoom-in-95\",\r\n\t\t\"border-primary-border bg-alpha-30 text-primary-fg shadow-soft-sm\",\r\n\t\t\"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\r\n\t\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\r\n\t],\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"border-0 bg-alpha-high-20 text-inverse-primary-fg shadow-soft-base\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\nexport type TooltipContentProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> &\r\n\tTooltipVariants & {\r\n\t\t/**\r\n\t\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\r\n\t\t * для поиска PortalContainer\r\n\t\t */\r\n\t\tportalContainer?: HTMLElement;\r\n\t};\r\n\r\nconst TooltipContent = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Content>, TooltipContentProps>(\r\n\t({ className, sideOffset = 8, portalContainer, focus, ...props }, ref) => {\r\n\t\tconst container = usePortalContainer(portalContainer);\r\n\r\n\t\treturn (\r\n\t\t\t<TooltipContext.Provider value={{ focus }}>\r\n\t\t\t\t<TooltipPrimitive.Portal container={container}>\r\n\t\t\t\t\t<TooltipPrimitive.Content\r\n\t\t\t\t\t\tref={ref}\r\n\t\t\t\t\t\tsideOffset={sideOffset}\r\n\t\t\t\t\t\tclassName={tooltipContentStyles({ className, focus })}\r\n\t\t\t\t\t\t{...props}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</TooltipPrimitive.Portal>\r\n\t\t\t</TooltipContext.Provider>\r\n\t\t);\r\n\t}\r\n);\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\r\n\r\nconst tooltipTitleStyles = tv({\r\n\tbase: \"text-sm font-medium text-primary-fg\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-primary-fg\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipTitleProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nconst TooltipTitle = React.forwardRef<HTMLDivElement, TooltipTitleProps>(({ className, children, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn (\r\n\t\t<div ref={ref} className={tooltipTitleStyles({ className, focus })} {...props}>\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n});\r\nTooltipTitle.displayName = \"TooltipTitle\";\r\n\r\nconst tooltipTextStyles = tv({\r\n\tbase: \"\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-secondary-fg\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipTextProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nconst TooltipText = React.forwardRef<HTMLDivElement, TooltipTextProps>(({ className, children, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn (\r\n\t\t<Text ref={ref} size=\"xs\" className={tooltipTextStyles({ className, focus })} {...props}>\r\n\t\t\t{children}\r\n\t\t</Text>\r\n\t);\r\n});\r\nTooltipText.displayName = \"TooltipText\";\r\n\r\nconst tooltipIconStyles = tv({\r\n\tbase: \"shrink-0 text-xs text-primary-fg\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-primary-fg\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipIconProps = IconProps;\r\n\r\nconst TooltipIcon = React.forwardRef<SVGSVGElement, TooltipIconProps>(({ className, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn <Icon size=\"lg\" className={tooltipIconStyles({ className, focus })} ref={ref} {...props} />;\r\n});\r\nTooltipIcon.displayName = \"TooltipIcon\";\r\n\r\nconst tooltipShortcutStyles = tv({\r\n\tbase: \"h-auto p-0 text-xs text-muted\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-secondary-fg opacity-70\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipShortcutProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nconst TooltipShortcut = React.forwardRef<HTMLDivElement, TooltipShortcutProps>(({ className, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn <Shortcut variant=\"ghost\" className={tooltipShortcutStyles({ className, focus })} ref={ref} {...props} />;\r\n});\r\nTooltipShortcut.displayName = \"TooltipShortcut\";\r\n\r\nexport {\r\n\tTooltip,\r\n\tTooltipTrigger,\r\n\tTooltipContent,\r\n\tTooltipArrow,\r\n\tTooltipProvider,\r\n\tTooltipTitle,\r\n\tTooltipText,\r\n\tTooltipIcon,\r\n\tTooltipShortcut\r\n};\r\n"],"names":["createTooltipContext","createTooltipScope","createContextScope","createPopperScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","props","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","children","isOpenDelayedRef","React","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","jsx","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentId","useId","openTimerRef","wasOpenDelayedRef","open","setOpen","useControllableState","open2","stateAttribute","handleOpen","handleClose","handleDelayedOpen","PopperPrimitive.Root","TRIGGER_NAME","TooltipTrigger","forwardedRef","triggerProps","context","ref","composedRefs","useComposedRefs","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","PopperPrimitive.Anchor","Primitive","composeEventHandlers","event","PORTAL_NAME","PortalProvider","usePortalContext","TooltipPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","TooltipContent","portalContext","side","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","onClose","content","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","exitSide","getExitSideFromRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","target","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","Slottable","createSlottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","DismissableLayer","jsxs","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","ARROW_NAME","TooltipArrow","arrowProps","PopperPrimitive.Arrow","point","rect","top","bottom","right","left","padding","polygon","x","y","inside","j","ii","jj","xi","yi","xj","yj","points","newPoints","a","b","getHullPresorted","upperHull","i","p","q","r","lowerHull","Provider","Root3","Trigger","Portal","Content2","Arrow2","TooltipContext","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","tooltipArrowStyles","tv","width","height","className","focus","styles","TooltipPrimitive.Arrow","tooltipContentStyles","sideOffset","portalContainer","usePortalContainer","TooltipPrimitive.Portal","TooltipPrimitive.Content","tooltipTitleStyles","TooltipTitle","tooltipTextStyles","TooltipText","Text","tooltipIconStyles","TooltipIcon","Icon","tooltipShortcutStyles","TooltipShortcut","Shortcut"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,68 +0,0 @@
1
- function s(t) {
2
- return (n = {}) => {
3
- const e = n.width ? String(n.width) : t.defaultWidth;
4
- return t.formats[e] || t.formats[t.defaultWidth];
5
- };
6
- }
7
- function b(t) {
8
- return (n, e) => {
9
- const l = e?.context ? String(e.context) : "standalone";
10
- let r;
11
- if (l === "formatting" && t.formattingValues) {
12
- const a = t.defaultFormattingWidth || t.defaultWidth, u = e?.width ? String(e.width) : a;
13
- r = t.formattingValues[u] || t.formattingValues[a];
14
- } else {
15
- const a = t.defaultWidth, u = e?.width ? String(e.width) : t.defaultWidth;
16
- r = t.values[u] || t.values[a];
17
- }
18
- const c = t.argumentCallback ? t.argumentCallback(n) : n;
19
- return r[c];
20
- };
21
- }
22
- function k(t) {
23
- return (n, e = {}) => {
24
- const l = e.width, r = l && t.matchPatterns[l] || t.matchPatterns[t.defaultMatchWidth], c = n.match(r);
25
- if (!c)
26
- return null;
27
- const a = c[0], u = l && t.parsePatterns[l] || t.parsePatterns[t.defaultParseWidth], h = Array.isArray(u) ? m(u, (i) => i.test(a)) : (
28
- // [TODO] -- I challenge you to fix the type
29
- o(u, (i) => i.test(a))
30
- );
31
- let d;
32
- d = t.valueCallback ? t.valueCallback(h) : h, d = e.valueCallback ? (
33
- // [TODO] -- I challenge you to fix the type
34
- e.valueCallback(d)
35
- ) : d;
36
- const f = n.slice(a.length);
37
- return { value: d, rest: f };
38
- };
39
- }
40
- function o(t, n) {
41
- for (const e in t)
42
- if (Object.prototype.hasOwnProperty.call(t, e) && n(t[e]))
43
- return e;
44
- }
45
- function m(t, n) {
46
- for (let e = 0; e < t.length; e++)
47
- if (n(t[e]))
48
- return e;
49
- }
50
- function v(t) {
51
- return (n, e = {}) => {
52
- const l = n.match(t.matchPattern);
53
- if (!l) return null;
54
- const r = l[0], c = n.match(t.parsePattern);
55
- if (!c) return null;
56
- let a = t.valueCallback ? t.valueCallback(c[0]) : c[0];
57
- a = e.valueCallback ? e.valueCallback(a) : a;
58
- const u = n.slice(r.length);
59
- return { value: a, rest: u };
60
- };
61
- }
62
- export {
63
- b as a,
64
- s as b,
65
- k as c,
66
- v as d
67
- };
68
- //# sourceMappingURL=buildMatchPatternFn-d7GTeGl_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildMatchPatternFn-d7GTeGl_.js","sources":["../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js"],"sourcesContent":["export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n"],"names":["buildFormatLongFn","args","options","width","buildLocalizeFn","value","context","valuesArray","defaultWidth","index","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","key","findIndex","pattern","findKey","rest","object","predicate","array","buildMatchPatternFn","parseResult"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -1,10 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * Компонент-контейнер для портала с поддержкой изолированных стилей.
4
- *
5
- * Предоставляет обёртку с классом 'ui-kit' и data-атрибутом для плавающего контента
6
- * (Dialog, Dropdown, Select, Popover, Drawer, Tooltip, Sheet, AlertDialog).
7
- *
8
- * Следует использовать только если применяются изолированные стили.
9
- */
10
- export declare const PortalContainer: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -1,2 +0,0 @@
1
- export { PortalContainer } from './PortalContainer';
2
- export { usePortalContainer } from './usePortalContainer';
@@ -1,12 +0,0 @@
1
- type Listener = (mount: boolean) => void;
2
- /**
3
- * Простой EventEmitter для синхронизации PortalContainer и usePortalContainer
4
- */
5
- declare class PortalContainerEvents {
6
- private listeners;
7
- isContainerMounted: boolean;
8
- subscribe(listener: Listener): () => void;
9
- notify(mount?: boolean): void;
10
- }
11
- export declare const portalContainerEvents: PortalContainerEvents;
12
- export {};
@@ -1,11 +0,0 @@
1
- /**
2
- * Хук для определения контейнера портала.
3
- *
4
- * Если передан customContainer, возвращает его.
5
- * Иначе ищет элемент с атрибутом 'data-portal-container' — при условии,
6
- * что PortalContainer действительно смонтирован.
7
- *
8
- * @param customContainer - Кастомный контейнер для портала
9
- * @returns HTMLElement для портала или undefined
10
- */
11
- export declare const usePortalContainer: (customContainer?: HTMLElement | null) => HTMLElement | undefined;
@@ -1,2 +0,0 @@
1
- export * from './portal-container/index'
2
- export {}
@@ -1,14 +0,0 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import * as t from "react";
3
- import { c as f } from "../cn-dsXlqdJg.js";
4
- import { p as r } from "../usePortalContainer-B1xla842.js";
5
- import { u as d } from "../usePortalContainer-B1xla842.js";
6
- const s = t.forwardRef(
7
- ({ children: o, className: a, ...e }, n) => (t.useEffect(() => (r.notify(!0), () => r.notify(!1)), []), /* @__PURE__ */ i("div", { ref: n, className: f("ui-kit fixed left-0 top-0", a), "data-portal-container": !0, ...e, children: o }))
8
- );
9
- s.displayName = "PortalContainer";
10
- export {
11
- s as PortalContainer,
12
- d as usePortalContainer
13
- };
14
- //# sourceMappingURL=portal-container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"portal-container.js","sources":["../../src/components/portal-container/PortalContainer.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { portalContainerEvents } from \"./portalContainerEvents\";\r\n\r\n/**\r\n * Компонент-контейнер для портала с поддержкой изолированных стилей.\r\n *\r\n * Предоставляет обёртку с классом 'ui-kit' и data-атрибутом для плавающего контента\r\n * (Dialog, Dropdown, Select, Popover, Drawer, Tooltip, Sheet, AlertDialog).\r\n *\r\n * Следует использовать только если применяются изолированные стили.\r\n */\r\nexport const PortalContainer = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<\"div\">>(\r\n\t({ children, className, ...props }, ref) => {\r\n\t\tReact.useEffect(() => {\r\n\t\t\tportalContainerEvents.notify(true);\r\n\t\t\treturn () => portalContainerEvents.notify(false);\r\n\t\t}, []);\r\n\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={cn(\"ui-kit fixed left-0 top-0\", className)} data-portal-container {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPortalContainer.displayName = \"PortalContainer\";\r\n"],"names":["PortalContainer","React","children","className","props","ref","portalContainerEvents","jsx","cn"],"mappings":";;;;;AAYO,MAAMA,IAAkBC,EAAM;AAAA,EACpC,CAAC,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAASC,OACnCJ,EAAM,UAAU,OACfK,EAAsB,OAAO,EAAI,GAC1B,MAAMA,EAAsB,OAAO,EAAK,IAC7C,EAAE,GAGH,gBAAAC,EAAA,OAAA,EAAI,KAAAF,GAAU,WAAWG,EAAG,6BAA6BL,CAAS,GAAG,yBAAqB,IAAE,GAAGC,GAC9F,UAAAF,EACF,CAAA;AAGH;AAEAF,EAAgB,cAAc;"}