@brytdesigns/web-component-keen-slider-scrollbar 1.1.9 → 3.0.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.
@@ -1,53 +1,47 @@
1
- const srOnly = `border-width:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin-top:-1px !important;margin-bottom:-1px !important;margin-right:-1px !important;margin-left:-1px !important;overflow:hidden !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important;`;
1
+ //#region src/utils.ts
2
2
  function constrain(value, min = -Infinity, max = Infinity) {
3
- return Math.max(Math.min(value, max), min);
3
+ return Math.max(Math.min(value, max), min);
4
4
  }
5
5
  function calculateMidpointPositionFromBP(bp, container, scrollbar) {
6
- const bpRect = bp.getBoundingClientRect(), scrollbarRect = scrollbar.getBoundingClientRect(), containerRect = container.getBoundingClientRect(), relativeLeft = bpRect.left - containerRect.left, minX = 0, maxX = containerRect.width - scrollbarRect.width, relativeTop = bpRect.top - containerRect.top, minY = 0, maxY = containerRect.height - scrollbarRect.height, x = constrain(
7
- relativeLeft + bpRect.width / 2 - scrollbarRect.width / 2,
8
- minX,
9
- maxX
10
- ), y = constrain(
11
- relativeTop + bpRect.height / 2 - scrollbarRect.height / 2,
12
- minY,
13
- maxY
14
- );
15
- return { x, y };
6
+ const bpRect = bp.getBoundingClientRect(), scrollbarRect = scrollbar.getBoundingClientRect(), containerRect = container.getBoundingClientRect(), relativeLeft = bpRect.left - containerRect.left, minX = 0, maxX = containerRect.width - scrollbarRect.width, relativeTop = bpRect.top - containerRect.top, minY = 0, maxY = containerRect.height - scrollbarRect.height;
7
+ return {
8
+ x: constrain(relativeLeft + bpRect.width / 2 - scrollbarRect.width / 2, minX, maxX),
9
+ y: constrain(relativeTop + bpRect.height / 2 - scrollbarRect.height / 2, minY, maxY)
10
+ };
16
11
  }
17
12
  function findClosestBreakpoint(position, breakpoints, container, scrollbar) {
18
- const min = 0, max = breakpoints.length - 1;
19
- let closestDiff = { x: Infinity, y: Infinity }, bpIndex = min;
20
- for (let i = min; i <= max; i++) {
21
- const bp = breakpoints[i];
22
- if (!bp) continue;
23
- const midpointP = calculateMidpointPositionFromBP(bp, container, scrollbar);
24
- const diffX = Math.abs(midpointP.x - position.offsetX);
25
- const diffY = Math.abs(midpointP.y - position.offsetY);
26
- if (diffX <= closestDiff.x && diffY <= closestDiff.y) {
27
- closestDiff = { x: diffX, y: diffY };
28
- bpIndex = i;
29
- }
30
- }
31
- return breakpoints[bpIndex];
13
+ const min = 0, max = breakpoints.length - 1;
14
+ let closestDiff = {
15
+ x: Infinity,
16
+ y: Infinity
17
+ }, bpIndex = min;
18
+ for (let i = min; i <= max; i++) {
19
+ const bp = breakpoints[i];
20
+ if (!bp) continue;
21
+ const midpointP = calculateMidpointPositionFromBP(bp, container, scrollbar);
22
+ const diffX = Math.abs(midpointP.x - position.offsetX);
23
+ const diffY = Math.abs(midpointP.y - position.offsetY);
24
+ if (diffX <= closestDiff.x && diffY <= closestDiff.y) {
25
+ closestDiff = {
26
+ x: diffX,
27
+ y: diffY
28
+ };
29
+ bpIndex = i;
30
+ }
31
+ }
32
+ return breakpoints[bpIndex];
32
33
  }
