@nuralyui/slider-input 0.0.3 → 0.0.4

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 +1 @@
1
- {"version":3,"file":"slider-input.component.js","sourceRoot":"","sources":["../../../src/components/slider-input/slider-input.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAoB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,WAAY,SAAQ,UAAU;IAA3C;;QAGC,aAAQ,GAAG,KAAK,CAAC;QAGjB,QAAG,GAAG,GAAG,CAAC;QAGV,QAAG,GAAG,CAAC,CAAC;QAGR,SAAI,GAAG,CAAC,CAAC;QAGT,UAAK,GAAG,CAAC,CAAC;QAGV,eAAU,GAAG,CAAC,CAAC;QAGf,eAAU,GAAG,CAAC,CAAC;QAqEf;;;WAGG;QACH,kBAAa,GAAE,QAAQ,CAAC,GAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACpE,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAO,CAAC,WAAW,CAAC;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAQ,CAAC,WAAW,CAAC;YAC9C,MAAM,gBAAgB,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,CAAC;YAChD,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,UAAU,IAAI,CAAC;YAEnE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;YAEhE,oEAAoE;YACpE,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAG;gBAC9C,MAAM,EAAE;oBACP,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;iBACzB;aACD,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACH,CAAC;IAjFe,YAAY;;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;YAE3B,IAAI,IAAI,CAAC,IAAI,EAAE;gBACd,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,YAAY,KAAK,CAAC,EAAE;oBACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;iBACnC;gBACD,IAAI,YAAY,KAAK,CAAC,EAAE;oBACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;iBAC/C;aACD;QACF,CAAC;KAAA;IAEQ,MAAM;QACd,OAAO,IAAI,CAAA;;;;;;iBAMI,IAAI,CAAC,GAAG;iBACR,IAAI,CAAC,GAAG;kBACP,IAAI,CAAC,IAAI;;mBAER,IAAI,CAAC,KAAK;uBACN,IAAI,CAAC,QAAQ;oBAChB,IAAI,CAAC,cAAc;;cAEzB,CAAC;IACd,CAAC;IAGQ,OAAO,CAAC,YAAmC;QACnD,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;IACF,CAAC;IAED;;OAEG;IACH,cAAc;QACb,MAAM,EAAE,KAAK,EAAE,GAAS,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU;YACnC,CAAC,CAAC,IAAI,CAAC,UAAU;YACjB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU;gBACxB,CAAC,CAAC,IAAI,CAAC,UAAU;gBACjB,CAAC,CAAC,KAAK,CAAC;IACX,CAAC;;AAzDe,kBAAM,GAAG,MAAM,CAAC;AA5BhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAC1B;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACnB;AAGR;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAClB;AAGT;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACZ;AAGf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACZ;AAIf;IADC,KAAK,EAAE;2CACyB;AAEjC;IADC,KAAK,EAAE;4CAC2B;AAEnC;IADC,KAAK,EAAE;2CAC0B;AAuFnC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import { LitElement, html, PropertyValueMap } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './slider-input.style.js';\nimport { debounce } from './utils.js';\n\nexport class SliderInput extends LitElement {\n\t\n\t@property({ type: Boolean, reflect: true })\n\tdisabled = false;\n\n\t@property({ type: Number })\n\tmax = 100;\n\n\t@property({ type: Number })\n\tmin = 0;\n\n\t@property({ type: Number })\n\tstep = 1;\n\n\t@property({ type: Number })\n\tvalue = 0;\n\n\t@property({ type: Number })\n\t_actualMin = 0;\n\n\t@property({ type: Number })\n\t_actualMax = 0;\n\n\n\t@state()\n\t_input!: HTMLInputElement | null;\n\t@state()\n\t_slider! : HTMLInputElement | null;\n\t@state()\n\t_thumb! : HTMLInputElement | null;\n\n\tstatic override styles = styles;\n\n\n\toverride async firstUpdated() {\n\t\tthis._input = this.shadowRoot!.querySelector('input');\n\t\tthis._slider = this.shadowRoot!.querySelector('.range-slider');\n\t\tthis._thumb = this.shadowRoot!.querySelector('.range-thumb');\n\t\tthis._actualMin = this.min;\n\t\tthis._actualMax = this.max;\n\n\t\tif (this.step) {\n\t\t\tconst minRemainder = this.min % this.step;\n\t\t\tconst maxRemainder = this.max % this.step;\n\t\t\tif (minRemainder !== 0) {\n\t\t\t\tthis.min = this.min - minRemainder;\n\t\t\t}\n\t\t\tif (maxRemainder !== 0) {\n\t\t\t\tthis.max = this.max + this.step - maxRemainder;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride render() {\n\t\treturn html`\n <div class=\"range-container\">\n\t <div class=\"range-slider\"></div>\n\t <div class=\"range-slider-value\"></div>\n\t <div class=\"range-thumb\"></div>\n\t <input\n\t max=${this.max}\n\t min=${this.min}\n\t step=${this.step}\n\t type=\"range\"\n\t value=${this.value}\n\t ?disabled=${this.disabled}\n\t @input=${this._changeHandler}\n\t />\n\t </div>`;\n\t}\n\n\n\toverride updated(changedProps: PropertyValueMap<any>) {\n\t\tif (changedProps.has('value')) {\n\t\t\tthis._updateSlider();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the slider value.\n\t */\n\t_changeHandler() {\n\t\tconst { value } : any = this._input;\n\t\tthis.value = value > this._actualMax\n\t\t\t? this._actualMax\n\t\t\t: value < this._actualMin\n\t\t\t\t? this._actualMin\n\t\t\t\t: value;\n\t}\n\n\t/**\n\t * Updates the slider's value width and thumb position (UI).\n\t * @event change\n\t */\n\t_updateSlider= debounce(()=> {\n\t\tconst min = this.min < this._actualMin ? this._actualMin : this.min;\n\t\tconst max = this.max > this._actualMax ? this._actualMax : this.max;\n\t\tconst percentage = (this.value - min) / (max - min);\n\t\tconst thumbWidth = this._thumb!.offsetWidth;\n\t\tconst sliderWidth = this._slider!.offsetWidth;\n\t\tconst sliderValueWidth = `${percentage * 100}%`;\n\t\tconst thumbOffset = `${(sliderWidth - thumbWidth) * percentage}px`;\n\n\t\tthis.style.setProperty('--hy-slider-value-width', sliderValueWidth);\n\t\tthis.style.setProperty('--hy-slider-thumb-offset', thumbOffset);\n\n\t\t// Dispatch the change event for range-slider. (For event handlers.)\n\t\tthis.dispatchEvent(new Event('change'));\n\t\tthis.dispatchEvent(new CustomEvent('changed' , {\n\t\t\tdetail: {\n\t\t\t\tvalue: Number(this.value)\n\t\t\t}\n\t\t}));\n\t\tthis.requestUpdate()\n\t})\n}\ncustomElements.define('hy-slider-input', SliderInput);\n"]}
1
+ {"version":3,"file":"slider-input.component.js","sourceRoot":"","sources":["../../../src/components/slider-input/slider-input.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, PropertyValueMap } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './slider-input.style.js';\nimport { debounce } from './utils/index.js';\n\nexport class SliderInput extends LitElement {\n\t\n\t@property({ type: Boolean, reflect: true })\n\tdisabled = false;\n\n\t@property({ type: Number })\n\tmax = 100;\n\n\t@property({ type: Number })\n\tmin = 0;\n\n\t@property({ type: Number })\n\tstep = 1;\n\n\t@property({ type: Number })\n\tvalue = 0;\n\n\t@state()\n\t_actualMin = 0;\n\n\t@state()\n\t_actualMax = 0;\n\n\n\t@state()\n\t_input!: HTMLInputElement | null;\n\t@state()\n\t_slider! : HTMLInputElement | null;\n\t@state()\n\t_thumb! : HTMLInputElement | null;\n\n\tstatic override styles = styles;\n\n\n\toverride async firstUpdated() {\n\t\tawait this.updateComplete;\n\t\t\n\t\tthis._input = this.shadowRoot!.querySelector('input');\n\t\tthis._slider = this.shadowRoot!.querySelector('.range-slider');\n\t\tthis._thumb = this.shadowRoot!.querySelector('.range-thumb');\n\t\tthis._actualMin = this.min;\n\t\tthis._actualMax = this.max;\n\n\t\tif (this.step) {\n\t\t\tconst minRemainder = this.min % this.step;\n\t\t\tconst maxRemainder = this.max % this.step;\n\t\t\tif (minRemainder !== 0) {\n\t\t\t\tthis.min = this.min - minRemainder;\n\t\t\t}\n\t\t\tif (maxRemainder !== 0) {\n\t\t\t\tthis.max = this.max + this.step - maxRemainder;\n\t\t\t}\n\t\t}\n\n\t\t// Initial visual update\n\t\trequestAnimationFrame(() => {\n\t\t\tthis._updateSliderVisuals();\n\t\t});\n\t}\n\n\toverride render() {\n\t\treturn html`\n\t\t <div class=\"slider-wrapper\">\n\t <input\n\t max=${this.max}\n\t min=${this.min}\n\t step=${this.step}\n\t type=\"range\"\n\t value=${this.value}\n\t ?disabled=${this.disabled}\n\t @input=${this._inputHandler}\n\t @change=${this._changeHandler}\n\t />\n <div class=\"range-container\">\n\t <div class=\"range-slider\"></div>\n\t <div class=\"range-slider-value\"></div>\n\t <div class=\"range-thumb\"></div>\n\t </div>\n\t </div>`;\n\t}\n\n\n\toverride updated(changedProps: PropertyValueMap<any>) {\n\t\tif (changedProps.has('value') || changedProps.has('min') || changedProps.has('max')) {\n\t\t\t// Use requestAnimationFrame to ensure DOM is updated before calculating positions\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis._updateSliderVisuals();\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Handles input events for immediate visual feedback during dragging.\n\t */\n\t_inputHandler(event: Event) {\n\t\tevent.stopPropagation();\n\t\tconst input = event.target as HTMLInputElement;\n\t\tconst newValue = Number(input.value);\n\t\t\n\t\t// Clamp value to actual min/max bounds\n\t\tthis.value = newValue > this._actualMax\n\t\t\t? this._actualMax\n\t\t\t: newValue < this._actualMin\n\t\t\t\t? this._actualMin\n\t\t\t\t: newValue;\n\t\t\n\t\t// Update visuals immediately for smooth dragging\n\t\tthis._updateSliderVisuals();\n\t\tthis.requestUpdate();\n\t}\n\n\t/**\n\t * Handles change events when dragging is complete.\n\t */\n\t_changeHandler(event: Event) {\n\t\tevent.stopPropagation();\n\t\tconst input = event.target as HTMLInputElement;\n\t\tconst newValue = Number(input.value);\n\t\t\n\t\t// Clamp value to actual min/max bounds\n\t\tthis.value = newValue > this._actualMax\n\t\t\t? this._actualMax\n\t\t\t: newValue < this._actualMin\n\t\t\t\t? this._actualMin\n\t\t\t\t: newValue;\n\t\t\n\t\t// Dispatch events when dragging is complete\n\t\tthis._dispatchChangeEvents();\n\t\tthis.requestUpdate();\n\t}\n\n\t/**\n\t * Updates the slider's visual appearance immediately (no debounce for smooth dragging).\n\t */\n\t_updateSliderVisuals() {\n\t\tif (!this._thumb || !this._slider) return;\n\t\t\n\t\tconst min = this.min < this._actualMin ? this._actualMin : this.min;\n\t\tconst max = this.max > this._actualMax ? this._actualMax : this.max;\n\t\tconst range = max - min;\n\t\t\n\t\tif (range === 0) return; // Avoid division by zero\n\t\t\n\t\tconst percentage = Math.max(0, Math.min(1, (this.value - min) / range));\n\t\tconst thumbWidth = this._thumb.offsetWidth || 20; // Fallback if not measured yet\n\t\tconst sliderWidth = this._slider.offsetWidth || 200; // Fallback if not measured yet\n\t\t\n\t\tconst sliderValueWidth = `${percentage * 100}%`;\n\t\t// Calculate thumb position so it stays within track bounds\n\t\tconst maxThumbOffset = sliderWidth - thumbWidth;\n\t\tconst thumbOffset = `${Math.max(0, Math.min(maxThumbOffset, maxThumbOffset * percentage))}px`;\n\n\t\tthis.style.setProperty('--nr-slider-value-width', sliderValueWidth);\n\t\tthis.style.setProperty('--nr-slider-thumb-offset', thumbOffset);\n\t}\n\n\t/**\n\t * Dispatches change events (debounced to avoid excessive event firing).\n\t */\n\t_dispatchChangeEvents = debounce(() => {\n\t\t// Dispatch the change event for range-slider. (For event handlers.)\n\t\tthis.dispatchEvent(new Event('change'));\n\t\tthis.dispatchEvent(new CustomEvent('changed' , {\n\t\t\tdetail: {\n\t\t\t\tvalue: Number(this.value)\n\t\t\t}\n\t\t}));\n\t}, 50); // Reduced debounce time for more responsive events\n\n\t/**\n\t * Updates the slider's value width and thumb position (UI) and dispatches events.\n\t */\n\t_updateSlider() {\n\t\tthis._updateSliderVisuals();\n\t\tthis._dispatchChangeEvents();\n\t\tthis.requestUpdate();\n\t}\n}\ncustomElements.define('nr-slider-input', SliderInput);\n"]}
@@ -1,77 +1,171 @@
1
1
  import { css } from "lit";
