@carbon/utilities 0.17.0 → 0.18.0-rc.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 (63) hide show
  1. package/README.md +37 -0
  2. package/es/carousel/index.d.ts +2 -0
  3. package/es/carousel/index.js +3 -1
  4. package/es/chunk-BYypO7fO.js +18 -0
  5. package/es/chunk-Bzxox1sl.d.ts +48 -0
  6. package/es/chunk-CYAX4TFi.js +80 -0
  7. package/es/chunk-Ci2WlFE4.js +437 -0
  8. package/es/chunk-DPUOAfLB.d.ts +55 -0
  9. package/{types/datePartsOrder/datePartsOrder.d.ts → es/datePartsOrder/index.d.ts} +6 -4
  10. package/es/datePartsOrder/index.js +21 -1
  11. package/es/dateTimeFormat/index.d.ts +9 -0
  12. package/es/dateTimeFormat/index.js +16 -1
  13. package/{types/documentLang/documentLang.d.ts → es/documentLang/index.d.ts} +5 -3
  14. package/es/documentLang/index.js +69 -1
  15. package/es/index.d.ts +8 -0
  16. package/es/index.js +10 -1
  17. package/es/makeDraggable/index.d.ts +46 -0
  18. package/es/makeDraggable/index.js +82 -1
  19. package/es/overflowHandler/index.d.ts +104 -0
  20. package/es/overflowHandler/index.js +95 -1
  21. package/lib/carousel/index.js +4 -1
  22. package/lib/chunk-C5VBwGBG.js +443 -0
  23. package/lib/chunk-Dc0mzKQx.js +107 -0
  24. package/lib/datePartsOrder/index.js +23 -1
  25. package/lib/dateTimeFormat/index.js +17 -1
  26. package/lib/documentLang/index.js +72 -1
  27. package/lib/index.js +24 -1
  28. package/lib/makeDraggable/index.js +84 -1
  29. package/lib/overflowHandler/index.js +99 -1
  30. package/package.json +29 -12
  31. package/scss/carousel/_carousel.scss +34 -2
  32. package/es/carousel/carousel.js +0 -1
  33. package/es/carousel/swipeEvents.js +0 -1
  34. package/es/carousel/types.js +0 -0
  35. package/es/datePartsOrder/datePartsOrder.js +0 -1
  36. package/es/dateTimeFormat/absolute.js +0 -1
  37. package/es/dateTimeFormat/relative.js +0 -1
  38. package/es/documentLang/documentLang.js +0 -1
  39. package/es/makeDraggable/makeDraggable.js +0 -1
  40. package/es/overflowHandler/overflowHandler.js +0 -1
  41. package/lib/carousel/carousel.js +0 -1
  42. package/lib/carousel/swipeEvents.js +0 -1
  43. package/lib/carousel/types.js +0 -1
  44. package/lib/datePartsOrder/datePartsOrder.js +0 -1
  45. package/lib/dateTimeFormat/absolute.js +0 -1
  46. package/lib/dateTimeFormat/relative.js +0 -1
  47. package/lib/documentLang/documentLang.js +0 -1
  48. package/lib/makeDraggable/makeDraggable.js +0 -1
  49. package/lib/overflowHandler/overflowHandler.js +0 -1
  50. package/types/carousel/carousel.d.ts +0 -14
  51. package/types/carousel/index.d.ts +0 -8
  52. package/types/carousel/swipeEvents.d.ts +0 -9
  53. package/types/carousel/types.d.ts +0 -36
  54. package/types/datePartsOrder/index.d.ts +0 -7
  55. package/types/dateTimeFormat/absolute.d.ts +0 -30
  56. package/types/dateTimeFormat/index.d.ts +0 -12
  57. package/types/dateTimeFormat/relative.d.ts +0 -10
  58. package/types/documentLang/index.d.ts +0 -7
  59. package/types/index.d.ts +0 -13
  60. package/types/makeDraggable/index.d.ts +0 -7
  61. package/types/makeDraggable/makeDraggable.d.ts +0 -38
  62. package/types/overflowHandler/index.d.ts +0 -7
  63. package/types/overflowHandler/overflowHandler.d.ts +0 -85
