@rpcbase/ui 0.249.0 → 0.250.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 (123) hide show
  1. package/dist/index120.js +10 -10
  2. package/dist/index122.js +2 -2
  3. package/dist/index123.js +3 -3
  4. package/dist/index176.js +4 -4
  5. package/dist/index178.js +1 -1
  6. package/dist/index182.js +1 -1
  7. package/dist/index184.js +1 -1
  8. package/dist/index186.js +1 -1
  9. package/dist/index188.js +1 -1
  10. package/dist/index189.js +2 -2
  11. package/dist/index192.js +2 -2
  12. package/dist/index200.js +1 -1
  13. package/dist/index202.js +1 -1
  14. package/dist/index210.js +1 -1
  15. package/dist/index217.js +1 -1
  16. package/dist/index218.js +2 -2
  17. package/dist/index253.js +1 -1
  18. package/dist/index296.js +14 -27
  19. package/dist/index296.js.map +1 -1
  20. package/dist/index297.js +7 -12
  21. package/dist/index297.js.map +1 -1
  22. package/dist/index298.js +9 -24
  23. package/dist/index298.js.map +1 -1
  24. package/dist/index299.js +10 -5
  25. package/dist/index299.js.map +1 -1
  26. package/dist/index300.js +20 -15
  27. package/dist/index300.js.map +1 -1
  28. package/dist/index301.js +8 -7
  29. package/dist/index301.js.map +1 -1
  30. package/dist/index302.js +9 -10
  31. package/dist/index302.js.map +1 -1
  32. package/dist/index303.js +9 -10
  33. package/dist/index303.js.map +1 -1
  34. package/dist/index304.js +4 -21
  35. package/dist/index304.js.map +1 -1
  36. package/dist/index305.js +5 -8
  37. package/dist/index305.js.map +1 -1
  38. package/dist/index306.js +16 -9
  39. package/dist/index306.js.map +1 -1
  40. package/dist/index307.js +8 -8
  41. package/dist/index307.js.map +1 -1
  42. package/dist/index308.js +18 -4
  43. package/dist/index308.js.map +1 -1
  44. package/dist/index309.js +20 -5
  45. package/dist/index309.js.map +1 -1
  46. package/dist/index310.js +12 -16
  47. package/dist/index310.js.map +1 -1
  48. package/dist/index311.js +29 -9
  49. package/dist/index311.js.map +1 -1
  50. package/dist/index312.js +12 -18
  51. package/dist/index312.js.map +1 -1
  52. package/dist/index313.js +25 -20
  53. package/dist/index313.js.map +1 -1
  54. package/dist/index314.js +5 -12
  55. package/dist/index314.js.map +1 -1
  56. package/dist/index322.js +1 -1
  57. package/dist/index332.js +1 -1
  58. package/dist/index333.js +1 -1
  59. package/dist/index336.js +8 -7
  60. package/dist/index336.js.map +1 -1
  61. package/dist/index337.js +7 -8
  62. package/dist/index337.js.map +1 -1
  63. package/dist/index341.js +1 -1
  64. package/dist/index347.js +51 -17
  65. package/dist/index347.js.map +1 -1
  66. package/dist/index348.js +5 -51
  67. package/dist/index348.js.map +1 -1
  68. package/dist/index349.js +61 -5
  69. package/dist/index349.js.map +1 -1
  70. package/dist/index350.js +65 -60
  71. package/dist/index350.js.map +1 -1
  72. package/dist/index351.js +16 -65
  73. package/dist/index351.js.map +1 -1
  74. package/dist/index352.js +7 -143
  75. package/dist/index352.js.map +1 -1
  76. package/dist/index353.js +4 -79
  77. package/dist/index353.js.map +1 -1
  78. package/dist/index354.js +11 -61
  79. package/dist/index354.js.map +1 -1
  80. package/dist/index355.js +22 -15
  81. package/dist/index355.js.map +1 -1
  82. package/dist/index356.js +16 -8
  83. package/dist/index356.js.map +1 -1
  84. package/dist/index357.js +8 -5
  85. package/dist/index357.js.map +1 -1
  86. package/dist/index358.js +144 -11
  87. package/dist/index358.js.map +1 -1
  88. package/dist/index359.js +77 -19
  89. package/dist/index359.js.map +1 -1
  90. package/dist/index360.js +61 -16
  91. package/dist/index360.js.map +1 -1
  92. package/dist/index361.js +15 -8
  93. package/dist/index361.js.map +1 -1
  94. package/dist/index372.js +1 -1
  95. package/dist/index388.js +2 -2
  96. package/dist/index391.js +1 -1
  97. package/dist/index411.js +1 -1
  98. package/dist/index416.js +1 -1
  99. package/dist/index417.js +1 -1
  100. package/dist/index420.js +1 -1
  101. package/dist/index421.js +1 -1
  102. package/dist/index430.js +2 -2
  103. package/dist/index432.js +2 -2
  104. package/dist/index44.js +1 -1
  105. package/dist/index45.js +2 -2
  106. package/dist/index66.js +1 -1
  107. package/dist/index67.js +1 -1
  108. package/dist/index70.js +1 -1
  109. package/dist/index71.js +1 -1
  110. package/dist/index72.js +2 -6
  111. package/dist/index72.js.map +1 -1
  112. package/dist/index73.js +2 -8
  113. package/dist/index73.js.map +1 -1
  114. package/dist/index74.js +2 -6
  115. package/dist/index74.js.map +1 -1
  116. package/dist/index75.js +2 -2
  117. package/dist/index76.js +6 -2
  118. package/dist/index76.js.map +1 -1
  119. package/dist/index77.js +8 -2
  120. package/dist/index77.js.map +1 -1
  121. package/dist/index78.js +6 -2
  122. package/dist/index78.js.map +1 -1
  123. package/package.json +1 -1
