@agnos-ui/core 0.9.3 → 0.10.0-next.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 (108) hide show
  1. package/{accordion-CoM4efp-.js → accordion-CcirvrjR.js} +10 -15
  2. package/{accordion-cR5JqWJ8.cjs → accordion-yD-czBna.cjs} +10 -15
  3. package/{alert-DtDozJal.cjs → alert-B-jQDQcB.cjs} +1 -1
  4. package/{alert-YIlqdEPO.js → alert-gGz2CDS9.js} +1 -1
  5. package/{collapse-DwXz2kNw.js → collapse-BV4kD3j9.js} +2 -2
  6. package/{collapse-DRp53EuG.cjs → collapse-gLiT080Y.cjs} +2 -2
  7. package/{common-BToNPUDq.cjs → common-D3QcdJ6S.cjs} +1 -1
  8. package/{common-BqUjUBPy.js → common-DK0ADNTX.js} +1 -1
  9. package/components/accordion/index.cjs +1 -1
  10. package/components/accordion/index.js +1 -1
  11. package/components/alert/index.cjs +1 -1
  12. package/components/alert/index.js +1 -1
  13. package/components/carousel/index.cjs +10 -23
  14. package/components/carousel/index.js +10 -23
  15. package/components/collapse/index.cjs +1 -1
  16. package/components/collapse/index.js +1 -1
  17. package/components/drawer/drawer.d.ts +222 -0
  18. package/components/drawer/index.cjs +5 -0
  19. package/components/drawer/index.d.ts +1 -0
  20. package/components/drawer/index.js +5 -0
  21. package/components/modal/index.cjs +2 -1
  22. package/components/modal/index.js +2 -1
  23. package/components/modal/modal.d.ts +5 -0
  24. package/components/pagination/index.cjs +1 -1
  25. package/components/pagination/index.js +1 -1
  26. package/components/progressbar/index.cjs +1 -1
  27. package/components/progressbar/index.js +1 -1
  28. package/components/rating/index.cjs +1 -1
  29. package/components/rating/index.js +1 -1
  30. package/components/select/index.cjs +1 -1
  31. package/components/select/index.js +1 -1
  32. package/components/slider/index.cjs +1 -1
  33. package/components/slider/index.js +1 -1
  34. package/components/toast/index.cjs +1 -1
  35. package/components/toast/index.js +1 -1
  36. package/components/tree/index.cjs +1 -1
  37. package/components/tree/index.js +1 -1
  38. package/config.cjs +2 -2
  39. package/config.d.ts +5 -0
  40. package/config.js +2 -2
  41. package/{dom-gfxqXJpK.js → dom-Bcg9ORcA.js} +64 -54
  42. package/{dom-CuBx1JPZ.cjs → dom-C2gi9OCP.cjs} +47 -37
  43. package/drawer-D5SO73ew.js +251 -0
  44. package/drawer-DP7UPojk.cjs +250 -0
  45. package/index.cjs +19 -13
  46. package/index.d.ts +1 -0
  47. package/index.js +36 -30
  48. package/isFocusable-Ckwus82R.js +32 -0
  49. package/isFocusable-DfzDLeAN.cjs +31 -0
  50. package/{modal-D3wGIDlj.js → modal-CAvQW-vo.js} +26 -32
  51. package/{modal-BEnQ6c5M.cjs → modal-DiXZXYjR.cjs} +27 -33
  52. package/package.json +1 -1
  53. package/{pagination-B97wBLok.js → pagination-BKbMROV6.js} +4 -4
  54. package/{pagination-C1TT-oea.cjs → pagination-DvZ2rLsz.cjs} +4 -4
  55. package/{progressbar-BWBlRk_Y.js → progressbar-D8zIcm9n.js} +2 -2
  56. package/{progressbar-CRvhNB5R.cjs → progressbar-i9xfAxb7.cjs} +2 -2
  57. package/{promise-XSP94FjG.js → promise-Y53vc4Ia.js} +5 -5
  58. package/{rating-BXvy9kXq.js → rating-DEXTGWCU.js} +2 -2
  59. package/{rating-DAb6nR67.cjs → rating-DmG4oUkr.cjs} +2 -2
  60. package/scrollbars-CT87iv_6.cjs +30 -0
  61. package/scrollbars-CcxSrnCx.js +31 -0
  62. package/{select-BdjpnE7_.js → select-Bw68Xdu5.js} +4 -5
  63. package/{select-C0rJJQfl.cjs → select-MFjAnIt7.cjs} +4 -5
  64. package/services/extendWidget.cjs +2 -2
  65. package/services/extendWidget.js +2 -2
  66. package/services/floatingUI.cjs +8 -29
  67. package/services/floatingUI.js +9 -30
  68. package/services/focusElement.cjs +46 -0
  69. package/services/focusElement.d.ts +9 -0
  70. package/services/focusElement.js +46 -0
  71. package/services/focustrack.cjs +1 -1
  72. package/services/focustrack.js +1 -1
  73. package/services/matchMedia.cjs +1 -1
  74. package/services/matchMedia.js +1 -1
  75. package/services/navManager.cjs +7 -37
  76. package/services/navManager.js +6 -36
  77. package/services/portal.cjs +7 -10
  78. package/services/portal.js +7 -10
  79. package/services/resizeObserver.cjs +2 -2
  80. package/services/resizeObserver.js +2 -2
  81. package/services/siblingsInert.cjs +9 -8
  82. package/services/siblingsInert.d.ts +13 -3
  83. package/services/siblingsInert.js +9 -8
  84. package/services/transitions/baseTransitions.cjs +9 -10
  85. package/services/transitions/baseTransitions.js +10 -11
  86. package/services/transitions/collapse.cjs +1 -1
  87. package/services/transitions/collapse.js +1 -1
  88. package/services/transitions/cssTransitions.cjs +1 -1
  89. package/services/transitions/cssTransitions.js +2 -2
  90. package/services/transitions/simpleClassTransition.cjs +1 -1
  91. package/services/transitions/simpleClassTransition.js +1 -1
  92. package/{slider-BmxQ3A_u.js → slider-Cx50Eghd.js} +14 -24
  93. package/{slider-DSx5CAce.cjs → slider-Dl4Trh32.cjs} +14 -24
  94. package/toaster-UDglac7x.cjs +187 -0
  95. package/toaster-_p1GTtHI.js +188 -0
  96. package/{tree-BFrXdJox.js → tree-DV0tfPlZ.js} +7 -11
  97. package/{tree-Pvr2rZ-D.cjs → tree-rGHtmCnS.cjs} +7 -11
  98. package/utils/directive.cjs +3 -1
  99. package/utils/directive.d.ts +47 -0
  100. package/utils/directive.js +14 -12
  101. package/utils/stores.cjs +8 -9
  102. package/utils/stores.js +8 -9
  103. package/utils/writables.cjs +1 -1
  104. package/utils/writables.js +1 -1
  105. package/{writables-Bn3uhKEG.cjs → writables-DcGT98a7.cjs} +1 -1
  106. package/{writables-CgpOQ4hA.js → writables-e0tyaQpe.js} +1 -1
  107. package/toaster-Cayg6Lbq.cjs +0 -209
  108. package/toaster-XfzHDqz_.js +0 -210