33
34
  function getMaxSlides(slider) {
34
- const maxIdx = slider?.track?.details?.maxIdx || 1;
35
- const perScroll = slider.options?.slides?.perScroll || 1;
36
- if (!Number.isFinite(maxIdx)) {
37
- return Math.ceil(slider.slides.length / perScroll);
38
- }
39
- return Math.ceil(maxIdx / perScroll) + 1;
35
+ const maxIdx = slider?.track?.details?.maxIdx || 1;
36
+ const perScroll = (slider.options?.slides)?.perScroll || 1;
37
+ if (!Number.isFinite(maxIdx)) return Math.ceil(slider.slides.length / perScroll);
38
+ return Math.ceil(maxIdx / perScroll) + 1;
40
39
  }
41
40
  function getRelativeBreakpoint(slider, breakpoints) {
42
- const maxSlides = getMaxSlides(slider), perScroll = slider.options?.slides?.perScroll || 1;
43
- const relativeIdx = constrain(
44
- Math.ceil(slider.track.details.rel / perScroll),
45
- 0,
46
- maxSlides - 1
47
- );
48
- return breakpoints[relativeIdx];
41
+ const maxSlides = getMaxSlides(slider), perScroll = (slider.options?.slides)?.perScroll || 1;
42
+ return breakpoints[constrain(Math.ceil(slider.track.details.rel / perScroll), 0, maxSlides - 1)];
49
43
  }
44
+ //#endregion
45
+ export { calculateMidpointPositionFromBP, constrain, findClosestBreakpoint, getMaxSlides, getRelativeBreakpoint };
50
46
 