package/dist/index350.js CHANGED
@@ -1,65 +1,70 @@
1
- import * as r from "react";
2
- import { useScrollLock as P } from "./index372.js";
3
- import { EMPTY_OBJECT as f } from "./index204.js";
4
- import { createChangeEventDetails as C } from "./index175.js";
5
- import { usePopupRootSync as S, useImplicitActiveTrigger as k, useOpenStateTransitions as E, usePopupInteractionProps as T } from "./index184.js";
6
- import { useDismiss as h } from "./index219.js";
7
- import { getTarget as w, contains as x } from "./index231.js";
8
- import { imperativeAction as I } from "./index177.js";
9
- function L(e) {
10
- const {
11
- store: t,
12
- actionsRef: a
13
- } = e, o = t.useState("open");
14
- S(t, o), k(t);
15
- const {
16
- forceUnmount: c
17
- } = E(o, t), s = r.useCallback(() => {
18
- t.setOpen(!1, C(I));
19
- }, [t]);
20
- r.useImperativeHandle(a, () => ({
21
- unmount: c,
22
- close: s
23
- }), [c, s]);
1
+ import * as p from "react";
2
+ import { ReactStore as l } from "./index358.js";
3
+ import { createPopupFloatingRootContext as d, popupStoreSelectors as u, createInitialPopupStoreState as c } from "./index359.js";
4
+ import { PopupTriggerMap as m } from "./index360.js";
5
+ import { setPopupOpenState as f, usePopupStore as g } from "./index184.js";
6
+ import { createSelector as o } from "./index361.js";
7
+ const C = {
8
+ ...u,
9
+ modal: o((e) => e.modal),
10
+ nested: o((e) => e.nested),
11
+ nestedOpenDialogCount: o((e) => e.nestedOpenDialogCount),
12
+ nestedOpenDrawerCount: o((e) => e.nestedOpenDrawerCount),
13
+ disablePointerDismissal: o((e) => e.disablePointerDismissal),
14
+ openMethod: o((e) => e.openMethod),
15
+ descriptionElementId: o((e) => e.descriptionElementId),
16
+ titleElementId: o((e) => e.titleElementId),
17
+ viewportElement: o((e) => e.viewportElement),
18
+ role: o((e) => e.role)
19
+ };
20
+ class a extends l {
21
+ constructor(n, t, r = !1) {
22
+ const i = new m(), s = h(n);
23
+ s.floatingRootContext = d(i, t, r), super(s, {
24
+ popupRef: /* @__PURE__ */ p.createRef(),
25
+ backdropRef: /* @__PURE__ */ p.createRef(),
26
+ internalBackdropRef: /* @__PURE__ */ p.createRef(),
27
+ outsidePressEnabledRef: {
28
+ current: !0
29
+ },
30
+ triggerElements: i,
31
+ onOpenChange: void 0,
32
+ onOpenChangeComplete: void 0
33
+ }, C);
34
+ }
35
+ setOpen = (n, t) => {
36
+ if (t.preventUnmountOnClose = () => {
37
+ this.set("preventUnmountingOnClose", !0);
38
+ }, !n && t.trigger == null && this.state.activeTriggerId != null && (t.trigger = this.state.activeTriggerElement ?? void 0), this.context.onOpenChange?.(n, t), t.isCanceled)
39
+ return;
40
+ this.state.floatingRootContext.dispatchOpenChange(n, t);
41
+ const r = {
42
+ open: n
43
+ };
44
+ f(r, n, t.trigger), this.update(r);
45
+ };
46
+ static useStore(n, t) {
47
+ return g(n, (i, s) => new a(t, i, s), !0).store;
48
+ }
24
49
  }
25
- function M({
26
- store: e,
27
- parentContext: t,
28
- isDrawer: a
29
- }) {
30
- const o = e.useState("open"), c = e.useState("disablePointerDismissal"), s = e.useState("modal"), d = e.useState("popupElement"), O = e.useState("floatingRootContext"), [u, m] = r.useState(0), [l, g] = r.useState(0), D = u === 0, p = h(O, {
31
- outsidePressEvent() {
32
- return e.context.internalBackdropRef.current || e.context.backdropRef.current ? "intentional" : {
33
- mouse: s === "trap-focus" ? "sloppy" : "intentional",
34
- touch: "sloppy"
35
- };
36
- },
37
- outsidePress(n) {
38
- if (!e.context.outsidePressEnabledRef.current || "button" in n && n.button !== 0 || "touches" in n && n.touches.length !== 1)
39
- return !1;
40
- const i = w(n);
41
- return D && !c ? s && (e.context.internalBackdropRef.current || e.context.backdropRef.current) ? e.context.internalBackdropRef.current === i || e.context.backdropRef.current === i || x(i, d) && !i?.hasAttribute("data-base-ui-portal") : !0 : !1;
42
- },
43
- escapeKey: D
44
- });
45
- P(o && s === !0, d), e.useContextCallback("onNestedDialogOpen", (n, i) => {
46
- m(n), g(i);
47
- }), e.useContextCallback("onNestedDialogClose", () => {
48
- m(0), g(0);
49
- }), r.useEffect(() => (t?.onNestedDialogOpen && o && t.onNestedDialogOpen(u + 1, l + (a ? 1 : 0)), t?.onNestedDialogClose && !o && t.onNestedDialogClose(), () => {
50
- t?.onNestedDialogClose && o && t.onNestedDialogClose();
51
- }), [a, o, u, l, t]);
52
- const b = p.reference ?? f, R = p.trigger ?? f, N = p.floating ?? f;
53
- return T(e, {
54
- activeTriggerProps: b,
55
- inactiveTriggerProps: R,
56
- popupProps: N,
57
- nestedOpenDialogCount: u,
58
- nestedOpenDrawerCount: l
59
- }), null;
50
+ function h(e = {}) {
51
+ return {
52
+ ...c(),
53
+ modal: !0,
54
+ disablePointerDismissal: !1,
55
+ popupElement: null,
56
+ viewportElement: null,
57
+ descriptionElementId: void 0,
58
+ titleElementId: void 0,
59
+ openMethod: null,
60
+ nested: !1,
61
+ nestedOpenDialogCount: 0,
62
+ nestedOpenDrawerCount: 0,
63
+ role: "dialog",
64
+ ...e
65
+ };
60
66
  }
61
67
  export {
62
- M as DialogInteractions,
63
- L as useDialogRoot
68
+ a as DialogStore
64
69
  };
65
70
  //# sourceMappingURL=index350.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index350.js","sources":["../../../node_modules/@base-ui/react/dialog/root/useDialogRoot.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useScrollLock } from '@base-ui/utils/useScrollLock';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useDismiss } from \"../../floating-ui-react/index.mjs\";\nimport { contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useImplicitActiveTrigger, useOpenStateTransitions, usePopupInteractionProps, usePopupRootSync } from \"../../utils/popups/index.mjs\";\nexport function useDialogRoot(params) {\n const {\n store,\n actionsRef\n } = params;\n const open = store.useState('open');\n usePopupRootSync(store, open);\n useImplicitActiveTrigger(store);\n const {\n forceUnmount\n } = useOpenStateTransitions(open, store);\n const handleImperativeClose = React.useCallback(() => {\n store.setOpen(false, createChangeEventDetails(REASONS.imperativeAction));\n }, [store]);\n React.useImperativeHandle(actionsRef, () => ({\n unmount: forceUnmount,\n close: handleImperativeClose\n }), [forceUnmount, handleImperativeClose]);\n}\nexport function DialogInteractions({\n store,\n parentContext,\n isDrawer\n}) {\n const open = store.useState('open');\n const disablePointerDismissal = store.useState('disablePointerDismissal');\n const modal = store.useState('modal');\n const popupElement = store.useState('popupElement');\n const floatingRootContext = store.useState('floatingRootContext');\n const [ownNestedOpenDialogs, setOwnNestedOpenDialogs] = React.useState(0);\n const [ownNestedOpenDrawers, setOwnNestedOpenDrawers] = React.useState(0);\n const isTopmost = ownNestedOpenDialogs === 0;\n const dismiss = useDismiss(floatingRootContext, {\n outsidePressEvent() {\n if (store.context.internalBackdropRef.current || store.context.backdropRef.current) {\n return 'intentional';\n }\n // Ensure `aria-hidden` on outside elements is removed immediately\n // on outside press when trapping focus.\n return {\n mouse: modal === 'trap-focus' ? 'sloppy' : 'intentional',\n touch: 'sloppy'\n };\n },\n outsidePress(event) {\n if (!store.context.outsidePressEnabledRef.current) {\n return false;\n }\n\n // For mouse events, only accept left button (button 0)\n // For touch events, a single touch is equivalent to left button\n if ('button' in event && event.button !== 0) {\n return false;\n }\n if ('touches' in event && event.touches.length !== 1) {\n return false;\n }\n const target = getTarget(event);\n if (isTopmost && !disablePointerDismissal) {\n // Only close if the click occurred on the dialog's owning backdrop.\n // This supports multiple modal dialogs that aren't nested in the React tree:\n // https://github.com/mui/base-ui/issues/1320\n if (modal) {\n return store.context.internalBackdropRef.current || store.context.backdropRef.current ? store.context.internalBackdropRef.current === target || store.context.backdropRef.current === target || contains(target, popupElement) && !target?.hasAttribute('data-base-ui-portal') : true;\n }\n return true;\n }\n return false;\n },\n escapeKey: isTopmost\n });\n useScrollLock(open && modal === true, popupElement);\n\n // Listen for nested open/close events on this store to maintain the counts.\n store.useContextCallback('onNestedDialogOpen', (dialogCount, drawerCount) => {\n setOwnNestedOpenDialogs(dialogCount);\n setOwnNestedOpenDrawers(drawerCount);\n });\n store.useContextCallback('onNestedDialogClose', () => {\n setOwnNestedOpenDialogs(0);\n setOwnNestedOpenDrawers(0);\n });\n\n // Notify parent of our open/close state using parent callbacks, if any\n React.useEffect(() => {\n if (parentContext?.onNestedDialogOpen && open) {\n parentContext.onNestedDialogOpen(ownNestedOpenDialogs + 1, ownNestedOpenDrawers + (isDrawer ? 1 : 0));\n }\n if (parentContext?.onNestedDialogClose && !open) {\n parentContext.onNestedDialogClose();\n }\n return () => {\n if (parentContext?.onNestedDialogClose && open) {\n parentContext.onNestedDialogClose();\n }\n };\n }, [isDrawer, open, ownNestedOpenDialogs, ownNestedOpenDrawers, parentContext]);\n const activeTriggerProps = dismiss.reference ?? EMPTY_OBJECT;\n const inactiveTriggerProps = dismiss.trigger ?? EMPTY_OBJECT;\n // Consumers (DialogPopup/DrawerPopup) already spread `FOCUSABLE_POPUP_PROPS`\n // directly, so the popup props only need to carry the dismiss handlers.\n const popupProps = dismiss.floating ?? EMPTY_OBJECT;\n usePopupInteractionProps(store, {\n activeTriggerProps,\n inactiveTriggerProps,\n popupProps,\n nestedOpenDialogCount: ownNestedOpenDialogs,\n nestedOpenDrawerCount: ownNestedOpenDrawers\n });\n return null;\n}"],"names":["useDialogRoot","params","store","actionsRef","open","usePopupRootSync","useImplicitActiveTrigger","forceUnmount","useOpenStateTransitions","handleImperativeClose","React","createChangeEventDetails","REASONS.imperativeAction","DialogInteractions","parentContext","isDrawer","disablePointerDismissal","modal","popupElement","floatingRootContext","ownNestedOpenDialogs","setOwnNestedOpenDialogs","ownNestedOpenDrawers","setOwnNestedOpenDrawers","isTopmost","dismiss","useDismiss","event","target","getTarget","contains","useScrollLock","dialogCount","drawerCount","activeTriggerProps","EMPTY_OBJECT","inactiveTriggerProps","popupProps","usePopupInteractionProps"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index350.js","sources":["../../../node_modules/@base-ui/react/dialog/store/DialogStore.mjs"],"sourcesContent":["import * as React from 'react';\nimport { createSelector, ReactStore } from '@base-ui/utils/store';\nimport { createPopupFloatingRootContext, createInitialPopupStoreState, popupStoreSelectors, PopupTriggerMap, setPopupOpenState, usePopupStore } from \"../../utils/popups/index.mjs\";\nconst selectors = {\n ...popupStoreSelectors,\n modal: createSelector(state => state.modal),\n nested: createSelector(state => state.nested),\n nestedOpenDialogCount: createSelector(state => state.nestedOpenDialogCount),\n nestedOpenDrawerCount: createSelector(state => state.nestedOpenDrawerCount),\n disablePointerDismissal: createSelector(state => state.disablePointerDismissal),\n openMethod: createSelector(state => state.openMethod),\n descriptionElementId: createSelector(state => state.descriptionElementId),\n titleElementId: createSelector(state => state.titleElementId),\n viewportElement: createSelector(state => state.viewportElement),\n role: createSelector(state => state.role)\n};\nexport class DialogStore extends ReactStore {\n constructor(initialState, floatingId, nested = false) {\n const triggerElements = new PopupTriggerMap();\n const state = createInitialState(initialState);\n state.floatingRootContext = createPopupFloatingRootContext(triggerElements, floatingId, nested);\n super(state, {\n popupRef: /*#__PURE__*/React.createRef(),\n backdropRef: /*#__PURE__*/React.createRef(),\n internalBackdropRef: /*#__PURE__*/React.createRef(),\n outsidePressEnabledRef: {\n current: true\n },\n triggerElements,\n onOpenChange: undefined,\n onOpenChangeComplete: undefined\n }, selectors);\n }\n setOpen = (nextOpen, eventDetails) => {\n eventDetails.preventUnmountOnClose = () => {\n this.set('preventUnmountingOnClose', true);\n };\n if (!nextOpen && eventDetails.trigger == null && this.state.activeTriggerId != null) {\n // When closing the dialog, pass the old trigger to the onOpenChange event\n // so it's not reset too early (potentially causing focus issues in controlled scenarios).\n eventDetails.trigger = this.state.activeTriggerElement ?? undefined;\n }\n this.context.onOpenChange?.(nextOpen, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);\n const updatedState = {\n open: nextOpen\n };\n setPopupOpenState(updatedState, nextOpen, eventDetails.trigger);\n this.update(updatedState);\n };\n static useStore(externalStore, initialState) {\n /* eslint-disable react-hooks/rules-of-hooks */\n const store = usePopupStore(externalStore, (floatingId, nested) => new DialogStore(initialState, floatingId, nested), true).store;\n /* eslint-enable react-hooks/rules-of-hooks */\n\n return store;\n }\n}\nfunction createInitialState(initialState = {}) {\n return {\n ...createInitialPopupStoreState(),\n modal: true,\n disablePointerDismissal: false,\n popupElement: null,\n viewportElement: null,\n descriptionElementId: undefined,\n titleElementId: undefined,\n openMethod: null,\n nested: false,\n nestedOpenDialogCount: 0,\n nestedOpenDrawerCount: 0,\n role: 'dialog',\n ...initialState\n };\n}"],"names":["selectors","popupStoreSelectors","createSelector","state","DialogStore","ReactStore","initialState","floatingId","nested","triggerElements","PopupTriggerMap","createInitialState","createPopupFloatingRootContext","React","nextOpen","eventDetails","updatedState","setPopupOpenState","externalStore","usePopupStore","createInitialPopupStoreState"],"mappings":";;;;;;AAGA,MAAMA,IAAY;AAAA,EAChB,GAAGC;AAAA,EACH,OAAOC,EAAe,CAAAC,MAASA,EAAM,KAAK;AAAA,EAC1C,QAAQD,EAAe,CAAAC,MAASA,EAAM,MAAM;AAAA,EAC5C,uBAAuBD,EAAe,CAAAC,MAASA,EAAM,qBAAqB;AAAA,EAC1E,uBAAuBD,EAAe,CAAAC,MAASA,EAAM,qBAAqB;AAAA,EAC1E,yBAAyBD,EAAe,CAAAC,MAASA,EAAM,uBAAuB;AAAA,EAC9E,YAAYD,EAAe,CAAAC,MAASA,EAAM,UAAU;AAAA,EACpD,sBAAsBD,EAAe,CAAAC,MAASA,EAAM,oBAAoB;AAAA,EACxE,gBAAgBD,EAAe,CAAAC,MAASA,EAAM,cAAc;AAAA,EAC5D,iBAAiBD,EAAe,CAAAC,MAASA,EAAM,eAAe;AAAA,EAC9D,MAAMD,EAAe,CAAAC,MAASA,EAAM,IAAI;AAC1C;AACO,MAAMC,UAAoBC,EAAW;AAAA,EAC1C,YAAYC,GAAcC,GAAYC,IAAS,IAAO;AACpD,UAAMC,IAAkB,IAAIC,EAAe,GACrCP,IAAQQ,EAAmBL,CAAY;AAC7C,IAAAH,EAAM,sBAAsBS,EAA+BH,GAAiBF,GAAYC,CAAM,GAC9F,MAAML,GAAO;AAAA,MACX,UAAuB,gBAAAU,EAAM,UAAS;AAAA,MACtC,aAA0B,gBAAAA,EAAM,UAAS;AAAA,MACzC,qBAAkC,gBAAAA,EAAM,UAAS;AAAA,MACjD,wBAAwB;AAAA,QACtB,SAAS;AAAA,MACjB;AAAA,MACM,iBAAAJ;AAAA,MACA,cAAc;AAAA,MACd,sBAAsB;AAAA,IAC5B,GAAOT,CAAS;AAAA,EACd;AAAA,EACA,UAAU,CAACc,GAAUC,MAAiB;AAUpC,QATAA,EAAa,wBAAwB,MAAM;AACzC,WAAK,IAAI,4BAA4B,EAAI;AAAA,IAC3C,GACI,CAACD,KAAYC,EAAa,WAAW,QAAQ,KAAK,MAAM,mBAAmB,SAG7EA,EAAa,UAAU,KAAK,MAAM,wBAAwB,SAE5D,KAAK,QAAQ,eAAeD,GAAUC,CAAY,GAC9CA,EAAa;AACf;AAEF,SAAK,MAAM,oBAAoB,mBAAmBD,GAAUC,CAAY;AACxE,UAAMC,IAAe;AAAA,MACnB,MAAMF;AAAA,IACZ;AACI,IAAAG,EAAkBD,GAAcF,GAAUC,EAAa,OAAO,GAC9D,KAAK,OAAOC,CAAY;AAAA,EAC1B;AAAA,EACA,OAAO,SAASE,GAAeZ,GAAc;AAK3C,WAHca,EAAcD,GAAe,CAACX,GAAYC,MAAW,IAAIJ,EAAYE,GAAcC,GAAYC,CAAM,GAAG,EAAI,EAAE;AAAA,EAI9H;AACF;AACA,SAASG,EAAmBL,IAAe,IAAI;AAC7C,SAAO;AAAA,IACL,GAAGc,EAA4B;AAAA,IAC/B,OAAO;AAAA,IACP,yBAAyB;AAAA,IACzB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,IACvB,MAAM;AAAA,IACN,GAAGd;AAAA,EACP;AACA;","x_google_ignoreList":[0]}
package/dist/index351.js CHANGED
@@ -1,70 +1,21 @@
1
- import * as p from "react";
2
- import { ReactStore as l } from "./index352.js";
3
- import { createPopupFloatingRootContext as d, popupStoreSelectors as u, createInitialPopupStoreState as c } from "./index353.js";
4
- import { PopupTriggerMap as m } from "./index354.js";
5
- import { setPopupOpenState as f, usePopupStore as g } from "./index184.js";
6
- import { createSelector as o } from "./index355.js";
7
- const C = {
8
- ...u,
9
- modal: o((e) => e.modal),
10
- nested: o((e) => e.nested),
11
- nestedOpenDialogCount: o((e) => e.nestedOpenDialogCount),
12
- nestedOpenDrawerCount: o((e) => e.nestedOpenDrawerCount),
13
- disablePointerDismissal: o((e) => e.disablePointerDismissal),
14
- openMethod: o((e) => e.openMethod),
15
- descriptionElementId: o((e) => e.descriptionElementId),
16
- titleElementId: o((e) => e.titleElementId),
17
- viewportElement: o((e) => e.viewportElement),
18
- role: o((e) => e.role)
19
- };
20
- class a extends l {
21
- constructor(n, t, r = !1) {
22
- const i = new m(), s = h(n);
23
- s.floatingRootContext = d(i, t, r), super(s, {
24
- popupRef: /* @__PURE__ */ p.createRef(),
25
- backdropRef: /* @__PURE__ */ p.createRef(),
26
- internalBackdropRef: /* @__PURE__ */ p.createRef(),
27
- outsidePressEnabledRef: {
28
- current: !0
29
- },
30
- triggerElements: i,
31
- onOpenChange: void 0,
32
- onOpenChangeComplete: void 0
33
- }, C);
34
- }
35
- setOpen = (n, t) => {
36
- if (t.preventUnmountOnClose = () => {
37
- this.set("preventUnmountingOnClose", !0);
38
- }, !n && t.trigger == null && this.state.activeTriggerId != null && (t.trigger = this.state.activeTriggerElement ?? void 0), this.context.onOpenChange?.(n, t), t.isCanceled)
39
- return;
40
- this.state.floatingRootContext.dispatchOpenChange(n, t);
41
- const r = {
42
- open: n
43
- };
44
- f(r, n, t.trigger), this.update(r);
45
- };
46
- static useStore(n, t) {
47
- return g(n, (i, s) => new a(t, i, s), !0).store;
48
- }
1
+ import * as n from "react";
2
+ import { SafeReact as f } from "./index353.js";
3
+ let o = 0;
4
+ function l(u, t = "mui") {
5
+ const [e, s] = n.useState(u), c = u || e;
6
+ return n.useEffect(() => {
7
+ e == null && (o += 1, s(`${t}-${o}`));
8
+ }, [e, t]), c;
49
9
  }
50
- function h(e = {}) {
51
- return {
52
- ...c(),
53
- modal: !0,
54
- disablePointerDismissal: !1,
55
- popupElement: null,
56
- viewportElement: null,
57
- descriptionElementId: void 0,
58
- titleElementId: void 0,
59
- openMethod: null,
60
- nested: !1,
61
- nestedOpenDialogCount: 0,
62
- nestedOpenDrawerCount: 0,
63
- role: "dialog",
64
- ...e
65
- };
10
+ const a = f.useId;
11
+ function I(u, t) {
12
+ if (a !== void 0) {
13
+ const e = a();
14
+ return u ?? (t ? `${t}-${e}` : e);
15
+ }
16
+ return l(u, t);
66
17
  }
67
18
  export {
68
- a as DialogStore
19
+ I as useId
69
20
  };
70
21
  //# sourceMappingURL=index351.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index351.js","sources":["../../../node_modules/@base-ui/react/dialog/store/DialogStore.mjs"],"sourcesContent":["import * as React from 'react';\nimport { createSelector, ReactStore } from '@base-ui/utils/store';\nimport { createPopupFloatingRootContext, createInitialPopupStoreState, popupStoreSelectors, PopupTriggerMap, setPopupOpenState, usePopupStore } from \"../../utils/popups/index.mjs\";\nconst selectors = {\n ...popupStoreSelectors,\n modal: createSelector(state => state.modal),\n nested: createSelector(state => state.nested),\n nestedOpenDialogCount: createSelector(state => state.nestedOpenDialogCount),\n nestedOpenDrawerCount: createSelector(state => state.nestedOpenDrawerCount),\n disablePointerDismissal: createSelector(state => state.disablePointerDismissal),\n openMethod: createSelector(state => state.openMethod),\n descriptionElementId: createSelector(state => state.descriptionElementId),\n titleElementId: createSelector(state => state.titleElementId),\n viewportElement: createSelector(state => state.viewportElement),\n role: createSelector(state => state.role)\n};\nexport class DialogStore extends ReactStore {\n constructor(initialState, floatingId, nested = false) {\n const triggerElements = new PopupTriggerMap();\n const state = createInitialState(initialState);\n state.floatingRootContext = createPopupFloatingRootContext(triggerElements, floatingId, nested);\n super(state, {\n popupRef: /*#__PURE__*/React.createRef(),\n backdropRef: /*#__PURE__*/React.createRef(),\n internalBackdropRef: /*#__PURE__*/React.createRef(),\n outsidePressEnabledRef: {\n current: true\n },\n triggerElements,\n onOpenChange: undefined,\n onOpenChangeComplete: undefined\n }, selectors);\n }\n setOpen = (nextOpen, eventDetails) => {\n eventDetails.preventUnmountOnClose = () => {\n this.set('preventUnmountingOnClose', true);\n };\n if (!nextOpen && eventDetails.trigger == null && this.state.activeTriggerId != null) {\n // When closing the dialog, pass the old trigger to the onOpenChange event\n // so it's not reset too early (potentially causing focus issues in controlled scenarios).\n eventDetails.trigger = this.state.activeTriggerElement ?? undefined;\n }\n this.context.onOpenChange?.(nextOpen, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);\n const updatedState = {\n open: nextOpen\n };\n setPopupOpenState(updatedState, nextOpen, eventDetails.trigger);\n this.update(updatedState);\n };\n static useStore(externalStore, initialState) {\n /* eslint-disable react-hooks/rules-of-hooks */\n const store = usePopupStore(externalStore, (floatingId, nested) => new DialogStore(initialState, floatingId, nested), true).store;\n /* eslint-enable react-hooks/rules-of-hooks */\n\n return store;\n }\n}\nfunction createInitialState(initialState = {}) {\n return {\n ...createInitialPopupStoreState(),\n modal: true,\n disablePointerDismissal: false,\n popupElement: null,\n viewportElement: null,\n descriptionElementId: undefined,\n titleElementId: undefined,\n openMethod: null,\n nested: false,\n nestedOpenDialogCount: 0,\n nestedOpenDrawerCount: 0,\n role: 'dialog',\n ...initialState\n };\n}"],"names":["selectors","popupStoreSelectors","createSelector","state","DialogStore","ReactStore","initialState","floatingId","nested","triggerElements","PopupTriggerMap","createInitialState","createPopupFloatingRootContext","React","nextOpen","eventDetails","updatedState","setPopupOpenState","externalStore","usePopupStore","createInitialPopupStoreState"],"mappings":";;;;;;AAGA,MAAMA,IAAY;AAAA,EAChB,GAAGC;AAAA,EACH,OAAOC,EAAe,CAAAC,MAASA,EAAM,KAAK;AAAA,EAC1C,QAAQD,EAAe,CAAAC,MAASA,EAAM,MAAM;AAAA,EAC5C,uBAAuBD,EAAe,CAAAC,MAASA,EAAM,qBAAqB;AAAA,EAC1E,uBAAuBD,EAAe,CAAAC,MAASA,EAAM,qBAAqB;AAAA,EAC1E,yBAAyBD,EAAe,CAAAC,MAASA,EAAM,uBAAuB;AAAA,EAC9E,YAAYD,EAAe,CAAAC,MAASA,EAAM,UAAU;AAAA,EACpD,sBAAsBD,EAAe,CAAAC,MAASA,EAAM,oBAAoB;AAAA,EACxE,gBAAgBD,EAAe,CAAAC,MAASA,EAAM,cAAc;AAAA,EAC5D,iBAAiBD,EAAe,CAAAC,MAASA,EAAM,eAAe;AAAA,EAC9D,MAAMD,EAAe,CAAAC,MAASA,EAAM,IAAI;AAC1C;AACO,MAAMC,UAAoBC,EAAW;AAAA,EAC1C,YAAYC,GAAcC,GAAYC,IAAS,IAAO;AACpD,UAAMC,IAAkB,IAAIC,EAAe,GACrCP,IAAQQ,EAAmBL,CAAY;AAC7C,IAAAH,EAAM,sBAAsBS,EAA+BH,GAAiBF,GAAYC,CAAM,GAC9F,MAAML,GAAO;AAAA,MACX,UAAuB,gBAAAU,EAAM,UAAS;AAAA,MACtC,aAA0B,gBAAAA,EAAM,UAAS;AAAA,MACzC,qBAAkC,gBAAAA,EAAM,UAAS;AAAA,MACjD,wBAAwB;AAAA,QACtB,SAAS;AAAA,MACjB;AAAA,MACM,iBAAAJ;AAAA,MACA,cAAc;AAAA,MACd,sBAAsB;AAAA,IAC5B,GAAOT,CAAS;AAAA,EACd;AAAA,EACA,UAAU,CAACc,GAAUC,MAAiB;AAUpC,QATAA,EAAa,wBAAwB,MAAM;AACzC,WAAK,IAAI,4BAA4B,EAAI;AAAA,IAC3C,GACI,CAACD,KAAYC,EAAa,WAAW,QAAQ,KAAK,MAAM,mBAAmB,SAG7EA,EAAa,UAAU,KAAK,MAAM,wBAAwB,SAE5D,KAAK,QAAQ,eAAeD,GAAUC,CAAY,GAC9CA,EAAa;AACf;AAEF,SAAK,MAAM,oBAAoB,mBAAmBD,GAAUC,CAAY;AACxE,UAAMC,IAAe;AAAA,MACnB,MAAMF;AAAA,IACZ;AACI,IAAAG,EAAkBD,GAAcF,GAAUC,EAAa,OAAO,GAC9D,KAAK,OAAOC,CAAY;AAAA,EAC1B;AAAA,EACA,OAAO,SAASE,GAAeZ,GAAc;AAK3C,WAHca,EAAcD,GAAe,CAACX,GAAYC,MAAW,IAAIJ,EAAYE,GAAcC,GAAYC,CAAM,GAAG,EAAI,EAAE;AAAA,EAI9H;AACF;AACA,SAASG,EAAmBL,IAAe,IAAI;AAC7C,SAAO;AAAA,IACL,GAAGc,EAA4B;AAAA,IAC/B,OAAO;AAAA,IACP,yBAAyB;AAAA,IACzB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,IACvB,MAAM;AAAA,IACN,GAAGd;AAAA,EACP;AACA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index351.js","sources":["../../../node_modules/@base-ui/utils/useId.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { SafeReact } from \"./safeReact.mjs\";\nlet globalId = 0;\n\n// TODO React 17: Remove `useGlobalId` once React 17 support is removed\nfunction useGlobalId(idOverride, prefix = 'mui') {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`${prefix}-${globalId}`);\n }\n }, [defaultId, prefix]);\n return id;\n}\nconst maybeReactUseId = SafeReact.useId;\n\n/**\n *\n * @example <div id={useId()} />\n * @param idOverride\n * @returns {string}\n */\nexport function useId(idOverride, prefix) {\n // React.useId() is only available from React 17.0.0.\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride ?? (prefix ? `${prefix}-${reactId}` : reactId);\n }\n\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride, prefix);\n}"],"names":["globalId","useGlobalId","idOverride","prefix","defaultId","setDefaultId","React","id","maybeReactUseId","SafeReact","useId","reactId"],"mappings":";;AAIA,IAAIA,IAAW;AAGf,SAASC,EAAYC,GAAYC,IAAS,OAAO;AAC/C,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAM,SAASJ,CAAU,GACrDK,IAAKL,KAAcE;AACzB,SAAAE,EAAM,UAAU,MAAM;AACpB,IAAIF,KAAa,SAKfJ,KAAY,GACZK,EAAa,GAAGF,CAAM,IAAIH,CAAQ,EAAE;AAAA,EAExC,GAAG,CAACI,GAAWD,CAAM,CAAC,GACfI;AACT;AACA,MAAMC,IAAkBC,EAAU;AAQ3B,SAASC,EAAMR,GAAYC,GAAQ;AAExC,MAAIK,MAAoB,QAAW;AACjC,UAAMG,IAAUH,EAAe;AAC/B,WAAON,MAAeC,IAAS,GAAGA,CAAM,IAAIQ,CAAO,KAAKA;AAAA,EAC1D;AAIA,SAAOV,EAAYC,GAAYC,CAAM;AACvC;","x_google_ignoreList":[0]}
package/dist/index352.js CHANGED
@@ -1,148 +1,12 @@
1
- import * as c from "react";
2
- import { Store as l } from "./index223.js";
3
- import { useStore as a } from "./index217.js";
4
- import { useStableCallback as f } from "./index202.js";
5
- import { useIsoLayoutEffect as u } from "./index201.js";
6
- import { NOOP as d } from "./index204.js";
7
- class g extends l {
8
- /**
9
- * Creates a new ReactStore instance.
10
- *
11
- * @param state Initial state of the store.
12
- * @param context Non-reactive context values.
13
- * @param selectors Optional selectors for use with `useState`.
14
- */
15
- constructor(e, t = {}, s) {
16
- super(e), this.context = t, this.selectors = s;
17
- }
18
- /**
19
- * Non-reactive values such as refs, callbacks, etc.
20
- */
21
- /**
22
- * Synchronizes a single external value into the store.
23
- *
24
- * Note that the while the value in `state` is updated immediately, the value returned
25
- * by `useState` is updated before the next render (similarly to React's `useState`).
26
- */
27
- useSyncedValue(e, t) {
28
- c.useDebugValue(e);
29
- const s = this;
30
- u(() => {
31
- s.state[e] !== t && s.set(e, t);
32
- }, [s, e, t]);
33
- }
34
- /**
35
- * Synchronizes a single external value into the store and
36
- * cleans it up (sets to `undefined`) on unmount.
37
- *
38
- * Note that the while the value in `state` is updated immediately, the value returned
39
- * by `useState` is updated before the next render (similarly to React's `useState`).
40
- */
41
- useSyncedValueWithCleanup(e, t) {
42
- const s = this;
43
- u(() => (s.state[e] !== t && s.set(e, t), () => {
44
- s.set(e, void 0);
45
- }), [s, e, t]);
46
- }
47
- /**
48
- * Synchronizes multiple external values into the store.
49
- *
50
- * Note that the while the values in `state` are updated immediately, the values returned
51
- * by `useState` are updated before the next render (similarly to React's `useState`).
52
- */
53
- useSyncedValues(e) {
54
- const t = this;
55
- if (process.env.NODE_ENV !== "production") {
56
- c.useDebugValue(e, (r) => Object.keys(r));
57
- const o = c.useRef(Object.keys(e)).current, n = Object.keys(e);
58
- (o.length !== n.length || o.some((r, i) => r !== n[i])) && console.error("ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.");
59
- }
60
- const s = Object.values(e);
61
- u(() => {
62
- t.update(e);
63
- }, [t, ...s]);
64
- }
65
- /**
66
- * Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key. If `controlled`
67
- * is non-undefined, the store's state at `key` is updated to match `controlled`.
68
- */
69
- useControlledProp(e, t) {
70
- c.useDebugValue(e);
71
- const s = this, o = t !== void 0;
72
- if (u(() => {
73
- o && !Object.is(s.state[e], t) && s.setState({
74
- ...s.state,
75
- [e]: t
76
- });
77
- }, [s, e, t, o]), process.env.NODE_ENV !== "production") {
78
- const n = this.controlledValues ??= /* @__PURE__ */ new Map();
79
- n.has(e) || n.set(e, o);
80
- const r = n.get(e);
81
- r !== void 0 && r !== o && console.error(`A component is changing the ${o ? "" : "un"}controlled state of ${e.toString()} to be ${o ? "un" : ""}controlled. Elements should not switch from uncontrolled to controlled (or vice versa).`);
82
- }
83
- }
84
- /** Gets the current value from the store using a selector with the provided key.
85
- *
86
- * @param key Key of the selector to use.
87
- */
88
- select(e, t, s, o) {
89
- const n = this.selectors[e];
90
- return n(this.state, t, s, o);
91
- }
92
- /**
93
- * Returns a value from the store's state using a selector function.
94
- * Used to subscribe to specific parts of the state.
95
- * This methods causes a rerender whenever the selected state changes.
96
- *
97
- * @param key Key of the selector to use.
98
- */
99
- useState(e, t, s, o) {
100
- return c.useDebugValue(e), a(this, this.selectors[e], t, s, o);
101
- }
102
- /**
103
- * Wraps a function with `useStableCallback` to ensure it has a stable reference
104
- * and assigns it to the context.
105
- *
106
- * @param key Key of the event callback. Must be a function in the context.
107
- * @param fn Function to assign.
108
- */
109
- useContextCallback(e, t) {
110
- c.useDebugValue(e);
111
- const s = f(t ?? d);
112
- this.context[e] = s;
113
- }
114
- /**
115
- * Returns a stable setter function for a specific key in the store's state.
116
- * It's commonly used to pass as a ref callback to React elements.
117
- *
118
- * @param key Key of the state to set.
119
- */
120
- useStateSetter(e) {
121
- const t = c.useRef(void 0);
122
- return t.current === void 0 && (t.current = (s) => {
123
- this.set(e, s);
124
- }), t.current;
125
- }
126
- /**
127
- * Observes changes derived from the store's selectors and calls the listener when the selected value changes.
128
- *
129
- * @param key Key of the selector to observe.
130
- * @param listener Listener function called when the selector result changes.
131
- */
132
- observe(e, t) {
133
- let s;
134
- typeof e == "function" ? s = e : s = this.selectors[e];
135
- let o = s(this.state);
136
- return t(o, o, this), this.subscribe((n) => {
137
- const r = s(n);
138
- if (!Object.is(o, r)) {
139
- const i = o;
140
- o = r, t(r, i, this);
141
- }
142
- });
1
+ let o;
2
+ process.env.NODE_ENV !== "production" && (o = /* @__PURE__ */ new Set());
3
+ function s(...r) {
4
+ if (process.env.NODE_ENV !== "production") {
5
+ const e = r.join(" ");
6
+ o.has(e) || (o.add(e), console.error(`Base UI: ${e}`));
143
7
  }
144
8
  }
145
9
  export {
146
- g as ReactStore
10
+ s as error
147
11
  };
148
12
  //# sourceMappingURL=index352.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index352.js","sources":["../../../node_modules/@base-ui/utils/store/ReactStore.mjs"],"sourcesContent":["/* False positives - ESLint thinks we're calling a hook from a class component. */\n/* eslint-disable react-hooks/rules-of-hooks */\n'use client';\n\nimport * as React from 'react';\nimport { Store } from \"./Store.mjs\";\nimport { useStore } from \"./useStore.mjs\";\nimport { useStableCallback } from \"../useStableCallback.mjs\";\nimport { useIsoLayoutEffect } from \"../useIsoLayoutEffect.mjs\";\nimport { NOOP } from \"../empty.mjs\";\n\n/**\n * A Store that supports controlled state keys, non-reactive values and provides utility methods for React.\n */\nexport class ReactStore extends Store {\n /**\n * Creates a new ReactStore instance.\n *\n * @param state Initial state of the store.\n * @param context Non-reactive context values.\n * @param selectors Optional selectors for use with `useState`.\n */\n constructor(state, context = {}, selectors) {\n super(state);\n this.context = context;\n this.selectors = selectors;\n }\n\n /**\n * Non-reactive values such as refs, callbacks, etc.\n */\n\n /**\n * Synchronizes a single external value into the store.\n *\n * Note that the while the value in `state` is updated immediately, the value returned\n * by `useState` is updated before the next render (similarly to React's `useState`).\n */\n useSyncedValue(key, value) {\n React.useDebugValue(key);\n // eslint-disable-next-line consistent-this\n const store = this;\n useIsoLayoutEffect(() => {\n if (store.state[key] !== value) {\n store.set(key, value);\n }\n }, [store, key, value]);\n }\n\n /**\n * Synchronizes a single external value into the store and\n * cleans it up (sets to `undefined`) on unmount.\n *\n * Note that the while the value in `state` is updated immediately, the value returned\n * by `useState` is updated before the next render (similarly to React's `useState`).\n */\n useSyncedValueWithCleanup(key, value) {\n // eslint-disable-next-line consistent-this\n const store = this;\n useIsoLayoutEffect(() => {\n if (store.state[key] !== value) {\n store.set(key, value);\n }\n return () => {\n store.set(key, undefined);\n };\n }, [store, key, value]);\n }\n\n /**\n * Synchronizes multiple external values into the store.\n *\n * Note that the while the values in `state` are updated immediately, the values returned\n * by `useState` are updated before the next render (similarly to React's `useState`).\n */\n useSyncedValues(statePart) {\n // eslint-disable-next-line consistent-this\n const store = this;\n if (process.env.NODE_ENV !== 'production') {\n // Check that an object with the same shape is passed on every render\n React.useDebugValue(statePart, p => Object.keys(p));\n const keys = React.useRef(Object.keys(statePart)).current;\n const nextKeys = Object.keys(statePart);\n if (keys.length !== nextKeys.length || keys.some((key, index) => key !== nextKeys[index])) {\n console.error('ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.');\n }\n }\n const dependencies = Object.values(statePart);\n useIsoLayoutEffect(() => {\n store.update(statePart);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [store, ...dependencies]);\n }\n\n /**\n * Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key. If `controlled`\n * is non-undefined, the store's state at `key` is updated to match `controlled`.\n */\n useControlledProp(key, controlled) {\n React.useDebugValue(key);\n // eslint-disable-next-line consistent-this\n const store = this;\n const isControlled = controlled !== undefined;\n useIsoLayoutEffect(() => {\n if (isControlled && !Object.is(store.state[key], controlled)) {\n // Set the internal state to match the controlled value.\n store.setState({\n ...store.state,\n [key]: controlled\n });\n }\n }, [store, key, controlled, isControlled]);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n const cache = this.controlledValues ??= new Map();\n if (!cache.has(key)) {\n cache.set(key, isControlled);\n }\n const previouslyControlled = cache.get(key);\n if (previouslyControlled !== undefined && previouslyControlled !== isControlled) {\n console.error(`A component is changing the ${isControlled ? '' : 'un'}controlled state of ${key.toString()} to be ${isControlled ? 'un' : ''}controlled. Elements should not switch from uncontrolled to controlled (or vice versa).`);\n }\n }\n }\n\n /** Gets the current value from the store using a selector with the provided key.\n *\n * @param key Key of the selector to use.\n */\n\n select(key, a1, a2, a3) {\n const selector = this.selectors[key];\n return selector(this.state, a1, a2, a3);\n }\n\n /**\n * Returns a value from the store's state using a selector function.\n * Used to subscribe to specific parts of the state.\n * This methods causes a rerender whenever the selected state changes.\n *\n * @param key Key of the selector to use.\n */\n\n useState(key, a1, a2, a3) {\n React.useDebugValue(key);\n return useStore(this, this.selectors[key], a1, a2, a3);\n }\n\n /**\n * Wraps a function with `useStableCallback` to ensure it has a stable reference\n * and assigns it to the context.\n *\n * @param key Key of the event callback. Must be a function in the context.\n * @param fn Function to assign.\n */\n useContextCallback(key, fn) {\n React.useDebugValue(key);\n const stableFunction = useStableCallback(fn ?? NOOP);\n this.context[key] = stableFunction;\n }\n\n /**\n * Returns a stable setter function for a specific key in the store's state.\n * It's commonly used to pass as a ref callback to React elements.\n *\n * @param key Key of the state to set.\n */\n useStateSetter(key) {\n const ref = React.useRef(undefined);\n if (ref.current === undefined) {\n ref.current = value => {\n this.set(key, value);\n };\n }\n return ref.current;\n }\n\n /**\n * Observes changes derived from the store's selectors and calls the listener when the selected value changes.\n *\n * @param key Key of the selector to observe.\n * @param listener Listener function called when the selector result changes.\n */\n\n observe(selector, listener) {\n let selectFn;\n if (typeof selector === 'function') {\n selectFn = selector;\n } else {\n selectFn = this.selectors[selector];\n }\n let prevValue = selectFn(this.state);\n listener(prevValue, prevValue, this);\n return this.subscribe(nextState => {\n const nextValue = selectFn(nextState);\n if (!Object.is(prevValue, nextValue)) {\n const oldValue = prevValue;\n prevValue = nextValue;\n listener(nextValue, oldValue, this);\n }\n });\n }\n}"],"names":["ReactStore","Store","state","context","selectors","key","value","React","store","useIsoLayoutEffect","statePart","p","keys","nextKeys","index","dependencies","controlled","isControlled","cache","previouslyControlled","a1","a2","a3","selector","useStore","fn","stableFunction","useStableCallback","NOOP","ref","listener","selectFn","prevValue","nextState","nextValue","oldValue"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index352.js","sources":["../../../node_modules/@base-ui/utils/error.mjs"],"sourcesContent":["let set;\nif (process.env.NODE_ENV !== 'production') {\n set = new Set();\n}\nexport function error(...messages) {\n if (process.env.NODE_ENV !== 'production') {\n const messageKey = messages.join(' ');\n if (!set.has(messageKey)) {\n set.add(messageKey);\n console.error(`Base UI: ${messageKey}`);\n }\n }\n}\nexport function reset() {\n set?.clear();\n}"],"names":["set","error","messages","messageKey"],"mappings":"AAAA,IAAIA;AACA,QAAQ,IAAI,aAAa,iBAC3BA,IAAM,oBAAI,IAAG;AAER,SAASC,KAASC,GAAU;AACjC,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAMC,IAAaD,EAAS,KAAK,GAAG;AACpC,IAAKF,EAAI,IAAIG,CAAU,MACrBH,EAAI,IAAIG,CAAU,GAClB,QAAQ,MAAM,YAAYA,CAAU,EAAE;AAAA,EAE1C;AACF;","x_google_ignoreList":[0]}
package/dist/index353.js CHANGED
@@ -1,83 +1,8 @@
1
- import { EMPTY_OBJECT as r } from "./index204.js";
2
- import { FloatingRootStore as l } from "./index388.js";
3
- import { getEmptyRootContext as d } from "./index391.js";
4
- import { createSelector as o } from "./index355.js";
5
- function P() {
6
- return {
7
- open: !1,
8
- openProp: void 0,
9
- mounted: !1,
10
- transitionStatus: void 0,
11
- floatingRootContext: d(),
12
- floatingId: void 0,
13
- triggerCount: 0,
14
- preventUnmountingOnClose: !1,
15
- payload: void 0,
16
- activeTriggerId: null,
17
- activeTriggerElement: null,
18
- triggerIdProp: void 0,
19
- popupElement: null,
20
- positionerElement: null,
21
- activeTriggerProps: r,
22
- inactiveTriggerProps: r,
23
- popupProps: r
24
- };
25
- }
26
- function T(e, n, g = !1) {
27
- return new l({
28
- open: !1,
29
- transitionStatus: void 0,
30
- floatingElement: null,
31
- referenceElement: null,
32
- triggerElements: e,
33
- floatingId: n,
34
- syncOnly: !0,
35
- nested: g,
36
- onOpenChange: void 0
37
- });
38
- }
39
- const t = o((e) => e.triggerIdProp ?? e.activeTriggerId), i = o((e) => e.openProp ?? e.open), p = o((e) => (e.popupElement?.id ?? e.floatingId) || void 0);
40
- function u(e, n) {
41
- return n !== void 0 && i(e) && t(e) === n;
42
- }
43
- function f(e, n) {
44
- return u(e, n) ? !0 : n !== void 0 && i(e) && t(e) == null && e.triggerCount === 1;
45
- }
46
- const v = {
47
- open: i,
48
- mounted: o((e) => e.mounted),
49
- transitionStatus: o((e) => e.transitionStatus),
50
- floatingRootContext: o((e) => e.floatingRootContext),
51
- triggerCount: o((e) => e.triggerCount),
52
- preventUnmountingOnClose: o((e) => e.preventUnmountingOnClose),
53
- payload: o((e) => e.payload),
54
- activeTriggerId: t,
55
- activeTriggerElement: o((e) => e.mounted ? e.activeTriggerElement : null),
56
- popupId: p,
57
- /**
58
- * Whether the trigger with the given ID was used to open the popup.
59
- */
60
- isTriggerActive: o((e, n) => n !== void 0 && t(e) === n),
61
- /**
62
- * Whether the popup is open and was activated by a trigger with the given ID.
63
- */
64
- isOpenedByTrigger: o((e, n) => u(e, n)),
65
- /**
66
- * Whether the popup is mounted and was activated by a trigger with the given ID.
67
- */
68
- isMountedByTrigger: o((e, n) => n !== void 0 && t(e) === n && e.mounted),
69
- triggerProps: o((e, n) => n ? e.activeTriggerProps : e.inactiveTriggerProps),
70
- /**
71
- * Popup id for the trigger that currently owns the open popup.
72
- */
73
- triggerPopupId: o((e, n) => f(e, n) ? p(e) : void 0),
74
- popupProps: o((e) => e.popupProps),
75
- popupElement: o((e) => e.popupElement),
76
- positionerElement: o((e) => e.positionerElement)
1
+ import * as t from "react";
2
+ const a = {
3
+ ...t
77
4
  };
78
5
  export {
79
- P as createInitialPopupStoreState,
80
- T as createPopupFloatingRootContext,
81
- v as popupStoreSelectors
6
+ a as SafeReact
82
7
  };
83
8
  //# sourceMappingURL=index353.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index353.js","sources":["../../../node_modules/@base-ui/react/utils/popups/store.mjs"],"sourcesContent":["import { createSelector } from '@base-ui/utils/store';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { FloatingRootStore } from \"../../floating-ui-react/components/FloatingRootStore.mjs\";\nimport { getEmptyRootContext } from \"../../floating-ui-react/utils/getEmptyRootContext.mjs\";\n\n/**\n * State common to all popup stores.\n */\n\nexport function createInitialPopupStoreState() {\n return {\n open: false,\n openProp: undefined,\n mounted: false,\n transitionStatus: undefined,\n floatingRootContext: getEmptyRootContext(),\n floatingId: undefined,\n triggerCount: 0,\n preventUnmountingOnClose: false,\n payload: undefined,\n activeTriggerId: null,\n activeTriggerElement: null,\n triggerIdProp: undefined,\n popupElement: null,\n positionerElement: null,\n activeTriggerProps: EMPTY_OBJECT,\n inactiveTriggerProps: EMPTY_OBJECT,\n popupProps: EMPTY_OBJECT\n };\n}\nexport function createPopupFloatingRootContext(triggerElements, floatingId, nested = false) {\n return new FloatingRootStore({\n open: false,\n transitionStatus: undefined,\n floatingElement: null,\n referenceElement: null,\n triggerElements,\n floatingId,\n syncOnly: true,\n nested,\n onOpenChange: undefined\n });\n}\nconst activeTriggerIdSelector = createSelector(state => state.triggerIdProp ?? state.activeTriggerId);\nconst openSelector = createSelector(state => state.openProp ?? state.open);\nconst popupIdSelector = createSelector(state => {\n const popupId = state.popupElement?.id ?? state.floatingId;\n return popupId || undefined;\n});\nfunction triggerOwnsOpenPopup(state, triggerId) {\n return triggerId !== undefined && openSelector(state) && activeTriggerIdSelector(state) === triggerId;\n}\nfunction triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) {\n if (triggerOwnsOpenPopup(state, triggerId)) {\n return true;\n }\n return triggerId !== undefined && openSelector(state) && activeTriggerIdSelector(state) == null && state.triggerCount === 1;\n}\nexport const popupStoreSelectors = {\n open: openSelector,\n mounted: createSelector(state => state.mounted),\n transitionStatus: createSelector(state => state.transitionStatus),\n floatingRootContext: createSelector(state => state.floatingRootContext),\n triggerCount: createSelector(state => state.triggerCount),\n preventUnmountingOnClose: createSelector(state => state.preventUnmountingOnClose),\n payload: createSelector(state => state.payload),\n activeTriggerId: activeTriggerIdSelector,\n activeTriggerElement: createSelector(state => state.mounted ? state.activeTriggerElement : null),\n popupId: popupIdSelector,\n /**\n * Whether the trigger with the given ID was used to open the popup.\n */\n isTriggerActive: createSelector((state, triggerId) => triggerId !== undefined && activeTriggerIdSelector(state) === triggerId),\n /**\n * Whether the popup is open and was activated by a trigger with the given ID.\n */\n isOpenedByTrigger: createSelector((state, triggerId) => triggerOwnsOpenPopup(state, triggerId)),\n /**\n * Whether the popup is mounted and was activated by a trigger with the given ID.\n */\n isMountedByTrigger: createSelector((state, triggerId) => triggerId !== undefined && activeTriggerIdSelector(state) === triggerId && state.mounted),\n triggerProps: createSelector((state, isActive) => isActive ? state.activeTriggerProps : state.inactiveTriggerProps),\n /**\n * Popup id for the trigger that currently owns the open popup.\n */\n triggerPopupId: createSelector((state, triggerId) => triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) ? popupIdSelector(state) : undefined),\n popupProps: createSelector(state => state.popupProps),\n popupElement: createSelector(state => state.popupElement),\n positionerElement: createSelector(state => state.positionerElement)\n};"],"names":["createInitialPopupStoreState","getEmptyRootContext","EMPTY_OBJECT","createPopupFloatingRootContext","triggerElements","floatingId","nested","FloatingRootStore","activeTriggerIdSelector","createSelector","state","openSelector","popupIdSelector","triggerOwnsOpenPopup","triggerId","triggerOwnsOpenPopupOrIsOnlyTrigger","popupStoreSelectors","isActive"],"mappings":";;;;AASO,SAASA,IAA+B;AAC7C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,qBAAqBC,EAAmB;AAAA,IACxC,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,0BAA0B;AAAA,IAC1B,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoBC;AAAA,IACpB,sBAAsBA;AAAA,IACtB,YAAYA;AAAA,EAChB;AACA;AACO,SAASC,EAA+BC,GAAiBC,GAAYC,IAAS,IAAO;AAC1F,SAAO,IAAIC,EAAkB;AAAA,IAC3B,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,iBAAAH;AAAA,IACA,YAAAC;AAAA,IACA,UAAU;AAAA,IACV,QAAAC;AAAA,IACA,cAAc;AAAA,EAClB,CAAG;AACH;AACA,MAAME,IAA0BC,EAAe,CAAAC,MAASA,EAAM,iBAAiBA,EAAM,eAAe,GAC9FC,IAAeF,EAAe,CAAAC,MAASA,EAAM,YAAYA,EAAM,IAAI,GACnEE,IAAkBH,EAAe,CAAAC,OACrBA,EAAM,cAAc,MAAMA,EAAM,eAC9B,MACnB;AACD,SAASG,EAAqBH,GAAOI,GAAW;AAC9C,SAAOA,MAAc,UAAaH,EAAaD,CAAK,KAAKF,EAAwBE,CAAK,MAAMI;AAC9F;AACA,SAASC,EAAoCL,GAAOI,GAAW;AAC7D,SAAID,EAAqBH,GAAOI,CAAS,IAChC,KAEFA,MAAc,UAAaH,EAAaD,CAAK,KAAKF,EAAwBE,CAAK,KAAK,QAAQA,EAAM,iBAAiB;AAC5H;AACY,MAACM,IAAsB;AAAA,EACjC,MAAML;AAAA,EACN,SAASF,EAAe,CAAAC,MAASA,EAAM,OAAO;AAAA,EAC9C,kBAAkBD,EAAe,CAAAC,MAASA,EAAM,gBAAgB;AAAA,EAChE,qBAAqBD,EAAe,CAAAC,MAASA,EAAM,mBAAmB;AAAA,EACtE,cAAcD,EAAe,CAAAC,MAASA,EAAM,YAAY;AAAA,EACxD,0BAA0BD,EAAe,CAAAC,MAASA,EAAM,wBAAwB;AAAA,EAChF,SAASD,EAAe,CAAAC,MAASA,EAAM,OAAO;AAAA,EAC9C,iBAAiBF;AAAA,EACjB,sBAAsBC,EAAe,CAAAC,MAASA,EAAM,UAAUA,EAAM,uBAAuB,IAAI;AAAA,EAC/F,SAASE;AAAA;AAAA;AAAA;AAAA,EAIT,iBAAiBH,EAAe,CAACC,GAAOI,MAAcA,MAAc,UAAaN,EAAwBE,CAAK,MAAMI,CAAS;AAAA;AAAA;AAAA;AAAA,EAI7H,mBAAmBL,EAAe,CAACC,GAAOI,MAAcD,EAAqBH,GAAOI,CAAS,CAAC;AAAA;AAAA;AAAA;AAAA,EAI9F,oBAAoBL,EAAe,CAACC,GAAOI,MAAcA,MAAc,UAAaN,EAAwBE,CAAK,MAAMI,KAAaJ,EAAM,OAAO;AAAA,EACjJ,cAAcD,EAAe,CAACC,GAAOO,MAAaA,IAAWP,EAAM,qBAAqBA,EAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAIlH,gBAAgBD,EAAe,CAACC,GAAOI,MAAcC,EAAoCL,GAAOI,CAAS,IAAIF,EAAgBF,CAAK,IAAI,MAAS;AAAA,EAC/I,YAAYD,EAAe,CAAAC,MAASA,EAAM,UAAU;AAAA,EACpD,cAAcD,EAAe,CAAAC,MAASA,EAAM,YAAY;AAAA,EACxD,mBAAmBD,EAAe,CAAAC,MAASA,EAAM,iBAAiB;AACpE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index353.js","sources":["../../../node_modules/@base-ui/utils/safeReact.mjs"],"sourcesContent":["import * as React from 'react';\n\n/**\n * A clone of the React namespace for reading APIs that may be missing in older\n * supported React versions. Bundlers can rewrite direct `React.someNewApi`\n * reads into named imports, which breaks React 17. Reading from this cloned\n * object keeps those lookups optional.\n *\n * @see https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\n */\nexport const SafeReact = {\n ...React\n};"],"names":["SafeReact","React"],"mappings":";AAUY,MAACA,IAAY;AAAA,EACvB,GAAGC;AACL;","x_google_ignoreList":[0]}