package/lib/index.js CHANGED
@@ -1 +1,24 @@
1
- "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var f=(t,e,p,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of a(e))!b.call(t,m)&&m!==p&&n(t,m,{get:()=>e[m],enumerable:!(x=i(e,m))||x.enumerable});return t},o=(t,e,p)=>(f(t,e,"default"),p&&f(p,e,"default"));var d=t=>f(n({},"__esModule",{value:!0}),t);var r={};module.exports=d(r);o(r,require("@internationalized/number"),module.exports);o(r,require("./carousel"),module.exports);o(r,require("./datePartsOrder"),module.exports);o(r,require("./dateTimeFormat"),module.exports);o(r,require("./documentLang"),module.exports);o(r,require("./overflowHandler"),module.exports);
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_carousel = require('./chunk-C5VBwGBG.js');
3
+ const require_datePartsOrder_index = require('./datePartsOrder/index.js');
4
+ const require_dateTimeFormat_index = require('./dateTimeFormat/index.js');
5
+ const require_documentLang_index = require('./documentLang/index.js');
6
+ const require_makeDraggable_index = require('./makeDraggable/index.js');
7
+ const require_overflowHandler_index = require('./overflowHandler/index.js');
8
+
9
+ exports.createOverflowHandler = require_overflowHandler_index.createOverflowHandler;
10
+ exports.datePartsOrder = require_datePartsOrder_index.datePartsOrder;
11
+ exports.dateTimeFormat = require_dateTimeFormat_index.dateTimeFormat;
12
+ exports.getDocumentLang = require_documentLang_index.getDocumentLang;
13
+ exports.getSize = require_overflowHandler_index.getSize;
14
+ exports.initCarousel = require_carousel.initCarousel;
15
+ exports.makeDraggable = require_makeDraggable_index.makeDraggable;
16
+ exports.subscribeDocumentLangChange = require_documentLang_index.subscribeDocumentLangChange;
17
+ exports.updateOverflowHandler = require_overflowHandler_index.updateOverflowHandler;
18
+ var _internationalized_number = require("@internationalized/number");
19
+ Object.keys(_internationalized_number).forEach(function (k) {
20
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
21
+ enumerable: true,
22
+ get: function () { return _internationalized_number[k]; }
23
+ });
24
+ });
@@ -1 +1,84 @@
1
- "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(r,o,f,x)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of c(o))!d.call(r,e)&&e!==f&&a(r,e,{get:()=>o[e],enumerable:!(x=b(o,e))||x.enumerable});return r},t=(r,o,f)=>(p(r,o,"default"),f&&p(f,o,"default"));var g=r=>p(a({},"__esModule",{value:!0}),r);var m={};module.exports=g(m);t(m,require("./makeDraggable"),module.exports);
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/makeDraggable/makeDraggable.ts
4
+ /**
5
+ * Makes a given element draggable using a handle element.
6
+ *@param draggable - object which accepts el and optional attributes handle,focusableInHandle,dragStep and shiftDragStep
7
+ */
8
+ const makeDraggable = ({ el, dragHandle, focusableDragHandle, dragStep, shiftDragStep }) => {
9
+ if (dragHandle) {
10
+ dragHandle.style.cursor = "move";
11
+ el.style.cursor = "default";
12
+ } else el.style.cursor = "move";
13
+ let isDragging = false;
14
+ let offsetX = 0;
15
+ let offsetY = 0;
16
+ const dispatch = (type, detail) => {
17
+ const eventInit = {
18
+ detail,
19
+ bubbles: true
20
+ };
21
+ el.dispatchEvent(new CustomEvent(type, eventInit));
22
+ };
23
+ const onKeyDown = (e) => {
24
+ if (e.key === "Enter") isDragging = !isDragging;
25
+ if (isDragging) dispatch("dragstart", { keyboard: true });
26
+ else dispatch("dragend", { keyboard: true });
27
+ if (!isDragging) return;
28
+ const distance = e.shiftKey ? shiftDragStep ?? 32 : dragStep ?? 8;
29
+ switch (e.key) {
30
+ case "Enter":
31
+ case " ":
32
+ e.preventDefault();
33
+ break;
34
+ case "ArrowLeft":
35
+ el.style.left = `${el.offsetLeft - distance}px`;
36
+ break;
37
+ case "ArrowRight":
38
+ el.style.left = `${el.offsetLeft + distance}px`;
39
+ break;
40
+ case "ArrowUp":
41
+ el.style.top = `${el.offsetTop - distance}px`;
42
+ break;
43
+ case "ArrowDown":
44
+ el.style.top = `${el.offsetTop + distance}px`;
45
+ break;
46
+ }
47
+ };
48
+ const onMouseDown = (e) => {
49
+ const target = e.target;
50
+ if (!(target instanceof Node)) return;
51
+ if (!(dragHandle ? dragHandle.contains(target) : el.contains(target))) return;
52
+ offsetX = e.clientX - el.offsetLeft;
53
+ offsetY = e.clientY - el.offsetTop;
54
+ isDragging = true;
55
+ dispatch("dragstart", { mouse: true });
56
+ document.addEventListener("mousemove", onMouseMove);
57
+ document.addEventListener("mouseup", onMouseUp, { once: true });
58
+ };
59
+ const onMouseMove = (e) => {
60
+ if (!isDragging) return;
61
+ el.style.left = `${e.clientX - offsetX}px`;
62
+ el.style.top = `${e.clientY - offsetY}px`;
63
+ };
64
+ const onMouseUp = () => {
65
+ if (!isDragging) return;
66
+ isDragging = false;
67
+ dispatch("dragend", { mouse: true });
68
+ document.removeEventListener("mousemove", onMouseMove);
69
+ };
70
+ if (dragHandle) dragHandle.addEventListener("mousedown", onMouseDown);
71
+ else el.addEventListener("mousedown", onMouseDown);
72
+ focusableDragHandle?.addEventListener("keydown", onKeyDown);
73
+ const draggableCleanup = () => {
74
+ if (dragHandle) dragHandle.removeEventListener("mousedown", onMouseDown);
75
+ else el.removeEventListener("mousedown", onMouseDown);
76
+ focusableDragHandle?.removeEventListener("keydown", onKeyDown);
77
+ document.removeEventListener("mousemove", onMouseMove);
78
+ document.removeEventListener("mouseup", onMouseUp);
79
+ };
80
+ return { cleanup: draggableCleanup };
81
+ };
82
+
83
+ //#endregion
84
+ exports.makeDraggable = makeDraggable;
@@ -1 +1,99 @@
1
- "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(r,o,f,x)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of c(o))!d.call(r,e)&&e!==f&&a(r,e,{get:()=>o[e],enumerable:!(x=b(o,e))||x.enumerable});return r},t=(r,o,f)=>(p(r,o,"default"),f&&p(f,o,"default"));var g=r=>p(a({},"__esModule",{value:!0}),r);var m={};module.exports=g(m);t(m,require("./overflowHandler"),module.exports);
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/overflowHandler/overflowHandler.ts
4
+ /**
5
+ * Copyright IBM Corp. 2025, 2026
6
+ *
7
+ * This source code is licensed under the Apache-2.0 license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ /**
11
+ * Calculates the size (width or height) of a given HTML element.
12
+ *
13
+ * This function performs an expensive calculation by temporarily changing the
14
+ * display style of the element if it is not currently visible. It then uses
15
+ * `getBoundingClientRect` to retrieve the size of the element.
16
+ *
17
+ * @param el - The HTML element whose size is to be calculated.
18
+ * @param dimension - The dimension to measure ('width' or 'height').
19
+ * @returns The size of the element in pixels. Returns 0 if the element is not provided.
20
+ */
21
+ function getSize(el, dimension) {
22
+ if (!el) return 0;
23
+ const originalDisplay = el.style.display;
24
+ if (!el.offsetParent && getComputedStyle(el).display === "none") el.style.display = "inline-block";
25
+ const size = el.getBoundingClientRect()[dimension];
26
+ el.style.display = originalDisplay;
27
+ return size;
28
+ }
29
+ /**
30
+ * Updates the overflow handler by determining which items should be visible and which should be hidden.
31
+ *
32
+ * @param options - Configuration options for updating the overflow handler.
33
+ * @returns An array of hidden items after the update.
34
+ */
35
+ function updateOverflowHandler({ container, items, offset, sizes, fixedSizes, offsetSize, maxVisibleItems, dimension, onChange, previousHiddenItems = [] }) {
36
+ const containerSize = dimension === "width" ? container.clientWidth : container.clientHeight;
37
+ let visibleItems = [];
38
+ let hiddenItems = [];
39
+ const totalSize = sizes.reduce((sum, size) => sum + size, 0);
40
+ const totalFixedSize = fixedSizes.reduce((sum, size) => sum + size, 0);
41
+ if (totalSize + totalFixedSize <= containerSize) {
42
+ visibleItems = maxVisibleItems ? items.slice(0, maxVisibleItems) : [...items];
43
+ hiddenItems = maxVisibleItems ? items.slice(maxVisibleItems) : [];
44
+ } else {
45
+ const available = containerSize - offsetSize;
46
+ let accumulated = 0;
47
+ for (let i = 0; i < items.length; i++) {
48
+ const size = sizes[i];
49
+ if (accumulated + size + totalFixedSize <= available && (!maxVisibleItems || visibleItems.length < maxVisibleItems)) {
50
+ visibleItems.push(items[i]);
51
+ accumulated += size;
52
+ } else hiddenItems.push(items[i]);
53
+ }
54
+ }
55
+ if (previousHiddenItems.length === hiddenItems.length && previousHiddenItems.every((item, index) => item === hiddenItems[index])) return previousHiddenItems;
56
+ visibleItems.forEach((item) => item.removeAttribute("data-hidden"));
57
+ hiddenItems.forEach((item) => item.setAttribute("data-hidden", ""));
58
+ if (offset) offset.toggleAttribute("data-hidden", hiddenItems.length === 0);
59
+ onChange(visibleItems, hiddenItems);
60
+ return hiddenItems;
61
+ }
62
+ function createOverflowHandler({ container, maxVisibleItems, onChange, dimension = "width" }) {
63
+ if (!(container instanceof HTMLElement)) throw new Error("container must be an HTMLElement");
64
+ if (typeof onChange !== "function") throw new Error("onChange must be a function");
65
+ if (maxVisibleItems !== void 0 && (!Number.isInteger(maxVisibleItems) || maxVisibleItems <= 0)) throw new Error("maxVisibleItems must be a positive integer");
66
+ const children = Array.from(container.children).filter((item) => item instanceof HTMLElement);
67
+ const offset = children.find((item) => item.hasAttribute("data-offset"));
68
+ const fixedItems = children.filter((item) => item.hasAttribute("data-fixed"));
69
+ const items = children.filter((item) => item !== offset && !fixedItems.includes(item));
70
+ const fixedSizes = fixedItems.map((item) => getSize(item, dimension));
71
+ const sizes = items.map((item) => getSize(item, dimension));
72
+ const offsetSize = getSize(offset, dimension);
73
+ let previousHiddenItems = [];
74
+ function update() {
75
+ previousHiddenItems = updateOverflowHandler({
76
+ container,
77
+ items,
78
+ offset,
79
+ sizes,
80
+ fixedSizes,
81
+ offsetSize,
82
+ maxVisibleItems,
83
+ dimension,
84
+ onChange,
85
+ previousHiddenItems
86
+ });
87
+ }
88
+ const resizeObserver = new ResizeObserver(() => requestAnimationFrame(update));
89
+ resizeObserver.observe(container);
90
+ requestAnimationFrame(update);
91
+ return { disconnect() {
92
+ resizeObserver.disconnect();
93
+ } };
94
+ }
95
+
96
+ //#endregion
97
+ exports.createOverflowHandler = createOverflowHandler;
98
+ exports.getSize = getSize;
99
+ exports.updateOverflowHandler = updateOverflowHandler;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@carbon/utilities",
3
3
  "description": "Utilities and helpers to drive consistency across software products using the Carbon Design System",
