{"version":3,"file":"Switch.js","sources":["../../../../node_modules/svelte/src/runtime/internal/globals.js","../../../../node_modules/@melt-ui/svelte/dist/builders/switch/create.js","../../../../node_modules/bits-ui/dist/bits/switch/ctx.js","../../../../node_modules/bits-ui/dist/bits/switch/components/switch-input.svelte","../../../../node_modules/bits-ui/dist/bits/switch/components/switch.svelte","../../../../node_modules/bits-ui/dist/bits/switch/components/switch-thumb.svelte","../../../../src/lib/components/common/Switch.svelte"],"sourcesContent":["/** @type {typeof globalThis} */\nexport const globals =\n\ttypeof window !== 'undefined'\n\t\t? window\n\t\t: typeof globalThis !== 'undefined'\n\t\t? globalThis\n\t\t: // @ts-ignore Node typings have this\n\t\t global;\n","import { addMeltEventListener, makeElement, createElHelpers, disabledAttr, kbd, omit, overridable, styleToString, toWritableStores, } from '../../internal/helpers/index.js';\nimport { writable } from 'svelte/store';\nimport { executeCallbacks } from '../../internal/helpers/callbacks.js';\nconst defaults = {\n defaultChecked: false,\n disabled: false,\n required: false,\n name: '',\n value: '',\n};\nconst { name } = createElHelpers('switch');\nexport function createSwitch(props) {\n const propsWithDefaults = { ...defaults, ...props };\n const options = toWritableStores(omit(propsWithDefaults, 'checked'));\n const { disabled, required, name: nameStore, value } = options;\n const checkedWritable = propsWithDefaults.checked ?? writable(propsWithDefaults.defaultChecked);\n const checked = overridable(checkedWritable, propsWithDefaults?.onCheckedChange);\n function toggleSwitch() {\n if (disabled.get())\n return;\n checked.update((prev) => !prev);\n }\n const root = makeElement(name(), {\n stores: [checked, disabled, required],\n returned: ([$checked, $disabled, $required]) => {\n return {\n 'data-disabled': disabledAttr($disabled),\n disabled: disabledAttr($disabled),\n 'data-state': $checked ? 'checked' : 'unchecked',\n type: 'button',\n role: 'switch',\n 'aria-checked': $checked ? 'true' : 'false',\n 'aria-required': $required ? 'true' : undefined,\n };\n },\n action(node) {\n const unsub = executeCallbacks(addMeltEventListener(node, 'click', () => {\n toggleSwitch();\n }), addMeltEventListener(node, 'keydown', (e) => {\n if (e.key !== kbd.ENTER && e.key !== kbd.SPACE)\n return;\n e.preventDefault();\n toggleSwitch();\n }));\n return {\n destroy: unsub,\n };\n },\n });\n const input = makeElement(name('input'), {\n stores: [checked, nameStore, required, disabled, value],\n returned: ([$checked, $name, $required, $disabled, $value]) => {\n return {\n type: 'checkbox',\n 'aria-hidden': true,\n hidden: true,\n tabindex: -1,\n name: $name,\n value: $value,\n checked: $checked,\n required: $required,\n disabled: disabledAttr($disabled),\n style: styleToString({\n position: 'absolute',\n opacity: 0,\n 'pointer-events': 'none',\n margin: 0,\n transform: 'translateX(-100%)',\n }),\n };\n },\n });\n return {\n elements: {\n root,\n input,\n },\n states: {\n checked,\n },\n options,\n };\n}\n","import { createSwitch } from \"@melt-ui/svelte\";\nimport { getContext, setContext } from \"svelte\";\nimport { createBitAttrs, getOptionUpdater, removeUndefined } from \"../../internal/index.js\";\nfunction getSwitchData() {\n const NAME = \"switch\";\n const PARTS = [\"root\", \"input\", \"thumb\"];\n return {\n NAME,\n PARTS,\n };\n}\nexport function setCtx(props) {\n const { NAME, PARTS } = getSwitchData();\n const getAttrs = createBitAttrs(NAME, PARTS);\n const Switch = { ...createSwitch(removeUndefined(props)), getAttrs };\n setContext(NAME, Switch);\n return {\n ...Switch,\n updateOption: getOptionUpdater(Switch.options),\n };\n}\nexport function getCtx() {\n const { NAME } = getSwitchData();\n return getContext(NAME);\n}\n","<script>import { melt } from \"@melt-ui/svelte\";\nimport { getCtx } from \"../ctx.js\";\nexport let el = void 0;\nconst {\n elements: { input },\n options: { value, name, disabled, required }\n} = getCtx();\n$:\n inputValue = $value === void 0 || $value === \"\" ? \"on\" : $value;\n</script>\n\n<input\n\tbind:this={el}\n\t{...$input} use:$input.action\n\tname={$name}\n\tdisabled={$disabled}\n\trequired={$required}\n\tvalue={inputValue}\n\t{...$$restProps}\n/>\n","<script>import { melt } from \"@melt-ui/svelte\";\nimport { setCtx } from \"../ctx.js\";\nimport { createDispatcher } from \"../../../internal/events.js\";\nimport SwitchInput from \"./switch-input.svelte\";\nexport let checked = void 0;\nexport let onCheckedChange = void 0;\nexport let disabled = void 0;\nexport let name = void 0;\nexport let value = void 0;\nexport let includeInput = true;\nexport let required = void 0;\nexport let asChild = false;\nexport let inputAttrs = void 0;\nexport let el = void 0;\nconst {\n elements: { root },\n states: { checked: localChecked },\n updateOption,\n getAttrs\n} = setCtx({\n disabled,\n name,\n value,\n required,\n defaultChecked: checked,\n onCheckedChange: ({ next }) => {\n if (checked !== next) {\n onCheckedChange?.(next);\n checked = next;\n }\n return next;\n }\n});\nconst dispatch = createDispatcher();\n$:\n checked !== void 0 && localChecked.set(checked);\n$:\n updateOption(\"disabled\", disabled);\n$:\n updateOption(\"name\", name);\n$:\n updateOption(\"value\", value);\n$:\n updateOption(\"required\", required);\n$:\n builder = $root;\n$:\n attrs = { ...getAttrs(\"root\"), \"data-checked\": checked ? \"\" : void 0 };\n$:\n Object.assign(builder, attrs);\n</script>\n\n{#if asChild}\n\t<slot {builder} />\n{:else}\n\t<button\n\t\tbind:this={el}\n\t\t{...builder} use:builder.action\n\t\ttype=\"button\"\n\t\t{...$$restProps}\n\t\ton:m-click={dispatch}\n\t\ton:m-keydown={dispatch}\n\t>\n\t\t<slot {builder} />\n\t</button>\n{/if}\n{#if includeInput}\n\t<SwitchInput {...inputAttrs} />\n{/if}\n","<script>import { getCtx } from \"../ctx.js\";\nexport let asChild = false;\nexport let el = void 0;\nconst {\n states: { checked },\n getAttrs\n} = getCtx();\n$:\n attrs = {\n ...getAttrs(\"thumb\"),\n \"data-state\": $checked ? \"checked\" : \"unchecked\",\n \"data-checked\": $checked ? \"\" : void 0\n };\n</script>\n\n{#if asChild}\n\t<slot {attrs} checked={$checked} />\n{:else}\n\t<span bind:this={el} {...$$restProps} {...attrs} />\n{/if}\n","<script lang=\"ts\">\n\timport { createEventDispatcher, tick } from 'svelte';\n\timport { Switch } from 'bits-ui';\n\texport let state = true;\n\n\tconst dispatch = createEventDispatcher();\n</script>\n\n<Switch.Root\n\tbind:checked={state}\n\tonCheckedChange={async (e) => {\n\t\tawait tick();\n\t\tdispatch('change', e);\n\t}}\n\tclass=\"flex h-5 min-h-5 w-9 shrink-0 cursor-pointer items-center rounded-full px-[3px] transition {state\n\t\t? ' bg-emerald-600'\n\t\t: 'bg-gray-200 dark:bg-transparent'} outline outline-1 outline-gray-100 dark:outline-gray-800\"\n>\n\t<Switch.Thumb\n\t\tclass=\"pointer-events-none block size-4 shrink-0 rounded-full bg-white transition-transform data-[state=checked]:translate-x-3.5 data-[state=unchecked]:translate-x-0 data-[state=unchecked]:shadow-mini \"\n\t/>\n</Switch.Root>\n"],"names":["Switch","name"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]} |