2
+ import { styleVariables } from './slider-input.style.variables.js';
2
3
  export default css `
3
- :host {
4
- --hy-slider-background: #7c7c7c;
5
- --hy-slider-height: 2px;
6
- --hy-slider-radius: var(--hy-slider-height);
7
- --hy-slider-value-color: #00ccff;
8
- --hy-slider-value-width: 0;
9
- --hy-slider-thumb-color: #e0e0e0;
10
- --hy-slider-thumb-diameter: 15px;
11
- --hy-slider-thumb-offset: 0;
12
-
13
- display: inline-block;
14
- }
15
-
16
- .range-container {
17
- position: relative;
18
- width: 100%;
19
- }
20
-
21
- .range-slider,
22
- .range-slider-value {
23
- border-radius: var(--hy-slider-radius);
24
- height: var(--hy-slider-height);
25
- max-height: var(--hy-slider-thumb-diameter);
26
- position: absolute;
27
- top: calc((var(--hy-slider-thumb-diameter) - min(var(--hy-slider-height), var(--hy-slider-thumb-diameter))) / 2);
28
- }
29
-
30
- .range-slider {
31
- background: var(--hy-slider-background);
32
- width: 100%;
33
- }
34
-
35
- .range-slider-value {
36
- background: var(--hy-slider-value-color);
37
- width: var(--hy-slider-value-width);
38
- }
39
-
40
- .range-thumb {
41
- background: var(--hy-slider-thumb-color);
42
- border-radius: 50%;
43
- height: var(--hy-slider-thumb-diameter);
44
- position: absolute;
45
- transform: translateX(var(--hy-slider-thumb-offset));
46
- width: var(--hy-slider-thumb-diameter);
47
- }
48
-
49
- input {
50
- display: inline-block;
51
- height: var(--hy-slider-thumb-diameter);
52
- margin: 0;
53
- opacity: 0;
54
- position: relative;
55
- width: 100%;
56
- }
57
-
58
- :host([disabled]) {
59
- --hy-slider-background: #d9d9d9;
60
- --hy-slider-value-color: #a8a8a8;
61
- --hy-slider-thumb-color: #f0f0f0;
62
- }
63
-
64
- @media (prefers-color-scheme: dark) {
65
- body {
66
- --hy-slider-background: #767676;
67
- --hy-slider-height: 2px;
68
- --hy-slider-radius: var(--hy-slider-height);
69
- --hy-slider-value-color: #ff6200;
70
- --hy-slider-value-width: 0;
71
- --hy-slider-thumb-color: #adadad;
72
- --hy-slider-thumb-diameter: 15px;
73
- --hy-slider-thumb-offset: 0;
74
- }
75
- }
4
+ ${styleVariables}
5
+
6
+ :host {
7
+ display: inline-block;
8
+ width: var(--nuraly-slider-input-local-width);
9
+ font-family: var(--nuraly-slider-input-local-font-family);
10
+ font-size: var(--nuraly-slider-input-local-font-size);
11
+ font-weight: var(--nuraly-slider-input-local-font-weight);
12
+ }
13
+
14
+ /* Host attribute selectors for configuration */
15
+ :host([disabled]) {
16
+ opacity: 0.6;
17
+ pointer-events: none;
18
+ }
19
+
20
+ .slider-wrapper {
21
+ position: relative;
22
+ padding: calc(var(--nuraly-slider-input-local-thumb-diameter) / 2) 0;
23
+ }
24
+
25
+ .range-container {
26
+ position: relative;
27
+ width: 100%;
28
+ }
29
+
30
+ .range-slider,
31
+ .range-slider-value {
32
+ border-radius: var(--nuraly-slider-input-local-border-radius);
33
+ height: var(--nuraly-slider-input-local-track-height);
34
+ position: absolute;
35
+ top: calc((var(--nuraly-slider-input-local-thumb-diameter) - var(--nuraly-slider-input-local-track-height)) / 2);
36
+ transition: all var(--nuraly-slider-input-local-transition-duration) var(--nuraly-slider-input-local-transition-timing);
37
+ }
38
+
39
+ .range-slider {
40
+ background: var(--nuraly-slider-input-local-track-color);
41
+ width: 100%;
42
+ border: var(--nuraly-slider-input-local-border-width) solid var(--nuraly-slider-input-local-border-color);
43
+ }
44
+
45
+ .range-slider-value {
46
+ background: var(--nuraly-slider-input-local-track-filled-color);
47
+ width: var(--nr-slider-value-width, 0%);
48
+ z-index: calc(var(--nuraly-slider-input-local-z-index) + 1);
49
+ }
50
+
51
+ .range-thumb {
52
+ background: var(--nuraly-slider-input-local-thumb-color);
53
+ border: 2px solid var(--nuraly-slider-input-local-thumb-border-color);
54
+ border-radius: var(--nuraly-slider-input-local-thumb-border-radius);
55
+ height: var(--nuraly-slider-input-local-thumb-diameter);
56
+ width: var(--nuraly-slider-input-local-thumb-diameter);
57
+ position: absolute;
58
+ top: calc((var(--nuraly-slider-input-local-track-height) - var(--nuraly-slider-input-local-thumb-diameter)) / 2);
59
+ left: var(--nr-slider-thumb-offset, 0px);
60
+ cursor: pointer;
61
+ z-index: calc(var(--nuraly-slider-input-local-z-index) + 2);
62
+ box-shadow: var(--nuraly-slider-input-local-thumb-shadow);
63
+ transition: all var(--nuraly-slider-input-local-transition-duration) var(--nuraly-slider-input-local-transition-timing);
64
+ }
65
+
66
+ .range-thumb:hover {
67
+ background: var(--nuraly-slider-input-local-thumb-hover-color);
68
+ box-shadow: var(--nuraly-slider-input-local-focus-shadow);
69
+ }
70
+
71
+ .range-thumb:active {
72
+ background: var(--nuraly-slider-input-local-thumb-active-color);
73
+ box-shadow: var(--nuraly-slider-input-local-focus-shadow);
74
+ }
75
+
76
+ input {
77
+ position: absolute;
78
+ top: 0;
79
+ left: 0;
80
+ height: 100%;
81
+ margin: 0;
82
+ opacity: 0;
83
+ width: 100%;
84
+ cursor: pointer;
85
+ z-index: calc(var(--nuraly-slider-input-local-z-index) + 3);
86
+ appearance: none;
87
+ background: transparent;
88
+ pointer-events: auto;
89
+ }
90
+
91
+ input::-webkit-slider-thumb {
92
+ appearance: none;
93
+ width: var(--nuraly-slider-input-local-thumb-diameter);
94
+ height: var(--nuraly-slider-input-local-thumb-diameter);
95
+ background: transparent;
96
+ cursor: pointer;
97
+ }
98
+
99
+ input::-moz-range-thumb {
100
+ appearance: none;
101
+ width: var(--nuraly-slider-input-local-thumb-diameter);
102
+ height: var(--nuraly-slider-input-local-thumb-diameter);
103
+ background: transparent;
104
+ border: none;
105
+ cursor: pointer;
106
+ }
107
+
108
+ input:focus-visible + .range-container .range-thumb {
109
+ box-shadow: var(--nuraly-slider-input-local-focus-shadow);
110
+ }
111
+
112
+ /* Disabled state styling */
113
+ :host([disabled]) .range-slider {
114
+ background: var(--nuraly-slider-input-local-disabled-track-color);
115
+ border-color: var(--nuraly-slider-input-local-disabled-border-color);
116
+ }
117
+
118
+ :host([disabled]) .range-slider-value {
119
+ background: var(--nuraly-slider-input-local-disabled-color);
120
+ }
121
+
122
+ :host([disabled]) .range-thumb {
123
+ background: var(--nuraly-slider-input-local-disabled-thumb-color);
124
+ border-color: var(--nuraly-slider-input-local-disabled-border-color);
125
+ cursor: not-allowed;
126
+ box-shadow: none;
127
+ }
128
+
129
+ :host([disabled]) input {
130
+ cursor: not-allowed;
131
+ }
132
+
133
+ /* Size variants */
134
+ :host([size="small"]) {
135
+ --nuraly-slider-input-local-track-height: var(--nuraly-slider-input-local-small-height);
136
+ --nuraly-slider-input-local-thumb-diameter: var(--nuraly-slider-input-local-small-thumb-diameter);
137
+ }
138
+
139
+ :host([size="large"]) {
140
+ --nuraly-slider-input-local-track-height: var(--nuraly-slider-input-local-large-height);
141
+ --nuraly-slider-input-local-thumb-diameter: var(--nuraly-slider-input-local-large-thumb-diameter);
142
+ }
143
+
144
+ /* Error state */
145
+ :host([error]) .range-slider-value {
146
+ background: var(--nuraly-slider-input-local-error-color);
147
+ }
148
+
149
+ :host([error]) .range-thumb {
150
+ border-color: var(--nuraly-slider-input-local-error-color);
151
+ }
152
+
153
+ /* Warning state */
154
+ :host([warning]) .range-slider-value {
155
+ background: var(--nuraly-slider-input-local-warning-color);
156
+ }
157
+
158
+ :host([warning]) .range-thumb {
159
+ border-color: var(--nuraly-slider-input-local-warning-color);
160
+ }
161
+
162
+ /* Success state */
163
+ :host([success]) .range-slider-value {
164
+ background: var(--nuraly-slider-input-local-success-color);
165
+ }
166
+
167
+ :host([success]) .range-thumb {
168
+ border-color: var(--nuraly-slider-input-local-success-color);
169
+ }
76
170
  `;
