@rpcbase/ui 0.237.0 → 0.238.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 (98) hide show
  1. package/dist/components/Notifications/NotificationsDrawer.d.ts.map +1 -1
  2. package/dist/index121.js +10 -10
  3. package/dist/index123.js +2 -2
  4. package/dist/index124.js +3 -3
  5. package/dist/index16.js +228 -196
  6. package/dist/index16.js.map +1 -1
  7. package/dist/index185.js +1 -1
  8. package/dist/index189.js +3 -3
  9. package/dist/index190.js +4 -4
  10. package/dist/index237.js +27 -14
  11. package/dist/index237.js.map +1 -1
  12. package/dist/index238.js +12 -7
  13. package/dist/index238.js.map +1 -1
  14. package/dist/index239.js +24 -9
  15. package/dist/index239.js.map +1 -1
  16. package/dist/index240.js +5 -10
  17. package/dist/index240.js.map +1 -1
  18. package/dist/index241.js +15 -20
  19. package/dist/index241.js.map +1 -1
  20. package/dist/index242.js +7 -10
  21. package/dist/index242.js.map +1 -1
  22. package/dist/index243.js +10 -9
  23. package/dist/index243.js.map +1 -1
  24. package/dist/index244.js +10 -9
  25. package/dist/index244.js.map +1 -1
  26. package/dist/index245.js +21 -4
  27. package/dist/index245.js.map +1 -1
  28. package/dist/index246.js +10 -5
  29. package/dist/index246.js.map +1 -1
  30. package/dist/index247.js +9 -16
  31. package/dist/index247.js.map +1 -1
  32. package/dist/index248.js +8 -8
  33. package/dist/index248.js.map +1 -1
  34. package/dist/index249.js +4 -18
  35. package/dist/index249.js.map +1 -1
  36. package/dist/index250.js +5 -15
  37. package/dist/index250.js.map +1 -1
  38. package/dist/index251.js +16 -12
  39. package/dist/index251.js.map +1 -1
  40. package/dist/index252.js +9 -29
  41. package/dist/index252.js.map +1 -1
  42. package/dist/index253.js +18 -12
  43. package/dist/index253.js.map +1 -1
  44. package/dist/index254.js +15 -25
  45. package/dist/index254.js.map +1 -1
  46. package/dist/index255.js +12 -5
  47. package/dist/index255.js.map +1 -1
  48. package/dist/index270.js +1 -1
  49. package/dist/index272.js +1 -1
  50. package/dist/index275.js +1 -1
  51. package/dist/index277.js +1 -1
  52. package/dist/index278.js +1 -1
  53. package/dist/index285.js +1 -1
  54. package/dist/index287.js +1 -1
  55. package/dist/index298.js +1 -1
  56. package/dist/index302.js +1 -1
  57. package/dist/index339.js +1 -1
  58. package/dist/index347.js +122 -5
  59. package/dist/index347.js.map +1 -1
  60. package/dist/index348.js +31 -121
  61. package/dist/index348.js.map +1 -1
  62. package/dist/index349.js +72 -31
  63. package/dist/index349.js.map +1 -1
  64. package/dist/index350.js +139 -70
  65. package/dist/index350.js.map +1 -1
  66. package/dist/index351.js +35 -116
  67. package/dist/index351.js.map +1 -1
  68. package/dist/index352.js +44 -56
  69. package/dist/index352.js.map +1 -1
  70. package/dist/index353.js +14 -49
  71. package/dist/index353.js.map +1 -1
  72. package/dist/index354.js +6 -15
  73. package/dist/index354.js.map +1 -1
  74. package/dist/index362.js +12 -4
  75. package/dist/index362.js.map +1 -1
  76. package/dist/index363.js +16 -11
  77. package/dist/index363.js.map +1 -1
  78. package/dist/index364.js +5 -16
  79. package/dist/index364.js.map +1 -1
  80. package/dist/index365.js +4 -6
  81. package/dist/index365.js.map +1 -1
  82. package/dist/index384.js +2 -2
  83. package/dist/index386.js +1 -1
  84. package/dist/index44.js +1 -1
  85. package/dist/index45.js +2 -2
  86. package/dist/index70.js +1 -1
  87. package/dist/index71.js +1 -1
  88. package/dist/index74.js +2 -6
  89. package/dist/index74.js.map +1 -1
  90. package/dist/index75.js +2 -8
  91. package/dist/index75.js.map +1 -1
  92. package/dist/index76.js +5 -5
  93. package/dist/index76.js.map +1 -1
  94. package/dist/index77.js +8 -2
  95. package/dist/index77.js.map +1 -1
  96. package/dist/index78.js +6 -2
  97. package/dist/index78.js.map +1 -1
  98. package/package.json +1 -1
