lecom-ui 4.1.9 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +5 -0
  2. package/dist/_virtual/index.js +7 -0
  3. package/dist/components/Accordion/Accordion.js +40 -37
  4. package/dist/components/Button/Button.js +10 -9
  5. package/dist/components/Button/CustomButton.js +6 -5
  6. package/dist/components/Card/Card.js +7 -6
  7. package/dist/components/Checkbox/Checkbox.js +35 -30
  8. package/dist/components/CustomIcon/Icons/CadastroFacil.js +15 -5
  9. package/dist/components/CustomIcon/Icons/LogoLecom.js +15 -12
  10. package/dist/components/CustomIcon/Icons/LogoLecomBrand.js +8 -5
  11. package/dist/components/CustomIcon/Icons/ModoTeste.js +13 -5
  12. package/dist/components/CustomIcon/Icons/Rpa.js +17 -5
  13. package/dist/components/DataTable/DataTable.js +33 -158
  14. package/dist/components/Dialog/Dialog.js +40 -31
  15. package/dist/components/DropdownMenu/DropdownMenu.js +55 -46
  16. package/dist/components/Header/Header.js +51 -35
  17. package/dist/components/Header/HelpMenu.js +52 -41
  18. package/dist/components/Header/ImgBrand.js +5 -8
  19. package/dist/components/Header/ModulesMenu.js +63 -50
  20. package/dist/components/Header/SocialMenu.js +5 -6
  21. package/dist/components/Header/UserMenu.js +81 -51
  22. package/dist/components/Input/Input.js +11 -2
  23. package/dist/components/Layout/Layout.js +62 -45
  24. package/dist/components/Notification/Notification.js +9 -8
  25. package/dist/components/Notification/NotificationBase.js +5 -5
  26. package/dist/components/Notification/NotificationCallout.js +33 -27
  27. package/dist/components/Notification/NotificationCloseButton.js +4 -3
  28. package/dist/components/Notification/NotificationContent.js +24 -18
  29. package/dist/components/Notification/NotificationIcon.js +9 -6
  30. package/dist/components/Notification/NotificationInline.js +23 -20
  31. package/dist/components/Notification/NotificationToast.js +28 -25
  32. package/dist/components/Notification/useNotificationToast.js +0 -1
  33. package/dist/components/Popover/Popover.js +8 -7
  34. package/dist/components/ScrollArea/ScrollArea.js +18 -15
  35. package/dist/components/Select/Select.js +63 -54
  36. package/dist/components/Separator/Separator.js +5 -4
  37. package/dist/components/Sheet/Sheet.js +35 -26
  38. package/dist/components/Sidebar/Sidebar.js +112 -95
  39. package/dist/components/Skeleton/Skeleton.js +2 -2
  40. package/dist/components/Table/Table.js +15 -26
  41. package/dist/components/Tag/Tag.js +6 -5
  42. package/dist/components/Tooltip/Tooltip.js +17 -15
  43. package/dist/components/Typography/Typography.js +6 -7
  44. package/dist/hooks/use-mobile.js +1 -1
  45. package/dist/i18n/index.js +4 -53
  46. package/dist/i18n/locales/en_us.js +4 -3
  47. package/dist/i18n/locales/es_es.js +4 -3
  48. package/dist/i18n/locales/index.js +4 -4
  49. package/dist/i18n/locales/pt_br.js +4 -3
  50. package/dist/index.d.ts +108 -304
  51. package/dist/index.js +1 -12
  52. package/dist/lib/utils.js +2 -2
  53. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +806 -0
  54. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +726 -0
  55. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +347 -0
  56. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +154 -0
  57. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +136 -0
  58. package/dist/node_modules/@radix-ui/number/dist/index.js +6 -0
  59. package/dist/node_modules/@radix-ui/primitive/dist/index.js +11 -0
  60. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +303 -0
  61. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +25 -0
  62. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js +157 -0
  63. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +144 -0
  64. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +68 -0
  65. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +39 -0
  66. package/dist/node_modules/@radix-ui/react-context/dist/index.js +79 -0
  67. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +319 -0
  68. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +11 -0
  69. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +211 -0
  70. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +265 -0
  71. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +29 -0
  72. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +207 -0
  73. package/dist/node_modules/@radix-ui/react-id/dist/index.js +15 -0
  74. package/dist/node_modules/@radix-ui/react-menu/dist/index.js +831 -0
  75. package/dist/node_modules/@radix-ui/react-popover/dist/index.js +296 -0
  76. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +278 -0
  77. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +17 -0
  78. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +130 -0
  79. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +41 -0
  80. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +220 -0
  81. package/dist/node_modules/@radix-ui/react-scroll-area/dist/index.js +718 -0
  82. package/dist/node_modules/@radix-ui/react-select/dist/index.js +1143 -0
  83. package/dist/node_modules/@radix-ui/react-separator/dist/index.js +30 -0
  84. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +81 -0
  85. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js +476 -0
  86. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +12 -0
  87. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +46 -0
  88. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +18 -0
  89. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +7 -0
  90. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +15 -0
  91. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +40 -0
  92. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +35 -0
  93. package/dist/node_modules/@tanstack/react-table/build/lib/index.js +74 -0
  94. package/dist/node_modules/@tanstack/table-core/build/lib/index.js +3023 -0
  95. package/dist/node_modules/aria-hidden/dist/es2015/index.js +136 -0
  96. package/dist/node_modules/class-variance-authority/dist/index.js +44 -0
  97. package/dist/node_modules/clsx/dist/clsx.js +3 -0
  98. package/dist/node_modules/get-nonce/dist/es2015/index.js +8 -0
  99. package/dist/node_modules/hex-color-opacity/lib/index.js +22 -0
  100. package/dist/node_modules/i18next/dist/esm/i18next.js +2228 -0
  101. package/dist/node_modules/lucide-react/dist/esm/Icon.js +44 -0
  102. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +26 -0
  103. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +20 -0
  104. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +13 -0
  105. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +15 -0
  106. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +15 -0
  107. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +13 -0
  108. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js +17 -0
  109. package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.js +16 -0
  110. package/dist/node_modules/lucide-react/dist/esm/icons/circle-help.js +17 -0
  111. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js +15 -0
  112. package/dist/node_modules/lucide-react/dist/esm/icons/info.js +17 -0
  113. package/dist/node_modules/lucide-react/dist/esm/icons/menu.js +17 -0
  114. package/dist/node_modules/lucide-react/dist/esm/icons/message-square.js +15 -0
  115. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +13 -0
  116. package/dist/node_modules/lucide-react/dist/esm/icons/panel-left.js +16 -0
  117. package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.js +23 -0
  118. package/dist/node_modules/lucide-react/dist/esm/icons/user.js +16 -0
  119. package/dist/node_modules/lucide-react/dist/esm/icons/x.js +16 -0
  120. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +13 -0
  121. package/dist/node_modules/react-i18next/dist/es/context.js +18 -0
  122. package/dist/node_modules/react-i18next/dist/es/defaults.js +21 -0
  123. package/dist/node_modules/react-i18next/dist/es/i18nInstance.js +7 -0
  124. package/dist/node_modules/react-i18next/dist/es/initReactI18next.js +12 -0
  125. package/dist/node_modules/react-i18next/dist/es/unescape.js +27 -0
  126. package/dist/node_modules/react-i18next/dist/es/useTranslation.js +112 -0
  127. package/dist/node_modules/react-i18next/dist/es/utils.js +63 -0
  128. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +9 -0
  129. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +160 -0
  130. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +38 -0
  131. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +21 -0
  132. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +109 -0
  133. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +5 -0
  134. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +7 -0
  135. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +56 -0
  136. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +10 -0
  137. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +31 -0
  138. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +19 -0
  139. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +25 -0
  140. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +51 -0
  141. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2493 -0
  142. package/dist/node_modules/tslib/tslib.es6.js +56 -0
  143. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +24 -0
  144. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +48 -0
  145. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +42 -0
  146. package/dist/node_modules/use-color-luminance/index.es.js +105 -0
  147. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +21 -0
  148. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +77 -0
  149. package/dist/plugin/typographies.ts +146 -152
  150. package/dist/style.min.css +1 -1
  151. package/dist/utils/cookie.js +9 -6
  152. package/package.json +11 -3