77
171
  //# sourceMappingURL=slider-input.style.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-input.style.js","sourceRoot":"","sources":["../../../src/components/slider-input/slider-input.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EjB,CAAC","sourcesContent":["import { css } from \"lit\";\n\nexport default css`\n:host {\n --hy-slider-background: #7c7c7c;\n --hy-slider-height: 2px;\n --hy-slider-radius: var(--hy-slider-height);\n --hy-slider-value-color: #00ccff;\n --hy-slider-value-width: 0;\n --hy-slider-thumb-color: #e0e0e0;\n --hy-slider-thumb-diameter: 15px;\n --hy-slider-thumb-offset: 0;\n\n display: inline-block;\n }\n\n .range-container {\n position: relative;\n width: 100%;\n }\n\n .range-slider,\n .range-slider-value {\n border-radius: var(--hy-slider-radius);\n height: var(--hy-slider-height);\n max-height: var(--hy-slider-thumb-diameter);\n position: absolute;\n top: calc((var(--hy-slider-thumb-diameter) - min(var(--hy-slider-height), var(--hy-slider-thumb-diameter))) / 2);\n }\n\n .range-slider {\n background: var(--hy-slider-background);\n width: 100%;\n }\n\n .range-slider-value {\n background: var(--hy-slider-value-color);\n width: var(--hy-slider-value-width);\n }\n\n .range-thumb {\n background: var(--hy-slider-thumb-color);\n border-radius: 50%;\n height: var(--hy-slider-thumb-diameter);\n position: absolute;\n transform: translateX(var(--hy-slider-thumb-offset));\n width: var(--hy-slider-thumb-diameter);\n }\n\n input {\n display: inline-block;\n height: var(--hy-slider-thumb-diameter);\n margin: 0;\n opacity: 0;\n position: relative;\n width: 100%;\n }\n\n :host([disabled]) {\n --hy-slider-background: #d9d9d9;\n --hy-slider-value-color: #a8a8a8;\n --hy-slider-thumb-color: #f0f0f0;\n }\n\n @media (prefers-color-scheme: dark) {\n body {\n --hy-slider-background: #767676;\n\t --hy-slider-height: 2px;\n\t --hy-slider-radius: var(--hy-slider-height);\n\t --hy-slider-value-color: #ff6200;\n\t --hy-slider-value-width: 0;\n\t --hy-slider-thumb-color: #adadad;\n\t --hy-slider-thumb-diameter: 15px;\n\t --hy-slider-thumb-offset: 0;\n }\n }\n`;"]}