4
- "version": "0.17.0",
4
+ "version": "0.18.0-rc.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
8
- "types": "types/index.d.ts",
8
+ "types": "es/index.d.ts",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/carbon-design-system/carbon.git",
@@ -15,11 +15,32 @@
15
15
  "files": [
16
16
  "es",
17
17
  "lib",
18
- "types",
19
18
  "telemetry.yml",
20
19
  "scss",
21
20
  "index.scss"
22
21
  ],
22
+ "sideEffects": [
23
+ "*.scss",
24
+ "./index.scss",
25
+ "./scss/**"
26
+ ],
27
+ "exports": {
28
+ ".": {
29
+ "types": "./es/index.d.ts",
30
+ "import": "./es/index.js",
31
+ "require": "./lib/index.js",
32
+ "default": "./es/index.js"
33
+ },
34
+ "./index.scss": "./index.scss",
35
+ "./scss/*": "./scss/*",
36
+ "./*": {
37
+ "types": "./es/*/index.d.ts",
38
+ "import": "./es/*/index.js",
39
+ "require": "./lib/*/index.js",
40
+ "default": "./es/*/index.js"
41
+ },
42
+ "./package.json": "./package.json"
43
+ },
23
44
  "keywords": [
24
45
  "ibm",
25
46
  "carbon",
@@ -31,23 +52,19 @@
31
52
  "provenance": true
32
53
  },
33
54
  "scripts": {
34
- "build:es": "esbuild ./src/**/!(*-test).{js,ts} --minify --outdir=es --target=es2020 --format=esm",
35
- "build:cjs": "esbuild ./src/**/!(*-test).{js,ts} --minify --outdir=lib --target=es2020 --format=cjs",
36
- "build:types": "tsc",
37
- "build": "yarn build:es & yarn build:cjs & yarn build:types",
38
- "watch": "yarn build:es --watch & yarn build:cjs --watch",
39
- "clean": "rimraf es lib",
55
+ "build": "yarn clean && tsdown --config tsdown.config.mts",
56
+ "watch": "tsdown --config tsdown.config.mts --watch",
57
+ "clean": "rimraf es lib types",
40
58
  "postinstall": "ibmtelemetry --config=telemetry.yml"
41
59
  },
42
60
  "devDependencies": {
43
- "esbuild": "^0.25.0",
44
61
  "rimraf": "^6.0.1",
45
- "typescript": "^5.7.3",
62
+ "tsdown": "^0.20.3",
46
63
  "typescript-config-carbon": "^0.9.0"
47
64
  },
48
65
  "dependencies": {
49
66
  "@ibm/telemetry-js": "^1.6.1",
50
67
  "@internationalized/number": "^3.6.1"
51
68
  },
52
- "gitHead": "443fbe43ff4bd1df327997b8b0b0ebeee634d002"
69
+ "gitHead": "d901529b78f5b70b49309ad45604fa5ec99a2e69"
53
70
  }
@@ -14,11 +14,11 @@ $animateTime: $duration-moderate-02 !default;
14
14
  @mixin keyframes {
15
15
  @keyframes out-to-active {
16
16
  from {
17
- transform: translateX(0);
17
+ transform: translateX(-100%);
18
18
  }
19
19
 
20
20
  to {
21
- transform: translateX(-100%);
21
+ transform: translateX(-200%);
22
22
  }
23
23
  }
24
24
 
@@ -81,8 +81,40 @@ $animateTime: $duration-moderate-02 !default;
81
81
  }
82
82
  }
83
83
 