@@ -0,0 +1,296 @@
1
+ import * as React from 'react';
2
+ import { composeEventHandlers } from '../../primitive/dist/index.js';
3
+ import { useComposedRefs } from '../../react-compose-refs/dist/index.js';
4
+ import { createContextScope } from '../../react-context/dist/index.js';
5
+ import { DismissableLayer } from '../../react-dismissable-layer/dist/index.js';
6
+ import { useFocusGuards } from '../../react-focus-guards/dist/index.js';
7
+ import { FocusScope } from '../../react-focus-scope/dist/index.js';
8
+ import { useId } from '../../react-id/dist/index.js';
9
+ import { createPopperScope, Content, Root as Root2$1, Anchor, Arrow } from '../../react-popper/dist/index.js';
10
+ import { Portal as Portal$1 } from '../../react-portal/dist/index.js';
11
+ import { Presence } from '../../react-presence/dist/index.js';
12
+ import { Primitive } from '../../react-primitive/dist/index.js';
13
+ import { Slot } from '../../react-slot/dist/index.js';
14
+ import { useControllableState } from '../../react-use-controllable-state/dist/index.js';
15
+ import { hideOthers } from '../../../aria-hidden/dist/es2015/index.js';
16
+ import ReactRemoveScroll from '../../../react-remove-scroll/dist/es2015/Combination.js';
17
+ import { jsx } from 'react/jsx-runtime';
18
+
19
+ var POPOVER_NAME = "Popover";
20
+ var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
21
+ createPopperScope
22
+ ]);
23
+ var usePopperScope = createPopperScope();
24
+ var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
25
+ var Popover = (props) => {
26
+ const {
27
+ __scopePopover,
28
+ children,
29
+ open: openProp,
30
+ defaultOpen,
31
+ onOpenChange,
32
+ modal = false
33
+ } = props;
34
+ const popperScope = usePopperScope(__scopePopover);
35
+ const triggerRef = React.useRef(null);
36
+ const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
37
+ const [open = false, setOpen] = useControllableState({
38
+ prop: openProp,
39
+ defaultProp: defaultOpen,
40
+ onChange: onOpenChange
41
+ });
42
+ return /* @__PURE__ */ jsx(Root2$1, { ...popperScope, children: /* @__PURE__ */ jsx(
43
+ PopoverProvider,
44
+ {
45
+ scope: __scopePopover,
46
+ contentId: useId(),
47
+ triggerRef,
48
+ open,
49
+ onOpenChange: setOpen,
50
+ onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
51
+ hasCustomAnchor,
52
+ onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),
53
+ onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),
54
+ modal,
55
+ children
56
+ }
57
+ ) });
58
+ };
59
+ Popover.displayName = POPOVER_NAME;
60
+ var ANCHOR_NAME = "PopoverAnchor";
61
+ var PopoverAnchor = React.forwardRef(
62
+ (props, forwardedRef) => {
63
+ const { __scopePopover, ...anchorProps } = props;
64
+ const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
65
+ const popperScope = usePopperScope(__scopePopover);
66
+ const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
67
+ React.useEffect(() => {
68
+ onCustomAnchorAdd();
69
+ return () => onCustomAnchorRemove();
70
+ }, [onCustomAnchorAdd, onCustomAnchorRemove]);
71
+ return /* @__PURE__ */ jsx(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
72
+ }
73
+ );
74
+ PopoverAnchor.displayName = ANCHOR_NAME;
75
+ var TRIGGER_NAME = "PopoverTrigger";
76
+ var PopoverTrigger = React.forwardRef(
77
+ (props, forwardedRef) => {
78
+ const { __scopePopover, ...triggerProps } = props;
79
+ const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
80
+ const popperScope = usePopperScope(__scopePopover);
81
+ const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
82
+ const trigger = /* @__PURE__ */ jsx(
83
+ Primitive.button,
84
+ {
85
+ type: "button",
86
+ "aria-haspopup": "dialog",
87
+ "aria-expanded": context.open,
88
+ "aria-controls": context.contentId,
89
+ "data-state": getState(context.open),
90
+ ...triggerProps,
91
+ ref: composedTriggerRef,
92
+ onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
93
+ }
94
+ );
95
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(Anchor, { asChild: true, ...popperScope, children: trigger });
96
+ }
97
+ );
98
+ PopoverTrigger.displayName = TRIGGER_NAME;
99
+ var PORTAL_NAME = "PopoverPortal";
100
+ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {
101
+ forceMount: void 0
102
+ });
103
+ var PopoverPortal = (props) => {
104
+ const { __scopePopover, forceMount, children, container } = props;
105
+ const context = usePopoverContext(PORTAL_NAME, __scopePopover);
106
+ return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$1, { asChild: true, container, children }) }) });
107
+ };
108
+ PopoverPortal.displayName = PORTAL_NAME;
109
+ var CONTENT_NAME = "PopoverContent";
110
+ var PopoverContent = React.forwardRef(
111
+ (props, forwardedRef) => {
112
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);
113
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
114
+ const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
115
+ return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
116
+ }
117
+ );
118
+ PopoverContent.displayName = CONTENT_NAME;
119
+ var PopoverContentModal = React.forwardRef(
120
+ (props, forwardedRef) => {
121
+ const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
122
+ const contentRef = React.useRef(null);
123
+ const composedRefs = useComposedRefs(forwardedRef, contentRef);
124
+ const isRightClickOutsideRef = React.useRef(false);
125
+ React.useEffect(() => {
126
+ const content = contentRef.current;
127
+ if (content) return hideOthers(content);
128
+ }, []);
129
+ return /* @__PURE__ */ jsx(ReactRemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(
130
+ PopoverContentImpl,
131
+ {
132
+ ...props,
133
+ ref: composedRefs,
134
+ trapFocus: context.open,
135
+ disableOutsidePointerEvents: true,
136
+ onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
137
+ event.preventDefault();
138
+ if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();
139
+ }),
140
+ onPointerDownOutside: composeEventHandlers(
141
+ props.onPointerDownOutside,
142
+ (event) => {
143
+ const originalEvent = event.detail.originalEvent;
144
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
145
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
146
+ isRightClickOutsideRef.current = isRightClick;
147
+ },
148
+ { checkForDefaultPrevented: false }
149
+ ),
150
+ onFocusOutside: composeEventHandlers(
151
+ props.onFocusOutside,
152
+ (event) => event.preventDefault(),
153
+ { checkForDefaultPrevented: false }
154
+ )
155
+ }
156
+ ) });
157
+ }
158
+ );
159
+ var PopoverContentNonModal = React.forwardRef(
160
+ (props, forwardedRef) => {
161
+ const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
162
+ const hasInteractedOutsideRef = React.useRef(false);
163
+ const hasPointerDownOutsideRef = React.useRef(false);
164
+ return /* @__PURE__ */ jsx(
165
+ PopoverContentImpl,
166
+ {
167
+ ...props,
168
+ ref: forwardedRef,
169
+ trapFocus: false,
170
+ disableOutsidePointerEvents: false,
171
+ onCloseAutoFocus: (event) => {
172
+ props.onCloseAutoFocus?.(event);
173
+ if (!event.defaultPrevented) {
174
+ if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();
175
+ event.preventDefault();
176
+ }
177
+ hasInteractedOutsideRef.current = false;
178
+ hasPointerDownOutsideRef.current = false;
179
+ },
180
+ onInteractOutside: (event) => {
181
+ props.onInteractOutside?.(event);
182
+ if (!event.defaultPrevented) {
183
+ hasInteractedOutsideRef.current = true;
184
+ if (event.detail.originalEvent.type === "pointerdown") {
185
+ hasPointerDownOutsideRef.current = true;
186
+ }
187
+ }
188
+ const target = event.target;
189
+ const targetIsTrigger = context.triggerRef.current?.contains(target);
190
+ if (targetIsTrigger) event.preventDefault();
191
+ if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
192
+ event.preventDefault();
193
+ }
194
+ }
195
+ }
196
+ );
197
+ }
198
+ );
199
+ var PopoverContentImpl = React.forwardRef(
200
+ (props, forwardedRef) => {
201
+ const {
202
+ __scopePopover,
203
+ trapFocus,
204
+ onOpenAutoFocus,
205
+ onCloseAutoFocus,
206
+ disableOutsidePointerEvents,
207
+ onEscapeKeyDown,
208
+ onPointerDownOutside,
209
+ onFocusOutside,
210
+ onInteractOutside,
211
+ ...contentProps
212
+ } = props;
213
+ const context = usePopoverContext(CONTENT_NAME, __scopePopover);
214
+ const popperScope = usePopperScope(__scopePopover);
215
+ useFocusGuards();
216
+ return /* @__PURE__ */ jsx(
217
+ FocusScope,
218
+ {
219
+ asChild: true,
220
+ loop: true,
221
+ trapped: trapFocus,
222
+ onMountAutoFocus: onOpenAutoFocus,
223
+ onUnmountAutoFocus: onCloseAutoFocus,
224
+ children: /* @__PURE__ */ jsx(
225
+ DismissableLayer,
226
+ {
227
+ asChild: true,
228
+ disableOutsidePointerEvents,
229
+ onInteractOutside,
230
+ onEscapeKeyDown,
231
+ onPointerDownOutside,
232
+ onFocusOutside,
233
+ onDismiss: () => context.onOpenChange(false),
234
+ children: /* @__PURE__ */ jsx(
235
+ Content,
236
+ {
237
+ "data-state": getState(context.open),
238
+ role: "dialog",
239
+ id: context.contentId,
240
+ ...popperScope,
241
+ ...contentProps,
242
+ ref: forwardedRef,
243
+ style: {
244
+ ...contentProps.style,
245
+ // re-namespace exposed content custom properties
246
+ ...{
247
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
248
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
249
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
250
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
251
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
252
+ }
253
+ }
254
+ }
255
+ )
256
+ }
257
+ )
258
+ }
259
+ );
260
+ }
261
+ );
262
+ var CLOSE_NAME = "PopoverClose";
263
+ var PopoverClose = React.forwardRef(
264
+ (props, forwardedRef) => {
265
+ const { __scopePopover, ...closeProps } = props;
266
+ const context = usePopoverContext(CLOSE_NAME, __scopePopover);
267
+ return /* @__PURE__ */ jsx(
268
+ Primitive.button,
269
+ {
270
+ type: "button",
271
+ ...closeProps,
272
+ ref: forwardedRef,
273
+ onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))
274
+ }
275
+ );
276
+ }
277
+ );
278
+ PopoverClose.displayName = CLOSE_NAME;
279
+ var ARROW_NAME = "PopoverArrow";
280
+ var PopoverArrow = React.forwardRef(
281
+ (props, forwardedRef) => {
282
+ const { __scopePopover, ...arrowProps } = props;
283
+ const popperScope = usePopperScope(__scopePopover);
284
+ return /* @__PURE__ */ jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
285
+ }
286
+ );
287
+ PopoverArrow.displayName = ARROW_NAME;
288
+ function getState(open) {
289
+ return open ? "open" : "closed";
290
+ }
291
+ var Root2 = Popover;
292
+ var Trigger = PopoverTrigger;
293
+ var Portal = PopoverPortal;
294
+ var Content2 = PopoverContent;
295
+
296
+ export { Content2 as Content, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, Portal, Root2 as Root, Trigger, createPopoverScope };
@@ -0,0 +1,278 @@
1
+ import * as React from 'react';
2
+ import { useFloating, offset, shift, flip, size, arrow, hide, limitShift } from '../../../@floating-ui/react-dom/dist/floating-ui.react-dom.js';
3
+ import { Root } from '../../react-arrow/dist/index.js';
4
+ import { useComposedRefs } from '../../react-compose-refs/dist/index.js';
5
+ import { createContextScope } from '../../react-context/dist/index.js';
6
+ import { Primitive } from '../../react-primitive/dist/index.js';
7
+ import { useCallbackRef } from '../../react-use-callback-ref/dist/index.js';
8
+ import { useLayoutEffect as useLayoutEffect2 } from '../../react-use-layout-effect/dist/index.js';
9
+ import { useSize } from '../../react-use-size/dist/index.js';
10
+ import { jsx } from 'react/jsx-runtime';
11
+ import { autoUpdate } from '../../../@floating-ui/dom/dist/floating-ui.dom.js';
12
+
13
+ var POPPER_NAME = "Popper";
14
+ var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
15
+ var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
16
+ var Popper = (props) => {
17
+ const { __scopePopper, children } = props;
18
+ const [anchor, setAnchor] = React.useState(null);
19
+ return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
20
+ };
21
+ Popper.displayName = POPPER_NAME;
22
+ var ANCHOR_NAME = "PopperAnchor";
23
+ var PopperAnchor = React.forwardRef(
24
+ (props, forwardedRef) => {
25
+ const { __scopePopper, virtualRef, ...anchorProps } = props;
26
+ const context = usePopperContext(ANCHOR_NAME, __scopePopper);
27
+ const ref = React.useRef(null);
28
+ const composedRefs = useComposedRefs(forwardedRef, ref);
29
+ React.useEffect(() => {
30
+ context.onAnchorChange(virtualRef?.current || ref.current);
31
+ });
32
+ return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });
33
+ }
34
+ );
35
+ PopperAnchor.displayName = ANCHOR_NAME;
36
+ var CONTENT_NAME = "PopperContent";
37
+ var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);
38
+ var PopperContent = React.forwardRef(
39
+ (props, forwardedRef) => {
40
+ const {
41
+ __scopePopper,
42
+ side = "bottom",
43
+ sideOffset = 0,
44
+ align = "center",
45
+ alignOffset = 0,
46
+ arrowPadding = 0,
47
+ avoidCollisions = true,
48
+ collisionBoundary = [],
49
+ collisionPadding: collisionPaddingProp = 0,
50
+ sticky = "partial",
51
+ hideWhenDetached = false,
52
+ updatePositionStrategy = "optimized",
53
+ onPlaced,
54
+ ...contentProps
55
+ } = props;
56
+ const context = usePopperContext(CONTENT_NAME, __scopePopper);
57
+ const [content, setContent] = React.useState(null);
58
+ const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));
59
+ const [arrow$1, setArrow] = React.useState(null);
60
+ const arrowSize = useSize(arrow$1);
61
+ const arrowWidth = arrowSize?.width ?? 0;
62
+ const arrowHeight = arrowSize?.height ?? 0;
63
+ const desiredPlacement = side + (align !== "center" ? "-" + align : "");
64
+ const collisionPadding = typeof collisionPaddingProp === "number" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };
65
+ const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];
66
+ const hasExplicitBoundaries = boundary.length > 0;
67
+ const detectOverflowOptions = {
68
+ padding: collisionPadding,
69
+ boundary: boundary.filter(isNotNull),
70
+ // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
71
+ altBoundary: hasExplicitBoundaries
72
+ };
73
+ const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({
74
+ // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
75
+ strategy: "fixed",
76
+ placement: desiredPlacement,
77
+ whileElementsMounted: (...args) => {
78
+ const cleanup = autoUpdate(...args, {
79
+ animationFrame: updatePositionStrategy === "always"
80
+ });
81
+ return cleanup;
82
+ },
83
+ elements: {
84
+ reference: context.anchor
85
+ },
86
+ middleware: [
87
+ offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),
88
+ avoidCollisions && shift({
89
+ mainAxis: true,
90
+ crossAxis: false,
91
+ limiter: sticky === "partial" ? limitShift() : void 0,
92
+ ...detectOverflowOptions
93
+ }),
94
+ avoidCollisions && flip({ ...detectOverflowOptions }),
95
+ size({
96
+ ...detectOverflowOptions,
97
+ apply: ({ elements, rects, availableWidth, availableHeight }) => {
98
+ const { width: anchorWidth, height: anchorHeight } = rects.reference;
99
+ const contentStyle = elements.floating.style;
100
+ contentStyle.setProperty("--radix-popper-available-width", `${availableWidth}px`);
101
+ contentStyle.setProperty("--radix-popper-available-height", `${availableHeight}px`);
102
+ contentStyle.setProperty("--radix-popper-anchor-width", `${anchorWidth}px`);
103
+ contentStyle.setProperty("--radix-popper-anchor-height", `${anchorHeight}px`);
104
+ }
105
+ }),
106
+ arrow$1 && arrow({ element: arrow$1, padding: arrowPadding }),
107
+ transformOrigin({ arrowWidth, arrowHeight }),
108
+ hideWhenDetached && hide({ strategy: "referenceHidden", ...detectOverflowOptions })
109
+ ]
110
+ });
111
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
112
+ const handlePlaced = useCallbackRef(onPlaced);
113
+ useLayoutEffect2(() => {
114
+ if (isPositioned) {
115
+ handlePlaced?.();
116
+ }
117
+ }, [isPositioned, handlePlaced]);
118
+ const arrowX = middlewareData.arrow?.x;
119
+ const arrowY = middlewareData.arrow?.y;
120
+ const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
121
+ const [contentZIndex, setContentZIndex] = React.useState();
122
+ useLayoutEffect2(() => {
123
+ if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
124
+ }, [content]);
125
+ return /* @__PURE__ */ jsx(
126
+ "div",
127
+ {
128
+ ref: refs.setFloating,
129
+ "data-radix-popper-content-wrapper": "",
130
+ style: {
131
+ ...floatingStyles,
132
+ transform: isPositioned ? floatingStyles.transform : "translate(0, -200%)",
133
+ // keep off the page when measuring
134
+ minWidth: "max-content",
135
+ zIndex: contentZIndex,
136
+ ["--radix-popper-transform-origin"]: [
137
+ middlewareData.transformOrigin?.x,
138
+ middlewareData.transformOrigin?.y
139
+ ].join(" "),
140
+ // hide the content if using the hide middleware and should be hidden
141
+ // set visibility to hidden and disable pointer events so the UI behaves
142
+ // as if the PopperContent isn't there at all
143
+ ...middlewareData.hide?.referenceHidden && {
144
+ visibility: "hidden",
145
+ pointerEvents: "none"
146
+ }
147
+ },
148
+ dir: props.dir,
149
+ children: /* @__PURE__ */ jsx(
150
+ PopperContentProvider,
151
+ {
152
+ scope: __scopePopper,
153
+ placedSide,
154
+ onArrowChange: setArrow,
155
+ arrowX,
156
+ arrowY,
157
+ shouldHideArrow: cannotCenterArrow,
158
+ children: /* @__PURE__ */ jsx(
159
+ Primitive.div,
160
+ {
161
+ "data-side": placedSide,
162
+ "data-align": placedAlign,
163
+ ...contentProps,
164
+ ref: composedRefs,
165
+ style: {
166
+ ...contentProps.style,
167
+ // if the PopperContent hasn't been placed yet (not all measurements done)
168
+ // we prevent animations so that users's animation don't kick in too early referring wrong sides
169
+ animation: !isPositioned ? "none" : void 0
170
+ }
171
+ }
172
+ )
173
+ }
174
+ )
175
+ }
176
+ );
177
+ }
178
+ );
179
+ PopperContent.displayName = CONTENT_NAME;
180
+ var ARROW_NAME = "PopperArrow";
181
+ var OPPOSITE_SIDE = {
182
+ top: "bottom",
183
+ right: "left",
184
+ bottom: "top",
185
+ left: "right"
186
+ };
187
+ var PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {
188
+ const { __scopePopper, ...arrowProps } = props;
189
+ const contentContext = useContentContext(ARROW_NAME, __scopePopper);
190
+ const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
191
+ return (
192
+ // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
193
+ // doesn't report size as we'd expect on SVG elements.
194
+ // it reports their bounding box which is effectively the largest path inside the SVG.
195
+ /* @__PURE__ */ jsx(
196
+ "span",
197
+ {
198
+ ref: contentContext.onArrowChange,
199
+ style: {
200
+ position: "absolute",
201
+ left: contentContext.arrowX,
202
+ top: contentContext.arrowY,
203
+ [baseSide]: 0,
204
+ transformOrigin: {
205
+ top: "",
206
+ right: "0 0",
207
+ bottom: "center 0",
208
+ left: "100% 0"
209
+ }[contentContext.placedSide],
210
+ transform: {
211
+ top: "translateY(100%)",
212
+ right: "translateY(50%) rotate(90deg) translateX(-50%)",
213
+ bottom: `rotate(180deg)`,
214
+ left: "translateY(50%) rotate(-90deg) translateX(50%)"
215
+ }[contentContext.placedSide],
216
+ visibility: contentContext.shouldHideArrow ? "hidden" : void 0
217
+ },
218
+ children: /* @__PURE__ */ jsx(
219
+ Root,
220
+ {
221
+ ...arrowProps,
222
+ ref: forwardedRef,
223
+ style: {
224
+ ...arrowProps.style,
225
+ // ensures the element can be measured correctly (mostly for if SVG)
226
+ display: "block"
227
+ }
228
+ }
229
+ )
230
+ }
231
+ )
232
+ );
233
+ });
234
+ PopperArrow.displayName = ARROW_NAME;
235
+ function isNotNull(value) {
236
+ return value !== null;
237
+ }
238
+ var transformOrigin = (options) => ({
239
+ name: "transformOrigin",
240
+ options,
241
+ fn(data) {
242
+ const { placement, rects, middlewareData } = data;
243
+ const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
244
+ const isArrowHidden = cannotCenterArrow;
245
+ const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
246
+ const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
247
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
248
+ const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
249
+ const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
250
+ const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
251
+ let x = "";
252
+ let y = "";
253
+ if (placedSide === "bottom") {
254
+ x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
255
+ y = `${-arrowHeight}px`;
256
+ } else if (placedSide === "top") {
257
+ x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
258
+ y = `${rects.floating.height + arrowHeight}px`;
259
+ } else if (placedSide === "right") {
260
+ x = `${-arrowHeight}px`;
261
+ y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
262
+ } else if (placedSide === "left") {
263
+ x = `${rects.floating.width + arrowHeight}px`;
264
+ y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
265
+ }
266
+ return { data: { x, y } };
267
+ }
268
+ });
269
+ function getSideAndAlignFromPlacement(placement) {
270
+ const [side, align = "center"] = placement.split("-");
271
+ return [side, align];
272
+ }
273
+ var Root2 = Popper;
274
+ var Anchor = PopperAnchor;
275
+ var Content = PopperContent;
276
+ var Arrow = PopperArrow;
277
+
278
+ export { Anchor, Arrow, Content, Popper, PopperAnchor, PopperArrow, PopperContent, Root2 as Root, createPopperScope };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import ReactDOM__default from 'react-dom';
3
+ import { Primitive } from '../../react-primitive/dist/index.js';
4
+ import { useLayoutEffect as useLayoutEffect2 } from '../../react-use-layout-effect/dist/index.js';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var PORTAL_NAME = "Portal";
8
+ var Portal = React.forwardRef((props, forwardedRef) => {
9
+ const { container: containerProp, ...portalProps } = props;
10
+ const [mounted, setMounted] = React.useState(false);
11
+ useLayoutEffect2(() => setMounted(true), []);
12
+ const container = containerProp || mounted && globalThis?.document?.body;
13
+ return container ? ReactDOM__default.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
14
+ });
15
+ Portal.displayName = PORTAL_NAME;
16
+
17
+ export { Portal };