1
+ {"version":3,"file":"slider-input.style.js","sourceRoot":"","sources":["../../../src/components/slider-input/slider-input.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,eAAe,GAAG,CAAA;IACd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsKjB,CAAC","sourcesContent":["import { css } from \"lit\";\nimport { styleVariables } from './slider-input.style.variables.js';\n\nexport default css`\n ${styleVariables}\n\n :host {\n display: inline-block;\n width: var(--nuraly-slider-input-local-width);\n font-family: var(--nuraly-slider-input-local-font-family);\n font-size: var(--nuraly-slider-input-local-font-size);\n font-weight: var(--nuraly-slider-input-local-font-weight);\n }\n\n /* Host attribute selectors for configuration */\n :host([disabled]) {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .slider-wrapper {\n position: relative;\n padding: calc(var(--nuraly-slider-input-local-thumb-diameter) / 2) 0;\n }\n\n .range-container {\n position: relative;\n width: 100%;\n }\n\n .range-slider,\n .range-slider-value {\n border-radius: var(--nuraly-slider-input-local-border-radius);\n height: var(--nuraly-slider-input-local-track-height);\n position: absolute;\n top: calc((var(--nuraly-slider-input-local-thumb-diameter) - var(--nuraly-slider-input-local-track-height)) / 2);\n transition: all var(--nuraly-slider-input-local-transition-duration) var(--nuraly-slider-input-local-transition-timing);\n }\n\n .range-slider {\n background: var(--nuraly-slider-input-local-track-color);\n width: 100%;\n border: var(--nuraly-slider-input-local-border-width) solid var(--nuraly-slider-input-local-border-color);\n }\n\n .range-slider-value {\n background: var(--nuraly-slider-input-local-track-filled-color);\n width: var(--nr-slider-value-width, 0%);\n z-index: calc(var(--nuraly-slider-input-local-z-index) + 1);\n }\n\n .range-thumb {\n background: var(--nuraly-slider-input-local-thumb-color);\n border: 2px solid var(--nuraly-slider-input-local-thumb-border-color);\n border-radius: var(--nuraly-slider-input-local-thumb-border-radius);\n height: var(--nuraly-slider-input-local-thumb-diameter);\n width: var(--nuraly-slider-input-local-thumb-diameter);\n position: absolute;\n top: calc((var(--nuraly-slider-input-local-track-height) - var(--nuraly-slider-input-local-thumb-diameter)) / 2);\n left: var(--nr-slider-thumb-offset, 0px);\n cursor: pointer;\n z-index: calc(var(--nuraly-slider-input-local-z-index) + 2);\n box-shadow: var(--nuraly-slider-input-local-thumb-shadow);\n transition: all var(--nuraly-slider-input-local-transition-duration) var(--nuraly-slider-input-local-transition-timing);\n }\n\n .range-thumb:hover {\n background: var(--nuraly-slider-input-local-thumb-hover-color);\n box-shadow: var(--nuraly-slider-input-local-focus-shadow);\n }\n\n .range-thumb:active {\n background: var(--nuraly-slider-input-local-thumb-active-color);\n box-shadow: var(--nuraly-slider-input-local-focus-shadow);\n }\n\n input {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n margin: 0;\n opacity: 0;\n width: 100%;\n cursor: pointer;\n z-index: calc(var(--nuraly-slider-input-local-z-index) + 3);\n appearance: none;\n background: transparent;\n pointer-events: auto;\n }\n\n input::-webkit-slider-thumb {\n appearance: none;\n width: var(--nuraly-slider-input-local-thumb-diameter);\n height: var(--nuraly-slider-input-local-thumb-diameter);\n background: transparent;\n cursor: pointer;\n }\n\n input::-moz-range-thumb {\n appearance: none;\n width: var(--nuraly-slider-input-local-thumb-diameter);\n height: var(--nuraly-slider-input-local-thumb-diameter);\n background: transparent;\n border: none;\n cursor: pointer;\n }\n\n input:focus-visible + .range-container .range-thumb {\n box-shadow: var(--nuraly-slider-input-local-focus-shadow);\n }\n\n /* Disabled state styling */\n :host([disabled]) .range-slider {\n background: var(--nuraly-slider-input-local-disabled-track-color);\n border-color: var(--nuraly-slider-input-local-disabled-border-color);\n }\n\n :host([disabled]) .range-slider-value {\n background: var(--nuraly-slider-input-local-disabled-color);\n }\n\n :host([disabled]) .range-thumb {\n background: var(--nuraly-slider-input-local-disabled-thumb-color);\n border-color: var(--nuraly-slider-input-local-disabled-border-color);\n cursor: not-allowed;\n box-shadow: none;\n }\n\n :host([disabled]) input {\n cursor: not-allowed;\n }\n\n /* Size variants */\n :host([size=\"small\"]) {\n --nuraly-slider-input-local-track-height: var(--nuraly-slider-input-local-small-height);\n --nuraly-slider-input-local-thumb-diameter: var(--nuraly-slider-input-local-small-thumb-diameter);\n }\n\n :host([size=\"large\"]) {\n --nuraly-slider-input-local-track-height: var(--nuraly-slider-input-local-large-height);\n --nuraly-slider-input-local-thumb-diameter: var(--nuraly-slider-input-local-large-thumb-diameter);\n }\n\n /* Error state */\n :host([error]) .range-slider-value {\n background: var(--nuraly-slider-input-local-error-color);\n }\n\n :host([error]) .range-thumb {\n border-color: var(--nuraly-slider-input-local-error-color);\n }\n\n /* Warning state */\n :host([warning]) .range-slider-value {\n background: var(--nuraly-slider-input-local-warning-color);\n }\n\n :host([warning]) .range-thumb {\n border-color: var(--nuraly-slider-input-local-warning-color);\n }\n\n /* Success state */\n :host([success]) .range-slider-value {\n background: var(--nuraly-slider-input-local-success-color);\n }\n\n :host([success]) .range-thumb {\n border-color: var(--nuraly-slider-input-local-success-color);\n }\n`;"]}
@@ -0,0 +1,2 @@
1
+ export declare const styleVariables: import("lit").CSSResult;
2
+ //# sourceMappingURL=slider-input.style.variables.d.ts.map
@@ -0,0 +1,59 @@
1
+ import { css } from 'lit';
2
+ export const styleVariables = css `
3
+ :host {
4
+ /* Component dimensions */
5
+ --nuraly-slider-input-local-width: var(--nuraly-size-slider-input-width, 100%);
6
+ --nuraly-slider-input-local-track-height: var(--nuraly-size-slider-input-track-height, 8px);
7
+ --nuraly-slider-input-local-thumb-diameter: var(--nuraly-size-slider-input-thumb-diameter, 20px);
8
+ --nuraly-slider-input-local-border-width: var(--nuraly-border-slider-input-width, 1px);
9
+
10
+ /* Size variants */
11
+ --nuraly-slider-input-local-small-height: var(--nuraly-size-slider-input-small-height, 6px);
12
+ --nuraly-slider-input-local-small-thumb-diameter: var(--nuraly-size-slider-input-small-thumb-diameter, 16px);
13
+ --nuraly-slider-input-local-large-height: var(--nuraly-size-slider-input-large-height, 10px);
14
+ --nuraly-slider-input-local-large-thumb-diameter: var(--nuraly-size-slider-input-large-thumb-diameter, 24px);
15
+
16
+ /* Typography */
17
+ --nuraly-slider-input-local-font-family: var(--nuraly-typograpnr-slider-input-font-family, var(--nuraly-font-family-base, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif));
18
+ --nuraly-slider-input-local-font-size: var(--nuraly-typograpnr-slider-input-font-size, var(--nuraly-font-size-base, 14px));
19
+ --nuraly-slider-input-local-font-weight: var(--nuraly-typograpnr-slider-input-font-weight, var(--nuraly-font-weight-normal, 400));
20
+
21
+ /* Border radius */
22
+ --nuraly-slider-input-local-border-radius: var(--nuraly-border-slider-input-radius, var(--nuraly-border-radius-base, 6px));
23
+ --nuraly-slider-input-local-thumb-border-radius: var(--nuraly-border-slider-input-thumb-radius, var(--nuraly-border-radius-round, 50%));
24
+
25
+ /* Colors - Track */
26
+ --nuraly-slider-input-local-track-color: var(--nuraly-color-slider-input-track, var(--nuraly-color-neutral-200, #e5e7eb));
27
+ --nuraly-slider-input-local-track-filled-color: var(--nuraly-color-slider-input-track-filled, var(--nuraly-color-primary-500, #3b82f6));
28
+ --nuraly-slider-input-local-border-color: var(--nuraly-color-slider-input-border, var(--nuraly-color-neutral-300, #d1d5db));
29
+
30
+ /* Colors - Thumb */
31
+ --nuraly-slider-input-local-thumb-color: var(--nuraly-color-slider-input-thumb, var(--nuraly-color-white, #ffffff));
32
+ --nuraly-slider-input-local-thumb-border-color: var(--nuraly-color-slider-input-thumb-border, var(--nuraly-color-primary-500, #3b82f6));
33
+ --nuraly-slider-input-local-thumb-hover-color: var(--nuraly-color-slider-input-thumb-hover, var(--nuraly-color-primary-50, #eff6ff));
34
+ --nuraly-slider-input-local-thumb-active-color: var(--nuraly-color-slider-input-thumb-active, var(--nuraly-color-primary-100, #dbeafe));
35
+
36
+ /* Colors - Disabled states */
37
+ --nuraly-slider-input-local-disabled-track-color: var(--nuraly-color-slider-input-disabled-track, var(--nuraly-color-neutral-100, #f5f5f5));
38
+ --nuraly-slider-input-local-disabled-color: var(--nuraly-color-slider-input-disabled, var(--nuraly-color-neutral-300, #d1d5db));
39
+ --nuraly-slider-input-local-disabled-thumb-color: var(--nuraly-color-slider-input-disabled-thumb, var(--nuraly-color-neutral-200, #e5e7eb));
40
+ --nuraly-slider-input-local-disabled-border-color: var(--nuraly-color-slider-input-disabled-border, var(--nuraly-color-neutral-200, #e5e7eb));
41
+
42
+ /* Colors - Status states */
43
+ --nuraly-slider-input-local-error-color: var(--nuraly-color-slider-input-error, var(--nuraly-color-error-500, #ef4444));
44
+ --nuraly-slider-input-local-warning-color: var(--nuraly-color-slider-input-warning, var(--nuraly-color-warning-500, #f59e0b));
45
+ --nuraly-slider-input-local-success-color: var(--nuraly-color-slider-input-success, var(--nuraly-color-success-500, #10b981));
46
+
47
+ /* Shadows */
48
+ --nuraly-slider-input-local-thumb-shadow: var(--nuraly-shadow-slider-input-thumb, var(--nuraly-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05)));
49
+ --nuraly-slider-input-local-focus-shadow: var(--nuraly-shadow-slider-input-focus, var(--nuraly-shadow-focus, 0 0 0 3px rgba(59, 130, 246, 0.15)));
50
+
51
+ /* Elevation */
52
+ --nuraly-slider-input-local-z-index: var(--nuraly-elevation-slider-input-z-index, var(--nuraly-z-index-base, 1));
53
+
54
+ /* Transitions */
55
+ --nuraly-slider-input-local-transition-duration: var(--nuraly-transition-slider-input-duration, var(--nuraly-transition-duration-base, 150ms));
56
+ --nuraly-slider-input-local-transition-timing: var(--nuraly-transition-slider-input-timing, var(--nuraly-transition-timing-ease, ease));
57
+ }
58
+ `;
59
+ //# sourceMappingURL=slider-input.style.variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-input.style.variables.js","sourceRoot":"","sources":["../../../src/components/slider-input/slider-input.style.variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDhC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styleVariables = css`\n :host {\n /* Component dimensions */\n --nuraly-slider-input-local-width: var(--nuraly-size-slider-input-width, 100%);\n --nuraly-slider-input-local-track-height: var(--nuraly-size-slider-input-track-height, 8px);\n --nuraly-slider-input-local-thumb-diameter: var(--nuraly-size-slider-input-thumb-diameter, 20px);\n --nuraly-slider-input-local-border-width: var(--nuraly-border-slider-input-width, 1px);\n\n /* Size variants */\n --nuraly-slider-input-local-small-height: var(--nuraly-size-slider-input-small-height, 6px);\n --nuraly-slider-input-local-small-thumb-diameter: var(--nuraly-size-slider-input-small-thumb-diameter, 16px);\n --nuraly-slider-input-local-large-height: var(--nuraly-size-slider-input-large-height, 10px);\n --nuraly-slider-input-local-large-thumb-diameter: var(--nuraly-size-slider-input-large-thumb-diameter, 24px);\n\n /* Typography */\n --nuraly-slider-input-local-font-family: var(--nuraly-typograpnr-slider-input-font-family, var(--nuraly-font-family-base, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif));\n --nuraly-slider-input-local-font-size: var(--nuraly-typograpnr-slider-input-font-size, var(--nuraly-font-size-base, 14px));\n --nuraly-slider-input-local-font-weight: var(--nuraly-typograpnr-slider-input-font-weight, var(--nuraly-font-weight-normal, 400));\n\n /* Border radius */\n --nuraly-slider-input-local-border-radius: var(--nuraly-border-slider-input-radius, var(--nuraly-border-radius-base, 6px));\n --nuraly-slider-input-local-thumb-border-radius: var(--nuraly-border-slider-input-thumb-radius, var(--nuraly-border-radius-round, 50%));\n\n /* Colors - Track */\n --nuraly-slider-input-local-track-color: var(--nuraly-color-slider-input-track, var(--nuraly-color-neutral-200, #e5e7eb));\n --nuraly-slider-input-local-track-filled-color: var(--nuraly-color-slider-input-track-filled, var(--nuraly-color-primary-500, #3b82f6));\n --nuraly-slider-input-local-border-color: var(--nuraly-color-slider-input-border, var(--nuraly-color-neutral-300, #d1d5db));\n\n /* Colors - Thumb */\n --nuraly-slider-input-local-thumb-color: var(--nuraly-color-slider-input-thumb, var(--nuraly-color-white, #ffffff));\n --nuraly-slider-input-local-thumb-border-color: var(--nuraly-color-slider-input-thumb-border, var(--nuraly-color-primary-500, #3b82f6));\n --nuraly-slider-input-local-thumb-hover-color: var(--nuraly-color-slider-input-thumb-hover, var(--nuraly-color-primary-50, #eff6ff));\n --nuraly-slider-input-local-thumb-active-color: var(--nuraly-color-slider-input-thumb-active, var(--nuraly-color-primary-100, #dbeafe));\n\n /* Colors - Disabled states */\n --nuraly-slider-input-local-disabled-track-color: var(--nuraly-color-slider-input-disabled-track, var(--nuraly-color-neutral-100, #f5f5f5));\n --nuraly-slider-input-local-disabled-color: var(--nuraly-color-slider-input-disabled, var(--nuraly-color-neutral-300, #d1d5db));\n --nuraly-slider-input-local-disabled-thumb-color: var(--nuraly-color-slider-input-disabled-thumb, var(--nuraly-color-neutral-200, #e5e7eb));\n --nuraly-slider-input-local-disabled-border-color: var(--nuraly-color-slider-input-disabled-border, var(--nuraly-color-neutral-200, #e5e7eb));\n\n /* Colors - Status states */\n --nuraly-slider-input-local-error-color: var(--nuraly-color-slider-input-error, var(--nuraly-color-error-500, #ef4444));\n --nuraly-slider-input-local-warning-color: var(--nuraly-color-slider-input-warning, var(--nuraly-color-warning-500, #f59e0b));\n --nuraly-slider-input-local-success-color: var(--nuraly-color-slider-input-success, var(--nuraly-color-success-500, #10b981));\n\n /* Shadows */\n --nuraly-slider-input-local-thumb-shadow: var(--nuraly-shadow-slider-input-thumb, var(--nuraly-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05)));\n --nuraly-slider-input-local-focus-shadow: var(--nuraly-shadow-slider-input-focus, var(--nuraly-shadow-focus, 0 0 0 3px rgba(59, 130, 246, 0.15)));\n\n /* Elevation */\n --nuraly-slider-input-local-z-index: var(--nuraly-elevation-slider-input-z-index, var(--nuraly-z-index-base, 1));\n\n /* Transitions */\n --nuraly-slider-input-local-transition-duration: var(--nuraly-transition-slider-input-duration, var(--nuraly-transition-duration-base, 150ms));\n --nuraly-slider-input-local-transition-timing: var(--nuraly-transition-slider-input-timing, var(--nuraly-transition-timing-ease, ease));\n }\n`;"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Slider Input Types
3
+ * Type definitions for the slider input component
4
+ */
5
+ export interface SliderInputChangeEvent extends CustomEvent {
6
+ detail: {
7
+ value: number;
8
+ min: number;
9
+ max: number;
10
+ };
11
+ }
12
+ export interface SliderInputOptions {
13
+ min?: number;
14
+ max?: number;
15
+ step?: number;
16
+ value?: number;
17
+ disabled?: boolean;
18
+ }
19
+ export declare type SliderInputSize = 'small' | 'medium' | 'large';
20
+ export declare type SliderInputVariant = 'default' | 'primary' | 'success' | 'warning' | 'error';
21
+ //# sourceMappingURL=slider-input.types.d.ts.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Slider Input Types
3
+ * Type definitions for the slider input component
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=slider-input.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-input.types.js","sourceRoot":"","sources":["../../../src/components/slider-input/slider-input.types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Slider Input Types\n * Type definitions for the slider input component\n */\n\nexport interface SliderInputChangeEvent extends CustomEvent {\n detail: {\n value: number;\n min: number;\n max: number;\n };\n}\n\nexport interface SliderInputOptions {\n min?: number;\n max?: number;\n step?: number;\n value?: number;\n disabled?: boolean;\n}\n\nexport type SliderInputSize = 'small' | 'medium' | 'large';\n\nexport type SliderInputVariant = 'default' | 'primary' | 'success' | 'warning' | 'error';"]}
@@ -1,21 +0,0 @@
1
- import { LitElement } from 'lit';
2
- export declare class SliderInputDemi extends LitElement {
3
- static styles: import("lit").CSSResult[];
4
- _sliderChangeViaTextboxValue: number;
5
- _sliderDisabled: boolean;
6
- _sliderMinMaxNotMultipleOfStepValue: number;
7
- _sliderWithChangeHandlerValue: number;
8
- min: number;
9
- max: number;
10
- /**
11
- * Sets the slider's disabled prop.
12
- */
13
- _toggleDisabled(): void;
14
- /**
15
- * Updates the slider prop's value.
16
- * @param {EventObject} e The event object.
17
- */
18
- _updateValue(e: any): void;
19
- render(): import("lit").TemplateResult<1>;
20
- }
21
- //# sourceMappingURL=slider-input-demo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slider-input-demo.d.ts","sourceRoot":"","sources":["../../../../src/components/slider-input/demo/slider-input-demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,qBACa,eAAgB,SAAQ,UAAU;IAC3C,OAAgB,MAAM,4BA6DpB;IAC4B,4BAA4B,SAAM;IACrC,eAAe,UAAS;IACzB,mCAAmC,SAAS;IAC5C,6BAA6B,SAAK;IAClC,GAAG,SAAK;IACR,GAAG,SAAK;IAGpC;;OAEG;IACH,eAAe;IAIf;;;OAGG;IACF,YAAY,CAAC,CAAC,EAAE,GAAG;IAWT,MAAM;CAgGlB"}