51
- export { calculateMidpointPositionFromBP, constrain, findClosestBreakpoint, getMaxSlides, getRelativeBreakpoint, srOnly };
52
- //# sourceMappingURL=utils.js.map
53
47
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { KeenSliderInstance } from \"@brytdesigns/web-component-keen-slider\";\nimport type { ICustomElement } from \"component-register\";\nimport type { DragEventData } from \"@neodrag/vanilla\";\n\nexport const srOnly = `border-width:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin-top:-1px !important;margin-bottom:-1px !important;margin-right:-1px !important;margin-left:-1px !important;overflow:hidden !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important;`;\n\nexport function constrain(value: number, min = -Infinity, max = Infinity) {\n return Math.max(Math.min(value, max), min);\n}\n\nexport function calculateMidpointPositionFromBP(\n bp: Element,\n container: HTMLElement,\n scrollbar: HTMLElement,\n) {\n const bpRect = bp.getBoundingClientRect(),\n scrollbarRect = scrollbar.getBoundingClientRect(),\n containerRect = container.getBoundingClientRect(),\n relativeLeft = bpRect.left - containerRect.left,\n minX = 0,\n maxX = containerRect.width - scrollbarRect.width,\n relativeTop = bpRect.top - containerRect.top,\n minY = 0,\n maxY = containerRect.height - scrollbarRect.height,\n x = constrain(\n relativeLeft + bpRect.width / 2 - scrollbarRect.width / 2,\n minX,\n maxX,\n ),\n y = constrain(\n relativeTop + bpRect.height / 2 - scrollbarRect.height / 2,\n minY,\n maxY,\n );\n\n return { x, y };\n}\n\nexport function findClosestBreakpoint(\n position: DragEventData,\n breakpoints: HTMLCollection,\n container: HTMLElement,\n scrollbar: HTMLElement,\n) {\n const min = 0,\n max = breakpoints.length - 1;\n\n let closestDiff = { x: Infinity, y: Infinity },\n bpIndex = min;\n\n for (let i = min; i <= max; i++) {\n const bp = breakpoints[i];\n if (!bp) continue;\n const midpointP = calculateMidpointPositionFromBP(bp, container, scrollbar);\n const diffX = Math.abs(midpointP.x - position.offsetX);\n const diffY = Math.abs(midpointP.y - position.offsetY);\n if (diffX <= closestDiff.x && diffY <= closestDiff.y) {\n closestDiff = { x: diffX, y: diffY };\n bpIndex = i;\n }\n }\n\n return breakpoints[bpIndex];\n}\n\nexport function getMaxSlides(slider: KeenSliderInstance) {\n const maxIdx = slider?.track?.details?.maxIdx || 1;\n const perScroll = (slider.options?.slides as any)?.perScroll || 1;\n\n if (!Number.isFinite(maxIdx)) {\n return Math.ceil(slider.slides.length / perScroll);\n }\n\n return Math.ceil(maxIdx / perScroll) + 1;\n}\n\nexport function getRelativeBreakpoint(\n slider: KeenSliderInstance,\n breakpoints: HTMLCollection,\n) {\n const maxSlides = getMaxSlides(slider),\n perScroll = (slider.options?.slides as any)?.perScroll || 1;\n\n const relativeIdx = constrain(\n Math.ceil(slider.track.details.rel / perScroll),\n 0,\n maxSlides - 1,\n );\n\n return breakpoints[relativeIdx];\n}\n"]}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../src/utils.ts"],"sourcesContent":["import type { KeenSliderInstance } from \"@brytdesigns/web-component-keen-slider\";\nimport type { DragEventData } from \"@neodrag/vanilla\";\nimport type { ICustomElement } from \"component-register\";\n\nexport function constrain(value: number, min = -Infinity, max = Infinity) {\n\treturn Math.max(Math.min(value, max), min);\n}\n\nexport function calculateMidpointPositionFromBP(\n\tbp: Element,\n\tcontainer: HTMLElement,\n\tscrollbar: HTMLElement,\n) {\n\tconst bpRect = bp.getBoundingClientRect(),\n\t\tscrollbarRect = scrollbar.getBoundingClientRect(),\n\t\tcontainerRect = container.getBoundingClientRect(),\n\t\trelativeLeft = bpRect.left - containerRect.left,\n\t\tminX = 0,\n\t\tmaxX = containerRect.width - scrollbarRect.width,\n\t\trelativeTop = bpRect.top - containerRect.top,\n\t\tminY = 0,\n\t\tmaxY = containerRect.height - scrollbarRect.height,\n\t\tx = constrain(\n\t\t\trelativeLeft + bpRect.width / 2 - scrollbarRect.width / 2,\n\t\t\tminX,\n\t\t\tmaxX,\n\t\t),\n\t\ty = constrain(\n\t\t\trelativeTop + bpRect.height / 2 - scrollbarRect.height / 2,\n\t\t\tminY,\n\t\t\tmaxY,\n\t\t);\n\n\treturn { x, y };\n}\n\nexport function findClosestBreakpoint(\n\tposition: DragEventData,\n\tbreakpoints: HTMLCollection,\n\tcontainer: HTMLElement,\n\tscrollbar: HTMLElement,\n) {\n\tconst min = 0,\n\t\tmax = breakpoints.length - 1;\n\n\tlet closestDiff = { x: Infinity, y: Infinity },\n\t\tbpIndex = min;\n\n\tfor (let i = min; i <= max; i++) {\n\t\tconst bp = breakpoints[i];\n\t\tif (!bp) continue;\n\t\tconst midpointP = calculateMidpointPositionFromBP(bp, container, scrollbar);\n\t\tconst diffX = Math.abs(midpointP.x - position.offsetX);\n\t\tconst diffY = Math.abs(midpointP.y - position.offsetY);\n\t\tif (diffX <= closestDiff.x && diffY <= closestDiff.y) {\n\t\t\tclosestDiff = { x: diffX, y: diffY };\n\t\t\tbpIndex = i;\n\t\t}\n\t}\n\n\treturn breakpoints[bpIndex];\n}\n\nexport function getMaxSlides(slider: KeenSliderInstance) {\n\tconst maxIdx = slider?.track?.details?.maxIdx || 1;\n\tconst perScroll = (slider.options?.slides as any)?.perScroll || 1;\n\n\tif (!Number.isFinite(maxIdx)) {\n\t\treturn Math.ceil(slider.slides.length / perScroll);\n\t}\n\n\treturn Math.ceil(maxIdx / perScroll) + 1;\n}\n\nexport function getRelativeBreakpoint(\n\tslider: KeenSliderInstance,\n\tbreakpoints: HTMLCollection,\n) {\n\tconst maxSlides = getMaxSlides(slider),\n\t\tperScroll = (slider.options?.slides as any)?.perScroll || 1;\n\n\tconst relativeIdx = constrain(\n\t\tMath.ceil(slider.track.details.rel / perScroll),\n\t\t0,\n\t\tmaxSlides - 1,\n\t);\n\n\treturn breakpoints[relativeIdx];\n}\n"],"mappings":";AAIA,SAAgB,UAAU,OAAe,MAAM,WAAW,MAAM,UAAU;CACzE,OAAO,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG,GAAG;AAC1C;AAEA,SAAgB,gCACf,IACA,WACA,WACC;CACD,MAAM,SAAS,GAAG,sBAAsB,GACvC,gBAAgB,UAAU,sBAAsB,GAChD,gBAAgB,UAAU,sBAAsB,GAChD,eAAe,OAAO,OAAO,cAAc,MAC3C,OAAO,GACP,OAAO,cAAc,QAAQ,cAAc,OAC3C,cAAc,OAAO,MAAM,cAAc,KACzC,OAAO,GACP,OAAO,cAAc,SAAS,cAAc;CAY7C,OAAO;EAAE,GAXJ,UACH,eAAe,OAAO,QAAQ,IAAI,cAAc,QAAQ,GACxD,MACA,IAQO;EAAG,GANP,UACH,cAAc,OAAO,SAAS,IAAI,cAAc,SAAS,GACzD,MACA,IAGU;CAAE;AACf;AAEA,SAAgB,sBACf,UACA,aACA,WACA,WACC;CACD,MAAM,MAAM,GACX,MAAM,YAAY,SAAS;CAE5B,IAAI,cAAc;EAAE,GAAG;EAAU,GAAG;CAAS,GAC5C,UAAU;CAEX,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;EAChC,MAAM,KAAK,YAAY;EACvB,IAAI,CAAC,IAAI;EACT,MAAM,YAAY,gCAAgC,IAAI,WAAW,SAAS;EAC1E,MAAM,QAAQ,KAAK,IAAI,UAAU,IAAI,SAAS,OAAO;EACrD,MAAM,QAAQ,KAAK,IAAI,UAAU,IAAI,SAAS,OAAO;EACrD,IAAI,SAAS,YAAY,KAAK,SAAS,YAAY,GAAG;GACrD,cAAc;IAAE,GAAG;IAAO,GAAG;GAAM;GACnC,UAAU;EACX;CACD;CAEA,OAAO,YAAY;AACpB;AAEA,SAAgB,aAAa,QAA4B;CACxD,MAAM,SAAS,QAAQ,OAAO,SAAS,UAAU;CACjD,MAAM,aAAa,OAAO,SAAS,OAAA,EAAgB,aAAa;CAEhE,IAAI,CAAC,OAAO,SAAS,MAAM,GAC1B,OAAO,KAAK,KAAK,OAAO,OAAO,SAAS,SAAS;CAGlD,OAAO,KAAK,KAAK,SAAS,SAAS,IAAI;AACxC;AAEA,SAAgB,sBACf,QACA,aACC;CACD,MAAM,YAAY,aAAa,MAAM,GACpC,aAAa,OAAO,SAAS,OAAA,EAAgB,aAAa;CAQ3D,OAAO,YANa,UACnB,KAAK,KAAK,OAAO,MAAM,QAAQ,MAAM,SAAS,GAC9C,GACA,YAAY,CAGM;AACpB"}
package/dist/styles.css CHANGED
@@ -1,123 +1,142 @@
1
1
  :root {
2
- --keen-slider-scrollbar--thumb-color: #cbcbcb;
3
- --keen-slider-scrollbar--track-color: #f8f8f8;
4
- --keen-slider-scrollbar--padding: 0px;
5
- --keen-slider-scrollbar--left: 0px;
6
- --keen-slider-scrollbar--right: 0px;
7
- --keen-slider-scrollbar--width: 100%;
8
- --keen-slider-scrollbar--height: 5px;
9
- --keen-slider-scrollbar--opacity: 1;
10
- --keen-slider-scrollbar--mt: 2rem;
11
- --keen-slider-scrollbar--mb: 2rem;
12
- --keen-slider-scrollbar--ml: 2rem;
13
- --keen-slider-scrollbar--mr: 2rem;
14
- --keen-slider-scrollbar--border-radius: 1000rem;
15
- --keen-slider-scrollbar--total-slides: 2;
2
+ --keen-slider-scrollbar--thumb-color: #cbcbcb;
3
+ --keen-slider-scrollbar--track-color: #f8f8f8;
4
+ --keen-slider-scrollbar--padding: 0px;
5
+ --keen-slider-scrollbar--left: 0px;
6
+ --keen-slider-scrollbar--right: 0px;
7
+ --keen-slider-scrollbar--width: 100%;
8
+ --keen-slider-scrollbar--height: 5px;
9
+ --keen-slider-scrollbar--opacity: 1;
10
+ --keen-slider-scrollbar--mt: 2rem;
11
+ --keen-slider-scrollbar--mb: 2rem;
12
+ --keen-slider-scrollbar--ml: 2rem;
13
+ --keen-slider-scrollbar--mr: 2rem;
14
+ --keen-slider-scrollbar--border-radius: 1000rem;
15
+ --keen-slider-scrollbar--total-slides: 2;
16
16
  }
