@smwb/ui-react 2.4.0 → 2.4.1

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 (41) hide show
  1. package/dist/components/clickAwayListener/clickAwayListener.js +19 -14
  2. package/dist/components/clickAwayListener/clickAwayListener.js.map +1 -1
  3. package/dist/components/dataDisplay/treeView/treeView.d.ts +5 -2
  4. package/dist/components/dataDisplay/treeView/treeView.js +78 -75
  5. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  6. package/dist/components/feedBack/modal/modal.js +40 -38
  7. package/dist/components/feedBack/modal/modal.js.map +1 -1
  8. package/dist/components/inputs/datePicker/datePicker.js +13 -12
  9. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  10. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +28 -27
  11. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  12. package/dist/components/inputs/selectField/dropdownMenu.js +7 -6
  13. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  14. package/dist/components/inputs/timePicker/timePicker.js +16 -15
  15. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  16. package/dist/components/layout/sheet/sheet.js +102 -92
  17. package/dist/components/layout/sheet/sheet.js.map +1 -1
  18. package/dist/headless/components/clickAwayListener/clickAwayListener.js +19 -14
  19. package/dist/headless/components/clickAwayListener/clickAwayListener.js.map +1 -1
  20. package/dist/headless/components/dataDisplay/treeView/treeView.js +78 -75
  21. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  22. package/dist/headless/components/feedBack/modal/modal.js +42 -40
  23. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  24. package/dist/headless/components/inputs/datePicker/datePicker.js +13 -12
  25. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  26. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +28 -27
  27. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  28. package/dist/headless/components/inputs/selectField/dropdownMenu.js +7 -6
  29. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  30. package/dist/headless/components/inputs/timePicker/timePicker.js +16 -15
  31. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  32. package/dist/headless/components/layout/sheet/sheet.js +95 -85
  33. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  34. package/dist/headless/utils/overlayLayer.js +11 -0
  35. package/dist/headless/utils/overlayLayer.js.map +1 -0
  36. package/dist/index.cjs +2 -2
  37. package/dist/index.cjs.map +1 -1
  38. package/dist/utils/overlayLayer.d.ts +13 -0
  39. package/dist/utils/overlayLayer.js +11 -0
  40. package/dist/utils/overlayLayer.js.map +1 -0
  41. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ /** Attribute marking the root of a portaled overlay layer (modal, sheet wrapper, dropdown, …). */
2
+ export declare const OVERLAY_LAYER_ATTR = "data-smwb-overlay-layer";
3
+ /**
4
+ * True when `event` happened inside an overlay layer that does NOT contain
5
+ * `node` — i.e. `node` sits underneath that layer, so the interaction is not
6
+ * a "click away" from `node`.
7
+ */
8
+ export declare const isEventInForeignOverlay: (event: Event, node: Element) => boolean;
9
+ /**
10
+ * True when `el` belongs to the topmost open overlay layer (or no layers are
11
+ * open). Used to make Escape close only the top layer instead of every layer.
12
+ */
13
+ export declare const isTopOverlayLayer: (el: Element | null | undefined) => boolean;
@@ -0,0 +1,11 @@
1
+ const e = "data-smwb-overlay-layer", r = () => typeof document == "undefined" ? [] : Array.from(document.querySelectorAll(`[${e}]`)), a = (n, o) => typeof n.composedPath != "function" ? !1 : n.composedPath().some((t) => t instanceof Element && t.hasAttribute(e) && !t.contains(o)), s = (n) => {
2
+ if (!n) return !0;
3
+ const o = r(), t = o[o.length - 1];
4
+ return !t || t === n || t.contains(n) || n.contains(t);
5
+ };
6
+ export {
7
+ e as OVERLAY_LAYER_ATTR,
8
+ a as isEventInForeignOverlay,
9
+ s as isTopOverlayLayer
10
+ };
11
+ //# sourceMappingURL=overlayLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlayLayer.js","sources":["../../src/utils/overlayLayer.ts"],"sourcesContent":["/** Attribute marking the root of a portaled overlay layer (modal, sheet wrapper, dropdown, …). */\nexport const OVERLAY_LAYER_ATTR = \"data-smwb-overlay-layer\";\n\n/** All open overlay layers in document order (last = topmost). */\nconst overlayLayers = (): Element[] =>\n typeof document === \"undefined\" ? [] : Array.from(document.querySelectorAll(`[${OVERLAY_LAYER_ATTR}]`));\n\n/**\n * True when `event` happened inside an overlay layer that does NOT contain\n * `node` — i.e. `node` sits underneath that layer, so the interaction is not\n * a \"click away\" from `node`.\n */\nexport const isEventInForeignOverlay = (event: Event, node: Element): boolean => {\n if (typeof event.composedPath !== \"function\") return false;\n return event\n .composedPath()\n .some((el) => el instanceof Element && el.hasAttribute(OVERLAY_LAYER_ATTR) && !el.contains(node));\n};\n\n/**\n * True when `el` belongs to the topmost open overlay layer (or no layers are\n * open). Used to make Escape close only the top layer instead of every layer.\n */\nexport const isTopOverlayLayer = (el: Element | null | undefined): boolean => {\n if (!el) return true;\n const all = overlayLayers();\n const top = all[all.length - 1];\n return !top || top === el || top.contains(el) || el.contains(top);\n};\n"],"names":["OVERLAY_LAYER_ATTR","overlayLayers","isEventInForeignOverlay","event","node","el","isTopOverlayLayer","all","top"],"mappings":"AACO,MAAMA,IAAqB,2BAG5BC,IAAgB,MACpB,OAAO,YAAa,cAAc,CAAA,IAAK,MAAM,KAAK,SAAS,iBAAiB,IAAID,CAAkB,GAAG,CAAC,GAO3FE,IAA0B,CAACC,GAAcC,MAChD,OAAOD,EAAM,gBAAiB,aAAmB,KAC9CA,EACJ,aAAA,EACA,KAAK,CAACE,MAAOA,aAAc,WAAWA,EAAG,aAAaL,CAAkB,KAAK,CAACK,EAAG,SAASD,CAAI,CAAC,GAOvFE,IAAoB,CAACD,MAA4C;AAC5E,MAAI,CAACA,EAAI,QAAO;AAChB,QAAME,IAAMN,EAAA,GACNO,IAAMD,EAAIA,EAAI,SAAS,CAAC;AAC9B,SAAO,CAACC,KAAOA,MAAQH,KAAMG,EAAI,SAASH,CAAE,KAAKA,EAAG,SAASG,CAAG;AAClE;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@smwb/ui-react",
3
3
  "main": "./dist/index.cjs",
4
- "version": "2.4.0",
4
+ "version": "2.4.1",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=20"