@@ -4,7 +4,7 @@ const dom = require("@floating-ui/dom");
4
4
  const services_floatingUI = require("./services/floatingUI.cjs");
5
5
  const services_focustrack = require("./services/focustrack.cjs");
6
6
  const services_navManager = require("./services/navManager.cjs");
7
- const utils_directive = require("./dom-CuBx1JPZ.cjs");
7
+ const utils_directive = require("./dom-C2gi9OCP.cjs");
8
8
  const utils_func = require("./utils/func.cjs");
9
9
  const utils_stores = require("./utils/stores.cjs");
10
10
  const utils_widget = require("./utils/widget.cjs");
@@ -71,7 +71,7 @@ const createSelect = utils_widget.createWidgetFactory("select", (config) => {
71
71
  return selectedItemsContext;
72
72
  });
73
73
  const selectedContexts$ = tansu.computed(() => [...selectedContextsMap$().values()]);
74
- const highlightedIndex$ = function() {
74
+ const highlightedIndex$ = (function() {
75
75
  const store = tansu.writable(0);
76
76
  return tansu.asWritable(store, (index) => {
77
77
  const { length } = visibleItems$();
@@ -86,7 +86,7 @@ const createSelect = utils_widget.createWidgetFactory("select", (config) => {
86
86
  }
87
87
  store.set(index);
88
88
  });
89
- }();
89
+ })();
90
90
  const itemContexts$ = tansu.computed(() => {
91
91
  const itemContexts = /* @__PURE__ */ new Map();
92
92
  if (open$()) {
@@ -319,7 +319,6 @@ const createSelect = utils_widget.createWidgetFactory("select", (config) => {
319
319
  return;
320
320
  }
321
321
  selected$.update((selectedItems) => {
322
- var _a;
323
322
  selectedItems = [...selectedItems];
324
323
  if (selected && !isInSelected) {
325
324
  selectedItems.push(item);
@@ -327,7 +326,7 @@ const createSelect = utils_widget.createWidgetFactory("select", (config) => {
327
326
  const index = selectedItems.findIndex((item2) => itemIdFn(item2) === itemId);
328
327
  selectedItems.splice(index, 1);
329
328
  }
330
- (_a = onSelectedChange$()) == null ? void 0 : _a(selectedItems);
329
+ onSelectedChange$()?.(selectedItems);
331
330
  return selectedItems;
332
331
  });
333
332
  },
@@ -6,9 +6,9 @@ const types = require("../types.cjs");
6
6
  const extendWidgetProps = (factory, extraPropsDefaults, extraPropsConfig, overrideDefaults) => {
7
7
  const extendedFactory = (propsConfig) => {
8
8
  const extraPropsWritables = utils_stores.writablesWithDefault(extraPropsDefaults, propsConfig, extraPropsConfig);
9
- const propsConfigConfig = propsConfig == null ? void 0 : propsConfig.config;
9
+ const propsConfigConfig = propsConfig?.config;
10
10
  const config = utils_stores.isStore(propsConfigConfig) ? tansu.computed(() => ({ ...overrideDefaults, ...propsConfigConfig() })) : { ...overrideDefaults, ...propsConfigConfig ?? {} };
11
- const widget = factory({ props: propsConfig == null ? void 0 : propsConfig.props, config });
11
+ const widget = factory({ props: propsConfig?.props, config });
12
12
  return {
13
13
  ...widget,
14
14
  ...utils_stores.stateStores({ ...widget.stores, ...extraPropsWritables }),
@@ -4,9 +4,9 @@ import { FACTORY_WIDGET_NAME } from "../types.js";
4
4
  const extendWidgetProps = (factory, extraPropsDefaults, extraPropsConfig, overrideDefaults) => {
5
5
  const extendedFactory = (propsConfig) => {
6
6
  const extraPropsWritables = writablesWithDefault(extraPropsDefaults, propsConfig, extraPropsConfig);
7
- const propsConfigConfig = propsConfig == null ? void 0 : propsConfig.config;
7
+ const propsConfigConfig = propsConfig?.config;
8
8
  const config = isStore(propsConfigConfig) ? computed(() => ({ ...overrideDefaults, ...propsConfigConfig() })) : { ...overrideDefaults, ...propsConfigConfig ?? {} };
9
- const widget = factory({ props: propsConfig == null ? void 0 : propsConfig.props, config });
9
+ const widget = factory({ props: propsConfig?.props, config });
10
10
  return {
11
11
  ...widget,
12
12
  ...stateStores({ ...widget.stores, ...extraPropsWritables }),
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const tansu = require("@amadeus-it-group/tansu");
4
4
  const dom = require("@floating-ui/dom");
5
- const utils_directive = require("../dom-CuBx1JPZ.cjs");
5
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
6
6
  const promise = require("../promise-CxCD3NYv.cjs");
7
7
  const utils_stores = require("../utils/stores.cjs");
8
8
  const defaultConfig = {
@@ -59,34 +59,13 @@ const createFloatingUI = (propsConfig) => {
59
59
  null
60
60
  );
61
61
  const position$ = promise.promiseStoreToValueStore(promisePosition$, null);
62
- const placement$ = tansu.computed(() => {
63
- var _a;
64
- return (_a = position$()) == null ? void 0 : _a.placement;
65
- });
66
- const middlewareData$ = tansu.computed(() => {
67
- var _a;
68
- return (_a = position$()) == null ? void 0 : _a.middlewareData;
69
- });
70
- const x$ = tansu.computed(() => {
71
- var _a;
72
- return (_a = position$()) == null ? void 0 : _a.x;
73
- });
74
- const y$ = tansu.computed(() => {
75
- var _a;
76
- return (_a = position$()) == null ? void 0 : _a.y;
77
- });
78
- const strategy$ = tansu.computed(() => {
79
- var _a;
80
- return (_a = position$()) == null ? void 0 : _a.strategy;
81
- });
82
- const arrowX$ = tansu.computed(() => {
83
- var _a, _b;
84
- return (_b = (_a = middlewareData$()) == null ? void 0 : _a.arrow) == null ? void 0 : _b.x;
85
- });
86
- const arrowY$ = tansu.computed(() => {
87
- var _a, _b;
88
- return (_b = (_a = middlewareData$()) == null ? void 0 : _a.arrow) == null ? void 0 : _b.y;
89
- });
62
+ const placement$ = tansu.computed(() => position$()?.placement);
63
+ const middlewareData$ = tansu.computed(() => position$()?.middlewareData);
64
+ const x$ = tansu.computed(() => position$()?.x);
65
+ const y$ = tansu.computed(() => position$()?.y);
66
+ const strategy$ = tansu.computed(() => position$()?.strategy);
67
+ const arrowX$ = tansu.computed(() => middlewareData$()?.arrow?.x);
68
+ const arrowY$ = tansu.computed(() => middlewareData$()?.arrow?.y);
90
69
  const floatingStyleApplyAction$ = tansu.computed(() => {
91
70
  const floatingElement = floatingElement$();
92
71
  if (floatingElement) {
@@ -1,7 +1,7 @@
1
1
  import { computed, derived } from "@amadeus-it-group/tansu";
2
2
  import { arrow, autoUpdate, computePosition } from "@floating-ui/dom";
3
- import { j as createBrowserStoreDirective, k as mergeDirectives, d as directiveSubscribe } from "../dom-gfxqXJpK.js";
4
- import { p as promiseStoreToValueStore } from "../promise-XSP94FjG.js";
3
+ import { l as createBrowserStoreDirective, n as mergeDirectives, d as directiveSubscribe } from "../dom-Bcg9ORcA.js";
4
+ import { a as promiseStoreToValueStore } from "../promise-Y53vc4Ia.js";
5
5
  import { writablesForProps, stateStores } from "../utils/stores.js";
6
6
  const defaultConfig = {
7
7
  computePositionOptions: {},
@@ -57,34 +57,13 @@ const createFloatingUI = (propsConfig) => {
57
57
  null
58
58
  );
59
59
  const position$ = promiseStoreToValueStore(promisePosition$, null);
60
- const placement$ = computed(() => {
61
- var _a;
62
- return (_a = position$()) == null ? void 0 : _a.placement;
63
- });
64
- const middlewareData$ = computed(() => {
65
- var _a;
66
- return (_a = position$()) == null ? void 0 : _a.middlewareData;
67
- });
68
- const x$ = computed(() => {
69
- var _a;
70
- return (_a = position$()) == null ? void 0 : _a.x;
71
- });
72
- const y$ = computed(() => {
73
- var _a;
74
- return (_a = position$()) == null ? void 0 : _a.y;
75
- });
76
- const strategy$ = computed(() => {
77
- var _a;
78
- return (_a = position$()) == null ? void 0 : _a.strategy;
79
- });
80
- const arrowX$ = computed(() => {
81
- var _a, _b;
82
- return (_b = (_a = middlewareData$()) == null ? void 0 : _a.arrow) == null ? void 0 : _b.x;
83
- });
84
- const arrowY$ = computed(() => {
85
- var _a, _b;
86
- return (_b = (_a = middlewareData$()) == null ? void 0 : _a.arrow) == null ? void 0 : _b.y;
87
- });
60
+ const placement$ = computed(() => position$()?.placement);
61
+ const middlewareData$ = computed(() => position$()?.middlewareData);
62
+ const x$ = computed(() => position$()?.x);
63
+ const y$ = computed(() => position$()?.y);
64
+ const strategy$ = computed(() => position$()?.strategy);
65
+ const arrowX$ = computed(() => middlewareData$()?.arrow?.x);
66
+ const arrowY$ = computed(() => middlewareData$()?.arrow?.y);
88
67
  const floatingStyleApplyAction$ = computed(() => {
89
68
  const floatingElement = floatingElement$();
90
69
  if (floatingElement) {
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
4
+ const isFocusable = require("../isFocusable-DfzDLeAN.cjs");
5
+ const stack = [];
6
+ let stackProcessPlanned = false;
7
+ const processStack = () => {
8
+ stackProcessPlanned = false;
9
+ const candidates = [];
10
+ while (stack.length > 0) {
11
+ const top = stack[stack.length - 1];
12
+ if (top.element) {
13
+ candidates.push(top.element);
14
+ break;
15
+ } else {
16
+ if (top.previousElement) {
17
+ candidates.push(top.previousElement);
18
+ }
19
+ stack.pop();
20
+ }
21
+ }
22
+ for (const candidate of candidates) {
23
+ if (isFocusable.isFocusable(candidate)) {
24
+ candidate.focus();
25
+ return;
26
+ }
27
+ }
28
+ };
29
+ const planProcessStack = () => {
30
+ if (!stackProcessPlanned) {
31
+ stackProcessPlanned = true;
32
+ setTimeout(processStack, 0);
33
+ }
34
+ };
35
+ const focusElement = utils_directive.browserDirective((element) => {
36
+ const stackEntry = { element, previousElement: document.activeElement };
37
+ stack.push(stackEntry);
38
+ planProcessStack();
39
+ return {
40
+ destroy() {
41
+ stackEntry.element = null;
42
+ planProcessStack();
43
+ }
44
+ };
45
+ });
46
+ exports.focusElement = focusElement;
@@ -0,0 +1,9 @@
1
+ import type { Directive } from '../types';
2
+ /**
3
+ * Directive to focus an element and manage focus stack.
4
+ * When the element is destroyed, focus returns to the previous focusable element in the stack.
5
+ *
6
+ * @param element - The HTML element to focus.
7
+ * @returns An object with a destroy method to remove the element from the focus stack.
8
+ */
9
+ export declare const focusElement: Directive;
@@ -0,0 +1,46 @@
1
+ import { b as browserDirective } from "../dom-Bcg9ORcA.js";
2
+ import { i as isFocusable } from "../isFocusable-Ckwus82R.js";
3
+ const stack = [];
4
+ let stackProcessPlanned = false;
5
+ const processStack = () => {
6
+ stackProcessPlanned = false;
7
+ const candidates = [];
8
+ while (stack.length > 0) {
9
+ const top = stack[stack.length - 1];
10
+ if (top.element) {
11
+ candidates.push(top.element);
12
+ break;
13
+ } else {
14
+ if (top.previousElement) {
15
+ candidates.push(top.previousElement);
16
+ }
17
+ stack.pop();
18
+ }
19
+ }
20
+ for (const candidate of candidates) {
21
+ if (isFocusable(candidate)) {
22
+ candidate.focus();
23
+ return;
24
+ }
25
+ }
26
+ };
27
+ const planProcessStack = () => {
28
+ if (!stackProcessPlanned) {
29
+ stackProcessPlanned = true;
30
+ setTimeout(processStack, 0);
31
+ }
32
+ };
33
+ const focusElement = browserDirective((element) => {
34
+ const stackEntry = { element, previousElement: document.activeElement };
35
+ stack.push(stackEntry);
36
+ planProcessStack();
37
+ return {
38
+ destroy() {
39
+ stackEntry.element = null;
40
+ planProcessStack();
41
+ }
42
+ };
43
+ });
44
+ export {
45
+ focusElement
46
+ };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const tansu = require("@amadeus-it-group/tansu");
4
- const utils_directive = require("../dom-CuBx1JPZ.cjs");
4
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
5
5
  const esmEnv = require("esm-env");
6
6
  const evtFocusIn = "focusin";
7
7
  const evtFocusOut = "focusout";
@@ -1,5 +1,5 @@
1
1
  import { readable, computed } from "@amadeus-it-group/tansu";
2
- import { g as createBrowserStoreArrayDirective } from "../dom-gfxqXJpK.js";
2
+ import { h as createBrowserStoreArrayDirective } from "../dom-Bcg9ORcA.js";
3
3
  import { BROWSER } from "esm-env";
4
4
  const evtFocusIn = "focusin";
5
5
  const evtFocusOut = "focusout";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const tansu = require("@amadeus-it-group/tansu");
4
4
  const esmEnv = require("esm-env");
5
- const utils_directive = require("../dom-CuBx1JPZ.cjs");
5
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
6
6
  const utils_stores = require("../utils/stores.cjs");
7
7
  const createMatchMedia = (query) => esmEnv.BROWSER ? tansu.readable(false, {
8
8
  onUse({ set }) {
@@ -1,6 +1,6 @@
1
1
  import { readable } from "@amadeus-it-group/tansu";
2
2
  import { BROWSER } from "esm-env";
3
- import { u as addEvent } from "../dom-gfxqXJpK.js";
3
+ import { w as addEvent } from "../dom-Bcg9ORcA.js";
4
4
  import { false$ } from "../utils/stores.js";
5
5
  const createMatchMedia = (query) => BROWSER ? readable(false, {
6
6
  onUse({ set }) {
@@ -1,37 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const tansu = require("@amadeus-it-group/tansu");
4
- const utils_directive = require("../dom-CuBx1JPZ.cjs");
5
- const isInertOrInvisible = (element) => {
6
- let curElement = element;
7
- while (curElement) {
8
- const style = getComputedStyle(curElement);
9
- if (curElement.inert || curElement.hidden || style.display === "none" || style.visibility === "hidden") {
10
- return true;
11
- }
12
- curElement = curElement.parentElement;
13
- }
14
- return false;
15
- };
16
- const checkNotDisabled = (element) => {
17
- var _a;
18
- if (element.disabled) {
19
- return false;
20
- }
21
- const parentFieldset = (_a = element.parentElement) == null ? void 0 : _a.closest("fieldset");
22
- return parentFieldset ? checkNotDisabled(parentFieldset) : true;
23
- };
24
- const isFocusableOtherTags = (element) => element.isContentEditable || !!element.hasAttribute("tabindex");
25
- const isFocusableByTagName = {
26
- INPUT: (element) => element.type !== "hidden" && checkNotDisabled(element),
27
- SELECT: checkNotDisabled,
28
- TEXTAREA: checkNotDisabled,
29
- BUTTON: checkNotDisabled,
30
- A: (element) => !!element.href || isFocusableOtherTags(element)
31
- };
32
- const isFocusable = (element) => {
33
- return document.contains(element) && !isInertOrInvisible(element) && (isFocusableByTagName[element.tagName] ?? isFocusableOtherTags)(element);
34
- };
4
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
5
+ const isFocusable = require("../isFocusable-DfzDLeAN.cjs");
35
6
  const compareDomOrder = (element1, element2) => {
36
7
  if (element1 === element2) {
37
8
  return 0;
@@ -107,7 +78,7 @@ const createNavManager = () => {
107
78
  };
108
79
  const preventDefaultIfRelevant = (value, event) => {
109
80
  if (value) {
110
- event == null ? void 0 : event.preventDefault();
81
+ event?.preventDefault();
111
82
  }
112
83
  return value;
113
84
  };
@@ -115,7 +86,7 @@ const createNavManager = () => {
115
86
  const array = elementsInDomOrder$();
116
87
  while (index >= 0 && index < array.length) {
117
88
  const newItem = array[index];
118
- if (isFocusable(newItem)) {
89
+ if (isFocusable.isFocusable(newItem)) {
119
90
  newItem.focus();
120
91
  if (moveDirection != 0 && isTextInput(newItem)) {
121
92
  const changeDirection = ancestorDirection() !== getTextDirection(newItem);
@@ -134,7 +105,7 @@ const createNavManager = () => {
134
105
  };
135
106
  const createFocusNeighbour = (moveDirection) => ({
136
107
  event,
137
- referenceElement = (event == null ? void 0 : event.target) ?? document.activeElement
108
+ referenceElement = event?.target ?? document.activeElement
138
109
  } = {}) => {
139
110
  const curIndex = referenceElement ? elementsInDomOrder$().indexOf(referenceElement) : -1;
140
111
  if (curIndex > -1) {
@@ -144,19 +115,18 @@ const createNavManager = () => {
144
115
  };
145
116
  const directive = utils_directive.browserDirective((directiveElement, config) => {
146
117
  const onKeyDown = (event) => {
147
- var _a;
148
118
  if (isInternalInputNavigation(event)) {
149
119
  return;
150
120
  }
151
121
  const keyName = getKeyName(event);
152
- const handler = (_a = config.keys) == null ? void 0 : _a[keyName];
122
+ const handler = config.keys?.[keyName];
153
123
  if (handler) {
154
124
  refreshElements(false);
155
125
  handler({ event, directiveElement, navManager, context: config.context });
156
126
  }
157
127
  };
158
128
  directiveElement.addEventListener("keydown", onKeyDown);
159
- const unregister = directiveInstances$.register(() => ((config == null ? void 0 : config.selector) ?? defaultSelector)(directiveElement));
129
+ const unregister = directiveInstances$.register(() => (config?.selector ?? defaultSelector)(directiveElement));
160
130
  return {
161
131
  update(newConfig) {
162
132
  config = newConfig;
@@ -1,35 +1,6 @@
1
1
  import { writable, computed } from "@amadeus-it-group/tansu";
2
- import { r as registrationArray, y as computeCommonAncestor, b as browserDirective } from "../dom-gfxqXJpK.js";
3
- const isInertOrInvisible = (element) => {
4
- let curElement = element;
5
- while (curElement) {
6
- const style = getComputedStyle(curElement);
7
- if (curElement.inert || curElement.hidden || style.display === "none" || style.visibility === "hidden") {
8
- return true;
9
- }
10
- curElement = curElement.parentElement;
11
- }
12
- return false;
13
- };
14
- const checkNotDisabled = (element) => {
15
- var _a;
16
- if (element.disabled) {
17
- return false;
18
- }
19
- const parentFieldset = (_a = element.parentElement) == null ? void 0 : _a.closest("fieldset");
20
- return parentFieldset ? checkNotDisabled(parentFieldset) : true;
21
- };
22
- const isFocusableOtherTags = (element) => element.isContentEditable || !!element.hasAttribute("tabindex");
23
- const isFocusableByTagName = {
24
- INPUT: (element) => element.type !== "hidden" && checkNotDisabled(element),
25
- SELECT: checkNotDisabled,
26
- TEXTAREA: checkNotDisabled,
27
- BUTTON: checkNotDisabled,
28
- A: (element) => !!element.href || isFocusableOtherTags(element)
29
- };
30
- const isFocusable = (element) => {
31
- return document.contains(element) && !isInertOrInvisible(element) && (isFocusableByTagName[element.tagName] ?? isFocusableOtherTags)(element);
32
- };
2
+ import { r as registrationArray, A as computeCommonAncestor, b as browserDirective } from "../dom-Bcg9ORcA.js";
3
+ import { i as isFocusable } from "../isFocusable-Ckwus82R.js";
33
4
  const compareDomOrder = (element1, element2) => {
34
5
  if (element1 === element2) {
35
6
  return 0;
@@ -105,7 +76,7 @@ const createNavManager = () => {
105
76
  };
106
77
  const preventDefaultIfRelevant = (value, event) => {
107
78
  if (value) {
108
- event == null ? void 0 : event.preventDefault();
79
+ event?.preventDefault();
109
80
  }
110
81
  return value;
111
82
  };
@@ -132,7 +103,7 @@ const createNavManager = () => {
132
103
  };
133
104
  const createFocusNeighbour = (moveDirection) => ({
134
105
  event,
135
- referenceElement = (event == null ? void 0 : event.target) ?? document.activeElement
106
+ referenceElement = event?.target ?? document.activeElement
136
107
  } = {}) => {
137
108
  const curIndex = referenceElement ? elementsInDomOrder$().indexOf(referenceElement) : -1;
138
109
  if (curIndex > -1) {
@@ -142,19 +113,18 @@ const createNavManager = () => {
142
113
  };
143
114
  const directive = browserDirective((directiveElement, config) => {
144
115
  const onKeyDown = (event) => {
145
- var _a;
146
116
  if (isInternalInputNavigation(event)) {
147
117
  return;
148
118
  }
149
119
  const keyName = getKeyName(event);
150
- const handler = (_a = config.keys) == null ? void 0 : _a[keyName];
120
+ const handler = config.keys?.[keyName];
151
121
  if (handler) {
152
122
  refreshElements(false);
153
123
  handler({ event, directiveElement, navManager, context: config.context });
154
124
  }
155
125
  };
156
126
  directiveElement.addEventListener("keydown", onKeyDown);
157
- const unregister = directiveInstances$.register(() => ((config == null ? void 0 : config.selector) ?? defaultSelector)(directiveElement));
127
+ const unregister = directiveInstances$.register(() => (config?.selector ?? defaultSelector)(directiveElement));
158
128
  return {
159
129
  update(newConfig) {
160
130
  config = newConfig;
@@ -1,27 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const utils_directive = require("../dom-CuBx1JPZ.cjs");
3
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
4
4
  const portal = utils_directive.browserDirective((content, newArg) => {
5
5
  let arg;
6
6
  let replaceComment;
7
7
  const removeReplaceComment = () => {
8
- var _a;
9
8
  if (replaceComment) {
10
- (_a = replaceComment.parentNode) == null ? void 0 : _a.replaceChild(content, replaceComment);
9
+ replaceComment.parentNode?.replaceChild(content, replaceComment);
11
10
  replaceComment = null;
12
11
  }
13
12
  };
14
13
  const update = (newArg2) => {
15
- var _a, _b;
16
- if (newArg2 !== arg && ((newArg2 == null ? void 0 : newArg2.container) !== (arg == null ? void 0 : arg.container) || (newArg2 == null ? void 0 : newArg2.insertBefore) !== (arg == null ? void 0 : arg.insertBefore))) {
14
+ if (newArg2 !== arg && (newArg2?.container !== arg?.container || newArg2?.insertBefore !== arg?.insertBefore)) {
17
15
  arg = newArg2;
18
- const container = (arg == null ? void 0 : arg.container) ?? ((_a = arg == null ? void 0 : arg.insertBefore) == null ? void 0 : _a.parentElement);
16
+ const container = arg?.container ?? arg?.insertBefore?.parentElement;
19
17
  if (container) {
20
- const insertBefore = (arg == null ? void 0 : arg.insertBefore) ?? null;
18
+ const insertBefore = arg?.insertBefore ?? null;
21
19
  const moveNeeded = content.parentElement !== container || content.nextSibling !== insertBefore;
22
20
  if (moveNeeded) {
23
21
  if (!replaceComment) {
24
- replaceComment = (_b = content.parentNode) == null ? void 0 : _b.insertBefore(content.ownerDocument.createComment("portal"), content);
22
+ replaceComment = content.parentNode?.insertBefore(content.ownerDocument.createComment("portal"), content);
25
23
  }
26
24
  container.insertBefore(content, insertBefore);
27
25
  }
@@ -34,9 +32,8 @@ const portal = utils_directive.browserDirective((content, newArg) => {
34
32
  return {
35
33
  update,
36
34
  destroy: () => {
37
- var _a;
38
35
  removeReplaceComment();
39
- (_a = content.parentNode) == null ? void 0 : _a.removeChild(content);
36
+ content.parentNode?.removeChild(content);
40
37
  }
41
38
  };
42
39
  });
@@ -1,25 +1,23 @@
1
- import { b as browserDirective } from "../dom-gfxqXJpK.js";
1
+ import { b as browserDirective } from "../dom-Bcg9ORcA.js";
2
2
  const portal = browserDirective((content, newArg) => {
3
3
  let arg;
4
4
  let replaceComment;
5
5
  const removeReplaceComment = () => {
6
- var _a;
7
6
  if (replaceComment) {
8
- (_a = replaceComment.parentNode) == null ? void 0 : _a.replaceChild(content, replaceComment);
7
+ replaceComment.parentNode?.replaceChild(content, replaceComment);
9
8
  replaceComment = null;
10
9
  }
11
10
  };
12
11
  const update = (newArg2) => {
13
- var _a, _b;
14
- if (newArg2 !== arg && ((newArg2 == null ? void 0 : newArg2.container) !== (arg == null ? void 0 : arg.container) || (newArg2 == null ? void 0 : newArg2.insertBefore) !== (arg == null ? void 0 : arg.insertBefore))) {
12
+ if (newArg2 !== arg && (newArg2?.container !== arg?.container || newArg2?.insertBefore !== arg?.insertBefore)) {
15
13
  arg = newArg2;
16
- const container = (arg == null ? void 0 : arg.container) ?? ((_a = arg == null ? void 0 : arg.insertBefore) == null ? void 0 : _a.parentElement);
14
+ const container = arg?.container ?? arg?.insertBefore?.parentElement;
17
15
  if (container) {
18
- const insertBefore = (arg == null ? void 0 : arg.insertBefore) ?? null;
16
+ const insertBefore = arg?.insertBefore ?? null;
19
17
  const moveNeeded = content.parentElement !== container || content.nextSibling !== insertBefore;
20
18
  if (moveNeeded) {
21
19
  if (!replaceComment) {
22
- replaceComment = (_b = content.parentNode) == null ? void 0 : _b.insertBefore(content.ownerDocument.createComment("portal"), content);
20
+ replaceComment = content.parentNode?.insertBefore(content.ownerDocument.createComment("portal"), content);
23
21
  }
24
22
  container.insertBefore(content, insertBefore);
25
23
  }
@@ -32,9 +30,8 @@ const portal = browserDirective((content, newArg) => {
32
30
  return {
33
31
  update,
34
32
  destroy: () => {
35
- var _a;
36
33
  removeReplaceComment();
37
- (_a = content.parentNode) == null ? void 0 : _a.removeChild(content);
34
+ content.parentNode?.removeChild(content);
38
35
  }
39
36
  };
40
37
  });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const tansu = require("@amadeus-it-group/tansu");
4
- const utils_directive = require("../dom-CuBx1JPZ.cjs");
4
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
5
5
  const utils_func = require("../utils/func.cjs");
6
6
  const createResizeObserver = () => {
7
7
  const { element$, directive } = utils_directive.createBrowserStoreDirective();
@@ -15,7 +15,7 @@ const createResizeObserver = () => {
15
15
  set(entries[0]);
16
16
  });
17
17
  observer.observe(element);
18
- return () => observer == null ? void 0 : observer.disconnect();
18
+ return () => observer?.disconnect();
19
19
  },
20
20
  void 0
21
21
  );
@@ -1,5 +1,5 @@
1
1
  import { derived } from "@amadeus-it-group/tansu";
2
- import { j as createBrowserStoreDirective } from "../dom-gfxqXJpK.js";
2
+ import { l as createBrowserStoreDirective } from "../dom-Bcg9ORcA.js";
3
3
  import { noop } from "../utils/func.js";
4
4
  const createResizeObserver = () => {
5
5
  const { element$, directive } = createBrowserStoreDirective();
@@ -13,7 +13,7 @@ const createResizeObserver = () => {
13
13
  set(entries[0]);
14
14
  });
15
15
  observer.observe(element);
16
- return () => observer == null ? void 0 : observer.disconnect();
16
+ return () => observer?.disconnect();
17
17
  },
18
18
  void 0
19
19
  );
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const tansu = require("@amadeus-it-group/tansu");
4
+ const utils_directive = require("../dom-C2gi9OCP.cjs");
4
5
  const utils_func = require("../utils/func.cjs");
5
- const utils_directive = require("../dom-CuBx1JPZ.cjs");
6
- const internalSetSiblingsInert = (element) => {
6
+ const ignoreInertAttributeName = "data-agnos-ignore-inert";
7
+ const applyInertToSiblingsRecursively = (element) => {
7
8
  const inertValues = /* @__PURE__ */ new Map();
8
9
  const recursiveHelper = (element2) => {
9
10
  const parent = element2.parentElement;
10
11
  if (parent && element2 !== document.body) {
11
12
  Array.from(parent.children).forEach((sibling) => {
12
- if (sibling !== element2 && sibling.nodeName !== "SCRIPT") {
13
+ if (sibling !== element2 && sibling.nodeName !== "SCRIPT" && !sibling.hasAttribute(ignoreInertAttributeName)) {
13
14
  inertValues.set(sibling, sibling.hasAttribute("inert"));
14
15
  sibling.toggleAttribute("inert", true);
15
16
  }
@@ -25,16 +26,16 @@ const internalSetSiblingsInert = (element) => {
25
26
  let internalRevert = utils_func.noop;
26
27
  const setSiblingsInert = (element) => {
27
28
  internalRevert();
28
- internalRevert = element ? internalSetSiblingsInert(element) : utils_func.noop;
29
+ internalRevert = element ? applyInertToSiblingsRecursively(element) : utils_func.noop;
29
30
  };
30
- const { directive: storeArrayDirective, elements$ } = utils_directive.createBrowserStoreArrayDirective();
31
- const lastElement$ = tansu.computed(
31
+ const { directive: storeArrayDirective, elements$ } = utils_directive.createConditionalBrowserStoreArrayDirective();
32
+ const lastTrackedElement$ = tansu.computed(
32
33
  () => {
33
34
  const elements = elements$();
34
35
  return elements[elements.length - 1];
35
36
  },
36
37
  { equal: Object.is }
37
38
  );
38
- const inertAction$ = tansu.computed(() => setSiblingsInert(lastElement$()));
39
- const siblingsInert = utils_directive.mergeDirectives(storeArrayDirective, utils_directive.directiveSubscribe(inertAction$));
39
+ const updateInertState$ = tansu.computed(() => setSiblingsInert(lastTrackedElement$()));
40
+ const siblingsInert = utils_directive.mergeDirectives(storeArrayDirective, utils_directive.directiveSubscribe(updateInertState$));
40
41
  exports.siblingsInert = siblingsInert;