17
17
 
18
18
  keen-slider-scrollbar {
19
- display: block;
20
- width: var(--keen-slider-scrollbar--width);
21
- height: var(--keen-slider-scrollbar--height);
22
- border-radius: var(--keen-slider-scrollbar--border-radius);
23
- cursor: pointer;
24
- position: relative;
25
- opacity: var(--keen-slider-scrollbar--opacity);
26
- transition: opacity 300ms ease;
27
- box-sizing: border-box;
19
+ display: block;
20
+ width: var(--keen-slider-scrollbar--width);
21
+ height: var(--keen-slider-scrollbar--height);
22
+ border-radius: var(--keen-slider-scrollbar--border-radius);
23
+ cursor: pointer;
24
+ position: relative;
25
+ opacity: var(--keen-slider-scrollbar--opacity);
26
+ transition: opacity 300ms ease;
27
+ box-sizing: border-box;
28
28
  }
29
29
 
30
30
  keen-slider-scrollbar[is-vertical="false"] {
31
- --keen-slider-scrollbar--width: 100%;
32
- --keen-slider-scrollbar--height: 5px;
33
- margin-top: var(--keen-slider-scrollbar--mt);
34
- margin-bottom: var(--keen-slider-scrollbar--mb);
31
+ --keen-slider-scrollbar--width: 100%;
32
+ --keen-slider-scrollbar--height: 5px;
33
+ margin-top: var(--keen-slider-scrollbar--mt);
34
+ margin-bottom: var(--keen-slider-scrollbar--mb);
35
35
  }