package/dist/index253.js CHANGED
@@ -1,16 +1,22 @@
1
- import { defaultDateLib as f } from "./index106.js";
2
- function y(t, r, e = f) {
3
- const n = Array.isArray(r) ? r : [r];
4
- let a = t.from;
5
- const i = e.differenceInCalendarDays(t.to, t.from), s = Math.min(i, 6);
6
- for (let o = 0; o <= s; o++) {
7
- if (n.includes(a.getDay()))
8
- return !0;
9
- a = e.addDays(a, 1);
10
- }
11
- return !1;
1
+ import { useControlledValue as x } from "./index250.js";
2
+ function C(i, d) {
3
+ const { selected: s, required: f, onSelect: l } = i, [r, m] = x(s, l ? s : void 0), e = l ? s : r, { isSameDay: o } = d, u = (t) => e?.some((c) => o(c, t)) ?? !1, { min: S, max: a } = i;
4
+ return {
5
+ selected: e,
6
+ select: (t, c, h) => {
7
+ let n = [...e ?? []];
8
+ if (u(t)) {
9
+ if (e?.length === S || f && e?.length === 1)
10
+ return;
11
+ n = e?.filter((y) => !o(y, t));
12
+ } else
13
+ e?.length === a ? n = [t] : n = [...n, t];
14
+ return l || m(n), l?.(n, t, c, h), n;
15
+ },
16
+ isSelected: u
17
+ };
12
18
  }
13
19
  export {
14
- y as rangeContainsDayOfWeek
20
+ C as useMulti
15
21
  };
16
22
  //# sourceMappingURL=index253.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index253.js","sources":["../../../node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js"],"sourcesContent":["import { defaultDateLib } from \"../classes/DateLib.js\";\n/**\n * Checks if a date range contains one or more specified days of the week.\n *\n * @since 9.2.2\n * @param range - The date range to check.\n * @param dayOfWeek - The day(s) of the week to check for (`0-6`, where `0` is\n * Sunday).\n * @param dateLib - The date utility library instance.\n * @returns `true` if the range contains the specified day(s) of the week,\n * otherwise `false`.\n * @group Utilities\n */\nexport function rangeContainsDayOfWeek(range, dayOfWeek, dateLib = defaultDateLib) {\n const dayOfWeekArr = !Array.isArray(dayOfWeek) ? [dayOfWeek] : dayOfWeek;\n let date = range.from;\n const totalDays = dateLib.differenceInCalendarDays(range.to, range.from);\n // iterate at maximum one week or the total days if the range is shorter than one week\n const totalDaysLimit = Math.min(totalDays, 6);\n for (let i = 0; i <= totalDaysLimit; i++) {\n if (dayOfWeekArr.includes(date.getDay())) {\n return true;\n }\n date = dateLib.addDays(date, 1);\n }\n return false;\n}\n"],"names":["rangeContainsDayOfWeek","range","dayOfWeek","dateLib","defaultDateLib","dayOfWeekArr","date","totalDays","totalDaysLimit","i"],"mappings":";AAaO,SAASA,EAAuBC,GAAOC,GAAWC,IAAUC,GAAgB;AAC/E,QAAMC,IAAgB,MAAM,QAAQH,CAAS,IAAkBA,IAAd,CAACA,CAAS;AAC3D,MAAII,IAAOL,EAAM;AACjB,QAAMM,IAAYJ,EAAQ,yBAAyBF,EAAM,IAAIA,EAAM,IAAI,GAEjEO,IAAiB,KAAK,IAAID,GAAW,CAAC;AAC5C,WAASE,IAAI,GAAGA,KAAKD,GAAgBC,KAAK;AACtC,QAAIJ,EAAa,SAASC,EAAK,OAAM,CAAE;AACnC,aAAO;AAEX,IAAAA,IAAOH,EAAQ,QAAQG,GAAM,CAAC;AAAA,EAClC;AACA,SAAO;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index253.js","sources":["../../../node_modules/react-day-picker/dist/esm/selection/useMulti.js"],"sourcesContent":["import { useControlledValue } from \"../helpers/useControlledValue.js\";\n/**\n * Hook to manage multiple-date selection in the DayPicker component.\n *\n * @template T - The type of DayPicker props.\n * @param props - The DayPicker props.\n * @param dateLib - The date utility library instance.\n * @returns An object containing the selected dates, a function to select dates,\n * and a function to check if a date is selected.\n */\nexport function useMulti(props, dateLib) {\n const { selected: initiallySelected, required, onSelect, } = props;\n const [internallySelected, setSelected] = useControlledValue(initiallySelected, onSelect ? initiallySelected : undefined);\n const selected = !onSelect ? internallySelected : initiallySelected;\n const { isSameDay } = dateLib;\n const isSelected = (date) => {\n return selected?.some((d) => isSameDay(d, date)) ?? false;\n };\n const { min, max } = props;\n const select = (triggerDate, modifiers, e) => {\n let newDates = [...(selected ?? [])];\n if (isSelected(triggerDate)) {\n if (selected?.length === min) {\n // Min value reached, do nothing\n return;\n }\n if (required && selected?.length === 1) {\n // Required value already selected do nothing\n return;\n }\n newDates = selected?.filter((d) => !isSameDay(d, triggerDate));\n }\n else {\n if (selected?.length === max) {\n // Max value reached, reset the selection to date\n newDates = [triggerDate];\n }\n else {\n // Add the date to the selection\n newDates = [...newDates, triggerDate];\n }\n }\n if (!onSelect) {\n setSelected(newDates);\n }\n onSelect?.(newDates, triggerDate, modifiers, e);\n return newDates;\n };\n return {\n selected,\n select,\n isSelected,\n };\n}\n"],"names":["useMulti","props","dateLib","initiallySelected","required","onSelect","internallySelected","setSelected","useControlledValue","selected","isSameDay","isSelected","date","d","min","max","triggerDate","modifiers","e","newDates"],"mappings":";AAUO,SAASA,EAASC,GAAOC,GAAS;AACrC,QAAM,EAAE,UAAUC,GAAmB,UAAAC,GAAU,UAAAC,EAAQ,IAAMJ,GACvD,CAACK,GAAoBC,CAAW,IAAIC,EAAmBL,GAAmBE,IAAWF,IAAoB,MAAS,GAClHM,IAAYJ,IAAgCF,IAArBG,GACvB,EAAE,WAAAI,EAAS,IAAKR,GAChBS,IAAa,CAACC,MACTH,GAAU,KAAK,CAACI,MAAMH,EAAUG,GAAGD,CAAI,CAAC,KAAK,IAElD,EAAE,KAAAE,GAAK,KAAAC,EAAG,IAAKd;AA8BrB,SAAO;AAAA,IACH,UAAAQ;AAAA,IACA,QA/BW,CAACO,GAAaC,GAAWC,MAAM;AAC1C,UAAIC,IAAW,CAAC,GAAIV,KAAY,CAAA,CAAG;AACnC,UAAIE,EAAWK,CAAW,GAAG;AAKzB,YAJIP,GAAU,WAAWK,KAIrBV,KAAYK,GAAU,WAAW;AAEjC;AAEJ,QAAAU,IAAWV,GAAU,OAAO,CAACI,MAAM,CAACH,EAAUG,GAAGG,CAAW,CAAC;AAAA,MACjE;AAEI,QAAIP,GAAU,WAAWM,IAErBI,IAAW,CAACH,CAAW,IAIvBG,IAAW,CAAC,GAAGA,GAAUH,CAAW;AAG5C,aAAKX,KACDE,EAAYY,CAAQ,GAExBd,IAAWc,GAAUH,GAAaC,GAAWC,CAAC,GACvCC;AAAA,IACX;AAAA,IAII,YAAAR;AAAA,EACR;AACA;","x_google_ignoreList":[0]}
package/dist/index254.js CHANGED
@@ -1,29 +1,19 @@
1
- import { defaultDateLib as p } from "./index106.js";
2
- import { dateMatchModifiers as s } from "./index32.js";
3
- import { rangeContainsDayOfWeek as M } from "./index253.js";
4
- import { rangeIncludesDate as l } from "./index126.js";
5
- import { rangeOverlaps as y } from "./index255.js";
6
- import { isDatesArray as a, isDateRange as A, isDayOfWeekType as C, isDateInterval as I, isDateAfterType as v, isDateBeforeType as F } from "./index128.js";
7
- function d(n, t, f = p) {
8
- const e = Array.isArray(t) ? t : [t];
9
- if (e.filter((o) => typeof o != "function").some((o) => typeof o == "boolean" ? o : f.isDate(o) ? l(n, o, !1, f) : a(o, f) ? o.some((r) => l(n, r, !1, f)) : A(o) ? o.from && o.to ? y(n, { from: o.from, to: o.to }, f) : !1 : C(o) ? M(n, o.dayOfWeek, f) : I(o) ? f.isAfter(o.before, o.after) ? y(n, {
10
- from: f.addDays(o.after, 1),
11
- to: f.addDays(o.before, -1)
12
- }, f) : s(n.from, o, f) || s(n.to, o, f) : v(o) || F(o) ? s(n.from, o, f) || s(n.to, o, f) : !1))
13
- return !0;
14
- const i = e.filter((o) => typeof o == "function");
15
- if (i.length) {
16
- let o = n.from;
17
- const r = f.differenceInCalendarDays(n.to, n.from);
18
- for (let u = 0; u <= r; u++) {
19
- if (i.some((D) => D(o)))
20
- return !0;
21
- o = f.addDays(o, 1);
22
- }
23
- }
24
- return !1;
1
+ import { useControlledValue as x } from "./index250.js";
2
+ import { rangeIncludesDate as R } from "./index126.js";
3
+ import { addToRange as y } from "./index237.js";
4
+ import { rangeContainsModifiers as C } from "./index239.js";
5
+ function b(s, l) {
6
+ const { disabled: c, excludeDisabled: i, selected: d, required: f, onSelect: o } = s, [r, m] = x(d, o ? d : void 0), t = o ? d : r;
7
+ return {
8
+ selected: t,
9
+ select: (n, u, a) => {
10
+ const { min: S, max: p } = s, e = n ? y(n, t, S, p, f, l) : void 0;
11
+ return i && c && e?.from && e.to && C({ from: e.from, to: e.to }, c, l) && (e.from = n, e.to = void 0), o || m(e), o?.(e, n, u, a), e;
12
+ },
13
+ isSelected: (n) => t && R(t, n, !1, l)
14
+ };
25
15
  }
26
16
  export {
27
- d as rangeContainsModifiers
17
+ b as useRange
28
18
  };
29
19
  //# sourceMappingURL=index254.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index254.js","sources":["../../../node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js"],"sourcesContent":["import { defaultDateLib } from \"../classes/DateLib.js\";\nimport { dateMatchModifiers } from \"./dateMatchModifiers.js\";\nimport { rangeContainsDayOfWeek } from \"./rangeContainsDayOfWeek.js\";\nimport { rangeIncludesDate } from \"./rangeIncludesDate.js\";\nimport { rangeOverlaps } from \"./rangeOverlaps.js\";\nimport { isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDatesArray, isDayOfWeekType, } from \"./typeguards.js\";\n/**\n * Checks if a date range contains dates that match the given modifiers.\n *\n * @since 9.2.2\n * @param range - The date range to check.\n * @param modifiers - The modifiers to match against.\n * @param dateLib - The date utility library instance.\n * @returns `true` if the range contains matching dates, otherwise `false`.\n * @group Utilities\n */\nexport function rangeContainsModifiers(range, modifiers, dateLib = defaultDateLib) {\n const matchers = Array.isArray(modifiers) ? modifiers : [modifiers];\n // Defer function matchers evaluation as they are the least performant.\n const nonFunctionMatchers = matchers.filter((matcher) => typeof matcher !== \"function\");\n const nonFunctionMatchersResult = nonFunctionMatchers.some((matcher) => {\n if (typeof matcher === \"boolean\")\n return matcher;\n if (dateLib.isDate(matcher)) {\n return rangeIncludesDate(range, matcher, false, dateLib);\n }\n if (isDatesArray(matcher, dateLib)) {\n return matcher.some((date) => rangeIncludesDate(range, date, false, dateLib));\n }\n if (isDateRange(matcher)) {\n if (matcher.from && matcher.to) {\n return rangeOverlaps(range, { from: matcher.from, to: matcher.to }, dateLib);\n }\n return false;\n }\n if (isDayOfWeekType(matcher)) {\n return rangeContainsDayOfWeek(range, matcher.dayOfWeek, dateLib);\n }\n if (isDateInterval(matcher)) {\n const isClosedInterval = dateLib.isAfter(matcher.before, matcher.after);\n if (isClosedInterval) {\n return rangeOverlaps(range, {\n from: dateLib.addDays(matcher.after, 1),\n to: dateLib.addDays(matcher.before, -1),\n }, dateLib);\n }\n return (dateMatchModifiers(range.from, matcher, dateLib) ||\n dateMatchModifiers(range.to, matcher, dateLib));\n }\n if (isDateAfterType(matcher) || isDateBeforeType(matcher)) {\n return (dateMatchModifiers(range.from, matcher, dateLib) ||\n dateMatchModifiers(range.to, matcher, dateLib));\n }\n return false;\n });\n if (nonFunctionMatchersResult) {\n return true;\n }\n const functionMatchers = matchers.filter((matcher) => typeof matcher === \"function\");\n if (functionMatchers.length) {\n let date = range.from;\n const totalDays = dateLib.differenceInCalendarDays(range.to, range.from);\n for (let i = 0; i <= totalDays; i++) {\n if (functionMatchers.some((matcher) => matcher(date))) {\n return true;\n }\n date = dateLib.addDays(date, 1);\n }\n }\n return false;\n}\n"],"names":["rangeContainsModifiers","range","modifiers","dateLib","defaultDateLib","matchers","matcher","rangeIncludesDate","isDatesArray","date","isDateRange","rangeOverlaps","isDayOfWeekType","rangeContainsDayOfWeek","isDateInterval","dateMatchModifiers","isDateAfterType","isDateBeforeType","functionMatchers","totalDays","i"],"mappings":";;;;;;AAgBO,SAASA,EAAuBC,GAAOC,GAAWC,IAAUC,GAAgB;AAC/E,QAAMC,IAAW,MAAM,QAAQH,CAAS,IAAIA,IAAY,CAACA,CAAS;AAsClE,MApC4BG,EAAS,OAAO,CAACC,MAAY,OAAOA,KAAY,UAAU,EAChC,KAAK,CAACA,MACpD,OAAOA,KAAY,YACZA,IACPH,EAAQ,OAAOG,CAAO,IACfC,EAAkBN,GAAOK,GAAS,IAAOH,CAAO,IAEvDK,EAAaF,GAASH,CAAO,IACtBG,EAAQ,KAAK,CAACG,MAASF,EAAkBN,GAAOQ,GAAM,IAAON,CAAO,CAAC,IAE5EO,EAAYJ,CAAO,IACfA,EAAQ,QAAQA,EAAQ,KACjBK,EAAcV,GAAO,EAAE,MAAMK,EAAQ,MAAM,IAAIA,EAAQ,GAAE,GAAIH,CAAO,IAExE,KAEPS,EAAgBN,CAAO,IAChBO,EAAuBZ,GAAOK,EAAQ,WAAWH,CAAO,IAE/DW,EAAeR,CAAO,IACGH,EAAQ,QAAQG,EAAQ,QAAQA,EAAQ,KAAK,IAE3DK,EAAcV,GAAO;AAAA,IACxB,MAAME,EAAQ,QAAQG,EAAQ,OAAO,CAAC;AAAA,IACtC,IAAIH,EAAQ,QAAQG,EAAQ,QAAQ,EAAE;AAAA,EAC1D,GAAmBH,CAAO,IAENY,EAAmBd,EAAM,MAAMK,GAASH,CAAO,KACnDY,EAAmBd,EAAM,IAAIK,GAASH,CAAO,IAEjDa,EAAgBV,CAAO,KAAKW,EAAiBX,CAAO,IAC5CS,EAAmBd,EAAM,MAAMK,GAASH,CAAO,KACnDY,EAAmBd,EAAM,IAAIK,GAASH,CAAO,IAE9C,EACV;AAEG,WAAO;AAEX,QAAMe,IAAmBb,EAAS,OAAO,CAACC,MAAY,OAAOA,KAAY,UAAU;AACnF,MAAIY,EAAiB,QAAQ;AACzB,QAAIT,IAAOR,EAAM;AACjB,UAAMkB,IAAYhB,EAAQ,yBAAyBF,EAAM,IAAIA,EAAM,IAAI;AACvE,aAASmB,IAAI,GAAGA,KAAKD,GAAWC,KAAK;AACjC,UAAIF,EAAiB,KAAK,CAACZ,MAAYA,EAAQG,CAAI,CAAC;AAChD,eAAO;AAEX,MAAAA,IAAON,EAAQ,QAAQM,GAAM,CAAC;AAAA,IAClC;AAAA,EACJ;AACA,SAAO;AACX;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index254.js","sources":["../../../node_modules/react-day-picker/dist/esm/selection/useRange.js"],"sourcesContent":["import { useControlledValue } from \"../helpers/useControlledValue.js\";\nimport { addToRange, rangeContainsModifiers } from \"../utils/index.js\";\nimport { rangeIncludesDate } from \"../utils/rangeIncludesDate.js\";\n/**\n * Hook to manage range selection in the DayPicker component.\n *\n * @template T - The type of DayPicker props.\n * @param props - The DayPicker props.\n * @param dateLib - The date utility library instance.\n * @returns An object containing the selected range, a function to select a\n * range, and a function to check if a date is within the range.\n */\nexport function useRange(props, dateLib) {\n const { disabled, excludeDisabled, selected: initiallySelected, required, onSelect, } = props;\n const [internallySelected, setSelected] = useControlledValue(initiallySelected, onSelect ? initiallySelected : undefined);\n const selected = !onSelect ? internallySelected : initiallySelected;\n const isSelected = (date) => selected && rangeIncludesDate(selected, date, false, dateLib);\n const select = (triggerDate, modifiers, e) => {\n const { min, max } = props;\n const newRange = triggerDate\n ? addToRange(triggerDate, selected, min, max, required, dateLib)\n : undefined;\n if (excludeDisabled && disabled && newRange?.from && newRange.to) {\n if (rangeContainsModifiers({ from: newRange.from, to: newRange.to }, disabled, dateLib)) {\n // if a disabled days is found, the range is reset\n newRange.from = triggerDate;\n newRange.to = undefined;\n }\n }\n if (!onSelect) {\n setSelected(newRange);\n }\n onSelect?.(newRange, triggerDate, modifiers, e);\n return newRange;\n };\n return {\n selected,\n select,\n isSelected,\n };\n}\n"],"names":["useRange","props","dateLib","disabled","excludeDisabled","initiallySelected","required","onSelect","internallySelected","setSelected","useControlledValue","selected","triggerDate","modifiers","e","min","max","newRange","addToRange","rangeContainsModifiers","date","rangeIncludesDate"],"mappings":";;;;AAYO,SAASA,EAASC,GAAOC,GAAS;AACrC,QAAM,EAAE,UAAAC,GAAU,iBAAAC,GAAiB,UAAUC,GAAmB,UAAAC,GAAU,UAAAC,EAAQ,IAAMN,GAClF,CAACO,GAAoBC,CAAW,IAAIC,EAAmBL,GAAmBE,IAAWF,IAAoB,MAAS,GAClHM,IAAYJ,IAAgCF,IAArBG;AAoB7B,SAAO;AAAA,IACH,UAAAG;AAAA,IACA,QApBW,CAACC,GAAaC,GAAWC,MAAM;AAC1C,YAAM,EAAE,KAAAC,GAAK,KAAAC,EAAG,IAAKf,GACfgB,IAAWL,IACXM,EAAWN,GAAaD,GAAUI,GAAKC,GAAKV,GAAUJ,CAAO,IAC7D;AACN,aAAIE,KAAmBD,KAAYc,GAAU,QAAQA,EAAS,MACtDE,EAAuB,EAAE,MAAMF,EAAS,MAAM,IAAIA,EAAS,GAAE,GAAId,GAAUD,CAAO,MAElFe,EAAS,OAAOL,GAChBK,EAAS,KAAK,SAGjBV,KACDE,EAAYQ,CAAQ,GAExBV,IAAWU,GAAUL,GAAaC,GAAWC,CAAC,GACvCG;AAAA,IACX;AAAA,IAII,YAtBe,CAACG,MAAST,KAAYU,EAAkBV,GAAUS,GAAM,IAAOlB,CAAO;AAAA,EAuB7F;AACA;","x_google_ignoreList":[0]}
package/dist/index255.js CHANGED
@@ -1,9 +1,16 @@
1
- import { rangeIncludesDate as m } from "./index126.js";
2
- import { defaultDateLib as r } from "./index106.js";
3
- function u(o, f, l = r) {
4
- return m(o, f.from, !1, l) || m(o, f.to, !1, l) || m(f, o.from, !1, l) || m(f, o.to, !1, l);
1
+ import { useControlledValue as a } from "./index250.js";
2
+ function q(u, S) {
3
+ const { selected: c, required: s, onSelect: t } = u, [f, r] = a(c, t ? c : void 0), e = t ? c : f, { isSameDay: d } = S;
4
+ return {
5
+ selected: e,
6
+ select: (n, o, i) => {
7
+ let l = n;
8
+ return !s && e && e && d(n, e) && (l = void 0), t || r(l), t?.(l, n, o, i), l;
9
+ },
10
+ isSelected: (n) => e ? d(e, n) : !1
11
+ };
5
12
  }
6
13
  export {
7
- u as rangeOverlaps
14
+ q as useSingle
8
15
  };
9
16
  //# sourceMappingURL=index255.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index255.js","sources":["../../../node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js"],"sourcesContent":["import { defaultDateLib } from \"../classes/index.js\";\nimport { rangeIncludesDate } from \"./rangeIncludesDate.js\";\n/**\n * Determines if two date ranges overlap.\n *\n * @since 9.2.2\n * @param rangeLeft - The first date range.\n * @param rangeRight - The second date range.\n * @param dateLib - The date utility library instance.\n * @returns `true` if the ranges overlap, otherwise `false`.\n * @group Utilities\n */\nexport function rangeOverlaps(rangeLeft, rangeRight, dateLib = defaultDateLib) {\n return (rangeIncludesDate(rangeLeft, rangeRight.from, false, dateLib) ||\n rangeIncludesDate(rangeLeft, rangeRight.to, false, dateLib) ||\n rangeIncludesDate(rangeRight, rangeLeft.from, false, dateLib) ||\n rangeIncludesDate(rangeRight, rangeLeft.to, false, dateLib));\n}\n"],"names":["rangeOverlaps","rangeLeft","rangeRight","dateLib","defaultDateLib","rangeIncludesDate"],"mappings":";;AAYO,SAASA,EAAcC,GAAWC,GAAYC,IAAUC,GAAgB;AAC3E,SAAQC,EAAkBJ,GAAWC,EAAW,MAAM,IAAOC,CAAO,KAChEE,EAAkBJ,GAAWC,EAAW,IAAI,IAAOC,CAAO,KAC1DE,EAAkBH,GAAYD,EAAU,MAAM,IAAOE,CAAO,KAC5DE,EAAkBH,GAAYD,EAAU,IAAI,IAAOE,CAAO;AAClE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index255.js","sources":["../../../node_modules/react-day-picker/dist/esm/selection/useSingle.js"],"sourcesContent":["import { useControlledValue } from \"../helpers/useControlledValue.js\";\n/**\n * Hook to manage single-date selection in the DayPicker component.\n *\n * @template T - The type of DayPicker props.\n * @param props - The DayPicker props.\n * @param dateLib - The date utility library instance.\n * @returns An object containing the selected date, a function to select a date,\n * and a function to check if a date is selected.\n */\nexport function useSingle(props, dateLib) {\n const { selected: initiallySelected, required, onSelect, } = props;\n const [internallySelected, setSelected] = useControlledValue(initiallySelected, onSelect ? initiallySelected : undefined);\n const selected = !onSelect ? internallySelected : initiallySelected;\n const { isSameDay } = dateLib;\n const isSelected = (compareDate) => {\n return selected ? isSameDay(selected, compareDate) : false;\n };\n const select = (triggerDate, modifiers, e) => {\n let newDate = triggerDate;\n if (!required && selected && selected && isSameDay(triggerDate, selected)) {\n // If the date is the same, clear the selection.\n newDate = undefined;\n }\n if (!onSelect) {\n setSelected(newDate);\n }\n if (required) {\n onSelect?.(newDate, triggerDate, modifiers, e);\n }\n else {\n onSelect?.(newDate, triggerDate, modifiers, e);\n }\n return newDate;\n };\n return {\n selected,\n select,\n isSelected,\n };\n}\n"],"names":["useSingle","props","dateLib","initiallySelected","required","onSelect","internallySelected","setSelected","useControlledValue","selected","isSameDay","triggerDate","modifiers","e","newDate","compareDate"],"mappings":";AAUO,SAASA,EAAUC,GAAOC,GAAS;AACtC,QAAM,EAAE,UAAUC,GAAmB,UAAAC,GAAU,UAAAC,EAAQ,IAAMJ,GACvD,CAACK,GAAoBC,CAAW,IAAIC,EAAmBL,GAAmBE,IAAWF,IAAoB,MAAS,GAClHM,IAAYJ,IAAgCF,IAArBG,GACvB,EAAE,WAAAI,EAAS,IAAKR;AAqBtB,SAAO;AAAA,IACH,UAAAO;AAAA,IACA,QAnBW,CAACE,GAAaC,GAAWC,MAAM;AAC1C,UAAIC,IAAUH;AACd,aAAI,CAACP,KAAYK,KAAYA,KAAYC,EAAUC,GAAaF,CAAQ,MAEpEK,IAAU,SAETT,KACDE,EAAYO,CAAO,GAGnBT,IAAWS,GAASH,GAAaC,GAAWC,CAAC,GAK1CC;AAAA,IACX;AAAA,IAII,YAvBe,CAACC,MACTN,IAAWC,EAAUD,GAAUM,CAAW,IAAI;AAAA,EAuB7D;AACA;","x_google_ignoreList":[0]}
package/dist/index270.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { compareItemEquality as s } from "./index273.js";
2
2
  import { hasNullItemLabel as u, stringifyAsValue as a } from "./index272.js";
3
- import { createSelector as r } from "./index354.js";
3
+ import { createSelector as r } from "./index353.js";
4
4
  const d = {
5
5
  id: r((e) => e.id),
6
6
  labelId: r((e) => e.labelId),
package/dist/index272.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as c from "react";
2
- import { serializeValue as a } from "./index363.js";
2
+ import { serializeValue as a } from "./index362.js";
3
3
  import { j as i } from "./index30.js";
4
4
  function s(r) {
5
5
  return r != null && r.length > 0 && typeof r[0] == "object" && r[0] != null && "items" in r[0];
package/dist/index275.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as l from "react";
2
2
  import { useStableCallback as c } from "./index262.js";
3
- import { useEnhancedClickHandler as u } from "./index364.js";
3
+ import { useEnhancedClickHandler as u } from "./index363.js";
4
4
  import { isIOS as m } from "./index301.js";
5
5
  import { useValueChanged as p } from "./index274.js";
6
6
  function C(e) {
package/dist/index277.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as c from "react";
2
2
  import { s as u } from "./index404.js";
3
3
  import { w as i } from "./index405.js";
4
- import { isReactVersionAtLeast as S } from "./index347.js";
4
+ import { isReactVersionAtLeast as S } from "./index354.js";
5
5
  const a = S(19), m = a ? f : l;
6
6
  function g(t, e, r, n, o) {
7
7
  return m(t, e, r, n, o);
package/dist/index278.js CHANGED
@@ -4,7 +4,7 @@ import { useRefWithInit as a } from "./index258.js";
4
4
  import { useIsoLayoutEffect as m } from "./index261.js";
5
5
  import { useFloatingParentNodeId as u } from "./index382.js";
6
6
  import { FloatingRootStore as p } from "./index384.js";
7
- import { PopupTriggerMap as d } from "./index352.js";
7
+ import { PopupTriggerMap as d } from "./index351.js";
8
8
  function y(s) {
9
9
  const {
10
10
  open: o = !1,
package/dist/index285.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useRefWithInit as c } from "./index258.js";
2
- import { useOnMount as u } from "./index365.js";
2
+ import { useOnMount as u } from "./index364.js";
3
3
  const t = 0;
4
4
  class r {
5
5
  static create() {
package/dist/index287.js CHANGED
@@ -1,4 +1,4 @@
1
- import { FieldControlDataAttributes as e } from "./index362.js";
1
+ import { FieldControlDataAttributes as e } from "./index365.js";
2
2
  const t = {
3
3
  badInput: !1,
4
4
  customError: !1,
package/dist/index298.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as e from "react";
2
2
  import { ownerDocument as m } from "./index284.js";
3
- import { useScrollLock as p } from "./index348.js";
3
+ import { useScrollLock as p } from "./index347.js";
4
4
  import { useIsoLayoutEffect as h } from "./index261.js";
5
5
  const S = 20;
6
6
  function L(t, c, o, l) {
package/dist/index302.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useRefWithInit as u } from "./index258.js";
2
- import { useOnMount as h } from "./index365.js";
2
+ import { useOnMount as h } from "./index364.js";
3
3
  const s = null;
4
4
  let l = globalThis.requestAnimationFrame;
5
5
  class o {
package/dist/index339.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as n from "react";
2
- import { isReactVersionAtLeast as o } from "./index347.js";
2
+ import { isReactVersionAtLeast as o } from "./index354.js";
3
3
  function s(t) {
4
4
  if (!/* @__PURE__ */ n.isValidElement(t))
5
5
  return null;
package/dist/index347.js CHANGED
@@ -1,9 +1,126 @@
1
- import * as t from "react";
2
- const e = parseInt(t.version, 10);
3
- function o(r) {
4
- return e >= r;
1
+ import { getWindow as d, isOverflowElement as m } from "./index309.js";
2
+ import { addEventListener as T } from "./index300.js";
3
+ import { isIOS as E, isWebKit as H } from "./index301.js";
4
+ import { ownerDocument as a } from "./index284.js";
5
+ import { useIsoLayoutEffect as z } from "./index261.js";
6
+ import { Timeout as k } from "./index285.js";
7
+ import { AnimationFrame as j } from "./index302.js";
8
+ import { NOOP as F } from "./index264.js";
9
+ let Y = {}, C = {}, O = "";
10
+ function R(s) {
11
+ if (typeof document > "u")
12
+ return !1;
13
+ const e = a(s);
14
+ return d(e).innerWidth - e.documentElement.clientWidth > 0;
15
+ }
16
+ function I(s) {
17
+ if (!(typeof CSS < "u" && CSS.supports && CSS.supports("scrollbar-gutter", "stable")) || typeof document > "u")
18
+ return !1;
19
+ const t = a(s), o = t.documentElement, l = t.body, r = m(o) ? o : l, i = r.style.overflowY, c = o.style.scrollbarGutter;
20
+ o.style.scrollbarGutter = "stable", r.style.overflowY = "scroll";
21
+ const u = r.offsetWidth;
22
+ r.style.overflowY = "hidden";
23
+ const f = r.offsetWidth;
24
+ return r.style.overflowY = i, o.style.scrollbarGutter = c, u === f;
25
+ }
26
+ function V(s) {
27
+ const e = a(s), t = e.documentElement, o = e.body, l = m(t) ? t : o, r = {
28
+ overflowY: l.style.overflowY,
29
+ overflowX: l.style.overflowX
30
+ };
31
+ return Object.assign(l.style, {
32
+ overflowY: "hidden",
33
+ overflowX: "hidden"
34
+ }), () => {
35
+ Object.assign(l.style, r);
36
+ };
37
+ }
38
+ function q(s) {
39
+ const e = a(s), t = e.documentElement, o = e.body, l = d(t);
40
+ let r = 0, i = 0, c = !1;
41
+ const u = j.create();
42
+ if (H && (l.visualViewport?.scale ?? 1) !== 1)
43
+ return () => {
44
+ };
45
+ function f() {
46
+ const h = l.getComputedStyle(t), n = l.getComputedStyle(o), v = (h.scrollbarGutter || "").includes("both-edges") ? "stable both-edges" : "stable";
47
+ r = t.scrollTop, i = t.scrollLeft, Y = {
48
+ scrollbarGutter: t.style.scrollbarGutter,
49
+ overflowY: t.style.overflowY,
50
+ overflowX: t.style.overflowX
51
+ }, O = t.style.scrollBehavior, C = {
52
+ position: o.style.position,
53
+ height: o.style.height,
54
+ width: o.style.width,
55
+ boxSizing: o.style.boxSizing,
56
+ overflowY: o.style.overflowY,
57
+ overflowX: o.style.overflowX,
58
+ scrollBehavior: o.style.scrollBehavior
59
+ };
60
+ const G = t.scrollHeight > t.clientHeight, B = t.scrollWidth > t.clientWidth, W = h.overflowY === "scroll" || n.overflowY === "scroll", x = h.overflowX === "scroll" || n.overflowX === "scroll", b = Math.max(0, l.innerWidth - o.clientWidth), w = Math.max(0, l.innerHeight - o.clientHeight), p = parseFloat(n.marginTop) + parseFloat(n.marginBottom), g = parseFloat(n.marginLeft) + parseFloat(n.marginRight), S = m(t) ? t : o;
61
+ if (c = I(s), c) {
62
+ t.style.scrollbarGutter = v, S.style.overflowY = "hidden", S.style.overflowX = "hidden";
63
+ return;
64
+ }
65
+ Object.assign(t.style, {
66
+ scrollbarGutter: v,
67
+ overflowY: "hidden",
68
+ overflowX: "hidden"
69
+ }), (G || W) && (t.style.overflowY = "scroll"), (B || x) && (t.style.overflowX = "scroll"), Object.assign(o.style, {
70
+ position: "relative",
71
+ height: p || w ? `calc(100dvh - ${p + w}px)` : "100dvh",
72
+ width: g || b ? `calc(100vw - ${g + b}px)` : "100vw",
73
+ boxSizing: "border-box",
74
+ overflow: "hidden",
75
+ scrollBehavior: "unset"
76
+ }), o.scrollTop = r, o.scrollLeft = i, t.setAttribute("data-base-ui-scroll-locked", ""), t.style.scrollBehavior = "unset";
77
+ }
78
+ function y() {
79
+ Object.assign(t.style, Y), Object.assign(o.style, C), c || (t.scrollTop = r, t.scrollLeft = i, t.removeAttribute("data-base-ui-scroll-locked"), t.style.scrollBehavior = O);
80
+ }
81
+ function L() {
82
+ y(), u.request(f);
83
+ }
84
+ f();
85
+ const X = T(l, "resize", L);
86
+ return () => {
87
+ u.cancel(), y(), typeof l.removeEventListener == "function" && X();
88
+ };
89
+ }
90
+ class A {
91
+ lockCount = 0;
92
+ restore = null;
93
+ timeoutLock = k.create();
94
+ timeoutUnlock = k.create();
95
+ acquire(e) {
96
+ return this.lockCount += 1, this.lockCount === 1 && this.restore === null && this.timeoutLock.start(0, () => this.lock(e)), this.release;
97
+ }
98
+ release = () => {
99
+ this.lockCount -= 1, this.lockCount === 0 && this.restore && this.timeoutUnlock.start(0, this.unlock);
100
+ };
101
+ unlock = () => {
102
+ this.lockCount === 0 && this.restore && (this.restore?.(), this.restore = null);
103
+ };
104
+ lock(e) {
105
+ if (this.lockCount === 0 || this.restore !== null)
106
+ return;
107
+ const o = a(e).documentElement, l = d(o).getComputedStyle(o).overflowY;
108
+ if (l === "hidden" || l === "clip") {
109
+ this.restore = F;
110
+ return;
111
+ }
112
+ const r = E || !R(e);
113
+ this.restore = r ? V(e) : q(e);
114
+ }
115
+ }
116
+ const K = new A();
117
+ function tt(s = !0, e = null) {
118
+ z(() => {
119
+ if (s)
120
+ return K.acquire(e);
121
+ }, [s, e]);
5
122
  }
6
123
  export {
7
- o as isReactVersionAtLeast
124
+ tt as useScrollLock
8
125
  };
9
126
  //# sourceMappingURL=index347.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index347.js","sources":["../../../node_modules/@base-ui/utils/esm/reactVersion.js"],"sourcesContent":["import * as React from 'react';\nconst majorVersion = parseInt(React.version, 10);\nexport function isReactVersionAtLeast(reactVersionToCheck) {\n return majorVersion >= reactVersionToCheck;\n}"],"names":["majorVersion","React","isReactVersionAtLeast","reactVersionToCheck"],"mappings":";AACA,MAAMA,IAAe,SAASC,EAAM,SAAS,EAAE;AACxC,SAASC,EAAsBC,GAAqB;AACzD,SAAOH,KAAgBG;AACzB;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index347.js","sources":["../../../node_modules/@base-ui/utils/esm/useScrollLock.js"],"sourcesContent":["'use client';\n\nimport { isOverflowElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from \"./addEventListener.js\";\nimport { isIOS, isWebKit } from \"./detectBrowser.js\";\nimport { ownerDocument, ownerWindow } from \"./owner.js\";\nimport { useIsoLayoutEffect } from \"./useIsoLayoutEffect.js\";\nimport { Timeout } from \"./useTimeout.js\";\nimport { AnimationFrame } from \"./useAnimationFrame.js\";\nimport { NOOP } from \"./empty.js\";\nlet originalHtmlStyles = {};\nlet originalBodyStyles = {};\nlet originalHtmlScrollBehavior = '';\nfunction hasInsetScrollbars(referenceElement) {\n if (typeof document === 'undefined') {\n return false;\n }\n const doc = ownerDocument(referenceElement);\n const win = ownerWindow(doc);\n return win.innerWidth - doc.documentElement.clientWidth > 0;\n}\nfunction supportsStableScrollbarGutter(referenceElement) {\n const supported = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('scrollbar-gutter', 'stable');\n if (!supported || typeof document === 'undefined') {\n return false;\n }\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const scrollContainer = isOverflowElement(html) ? html : body;\n const originalScrollContainerOverflowY = scrollContainer.style.overflowY;\n const originalHtmlStyleGutter = html.style.scrollbarGutter;\n html.style.scrollbarGutter = 'stable';\n scrollContainer.style.overflowY = 'scroll';\n const before = scrollContainer.offsetWidth;\n scrollContainer.style.overflowY = 'hidden';\n const after = scrollContainer.offsetWidth;\n scrollContainer.style.overflowY = originalScrollContainerOverflowY;\n html.style.scrollbarGutter = originalHtmlStyleGutter;\n return before === after;\n}\nfunction preventScrollOverlayScrollbars(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n\n // If an `overflow` style is present on <html>, we need to lock it, because a lock on <body>\n // won't have any effect.\n // But if <body> has an `overflow` style (like `overflow-x: hidden`), we need to lock it\n // instead, as sticky elements shift otherwise.\n const elementToLock = isOverflowElement(html) ? html : body;\n const originalElementToLockStyles = {\n overflowY: elementToLock.style.overflowY,\n overflowX: elementToLock.style.overflowX\n };\n Object.assign(elementToLock.style, {\n overflowY: 'hidden',\n overflowX: 'hidden'\n });\n return () => {\n Object.assign(elementToLock.style, originalElementToLockStyles);\n };\n}\nfunction preventScrollInsetScrollbars(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const win = ownerWindow(html);\n let scrollTop = 0;\n let scrollLeft = 0;\n let updateGutterOnly = false;\n const resizeFrame = AnimationFrame.create();\n\n // Pinch-zoom in Safari causes a shift. Just don't lock scroll if there's any pinch-zoom.\n if (isWebKit && (win.visualViewport?.scale ?? 1) !== 1) {\n return () => {};\n }\n function lockScroll() {\n /* DOM reads: */\n\n const htmlStyles = win.getComputedStyle(html);\n const bodyStyles = win.getComputedStyle(body);\n const htmlScrollbarGutterValue = htmlStyles.scrollbarGutter || '';\n const hasBothEdges = htmlScrollbarGutterValue.includes('both-edges');\n const scrollbarGutterValue = hasBothEdges ? 'stable both-edges' : 'stable';\n scrollTop = html.scrollTop;\n scrollLeft = html.scrollLeft;\n originalHtmlStyles = {\n scrollbarGutter: html.style.scrollbarGutter,\n overflowY: html.style.overflowY,\n overflowX: html.style.overflowX\n };\n originalHtmlScrollBehavior = html.style.scrollBehavior;\n originalBodyStyles = {\n position: body.style.position,\n height: body.style.height,\n width: body.style.width,\n boxSizing: body.style.boxSizing,\n overflowY: body.style.overflowY,\n overflowX: body.style.overflowX,\n scrollBehavior: body.style.scrollBehavior\n };\n const isScrollableY = html.scrollHeight > html.clientHeight;\n const isScrollableX = html.scrollWidth > html.clientWidth;\n const hasConstantOverflowY = htmlStyles.overflowY === 'scroll' || bodyStyles.overflowY === 'scroll';\n const hasConstantOverflowX = htmlStyles.overflowX === 'scroll' || bodyStyles.overflowX === 'scroll';\n\n // Values can be negative in Firefox\n const scrollbarWidth = Math.max(0, win.innerWidth - body.clientWidth);\n const scrollbarHeight = Math.max(0, win.innerHeight - body.clientHeight);\n\n // Avoid shift due to the default <body> margin. This does cause elements to be clipped\n // with whitespace. Warn if <body> has margins?\n const marginY = parseFloat(bodyStyles.marginTop) + parseFloat(bodyStyles.marginBottom);\n const marginX = parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight);\n const elementToLock = isOverflowElement(html) ? html : body;\n updateGutterOnly = supportsStableScrollbarGutter(referenceElement);\n\n /*\n * DOM writes:\n * Do not read the DOM past this point!\n */\n\n if (updateGutterOnly) {\n html.style.scrollbarGutter = scrollbarGutterValue;\n elementToLock.style.overflowY = 'hidden';\n elementToLock.style.overflowX = 'hidden';\n return;\n }\n Object.assign(html.style, {\n scrollbarGutter: scrollbarGutterValue,\n overflowY: 'hidden',\n overflowX: 'hidden'\n });\n if (isScrollableY || hasConstantOverflowY) {\n html.style.overflowY = 'scroll';\n }\n if (isScrollableX || hasConstantOverflowX) {\n html.style.overflowX = 'scroll';\n }\n Object.assign(body.style, {\n position: 'relative',\n height: marginY || scrollbarHeight ? `calc(100dvh - ${marginY + scrollbarHeight}px)` : '100dvh',\n width: marginX || scrollbarWidth ? `calc(100vw - ${marginX + scrollbarWidth}px)` : '100vw',\n boxSizing: 'border-box',\n overflow: 'hidden',\n scrollBehavior: 'unset'\n });\n body.scrollTop = scrollTop;\n body.scrollLeft = scrollLeft;\n html.setAttribute('data-base-ui-scroll-locked', '');\n html.style.scrollBehavior = 'unset';\n }\n function cleanup() {\n Object.assign(html.style, originalHtmlStyles);\n Object.assign(body.style, originalBodyStyles);\n if (!updateGutterOnly) {\n html.scrollTop = scrollTop;\n html.scrollLeft = scrollLeft;\n html.removeAttribute('data-base-ui-scroll-locked');\n html.style.scrollBehavior = originalHtmlScrollBehavior;\n }\n }\n function handleResize() {\n cleanup();\n resizeFrame.request(lockScroll);\n }\n lockScroll();\n const unsubscribeResize = addEventListener(win, 'resize', handleResize);\n return () => {\n resizeFrame.cancel();\n cleanup();\n // Sometimes this cleanup can run after test teardown because it is called\n // in a `setTimeout(fn, 0)`. Guard the returned cleanup to avoid calling\n // `removeEventListener` when it is no longer available in tests.\n if (typeof win.removeEventListener === 'function') {\n unsubscribeResize();\n }\n };\n}\nclass ScrollLocker {\n lockCount = 0;\n restore = null;\n timeoutLock = Timeout.create();\n timeoutUnlock = Timeout.create();\n acquire(referenceElement) {\n this.lockCount += 1;\n if (this.lockCount === 1 && this.restore === null) {\n this.timeoutLock.start(0, () => this.lock(referenceElement));\n }\n return this.release;\n }\n release = () => {\n this.lockCount -= 1;\n if (this.lockCount === 0 && this.restore) {\n this.timeoutUnlock.start(0, this.unlock);\n }\n };\n unlock = () => {\n if (this.lockCount === 0 && this.restore) {\n this.restore?.();\n this.restore = null;\n }\n };\n lock(referenceElement) {\n if (this.lockCount === 0 || this.restore !== null) {\n return;\n }\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const htmlOverflowY = ownerWindow(html).getComputedStyle(html).overflowY;\n\n // If the site author already hid overflow on <html>, respect it and bail out.\n if (htmlOverflowY === 'hidden' || htmlOverflowY === 'clip') {\n this.restore = NOOP;\n return;\n }\n const hasOverlayScrollbars = isIOS || !hasInsetScrollbars(referenceElement);\n\n // On iOS, scroll locking does not work if the navbar is collapsed. Due to numerous\n // side effects and bugs that arise on iOS, it must be researched extensively before\n // being enabled to ensure it doesn't cause the following issues:\n // - Textboxes must scroll into view when focused, nor cause a glitchy scroll animation.\n // - The navbar must not force itself into view and cause layout shift.\n // - Scroll containers must not flicker upon closing a popup when it has an exit animation.\n this.restore = hasOverlayScrollbars ? preventScrollOverlayScrollbars(referenceElement) : preventScrollInsetScrollbars(referenceElement);\n }\n}\nconst SCROLL_LOCKER = new ScrollLocker();\n\n/**\n * Locks the scroll of the document when enabled.\n *\n * @param enabled - Whether to enable the scroll lock.\n * @param referenceElement - Element to use as a reference for lock calculations.\n */\nexport function useScrollLock(enabled = true, referenceElement = null) {\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return undefined;\n }\n return SCROLL_LOCKER.acquire(referenceElement);\n }, [enabled, referenceElement]);\n}"],"names":["originalHtmlStyles","originalBodyStyles","originalHtmlScrollBehavior","hasInsetScrollbars","referenceElement","doc","ownerDocument","ownerWindow","supportsStableScrollbarGutter","html","body","scrollContainer","isOverflowElement","originalScrollContainerOverflowY","originalHtmlStyleGutter","before","after","preventScrollOverlayScrollbars","elementToLock","originalElementToLockStyles","preventScrollInsetScrollbars","win","scrollTop","scrollLeft","updateGutterOnly","resizeFrame","AnimationFrame","isWebKit","lockScroll","htmlStyles","bodyStyles","scrollbarGutterValue","isScrollableY","isScrollableX","hasConstantOverflowY","hasConstantOverflowX","scrollbarWidth","scrollbarHeight","marginY","marginX","cleanup","handleResize","unsubscribeResize","addEventListener","ScrollLocker","Timeout","htmlOverflowY","NOOP","hasOverlayScrollbars","isIOS","SCROLL_LOCKER","useScrollLock","enabled","useIsoLayoutEffect"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index348.js CHANGED
@@ -1,126 +1,36 @@
1
- import { getWindow as d, isOverflowElement as m } from "./index309.js";
2
- import { addEventListener as T } from "./index300.js";
3
- import { isIOS as E, isWebKit as H } from "./index301.js";
4
- import { ownerDocument as a } from "./index284.js";
5
- import { useIsoLayoutEffect as z } from "./index261.js";
6
- import { Timeout as k } from "./index285.js";
7
- import { AnimationFrame as j } from "./index302.js";
8
- import { NOOP as F } from "./index264.js";
9
- let Y = {}, C = {}, O = "";
10
- function R(s) {
11
- if (typeof document > "u")
12
- return !1;
13
- const e = a(s);
14
- return d(e).innerWidth - e.documentElement.clientWidth > 0;
15
- }
16
- function I(s) {
17
- if (!(typeof CSS < "u" && CSS.supports && CSS.supports("scrollbar-gutter", "stable")) || typeof document > "u")
18
- return !1;
19
- const t = a(s), o = t.documentElement, l = t.body, r = m(o) ? o : l, i = r.style.overflowY, c = o.style.scrollbarGutter;
20
- o.style.scrollbarGutter = "stable", r.style.overflowY = "scroll";
21
- const u = r.offsetWidth;
22
- r.style.overflowY = "hidden";
23
- const f = r.offsetWidth;
24
- return r.style.overflowY = i, o.style.scrollbarGutter = c, u === f;
25
- }
26
- function V(s) {
27
- const e = a(s), t = e.documentElement, o = e.body, l = m(t) ? t : o, r = {
28
- overflowY: l.style.overflowY,
29
- overflowX: l.style.overflowX
30
- };
31
- return Object.assign(l.style, {
32
- overflowY: "hidden",
33
- overflowX: "hidden"
34
- }), () => {
35
- Object.assign(l.style, r);
36
- };
37
- }
38
- function q(s) {
39
- const e = a(s), t = e.documentElement, o = e.body, l = d(t);
40
- let r = 0, i = 0, c = !1;
41
- const u = j.create();
42
- if (H && (l.visualViewport?.scale ?? 1) !== 1)
43
- return () => {
1
+ import { useId as f } from "./index345.js";
2
+ import { useRefWithInit as u } from "./index258.js";
3
+ import { useIsoLayoutEffect as g } from "./index261.js";
4
+ import { isElement as E } from "./index309.js";
5
+ import { useFloatingParentNodeId as d } from "./index382.js";
6
+ import { FloatingRootStore as S } from "./index384.js";
7
+ function C(p) {
8
+ const {
9
+ popupStore: n,
10
+ treatPopupAsFloatingElement: a = !1,
11
+ onOpenChange: c
12
+ } = p, o = f(), m = d() != null, r = n.useState("open"), t = n.useState("activeTriggerElement"), s = n.useState(a ? "popupElement" : "positionerElement"), l = n.context.triggerElements, e = u(() => new S({
13
+ open: r,
14
+ transitionStatus: void 0,
15
+ referenceElement: t,
16
+ floatingElement: s,
17
+ triggerElements: l,
18
+ onOpenChange: c,
19
+ floatingId: o,
20
+ syncOnly: !0,
21
+ nested: m
22
+ })).current;
23
+ return g(() => {
24
+ const i = {
25
+ open: r,
26
+ floatingId: o,
27
+ referenceElement: t,
28
+ floatingElement: s
44
29
  };
45
- function f() {
46
- const h = l.getComputedStyle(t), n = l.getComputedStyle(o), v = (h.scrollbarGutter || "").includes("both-edges") ? "stable both-edges" : "stable";
47
- r = t.scrollTop, i = t.scrollLeft, Y = {
48
- scrollbarGutter: t.style.scrollbarGutter,
49
- overflowY: t.style.overflowY,
50
- overflowX: t.style.overflowX
51
- }, O = t.style.scrollBehavior, C = {
52
- position: o.style.position,
53
- height: o.style.height,
54
- width: o.style.width,
55
- boxSizing: o.style.boxSizing,
56
- overflowY: o.style.overflowY,
57
- overflowX: o.style.overflowX,
58
- scrollBehavior: o.style.scrollBehavior
59
- };
60
- const G = t.scrollHeight > t.clientHeight, B = t.scrollWidth > t.clientWidth, W = h.overflowY === "scroll" || n.overflowY === "scroll", x = h.overflowX === "scroll" || n.overflowX === "scroll", b = Math.max(0, l.innerWidth - o.clientWidth), w = Math.max(0, l.innerHeight - o.clientHeight), p = parseFloat(n.marginTop) + parseFloat(n.marginBottom), g = parseFloat(n.marginLeft) + parseFloat(n.marginRight), S = m(t) ? t : o;
61
- if (c = I(s), c) {
62
- t.style.scrollbarGutter = v, S.style.overflowY = "hidden", S.style.overflowX = "hidden";
63
- return;
64
- }
65
- Object.assign(t.style, {
66
- scrollbarGutter: v,
67
- overflowY: "hidden",
68
- overflowX: "hidden"
69
- }), (G || W) && (t.style.overflowY = "scroll"), (B || x) && (t.style.overflowX = "scroll"), Object.assign(o.style, {
70
- position: "relative",
71
- height: p || w ? `calc(100dvh - ${p + w}px)` : "100dvh",
72
- width: g || b ? `calc(100vw - ${g + b}px)` : "100vw",
73
- boxSizing: "border-box",
74
- overflow: "hidden",
75
- scrollBehavior: "unset"
76
- }), o.scrollTop = r, o.scrollLeft = i, t.setAttribute("data-base-ui-scroll-locked", ""), t.style.scrollBehavior = "unset";
77
- }
78
- function y() {
79
- Object.assign(t.style, Y), Object.assign(o.style, C), c || (t.scrollTop = r, t.scrollLeft = i, t.removeAttribute("data-base-ui-scroll-locked"), t.style.scrollBehavior = O);
80
- }
81
- function L() {
82
- y(), u.request(f);
83
- }
84
- f();
85
- const X = T(l, "resize", L);
86
- return () => {
87
- u.cancel(), y(), typeof l.removeEventListener == "function" && X();
88
- };
89
- }
90
- class A {
91
- lockCount = 0;
92
- restore = null;
93
- timeoutLock = k.create();
94
- timeoutUnlock = k.create();
95
- acquire(e) {
96
- return this.lockCount += 1, this.lockCount === 1 && this.restore === null && this.timeoutLock.start(0, () => this.lock(e)), this.release;
97
- }
98
- release = () => {
99
- this.lockCount -= 1, this.lockCount === 0 && this.restore && this.timeoutUnlock.start(0, this.unlock);
100
- };
101
- unlock = () => {
102
- this.lockCount === 0 && this.restore && (this.restore?.(), this.restore = null);
103
- };
104
- lock(e) {
105
- if (this.lockCount === 0 || this.restore !== null)
106
- return;
107
- const o = a(e).documentElement, l = d(o).getComputedStyle(o).overflowY;
108
- if (l === "hidden" || l === "clip") {
109
- this.restore = F;
110
- return;
111
- }
112
- const r = E || !R(e);
113
- this.restore = r ? V(e) : q(e);
114
- }
115
- }
116
- const K = new A();
117
- function tt(s = !0, e = null) {
118
- z(() => {
119
- if (s)
120
- return K.acquire(e);
121
- }, [s, e]);
30
+ E(t) && (i.domReferenceElement = t), e.state.positionReference === e.state.referenceElement && (i.positionReference = t), e.update(i);
31
+ }, [r, o, t, s, e]), e.context.onOpenChange = c, e.context.nested = m, e;
122
32
  }
123
33
  export {
124
- tt as useScrollLock
34
+ C as useSyncedFloatingRootContext
125
35
  };
126
36
  //# sourceMappingURL=index348.js.map