84
+ @mixin a11yStyles {
85
+ :host(.#{$prefix}__live-region),
86
+ .#{$prefix}__live-region {
87
+ position: absolute;
88
+ overflow: hidden;
89
+ padding: 0;
90
+ border: 0;
91
+ margin: -1px;
92
+ block-size: 1px;
93
+ clip: rect(0 0 0 0);
94
+ -webkit-clip-path: inset(50%);
95
+ clip-path: inset(50%);
96
+ inline-size: 1px;
97
+ white-space: nowrap;
98
+ }
99
+
100
+ :host(.#{$prefix}__view),
101
+ .#{$prefix}__view {
102
+ visibility: hidden;
103
+ }
104
+
105
+ :host(.#{$prefix}__view-active),
106
+ .#{$prefix}__view-active,
107
+ :host(.#{$prefix}__view-recycle-out),
108
+ .#{$prefix}__view-recycle-out,
109
+ :host(.#{$prefix}__view-recycle-in),
110
+ .#{$prefix}__view-recycle-in {
111
+ visibility: visible;
112
+ }
113
+ }
114
+
84
115
  /// Main styles for view states
85
116
  @mixin viewStyles {
117
+ @include a11yStyles;
86
118
  @include keyframes;
87
119
  @include viewBase('#{$prefix}__view', 80, translateX(0));
88
120
  @include viewBase('#{$prefix}__view-active', 100, translateX(-100%));
@@ -1 +0,0 @@
1
- import{registerSwipeEvents as C}from"./swipeEvents";const X=(l,k)=>{const r="carousel";let s=[0],f=[0];const a={},u=new WeakMap,E=4,{onViewChangeStart:$,onViewChangeEnd:w,excludeSwipeSupport:L,useMaxHeight:V}=k||{},A=(e,t)=>{a[e]=t},R=(e,t)=>{if(e.querySelector(`.${t}`))return;const n=document.createElement("div");for(n.classList.add(`${t}`);e.firstChild;)n.appendChild(e.firstChild);e.appendChild(n)},I=()=>s.reduce((e,t)=>{const n=a[t];return n&&e.push({id:t,elem:n}),e},[]),H=()=>{const e=Object.keys(a).length,t=a[e-1],n=I();return{currentIndex:s[0],lastIndex:parseInt(t?.dataset.index||s[0].toString(),10),totalViews:e,historyStack:n}},y=()=>{f=[...s];const e=H();$?.(e)},M=e=>{if(!e)return;const t=e.dataset.index;if(t&&s[0]===parseInt(t,10)){const n=H();w?.(n)}},W=e=>{const n=Object.keys(a).length-1;return Math.max(0,Math.min(e,n))},T=e=>{const t=W(e);s[0]!==t&&(y(),s=[t,...s],m(!1))},q=e=>{M(e)},z=(e,t,n,o,i)=>{e.classList.add(`${r}__view`),e.classList.toggle(`${r}__view-in-stack`,t&&!n),e.classList.toggle(`${r}__view-active`,t&&n),i&&!o&&e.classList.add(`${r}__view-recycle-in`),!i&&o&&e.classList.add(`${r}__view-recycle-out`)},b=e=>{e.classList.remove(`${r}__view-recycle-in`,`${r}__view-recycle-out`)},x=e=>e*parseFloat(getComputedStyle(document.documentElement).fontSize),_=e=>{const t=x(E);if(l.clientHeight<t){e<t&&(e=t);const o=l.querySelector(`.${r}__itemsWrapper`);o&&(o.style.blockSize=`${e}px`)}},m=e=>{let t=0,n=0;Array.from(d).forEach((o,i)=>{const P=s.findIndex(c=>c===i),v=f.filter(c=>c===i).length,B=f.length>s.length&&f[0]===i&&v>0,G=f.length<s.length&&s[0]===i&&v>0,J=P>-1,K=i===s[0];if(z(o,J,K,B,G),e){A(i,o),setTimeout(()=>{if(V){const h=Array.from(d).map(Q=>Q.scrollHeight);n=Math.max(...h),o.style.position="absolute",_(n)}else(!t||o.offsetHeight<t&&t>x(E))&&(t=o.offsetHeight),o.style.position="absolute",_(t)});const c=h=>{b(o),h.target===a[s[0]]&&q(o)};u.set(o,c),o.addEventListener("animationend",c),o.addEventListener("transitionend",c),o.setAttribute("data-index",i.toString())}}),e&&M(Array.from(d)[0])},p=()=>{const e=s[0]+1;T(e)},g=()=>{s.length-1>=1&&(y(),s=s.slice(1),m(!1))},j=e=>{T(e)},D=()=>({index:s[0],item:a[s[0]]}),O=()=>{Array.from(d).forEach(e=>{b(e)}),f=[0],s=[0],m(!1)},F=()=>{Object.values(a).forEach(e=>{if(!e)return;const t=u.get(e);t&&(e.removeEventListener("animationend",t),e.removeEventListener("transitionend",t)),u.delete(e)}),L||C(l,p,g,!0)},N=e=>{const t=e.querySelector("slot");return t instanceof HTMLSlotElement?t.assignedElements({flatten:!0}).filter(n=>n instanceof HTMLElement):Array.from(e.children).filter(n=>n instanceof HTMLElement)};R(l,`${r}__itemsWrapper`);const S=l.querySelector(`.${r}__itemsWrapper`);if(!(S instanceof HTMLElement))throw new Error("Carousel items wrapper not found");const d=N(S);return l.classList.add(`${r}__view-stack`),m(!0),L||C(l,p,g,!1),{next:p,prev:g,reset:O,goToIndex:j,getActiveItem:D,destroyEvents:F,allViews:a}};export{X as initCarousel};
@@ -1 +0,0 @@
1
- const b=(t,u,d,w)=>{let n=null,l=null,v=0;const M=400;let o=!1,s=null,i=null;const r=e=>{n=e.touches[0].clientX},a=e=>{l=e.touches[0].clientX},m=()=>{if(n!==null&&l!==null){const e=n-l;Math.abs(e)>50&&(e>0?u():d())}n=null,l=null},c=e=>{o=!0,s=e.clientX},h=e=>{o&&(i=e.clientX)},E=()=>{if(o&&s!==null&&i!==null){const e=s-i;Math.abs(e)>50&&(e>0?u():d())}o=!1,s=null,i=null},L=e=>{const f=Date.now();if(Math.abs(e.deltaX)>Math.abs(e.deltaY)&&Math.abs(e.deltaX)>20){if(e.preventDefault(),f-v<M)return;e.deltaX>0?u():d(),v=f}};w&&(t.removeEventListener("touchstart",r),t.removeEventListener("touchmove",a),t.removeEventListener("touchend",m),t.removeEventListener("mousedown",c),t.removeEventListener("mousemove",h),t.removeEventListener("mouseup",E),t.removeEventListener("wheel",L)),t.addEventListener("touchstart",r),t.addEventListener("touchmove",a),t.addEventListener("touchend",m),t.addEventListener("mousedown",c),t.addEventListener("mousemove",h),t.addEventListener("mouseup",E),t.addEventListener("wheel",L)};export{b as registerSwipeEvents};
File without changes
@@ -1 +0,0 @@
1
- const a=new Map;function s(t){const e=a.get(t);if(e)return e;const n=new Intl.DateTimeFormat(t,{year:"numeric",month:"long"}).formatToParts(new Date(2e3,0,1)),d=n.findIndex(r=>r.type==="month"),h=n.findIndex(r=>r.type==="year"),o=d<h?"month-year":"year-month";return a.set(t,o),o}const m=t=>s(t)==="month-year",c={getMonthYearOrder:s,isMonthFirst:m};export{c as datePartsOrder};
@@ -1 +0,0 @@
1
- function i(l,t){return new Intl.DateTimeFormat(t?.locale,{timeStyle:t?.style??"short",timeZone:t?.timeZone}).format(l)}function r(l,t){return new Intl.DateTimeFormat(t?.locale,{dateStyle:t?.style??"medium",timeZone:t?.timeZone}).format(l)}function o(l,t){const e=t?.timeStyle??(t?.style==="tooltip"?"long":t?.style)??"short",m=t?.dateStyle??(t?.style==="tooltip"?"full":t?.style)??"medium";return new Intl.DateTimeFormat(t?.locale,{timeStyle:e,dateStyle:m,timeZone:t?.timeZone}).format(l)}function y(l,t,e){const m=e?.timeStyle===null?void 0:e?.timeStyle??e?.style??"short",a=e?.dateStyle===null?void 0:e?.dateStyle??e?.style??"medium";return new Intl.DateTimeFormat(e?.locale,{timeStyle:m,dateStyle:a,timeZone:e?.timeZone}).formatRange(l,t)}export{o as format,r as formatDate,y as formatRange,i as formatTime};
@@ -1 +0,0 @@
1
- function i(a,o){const t=new Intl.RelativeTimeFormat(o?.locale,{style:o?.style??"long"}),f=typeof a=="number"?new Date(a):a,m=Date.now(),l=Math.floor((m-f.getTime())/1e3),r=Math.floor(l/60),n=Math.floor(r/60),e=Math.floor(n/24),s=Math.floor(e/7),c=Math.floor(s/4),h=Math.floor(e/365);return Math.abs(l)<60?new Intl.RelativeTimeFormat(o?.locale,{numeric:"auto",style:o?.style??"long"}).format(0,"seconds"):Math.abs(r)<60?t.format(r*-1,"minutes"):Math.abs(n)<24?t.format(n*-1,"hours"):Math.abs(e)<7?t.format(e*-1,"days"):Math.abs(s)<4?t.format(s*-1,"weeks"):Math.abs(e)<365?t.format(c*-1,"months"):t.format(h*-1,"years")}export{i as format};
@@ -1 +0,0 @@
1
- const t=typeof document<"u";let o=t?document.documentElement.lang:"",i=!1,n=[],r=!1;function s(){t&&(i||(i=!0,queueMicrotask(()=>{i=!1;const e=document.documentElement.lang;if(e!==o){o=e;for(const u of n)u(e)}})))}function c(){if(!t||r)return;r=!0,new MutationObserver(s).observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]})}function a(){return t&&(document.documentElement.lang||window.navigator.language)||""}function l(e){return t?(r||c(),n.push(e),()=>{n=n.filter(u=>u!==e),n.length===0&&(r=!1)}):()=>{}}export{a as getDocumentLang,l as subscribeDocumentLangChange};
@@ -1 +0,0 @@
1
- const b=({el:e,dragHandle:n,focusableDragHandle:i,dragStep:l,shiftDragStep:p})=>{n?(n.style.cursor="move",e.style.cursor="default"):e.style.cursor="move";let s=!1,f=0,c=0;const r=(t,o)=>{const d={detail:o,bubbles:!0};e.dispatchEvent(new CustomEvent(t,d))},m=t=>{if(t.key==="Enter"&&(s=!s),s?r("dragstart",{keyboard:!0}):r("dragend",{keyboard:!0}),!s)return;const o=t.shiftKey?p??32:l??8;switch(t.key){case"Enter":case" ":t.preventDefault();break;case"ArrowLeft":e.style.left=`${e.offsetLeft-o}px`;break;case"ArrowRight":e.style.left=`${e.offsetLeft+o}px`;break;case"ArrowUp":e.style.top=`${e.offsetTop-o}px`;break;case"ArrowDown":e.style.top=`${e.offsetTop+o}px`;break}},a=t=>{const o=t.target;!(o instanceof Node)||!(n?n.contains(o):e.contains(o))||(f=t.clientX-e.offsetLeft,c=t.clientY-e.offsetTop,s=!0,r("dragstart",{mouse:!0}),document.addEventListener("mousemove",u),document.addEventListener("mouseup",v,{once:!0}))},u=t=>{s&&(e.style.left=`${t.clientX-f}px`,e.style.top=`${t.clientY-c}px`)},v=()=>{s&&(s=!1,r("dragend",{mouse:!0}),document.removeEventListener("mousemove",u))};return n?n.addEventListener("mousedown",a):e.addEventListener("mousedown",a),i?.addEventListener("keydown",m),{cleanup:()=>{n?n.removeEventListener("mousedown",a):e.removeEventListener("mousedown",a),i?.removeEventListener("keydown",m),document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",v)}}};export{b as makeDraggable};
@@ -1 +0,0 @@
1
- function v(e,n){if(!e)return 0;const f=e.style.display;!e.offsetParent&&getComputedStyle(e).display==="none"&&(e.style.display="inline-block");const o=e.getBoundingClientRect()[n];return e.style.display=f,o}function w({container:e,items:n,offset:f,sizes:o,fixedSizes:a,offsetSize:c,maxVisibleItems:l,dimension:m,onChange:E,previousHiddenItems:u=[]}){const H=m==="width"?e.clientWidth:e.clientHeight;let d=[],i=[];const p=o.reduce((r,s)=>r+s,0),t=a.reduce((r,s)=>r+s,0);if(p+t<=H)d=l?n.slice(0,l):[...n],i=l?n.slice(l):[];else{const r=H-c;let s=0;for(let h=0;h<n.length;h++){const g=o[h];s+g+t<=r&&(!l||d.length<l)?(d.push(n[h]),s+=g):i.push(n[h])}}return u.length===i.length&&u.every((r,s)=>r===i[s])?u:(d.forEach(r=>r.removeAttribute("data-hidden")),i.forEach(r=>r.setAttribute("data-hidden","")),f&&f.toggleAttribute("data-hidden",i.length===0),E(d,i),i)}function b({container:e,maxVisibleItems:n,onChange:f,dimension:o="width"}){if(!(e instanceof HTMLElement))throw new Error("container must be an HTMLElement");if(typeof f!="function")throw new Error("onChange must be a function");if(n!==void 0&&(!Number.isInteger(n)||n<=0))throw new Error("maxVisibleItems must be a positive integer");const a=Array.from(e.children).filter(t=>t instanceof HTMLElement),c=a.find(t=>t.hasAttribute("data-offset")),l=a.filter(t=>t.hasAttribute("data-fixed")),m=a.filter(t=>t!==c&&!l.includes(t)),E=l.map(t=>v(t,o)),u=m.map(t=>v(t,o)),H=v(c,o);let d=[];function i(){d=w({container:e,items:m,offset:c,sizes:u,fixedSizes:E,offsetSize:H,maxVisibleItems:n,dimension:o,onChange:f,previousHiddenItems:d})}const p=new ResizeObserver(()=>requestAnimationFrame(i));return p.observe(e),requestAnimationFrame(i),{disconnect(){p.disconnect()}}}export{b as createOverflowHandler,v as getSize,w as updateOverflowHandler};
@@ -1 +0,0 @@
1
- "use strict";var L=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var ee=(i,l)=>{for(var r in l)L(i,r,{get:l[r],enumerable:!0})},te=(i,l,r,n)=>{if(l&&typeof l=="object"||typeof l=="function")for(let a of Y(l))!Z.call(i,a)&&a!==r&&L(i,a,{get:()=>l[a],enumerable:!(n=X(l,a))||n.enumerable});return i};var ne=i=>te(L({},"__esModule",{value:!0}),i);var oe={};ee(oe,{initCarousel:()=>se});module.exports=ne(oe);var H=require("./swipeEvents");const se=(i,l)=>{const r="carousel";let n=[0],a=[0];const f={},p=new WeakMap,y=4,{onViewChangeStart:w,onViewChangeEnd:V,excludeSwipeSupport:M,useMaxHeight:A}=l||{},R=(e,t)=>{f[e]=t},I=(e,t)=>{if(e.querySelector(`.${t}`))return;const s=document.createElement("div");for(s.classList.add(`${t}`);e.firstChild;)s.appendChild(e.firstChild);e.appendChild(s)},W=()=>n.reduce((e,t)=>{const s=f[t];return s&&e.push({id:t,elem:s}),e},[]),T=()=>{const e=Object.keys(f).length,t=f[e-1],s=W();return{currentIndex:n[0],lastIndex:parseInt(t?.dataset.index||n[0].toString(),10),totalViews:e,historyStack:s}},b=()=>{a=[...n];const e=T();w?.(e)},x=e=>{if(!e)return;const t=e.dataset.index;if(t&&n[0]===parseInt(t,10)){const s=T();V?.(s)}},q=e=>{const s=Object.keys(f).length-1;return Math.max(0,Math.min(e,s))},_=e=>{const t=q(e);n[0]!==t&&(b(),n=[t,...n],d(!1))},z=e=>{x(e)},j=(e,t,s,o,c)=>{e.classList.add(`${r}__view`),e.classList.toggle(`${r}__view-in-stack`,t&&!s),e.classList.toggle(`${r}__view-active`,t&&s),c&&!o&&e.classList.add(`${r}__view-recycle-in`),!c&&o&&e.classList.add(`${r}__view-recycle-out`)},S=e=>{e.classList.remove(`${r}__view-recycle-in`,`${r}__view-recycle-out`)},v=e=>e*parseFloat(getComputedStyle(document.documentElement).fontSize),C=e=>{const t=v(y);if(i.clientHeight<t){e<t&&(e=t);const o=i.querySelector(`.${r}__itemsWrapper`);o&&(o.style.blockSize=`${e}px`)}},d=e=>{let t=0,s=0;Array.from(u).forEach((o,c)=>{const B=n.findIndex(m=>m===c),$=a.filter(m=>m===c).length,G=a.length>n.length&&a[0]===c&&$>0,J=a.length<n.length&&n[0]===c&&$>0,K=B>-1,Q=c===n[0];if(j(o,K,Q,G,J),e){R(c,o),setTimeout(()=>{if(A){const E=Array.from(u).map(U=>U.scrollHeight);s=Math.max(...E),o.style.position="absolute",C(s)}else(!t||o.offsetHeight<t&&t>v(y))&&(t=o.offsetHeight),o.style.position="absolute",C(t)});const m=E=>{S(o),E.target===f[n[0]]&&z(o)};p.set(o,m),o.addEventListener("animationend",m),o.addEventListener("transitionend",m),o.setAttribute("data-index",c.toString())}}),e&&x(Array.from(u)[0])},g=()=>{const e=n[0]+1;_(e)},h=()=>{n.length-1>=1&&(b(),n=n.slice(1),d(!1))},D=e=>{_(e)},O=()=>({index:n[0],item:f[n[0]]}),F=()=>{Array.from(u).forEach(e=>{S(e)}),a=[0],n=[0],d(!1)},N=()=>{Object.values(f).forEach(e=>{if(!e)return;const t=p.get(e);t&&(e.removeEventListener("animationend",t),e.removeEventListener("transitionend",t)),p.delete(e)}),M||(0,H.registerSwipeEvents)(i,g,h,!0)},P=e=>{const t=e.querySelector("slot");return t instanceof HTMLSlotElement?t.assignedElements({flatten:!0}).filter(s=>s instanceof HTMLElement):Array.from(e.children).filter(s=>s instanceof HTMLElement)};I(i,`${r}__itemsWrapper`);const k=i.querySelector(`.${r}__itemsWrapper`);if(!(k instanceof HTMLElement))throw new Error("Carousel items wrapper not found");const u=P(k);return i.classList.add(`${r}__view-stack`),d(!0),M||(0,H.registerSwipeEvents)(i,g,h,!1),{next:g,prev:h,reset:F,goToIndex:D,getActiveItem:O,destroyEvents:N,allViews:f}};
@@ -1 +0,0 @@
1
- "use strict";var a=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var D=(e,n)=>{for(var l in n)a(e,l,{get:n[l],enumerable:!0})},T=(e,n,l,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of S(n))!p.call(e,o)&&o!==l&&a(e,o,{get:()=>n[o],enumerable:!(s=H(n,o))||s.enumerable});return e};var g=e=>T(a({},"__esModule",{value:!0}),e);var U={};D(U,{registerSwipeEvents:()=>C});module.exports=g(U);const C=(e,n,l,s)=>{let i=null,u=null,m=0;const b=400;let d=!1,v=null,r=null;const c=t=>{i=t.touches[0].clientX},h=t=>{u=t.touches[0].clientX},E=()=>{if(i!==null&&u!==null){const t=i-u;Math.abs(t)>50&&(t>0?n():l())}i=null,u=null},L=t=>{d=!0,v=t.clientX},f=t=>{d&&(r=t.clientX)},w=()=>{if(d&&v!==null&&r!==null){const t=v-r;Math.abs(t)>50&&(t>0?n():l())}d=!1,v=null,r=null},M=t=>{const X=Date.now();if(Math.abs(t.deltaX)>Math.abs(t.deltaY)&&Math.abs(t.deltaX)>20){if(t.preventDefault(),X-m<b)return;t.deltaX>0?n():l(),m=X}};s&&(e.removeEventListener("touchstart",c),e.removeEventListener("touchmove",h),e.removeEventListener("touchend",E),e.removeEventListener("mousedown",L),e.removeEventListener("mousemove",f),e.removeEventListener("mouseup",w),e.removeEventListener("wheel",M)),e.addEventListener("touchstart",c),e.addEventListener("touchmove",h),e.addEventListener("touchend",E),e.addEventListener("mousedown",L),e.addEventListener("mousemove",f),e.addEventListener("mouseup",w),e.addEventListener("wheel",M)};
@@ -1 +0,0 @@
1
- "use strict";var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var u=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of a(e))!l.call(t,o)&&o!==s&&r(t,o,{get:()=>e[o],enumerable:!(n=i(e,o))||n.enumerable});return t};var d=t=>u(r({},"__esModule",{value:!0}),t);var m={};module.exports=d(m);
@@ -1 +0,0 @@
1
- "use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var g=(t,r)=>{for(var e in r)s(t,e,{get:r[e],enumerable:!0})},p=(t,r,e,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of i(r))!y.call(t,n)&&n!==e&&s(t,n,{get:()=>r[n],enumerable:!(o=c(r,n))||o.enumerable});return t};var O=t=>p(s({},"__esModule",{value:!0}),t);var I={};g(I,{datePartsOrder:()=>x});module.exports=O(I);const h=new Map;function m(t){const r=h.get(t);if(r)return r;const e=new Intl.DateTimeFormat(t,{year:"numeric",month:"long"}).formatToParts(new Date(2e3,0,1)),o=e.findIndex(a=>a.type==="month"),n=e.findIndex(a=>a.type==="year"),d=o<n?"month-year":"year-month";return h.set(t,d),d}const f=t=>m(t)==="month-year",x={getMonthYearOrder:m,isMonthFirst:f};
@@ -1 +0,0 @@
1
- "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var y=(l,t)=>{for(var e in t)n(l,e,{get:t[e],enumerable:!0})},d=(l,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of r(t))!o.call(l,m)&&m!==e&&n(l,m,{get:()=>t[m],enumerable:!(a=i(t,m))||a.enumerable});return l};var S=l=>d(n({},"__esModule",{value:!0}),l);var c={};y(c,{format:()=>u,formatDate:()=>s,formatRange:()=>D,formatTime:()=>f});module.exports=S(c);function f(l,t){return new Intl.DateTimeFormat(t?.locale,{timeStyle:t?.style??"short",timeZone:t?.timeZone}).format(l)}function s(l,t){return new Intl.DateTimeFormat(t?.locale,{dateStyle:t?.style??"medium",timeZone:t?.timeZone}).format(l)}function u(l,t){const e=t?.timeStyle??(t?.style==="tooltip"?"long":t?.style)??"short",a=t?.dateStyle??(t?.style==="tooltip"?"full":t?.style)??"medium";return new Intl.DateTimeFormat(t?.locale,{timeStyle:e,dateStyle:a,timeZone:t?.timeZone}).format(l)}function D(l,t,e){const a=e?.timeStyle===null?void 0:e?.timeStyle??e?.style??"short",m=e?.dateStyle===null?void 0:e?.dateStyle??e?.style??"medium";return new Intl.DateTimeFormat(e?.locale,{timeStyle:a,dateStyle:m,timeZone:e?.timeZone}).formatRange(l,t)}
@@ -1 +0,0 @@
1
- "use strict";var m=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var b=(e,t)=>{for(var o in t)m(e,o,{get:t[o],enumerable:!0})},w=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of M(t))!y.call(e,a)&&a!==o&&m(e,a,{get:()=>t[a],enumerable:!(n=u(t,a))||n.enumerable});return e};var g=e=>w(m({},"__esModule",{value:!0}),e);var d={};b(d,{format:()=>T});module.exports=g(d);function T(e,t){const o=new Intl.RelativeTimeFormat(t?.locale,{style:t?.style??"long"}),n=typeof e=="number"?new Date(e):e,a=Date.now(),c=Math.floor((a-n.getTime())/1e3),s=Math.floor(c/60),l=Math.floor(s/60),r=Math.floor(l/24),f=Math.floor(r/7),h=Math.floor(f/4),i=Math.floor(r/365);return Math.abs(c)<60?new Intl.RelativeTimeFormat(t?.locale,{numeric:"auto",style:t?.style??"long"}).format(0,"seconds"):Math.abs(s)<60?o.format(s*-1,"minutes"):Math.abs(l)<24?o.format(l*-1,"hours"):Math.abs(r)<7?o.format(r*-1,"days"):Math.abs(f)<4?o.format(f*-1,"weeks"):Math.abs(r)<365?o.format(h*-1,"months"):o.format(i*-1,"years")}
@@ -1 +0,0 @@
1
- "use strict";var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var g=(e,t)=>{for(var i in t)s(e,i,{get:t[i],enumerable:!0})},m=(e,t,i,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of d(t))!b.call(e,n)&&n!==i&&s(e,n,{get:()=>t[n],enumerable:!(a=f(t,n))||a.enumerable});return e};var v=e=>m(s({},"__esModule",{value:!0}),e);var L={};g(L,{getDocumentLang:()=>w,subscribeDocumentLangChange:()=>E});module.exports=v(L);const r=typeof document<"u";let l=r?document.documentElement.lang:"",c=!1,u=[],o=!1;function p(){r&&(c||(c=!0,queueMicrotask(()=>{c=!1;const e=document.documentElement.lang;if(e!==l){l=e;for(const t of u)t(e)}})))}function h(){if(!r||o)return;o=!0,new MutationObserver(p).observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]})}function w(){return r&&(document.documentElement.lang||window.navigator.language)||""}function E(e){return r?(o||h(),u.push(e),()=>{u=u.filter(t=>t!==e),u.length===0&&(o=!1)}):()=>{}}
@@ -1 +0,0 @@
1
- "use strict";var m=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var r in t)m(e,r,{get:t[r],enumerable:!0})},k=(e,t,r,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of y(t))!g.call(e,a)&&a!==r&&m(e,a,{get:()=>t[a],enumerable:!(u=b(t,a))||u.enumerable});return e};var w=e=>k(m({},"__esModule",{value:!0}),e);var T={};L(T,{makeDraggable:()=>D});module.exports=w(T);const D=({el:e,dragHandle:t,focusableDragHandle:r,dragStep:u,shiftDragStep:a})=>{t?(t.style.cursor="move",e.style.cursor="default"):e.style.cursor="move";let s=!1,v=0,d=0;const i=(o,n)=>{const E={detail:n,bubbles:!0};e.dispatchEvent(new CustomEvent(o,E))},l=o=>{if(o.key==="Enter"&&(s=!s),s?i("dragstart",{keyboard:!0}):i("dragend",{keyboard:!0}),!s)return;const n=o.shiftKey?a??32:u??8;switch(o.key){case"Enter":case" ":o.preventDefault();break;case"ArrowLeft":e.style.left=`${e.offsetLeft-n}px`;break;case"ArrowRight":e.style.left=`${e.offsetLeft+n}px`;break;case"ArrowUp":e.style.top=`${e.offsetTop-n}px`;break;case"ArrowDown":e.style.top=`${e.offsetTop+n}px`;break}},f=o=>{const n=o.target;!(n instanceof Node)||!(t?t.contains(n):e.contains(n))||(v=o.clientX-e.offsetLeft,d=o.clientY-e.offsetTop,s=!0,i("dragstart",{mouse:!0}),document.addEventListener("mousemove",c),document.addEventListener("mouseup",p,{once:!0}))},c=o=>{s&&(e.style.left=`${o.clientX-v}px`,e.style.top=`${o.clientY-d}px`)},p=()=>{s&&(s=!1,i("dragend",{mouse:!0}),document.removeEventListener("mousemove",c))};return t?t.addEventListener("mousedown",f):e.addEventListener("mousedown",f),r?.addEventListener("keydown",l),{cleanup:()=>{t?t.removeEventListener("mousedown",f):e.removeEventListener("mousedown",f),r?.removeEventListener("keydown",l),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",p)}}};
@@ -1 +0,0 @@
1
- "use strict";var g=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var O=(e,t)=>{for(var i in t)g(e,i,{get:t[i],enumerable:!0})},z=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of M(t))!T.call(e,o)&&o!==i&&g(e,o,{get:()=>t[o],enumerable:!(r=L(t,o))||r.enumerable});return e};var y=e=>z(g({},"__esModule",{value:!0}),e);var A={};O(A,{createOverflowHandler:()=>S,getSize:()=>E,updateOverflowHandler:()=>b});module.exports=y(A);function E(e,t){if(!e)return 0;const i=e.style.display;!e.offsetParent&&getComputedStyle(e).display==="none"&&(e.style.display="inline-block");const r=e.getBoundingClientRect()[t];return e.style.display=i,r}function b({container:e,items:t,offset:i,sizes:r,fixedSizes:o,offsetSize:c,maxVisibleItems:s,dimension:m,onChange:v,previousHiddenItems:u=[]}){const H=m==="width"?e.clientWidth:e.clientHeight;let f=[],l=[];const p=r.reduce((d,a)=>d+a,0),n=o.reduce((d,a)=>d+a,0);if(p+n<=H)f=s?t.slice(0,s):[...t],l=s?t.slice(s):[];else{const d=H-c;let a=0;for(let h=0;h<t.length;h++){const w=r[h];a+w+n<=d&&(!s||f.length<s)?(f.push(t[h]),a+=w):l.push(t[h])}}return u.length===l.length&&u.every((d,a)=>d===l[a])?u:(f.forEach(d=>d.removeAttribute("data-hidden")),l.forEach(d=>d.setAttribute("data-hidden","")),i&&i.toggleAttribute("data-hidden",l.length===0),v(f,l),l)}function S({container:e,maxVisibleItems:t,onChange:i,dimension:r="width"}){if(!(e instanceof HTMLElement))throw new Error("container must be an HTMLElement");if(typeof i!="function")throw new Error("onChange must be a function");if(t!==void 0&&(!Number.isInteger(t)||t<=0))throw new Error("maxVisibleItems must be a positive integer");const o=Array.from(e.children).filter(n=>n instanceof HTMLElement),c=o.find(n=>n.hasAttribute("data-offset")),s=o.filter(n=>n.hasAttribute("data-fixed")),m=o.filter(n=>n!==c&&!s.includes(n)),v=s.map(n=>E(n,r)),u=m.map(n=>E(n,r)),H=E(c,r);let f=[];function l(){f=b({container:e,items:m,offset:c,sizes:u,fixedSizes:v,offsetSize:H,maxVisibleItems:t,dimension:r,onChange:i,previousHiddenItems:f})}const p=new ResizeObserver(()=>requestAnimationFrame(l));return p.observe(e),requestAnimationFrame(l),{disconnect(){p.disconnect()}}}
@@ -1,14 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025, 2026
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import type { Config, InitCarousel } from './types';
8
- /**
9
- * Initializes a carousel with the given configuration.
10
- * @param carouselContainer - The HTMLElement representing the carousel container.
11
- * @param config - Optional configuration object.
12
- * @returns An object containing methods to control the carousel.
13
- */
14
- export declare const initCarousel: (carouselContainer: HTMLElement, config?: Config) => InitCarousel;
@@ -1,8 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- export * from './carousel';
8
- export * from './types';
@@ -1,9 +0,0 @@
1
- /**
2
- * Registers swipe event handlers for a carousel element.
3
- * Handles touch, mouse, and wheel events for navigation.
4
- * @param {HTMLElement} carousel - The carousel element to attach event listeners to.
5
- * @param {() => void} next - Callback function to execute when swiping right.
6
- * @param {() => void} prev - Callback function to execute when swiping left.
7
- * @param {boolean} destroy - If true, removes existing event listeners before adding new ones.
8
- */
9
- export declare const registerSwipeEvents: (carousel: HTMLElement, next: () => void, prev: () => void, destroy: boolean) => void;
@@ -1,36 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025, 2026
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- interface CarouselStackHistory {
8
- id: number;
9
- elem: HTMLElement;
10
- }
11
- type CarouselResponse = {
12
- currentIndex: number;
13
- lastIndex: number;
14
- totalViews: number;
15
- historyStack: CarouselStackHistory[];
16
- };
17
- type ActiveItem = {
18
- index: number;
19
- item: HTMLElement | null;
20
- };
21
- export type Config = {
22
- onViewChangeStart?: (args: CarouselResponse) => void;
23
- onViewChangeEnd?: (args: CarouselResponse) => void;
24
- excludeSwipeSupport?: boolean;
25
- useMaxHeight?: boolean;
26
- };
27
- interface InitCarousel {
28
- next: () => void;
29
- prev: () => void;
30
- reset: () => void;
31
- goToIndex: (index: number) => void;
32
- getActiveItem: () => ActiveItem;
33
- destroyEvents: (() => void) | null;
34
- allViews: Record<number, HTMLElement | null>;
35
- }
36
- export type { CarouselStackHistory, CarouselResponse, InitCarousel };
@@ -1,7 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- export * from './datePartsOrder';
@@ -1,30 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2024, 2025
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- export declare function formatTime(date: Date | number, options?: Partial<{
8
- locale: string;
9
- style: Intl.DateTimeFormatOptions['timeStyle'];
10
- timeZone: Intl.DateTimeFormatOptions['timeZone'];
11
- }>): string;
12
- export declare function formatDate(date: Date | number, options?: Partial<{
13
- locale: string;
14
- style: Intl.DateTimeFormatOptions['dateStyle'];
15
- timeZone: Intl.DateTimeFormatOptions['timeZone'];
16
- }>): string;
17
- export declare function format(date: Date | number, options?: Partial<{
18
- locale: string;
19
- style: Intl.DateTimeFormatOptions['timeStyle'] | 'tooltip';
20
- timeStyle: Intl.DateTimeFormatOptions['timeStyle'];
21
- dateStyle: Intl.DateTimeFormatOptions['dateStyle'];
22
- timeZone: Intl.DateTimeFormatOptions['timeZone'];
23
- }>): string;
24
- export declare function formatRange(startDate: Date | number, endDate: Date | number, options?: Partial<{
25
- locale: string;
26
- style: Intl.DateTimeFormatOptions['timeStyle'];
27
- timeStyle: Intl.DateTimeFormatOptions['timeStyle'] | null;
28
- dateStyle: Intl.DateTimeFormatOptions['dateStyle'] | null;
29
- timeZone: Intl.DateTimeFormatOptions['timeZone'];
30
- }>): string;
@@ -1,12 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2024
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import * as relative from './relative';
8
- import * as absolute from './absolute';
9
- export declare const dateTimeFormat: {
10
- relative: typeof relative;
11
- absolute: typeof absolute;
12
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2024
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- export declare function format(date: Date | number, options?: Partial<{
8
- locale: string;
9
- style: Intl.RelativeTimeFormatStyle;
10
- }>): string;
@@ -1,7 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- export * from './documentLang';
package/types/index.d.ts DELETED
@@ -1,13 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- export * from '@internationalized/number';
8
- export type * from '@internationalized/number';
9
- export * from './carousel';
10
- export * from './datePartsOrder';
11
- export * from './dateTimeFormat';
12
- export * from './documentLang';
13
- export * from './overflowHandler';
@@ -1,7 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- export * from './makeDraggable';