{"version":3,"file":"Switch.C2EOWhLk.js","sources":["../../../../../../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":["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":["defaults","name","createElHelpers","createSwitch","props","propsWithDefaults","options","toWritableStores","omit","disabled","required","nameStore","value","checkedWritable","writable","checked","overridable","toggleSwitch","prev","root","makeElement","$checked","$disabled","$required","disabledAttr","node","executeCallbacks","addMeltEventListener","e","kbd","input","$name","$value","styleToString","getSwitchData","setCtx","NAME","PARTS","getAttrs","createBitAttrs","Switch","removeUndefined","setContext","getOptionUpdater","getCtx","getContext","ctx","insert_hydration","target","input_1","anchor","dirty","el","$$props","$$value","$$invalidate","inputValue","button_levels","button","create_if_block","onCheckedChange","includeInput","asChild","inputAttrs","localChecked","updateOption","next","dispatch","createDispatcher","builder","$root","attrs","span_levels","span","switch_root_changes","state","createEventDispatcher","tick"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} |