@zag-js/slider 0.21.0 → 0.22.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.
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
- package/src/slider.connect.ts +7 -0
package/dist/index.d.mts
CHANGED
|
@@ -247,6 +247,9 @@ declare const dom: {
|
|
|
247
247
|
getActiveElement: (ctx: {
|
|
248
248
|
getRootNode?: (() => Document | Node | ShadowRoot) | undefined;
|
|
249
249
|
}) => HTMLElement | null;
|
|
250
|
+
isActiveElement: (ctx: {
|
|
251
|
+
getRootNode?: (() => Document | Node | ShadowRoot) | undefined;
|
|
252
|
+
}, elem: HTMLElement | null) => boolean;
|
|
250
253
|
getById: <T extends HTMLElement = HTMLElement>(ctx: {
|
|
251
254
|
getRootNode?: (() => Document | Node | ShadowRoot) | undefined;
|
|
252
255
|
}, id: string) => T | null;
|
package/dist/index.d.ts
CHANGED
|
@@ -247,6 +247,9 @@ declare const dom: {
|
|
|
247
247
|
getActiveElement: (ctx: {
|
|
248
248
|
getRootNode?: (() => Document | Node | ShadowRoot) | undefined;
|
|
249
249
|
}) => HTMLElement | null;
|
|
250
|
+
isActiveElement: (ctx: {
|
|
251
|
+
getRootNode?: (() => Document | Node | ShadowRoot) | undefined;
|
|
252
|
+
}, elem: HTMLElement | null) => boolean;
|
|
250
253
|
getById: <T extends HTMLElement = HTMLElement>(ctx: {
|
|
251
254
|
getRootNode?: (() => Document | Node | ShadowRoot) | undefined;
|
|
252
255
|
}, id: string) => T | null;
|
package/dist/index.js
CHANGED
|
@@ -261,6 +261,7 @@ function connect(state, send, normalize) {
|
|
|
261
261
|
"data-disabled": (0, import_dom_query2.dataAttr)(isDisabled),
|
|
262
262
|
"data-invalid": (0, import_dom_query2.dataAttr)(isInvalid),
|
|
263
263
|
"data-focus": (0, import_dom_query2.dataAttr)(isFocused),
|
|
264
|
+
dir: state.context.dir,
|
|
264
265
|
id: dom.getLabelId(state.context),
|
|
265
266
|
htmlFor: dom.getHiddenInputId(state.context),
|
|
266
267
|
onClick(event) {
|
|
@@ -273,6 +274,7 @@ function connect(state, send, normalize) {
|
|
|
273
274
|
}),
|
|
274
275
|
thumbProps: normalize.element({
|
|
275
276
|
...parts.thumb.attrs,
|
|
277
|
+
dir: state.context.dir,
|
|
276
278
|
id: dom.getThumbId(state.context),
|
|
277
279
|
"data-disabled": (0, import_dom_query2.dataAttr)(isDisabled),
|
|
278
280
|
"data-orientation": state.context.orientation,
|
|
@@ -365,11 +367,13 @@ function connect(state, send, normalize) {
|
|
|
365
367
|
"data-invalid": (0, import_dom_query2.dataAttr)(isInvalid),
|
|
366
368
|
"data-orientation": state.context.orientation,
|
|
367
369
|
id: dom.getOutputId(state.context),
|
|
370
|
+
dir: state.context.dir,
|
|
368
371
|
htmlFor: dom.getHiddenInputId(state.context),
|
|
369
372
|
"aria-live": "off"
|
|
370
373
|
}),
|
|
371
374
|
trackProps: normalize.element({
|
|
372
375
|
...parts.track.attrs,
|
|
376
|
+
dir: state.context.dir,
|
|
373
377
|
id: dom.getTrackId(state.context),
|
|
374
378
|
"data-disabled": (0, import_dom_query2.dataAttr)(isDisabled),
|
|
375
379
|
"data-focus": (0, import_dom_query2.dataAttr)(isFocused),
|
|
@@ -379,6 +383,7 @@ function connect(state, send, normalize) {
|
|
|
379
383
|
}),
|
|
380
384
|
rangeProps: normalize.element({
|
|
381
385
|
...parts.range.attrs,
|
|
386
|
+
dir: state.context.dir,
|
|
382
387
|
id: dom.getRangeId(state.context),
|
|
383
388
|
"data-focus": (0, import_dom_query2.dataAttr)(isFocused),
|
|
384
389
|
"data-invalid": (0, import_dom_query2.dataAttr)(isInvalid),
|
|
@@ -388,6 +393,7 @@ function connect(state, send, normalize) {
|
|
|
388
393
|
}),
|
|
389
394
|
controlProps: normalize.element({
|
|
390
395
|
...parts.control.attrs,
|
|
396
|
+
dir: state.context.dir,
|
|
391
397
|
id: dom.getControlId(state.context),
|
|
392
398
|
"data-disabled": (0, import_dom_query2.dataAttr)(isDisabled),
|
|
393
399
|
"data-invalid": (0, import_dom_query2.dataAttr)(isInvalid),
|
|
@@ -408,6 +414,7 @@ function connect(state, send, normalize) {
|
|
|
408
414
|
}),
|
|
409
415
|
markerGroupProps: normalize.element({
|
|
410
416
|
...parts.markerGroup.attrs,
|
|
417
|
+
dir: state.context.dir,
|
|
411
418
|
role: "presentation",
|
|
412
419
|
"aria-hidden": true,
|
|
413
420
|
"data-orientation": state.context.orientation,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/slider.anatomy.ts","../src/slider.connect.ts","../src/slider.dom.ts","../src/slider.style.ts","../src/slider.machine.ts","../src/slider.utils.ts"],"sourcesContent":["export { anatomy } from \"./slider.anatomy\"\nexport { connect } from \"./slider.connect\"\nexport { dom as unstable__dom } from \"./slider.dom\"\nexport { machine } from \"./slider.machine\"\nexport type { UserDefinedContext as Context, MachineApi as Api } from \"./slider.types\"\n","import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"slider\").parts(\n \"root\",\n \"label\",\n \"thumb\",\n \"output\",\n \"track\",\n \"range\",\n \"control\",\n \"markerGroup\",\n \"marker\",\n)\nexport const parts = anatomy.build()\n","import {\n getEventKey,\n getEventPoint,\n getEventStep,\n getNativeEvent,\n isLeftClick,\n isModifiedEvent,\n type EventKeyMap,\n} from \"@zag-js/dom-event\"\nimport { ariaAttr, dataAttr } from \"@zag-js/dom-query\"\nimport { getPercentValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { parts } from \"./slider.anatomy\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineApi, Send, State } from \"./slider.types\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): MachineApi<T> {\n const ariaLabel = state.context[\"aria-label\"]\n const ariaLabelledBy = state.context[\"aria-labelledby\"]\n const ariaValueText = state.context.getAriaValueText?.(state.context.value)\n\n const isFocused = state.matches(\"focus\")\n const isDragging = state.matches(\"dragging\")\n const isDisabled = state.context.isDisabled\n const isInteractive = state.context.isInteractive\n const isInvalid = state.context.invalid\n\n function getPercentValueFn(percent: number) {\n return getPercentValue(percent, state.context.min, state.context.max, state.context.step)\n }\n\n function getValuePercentFn(value: number) {\n return getValuePercent(value, state.context.min, state.context.max)\n }\n\n return {\n isFocused,\n isDragging,\n value: state.context.value,\n percent: getValuePercent(state.context.value, state.context.min, state.context.max),\n\n setValue(value: number) {\n send({ type: \"SET_VALUE\", value })\n },\n\n getPercentValue: getPercentValueFn,\n\n getValuePercent: getValuePercentFn,\n\n focus() {\n dom.getThumbEl(state.context)?.focus()\n },\n /**\n * Function to increment the value of the slider by the step.\n */\n increment() {\n send(\"INCREMENT\")\n },\n\n decrement() {\n send(\"DECREMENT\")\n },\n\n rootProps: normalize.element({\n ...parts.root.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-orientation\": state.context.orientation,\n \"data-invalid\": dataAttr(isInvalid),\n id: dom.getRootId(state.context),\n dir: state.context.dir,\n style: dom.getRootStyle(state.context),\n }),\n\n labelProps: normalize.label({\n ...parts.label.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-focus\": dataAttr(isFocused),\n id: dom.getLabelId(state.context),\n htmlFor: dom.getHiddenInputId(state.context),\n onClick(event) {\n if (!isInteractive) return\n event.preventDefault()\n dom.getThumbEl(state.context)?.focus()\n },\n style: dom.getLabelStyle(),\n }),\n\n thumbProps: normalize.element({\n ...parts.thumb.attrs,\n id: dom.getThumbId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n draggable: false,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"data-invalid\": dataAttr(isInvalid),\n \"aria-disabled\": ariaAttr(isDisabled),\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabel ? undefined : ariaLabelledBy ?? dom.getLabelId(state.context),\n \"aria-orientation\": state.context.orientation,\n \"aria-valuemax\": state.context.max,\n \"aria-valuemin\": state.context.min,\n \"aria-valuenow\": state.context.value,\n \"aria-valuetext\": ariaValueText,\n role: \"slider\",\n tabIndex: isDisabled ? undefined : 0,\n onPointerDown(event) {\n if (!isInteractive) return\n send({ type: \"THUMB_POINTER_DOWN\" })\n event.stopPropagation()\n },\n onBlur() {\n if (!isInteractive) return\n send(\"BLUR\")\n },\n onFocus() {\n if (!isInteractive) return\n send(\"FOCUS\")\n },\n onKeyDown(event) {\n if (!isInteractive) return\n const step = getEventStep(event) * state.context.step\n let prevent = true\n const keyMap: EventKeyMap = {\n ArrowUp() {\n send({ type: \"ARROW_UP\", step })\n prevent = state.context.isVertical\n },\n ArrowDown() {\n send({ type: \"ARROW_DOWN\", step })\n prevent = state.context.isVertical\n },\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\", step })\n prevent = state.context.isHorizontal\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\", step })\n prevent = state.context.isHorizontal\n },\n PageUp() {\n send({ type: \"PAGE_UP\", step })\n },\n PageDown() {\n send({ type: \"PAGE_DOWN\", step })\n },\n Home() {\n send(\"HOME\")\n },\n End() {\n send(\"END\")\n },\n }\n\n const key = getEventKey(event, state.context)\n const exec = keyMap[key]\n\n if (!exec) return\n exec(event)\n\n if (prevent) {\n event.preventDefault()\n }\n },\n style: dom.getThumbStyle(state.context),\n }),\n\n hiddenInputProps: normalize.input({\n defaultValue: state.context.value,\n name: state.context.name,\n form: state.context.form,\n id: dom.getHiddenInputId(state.context),\n hidden: true,\n }),\n\n outputProps: normalize.output({\n ...parts.output.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n id: dom.getOutputId(state.context),\n htmlFor: dom.getHiddenInputId(state.context),\n \"aria-live\": \"off\",\n }),\n\n trackProps: normalize.element({\n ...parts.track.attrs,\n id: dom.getTrackId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n style: dom.getTrackStyle(),\n }),\n\n rangeProps: normalize.element({\n ...parts.range.attrs,\n id: dom.getRangeId(state.context),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n style: dom.getRangeStyle(state.context),\n }),\n\n controlProps: normalize.element({\n ...parts.control.attrs,\n id: dom.getControlId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n onPointerDown(event) {\n if (!isInteractive) return\n\n const evt = getNativeEvent(event)\n if (!isLeftClick(evt) || isModifiedEvent(evt)) return\n\n const point = getEventPoint(evt)\n send({ type: \"POINTER_DOWN\", point })\n\n event.preventDefault()\n event.stopPropagation()\n },\n style: dom.getControlStyle(),\n }),\n\n markerGroupProps: normalize.element({\n ...parts.markerGroup.attrs,\n role: \"presentation\",\n \"aria-hidden\": true,\n \"data-orientation\": state.context.orientation,\n style: dom.getMarkerGroupStyle(),\n }),\n\n getMarkerProps({ value }: { value: number }) {\n const style = dom.getMarkerStyle(state.context, value)\n const markerState =\n value > state.context.value ? \"over-value\" : value === state.context.value ? \"at-value\" : \"under-value\"\n\n return normalize.element({\n ...parts.marker.attrs,\n dir: state.context.dir,\n id: dom.getMarkerId(state.context, value),\n role: \"presentation\",\n \"data-orientation\": state.context.orientation,\n \"data-value\": value,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-state\": markerState,\n style,\n })\n },\n }\n}\n","import { getRelativePoint } from \"@zag-js/dom-event\"\nimport { createScope } from \"@zag-js/dom-query\"\nimport { dispatchInputValueEvent } from \"@zag-js/form-utils\"\nimport { getPercentValue } from \"@zag-js/numeric-range\"\nimport { styles } from \"./slider.style\"\nimport type { MachineContext as Ctx, Point } from \"./slider.types\"\n\nexport const dom = createScope({\n ...styles,\n\n getRootId: (ctx: Ctx) => ctx.ids?.root ?? `slider:${ctx.id}`,\n getThumbId: (ctx: Ctx) => ctx.ids?.thumb ?? `slider:${ctx.id}:thumb`,\n getControlId: (ctx: Ctx) => ctx.ids?.control ?? `slider:${ctx.id}:control`,\n getHiddenInputId: (ctx: Ctx) => ctx.ids?.hiddenInput ?? `slider:${ctx.id}:input`,\n getOutputId: (ctx: Ctx) => ctx.ids?.output ?? `slider:${ctx.id}:output`,\n getTrackId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}track`,\n getRangeId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}:range`,\n getLabelId: (ctx: Ctx) => ctx.ids?.label ?? `slider:${ctx.id}:label`,\n getMarkerId: (ctx: Ctx, value: number) => `slider:${ctx.id}:marker:${value}`,\n\n getRootEl: (ctx: Ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getThumbEl: (ctx: Ctx) => dom.getById(ctx, dom.getThumbId(ctx)),\n getControlEl: (ctx: Ctx) => dom.getById(ctx, dom.getControlId(ctx)),\n getHiddenInputEl: (ctx: Ctx) => dom.getById<HTMLInputElement>(ctx, dom.getHiddenInputId(ctx)),\n\n getValueFromPoint(ctx: Ctx, point: Point): number | undefined {\n const controlEl = dom.getControlEl(ctx)\n if (!controlEl) return\n\n const relativePoint = getRelativePoint(point, controlEl)\n const percent = relativePoint.getPercentValue({\n orientation: ctx.orientation,\n dir: ctx.dir,\n inverted: { y: true },\n })\n return getPercentValue(percent, ctx.min, ctx.max, ctx.step)\n },\n\n dispatchChangeEvent(ctx: Ctx) {\n const input = dom.getHiddenInputEl(ctx)\n if (!input) return\n dispatchInputValueEvent(input, { value: ctx.value })\n },\n})\n","import { getValuePercent, getValueTransformer } from \"@zag-js/numeric-range\"\nimport type { Style } from \"@zag-js/types\"\nimport type { MachineContext as Ctx, SharedContext } from \"./slider.types\"\n\n/* -----------------------------------------------------------------------------\n * Thumb style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getVerticalThumbOffset(ctx: SharedContext) {\n const { height = 0 } = ctx.thumbSize ?? {}\n const getValue = getValueTransformer([ctx.min, ctx.max], [-height / 2, height / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getHorizontalThumbOffset(ctx: SharedContext) {\n const { width = 0 } = ctx.thumbSize ?? {}\n\n if (ctx.isRtl) {\n const getValue = getValueTransformer([ctx.max, ctx.min], [-width / 2, width / 2])\n return -1 * parseFloat(getValue(ctx.value).toFixed(2))\n }\n\n const getValue = getValueTransformer([ctx.min, ctx.max], [-width / 2, width / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getOffset(ctx: SharedContext, percent: number) {\n if (ctx.thumbAlignment === \"center\") return `${percent}%`\n const offset = ctx.isVertical ? getVerticalThumbOffset(ctx) : getHorizontalThumbOffset(ctx)\n return `calc(${percent}% - ${offset}px)`\n}\n\nfunction getThumbOffset(ctx: SharedContext) {\n let percent = getValuePercent(ctx.value, ctx.min, ctx.max) * 100\n return getOffset(ctx, percent)\n}\n\nfunction getVisibility(ctx: Pick<SharedContext, \"thumbAlignment\" | \"hasMeasuredThumbSize\">) {\n let visibility: \"visible\" | \"hidden\" = \"visible\"\n if (ctx.thumbAlignment === \"contain\" && !ctx.hasMeasuredThumbSize) {\n visibility = \"hidden\"\n }\n return visibility\n}\n\nfunction getThumbStyle(ctx: SharedContext): Style {\n const placementProp = ctx.isVertical ? \"bottom\" : \"insetInlineStart\"\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n transform: \"var(--slider-thumb-transform)\",\n [placementProp]: \"var(--slider-thumb-offset)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Range style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRangeOffsets(ctx: Ctx) {\n let start = \"0%\"\n let end = `${100 - ctx.valuePercent}%`\n\n if (ctx.origin === \"center\") {\n const isNegative = ctx.valuePercent < 50\n start = isNegative ? `${ctx.valuePercent}%` : \"50%\"\n end = isNegative ? \"50%\" : end\n }\n\n return { start, end }\n}\n\nfunction getRangeStyle(ctx: Pick<SharedContext, \"isVertical\" | \"isRtl\">): Style {\n if (ctx.isVertical) {\n return {\n position: \"absolute\",\n bottom: \"var(--slider-range-start)\",\n top: \"var(--slider-range-end)\",\n }\n }\n\n return {\n position: \"absolute\",\n [ctx.isRtl ? \"right\" : \"left\"]: \"var(--slider-range-start)\",\n [ctx.isRtl ? \"left\" : \"right\"]: \"var(--slider-range-end)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Control style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getControlStyle(): Style {\n return {\n touchAction: \"none\",\n userSelect: \"none\",\n position: \"relative\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Root style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRootStyle(ctx: Ctx): Style {\n const range = getRangeOffsets(ctx)\n return {\n \"--slider-thumb-transform\": ctx.isVertical ? \"translateY(50%)\" : ctx.isRtl ? \"translateX(50%)\" : \"translateX(-50%)\",\n \"--slider-thumb-offset\": getThumbOffset(ctx),\n \"--slider-range-start\": range.start,\n \"--slider-range-end\": range.end,\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Marker style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerStyle(\n ctx: Pick<SharedContext, \"isHorizontal\" | \"isRtl\" | \"thumbAlignment\" | \"hasMeasuredThumbSize\">,\n value: number,\n): Style {\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n pointerEvents: \"none\",\n // @ts-expect-error\n [ctx.isHorizontal ? \"insetInlineStart\" : \"bottom\"]: getThumbOffset({ ...ctx, value }),\n translate: \"var(--tx) var(--ty)\",\n \"--tx\": ctx.isHorizontal ? (ctx.isRtl ? \"50%\" : \"-50%\") : \"0%\",\n \"--ty\": !ctx.isHorizontal ? \"50%\" : \"0%\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getLabelStyle(): Style {\n return { userSelect: \"none\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getTrackStyle(): Style {\n return { position: \"relative\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerGroupStyle(): Style {\n return {\n userSelect: \"none\",\n pointerEvents: \"none\",\n position: \"relative\",\n }\n}\n\nexport const styles = {\n getThumbOffset,\n getControlStyle,\n getThumbStyle,\n getRangeStyle,\n getRootStyle,\n getMarkerStyle,\n getLabelStyle,\n getTrackStyle,\n getMarkerGroupStyle,\n}\n","import { createMachine } from \"@zag-js/core\"\nimport { trackPointerMove } from \"@zag-js/dom-event\"\nimport { raf } from \"@zag-js/dom-query\"\nimport { trackElementSize } from \"@zag-js/element-size\"\nimport { trackFormControl } from \"@zag-js/form-utils\"\nimport { clampValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport { compact, isEqual } from \"@zag-js/utils\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./slider.types\"\nimport { constrainValue, decrement, increment } from \"./slider.utils\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"slider\",\n initial: \"idle\",\n context: {\n thumbSize: null,\n thumbAlignment: \"contain\",\n threshold: 5,\n dir: \"ltr\",\n origin: \"start\",\n orientation: \"horizontal\",\n value: 0,\n step: 1,\n min: 0,\n max: 100,\n disabled: false,\n ...ctx,\n fieldsetDisabled: false,\n },\n\n computed: {\n isHorizontal: (ctx) => ctx.orientation === \"horizontal\",\n isVertical: (ctx) => ctx.orientation === \"vertical\",\n isRtl: (ctx) => ctx.orientation === \"horizontal\" && ctx.dir === \"rtl\",\n isDisabled: (ctx) => ctx.disabled || ctx.fieldsetDisabled,\n isInteractive: (ctx) => !(ctx.isDisabled || ctx.readOnly),\n hasMeasuredThumbSize: (ctx) => ctx.thumbSize !== null,\n valuePercent: (ctx) => 100 * getValuePercent(ctx.value, ctx.min, ctx.max),\n },\n\n watch: {\n value: [\"syncInputElement\"],\n },\n\n activities: [\"trackFormControlState\", \"trackThumbSize\"],\n\n on: {\n SET_VALUE: {\n actions: \"setValue\",\n },\n INCREMENT: {\n actions: \"increment\",\n },\n DECREMENT: {\n actions: \"decrement\",\n },\n },\n\n entry: [\"checkValue\"],\n\n states: {\n idle: {\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n FOCUS: \"focus\",\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n },\n },\n\n focus: {\n entry: \"focusThumb\",\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n ARROW_LEFT: {\n guard: \"isHorizontal\",\n actions: \"decrement\",\n },\n ARROW_RIGHT: {\n guard: \"isHorizontal\",\n actions: \"increment\",\n },\n ARROW_UP: {\n guard: \"isVertical\",\n actions: \"increment\",\n },\n ARROW_DOWN: {\n guard: \"isVertical\",\n actions: \"decrement\",\n },\n PAGE_UP: {\n actions: \"increment\",\n },\n PAGE_DOWN: {\n actions: \"decrement\",\n },\n HOME: {\n actions: \"setToMin\",\n },\n END: {\n actions: \"setToMax\",\n },\n BLUR: \"idle\",\n },\n },\n\n dragging: {\n entry: \"focusThumb\",\n activities: \"trackPointerMove\",\n on: {\n POINTER_UP: {\n target: \"focus\",\n actions: \"invokeOnChangeEnd\",\n },\n POINTER_MOVE: {\n actions: \"setPointerValue\",\n },\n },\n },\n },\n },\n {\n guards: {\n isHorizontal: (ctx) => ctx.isHorizontal,\n isVertical: (ctx) => ctx.isVertical,\n },\n\n activities: {\n trackFormControlState(ctx, _evt, { initialContext }) {\n return trackFormControl(dom.getHiddenInputEl(ctx), {\n onFieldsetDisabledChange(disabled) {\n ctx.fieldsetDisabled = disabled\n },\n onFormReset() {\n set.value(ctx, initialContext.value)\n },\n })\n },\n\n trackPointerMove(ctx, _evt, { send }) {\n return trackPointerMove(dom.getDoc(ctx), {\n onPointerMove(info) {\n send({ type: \"POINTER_MOVE\", point: info.point })\n },\n onPointerUp() {\n send(\"POINTER_UP\")\n },\n })\n },\n trackThumbSize(ctx, _evt) {\n if (ctx.thumbAlignment !== \"contain\" || ctx.thumbSize) return\n return trackElementSize(dom.getThumbEl(ctx), (size) => {\n if (size) ctx.thumbSize = size\n })\n },\n },\n\n actions: {\n checkValue(ctx) {\n ctx.value = constrainValue(ctx, ctx.value)\n },\n invokeOnChangeStart(ctx) {\n ctx.onValueChangeStart?.({ value: ctx.value })\n },\n invokeOnChangeEnd(ctx) {\n ctx.onValueChangeEnd?.({ value: ctx.value })\n },\n setPointerValue(ctx, evt) {\n const value = dom.getValueFromPoint(ctx, evt.point)\n if (value == null) return\n set.value(ctx, clampValue(value, ctx.min, ctx.max))\n },\n focusThumb(ctx) {\n raf(() => dom.getThumbEl(ctx)?.focus({ preventScroll: true }))\n },\n decrement(ctx, evt) {\n const value = decrement(ctx, evt.step)\n set.value(ctx, value)\n },\n increment(ctx, evt) {\n const value = increment(ctx, evt.step)\n set.value(ctx, value)\n },\n setToMin(ctx) {\n set.value(ctx, ctx.min)\n },\n setToMax(ctx) {\n set.value(ctx, ctx.max)\n },\n setValue(ctx, evt) {\n const value = constrainValue(ctx, evt.value)\n set.value(ctx, value)\n },\n syncInputElement(ctx) {\n const inputEl = dom.getHiddenInputEl(ctx)\n dom.setValue(inputEl, ctx.value)\n },\n },\n },\n )\n}\n\nconst invoke = {\n change: (ctx: MachineContext) => {\n ctx.onValueChange?.({ value: ctx.value })\n dom.dispatchChangeEvent(ctx)\n },\n}\n\nconst set = {\n value: (ctx: MachineContext, value: number) => {\n if (isEqual(ctx.value, value)) return\n ctx.value = value\n invoke.change(ctx)\n },\n}\n","import { clampValue, getNextStepValue, getPreviousStepValue, snapValueToStep } from \"@zag-js/numeric-range\"\nimport type { MachineContext as Ctx } from \"./slider.types\"\n\nexport function clampPercent(percent: number) {\n return clampValue(percent, 0, 1)\n}\n\nexport function constrainValue(ctx: Ctx, value: number) {\n const snapValue = snapValueToStep(value, ctx.min, ctx.max, ctx.step)\n return clampValue(snapValue, ctx.min, ctx.max)\n}\n\nexport function decrement(ctx: Ctx, step?: number) {\n const index = 0\n const values = getPreviousStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n\nexport function increment(ctx: Ctx, step?: number) {\n const index = 0\n const values = getNextStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n"],"mappings":"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","names":["import_dom_event","import_dom_query","import_numeric_range","import_numeric_range","getValue","import_dom_event","import_dom_query","import_form_utils","import_numeric_range","import_numeric_range","ctx"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/slider.anatomy.ts","../src/slider.connect.ts","../src/slider.dom.ts","../src/slider.style.ts","../src/slider.machine.ts","../src/slider.utils.ts"],"sourcesContent":["export { anatomy } from \"./slider.anatomy\"\nexport { connect } from \"./slider.connect\"\nexport { dom as unstable__dom } from \"./slider.dom\"\nexport { machine } from \"./slider.machine\"\nexport type { UserDefinedContext as Context, MachineApi as Api } from \"./slider.types\"\n","import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"slider\").parts(\n \"root\",\n \"label\",\n \"thumb\",\n \"output\",\n \"track\",\n \"range\",\n \"control\",\n \"markerGroup\",\n \"marker\",\n)\nexport const parts = anatomy.build()\n","import {\n getEventKey,\n getEventPoint,\n getEventStep,\n getNativeEvent,\n isLeftClick,\n isModifiedEvent,\n type EventKeyMap,\n} from \"@zag-js/dom-event\"\nimport { ariaAttr, dataAttr } from \"@zag-js/dom-query\"\nimport { getPercentValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { parts } from \"./slider.anatomy\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineApi, Send, State } from \"./slider.types\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): MachineApi<T> {\n const ariaLabel = state.context[\"aria-label\"]\n const ariaLabelledBy = state.context[\"aria-labelledby\"]\n const ariaValueText = state.context.getAriaValueText?.(state.context.value)\n\n const isFocused = state.matches(\"focus\")\n const isDragging = state.matches(\"dragging\")\n const isDisabled = state.context.isDisabled\n const isInteractive = state.context.isInteractive\n const isInvalid = state.context.invalid\n\n function getPercentValueFn(percent: number) {\n return getPercentValue(percent, state.context.min, state.context.max, state.context.step)\n }\n\n function getValuePercentFn(value: number) {\n return getValuePercent(value, state.context.min, state.context.max)\n }\n\n return {\n isFocused,\n isDragging,\n value: state.context.value,\n percent: getValuePercent(state.context.value, state.context.min, state.context.max),\n\n setValue(value: number) {\n send({ type: \"SET_VALUE\", value })\n },\n\n getPercentValue: getPercentValueFn,\n\n getValuePercent: getValuePercentFn,\n\n focus() {\n dom.getThumbEl(state.context)?.focus()\n },\n /**\n * Function to increment the value of the slider by the step.\n */\n increment() {\n send(\"INCREMENT\")\n },\n\n decrement() {\n send(\"DECREMENT\")\n },\n\n rootProps: normalize.element({\n ...parts.root.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-orientation\": state.context.orientation,\n \"data-invalid\": dataAttr(isInvalid),\n id: dom.getRootId(state.context),\n dir: state.context.dir,\n style: dom.getRootStyle(state.context),\n }),\n\n labelProps: normalize.label({\n ...parts.label.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-focus\": dataAttr(isFocused),\n dir: state.context.dir,\n id: dom.getLabelId(state.context),\n htmlFor: dom.getHiddenInputId(state.context),\n onClick(event) {\n if (!isInteractive) return\n event.preventDefault()\n dom.getThumbEl(state.context)?.focus()\n },\n style: dom.getLabelStyle(),\n }),\n\n thumbProps: normalize.element({\n ...parts.thumb.attrs,\n dir: state.context.dir,\n id: dom.getThumbId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n draggable: false,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"data-invalid\": dataAttr(isInvalid),\n \"aria-disabled\": ariaAttr(isDisabled),\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabel ? undefined : ariaLabelledBy ?? dom.getLabelId(state.context),\n \"aria-orientation\": state.context.orientation,\n \"aria-valuemax\": state.context.max,\n \"aria-valuemin\": state.context.min,\n \"aria-valuenow\": state.context.value,\n \"aria-valuetext\": ariaValueText,\n role: \"slider\",\n tabIndex: isDisabled ? undefined : 0,\n onPointerDown(event) {\n if (!isInteractive) return\n send({ type: \"THUMB_POINTER_DOWN\" })\n event.stopPropagation()\n },\n onBlur() {\n if (!isInteractive) return\n send(\"BLUR\")\n },\n onFocus() {\n if (!isInteractive) return\n send(\"FOCUS\")\n },\n onKeyDown(event) {\n if (!isInteractive) return\n const step = getEventStep(event) * state.context.step\n let prevent = true\n const keyMap: EventKeyMap = {\n ArrowUp() {\n send({ type: \"ARROW_UP\", step })\n prevent = state.context.isVertical\n },\n ArrowDown() {\n send({ type: \"ARROW_DOWN\", step })\n prevent = state.context.isVertical\n },\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\", step })\n prevent = state.context.isHorizontal\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\", step })\n prevent = state.context.isHorizontal\n },\n PageUp() {\n send({ type: \"PAGE_UP\", step })\n },\n PageDown() {\n send({ type: \"PAGE_DOWN\", step })\n },\n Home() {\n send(\"HOME\")\n },\n End() {\n send(\"END\")\n },\n }\n\n const key = getEventKey(event, state.context)\n const exec = keyMap[key]\n\n if (!exec) return\n exec(event)\n\n if (prevent) {\n event.preventDefault()\n }\n },\n style: dom.getThumbStyle(state.context),\n }),\n\n hiddenInputProps: normalize.input({\n defaultValue: state.context.value,\n name: state.context.name,\n form: state.context.form,\n id: dom.getHiddenInputId(state.context),\n hidden: true,\n }),\n\n outputProps: normalize.output({\n ...parts.output.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n id: dom.getOutputId(state.context),\n dir: state.context.dir,\n htmlFor: dom.getHiddenInputId(state.context),\n \"aria-live\": \"off\",\n }),\n\n trackProps: normalize.element({\n ...parts.track.attrs,\n dir: state.context.dir,\n id: dom.getTrackId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n style: dom.getTrackStyle(),\n }),\n\n rangeProps: normalize.element({\n ...parts.range.attrs,\n dir: state.context.dir,\n id: dom.getRangeId(state.context),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n style: dom.getRangeStyle(state.context),\n }),\n\n controlProps: normalize.element({\n ...parts.control.attrs,\n dir: state.context.dir,\n id: dom.getControlId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n onPointerDown(event) {\n if (!isInteractive) return\n\n const evt = getNativeEvent(event)\n if (!isLeftClick(evt) || isModifiedEvent(evt)) return\n\n const point = getEventPoint(evt)\n send({ type: \"POINTER_DOWN\", point })\n\n event.preventDefault()\n event.stopPropagation()\n },\n style: dom.getControlStyle(),\n }),\n\n markerGroupProps: normalize.element({\n ...parts.markerGroup.attrs,\n dir: state.context.dir,\n role: \"presentation\",\n \"aria-hidden\": true,\n \"data-orientation\": state.context.orientation,\n style: dom.getMarkerGroupStyle(),\n }),\n\n getMarkerProps({ value }: { value: number }) {\n const style = dom.getMarkerStyle(state.context, value)\n const markerState =\n value > state.context.value ? \"over-value\" : value === state.context.value ? \"at-value\" : \"under-value\"\n\n return normalize.element({\n ...parts.marker.attrs,\n dir: state.context.dir,\n id: dom.getMarkerId(state.context, value),\n role: \"presentation\",\n \"data-orientation\": state.context.orientation,\n \"data-value\": value,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-state\": markerState,\n style,\n })\n },\n }\n}\n","import { getRelativePoint } from \"@zag-js/dom-event\"\nimport { createScope } from \"@zag-js/dom-query\"\nimport { dispatchInputValueEvent } from \"@zag-js/form-utils\"\nimport { getPercentValue } from \"@zag-js/numeric-range\"\nimport { styles } from \"./slider.style\"\nimport type { MachineContext as Ctx, Point } from \"./slider.types\"\n\nexport const dom = createScope({\n ...styles,\n\n getRootId: (ctx: Ctx) => ctx.ids?.root ?? `slider:${ctx.id}`,\n getThumbId: (ctx: Ctx) => ctx.ids?.thumb ?? `slider:${ctx.id}:thumb`,\n getControlId: (ctx: Ctx) => ctx.ids?.control ?? `slider:${ctx.id}:control`,\n getHiddenInputId: (ctx: Ctx) => ctx.ids?.hiddenInput ?? `slider:${ctx.id}:input`,\n getOutputId: (ctx: Ctx) => ctx.ids?.output ?? `slider:${ctx.id}:output`,\n getTrackId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}track`,\n getRangeId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}:range`,\n getLabelId: (ctx: Ctx) => ctx.ids?.label ?? `slider:${ctx.id}:label`,\n getMarkerId: (ctx: Ctx, value: number) => `slider:${ctx.id}:marker:${value}`,\n\n getRootEl: (ctx: Ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getThumbEl: (ctx: Ctx) => dom.getById(ctx, dom.getThumbId(ctx)),\n getControlEl: (ctx: Ctx) => dom.getById(ctx, dom.getControlId(ctx)),\n getHiddenInputEl: (ctx: Ctx) => dom.getById<HTMLInputElement>(ctx, dom.getHiddenInputId(ctx)),\n\n getValueFromPoint(ctx: Ctx, point: Point): number | undefined {\n const controlEl = dom.getControlEl(ctx)\n if (!controlEl) return\n\n const relativePoint = getRelativePoint(point, controlEl)\n const percent = relativePoint.getPercentValue({\n orientation: ctx.orientation,\n dir: ctx.dir,\n inverted: { y: true },\n })\n return getPercentValue(percent, ctx.min, ctx.max, ctx.step)\n },\n\n dispatchChangeEvent(ctx: Ctx) {\n const input = dom.getHiddenInputEl(ctx)\n if (!input) return\n dispatchInputValueEvent(input, { value: ctx.value })\n },\n})\n","import { getValuePercent, getValueTransformer } from \"@zag-js/numeric-range\"\nimport type { Style } from \"@zag-js/types\"\nimport type { MachineContext as Ctx, SharedContext } from \"./slider.types\"\n\n/* -----------------------------------------------------------------------------\n * Thumb style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getVerticalThumbOffset(ctx: SharedContext) {\n const { height = 0 } = ctx.thumbSize ?? {}\n const getValue = getValueTransformer([ctx.min, ctx.max], [-height / 2, height / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getHorizontalThumbOffset(ctx: SharedContext) {\n const { width = 0 } = ctx.thumbSize ?? {}\n\n if (ctx.isRtl) {\n const getValue = getValueTransformer([ctx.max, ctx.min], [-width / 2, width / 2])\n return -1 * parseFloat(getValue(ctx.value).toFixed(2))\n }\n\n const getValue = getValueTransformer([ctx.min, ctx.max], [-width / 2, width / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getOffset(ctx: SharedContext, percent: number) {\n if (ctx.thumbAlignment === \"center\") return `${percent}%`\n const offset = ctx.isVertical ? getVerticalThumbOffset(ctx) : getHorizontalThumbOffset(ctx)\n return `calc(${percent}% - ${offset}px)`\n}\n\nfunction getThumbOffset(ctx: SharedContext) {\n let percent = getValuePercent(ctx.value, ctx.min, ctx.max) * 100\n return getOffset(ctx, percent)\n}\n\nfunction getVisibility(ctx: Pick<SharedContext, \"thumbAlignment\" | \"hasMeasuredThumbSize\">) {\n let visibility: \"visible\" | \"hidden\" = \"visible\"\n if (ctx.thumbAlignment === \"contain\" && !ctx.hasMeasuredThumbSize) {\n visibility = \"hidden\"\n }\n return visibility\n}\n\nfunction getThumbStyle(ctx: SharedContext): Style {\n const placementProp = ctx.isVertical ? \"bottom\" : \"insetInlineStart\"\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n transform: \"var(--slider-thumb-transform)\",\n [placementProp]: \"var(--slider-thumb-offset)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Range style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRangeOffsets(ctx: Ctx) {\n let start = \"0%\"\n let end = `${100 - ctx.valuePercent}%`\n\n if (ctx.origin === \"center\") {\n const isNegative = ctx.valuePercent < 50\n start = isNegative ? `${ctx.valuePercent}%` : \"50%\"\n end = isNegative ? \"50%\" : end\n }\n\n return { start, end }\n}\n\nfunction getRangeStyle(ctx: Pick<SharedContext, \"isVertical\" | \"isRtl\">): Style {\n if (ctx.isVertical) {\n return {\n position: \"absolute\",\n bottom: \"var(--slider-range-start)\",\n top: \"var(--slider-range-end)\",\n }\n }\n\n return {\n position: \"absolute\",\n [ctx.isRtl ? \"right\" : \"left\"]: \"var(--slider-range-start)\",\n [ctx.isRtl ? \"left\" : \"right\"]: \"var(--slider-range-end)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Control style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getControlStyle(): Style {\n return {\n touchAction: \"none\",\n userSelect: \"none\",\n position: \"relative\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Root style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRootStyle(ctx: Ctx): Style {\n const range = getRangeOffsets(ctx)\n return {\n \"--slider-thumb-transform\": ctx.isVertical ? \"translateY(50%)\" : ctx.isRtl ? \"translateX(50%)\" : \"translateX(-50%)\",\n \"--slider-thumb-offset\": getThumbOffset(ctx),\n \"--slider-range-start\": range.start,\n \"--slider-range-end\": range.end,\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Marker style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerStyle(\n ctx: Pick<SharedContext, \"isHorizontal\" | \"isRtl\" | \"thumbAlignment\" | \"hasMeasuredThumbSize\">,\n value: number,\n): Style {\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n pointerEvents: \"none\",\n // @ts-expect-error\n [ctx.isHorizontal ? \"insetInlineStart\" : \"bottom\"]: getThumbOffset({ ...ctx, value }),\n translate: \"var(--tx) var(--ty)\",\n \"--tx\": ctx.isHorizontal ? (ctx.isRtl ? \"50%\" : \"-50%\") : \"0%\",\n \"--ty\": !ctx.isHorizontal ? \"50%\" : \"0%\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getLabelStyle(): Style {\n return { userSelect: \"none\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getTrackStyle(): Style {\n return { position: \"relative\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerGroupStyle(): Style {\n return {\n userSelect: \"none\",\n pointerEvents: \"none\",\n position: \"relative\",\n }\n}\n\nexport const styles = {\n getThumbOffset,\n getControlStyle,\n getThumbStyle,\n getRangeStyle,\n getRootStyle,\n getMarkerStyle,\n getLabelStyle,\n getTrackStyle,\n getMarkerGroupStyle,\n}\n","import { createMachine } from \"@zag-js/core\"\nimport { trackPointerMove } from \"@zag-js/dom-event\"\nimport { raf } from \"@zag-js/dom-query\"\nimport { trackElementSize } from \"@zag-js/element-size\"\nimport { trackFormControl } from \"@zag-js/form-utils\"\nimport { clampValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport { compact, isEqual } from \"@zag-js/utils\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./slider.types\"\nimport { constrainValue, decrement, increment } from \"./slider.utils\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"slider\",\n initial: \"idle\",\n context: {\n thumbSize: null,\n thumbAlignment: \"contain\",\n threshold: 5,\n dir: \"ltr\",\n origin: \"start\",\n orientation: \"horizontal\",\n value: 0,\n step: 1,\n min: 0,\n max: 100,\n disabled: false,\n ...ctx,\n fieldsetDisabled: false,\n },\n\n computed: {\n isHorizontal: (ctx) => ctx.orientation === \"horizontal\",\n isVertical: (ctx) => ctx.orientation === \"vertical\",\n isRtl: (ctx) => ctx.orientation === \"horizontal\" && ctx.dir === \"rtl\",\n isDisabled: (ctx) => ctx.disabled || ctx.fieldsetDisabled,\n isInteractive: (ctx) => !(ctx.isDisabled || ctx.readOnly),\n hasMeasuredThumbSize: (ctx) => ctx.thumbSize !== null,\n valuePercent: (ctx) => 100 * getValuePercent(ctx.value, ctx.min, ctx.max),\n },\n\n watch: {\n value: [\"syncInputElement\"],\n },\n\n activities: [\"trackFormControlState\", \"trackThumbSize\"],\n\n on: {\n SET_VALUE: {\n actions: \"setValue\",\n },\n INCREMENT: {\n actions: \"increment\",\n },\n DECREMENT: {\n actions: \"decrement\",\n },\n },\n\n entry: [\"checkValue\"],\n\n states: {\n idle: {\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n FOCUS: \"focus\",\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n },\n },\n\n focus: {\n entry: \"focusThumb\",\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n ARROW_LEFT: {\n guard: \"isHorizontal\",\n actions: \"decrement\",\n },\n ARROW_RIGHT: {\n guard: \"isHorizontal\",\n actions: \"increment\",\n },\n ARROW_UP: {\n guard: \"isVertical\",\n actions: \"increment\",\n },\n ARROW_DOWN: {\n guard: \"isVertical\",\n actions: \"decrement\",\n },\n PAGE_UP: {\n actions: \"increment\",\n },\n PAGE_DOWN: {\n actions: \"decrement\",\n },\n HOME: {\n actions: \"setToMin\",\n },\n END: {\n actions: \"setToMax\",\n },\n BLUR: \"idle\",\n },\n },\n\n dragging: {\n entry: \"focusThumb\",\n activities: \"trackPointerMove\",\n on: {\n POINTER_UP: {\n target: \"focus\",\n actions: \"invokeOnChangeEnd\",\n },\n POINTER_MOVE: {\n actions: \"setPointerValue\",\n },\n },\n },\n },\n },\n {\n guards: {\n isHorizontal: (ctx) => ctx.isHorizontal,\n isVertical: (ctx) => ctx.isVertical,\n },\n\n activities: {\n trackFormControlState(ctx, _evt, { initialContext }) {\n return trackFormControl(dom.getHiddenInputEl(ctx), {\n onFieldsetDisabledChange(disabled) {\n ctx.fieldsetDisabled = disabled\n },\n onFormReset() {\n set.value(ctx, initialContext.value)\n },\n })\n },\n\n trackPointerMove(ctx, _evt, { send }) {\n return trackPointerMove(dom.getDoc(ctx), {\n onPointerMove(info) {\n send({ type: \"POINTER_MOVE\", point: info.point })\n },\n onPointerUp() {\n send(\"POINTER_UP\")\n },\n })\n },\n trackThumbSize(ctx, _evt) {\n if (ctx.thumbAlignment !== \"contain\" || ctx.thumbSize) return\n return trackElementSize(dom.getThumbEl(ctx), (size) => {\n if (size) ctx.thumbSize = size\n })\n },\n },\n\n actions: {\n checkValue(ctx) {\n ctx.value = constrainValue(ctx, ctx.value)\n },\n invokeOnChangeStart(ctx) {\n ctx.onValueChangeStart?.({ value: ctx.value })\n },\n invokeOnChangeEnd(ctx) {\n ctx.onValueChangeEnd?.({ value: ctx.value })\n },\n setPointerValue(ctx, evt) {\n const value = dom.getValueFromPoint(ctx, evt.point)\n if (value == null) return\n set.value(ctx, clampValue(value, ctx.min, ctx.max))\n },\n focusThumb(ctx) {\n raf(() => dom.getThumbEl(ctx)?.focus({ preventScroll: true }))\n },\n decrement(ctx, evt) {\n const value = decrement(ctx, evt.step)\n set.value(ctx, value)\n },\n increment(ctx, evt) {\n const value = increment(ctx, evt.step)\n set.value(ctx, value)\n },\n setToMin(ctx) {\n set.value(ctx, ctx.min)\n },\n setToMax(ctx) {\n set.value(ctx, ctx.max)\n },\n setValue(ctx, evt) {\n const value = constrainValue(ctx, evt.value)\n set.value(ctx, value)\n },\n syncInputElement(ctx) {\n const inputEl = dom.getHiddenInputEl(ctx)\n dom.setValue(inputEl, ctx.value)\n },\n },\n },\n )\n}\n\nconst invoke = {\n change: (ctx: MachineContext) => {\n ctx.onValueChange?.({ value: ctx.value })\n dom.dispatchChangeEvent(ctx)\n },\n}\n\nconst set = {\n value: (ctx: MachineContext, value: number) => {\n if (isEqual(ctx.value, value)) return\n ctx.value = value\n invoke.change(ctx)\n },\n}\n","import { clampValue, getNextStepValue, getPreviousStepValue, snapValueToStep } from \"@zag-js/numeric-range\"\nimport type { MachineContext as Ctx } from \"./slider.types\"\n\nexport function clampPercent(percent: number) {\n return clampValue(percent, 0, 1)\n}\n\nexport function constrainValue(ctx: Ctx, value: number) {\n const snapValue = snapValueToStep(value, ctx.min, ctx.max, ctx.step)\n return clampValue(snapValue, ctx.min, ctx.max)\n}\n\nexport function decrement(ctx: Ctx, step?: number) {\n const index = 0\n const values = getPreviousStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n\nexport function increment(ctx: Ctx, step?: number) {\n const index = 0\n const values = getNextStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n"],"mappings":"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","names":["import_dom_event","import_dom_query","import_numeric_range","import_numeric_range","getValue","import_dom_event","import_dom_query","import_form_utils","import_numeric_range","import_numeric_range","ctx"]}
|
package/dist/index.mjs
CHANGED
|
@@ -239,6 +239,7 @@ function connect(state, send, normalize) {
|
|
|
239
239
|
"data-disabled": dataAttr(isDisabled),
|
|
240
240
|
"data-invalid": dataAttr(isInvalid),
|
|
241
241
|
"data-focus": dataAttr(isFocused),
|
|
242
|
+
dir: state.context.dir,
|
|
242
243
|
id: dom.getLabelId(state.context),
|
|
243
244
|
htmlFor: dom.getHiddenInputId(state.context),
|
|
244
245
|
onClick(event) {
|
|
@@ -251,6 +252,7 @@ function connect(state, send, normalize) {
|
|
|
251
252
|
}),
|
|
252
253
|
thumbProps: normalize.element({
|
|
253
254
|
...parts.thumb.attrs,
|
|
255
|
+
dir: state.context.dir,
|
|
254
256
|
id: dom.getThumbId(state.context),
|
|
255
257
|
"data-disabled": dataAttr(isDisabled),
|
|
256
258
|
"data-orientation": state.context.orientation,
|
|
@@ -343,11 +345,13 @@ function connect(state, send, normalize) {
|
|
|
343
345
|
"data-invalid": dataAttr(isInvalid),
|
|
344
346
|
"data-orientation": state.context.orientation,
|
|
345
347
|
id: dom.getOutputId(state.context),
|
|
348
|
+
dir: state.context.dir,
|
|
346
349
|
htmlFor: dom.getHiddenInputId(state.context),
|
|
347
350
|
"aria-live": "off"
|
|
348
351
|
}),
|
|
349
352
|
trackProps: normalize.element({
|
|
350
353
|
...parts.track.attrs,
|
|
354
|
+
dir: state.context.dir,
|
|
351
355
|
id: dom.getTrackId(state.context),
|
|
352
356
|
"data-disabled": dataAttr(isDisabled),
|
|
353
357
|
"data-focus": dataAttr(isFocused),
|
|
@@ -357,6 +361,7 @@ function connect(state, send, normalize) {
|
|
|
357
361
|
}),
|
|
358
362
|
rangeProps: normalize.element({
|
|
359
363
|
...parts.range.attrs,
|
|
364
|
+
dir: state.context.dir,
|
|
360
365
|
id: dom.getRangeId(state.context),
|
|
361
366
|
"data-focus": dataAttr(isFocused),
|
|
362
367
|
"data-invalid": dataAttr(isInvalid),
|
|
@@ -366,6 +371,7 @@ function connect(state, send, normalize) {
|
|
|
366
371
|
}),
|
|
367
372
|
controlProps: normalize.element({
|
|
368
373
|
...parts.control.attrs,
|
|
374
|
+
dir: state.context.dir,
|
|
369
375
|
id: dom.getControlId(state.context),
|
|
370
376
|
"data-disabled": dataAttr(isDisabled),
|
|
371
377
|
"data-invalid": dataAttr(isInvalid),
|
|
@@ -386,6 +392,7 @@ function connect(state, send, normalize) {
|
|
|
386
392
|
}),
|
|
387
393
|
markerGroupProps: normalize.element({
|
|
388
394
|
...parts.markerGroup.attrs,
|
|
395
|
+
dir: state.context.dir,
|
|
389
396
|
role: "presentation",
|
|
390
397
|
"aria-hidden": true,
|
|
391
398
|
"data-orientation": state.context.orientation,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/slider.anatomy.ts","../src/slider.connect.ts","../src/slider.dom.ts","../src/slider.style.ts","../src/slider.machine.ts","../src/slider.utils.ts"],"sourcesContent":["import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"slider\").parts(\n \"root\",\n \"label\",\n \"thumb\",\n \"output\",\n \"track\",\n \"range\",\n \"control\",\n \"markerGroup\",\n \"marker\",\n)\nexport const parts = anatomy.build()\n","import {\n getEventKey,\n getEventPoint,\n getEventStep,\n getNativeEvent,\n isLeftClick,\n isModifiedEvent,\n type EventKeyMap,\n} from \"@zag-js/dom-event\"\nimport { ariaAttr, dataAttr } from \"@zag-js/dom-query\"\nimport { getPercentValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { parts } from \"./slider.anatomy\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineApi, Send, State } from \"./slider.types\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): MachineApi<T> {\n const ariaLabel = state.context[\"aria-label\"]\n const ariaLabelledBy = state.context[\"aria-labelledby\"]\n const ariaValueText = state.context.getAriaValueText?.(state.context.value)\n\n const isFocused = state.matches(\"focus\")\n const isDragging = state.matches(\"dragging\")\n const isDisabled = state.context.isDisabled\n const isInteractive = state.context.isInteractive\n const isInvalid = state.context.invalid\n\n function getPercentValueFn(percent: number) {\n return getPercentValue(percent, state.context.min, state.context.max, state.context.step)\n }\n\n function getValuePercentFn(value: number) {\n return getValuePercent(value, state.context.min, state.context.max)\n }\n\n return {\n isFocused,\n isDragging,\n value: state.context.value,\n percent: getValuePercent(state.context.value, state.context.min, state.context.max),\n\n setValue(value: number) {\n send({ type: \"SET_VALUE\", value })\n },\n\n getPercentValue: getPercentValueFn,\n\n getValuePercent: getValuePercentFn,\n\n focus() {\n dom.getThumbEl(state.context)?.focus()\n },\n /**\n * Function to increment the value of the slider by the step.\n */\n increment() {\n send(\"INCREMENT\")\n },\n\n decrement() {\n send(\"DECREMENT\")\n },\n\n rootProps: normalize.element({\n ...parts.root.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-orientation\": state.context.orientation,\n \"data-invalid\": dataAttr(isInvalid),\n id: dom.getRootId(state.context),\n dir: state.context.dir,\n style: dom.getRootStyle(state.context),\n }),\n\n labelProps: normalize.label({\n ...parts.label.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-focus\": dataAttr(isFocused),\n id: dom.getLabelId(state.context),\n htmlFor: dom.getHiddenInputId(state.context),\n onClick(event) {\n if (!isInteractive) return\n event.preventDefault()\n dom.getThumbEl(state.context)?.focus()\n },\n style: dom.getLabelStyle(),\n }),\n\n thumbProps: normalize.element({\n ...parts.thumb.attrs,\n id: dom.getThumbId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n draggable: false,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"data-invalid\": dataAttr(isInvalid),\n \"aria-disabled\": ariaAttr(isDisabled),\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabel ? undefined : ariaLabelledBy ?? dom.getLabelId(state.context),\n \"aria-orientation\": state.context.orientation,\n \"aria-valuemax\": state.context.max,\n \"aria-valuemin\": state.context.min,\n \"aria-valuenow\": state.context.value,\n \"aria-valuetext\": ariaValueText,\n role: \"slider\",\n tabIndex: isDisabled ? undefined : 0,\n onPointerDown(event) {\n if (!isInteractive) return\n send({ type: \"THUMB_POINTER_DOWN\" })\n event.stopPropagation()\n },\n onBlur() {\n if (!isInteractive) return\n send(\"BLUR\")\n },\n onFocus() {\n if (!isInteractive) return\n send(\"FOCUS\")\n },\n onKeyDown(event) {\n if (!isInteractive) return\n const step = getEventStep(event) * state.context.step\n let prevent = true\n const keyMap: EventKeyMap = {\n ArrowUp() {\n send({ type: \"ARROW_UP\", step })\n prevent = state.context.isVertical\n },\n ArrowDown() {\n send({ type: \"ARROW_DOWN\", step })\n prevent = state.context.isVertical\n },\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\", step })\n prevent = state.context.isHorizontal\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\", step })\n prevent = state.context.isHorizontal\n },\n PageUp() {\n send({ type: \"PAGE_UP\", step })\n },\n PageDown() {\n send({ type: \"PAGE_DOWN\", step })\n },\n Home() {\n send(\"HOME\")\n },\n End() {\n send(\"END\")\n },\n }\n\n const key = getEventKey(event, state.context)\n const exec = keyMap[key]\n\n if (!exec) return\n exec(event)\n\n if (prevent) {\n event.preventDefault()\n }\n },\n style: dom.getThumbStyle(state.context),\n }),\n\n hiddenInputProps: normalize.input({\n defaultValue: state.context.value,\n name: state.context.name,\n form: state.context.form,\n id: dom.getHiddenInputId(state.context),\n hidden: true,\n }),\n\n outputProps: normalize.output({\n ...parts.output.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n id: dom.getOutputId(state.context),\n htmlFor: dom.getHiddenInputId(state.context),\n \"aria-live\": \"off\",\n }),\n\n trackProps: normalize.element({\n ...parts.track.attrs,\n id: dom.getTrackId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n style: dom.getTrackStyle(),\n }),\n\n rangeProps: normalize.element({\n ...parts.range.attrs,\n id: dom.getRangeId(state.context),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n style: dom.getRangeStyle(state.context),\n }),\n\n controlProps: normalize.element({\n ...parts.control.attrs,\n id: dom.getControlId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n onPointerDown(event) {\n if (!isInteractive) return\n\n const evt = getNativeEvent(event)\n if (!isLeftClick(evt) || isModifiedEvent(evt)) return\n\n const point = getEventPoint(evt)\n send({ type: \"POINTER_DOWN\", point })\n\n event.preventDefault()\n event.stopPropagation()\n },\n style: dom.getControlStyle(),\n }),\n\n markerGroupProps: normalize.element({\n ...parts.markerGroup.attrs,\n role: \"presentation\",\n \"aria-hidden\": true,\n \"data-orientation\": state.context.orientation,\n style: dom.getMarkerGroupStyle(),\n }),\n\n getMarkerProps({ value }: { value: number }) {\n const style = dom.getMarkerStyle(state.context, value)\n const markerState =\n value > state.context.value ? \"over-value\" : value === state.context.value ? \"at-value\" : \"under-value\"\n\n return normalize.element({\n ...parts.marker.attrs,\n dir: state.context.dir,\n id: dom.getMarkerId(state.context, value),\n role: \"presentation\",\n \"data-orientation\": state.context.orientation,\n \"data-value\": value,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-state\": markerState,\n style,\n })\n },\n }\n}\n","import { getRelativePoint } from \"@zag-js/dom-event\"\nimport { createScope } from \"@zag-js/dom-query\"\nimport { dispatchInputValueEvent } from \"@zag-js/form-utils\"\nimport { getPercentValue } from \"@zag-js/numeric-range\"\nimport { styles } from \"./slider.style\"\nimport type { MachineContext as Ctx, Point } from \"./slider.types\"\n\nexport const dom = createScope({\n ...styles,\n\n getRootId: (ctx: Ctx) => ctx.ids?.root ?? `slider:${ctx.id}`,\n getThumbId: (ctx: Ctx) => ctx.ids?.thumb ?? `slider:${ctx.id}:thumb`,\n getControlId: (ctx: Ctx) => ctx.ids?.control ?? `slider:${ctx.id}:control`,\n getHiddenInputId: (ctx: Ctx) => ctx.ids?.hiddenInput ?? `slider:${ctx.id}:input`,\n getOutputId: (ctx: Ctx) => ctx.ids?.output ?? `slider:${ctx.id}:output`,\n getTrackId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}track`,\n getRangeId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}:range`,\n getLabelId: (ctx: Ctx) => ctx.ids?.label ?? `slider:${ctx.id}:label`,\n getMarkerId: (ctx: Ctx, value: number) => `slider:${ctx.id}:marker:${value}`,\n\n getRootEl: (ctx: Ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getThumbEl: (ctx: Ctx) => dom.getById(ctx, dom.getThumbId(ctx)),\n getControlEl: (ctx: Ctx) => dom.getById(ctx, dom.getControlId(ctx)),\n getHiddenInputEl: (ctx: Ctx) => dom.getById<HTMLInputElement>(ctx, dom.getHiddenInputId(ctx)),\n\n getValueFromPoint(ctx: Ctx, point: Point): number | undefined {\n const controlEl = dom.getControlEl(ctx)\n if (!controlEl) return\n\n const relativePoint = getRelativePoint(point, controlEl)\n const percent = relativePoint.getPercentValue({\n orientation: ctx.orientation,\n dir: ctx.dir,\n inverted: { y: true },\n })\n return getPercentValue(percent, ctx.min, ctx.max, ctx.step)\n },\n\n dispatchChangeEvent(ctx: Ctx) {\n const input = dom.getHiddenInputEl(ctx)\n if (!input) return\n dispatchInputValueEvent(input, { value: ctx.value })\n },\n})\n","import { getValuePercent, getValueTransformer } from \"@zag-js/numeric-range\"\nimport type { Style } from \"@zag-js/types\"\nimport type { MachineContext as Ctx, SharedContext } from \"./slider.types\"\n\n/* -----------------------------------------------------------------------------\n * Thumb style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getVerticalThumbOffset(ctx: SharedContext) {\n const { height = 0 } = ctx.thumbSize ?? {}\n const getValue = getValueTransformer([ctx.min, ctx.max], [-height / 2, height / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getHorizontalThumbOffset(ctx: SharedContext) {\n const { width = 0 } = ctx.thumbSize ?? {}\n\n if (ctx.isRtl) {\n const getValue = getValueTransformer([ctx.max, ctx.min], [-width / 2, width / 2])\n return -1 * parseFloat(getValue(ctx.value).toFixed(2))\n }\n\n const getValue = getValueTransformer([ctx.min, ctx.max], [-width / 2, width / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getOffset(ctx: SharedContext, percent: number) {\n if (ctx.thumbAlignment === \"center\") return `${percent}%`\n const offset = ctx.isVertical ? getVerticalThumbOffset(ctx) : getHorizontalThumbOffset(ctx)\n return `calc(${percent}% - ${offset}px)`\n}\n\nfunction getThumbOffset(ctx: SharedContext) {\n let percent = getValuePercent(ctx.value, ctx.min, ctx.max) * 100\n return getOffset(ctx, percent)\n}\n\nfunction getVisibility(ctx: Pick<SharedContext, \"thumbAlignment\" | \"hasMeasuredThumbSize\">) {\n let visibility: \"visible\" | \"hidden\" = \"visible\"\n if (ctx.thumbAlignment === \"contain\" && !ctx.hasMeasuredThumbSize) {\n visibility = \"hidden\"\n }\n return visibility\n}\n\nfunction getThumbStyle(ctx: SharedContext): Style {\n const placementProp = ctx.isVertical ? \"bottom\" : \"insetInlineStart\"\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n transform: \"var(--slider-thumb-transform)\",\n [placementProp]: \"var(--slider-thumb-offset)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Range style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRangeOffsets(ctx: Ctx) {\n let start = \"0%\"\n let end = `${100 - ctx.valuePercent}%`\n\n if (ctx.origin === \"center\") {\n const isNegative = ctx.valuePercent < 50\n start = isNegative ? `${ctx.valuePercent}%` : \"50%\"\n end = isNegative ? \"50%\" : end\n }\n\n return { start, end }\n}\n\nfunction getRangeStyle(ctx: Pick<SharedContext, \"isVertical\" | \"isRtl\">): Style {\n if (ctx.isVertical) {\n return {\n position: \"absolute\",\n bottom: \"var(--slider-range-start)\",\n top: \"var(--slider-range-end)\",\n }\n }\n\n return {\n position: \"absolute\",\n [ctx.isRtl ? \"right\" : \"left\"]: \"var(--slider-range-start)\",\n [ctx.isRtl ? \"left\" : \"right\"]: \"var(--slider-range-end)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Control style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getControlStyle(): Style {\n return {\n touchAction: \"none\",\n userSelect: \"none\",\n position: \"relative\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Root style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRootStyle(ctx: Ctx): Style {\n const range = getRangeOffsets(ctx)\n return {\n \"--slider-thumb-transform\": ctx.isVertical ? \"translateY(50%)\" : ctx.isRtl ? \"translateX(50%)\" : \"translateX(-50%)\",\n \"--slider-thumb-offset\": getThumbOffset(ctx),\n \"--slider-range-start\": range.start,\n \"--slider-range-end\": range.end,\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Marker style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerStyle(\n ctx: Pick<SharedContext, \"isHorizontal\" | \"isRtl\" | \"thumbAlignment\" | \"hasMeasuredThumbSize\">,\n value: number,\n): Style {\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n pointerEvents: \"none\",\n // @ts-expect-error\n [ctx.isHorizontal ? \"insetInlineStart\" : \"bottom\"]: getThumbOffset({ ...ctx, value }),\n translate: \"var(--tx) var(--ty)\",\n \"--tx\": ctx.isHorizontal ? (ctx.isRtl ? \"50%\" : \"-50%\") : \"0%\",\n \"--ty\": !ctx.isHorizontal ? \"50%\" : \"0%\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getLabelStyle(): Style {\n return { userSelect: \"none\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getTrackStyle(): Style {\n return { position: \"relative\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerGroupStyle(): Style {\n return {\n userSelect: \"none\",\n pointerEvents: \"none\",\n position: \"relative\",\n }\n}\n\nexport const styles = {\n getThumbOffset,\n getControlStyle,\n getThumbStyle,\n getRangeStyle,\n getRootStyle,\n getMarkerStyle,\n getLabelStyle,\n getTrackStyle,\n getMarkerGroupStyle,\n}\n","import { createMachine } from \"@zag-js/core\"\nimport { trackPointerMove } from \"@zag-js/dom-event\"\nimport { raf } from \"@zag-js/dom-query\"\nimport { trackElementSize } from \"@zag-js/element-size\"\nimport { trackFormControl } from \"@zag-js/form-utils\"\nimport { clampValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport { compact, isEqual } from \"@zag-js/utils\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./slider.types\"\nimport { constrainValue, decrement, increment } from \"./slider.utils\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"slider\",\n initial: \"idle\",\n context: {\n thumbSize: null,\n thumbAlignment: \"contain\",\n threshold: 5,\n dir: \"ltr\",\n origin: \"start\",\n orientation: \"horizontal\",\n value: 0,\n step: 1,\n min: 0,\n max: 100,\n disabled: false,\n ...ctx,\n fieldsetDisabled: false,\n },\n\n computed: {\n isHorizontal: (ctx) => ctx.orientation === \"horizontal\",\n isVertical: (ctx) => ctx.orientation === \"vertical\",\n isRtl: (ctx) => ctx.orientation === \"horizontal\" && ctx.dir === \"rtl\",\n isDisabled: (ctx) => ctx.disabled || ctx.fieldsetDisabled,\n isInteractive: (ctx) => !(ctx.isDisabled || ctx.readOnly),\n hasMeasuredThumbSize: (ctx) => ctx.thumbSize !== null,\n valuePercent: (ctx) => 100 * getValuePercent(ctx.value, ctx.min, ctx.max),\n },\n\n watch: {\n value: [\"syncInputElement\"],\n },\n\n activities: [\"trackFormControlState\", \"trackThumbSize\"],\n\n on: {\n SET_VALUE: {\n actions: \"setValue\",\n },\n INCREMENT: {\n actions: \"increment\",\n },\n DECREMENT: {\n actions: \"decrement\",\n },\n },\n\n entry: [\"checkValue\"],\n\n states: {\n idle: {\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n FOCUS: \"focus\",\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n },\n },\n\n focus: {\n entry: \"focusThumb\",\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n ARROW_LEFT: {\n guard: \"isHorizontal\",\n actions: \"decrement\",\n },\n ARROW_RIGHT: {\n guard: \"isHorizontal\",\n actions: \"increment\",\n },\n ARROW_UP: {\n guard: \"isVertical\",\n actions: \"increment\",\n },\n ARROW_DOWN: {\n guard: \"isVertical\",\n actions: \"decrement\",\n },\n PAGE_UP: {\n actions: \"increment\",\n },\n PAGE_DOWN: {\n actions: \"decrement\",\n },\n HOME: {\n actions: \"setToMin\",\n },\n END: {\n actions: \"setToMax\",\n },\n BLUR: \"idle\",\n },\n },\n\n dragging: {\n entry: \"focusThumb\",\n activities: \"trackPointerMove\",\n on: {\n POINTER_UP: {\n target: \"focus\",\n actions: \"invokeOnChangeEnd\",\n },\n POINTER_MOVE: {\n actions: \"setPointerValue\",\n },\n },\n },\n },\n },\n {\n guards: {\n isHorizontal: (ctx) => ctx.isHorizontal,\n isVertical: (ctx) => ctx.isVertical,\n },\n\n activities: {\n trackFormControlState(ctx, _evt, { initialContext }) {\n return trackFormControl(dom.getHiddenInputEl(ctx), {\n onFieldsetDisabledChange(disabled) {\n ctx.fieldsetDisabled = disabled\n },\n onFormReset() {\n set.value(ctx, initialContext.value)\n },\n })\n },\n\n trackPointerMove(ctx, _evt, { send }) {\n return trackPointerMove(dom.getDoc(ctx), {\n onPointerMove(info) {\n send({ type: \"POINTER_MOVE\", point: info.point })\n },\n onPointerUp() {\n send(\"POINTER_UP\")\n },\n })\n },\n trackThumbSize(ctx, _evt) {\n if (ctx.thumbAlignment !== \"contain\" || ctx.thumbSize) return\n return trackElementSize(dom.getThumbEl(ctx), (size) => {\n if (size) ctx.thumbSize = size\n })\n },\n },\n\n actions: {\n checkValue(ctx) {\n ctx.value = constrainValue(ctx, ctx.value)\n },\n invokeOnChangeStart(ctx) {\n ctx.onValueChangeStart?.({ value: ctx.value })\n },\n invokeOnChangeEnd(ctx) {\n ctx.onValueChangeEnd?.({ value: ctx.value })\n },\n setPointerValue(ctx, evt) {\n const value = dom.getValueFromPoint(ctx, evt.point)\n if (value == null) return\n set.value(ctx, clampValue(value, ctx.min, ctx.max))\n },\n focusThumb(ctx) {\n raf(() => dom.getThumbEl(ctx)?.focus({ preventScroll: true }))\n },\n decrement(ctx, evt) {\n const value = decrement(ctx, evt.step)\n set.value(ctx, value)\n },\n increment(ctx, evt) {\n const value = increment(ctx, evt.step)\n set.value(ctx, value)\n },\n setToMin(ctx) {\n set.value(ctx, ctx.min)\n },\n setToMax(ctx) {\n set.value(ctx, ctx.max)\n },\n setValue(ctx, evt) {\n const value = constrainValue(ctx, evt.value)\n set.value(ctx, value)\n },\n syncInputElement(ctx) {\n const inputEl = dom.getHiddenInputEl(ctx)\n dom.setValue(inputEl, ctx.value)\n },\n },\n },\n )\n}\n\nconst invoke = {\n change: (ctx: MachineContext) => {\n ctx.onValueChange?.({ value: ctx.value })\n dom.dispatchChangeEvent(ctx)\n },\n}\n\nconst set = {\n value: (ctx: MachineContext, value: number) => {\n if (isEqual(ctx.value, value)) return\n ctx.value = value\n invoke.change(ctx)\n },\n}\n","import { clampValue, getNextStepValue, getPreviousStepValue, snapValueToStep } from \"@zag-js/numeric-range\"\nimport type { MachineContext as Ctx } from \"./slider.types\"\n\nexport function clampPercent(percent: number) {\n return clampValue(percent, 0, 1)\n}\n\nexport function constrainValue(ctx: Ctx, value: number) {\n const snapValue = snapValueToStep(value, ctx.min, ctx.max, ctx.step)\n return clampValue(snapValue, ctx.min, ctx.max)\n}\n\nexport function decrement(ctx: Ctx, step?: number) {\n const index = 0\n const values = getPreviousStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n\nexport function increment(ctx: Ctx, step?: number) {\n const index = 0\n const values = getNextStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n"],"mappings":"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","names":["getPercentValue","getValuePercent","getValue","getPercentValue","getValuePercent","clampValue","getValuePercent","ctx","getValuePercent","clampValue"]}
|
|
1
|
+
{"version":3,"sources":["../src/slider.anatomy.ts","../src/slider.connect.ts","../src/slider.dom.ts","../src/slider.style.ts","../src/slider.machine.ts","../src/slider.utils.ts"],"sourcesContent":["import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"slider\").parts(\n \"root\",\n \"label\",\n \"thumb\",\n \"output\",\n \"track\",\n \"range\",\n \"control\",\n \"markerGroup\",\n \"marker\",\n)\nexport const parts = anatomy.build()\n","import {\n getEventKey,\n getEventPoint,\n getEventStep,\n getNativeEvent,\n isLeftClick,\n isModifiedEvent,\n type EventKeyMap,\n} from \"@zag-js/dom-event\"\nimport { ariaAttr, dataAttr } from \"@zag-js/dom-query\"\nimport { getPercentValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { parts } from \"./slider.anatomy\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineApi, Send, State } from \"./slider.types\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): MachineApi<T> {\n const ariaLabel = state.context[\"aria-label\"]\n const ariaLabelledBy = state.context[\"aria-labelledby\"]\n const ariaValueText = state.context.getAriaValueText?.(state.context.value)\n\n const isFocused = state.matches(\"focus\")\n const isDragging = state.matches(\"dragging\")\n const isDisabled = state.context.isDisabled\n const isInteractive = state.context.isInteractive\n const isInvalid = state.context.invalid\n\n function getPercentValueFn(percent: number) {\n return getPercentValue(percent, state.context.min, state.context.max, state.context.step)\n }\n\n function getValuePercentFn(value: number) {\n return getValuePercent(value, state.context.min, state.context.max)\n }\n\n return {\n isFocused,\n isDragging,\n value: state.context.value,\n percent: getValuePercent(state.context.value, state.context.min, state.context.max),\n\n setValue(value: number) {\n send({ type: \"SET_VALUE\", value })\n },\n\n getPercentValue: getPercentValueFn,\n\n getValuePercent: getValuePercentFn,\n\n focus() {\n dom.getThumbEl(state.context)?.focus()\n },\n /**\n * Function to increment the value of the slider by the step.\n */\n increment() {\n send(\"INCREMENT\")\n },\n\n decrement() {\n send(\"DECREMENT\")\n },\n\n rootProps: normalize.element({\n ...parts.root.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-orientation\": state.context.orientation,\n \"data-invalid\": dataAttr(isInvalid),\n id: dom.getRootId(state.context),\n dir: state.context.dir,\n style: dom.getRootStyle(state.context),\n }),\n\n labelProps: normalize.label({\n ...parts.label.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-focus\": dataAttr(isFocused),\n dir: state.context.dir,\n id: dom.getLabelId(state.context),\n htmlFor: dom.getHiddenInputId(state.context),\n onClick(event) {\n if (!isInteractive) return\n event.preventDefault()\n dom.getThumbEl(state.context)?.focus()\n },\n style: dom.getLabelStyle(),\n }),\n\n thumbProps: normalize.element({\n ...parts.thumb.attrs,\n dir: state.context.dir,\n id: dom.getThumbId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n draggable: false,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"data-invalid\": dataAttr(isInvalid),\n \"aria-disabled\": ariaAttr(isDisabled),\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabel ? undefined : ariaLabelledBy ?? dom.getLabelId(state.context),\n \"aria-orientation\": state.context.orientation,\n \"aria-valuemax\": state.context.max,\n \"aria-valuemin\": state.context.min,\n \"aria-valuenow\": state.context.value,\n \"aria-valuetext\": ariaValueText,\n role: \"slider\",\n tabIndex: isDisabled ? undefined : 0,\n onPointerDown(event) {\n if (!isInteractive) return\n send({ type: \"THUMB_POINTER_DOWN\" })\n event.stopPropagation()\n },\n onBlur() {\n if (!isInteractive) return\n send(\"BLUR\")\n },\n onFocus() {\n if (!isInteractive) return\n send(\"FOCUS\")\n },\n onKeyDown(event) {\n if (!isInteractive) return\n const step = getEventStep(event) * state.context.step\n let prevent = true\n const keyMap: EventKeyMap = {\n ArrowUp() {\n send({ type: \"ARROW_UP\", step })\n prevent = state.context.isVertical\n },\n ArrowDown() {\n send({ type: \"ARROW_DOWN\", step })\n prevent = state.context.isVertical\n },\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\", step })\n prevent = state.context.isHorizontal\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\", step })\n prevent = state.context.isHorizontal\n },\n PageUp() {\n send({ type: \"PAGE_UP\", step })\n },\n PageDown() {\n send({ type: \"PAGE_DOWN\", step })\n },\n Home() {\n send(\"HOME\")\n },\n End() {\n send(\"END\")\n },\n }\n\n const key = getEventKey(event, state.context)\n const exec = keyMap[key]\n\n if (!exec) return\n exec(event)\n\n if (prevent) {\n event.preventDefault()\n }\n },\n style: dom.getThumbStyle(state.context),\n }),\n\n hiddenInputProps: normalize.input({\n defaultValue: state.context.value,\n name: state.context.name,\n form: state.context.form,\n id: dom.getHiddenInputId(state.context),\n hidden: true,\n }),\n\n outputProps: normalize.output({\n ...parts.output.attrs,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n id: dom.getOutputId(state.context),\n dir: state.context.dir,\n htmlFor: dom.getHiddenInputId(state.context),\n \"aria-live\": \"off\",\n }),\n\n trackProps: normalize.element({\n ...parts.track.attrs,\n dir: state.context.dir,\n id: dom.getTrackId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n style: dom.getTrackStyle(),\n }),\n\n rangeProps: normalize.element({\n ...parts.range.attrs,\n dir: state.context.dir,\n id: dom.getRangeId(state.context),\n \"data-focus\": dataAttr(isFocused),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-orientation\": state.context.orientation,\n style: dom.getRangeStyle(state.context),\n }),\n\n controlProps: normalize.element({\n ...parts.control.attrs,\n dir: state.context.dir,\n id: dom.getControlId(state.context),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(isFocused),\n onPointerDown(event) {\n if (!isInteractive) return\n\n const evt = getNativeEvent(event)\n if (!isLeftClick(evt) || isModifiedEvent(evt)) return\n\n const point = getEventPoint(evt)\n send({ type: \"POINTER_DOWN\", point })\n\n event.preventDefault()\n event.stopPropagation()\n },\n style: dom.getControlStyle(),\n }),\n\n markerGroupProps: normalize.element({\n ...parts.markerGroup.attrs,\n dir: state.context.dir,\n role: \"presentation\",\n \"aria-hidden\": true,\n \"data-orientation\": state.context.orientation,\n style: dom.getMarkerGroupStyle(),\n }),\n\n getMarkerProps({ value }: { value: number }) {\n const style = dom.getMarkerStyle(state.context, value)\n const markerState =\n value > state.context.value ? \"over-value\" : value === state.context.value ? \"at-value\" : \"under-value\"\n\n return normalize.element({\n ...parts.marker.attrs,\n dir: state.context.dir,\n id: dom.getMarkerId(state.context, value),\n role: \"presentation\",\n \"data-orientation\": state.context.orientation,\n \"data-value\": value,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-state\": markerState,\n style,\n })\n },\n }\n}\n","import { getRelativePoint } from \"@zag-js/dom-event\"\nimport { createScope } from \"@zag-js/dom-query\"\nimport { dispatchInputValueEvent } from \"@zag-js/form-utils\"\nimport { getPercentValue } from \"@zag-js/numeric-range\"\nimport { styles } from \"./slider.style\"\nimport type { MachineContext as Ctx, Point } from \"./slider.types\"\n\nexport const dom = createScope({\n ...styles,\n\n getRootId: (ctx: Ctx) => ctx.ids?.root ?? `slider:${ctx.id}`,\n getThumbId: (ctx: Ctx) => ctx.ids?.thumb ?? `slider:${ctx.id}:thumb`,\n getControlId: (ctx: Ctx) => ctx.ids?.control ?? `slider:${ctx.id}:control`,\n getHiddenInputId: (ctx: Ctx) => ctx.ids?.hiddenInput ?? `slider:${ctx.id}:input`,\n getOutputId: (ctx: Ctx) => ctx.ids?.output ?? `slider:${ctx.id}:output`,\n getTrackId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}track`,\n getRangeId: (ctx: Ctx) => ctx.ids?.track ?? `slider:${ctx.id}:range`,\n getLabelId: (ctx: Ctx) => ctx.ids?.label ?? `slider:${ctx.id}:label`,\n getMarkerId: (ctx: Ctx, value: number) => `slider:${ctx.id}:marker:${value}`,\n\n getRootEl: (ctx: Ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getThumbEl: (ctx: Ctx) => dom.getById(ctx, dom.getThumbId(ctx)),\n getControlEl: (ctx: Ctx) => dom.getById(ctx, dom.getControlId(ctx)),\n getHiddenInputEl: (ctx: Ctx) => dom.getById<HTMLInputElement>(ctx, dom.getHiddenInputId(ctx)),\n\n getValueFromPoint(ctx: Ctx, point: Point): number | undefined {\n const controlEl = dom.getControlEl(ctx)\n if (!controlEl) return\n\n const relativePoint = getRelativePoint(point, controlEl)\n const percent = relativePoint.getPercentValue({\n orientation: ctx.orientation,\n dir: ctx.dir,\n inverted: { y: true },\n })\n return getPercentValue(percent, ctx.min, ctx.max, ctx.step)\n },\n\n dispatchChangeEvent(ctx: Ctx) {\n const input = dom.getHiddenInputEl(ctx)\n if (!input) return\n dispatchInputValueEvent(input, { value: ctx.value })\n },\n})\n","import { getValuePercent, getValueTransformer } from \"@zag-js/numeric-range\"\nimport type { Style } from \"@zag-js/types\"\nimport type { MachineContext as Ctx, SharedContext } from \"./slider.types\"\n\n/* -----------------------------------------------------------------------------\n * Thumb style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getVerticalThumbOffset(ctx: SharedContext) {\n const { height = 0 } = ctx.thumbSize ?? {}\n const getValue = getValueTransformer([ctx.min, ctx.max], [-height / 2, height / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getHorizontalThumbOffset(ctx: SharedContext) {\n const { width = 0 } = ctx.thumbSize ?? {}\n\n if (ctx.isRtl) {\n const getValue = getValueTransformer([ctx.max, ctx.min], [-width / 2, width / 2])\n return -1 * parseFloat(getValue(ctx.value).toFixed(2))\n }\n\n const getValue = getValueTransformer([ctx.min, ctx.max], [-width / 2, width / 2])\n return parseFloat(getValue(ctx.value).toFixed(2))\n}\n\nfunction getOffset(ctx: SharedContext, percent: number) {\n if (ctx.thumbAlignment === \"center\") return `${percent}%`\n const offset = ctx.isVertical ? getVerticalThumbOffset(ctx) : getHorizontalThumbOffset(ctx)\n return `calc(${percent}% - ${offset}px)`\n}\n\nfunction getThumbOffset(ctx: SharedContext) {\n let percent = getValuePercent(ctx.value, ctx.min, ctx.max) * 100\n return getOffset(ctx, percent)\n}\n\nfunction getVisibility(ctx: Pick<SharedContext, \"thumbAlignment\" | \"hasMeasuredThumbSize\">) {\n let visibility: \"visible\" | \"hidden\" = \"visible\"\n if (ctx.thumbAlignment === \"contain\" && !ctx.hasMeasuredThumbSize) {\n visibility = \"hidden\"\n }\n return visibility\n}\n\nfunction getThumbStyle(ctx: SharedContext): Style {\n const placementProp = ctx.isVertical ? \"bottom\" : \"insetInlineStart\"\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n transform: \"var(--slider-thumb-transform)\",\n [placementProp]: \"var(--slider-thumb-offset)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Range style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRangeOffsets(ctx: Ctx) {\n let start = \"0%\"\n let end = `${100 - ctx.valuePercent}%`\n\n if (ctx.origin === \"center\") {\n const isNegative = ctx.valuePercent < 50\n start = isNegative ? `${ctx.valuePercent}%` : \"50%\"\n end = isNegative ? \"50%\" : end\n }\n\n return { start, end }\n}\n\nfunction getRangeStyle(ctx: Pick<SharedContext, \"isVertical\" | \"isRtl\">): Style {\n if (ctx.isVertical) {\n return {\n position: \"absolute\",\n bottom: \"var(--slider-range-start)\",\n top: \"var(--slider-range-end)\",\n }\n }\n\n return {\n position: \"absolute\",\n [ctx.isRtl ? \"right\" : \"left\"]: \"var(--slider-range-start)\",\n [ctx.isRtl ? \"left\" : \"right\"]: \"var(--slider-range-end)\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Control style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getControlStyle(): Style {\n return {\n touchAction: \"none\",\n userSelect: \"none\",\n position: \"relative\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Root style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getRootStyle(ctx: Ctx): Style {\n const range = getRangeOffsets(ctx)\n return {\n \"--slider-thumb-transform\": ctx.isVertical ? \"translateY(50%)\" : ctx.isRtl ? \"translateX(50%)\" : \"translateX(-50%)\",\n \"--slider-thumb-offset\": getThumbOffset(ctx),\n \"--slider-range-start\": range.start,\n \"--slider-range-end\": range.end,\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Marker style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerStyle(\n ctx: Pick<SharedContext, \"isHorizontal\" | \"isRtl\" | \"thumbAlignment\" | \"hasMeasuredThumbSize\">,\n value: number,\n): Style {\n return {\n visibility: getVisibility(ctx),\n position: \"absolute\",\n pointerEvents: \"none\",\n // @ts-expect-error\n [ctx.isHorizontal ? \"insetInlineStart\" : \"bottom\"]: getThumbOffset({ ...ctx, value }),\n translate: \"var(--tx) var(--ty)\",\n \"--tx\": ctx.isHorizontal ? (ctx.isRtl ? \"50%\" : \"-50%\") : \"0%\",\n \"--ty\": !ctx.isHorizontal ? \"50%\" : \"0%\",\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getLabelStyle(): Style {\n return { userSelect: \"none\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getTrackStyle(): Style {\n return { position: \"relative\" }\n}\n\n/* -----------------------------------------------------------------------------\n * Label style calculations\n * -----------------------------------------------------------------------------*/\n\nfunction getMarkerGroupStyle(): Style {\n return {\n userSelect: \"none\",\n pointerEvents: \"none\",\n position: \"relative\",\n }\n}\n\nexport const styles = {\n getThumbOffset,\n getControlStyle,\n getThumbStyle,\n getRangeStyle,\n getRootStyle,\n getMarkerStyle,\n getLabelStyle,\n getTrackStyle,\n getMarkerGroupStyle,\n}\n","import { createMachine } from \"@zag-js/core\"\nimport { trackPointerMove } from \"@zag-js/dom-event\"\nimport { raf } from \"@zag-js/dom-query\"\nimport { trackElementSize } from \"@zag-js/element-size\"\nimport { trackFormControl } from \"@zag-js/form-utils\"\nimport { clampValue, getValuePercent } from \"@zag-js/numeric-range\"\nimport { compact, isEqual } from \"@zag-js/utils\"\nimport { dom } from \"./slider.dom\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./slider.types\"\nimport { constrainValue, decrement, increment } from \"./slider.utils\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"slider\",\n initial: \"idle\",\n context: {\n thumbSize: null,\n thumbAlignment: \"contain\",\n threshold: 5,\n dir: \"ltr\",\n origin: \"start\",\n orientation: \"horizontal\",\n value: 0,\n step: 1,\n min: 0,\n max: 100,\n disabled: false,\n ...ctx,\n fieldsetDisabled: false,\n },\n\n computed: {\n isHorizontal: (ctx) => ctx.orientation === \"horizontal\",\n isVertical: (ctx) => ctx.orientation === \"vertical\",\n isRtl: (ctx) => ctx.orientation === \"horizontal\" && ctx.dir === \"rtl\",\n isDisabled: (ctx) => ctx.disabled || ctx.fieldsetDisabled,\n isInteractive: (ctx) => !(ctx.isDisabled || ctx.readOnly),\n hasMeasuredThumbSize: (ctx) => ctx.thumbSize !== null,\n valuePercent: (ctx) => 100 * getValuePercent(ctx.value, ctx.min, ctx.max),\n },\n\n watch: {\n value: [\"syncInputElement\"],\n },\n\n activities: [\"trackFormControlState\", \"trackThumbSize\"],\n\n on: {\n SET_VALUE: {\n actions: \"setValue\",\n },\n INCREMENT: {\n actions: \"increment\",\n },\n DECREMENT: {\n actions: \"decrement\",\n },\n },\n\n entry: [\"checkValue\"],\n\n states: {\n idle: {\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n FOCUS: \"focus\",\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n },\n },\n\n focus: {\n entry: \"focusThumb\",\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setPointerValue\", \"invokeOnChangeStart\", \"focusThumb\"],\n },\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"invokeOnChangeStart\", \"focusThumb\"],\n },\n ARROW_LEFT: {\n guard: \"isHorizontal\",\n actions: \"decrement\",\n },\n ARROW_RIGHT: {\n guard: \"isHorizontal\",\n actions: \"increment\",\n },\n ARROW_UP: {\n guard: \"isVertical\",\n actions: \"increment\",\n },\n ARROW_DOWN: {\n guard: \"isVertical\",\n actions: \"decrement\",\n },\n PAGE_UP: {\n actions: \"increment\",\n },\n PAGE_DOWN: {\n actions: \"decrement\",\n },\n HOME: {\n actions: \"setToMin\",\n },\n END: {\n actions: \"setToMax\",\n },\n BLUR: \"idle\",\n },\n },\n\n dragging: {\n entry: \"focusThumb\",\n activities: \"trackPointerMove\",\n on: {\n POINTER_UP: {\n target: \"focus\",\n actions: \"invokeOnChangeEnd\",\n },\n POINTER_MOVE: {\n actions: \"setPointerValue\",\n },\n },\n },\n },\n },\n {\n guards: {\n isHorizontal: (ctx) => ctx.isHorizontal,\n isVertical: (ctx) => ctx.isVertical,\n },\n\n activities: {\n trackFormControlState(ctx, _evt, { initialContext }) {\n return trackFormControl(dom.getHiddenInputEl(ctx), {\n onFieldsetDisabledChange(disabled) {\n ctx.fieldsetDisabled = disabled\n },\n onFormReset() {\n set.value(ctx, initialContext.value)\n },\n })\n },\n\n trackPointerMove(ctx, _evt, { send }) {\n return trackPointerMove(dom.getDoc(ctx), {\n onPointerMove(info) {\n send({ type: \"POINTER_MOVE\", point: info.point })\n },\n onPointerUp() {\n send(\"POINTER_UP\")\n },\n })\n },\n trackThumbSize(ctx, _evt) {\n if (ctx.thumbAlignment !== \"contain\" || ctx.thumbSize) return\n return trackElementSize(dom.getThumbEl(ctx), (size) => {\n if (size) ctx.thumbSize = size\n })\n },\n },\n\n actions: {\n checkValue(ctx) {\n ctx.value = constrainValue(ctx, ctx.value)\n },\n invokeOnChangeStart(ctx) {\n ctx.onValueChangeStart?.({ value: ctx.value })\n },\n invokeOnChangeEnd(ctx) {\n ctx.onValueChangeEnd?.({ value: ctx.value })\n },\n setPointerValue(ctx, evt) {\n const value = dom.getValueFromPoint(ctx, evt.point)\n if (value == null) return\n set.value(ctx, clampValue(value, ctx.min, ctx.max))\n },\n focusThumb(ctx) {\n raf(() => dom.getThumbEl(ctx)?.focus({ preventScroll: true }))\n },\n decrement(ctx, evt) {\n const value = decrement(ctx, evt.step)\n set.value(ctx, value)\n },\n increment(ctx, evt) {\n const value = increment(ctx, evt.step)\n set.value(ctx, value)\n },\n setToMin(ctx) {\n set.value(ctx, ctx.min)\n },\n setToMax(ctx) {\n set.value(ctx, ctx.max)\n },\n setValue(ctx, evt) {\n const value = constrainValue(ctx, evt.value)\n set.value(ctx, value)\n },\n syncInputElement(ctx) {\n const inputEl = dom.getHiddenInputEl(ctx)\n dom.setValue(inputEl, ctx.value)\n },\n },\n },\n )\n}\n\nconst invoke = {\n change: (ctx: MachineContext) => {\n ctx.onValueChange?.({ value: ctx.value })\n dom.dispatchChangeEvent(ctx)\n },\n}\n\nconst set = {\n value: (ctx: MachineContext, value: number) => {\n if (isEqual(ctx.value, value)) return\n ctx.value = value\n invoke.change(ctx)\n },\n}\n","import { clampValue, getNextStepValue, getPreviousStepValue, snapValueToStep } from \"@zag-js/numeric-range\"\nimport type { MachineContext as Ctx } from \"./slider.types\"\n\nexport function clampPercent(percent: number) {\n return clampValue(percent, 0, 1)\n}\n\nexport function constrainValue(ctx: Ctx, value: number) {\n const snapValue = snapValueToStep(value, ctx.min, ctx.max, ctx.step)\n return clampValue(snapValue, ctx.min, ctx.max)\n}\n\nexport function decrement(ctx: Ctx, step?: number) {\n const index = 0\n const values = getPreviousStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n\nexport function increment(ctx: Ctx, step?: number) {\n const index = 0\n const values = getNextStepValue(index, {\n ...ctx,\n step: step ?? ctx.step,\n values: [ctx.value],\n })\n return values[index]\n}\n"],"mappings":"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","names":["getPercentValue","getValuePercent","getValue","getPercentValue","getValuePercent","clampValue","getValuePercent","ctx","getValuePercent","clampValue"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zag-js/slider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Core logic for the slider widget implemented as a state machine",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"js",
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"url": "https://github.com/chakra-ui/zag/issues"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@zag-js/anatomy": "0.
|
|
31
|
-
"@zag-js/core": "0.
|
|
32
|
-
"@zag-js/dom-query": "0.
|
|
33
|
-
"@zag-js/dom-event": "0.
|
|
34
|
-
"@zag-js/form-utils": "0.
|
|
35
|
-
"@zag-js/utils": "0.
|
|
36
|
-
"@zag-js/element-size": "0.
|
|
37
|
-
"@zag-js/numeric-range": "0.
|
|
38
|
-
"@zag-js/types": "0.
|
|
30
|
+
"@zag-js/anatomy": "0.22.0",
|
|
31
|
+
"@zag-js/core": "0.22.0",
|
|
32
|
+
"@zag-js/dom-query": "0.22.0",
|
|
33
|
+
"@zag-js/dom-event": "0.22.0",
|
|
34
|
+
"@zag-js/form-utils": "0.22.0",
|
|
35
|
+
"@zag-js/utils": "0.22.0",
|
|
36
|
+
"@zag-js/element-size": "0.22.0",
|
|
37
|
+
"@zag-js/numeric-range": "0.22.0",
|
|
38
|
+
"@zag-js/types": "0.22.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"clean-package": "2.2.0"
|
package/src/slider.connect.ts
CHANGED
|
@@ -77,6 +77,7 @@ export function connect<T extends PropTypes>(state: State, send: Send, normalize
|
|
|
77
77
|
"data-disabled": dataAttr(isDisabled),
|
|
78
78
|
"data-invalid": dataAttr(isInvalid),
|
|
79
79
|
"data-focus": dataAttr(isFocused),
|
|
80
|
+
dir: state.context.dir,
|
|
80
81
|
id: dom.getLabelId(state.context),
|
|
81
82
|
htmlFor: dom.getHiddenInputId(state.context),
|
|
82
83
|
onClick(event) {
|
|
@@ -89,6 +90,7 @@ export function connect<T extends PropTypes>(state: State, send: Send, normalize
|
|
|
89
90
|
|
|
90
91
|
thumbProps: normalize.element({
|
|
91
92
|
...parts.thumb.attrs,
|
|
93
|
+
dir: state.context.dir,
|
|
92
94
|
id: dom.getThumbId(state.context),
|
|
93
95
|
"data-disabled": dataAttr(isDisabled),
|
|
94
96
|
"data-orientation": state.context.orientation,
|
|
@@ -181,12 +183,14 @@ export function connect<T extends PropTypes>(state: State, send: Send, normalize
|
|
|
181
183
|
"data-invalid": dataAttr(isInvalid),
|
|
182
184
|
"data-orientation": state.context.orientation,
|
|
183
185
|
id: dom.getOutputId(state.context),
|
|
186
|
+
dir: state.context.dir,
|
|
184
187
|
htmlFor: dom.getHiddenInputId(state.context),
|
|
185
188
|
"aria-live": "off",
|
|
186
189
|
}),
|
|
187
190
|
|
|
188
191
|
trackProps: normalize.element({
|
|
189
192
|
...parts.track.attrs,
|
|
193
|
+
dir: state.context.dir,
|
|
190
194
|
id: dom.getTrackId(state.context),
|
|
191
195
|
"data-disabled": dataAttr(isDisabled),
|
|
192
196
|
"data-focus": dataAttr(isFocused),
|
|
@@ -197,6 +201,7 @@ export function connect<T extends PropTypes>(state: State, send: Send, normalize
|
|
|
197
201
|
|
|
198
202
|
rangeProps: normalize.element({
|
|
199
203
|
...parts.range.attrs,
|
|
204
|
+
dir: state.context.dir,
|
|
200
205
|
id: dom.getRangeId(state.context),
|
|
201
206
|
"data-focus": dataAttr(isFocused),
|
|
202
207
|
"data-invalid": dataAttr(isInvalid),
|
|
@@ -207,6 +212,7 @@ export function connect<T extends PropTypes>(state: State, send: Send, normalize
|
|
|
207
212
|
|
|
208
213
|
controlProps: normalize.element({
|
|
209
214
|
...parts.control.attrs,
|
|
215
|
+
dir: state.context.dir,
|
|
210
216
|
id: dom.getControlId(state.context),
|
|
211
217
|
"data-disabled": dataAttr(isDisabled),
|
|
212
218
|
"data-invalid": dataAttr(isInvalid),
|
|
@@ -229,6 +235,7 @@ export function connect<T extends PropTypes>(state: State, send: Send, normalize
|
|
|
229
235
|
|
|
230
236
|
markerGroupProps: normalize.element({
|
|
231
237
|
...parts.markerGroup.attrs,
|
|
238
|
+
dir: state.context.dir,
|
|
232
239
|
role: "presentation",
|
|
233
240
|
"aria-hidden": true,
|
|
234
241
|
"data-orientation": state.context.orientation,
|