36
36
 
37
37
  keen-slider-scrollbar[is-vertical="true"] {
38
- --keen-slider-scrollbar--height: 100%;
39
- --keen-slider-scrollbar--width: 5px;
40
- margin-left: var(--keen-slider-scrollbar--ml);
41
- margin-right: var(--keen-slider-scrollbar--mr);
38
+ --keen-slider-scrollbar--height: 100%;
39
+ --keen-slider-scrollbar--width: 5px;
40
+ margin-left: var(--keen-slider-scrollbar--ml);
41
+ margin-right: var(--keen-slider-scrollbar--mr);
42
42
  }
43
43
 
44
44
  keen-slider-scrollbar[is-hidden="true"] {
45
- --keen-slider-scrollbar--opacity: 0;
45
+ --keen-slider-scrollbar--opacity: 0;
46
46
 
47
- visibility: hidden;
47
+ visibility: hidden;
48
48
  }
49
49
 
50
50
  keen-slider-scrollbar::before {
51
- content: "";
52
- position: absolute;
53
- width: 100%;
54
- height: 100%;
55
- background-color: var(--keen-slider-scrollbar--track-color);
56
- border-radius: var(--keen-slider-scrollbar--border-radius);
57
- top: 0;
58
- box-sizing: border-box;
51
+ content: "";
52
+ position: absolute;
53
+ width: 100%;
54
+ height: 100%;
55
+ background-color: var(--keen-slider-scrollbar--track-color);
56
+ border-radius: var(--keen-slider-scrollbar--border-radius);
57
+ top: 0;
58
+ box-sizing: border-box;
59
59
  }
60
60
 
61
61
  keen-slider-scrollbar .keen-slider-scrollbar__thumb {
62
- display: block;
63
- position: relative;
64
- background: var(--keen-slider-scrollbar--thumb-color);
65
- border-radius: var(--keen-slider-scrollbar--border-radius);
66
- box-sizing: border-box;
67
- z-index: 2;
62
+ display: block;
63
+ position: relative;
64
+ background: var(--keen-slider-scrollbar--thumb-color);
65
+ border-radius: var(--keen-slider-scrollbar--border-radius);
66
+ box-sizing: border-box;
67
+ z-index: 2;
68
68
  }
69
69
 
70
70
  keen-slider-scrollbar[is-vertical="false"] .keen-slider-scrollbar__thumb {
71
- left: 0;
72
- top: 50% !important;
73
- transform: translate3d(0, -50%, 0);
74
- max-width: calc(
75
- var(--keen-slider-scrollbar--width) /
76
- var(--keen-slider-scrollbar--total-slides)
77
- );
78
- width: 100%;
79
- min-width: 10%;
80
- height: 100%;
71
+ left: 0;
72
+ top: 50% !important;
73
+ transform: translate3d(0, -50%, 0);
74
+ max-width: calc(
75
+ var(--keen-slider-scrollbar--width) /
76
+ var(--keen-slider-scrollbar--total-slides)
77
+ );
78
+ width: 100%;
79
+ min-width: 10%;
80
+ height: 100%;
81
81
  }
82
82
 
83
83
  keen-slider-scrollbar[is-vertical="true"] .keen-slider-scrollbar__thumb {
84
- left: 50% !important;
85
- top: 0;
86
- transform: translate3d(-50%, 0%, 0);
87
- max-height: calc(
88
- var(--keen-slider-scrollbar--height) /
89
- var(--keen-slider-scrollbar--total-slides)
90
- );
91
- height: 100%;
92
- min-height: 10%;
93
- width: 100%;
84
+ left: 50% !important;
85
+ top: 0;
86
+ transform: translate3d(-50%, 0%, 0);
87
+ max-height: calc(
88
+ var(--keen-slider-scrollbar--height) /
89
+ var(--keen-slider-scrollbar--total-slides)
90
+ );
91
+ height: 100%;
92
+ min-height: 10%;
93
+ width: 100%;
94
94
  }
95
95
 
96
96
  keen-slider-scrollbar .keen-slider-scrollbar__breakpoints {
97
- z-index: 1;
98
- position: absolute;
99
- display: grid;
100
- top: 0;
101
- left: 0;
102
- right: 0;
103
- bottom: 0;
104
- list-style: none;
105
- margin: 0;
106
- padding: 0;
97
+ z-index: 1;
98
+ position: absolute;
99
+ display: grid;
100
+ top: 0;
101
+ left: 0;
102
+ right: 0;
103
+ bottom: 0;
104
+ list-style: none;
105
+ margin: 0;
106
+ padding: 0;
107
107
  }
108
108
 
109
109
  keen-slider-scrollbar[is-vertical="false"] .keen-slider-scrollbar__breakpoints {
110
- grid-auto-rows: auto;
111
- grid-template-columns: repeat(
112
- var(--keen-slider-scrollbar--total-slides, 1),
113
- 1fr
114
- );
110
+ grid-auto-rows: auto;
111
+ grid-template-columns: repeat(
112
+ var(--keen-slider-scrollbar--total-slides, 1),
113
+ 1fr
114
+ );
115
115
  }
116
116
 
117
117
  keen-slider-scrollbar[is-vertical="true"] .keen-slider-scrollbar__breakpoints {
118
- grid-auto-columns: auto;
119
- grid-template-rows: repeat(
120
- var(--keen-slider-scrollbar--total-slides, 1),
121
- 1fr
122
- );
118
+ grid-auto-columns: auto;
119
+ grid-template-rows: repeat(
120
+ var(--keen-slider-scrollbar--total-slides, 1),
121
+ 1fr
122
+ );
123
+ }
124
+
125
+ /* The breakpoint controls. The <li> is the grid cell; the button fills it so a
126
+ pointer or a focus ring lands on something the size of the breakpoint rather
127
+ than on a 1px visually-hidden box. */
128
+ keen-slider-scrollbar .keen-slider-scrollbar__breakpoint {
129
+ display: block;
130
+ }
131
+
132
+ keen-slider-scrollbar .keen-slider-scrollbar__breakpoint > button {
133
+ display: block;
134
+ width: 100%;
135
+ height: 100%;
136
+ margin: 0;
137
+ padding: 0;
138
+ border: 0;
139
+ background: none;
140
+ cursor: pointer;
141
+ appearance: none;
123
142
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brytdesigns/web-component-keen-slider-scrollbar",
3
- "version": "1.1.9",
3
+ "version": "3.0.0",
4
4
  "description": "Keen slider scrollbar web component",
5
5
  "main": "./dist/main/index.js",
6
6
  "module": "./dist/main/index.js",
@@ -9,7 +9,7 @@
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/main/index.d.ts",
12
- "module": "./dist/main/index.js"
12
+ "default": "./dist/main/index.js"
13
13
  },
14
14
  "./styles.css": "./dist/styles.css"
15
15
  },
@@ -20,21 +20,21 @@
20
20
  "author": "Bryt Designs",
21
21
  "license": "ISC",
22
22
  "dependencies": {
23
- "@neodrag/vanilla": "^2.3.0",
23
+ "@brytdesigns/web-component-core": "3.0.0",
24
+ "@brytdesigns/web-component-keen-slider": "3.0.0",
25
+ "@neodrag/vanilla": "^2.3.1",
26
+ "@solidjs/web": "2.0.0-rc.14",
24
27
  "component-register": "0.8.7",
25
- "motion": "^12.40.0",
28
+ "motion": "^12.43.0",
26
29
  "popmotion": "^11.0.5",
27
- "solid-element": "^1.9.1",
28
- "solid-js": "^1.9.9",
29
- "@brytdesigns/web-component-core": "1.1.7",
30
- "@brytdesigns/web-component-keen-slider": "1.2.3"
30
+ "solid-js": "2.0.0-rc.14"
31
31
  },
32
32
  "devDependencies": {
33
- "dts-bundle-generator": "^9.5.1",
34
- "tsup": "^8.4.0"
33
+ "@repo/vite-config": "0.0.0",
34
+ "vite": "^8.2.2"
35
35
  },
36
36
  "scripts": {
37
- "build": "tsup --clean",
37
+ "build": "vite build",
38
38
  "typecheck": "tsc --noEmit"
39
39
  }
40
40
  }