@vireo-ai/trellis-ui 0.1.41 → 0.1.43
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/package.json +1 -1
- package/packages/client/src/components/field/styles.css +7 -4
- package/packages/client/src/components/keybinding/styles.css +14 -0
- package/packages/client/src/components/toast/styles.css +2 -21
- package/packages/client/src/components/tooltip/styles.css +23 -0
- package/packages/client/src/styles/components.css +3 -0
- package/packages/client/src/styles/generated/theme-runtime.css +268 -1
- package/packages/client/src/styles/generated-sources.css +1 -1
- package/packages/client/src/styles/recipes/floating-surface.css +24 -0
- package/packages/client/src/styles/recipes/intent.css +8 -8
- package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
- package/packages/client/types/capabilities/shortcut.d.ts +43 -0
- package/packages/client/types/capabilities/shortcut.entry.generated.d.ts +3 -0
- package/packages/client/types/components/common.d.ts +1 -1
- package/packages/client/types/components/entry.generated.d.ts +3 -0
- package/packages/client/types/components/input/contract.d.ts +3 -3
- package/packages/client/types/components/keybinding/contract.d.ts +8 -0
- package/packages/client/types/components/keybinding/controller.d.ts +7 -0
- package/packages/client/types/components/keybinding/entry.generated.d.ts +5 -0
- package/packages/client/types/components/keybinding/index.d.ts +5 -0
- package/packages/client/types/components/runtime.d.ts +4 -0
- package/packages/client/types/components/select/contract.d.ts +2 -2
- package/packages/client/types/components/select/machine.d.ts +2 -2
- package/packages/client/types/components/textarea/contract.d.ts +1 -1
- package/packages/client/types/components/tooltip/contract.d.ts +36 -0
- package/packages/client/types/components/tooltip/entry.generated.d.ts +5 -0
- package/packages/client/types/components/tooltip/index.d.ts +21 -0
- package/packages/client/types/components/tooltip/machine.d.ts +40 -0
- package/packages/client/types/components/tooltip/runtime-docs.d.ts +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +260 -26
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +321 -221
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Br_XBf7u.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Br_XBf7u.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-Ds2wQEQq.js → capability-sortable-aY5GWxrK.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-Ds2wQEQq.js.map → capability-sortable-aY5GWxrK.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-fH2NGblC.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-fH2NGblC.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-DsXbNzqk.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-DsXbNzqk.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B74OtpL2.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B74OtpL2.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZXp8Edl.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZXp8Edl.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BPZeXRC3.js → entry.generated-BbQ_TNRI.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BPZeXRC3.js.map → entry.generated-BbQ_TNRI.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BC8JUf6f.js → entry.generated-BwAge51I.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BC8JUf6f.js.map → entry.generated-BwAge51I.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DYBALnuF.js → entry.generated-CEGLKsEl.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DYBALnuF.js.map → entry.generated-CEGLKsEl.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BO0EDjBb.js → entry.generated-CYHiRVjx.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BO0EDjBb.js.map → entry.generated-CYHiRVjx.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-B7ROYMLZ.js → entry.generated-Ck7bhyzz.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ck7bhyzz.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C8pt5QeK.js → entry.generated-CtoSPDoI.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C8pt5QeK.js.map → entry.generated-CtoSPDoI.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DfuZKFMG.js → entry.generated-D0Av2Aiw.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DfuZKFMG.js.map → entry.generated-D0Av2Aiw.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BoOsILKj.js → entry.generated-DSyiRko7.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BoOsILKj.js.map → entry.generated-DSyiRko7.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DjMJNzy1.js → entry.generated-Dd04OzRH.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DjMJNzy1.js.map → entry.generated-Dd04OzRH.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DIPrCNjK.js → entry.generated-Gl6wz0Oh.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DIPrCNjK.js.map → entry.generated-Gl6wz0Oh.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-jP0UEZIS.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-jP0UEZIS.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-vM-5KVaL.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-vM-5KVaL.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D5gXHQl_.js → entry.generated-xjDWyE7q.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D5gXHQl_.js.map → entry.generated-xjDWyE7q.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Dgrr543E.js → entry2.generated-e3bTOzUi.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-e3bTOzUi.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +109 -63
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +5 -5
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +5 -5
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-BOd_thC-.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-BOd_thC-.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-51hjJ_lu.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-51hjJ_lu.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BLloDlP5.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BLloDlP5.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Dgrr543E.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-B7ROYMLZ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.generated-D5gXHQl_.js","names":[],"sources":["../../../../../../../../client/src/components/radio/contract.ts","../../../../../../../../client/src/components/radio/machine.ts","../../../../../../../../client/src/components/radio/index.ts","../../../../../../../../client/src/components/radio/entry.generated.ts"],"sourcesContent":["import {attribute, bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n CONTROL_SIZES,\n INDICATOR_PLACEMENTS,\n INTERACTION_TREATMENTS,\n ORIENTATIONS,\n SELECTION_COLORS,\n type ControlSize,\n type IndicatorPlacement,\n type Orientation,\n} from '../common';\n\nconst RADIO_GROUP_ORIENTATIONS = ORIENTATIONS;\nconst RADIO_GROUP_VARIANTS = ['default', 'cards', 'pills'] as const;\nconst RADIO_PLACEMENTS = INDICATOR_PLACEMENTS;\nconst RADIO_SIZES = CONTROL_SIZES;\nconst RADIO_VARIANTS = ['default', 'cards', 'pills'] as const;\nconst RADIO_COLORS = SELECTION_COLORS;\nconst RADIO_INTERACTIONS = INTERACTION_TREATMENTS;\n\ntype RadioGroupOrientation = Orientation;\ntype RadioGroupVariant = typeof RADIO_GROUP_VARIANTS[number];\ntype RadioPlacement = IndicatorPlacement;\ntype RadioSize = ControlSize;\ntype RadioVariant = typeof RADIO_VARIANTS[number];\ntype RadioColor = typeof RADIO_COLORS[number];\ntype RadioInteraction = typeof RADIO_INTERACTIONS[number];\n\nconst radioGroupSchema = {\n name: string,\n value: attribute(string, 'prop-value'),\n orientation: oneOf(RADIO_GROUP_ORIENTATIONS, 'vertical' as RadioGroupOrientation),\n variant: oneOf(RADIO_GROUP_VARIANTS, 'default' as RadioGroupVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n loop: bool.default(true),\n class: string,\n};\n\nconst radioSchema = {\n value: string,\n name: string,\n label: string,\n description: string,\n checked: attribute(bool, 'prop-checked'),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n icon: string,\n variant: oneOf(RADIO_VARIANTS, 'default' as RadioVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n inputClass: string,\n indicatorClass: string,\n iconClass: string,\n contentClass: string,\n labelClass: string,\n descriptionClass: string,\n class: string,\n};\n\nconst radioIndicatorSchema = {\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n class: string,\n};\n\ntype RadioGroupProps = SchemaToProps<typeof radioGroupSchema>;\ntype RadioProps = SchemaToProps<typeof radioSchema>;\n\nexport {\n RADIO_GROUP_ORIENTATIONS,\n RADIO_GROUP_VARIANTS,\n RADIO_COLORS,\n RADIO_INTERACTIONS,\n RADIO_PLACEMENTS,\n RADIO_SIZES,\n RADIO_VARIANTS,\n radioGroupSchema,\n radioIndicatorSchema,\n radioSchema,\n};\nexport type {\n RadioColor,\n RadioGroupOrientation,\n RadioGroupProps,\n RadioGroupVariant,\n RadioInteraction,\n RadioPlacement,\n RadioProps,\n RadioSize,\n RadioVariant,\n};\n","import {createMachine, propsChanged, propsChangedEvent, type Machine, type MachineEventObject, type MachineScope} from '../../runtime/state-machine';\nimport type {RadioGroupProps, RadioProps} from './contract';\n\ntype RadioItemRecord = {id: string; value: string; disabled: boolean; checked: boolean};\ntype RadioGroupContext = {\n selection: {value: string};\n collection: {items: RadioItemRecord[]};\n};\ntype RadioItemContext = {checked: boolean};\n\ntype RadioGroupEffects = {\n sync(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitInput(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitChange(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n focus(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n};\ntype RadioItemEffects = {sync(scope: MachineScope<RadioItemContext, RadioProps>): void};\n\nconst radioGroupHooks = [] as const;\nconst radioItemHooks = [] as const;\nconst eventValue = (event: MachineEventObject): string => typeof event.value === 'string' ? event.value : '';\nconst eventItem = (event: MachineEventObject): RadioItemRecord | null => {\n const item = event.item;\n if (!item || typeof item !== 'object') return null;\n const candidate = item as Partial<RadioItemRecord>;\n if (typeof candidate.id !== 'string' || typeof candidate.value !== 'string') return null;\n return {\n id: candidate.id,\n value: candidate.value,\n disabled: candidate.disabled === true,\n checked: candidate.checked === true,\n };\n};\nconst isSelectable = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => {\n const {context, event} = scope;\n if (scope.props.disabled) return false;\n const value = eventValue(event);\n if (!value) return !scope.props.required;\n return context.collection.items.some((item) => item.value === value && !item.disabled);\n};\nconst hasValue = (value: boolean) => ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n Boolean(eventValue(event)) === value\n);\nconst changedGroupValue = ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n propsChanged<RadioGroupProps>(event, 'value')\n);\nconst nextGroupSelection = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): string => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!changedGroupValue(scope) || !next) return scope.context.selection.value;\n return next.value || scope.context.collection.items.find((item) => item.checked)?.value || '';\n};\nconst nextGroupHasValue = (value: boolean) => (scope: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => {\n return changedGroupValue(scope) && Boolean(nextGroupSelection(scope)) === value;\n};\n\nconst select = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => ({\n context: {...scope.context, selection: {value: eventValue(scope.event)}},\n});\nconst reconcileProps = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!next) return;\n return {\n props: next,\n context: changedGroupValue(scope)\n ? {...scope.context, selection: {value: nextGroupSelection(scope)}}\n : scope.context,\n };\n};\nconst registerItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const items = [...scope.context.collection.items.filter((candidate) => candidate.id !== item.id), item];\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n const selected = scope.props.value || scope.context.selection.value || (item.checked ? item.value : '');\n return {context: {selection: {value: selected}, collection: {items}}};\n};\nconst unregisterItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const id = typeof scope.event.id === 'string' ? scope.event.id : '';\n const removed = scope.context.collection.items.find((item) => item.id === id);\n const items = scope.context.collection.items.filter((item) => item.id !== id);\n const value = removed?.value === scope.context.selection.value ? '' : scope.context.selection.value;\n return {context: {selection: {value}, collection: {items}}};\n};\nconst updateItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const previous = scope.context.collection.items.find((candidate) => candidate.id === item.id);\n const items = scope.context.collection.items.map((candidate) => candidate.id === item.id ? item : candidate);\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n let value = scope.context.selection.value;\n if (!scope.props.value && item.checked) value = item.value;\n else if (!scope.props.value && previous?.checked && !item.checked && previous.value === value) value = '';\n else if (previous?.value === value && item.value !== previous.value) value = item.value;\n return {context: {selection: {value}, collection: {items}}};\n};\n\nconst createRadioGroupMachine = ({props, effects}: {props: RadioGroupProps; effects: RadioGroupEffects}): Machine<RadioGroupContext, RadioGroupProps> => createMachine<RadioGroupContext, RadioGroupProps>({\n initial: props.value ? 'selected' : 'empty',\n on: {\n NATIVE_SELECTED: {target: 'selected', guard: isSelectable, reduce: 'select', effects: 'sync'},\n SET_VALUE: [\n {target: 'selected', guard: (scope) => isSelectable(scope) && hasValue(true)(scope), reduce: 'select', effects: ['sync', 'emitInput', 'emitChange']},\n {target: 'empty', guard: (scope) => isSelectable(scope) && hasValue(false)(scope), reduce: 'select', effects: 'sync'},\n ],\n NAVIGATE: {target: 'selected', guard: isSelectable, reduce: 'select', effects: ['sync', 'emitInput', 'emitChange', 'focus']},\n ITEM_REGISTERED: {reduce: 'registerItem', effects: 'sync'},\n ITEM_UPDATED: {reduce: 'updateItem', effects: 'sync'},\n ITEM_UNREGISTERED: {reduce: 'unregisterItem', effects: 'sync'},\n PROPS_CHANGED: [\n {target: 'selected', guard: nextGroupHasValue(true), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'empty', guard: nextGroupHasValue(false), reduce: 'reconcileProps', effects: 'sync'},\n {reduce: 'reconcileProps', effects: 'sync'},\n ],\n },\n states: {empty: {tags: ['empty']}, selected: {tags: ['selected']}},\n}, {\n context: {selection: {value: props.value}, collection: {items: []}},\n props,\n reducers: {select, reconcileProps, registerItem, unregisterItem, updateItem},\n effects,\n});\n\nconst createRadioItemMachine = ({props, effects}: {props: RadioProps; effects: RadioItemEffects}): Machine<RadioItemContext, RadioProps> => createMachine<RadioItemContext, RadioProps>({\n initial: 'ready',\n states: {ready: {on: {\n NATIVE_SELECTED: {reduce: 'select', effects: 'sync'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n }}},\n}, {\n context: {checked: props.checked},\n props,\n reducers: {\n select: (scope) => ({context: {...scope.context, checked: true}}),\n reconcileProps: (scope) => {\n const event = propsChangedEvent<RadioProps>(scope.event);\n if (!event) return;\n const checkedChanged = event.changes.some(({key}) => key === 'checked');\n return {\n props: event.props,\n context: checkedChanged ? {...scope.context, checked: event.props.checked} : scope.context,\n };\n },\n },\n effects,\n});\n\nexport {createRadioGroupMachine, createRadioItemMachine, radioGroupHooks, radioItemHooks};\nexport type {RadioGroupContext, RadioGroupEffects, RadioItemContext, RadioItemEffects, RadioItemRecord};\n","import type Alpine from 'alpinejs';\n\nimport {type AlpineMachine, createAlpineMachine, defineAlpineData, type MachineSnapshot, type TrellisAlpineComponent} from '@client/runtime';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {addListener, setAttribute, setPresence, type CleanupStack} from '@client/utils';\nimport {radioGroupSchema, radioSchema, type RadioGroupProps, type RadioProps} from './contract';\nimport {\n createRadioGroupMachine,\n createRadioItemMachine,\n radioGroupHooks,\n radioItemHooks,\n type RadioGroupContext,\n type RadioItemContext,\n type RadioItemRecord,\n} from './machine';\n\n/** Public Alpine API for `ui.radio.group`. @public */\ninterface UiRadioGroupApi {\n /** Current selected value, or an empty string when the group has no selection. */\n readonly value: string;\n /** Select a registered enabled value, or clear an optional group with an empty string. */\n setValue(value: string): void;\n}\n\ntype RadioGroupData = AlpineMachine<RadioGroupContext, RadioGroupProps, typeof radioGroupHooks> & UiRadioGroupApi & {\n init(): void;\n destroy(): void;\n};\ntype RadioData = AlpineMachine<RadioItemContext, RadioProps, typeof radioItemHooks> & {\n init(): void;\n destroy(): void;\n};\n\ntype ItemDomState = {checked: boolean; name: string; disabled: boolean; required: boolean; invalid: boolean};\ntype RadioItemOwner = {\n record(): RadioItemRecord;\n input(): HTMLInputElement;\n sync(state: ItemDomState): void;\n emit(type: 'input' | 'change'): void;\n focus(): void;\n};\ntype RadioGroupOwner = {\n register(item: RadioItemOwner): () => void;\n update(item: RadioItemOwner): void;\n nativeSelected(item: RadioItemOwner): void;\n navigate(item: RadioItemOwner, delta: 1 | -1): void;\n};\n\nconst groupOwners = new WeakMap<HTMLElement, RadioGroupOwner>();\nlet radioItemId = 0;\n\nconst closestGroupOwner = (element: HTMLElement): RadioGroupOwner | null => {\n const group = element.parentElement?.closest<HTMLElement>('[data-ui-radio-group]') ?? null;\n return group ? groupOwners.get(group) ?? null : null;\n};\n\nconst UiRadio = (): TrellisAlpineComponent<RadioData> => {\n const id = `ui-radio-${++radioItemId}`;\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let listeners: CleanupStack = [];\n let group: RadioGroupOwner | null = null;\n let unregister: (() => void) | null = null;\n let dispatching = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n return inputEl;\n };\n const snapshot = (): MachineSnapshot<RadioItemContext, RadioProps> => bridge.getCommittedSnapshot();\n const record = (): RadioItemRecord => ({\n id,\n value: snapshot().props.value || input().value || '',\n disabled: snapshot().props.disabled,\n checked: snapshot().props.checked,\n });\n const applyState = (state?: ItemDomState): void => {\n const props = snapshot().props;\n const native = input();\n const checked = state?.checked ?? snapshot().context.checked;\n const name = props.name || state?.name || '';\n const disabled = props.disabled || state?.disabled === true;\n const required = props.required || state?.required === true;\n const invalid = props.invalid || state?.invalid === true;\n\n native.checked = checked;\n if (!name) native.removeAttribute('name');\n syncNativeControl({input: native, state: {name, value: props.value, disabled, required, invalid}});\n setAttribute({el: root(), attr: 'data-state', value: checked ? 'checked' : 'unchecked'});\n setPresence({el: root(), attr: 'data-checked', present: checked});\n syncControlPresence({el: root(), state: {disabled, required, invalid}});\n setPresence({el: native, attr: 'data-checked', present: checked});\n const indicator = root().querySelector<HTMLElement>('[data-ui-radio-indicator]');\n if (indicator) {\n setPresence({el: indicator, attr: 'data-checked', present: checked});\n setPresence({el: indicator, attr: 'data-disabled', present: disabled});\n setPresence({el: indicator, attr: 'data-invalid', present: invalid});\n }\n const dot = root().querySelector<HTMLElement>('[data-ui-radio-indicator-dot]');\n if (dot) setPresence({el: dot, attr: 'data-checked', present: checked});\n };\n const bridge = createAlpineMachine({\n schema: radioSchema,\n hooks: radioItemHooks,\n createMachine: ({props}) => createRadioItemMachine({props, effects: {sync: () => {\n group?.update(owner);\n if (!group) applyState();\n }}}),\n });\n const owner: RadioItemOwner = {\n record,\n input,\n sync: applyState,\n emit(type): void {\n dispatching = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatching = false; }\n },\n focus: () => input().focus({preventScroll: true}),\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-radio-input]');\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n bridge.connect(rootEl, this.snapshot);\n group = closestGroupOwner(root());\n if (group) unregister = group.register(owner);\n addListener({target: inputEl, event: 'change', handler: () => {\n if (dispatching || !input().checked) return;\n if (group) group.nativeSelected(owner);\n else bridge.send('NATIVE_SELECTED');\n }, cleanup: listeners});\n addListener({target: inputEl, event: 'keydown', handler: (event) => {\n if (!group || !(event instanceof KeyboardEvent)) return;\n const previous = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n const next = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n if (!previous && !next) return;\n event.preventDefault();\n group.navigate(owner, previous ? -1 : 1);\n }, cleanup: listeners});\n if (!group) applyState();\n },\n destroy(): void {\n unregister?.();\n unregister = null;\n group = null;\n listeners.splice(0).reverse().forEach((cleanup) => cleanup());\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n };\n\n function standaloneState(): ItemDomState {\n const props = snapshot().props;\n return {checked: snapshot().context.checked, name: props.name, disabled: props.disabled, required: props.required, invalid: props.invalid};\n }\n};\n\nconst UiRadioGroup = (): TrellisAlpineComponent<RadioGroupData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n const members = new Map<string, RadioItemOwner>();\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio group has not been initialized.');\n return rootEl;\n };\n const snapshot = (): MachineSnapshot<RadioGroupContext, RadioGroupProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const current = snapshot();\n const props = current.props;\n const selected = current.context.selection.value;\n setAttribute({el: root(), attr: 'data-orientation', value: props.orientation});\n setAttribute({el: root(), attr: 'data-variant', value: props.variant});\n setAttribute({el: root(), attr: 'data-placement', value: props.placement});\n setAttribute({el: root(), attr: 'aria-orientation', value: props.orientation});\n setPresence({el: root(), attr: 'data-indicator', present: !props.indicator, value: 'false'});\n syncControlPresence({el: root(), state: props});\n\n const enabled = current.context.collection.items.filter((item) => !item.disabled);\n const firstEnabled = enabled[0]?.id ?? '';\n current.context.collection.items.forEach((item) => {\n const owner = members.get(item.id);\n if (!owner) return;\n const checked = item.value === selected;\n owner.sync({\n checked,\n name: props.name,\n disabled: props.disabled,\n required: props.required,\n invalid: props.invalid,\n });\n owner.input().tabIndex = item.disabled ? -1 : checked || (!selected && item.id === firstEnabled) ? 0 : -1;\n });\n };\n const eventOwner = (current: MachineSnapshot<RadioGroupContext, RadioGroupProps>, eventValue?: unknown): RadioItemOwner | null => {\n const value = typeof eventValue === 'string' ? eventValue : current.context.selection.value;\n const item = current.context.collection.items.find((candidate) => candidate.value === value);\n return item ? members.get(item.id) ?? null : null;\n };\n const bridge = createAlpineMachine({\n schema: radioGroupSchema,\n hooks: radioGroupHooks,\n createMachine: ({props}) => createRadioGroupMachine({props, effects: {\n sync: syncDom,\n emitInput: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('input'),\n emitChange: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('change'),\n focus: (scope) => eventOwner(scope.snapshot, scope.event.value)?.focus(),\n }}),\n });\n const owner: RadioGroupOwner = {\n register(item): () => void {\n const record = item.record();\n members.set(record.id, item);\n bridge.send({type: 'ITEM_REGISTERED', item: record});\n return () => {\n members.delete(record.id);\n bridge.send({type: 'ITEM_UNREGISTERED', id: record.id});\n };\n },\n update(item): void {\n bridge.send({type: 'ITEM_UPDATED', item: item.record()});\n },\n nativeSelected(item): void {\n bridge.send({type: 'NATIVE_SELECTED', value: item.record().value});\n },\n navigate(item, delta): void {\n const current = bridge.getCommittedSnapshot();\n const enabled = current.context.collection.items.filter((candidate) => !candidate.disabled);\n const index = enabled.findIndex((candidate) => candidate.id === item.record().id);\n if (index < 0 || enabled.length === 0) return;\n let next = index + delta;\n if (next < 0 || next >= enabled.length) {\n if (!current.props.loop) return;\n next = next < 0 ? enabled.length - 1 : 0;\n }\n const target = enabled[next];\n if (target) bridge.send({type: 'NAVIGATE', value: target.value});\n },\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n bridge.connect(rootEl, this.snapshot);\n groupOwners.set(root(), owner);\n syncDom();\n },\n destroy(): void {\n groupOwners.delete(root());\n members.clear();\n bridge.disconnect();\n rootEl = null;\n },\n get value(): string {\n return bridge.getCommittedSnapshot().context.selection.value;\n },\n setValue(value: string): void {\n if (value === bridge.getCommittedSnapshot().context.selection.value) return;\n bridge.send({type: 'SET_VALUE', value});\n },\n };\n};\n\nconst registerRadio = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiRadio', UiRadio)(AlpineInstance);\n defineAlpineData('UiRadioGroup', UiRadioGroup)(AlpineInstance);\n};\n\nexport {registerRadio, UiRadio, UiRadioGroup};\nexport type {RadioData, RadioGroupData, UiRadioGroupApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerRadio as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerRadio = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerRadio};\nexport default registerRadio;\nexport * from './index';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry.generated-xjDWyE7q.js","names":[],"sources":["../../../../../../../../client/src/components/radio/contract.ts","../../../../../../../../client/src/components/radio/machine.ts","../../../../../../../../client/src/components/radio/index.ts","../../../../../../../../client/src/components/radio/entry.generated.ts"],"sourcesContent":["import {attribute, bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n CONTROL_SIZES,\n INDICATOR_PLACEMENTS,\n INTERACTION_TREATMENTS,\n ORIENTATIONS,\n SELECTION_COLORS,\n type ControlSize,\n type IndicatorPlacement,\n type Orientation,\n} from '../common';\n\nconst RADIO_GROUP_ORIENTATIONS = ORIENTATIONS;\nconst RADIO_GROUP_VARIANTS = ['default', 'cards', 'pills'] as const;\nconst RADIO_PLACEMENTS = INDICATOR_PLACEMENTS;\nconst RADIO_SIZES = CONTROL_SIZES;\nconst RADIO_VARIANTS = ['default', 'cards', 'pills'] as const;\nconst RADIO_COLORS = SELECTION_COLORS;\nconst RADIO_INTERACTIONS = INTERACTION_TREATMENTS;\n\ntype RadioGroupOrientation = Orientation;\ntype RadioGroupVariant = typeof RADIO_GROUP_VARIANTS[number];\ntype RadioPlacement = IndicatorPlacement;\ntype RadioSize = ControlSize;\ntype RadioVariant = typeof RADIO_VARIANTS[number];\ntype RadioColor = typeof RADIO_COLORS[number];\ntype RadioInteraction = typeof RADIO_INTERACTIONS[number];\n\nconst radioGroupSchema = {\n name: string,\n value: attribute(string, 'prop-value'),\n orientation: oneOf(RADIO_GROUP_ORIENTATIONS, 'vertical' as RadioGroupOrientation),\n variant: oneOf(RADIO_GROUP_VARIANTS, 'default' as RadioGroupVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n loop: bool.default(true),\n class: string,\n};\n\nconst radioSchema = {\n value: string,\n name: string,\n label: string,\n description: string,\n checked: attribute(bool, 'prop-checked'),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n icon: string,\n variant: oneOf(RADIO_VARIANTS, 'default' as RadioVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n inputClass: string,\n indicatorClass: string,\n iconClass: string,\n contentClass: string,\n labelClass: string,\n descriptionClass: string,\n class: string,\n};\n\nconst radioIndicatorSchema = {\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n class: string,\n};\n\ntype RadioGroupProps = SchemaToProps<typeof radioGroupSchema>;\ntype RadioProps = SchemaToProps<typeof radioSchema>;\n\nexport {\n RADIO_GROUP_ORIENTATIONS,\n RADIO_GROUP_VARIANTS,\n RADIO_COLORS,\n RADIO_INTERACTIONS,\n RADIO_PLACEMENTS,\n RADIO_SIZES,\n RADIO_VARIANTS,\n radioGroupSchema,\n radioIndicatorSchema,\n radioSchema,\n};\nexport type {\n RadioColor,\n RadioGroupOrientation,\n RadioGroupProps,\n RadioGroupVariant,\n RadioInteraction,\n RadioPlacement,\n RadioProps,\n RadioSize,\n RadioVariant,\n};\n","import {createMachine, propsChanged, propsChangedEvent, type Machine, type MachineEventObject, type MachineScope} from '../../runtime/state-machine';\nimport type {RadioGroupProps, RadioProps} from './contract';\n\ntype RadioItemRecord = {id: string; value: string; disabled: boolean; checked: boolean};\ntype RadioGroupContext = {\n selection: {value: string};\n collection: {items: RadioItemRecord[]};\n};\ntype RadioItemContext = {checked: boolean};\n\ntype RadioGroupEffects = {\n sync(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitInput(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitChange(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n focus(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n};\ntype RadioItemEffects = {sync(scope: MachineScope<RadioItemContext, RadioProps>): void};\n\nconst radioGroupHooks = [] as const;\nconst radioItemHooks = [] as const;\nconst eventValue = (event: MachineEventObject): string => typeof event.value === 'string' ? event.value : '';\nconst eventItem = (event: MachineEventObject): RadioItemRecord | null => {\n const item = event.item;\n if (!item || typeof item !== 'object') return null;\n const candidate = item as Partial<RadioItemRecord>;\n if (typeof candidate.id !== 'string' || typeof candidate.value !== 'string') return null;\n return {\n id: candidate.id,\n value: candidate.value,\n disabled: candidate.disabled === true,\n checked: candidate.checked === true,\n };\n};\nconst isSelectable = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => {\n const {context, event} = scope;\n if (scope.props.disabled) return false;\n const value = eventValue(event);\n if (!value) return !scope.props.required;\n return context.collection.items.some((item) => item.value === value && !item.disabled);\n};\nconst hasValue = (value: boolean) => ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n Boolean(eventValue(event)) === value\n);\nconst changedGroupValue = ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n propsChanged<RadioGroupProps>(event, 'value')\n);\nconst nextGroupSelection = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): string => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!changedGroupValue(scope) || !next) return scope.context.selection.value;\n return next.value || scope.context.collection.items.find((item) => item.checked)?.value || '';\n};\nconst nextGroupHasValue = (value: boolean) => (scope: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => {\n return changedGroupValue(scope) && Boolean(nextGroupSelection(scope)) === value;\n};\n\nconst select = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => ({\n context: {...scope.context, selection: {value: eventValue(scope.event)}},\n});\nconst reconcileProps = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!next) return;\n return {\n props: next,\n context: changedGroupValue(scope)\n ? {...scope.context, selection: {value: nextGroupSelection(scope)}}\n : scope.context,\n };\n};\nconst registerItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const items = [...scope.context.collection.items.filter((candidate) => candidate.id !== item.id), item];\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n const selected = scope.props.value || scope.context.selection.value || (item.checked ? item.value : '');\n return {context: {selection: {value: selected}, collection: {items}}};\n};\nconst unregisterItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const id = typeof scope.event.id === 'string' ? scope.event.id : '';\n const removed = scope.context.collection.items.find((item) => item.id === id);\n const items = scope.context.collection.items.filter((item) => item.id !== id);\n const value = removed?.value === scope.context.selection.value ? '' : scope.context.selection.value;\n return {context: {selection: {value}, collection: {items}}};\n};\nconst updateItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const previous = scope.context.collection.items.find((candidate) => candidate.id === item.id);\n const items = scope.context.collection.items.map((candidate) => candidate.id === item.id ? item : candidate);\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n let value = scope.context.selection.value;\n if (!scope.props.value && item.checked) value = item.value;\n else if (!scope.props.value && previous?.checked && !item.checked && previous.value === value) value = '';\n else if (previous?.value === value && item.value !== previous.value) value = item.value;\n return {context: {selection: {value}, collection: {items}}};\n};\n\nconst createRadioGroupMachine = ({props, effects}: {props: RadioGroupProps; effects: RadioGroupEffects}): Machine<RadioGroupContext, RadioGroupProps> => createMachine<RadioGroupContext, RadioGroupProps>({\n initial: props.value ? 'selected' : 'empty',\n on: {\n NATIVE_SELECTED: {target: 'selected', guard: isSelectable, reduce: 'select', effects: 'sync'},\n SET_VALUE: [\n {target: 'selected', guard: (scope) => isSelectable(scope) && hasValue(true)(scope), reduce: 'select', effects: ['sync', 'emitInput', 'emitChange']},\n {target: 'empty', guard: (scope) => isSelectable(scope) && hasValue(false)(scope), reduce: 'select', effects: 'sync'},\n ],\n NAVIGATE: {target: 'selected', guard: isSelectable, reduce: 'select', effects: ['sync', 'emitInput', 'emitChange', 'focus']},\n ITEM_REGISTERED: {reduce: 'registerItem', effects: 'sync'},\n ITEM_UPDATED: {reduce: 'updateItem', effects: 'sync'},\n ITEM_UNREGISTERED: {reduce: 'unregisterItem', effects: 'sync'},\n PROPS_CHANGED: [\n {target: 'selected', guard: nextGroupHasValue(true), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'empty', guard: nextGroupHasValue(false), reduce: 'reconcileProps', effects: 'sync'},\n {reduce: 'reconcileProps', effects: 'sync'},\n ],\n },\n states: {empty: {tags: ['empty']}, selected: {tags: ['selected']}},\n}, {\n context: {selection: {value: props.value}, collection: {items: []}},\n props,\n reducers: {select, reconcileProps, registerItem, unregisterItem, updateItem},\n effects,\n});\n\nconst createRadioItemMachine = ({props, effects}: {props: RadioProps; effects: RadioItemEffects}): Machine<RadioItemContext, RadioProps> => createMachine<RadioItemContext, RadioProps>({\n initial: 'ready',\n states: {ready: {on: {\n NATIVE_SELECTED: {reduce: 'select', effects: 'sync'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n }}},\n}, {\n context: {checked: props.checked},\n props,\n reducers: {\n select: (scope) => ({context: {...scope.context, checked: true}}),\n reconcileProps: (scope) => {\n const event = propsChangedEvent<RadioProps>(scope.event);\n if (!event) return;\n const checkedChanged = event.changes.some(({key}) => key === 'checked');\n return {\n props: event.props,\n context: checkedChanged ? {...scope.context, checked: event.props.checked} : scope.context,\n };\n },\n },\n effects,\n});\n\nexport {createRadioGroupMachine, createRadioItemMachine, radioGroupHooks, radioItemHooks};\nexport type {RadioGroupContext, RadioGroupEffects, RadioItemContext, RadioItemEffects, RadioItemRecord};\n","import type Alpine from 'alpinejs';\n\nimport {type AlpineMachine, createAlpineMachine, defineAlpineData, type MachineSnapshot, type TrellisAlpineComponent} from '@client/runtime';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {addListener, setAttribute, setPresence, type CleanupStack} from '@client/utils';\nimport {radioGroupSchema, radioSchema, type RadioGroupProps, type RadioProps} from './contract';\nimport {\n createRadioGroupMachine,\n createRadioItemMachine,\n radioGroupHooks,\n radioItemHooks,\n type RadioGroupContext,\n type RadioItemContext,\n type RadioItemRecord,\n} from './machine';\n\n/** Public Alpine API for `ui.radio.group`. @public */\ninterface UiRadioGroupApi {\n /** Current selected value, or an empty string when the group has no selection. */\n readonly value: string;\n /** Select a registered enabled value, or clear an optional group with an empty string. */\n setValue(value: string): void;\n}\n\ntype RadioGroupData = AlpineMachine<RadioGroupContext, RadioGroupProps, typeof radioGroupHooks> & UiRadioGroupApi & {\n init(): void;\n destroy(): void;\n};\ntype RadioData = AlpineMachine<RadioItemContext, RadioProps, typeof radioItemHooks> & {\n init(): void;\n destroy(): void;\n};\n\ntype ItemDomState = {checked: boolean; name: string; disabled: boolean; required: boolean; invalid: boolean};\ntype RadioItemOwner = {\n record(): RadioItemRecord;\n input(): HTMLInputElement;\n sync(state: ItemDomState): void;\n emit(type: 'input' | 'change'): void;\n focus(): void;\n};\ntype RadioGroupOwner = {\n register(item: RadioItemOwner): () => void;\n update(item: RadioItemOwner): void;\n nativeSelected(item: RadioItemOwner): void;\n navigate(item: RadioItemOwner, delta: 1 | -1): void;\n};\n\nconst groupOwners = new WeakMap<HTMLElement, RadioGroupOwner>();\nlet radioItemId = 0;\n\nconst closestGroupOwner = (element: HTMLElement): RadioGroupOwner | null => {\n const group = element.parentElement?.closest<HTMLElement>('[data-ui-radio-group]') ?? null;\n return group ? groupOwners.get(group) ?? null : null;\n};\n\nconst UiRadio = (): TrellisAlpineComponent<RadioData> => {\n const id = `ui-radio-${++radioItemId}`;\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let listeners: CleanupStack = [];\n let group: RadioGroupOwner | null = null;\n let unregister: (() => void) | null = null;\n let dispatching = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n return inputEl;\n };\n const snapshot = (): MachineSnapshot<RadioItemContext, RadioProps> => bridge.getCommittedSnapshot();\n const record = (): RadioItemRecord => ({\n id,\n value: snapshot().props.value || input().value || '',\n disabled: snapshot().props.disabled,\n checked: snapshot().props.checked,\n });\n const applyState = (state?: ItemDomState): void => {\n const props = snapshot().props;\n const native = input();\n const checked = state?.checked ?? snapshot().context.checked;\n const name = props.name || state?.name || '';\n const disabled = props.disabled || state?.disabled === true;\n const required = props.required || state?.required === true;\n const invalid = props.invalid || state?.invalid === true;\n\n native.checked = checked;\n if (!name) native.removeAttribute('name');\n syncNativeControl({input: native, state: {name, value: props.value, disabled, required, invalid}});\n setAttribute({el: root(), attr: 'data-state', value: checked ? 'checked' : 'unchecked'});\n setPresence({el: root(), attr: 'data-checked', present: checked});\n syncControlPresence({el: root(), state: {disabled, required, invalid}});\n setPresence({el: native, attr: 'data-checked', present: checked});\n const indicator = root().querySelector<HTMLElement>('[data-ui-radio-indicator]');\n if (indicator) {\n setPresence({el: indicator, attr: 'data-checked', present: checked});\n setPresence({el: indicator, attr: 'data-disabled', present: disabled});\n setPresence({el: indicator, attr: 'data-invalid', present: invalid});\n }\n const dot = root().querySelector<HTMLElement>('[data-ui-radio-indicator-dot]');\n if (dot) setPresence({el: dot, attr: 'data-checked', present: checked});\n };\n const bridge = createAlpineMachine({\n schema: radioSchema,\n hooks: radioItemHooks,\n createMachine: ({props}) => createRadioItemMachine({props, effects: {sync: () => {\n group?.update(owner);\n if (!group) applyState();\n }}}),\n });\n const owner: RadioItemOwner = {\n record,\n input,\n sync: applyState,\n emit(type): void {\n dispatching = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatching = false; }\n },\n focus: () => input().focus({preventScroll: true}),\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-radio-input]');\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n bridge.connect(rootEl, this.snapshot);\n group = closestGroupOwner(root());\n if (group) unregister = group.register(owner);\n addListener({target: inputEl, event: 'change', handler: () => {\n if (dispatching || !input().checked) return;\n if (group) group.nativeSelected(owner);\n else bridge.send('NATIVE_SELECTED');\n }, cleanup: listeners});\n addListener({target: inputEl, event: 'keydown', handler: (event) => {\n if (!group || !(event instanceof KeyboardEvent)) return;\n const previous = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n const next = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n if (!previous && !next) return;\n event.preventDefault();\n group.navigate(owner, previous ? -1 : 1);\n }, cleanup: listeners});\n if (!group) applyState();\n },\n destroy(): void {\n unregister?.();\n unregister = null;\n group = null;\n listeners.splice(0).reverse().forEach((cleanup) => cleanup());\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n };\n\n function standaloneState(): ItemDomState {\n const props = snapshot().props;\n return {checked: snapshot().context.checked, name: props.name, disabled: props.disabled, required: props.required, invalid: props.invalid};\n }\n};\n\nconst UiRadioGroup = (): TrellisAlpineComponent<RadioGroupData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n const members = new Map<string, RadioItemOwner>();\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio group has not been initialized.');\n return rootEl;\n };\n const snapshot = (): MachineSnapshot<RadioGroupContext, RadioGroupProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const current = snapshot();\n const props = current.props;\n const selected = current.context.selection.value;\n setAttribute({el: root(), attr: 'data-orientation', value: props.orientation});\n setAttribute({el: root(), attr: 'data-variant', value: props.variant});\n setAttribute({el: root(), attr: 'data-placement', value: props.placement});\n setAttribute({el: root(), attr: 'aria-orientation', value: props.orientation});\n setPresence({el: root(), attr: 'data-indicator', present: !props.indicator, value: 'false'});\n syncControlPresence({el: root(), state: props});\n\n const enabled = current.context.collection.items.filter((item) => !item.disabled);\n const firstEnabled = enabled[0]?.id ?? '';\n current.context.collection.items.forEach((item) => {\n const owner = members.get(item.id);\n if (!owner) return;\n const checked = item.value === selected;\n owner.sync({\n checked,\n name: props.name,\n disabled: props.disabled,\n required: props.required,\n invalid: props.invalid,\n });\n owner.input().tabIndex = item.disabled ? -1 : checked || (!selected && item.id === firstEnabled) ? 0 : -1;\n });\n };\n const eventOwner = (current: MachineSnapshot<RadioGroupContext, RadioGroupProps>, eventValue?: unknown): RadioItemOwner | null => {\n const value = typeof eventValue === 'string' ? eventValue : current.context.selection.value;\n const item = current.context.collection.items.find((candidate) => candidate.value === value);\n return item ? members.get(item.id) ?? null : null;\n };\n const bridge = createAlpineMachine({\n schema: radioGroupSchema,\n hooks: radioGroupHooks,\n createMachine: ({props}) => createRadioGroupMachine({props, effects: {\n sync: syncDom,\n emitInput: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('input'),\n emitChange: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('change'),\n focus: (scope) => eventOwner(scope.snapshot, scope.event.value)?.focus(),\n }}),\n });\n const owner: RadioGroupOwner = {\n register(item): () => void {\n const record = item.record();\n members.set(record.id, item);\n bridge.send({type: 'ITEM_REGISTERED', item: record});\n return () => {\n members.delete(record.id);\n bridge.send({type: 'ITEM_UNREGISTERED', id: record.id});\n };\n },\n update(item): void {\n bridge.send({type: 'ITEM_UPDATED', item: item.record()});\n },\n nativeSelected(item): void {\n bridge.send({type: 'NATIVE_SELECTED', value: item.record().value});\n },\n navigate(item, delta): void {\n const current = bridge.getCommittedSnapshot();\n const enabled = current.context.collection.items.filter((candidate) => !candidate.disabled);\n const index = enabled.findIndex((candidate) => candidate.id === item.record().id);\n if (index < 0 || enabled.length === 0) return;\n let next = index + delta;\n if (next < 0 || next >= enabled.length) {\n if (!current.props.loop) return;\n next = next < 0 ? enabled.length - 1 : 0;\n }\n const target = enabled[next];\n if (target) bridge.send({type: 'NAVIGATE', value: target.value});\n },\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n bridge.connect(rootEl, this.snapshot);\n groupOwners.set(root(), owner);\n syncDom();\n },\n destroy(): void {\n groupOwners.delete(root());\n members.clear();\n bridge.disconnect();\n rootEl = null;\n },\n get value(): string {\n return bridge.getCommittedSnapshot().context.selection.value;\n },\n setValue(value: string): void {\n if (value === bridge.getCommittedSnapshot().context.selection.value) return;\n bridge.send({type: 'SET_VALUE', value});\n },\n };\n};\n\nconst registerRadio = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiRadio', UiRadio)(AlpineInstance);\n defineAlpineData('UiRadioGroup', UiRadioGroup)(AlpineInstance);\n};\n\nexport {registerRadio, UiRadio, UiRadioGroup};\nexport type {RadioData, RadioGroupData, UiRadioGroupApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerRadio as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerRadio = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerRadio};\nexport default registerRadio;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e,f as t,l as n,n as r,u as i}from"./codecs-Cb1ns_47.js";import{s as a,t as o}from"./dom-qAeVl7dc.js";import{t as s}from"./alpine-machine-BS13dbK4.js";import{t as c}from"./number-BCZdoG0B.js";import{t as l}from"./alpine-data-CytyCyfk.js";import{t as u}from"./machine-Dqut4h89.js";import{n as d,t as f}from"./props-change-2xfsIAEN.js";import{i as p,n as m,r as h}from"./form-control-BkVb2Qed.js";import{C as g,c as _,o as v}from"./common-BOd_thC-.js";var y=v,b=_,x=g,S={name:t,value:t,defaultValue:t.default(`0`),min:e.default(0),max:e.default(100),step:e.default(1),bigStep:e.default(10),minStepsBetween:e.default(0),range:r,orientation:n(x,`horizontal`),size:n(y,`md`),variant:n(b,`default`),disabled:r,required:r,invalid:r,label:t,description:t,descriptionTrailing:t,error:t,errors:t,badge:t,valueText:t,lowerLabel:t.default(`Minimum`),upperLabel:t.default(`Maximum`),lowerValueText:t,upperValueText:t,showValue:r,format:n([`number`,`percent`],`number`),fieldClass:t,rootClass:t,trackClass:t,rangeClass:t,thumbClass:t,tickClass:t,class:t};e.default(0);var C=[],w=(e,t,n)=>{if(!Number.isFinite(n)||n<=0)return e;let r=Math.round((e-t)/n)*n+t,i=Math.max(0,`${n}`.split(`.`)[1]?.length??0);return Number(r.toFixed(i))},T=e=>{let t=Math.min(e.min,e.max),n=Math.max(e.min,e.max),r=e.step>0?e.step:1;return{min:t,max:n,step:r,bigStep:e.bigStep>0?e.bigStep:r*10}},E=(e,t)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:t},D=(e,t,n)=>{let{min:r,max:i,step:a}=T(e),o=w(c(E(t.lower,r),r,i),r,a),s=w(c(E(t.upper,i),r,i),r,a);if(!e.range)return{lower:o,upper:o};o>s&&([o,s]=[s,o]);let l=Math.max(0,e.minStepsBetween)*a;return s-o<l&&(n===`lower`?o=c(w(s-l,r,a),r,i):s=c(w(o+l,r,a),r,i)),{lower:o,upper:s}},O=(e,t)=>{let{min:n,max:r}=T(e),i=t.split(`,`).map(e=>e.trim());return D(e,{lower:E(i[0],n),upper:e.range?E(i[1],r):E(i[0],n)})},k=e=>O(e,e.value||e.defaultValue||String(T(e).min)),A=e=>e.thumb===`single`||e.thumb===`lower`||e.thumb===`upper`?e.thumb:null,j=e=>{if(Array.isArray(e.event.values))return D(e.props,{lower:E(e.event.values[0],e.context.value.lower),upper:E(e.event.values[1],e.context.value.upper)},A(e.event));let t=A(e.event)??e.context.interaction.activeThumb??`single`,n=E(e.event.value,t===`upper`?e.context.value.upper:e.context.value.lower);return D(e.props,{lower:t===`upper`?e.context.value.lower:n,upper:t===`upper`?n:e.context.value.upper},t)},M=e=>{let t=d(e.event)?.props;return t?{...t,range:e.props.range,defaultValue:e.props.defaultValue}:e.props},N=e=>{let t=M(e);return f(e.event,`value`)?O(t,t.value||t.defaultValue||String(T(t).min)):D(t,e.context.value)},P=e=>({event:t})=>t.thumb===e,F=e=>M(e).disabled,I=({props:e,context:t,effects:n})=>u({initial:`idle`,on:{INPUT_CHANGED:{reduce:`setEventValue`,effects:`sync`},INPUT_COMMITTED:{reduce:`setEventValue`,effects:`sync`},KEY_STEPPED:{reduce:`setEventValue`,effects:[`sync`,`emitInput`,`emitChange`]},API_SET:{reduce:`setEventValue`,effects:[`sync`,`emitInput`,`emitChange`]}},states:{idle:{tags:[`idle`],on:{POINTER_STARTED:[{target:`dragging.single`,guard:P(`single`),reduce:`startDrag`,effects:[`beginDrag`,`sync`,`emitInput`]},{target:`dragging.lower`,guard:P(`lower`),reduce:`startDrag`,effects:[`beginDrag`,`sync`,`emitInput`]},{target:`dragging.upper`,guard:P(`upper`),reduce:`startDrag`,effects:[`beginDrag`,`sync`,`emitInput`]}],PROPS_CHANGED:{reduce:`reconcileProps`,effects:`sync`}}},dragging:{initial:`single`,tags:[`dragging`],on:{POINTER_MOVED:{reduce:`setEventValue`,effects:[`sync`,`emitInput`]},POINTER_ENDED:{target:`idle`,reduce:`endDrag`,effects:[`endDrag`,`sync`,`emitChange`]},PROPS_CHANGED:[{target:`idle`,guard:F,reduce:`reconcileProps`,effects:[`endDrag`,`sync`]},{reduce:`reconcileProps`,effects:`sync`}]},states:{single:{tags:[`dragging-single`]},lower:{tags:[`dragging-lower`]},upper:{tags:[`dragging-upper`]}}}}},{context:t,props:e,reducers:{setEventValue:e=>({context:{...e.context,value:j(e)}}),startDrag:e=>({context:{value:j(e),interaction:{activeThumb:A(e.event)}}}),endDrag:e=>({context:{...e.context,interaction:{activeThumb:null}}}),reconcileProps:e=>({props:M(e),context:{...e.context,value:N(e)}})},effects:n}),L=(e,t)=>{let n=Number(e);return Number.isFinite(n)?n:t},R=(e,t,n)=>n<=t?0:c((e-t)/(n-t)*100,0,100),z=(e,t)=>{let n=t=>e.format===`percent`?`${Math.round(t)}%`:String(t);return e.range?`${n(t.lower)} - ${n(t.upper)}`:n(t.lower)},B=(e,t,n)=>{let{min:r,max:i,step:a}=T(n),o=e.getBoundingClientRect(),s=c(r+c(n.orientation===`vertical`?1-(t.clientY-o.top)/Math.max(o.height,1):(t.clientX-o.left)/Math.max(o.width,1),0,1)*(i-r),r,i),l=Math.round((s-r)/a)*a+r,u=Math.max(0,`${a}`.split(`.`)[1]?.length??0);return Number(l.toFixed(u))},V=(e,t)=>Math.abs(e-t.lower)<=Math.abs(e-t.upper)?`lower`:`upper`,H=(e,t,n,r)=>{e&&(a({el:e,attr:`data-focus`,present:t}),a({el:e,attr:`data-disabled`,present:n}),a({el:e,attr:`data-invalid`,present:r}))},U=({input:e,props:t,value:n,min:r,max:i,label:a,valueText:o,nativeRequired:s})=>{e&&(e.min=String(r),e.max=String(i),e.step=String(t.step>0?t.step:1),h({input:e,state:{name:t.range?``:t.name,value:String(n),disabled:t.disabled,required:t.required,nativeRequired:s,invalid:t.invalid}}),e.setAttribute(`aria-valuemin`,String(r)),e.setAttribute(`aria-valuemax`,String(i)),e.setAttribute(`aria-valuenow`,String(n)),o?e.setAttribute(`aria-valuetext`,o):e.removeAttribute(`aria-valuetext`),a&&e.setAttribute(`aria-label`,a),t.orientation===`vertical`?e.setAttribute(`aria-orientation`,`vertical`):e.removeAttribute(`aria-orientation`))},W=(e,t,n)=>{let{min:r,max:i}=T(e),a=R(n.lower,r,i),o=R(n.upper,r,i),s=e.range?a:0,c=e.range?o:a;t.root.style.setProperty(`--ui-slider-lower-percent`,`${a}%`),t.root.style.setProperty(`--ui-slider-upper-percent`,`${o}%`),e.orientation===`vertical`?(t.range&&(t.range.style.bottom=`${s}%`,t.range.style.height=`${Math.max(0,c-s)}%`,t.range.style.left=``,t.range.style.width=``),t.singleThumb&&(t.singleThumb.style.bottom=`${a}%`),t.lowerThumb&&(t.lowerThumb.style.bottom=`${a}%`),t.upperThumb&&(t.upperThumb.style.bottom=`${o}%`)):(t.range&&(t.range.style.left=`${s}%`,t.range.style.width=`${Math.max(0,c-s)}%`,t.range.style.bottom=``,t.range.style.height=``),t.singleThumb&&(t.singleThumb.style.left=`${a}%`),t.lowerThumb&&(t.lowerThumb.style.left=`${a}%`),t.upperThumb&&(t.upperThumb.style.left=`${o}%`)),t.ticks.forEach(t=>{let n=R(L(t.dataset.value??``,r),r,i);e.orientation===`vertical`?(t.style.bottom=`${n}%`,t.style.left=``):(t.style.left=`${n}%`,t.style.bottom=``)})},G=()=>{let e=null,t=[],n=``,r=null,a=!1,c=()=>{if(!e)throw Error(`Slider has not been initialized.`);return e},l=()=>w.getCommittedSnapshot(),u=()=>l().props,d=()=>l().context.value,f=()=>{let e=c(),t=e.querySelector(`[data-ui-slider-root]`);if(!t)throw Error(`Slider requires a root element.`);return{root:t,track:t.querySelector(`[data-ui-slider-track]`),range:t.querySelector(`[data-ui-slider-range]`),lowerInput:t.querySelector(`[data-ui-slider-input][data-thumb="lower"]`),upperInput:t.querySelector(`[data-ui-slider-input][data-thumb="upper"]`),singleInput:t.querySelector(`[data-ui-slider-input][data-thumb="single"]`),lowerThumb:t.querySelector(`[data-ui-slider-thumb][data-thumb="lower"]`),upperThumb:t.querySelector(`[data-ui-slider-thumb][data-thumb="upper"]`),singleThumb:t.querySelector(`[data-ui-slider-thumb][data-thumb="single"]`),value:e.querySelector(`[data-ui-slider-value]`),hiddenInputs:e.querySelector(`[data-ui-slider-hidden-inputs]`),ticks:Array.from(e.querySelectorAll(`[data-ui-slider-tick]`))}},h=(e,t=f())=>e===`upper`?t.upperInput:e===`lower`?t.lowerInput:t.singleInput,g=e=>e.dataset.thumb===`upper`?`upper`:e.dataset.thumb===`lower`?`lower`:`single`,_=()=>{let e=u(),t=d(),r=f(),{min:a,max:o}=T(e);i({el:c(),schema:S,key:`value`,value:e.range?`${t.lower},${t.upper}`:String(t.lower)}),U({input:r.singleInput,props:e,value:t.lower,min:a,max:o,label:e.label,valueText:e.valueText,nativeRequired:e.required}),U({input:r.lowerInput,props:e,value:t.lower,min:a,max:e.range?t.upper:o,label:e.lowerLabel,valueText:e.lowerValueText,nativeRequired:!1}),U({input:r.upperInput,props:e,value:t.upper,min:e.range?t.lower:a,max:o,label:e.upperLabel,valueText:e.upperValueText,nativeRequired:!1}),W(e,r,t),r.value&&(r.value.textContent=z(e,t)),m({el:c(),state:e}),m({el:r.root,state:e}),r.track&&m({el:r.track,state:{disabled:e.disabled,invalid:e.invalid}}),r.range&&m({el:r.range,state:{disabled:e.disabled,invalid:e.invalid}}),H(r.singleThumb,r.singleInput===document.activeElement,e.disabled,e.invalid),H(r.lowerThumb,r.lowerInput===document.activeElement,e.disabled,e.invalid),H(r.upperThumb,r.upperInput===document.activeElement,e.disabled,e.invalid),e.range&&r.hiddenInputs?n=p({container:r.hiddenInputs,currentKey:n,state:{name:e.name,values:[String(t.lower),String(t.upper)],required:e.required,marker:`data-ui-slider-hidden-input`}}):r.hiddenInputs&&(n=p({container:r.hiddenInputs,currentKey:n,state:{name:``,values:[],marker:`data-ui-slider-hidden-input`}}))},v=e=>e.thumb===`single`||e.thumb===`lower`||e.thumb===`upper`?e.thumb:null,y=(e,t,n)=>{let r=f(),i=n.type===`API_SET`&&u().range?[r.lowerInput,r.upperInput]:[h(v(n)??t.context.interaction.activeThumb,r)];a=!0;try{i.forEach(t=>t?.dispatchEvent(new Event(e,{bubbles:!0})))}finally{a=!1}},b=(e,t)=>{let n=f(),i=e.context.interaction.activeThumb;if(h(i,n)?.focus(),r=typeof t.pointerId==`number`?t.pointerId:null,r!==null)try{n.root.setPointerCapture(r)}catch{w.send({type:`POINTER_ENDED`,thumb:i})}},x=()=>{if(r!==null){try{f().root.releasePointerCapture(r)}catch{}r=null}},w=s({schema:S,hooks:C,createMachine:({props:e})=>I({props:e,context:{value:k(e),interaction:{activeThumb:null}},effects:{sync:_,beginDrag:({snapshot:e,event:t})=>b(e,t),endDrag:x,emitInput:({snapshot:e,event:t})=>y(`input`,e,t),emitChange:({snapshot:e,event:t})=>y(`change`,e,t)}})}),E=(e,t)=>{a||!(e.target instanceof HTMLInputElement)||w.send({type:t?`INPUT_COMMITTED`:`INPUT_CHANGED`,thumb:g(e.target),value:e.target.value})},D=e=>{if(!(e.target instanceof HTMLInputElement)||![`PageUp`,`PageDown`].includes(e.key)&&!(e.shiftKey&&e.key.startsWith(`Arrow`)))return;e.preventDefault();let t=[`PageDown`,`ArrowDown`,`ArrowLeft`].includes(e.key)?-1:1,n=g(e.target);w.send({type:`KEY_STEPPED`,thumb:n,value:L(e.target.value,T(u()).min)+t*T(u()).bigStep})},O=e=>{if(u().disabled)return;let t=B(f().root,e,u()),n=u().range?V(t,d()):`single`;w.send({type:`POINTER_STARTED`,value:t,thumb:n,pointerId:e.pointerId}),e.preventDefault()},A=e=>{r!==e.pointerId||!w.hasTag(`dragging`)||w.send({type:`POINTER_MOVED`,value:B(f().root,e,u()),thumb:l().context.interaction.activeThumb})},j=e=>{r!==e.pointerId||!w.hasTag(`dragging`)||w.send({type:`POINTER_ENDED`,thumb:l().context.interaction.activeThumb})},M;return M={...w,get values(){let e=this.snapshot.current;return e?e.props.range?[e.context.value.lower,e.context.value.upper]:[e.context.value.lower]:[]},setValue(e){w.send({type:`API_SET`,values:Array.isArray(e)?e:[e]})},init(){e=this.$el,w.connect(this.$el,this.snapshot);let n=f();[n.singleInput,n.lowerInput,n.upperInput].forEach(e=>{e&&(o({target:e,event:`input`,handler:e=>E(e,!1),cleanup:t}),o({target:e,event:`change`,handler:e=>E(e,!0),cleanup:t}),o({target:e,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&D(e)},cleanup:t}),o({target:e,event:`focus`,handler:_,cleanup:t}),o({target:e,event:`blur`,handler:_,cleanup:t}))}),o({target:n.root,event:`pointerdown`,handler:e=>{e instanceof PointerEvent&&O(e)},cleanup:t}),o({target:n.root,event:`pointermove`,handler:e=>{e instanceof PointerEvent&&A(e)},cleanup:t}),o({target:n.root,event:`pointerup`,handler:e=>{e instanceof PointerEvent&&j(e)},cleanup:t}),o({target:n.root,event:`pointercancel`,handler:e=>{e instanceof PointerEvent&&j(e)},cleanup:t}),_()},destroy(){x(),t.splice(0).forEach(e=>e()),w.disconnect(),e=null}},M},K=l(`UiSlider`,G),q=new WeakSet,J=e=>{q.has(e)||(q.add(e),K(e))};export{G as n,J as t};
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{c as e,f as t,l as n,n as r,u as i}from"./codecs-Cb1ns_47.js";import{s as a,t as o}from"./dom-qAeVl7dc.js";import{t as s}from"./alpine-machine-BS13dbK4.js";import{t as c}from"./number-BCZdoG0B.js";import{t as l}from"./alpine-data-CytyCyfk.js";import{t as u}from"./machine-Dqut4h89.js";import{n as d,t as f}from"./props-change-2xfsIAEN.js";import{i as p,n as m,r as h}from"./form-control-BkVb2Qed.js";import{C as g,c as _,o as v}from"./common-fH2NGblC.js";var y=v,b=_,x=g,S={name:t,value:t,defaultValue:t.default(`0`),min:e.default(0),max:e.default(100),step:e.default(1),bigStep:e.default(10),minStepsBetween:e.default(0),range:r,orientation:n(x,`horizontal`),size:n(y,`md`),variant:n(b,`default`),disabled:r,required:r,invalid:r,label:t,description:t,descriptionTrailing:t,error:t,errors:t,badge:t,valueText:t,lowerLabel:t.default(`Minimum`),upperLabel:t.default(`Maximum`),lowerValueText:t,upperValueText:t,showValue:r,format:n([`number`,`percent`],`number`),fieldClass:t,rootClass:t,trackClass:t,rangeClass:t,thumbClass:t,tickClass:t,class:t};e.default(0);var C=[],w=(e,t,n)=>{if(!Number.isFinite(n)||n<=0)return e;let r=Math.round((e-t)/n)*n+t,i=Math.max(0,`${n}`.split(`.`)[1]?.length??0);return Number(r.toFixed(i))},T=e=>{let t=Math.min(e.min,e.max),n=Math.max(e.min,e.max),r=e.step>0?e.step:1;return{min:t,max:n,step:r,bigStep:e.bigStep>0?e.bigStep:r*10}},E=(e,t)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:t},D=(e,t,n)=>{let{min:r,max:i,step:a}=T(e),o=w(c(E(t.lower,r),r,i),r,a),s=w(c(E(t.upper,i),r,i),r,a);if(!e.range)return{lower:o,upper:o};o>s&&([o,s]=[s,o]);let l=Math.max(0,e.minStepsBetween)*a;return s-o<l&&(n===`lower`?o=c(w(s-l,r,a),r,i):s=c(w(o+l,r,a),r,i)),{lower:o,upper:s}},O=(e,t)=>{let{min:n,max:r}=T(e),i=t.split(`,`).map(e=>e.trim());return D(e,{lower:E(i[0],n),upper:e.range?E(i[1],r):E(i[0],n)})},k=e=>O(e,e.value||e.defaultValue||String(T(e).min)),A=e=>e.thumb===`single`||e.thumb===`lower`||e.thumb===`upper`?e.thumb:null,j=e=>{if(Array.isArray(e.event.values))return D(e.props,{lower:E(e.event.values[0],e.context.value.lower),upper:E(e.event.values[1],e.context.value.upper)},A(e.event));let t=A(e.event)??e.context.interaction.activeThumb??`single`,n=E(e.event.value,t===`upper`?e.context.value.upper:e.context.value.lower);return D(e.props,{lower:t===`upper`?e.context.value.lower:n,upper:t===`upper`?n:e.context.value.upper},t)},M=e=>{let t=d(e.event)?.props;return t?{...t,range:e.props.range,defaultValue:e.props.defaultValue}:e.props},N=e=>{let t=M(e);return f(e.event,`value`)?O(t,t.value||t.defaultValue||String(T(t).min)):D(t,e.context.value)},P=e=>({event:t})=>t.thumb===e,F=e=>M(e).disabled,I=({props:e,context:t,effects:n})=>u({initial:`idle`,on:{INPUT_CHANGED:{reduce:`setEventValue`,effects:`sync`},INPUT_COMMITTED:{reduce:`setEventValue`,effects:`sync`},KEY_STEPPED:{reduce:`setEventValue`,effects:[`sync`,`emitInput`,`emitChange`]},API_SET:{reduce:`setEventValue`,effects:[`sync`,`emitInput`,`emitChange`]}},states:{idle:{tags:[`idle`],on:{POINTER_STARTED:[{target:`dragging.single`,guard:P(`single`),reduce:`startDrag`,effects:[`beginDrag`,`sync`,`emitInput`]},{target:`dragging.lower`,guard:P(`lower`),reduce:`startDrag`,effects:[`beginDrag`,`sync`,`emitInput`]},{target:`dragging.upper`,guard:P(`upper`),reduce:`startDrag`,effects:[`beginDrag`,`sync`,`emitInput`]}],PROPS_CHANGED:{reduce:`reconcileProps`,effects:`sync`}}},dragging:{initial:`single`,tags:[`dragging`],on:{POINTER_MOVED:{reduce:`setEventValue`,effects:[`sync`,`emitInput`]},POINTER_ENDED:{target:`idle`,reduce:`endDrag`,effects:[`endDrag`,`sync`,`emitChange`]},PROPS_CHANGED:[{target:`idle`,guard:F,reduce:`reconcileProps`,effects:[`endDrag`,`sync`]},{reduce:`reconcileProps`,effects:`sync`}]},states:{single:{tags:[`dragging-single`]},lower:{tags:[`dragging-lower`]},upper:{tags:[`dragging-upper`]}}}}},{context:t,props:e,reducers:{setEventValue:e=>({context:{...e.context,value:j(e)}}),startDrag:e=>({context:{value:j(e),interaction:{activeThumb:A(e.event)}}}),endDrag:e=>({context:{...e.context,interaction:{activeThumb:null}}}),reconcileProps:e=>({props:M(e),context:{...e.context,value:N(e)}})},effects:n}),L=(e,t)=>{let n=Number(e);return Number.isFinite(n)?n:t},R=(e,t,n)=>n<=t?0:c((e-t)/(n-t)*100,0,100),z=(e,t)=>{let n=t=>e.format===`percent`?`${Math.round(t)}%`:String(t);return e.range?`${n(t.lower)} - ${n(t.upper)}`:n(t.lower)},B=(e,t,n)=>{let{min:r,max:i,step:a}=T(n),o=e.getBoundingClientRect(),s=c(r+c(n.orientation===`vertical`?1-(t.clientY-o.top)/Math.max(o.height,1):(t.clientX-o.left)/Math.max(o.width,1),0,1)*(i-r),r,i),l=Math.round((s-r)/a)*a+r,u=Math.max(0,`${a}`.split(`.`)[1]?.length??0);return Number(l.toFixed(u))},V=(e,t)=>Math.abs(e-t.lower)<=Math.abs(e-t.upper)?`lower`:`upper`,H=(e,t,n,r)=>{e&&(a({el:e,attr:`data-focus`,present:t}),a({el:e,attr:`data-disabled`,present:n}),a({el:e,attr:`data-invalid`,present:r}))},U=({input:e,props:t,value:n,min:r,max:i,label:a,valueText:o,nativeRequired:s})=>{e&&(e.min=String(r),e.max=String(i),e.step=String(t.step>0?t.step:1),h({input:e,state:{name:t.range?``:t.name,value:String(n),disabled:t.disabled,required:t.required,nativeRequired:s,invalid:t.invalid}}),e.setAttribute(`aria-valuemin`,String(r)),e.setAttribute(`aria-valuemax`,String(i)),e.setAttribute(`aria-valuenow`,String(n)),o?e.setAttribute(`aria-valuetext`,o):e.removeAttribute(`aria-valuetext`),a&&e.setAttribute(`aria-label`,a),t.orientation===`vertical`?e.setAttribute(`aria-orientation`,`vertical`):e.removeAttribute(`aria-orientation`))},W=(e,t,n)=>{let{min:r,max:i}=T(e),a=R(n.lower,r,i),o=R(n.upper,r,i),s=e.range?a:0,c=e.range?o:a;t.root.style.setProperty(`--ui-slider-lower-percent`,`${a}%`),t.root.style.setProperty(`--ui-slider-upper-percent`,`${o}%`),e.orientation===`vertical`?(t.range&&(t.range.style.bottom=`${s}%`,t.range.style.height=`${Math.max(0,c-s)}%`,t.range.style.left=``,t.range.style.width=``),t.singleThumb&&(t.singleThumb.style.bottom=`${a}%`),t.lowerThumb&&(t.lowerThumb.style.bottom=`${a}%`),t.upperThumb&&(t.upperThumb.style.bottom=`${o}%`)):(t.range&&(t.range.style.left=`${s}%`,t.range.style.width=`${Math.max(0,c-s)}%`,t.range.style.bottom=``,t.range.style.height=``),t.singleThumb&&(t.singleThumb.style.left=`${a}%`),t.lowerThumb&&(t.lowerThumb.style.left=`${a}%`),t.upperThumb&&(t.upperThumb.style.left=`${o}%`)),t.ticks.forEach(t=>{let n=R(L(t.dataset.value??``,r),r,i);e.orientation===`vertical`?(t.style.bottom=`${n}%`,t.style.left=``):(t.style.left=`${n}%`,t.style.bottom=``)})},G=()=>{let e=null,t=[],n=``,r=null,a=!1,c=()=>{if(!e)throw Error(`Slider has not been initialized.`);return e},l=()=>w.getCommittedSnapshot(),u=()=>l().props,d=()=>l().context.value,f=()=>{let e=c(),t=e.querySelector(`[data-ui-slider-root]`);if(!t)throw Error(`Slider requires a root element.`);return{root:t,track:t.querySelector(`[data-ui-slider-track]`),range:t.querySelector(`[data-ui-slider-range]`),lowerInput:t.querySelector(`[data-ui-slider-input][data-thumb="lower"]`),upperInput:t.querySelector(`[data-ui-slider-input][data-thumb="upper"]`),singleInput:t.querySelector(`[data-ui-slider-input][data-thumb="single"]`),lowerThumb:t.querySelector(`[data-ui-slider-thumb][data-thumb="lower"]`),upperThumb:t.querySelector(`[data-ui-slider-thumb][data-thumb="upper"]`),singleThumb:t.querySelector(`[data-ui-slider-thumb][data-thumb="single"]`),value:e.querySelector(`[data-ui-slider-value]`),hiddenInputs:e.querySelector(`[data-ui-slider-hidden-inputs]`),ticks:Array.from(e.querySelectorAll(`[data-ui-slider-tick]`))}},h=(e,t=f())=>e===`upper`?t.upperInput:e===`lower`?t.lowerInput:t.singleInput,g=e=>e.dataset.thumb===`upper`?`upper`:e.dataset.thumb===`lower`?`lower`:`single`,_=()=>{let e=u(),t=d(),r=f(),{min:a,max:o}=T(e);i({el:c(),schema:S,key:`value`,value:e.range?`${t.lower},${t.upper}`:String(t.lower)}),U({input:r.singleInput,props:e,value:t.lower,min:a,max:o,label:e.label,valueText:e.valueText,nativeRequired:e.required}),U({input:r.lowerInput,props:e,value:t.lower,min:a,max:e.range?t.upper:o,label:e.lowerLabel,valueText:e.lowerValueText,nativeRequired:!1}),U({input:r.upperInput,props:e,value:t.upper,min:e.range?t.lower:a,max:o,label:e.upperLabel,valueText:e.upperValueText,nativeRequired:!1}),W(e,r,t),r.value&&(r.value.textContent=z(e,t)),m({el:c(),state:e}),m({el:r.root,state:e}),r.track&&m({el:r.track,state:{disabled:e.disabled,invalid:e.invalid}}),r.range&&m({el:r.range,state:{disabled:e.disabled,invalid:e.invalid}}),H(r.singleThumb,r.singleInput===document.activeElement,e.disabled,e.invalid),H(r.lowerThumb,r.lowerInput===document.activeElement,e.disabled,e.invalid),H(r.upperThumb,r.upperInput===document.activeElement,e.disabled,e.invalid),e.range&&r.hiddenInputs?n=p({container:r.hiddenInputs,currentKey:n,state:{name:e.name,values:[String(t.lower),String(t.upper)],required:e.required,marker:`data-ui-slider-hidden-input`}}):r.hiddenInputs&&(n=p({container:r.hiddenInputs,currentKey:n,state:{name:``,values:[],marker:`data-ui-slider-hidden-input`}}))},v=e=>e.thumb===`single`||e.thumb===`lower`||e.thumb===`upper`?e.thumb:null,y=(e,t,n)=>{let r=f(),i=n.type===`API_SET`&&u().range?[r.lowerInput,r.upperInput]:[h(v(n)??t.context.interaction.activeThumb,r)];a=!0;try{i.forEach(t=>t?.dispatchEvent(new Event(e,{bubbles:!0})))}finally{a=!1}},b=(e,t)=>{let n=f(),i=e.context.interaction.activeThumb;if(h(i,n)?.focus(),r=typeof t.pointerId==`number`?t.pointerId:null,r!==null)try{n.root.setPointerCapture(r)}catch{w.send({type:`POINTER_ENDED`,thumb:i})}},x=()=>{if(r!==null){try{f().root.releasePointerCapture(r)}catch{}r=null}},w=s({schema:S,hooks:C,createMachine:({props:e})=>I({props:e,context:{value:k(e),interaction:{activeThumb:null}},effects:{sync:_,beginDrag:({snapshot:e,event:t})=>b(e,t),endDrag:x,emitInput:({snapshot:e,event:t})=>y(`input`,e,t),emitChange:({snapshot:e,event:t})=>y(`change`,e,t)}})}),E=(e,t)=>{a||!(e.target instanceof HTMLInputElement)||w.send({type:t?`INPUT_COMMITTED`:`INPUT_CHANGED`,thumb:g(e.target),value:e.target.value})},D=e=>{if(!(e.target instanceof HTMLInputElement)||![`PageUp`,`PageDown`].includes(e.key)&&!(e.shiftKey&&e.key.startsWith(`Arrow`)))return;e.preventDefault();let t=[`PageDown`,`ArrowDown`,`ArrowLeft`].includes(e.key)?-1:1,n=g(e.target);w.send({type:`KEY_STEPPED`,thumb:n,value:L(e.target.value,T(u()).min)+t*T(u()).bigStep})},O=e=>{if(u().disabled)return;let t=B(f().root,e,u()),n=u().range?V(t,d()):`single`;w.send({type:`POINTER_STARTED`,value:t,thumb:n,pointerId:e.pointerId}),e.preventDefault()},A=e=>{r!==e.pointerId||!w.hasTag(`dragging`)||w.send({type:`POINTER_MOVED`,value:B(f().root,e,u()),thumb:l().context.interaction.activeThumb})},j=e=>{r!==e.pointerId||!w.hasTag(`dragging`)||w.send({type:`POINTER_ENDED`,thumb:l().context.interaction.activeThumb})},M;return M={...w,get values(){let e=this.snapshot.current;return e?e.props.range?[e.context.value.lower,e.context.value.upper]:[e.context.value.lower]:[]},setValue(e){w.send({type:`API_SET`,values:Array.isArray(e)?e:[e]})},init(){e=this.$el,w.connect(this.$el,this.snapshot);let n=f();[n.singleInput,n.lowerInput,n.upperInput].forEach(e=>{e&&(o({target:e,event:`input`,handler:e=>E(e,!1),cleanup:t}),o({target:e,event:`change`,handler:e=>E(e,!0),cleanup:t}),o({target:e,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&D(e)},cleanup:t}),o({target:e,event:`focus`,handler:_,cleanup:t}),o({target:e,event:`blur`,handler:_,cleanup:t}))}),o({target:n.root,event:`pointerdown`,handler:e=>{e instanceof PointerEvent&&O(e)},cleanup:t}),o({target:n.root,event:`pointermove`,handler:e=>{e instanceof PointerEvent&&A(e)},cleanup:t}),o({target:n.root,event:`pointerup`,handler:e=>{e instanceof PointerEvent&&j(e)},cleanup:t}),o({target:n.root,event:`pointercancel`,handler:e=>{e instanceof PointerEvent&&j(e)},cleanup:t}),_()},destroy(){x(),t.splice(0).forEach(e=>e()),w.disconnect(),e=null}},M},K=l(`UiSlider`,G),q=new WeakSet,J=e=>{q.has(e)||(q.add(e),K(e))};export{G as n,J as t};
|
|
2
|
+
//# sourceMappingURL=entry2.generated-e3bTOzUi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry2.generated-e3bTOzUi.js","names":[],"sources":["../../../../../../../../client/src/components/slider/contract.ts","../../../../../../../../client/src/components/slider/machine.ts","../../../../../../../../client/src/components/slider/index.ts","../../../../../../../../client/src/components/slider/entry.generated.ts"],"sourcesContent":["import {bool, number, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {CONTROL_SIZES, DEFAULT_VARIANTS, ORIENTATIONS, type ControlSize, type DefaultVariant, type Orientation} from '../common';\n\nconst SLIDER_SIZES = CONTROL_SIZES;\nconst SLIDER_VARIANTS = DEFAULT_VARIANTS;\nconst SLIDER_ORIENTATIONS = ORIENTATIONS;\nconst SLIDER_FORMATS = ['number', 'percent'] as const;\n\ntype SliderSize = ControlSize;\ntype SliderVariant = DefaultVariant;\ntype SliderOrientation = Orientation;\ntype SliderFormat = typeof SLIDER_FORMATS[number];\n\nconst sliderSchema = {\n name: string,\n value: string,\n defaultValue: string.default('0'),\n min: number.default(0),\n max: number.default(100),\n step: number.default(1),\n bigStep: number.default(10),\n minStepsBetween: number.default(0),\n range: bool,\n orientation: oneOf(SLIDER_ORIENTATIONS, 'horizontal' as SliderOrientation),\n size: oneOf(SLIDER_SIZES, 'md' as SliderSize),\n variant: oneOf(SLIDER_VARIANTS, 'default' as SliderVariant),\n disabled: bool,\n required: bool,\n invalid: bool,\n label: string,\n description: string,\n descriptionTrailing: string,\n error: string,\n errors: string,\n badge: string,\n valueText: string,\n lowerLabel: string.default('Minimum'),\n upperLabel: string.default('Maximum'),\n lowerValueText: string,\n upperValueText: string,\n showValue: bool,\n format: oneOf(SLIDER_FORMATS, 'number' as SliderFormat),\n fieldClass: string,\n rootClass: string,\n trackClass: string,\n rangeClass: string,\n thumbClass: string,\n tickClass: string,\n class: string,\n};\n\nconst sliderTickSchema = {\n value: number.default(0),\n label: string,\n class: string,\n};\n\ntype SliderProps = SchemaToProps<typeof sliderSchema>;\ntype SliderTickProps = SchemaToProps<typeof sliderTickSchema>;\n\nexport {\n SLIDER_FORMATS,\n SLIDER_ORIENTATIONS,\n SLIDER_SIZES,\n SLIDER_VARIANTS,\n sliderSchema,\n sliderTickSchema,\n};\nexport type {\n SliderFormat,\n SliderOrientation,\n SliderProps,\n SliderSize,\n SliderTickProps,\n SliderVariant,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport {clamp} from '../../utils';\nimport type {SliderProps} from './contract';\n\ntype SliderThumbName = 'single' | 'lower' | 'upper';\ntype SliderValues = {lower: number; upper: number};\ntype SliderContext = {\n value: SliderValues;\n interaction: {activeThumb: SliderThumbName | null};\n};\n\ntype SliderMachineEffects = {\n sync(scope: MachineScope<SliderContext, SliderProps>): void;\n beginDrag(scope: MachineScope<SliderContext, SliderProps>): void;\n endDrag(scope: MachineScope<SliderContext, SliderProps>): void;\n emitInput(scope: MachineScope<SliderContext, SliderProps>): void;\n emitChange(scope: MachineScope<SliderContext, SliderProps>): void;\n};\n\ntype CreateSliderMachineOptions = {\n props: SliderProps;\n context: SliderContext;\n effects: SliderMachineEffects;\n};\n\nconst sliderHooks = [] as const;\n\nconst roundToStep = (value: number, min: number, step: number): number => {\n if (!Number.isFinite(step) || step <= 0) return value;\n const stepped = Math.round((value - min) / step) * step + min;\n const decimals = Math.max(0, `${step}`.split('.')[1]?.length ?? 0);\n return Number(stepped.toFixed(decimals));\n};\n\nconst sliderBounds = (props: SliderProps): {min: number; max: number; step: number; bigStep: number} => {\n const min = Math.min(props.min, props.max);\n const max = Math.max(props.min, props.max);\n const step = props.step > 0 ? props.step : 1;\n const bigStep = props.bigStep > 0 ? props.bigStep : step * 10;\n return {min, max, step, bigStep};\n};\n\nconst parseNumber = (value: unknown, fallback: number): number => {\n const parsed = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\nconst normalizeSliderValues = (\n props: SliderProps,\n values: SliderValues,\n changedThumb?: SliderThumbName | null,\n): SliderValues => {\n const {min, max, step} = sliderBounds(props);\n let lower = roundToStep(clamp(parseNumber(values.lower, min), min, max), min, step);\n let upper = roundToStep(clamp(parseNumber(values.upper, max), min, max), min, step);\n if (!props.range) return {lower, upper: lower};\n if (lower > upper) [lower, upper] = [upper, lower];\n\n const minDistance = Math.max(0, props.minStepsBetween) * step;\n if (upper - lower < minDistance) {\n if (changedThumb === 'lower') lower = clamp(roundToStep(upper - minDistance, min, step), min, max);\n else upper = clamp(roundToStep(lower + minDistance, min, step), min, max);\n }\n return {lower, upper};\n};\n\nconst sliderValuesFromString = (props: SliderProps, value: string): SliderValues => {\n const {min, max} = sliderBounds(props);\n const parts = value.split(',').map((part) => part.trim());\n return normalizeSliderValues(props, {\n lower: parseNumber(parts[0], min),\n upper: props.range ? parseNumber(parts[1], max) : parseNumber(parts[0], min),\n });\n};\n\nconst initialSliderValues = (props: SliderProps): SliderValues => (\n sliderValuesFromString(props, props.value || props.defaultValue || String(sliderBounds(props).min))\n);\n\nconst eventThumb = (event: MachineEventObject): SliderThumbName | null => (\n event.thumb === 'single' || event.thumb === 'lower' || event.thumb === 'upper' ? event.thumb : null\n);\nconst eventValues = (scope: MachineScope<SliderContext, SliderProps>): SliderValues => {\n if (Array.isArray(scope.event.values)) {\n return normalizeSliderValues(scope.props, {\n lower: parseNumber(scope.event.values[0], scope.context.value.lower),\n upper: parseNumber(scope.event.values[1], scope.context.value.upper),\n }, eventThumb(scope.event));\n }\n const thumb = eventThumb(scope.event) ?? scope.context.interaction.activeThumb ?? 'single';\n const value = parseNumber(scope.event.value, thumb === 'upper' ? scope.context.value.upper : scope.context.value.lower);\n return normalizeSliderValues(scope.props, {\n lower: thumb === 'upper' ? scope.context.value.lower : value,\n upper: thumb === 'upper' ? value : scope.context.value.upper,\n }, thumb);\n};\nconst nextProps = (scope: MachineScope<SliderContext, SliderProps>): SliderProps => {\n const next = propsChangedEvent<SliderProps>(scope.event)?.props;\n return next ? {...next, range: scope.props.range, defaultValue: scope.props.defaultValue} : scope.props;\n};\nconst propsValues = (scope: MachineScope<SliderContext, SliderProps>): SliderValues => {\n const props = nextProps(scope);\n return propsChanged<SliderProps>(scope.event, 'value')\n ? sliderValuesFromString(props, props.value || props.defaultValue || String(sliderBounds(props).min))\n : normalizeSliderValues(props, scope.context.value);\n};\nconst thumbIs = (thumb: SliderThumbName) => ({event}: MachineScope<SliderContext, SliderProps>): boolean => event.thumb === thumb;\nconst becomesDisabled = (scope: MachineScope<SliderContext, SliderProps>): boolean => nextProps(scope).disabled;\n\nconst createSliderMachine = ({props, context, effects}: CreateSliderMachineOptions): Machine<SliderContext, SliderProps> => createMachine<SliderContext, SliderProps>({\n initial: 'idle',\n on: {\n INPUT_CHANGED: {reduce: 'setEventValue', effects: 'sync'},\n INPUT_COMMITTED: {reduce: 'setEventValue', effects: 'sync'},\n KEY_STEPPED: {reduce: 'setEventValue', effects: ['sync', 'emitInput', 'emitChange']},\n API_SET: {reduce: 'setEventValue', effects: ['sync', 'emitInput', 'emitChange']},\n },\n states: {\n idle: {\n tags: ['idle'],\n on: {\n POINTER_STARTED: [\n {target: 'dragging.single', guard: thumbIs('single'), reduce: 'startDrag', effects: ['beginDrag', 'sync', 'emitInput']},\n {target: 'dragging.lower', guard: thumbIs('lower'), reduce: 'startDrag', effects: ['beginDrag', 'sync', 'emitInput']},\n {target: 'dragging.upper', guard: thumbIs('upper'), reduce: 'startDrag', effects: ['beginDrag', 'sync', 'emitInput']},\n ],\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n },\n },\n dragging: {\n initial: 'single',\n tags: ['dragging'],\n on: {\n POINTER_MOVED: {reduce: 'setEventValue', effects: ['sync', 'emitInput']},\n POINTER_ENDED: {target: 'idle', reduce: 'endDrag', effects: ['endDrag', 'sync', 'emitChange']},\n PROPS_CHANGED: [\n {target: 'idle', guard: becomesDisabled, reduce: 'reconcileProps', effects: ['endDrag', 'sync']},\n {reduce: 'reconcileProps', effects: 'sync'},\n ],\n },\n states: {\n single: {tags: ['dragging-single']},\n lower: {tags: ['dragging-lower']},\n upper: {tags: ['dragging-upper']},\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n setEventValue: (scope) => ({context: {...scope.context, value: eventValues(scope)}}),\n startDrag: (scope) => ({\n context: {\n value: eventValues(scope),\n interaction: {activeThumb: eventThumb(scope.event)},\n },\n }),\n endDrag: (scope) => ({context: {...scope.context, interaction: {activeThumb: null}}}),\n reconcileProps: (scope) => ({\n props: nextProps(scope),\n context: {...scope.context, value: propsValues(scope)},\n }),\n },\n effects,\n});\n\nexport {\n createSliderMachine,\n initialSliderValues,\n normalizeSliderValues,\n sliderBounds,\n sliderHooks,\n};\nexport type {\n CreateSliderMachineOptions,\n SliderContext,\n SliderMachineEffects,\n SliderThumbName,\n SliderValues,\n};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n type MachineSnapshot,\n reflectSchemaProp,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {syncControlPresence, syncNativeControl, syncRepeatedHiddenInputs} from '@client/runtime/form-control';\nimport {addListener, clamp, setPresence, type CleanupStack} from '@client/utils';\nimport {sliderSchema, type SliderProps} from './contract';\nimport {\n createSliderMachine,\n initialSliderValues,\n sliderBounds,\n type SliderContext,\n sliderHooks,\n type SliderThumbName,\n type SliderValues,\n} from './machine';\n\ntype SliderElements = {\n root: HTMLElement;\n track: HTMLElement | null;\n range: HTMLElement | null;\n lowerInput: HTMLInputElement | null;\n upperInput: HTMLInputElement | null;\n singleInput: HTMLInputElement | null;\n lowerThumb: HTMLElement | null;\n upperThumb: HTMLElement | null;\n singleThumb: HTMLElement | null;\n value: HTMLElement | null;\n hiddenInputs: HTMLElement | null;\n ticks: HTMLElement[];\n};\n\n/**\n * Public Alpine API for `ui.slider`.\n *\n * @public\n */\ninterface UiSliderApi {\n /** Current normalized values: one item for single mode, lower and upper for range mode. */\n readonly values: readonly number[];\n /** Set and commit a normalized single value or lower/upper range. */\n setValue(value: number | readonly [number, number]): void;\n}\n\ntype SliderData = AlpineMachine<SliderContext, SliderProps, typeof sliderHooks> & UiSliderApi & {\n init(): void;\n destroy(): void;\n};\n\nconst parseValue = (value: string, fallback: number): number => {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\nconst percentFor = (value: number, min: number, max: number): number => {\n if (max <= min) return 0;\n return clamp(((value - min) / (max - min)) * 100, 0, 100);\n};\n\nconst formatValue = (props: SliderProps, values: SliderValues): string => {\n const formatOne = (value: number): string => props.format === 'percent' ? `${Math.round(value)}%` : String(value);\n return props.range ? `${formatOne(values.lower)} - ${formatOne(values.upper)}` : formatOne(values.lower);\n};\n\nconst valueFromPointer = (root: HTMLElement, event: PointerEvent, props: SliderProps): number => {\n const {min, max, step} = sliderBounds(props);\n const rect = root.getBoundingClientRect();\n const ratio = props.orientation === 'vertical'\n ? 1 - ((event.clientY - rect.top) / Math.max(rect.height, 1))\n : (event.clientX - rect.left) / Math.max(rect.width, 1);\n const value = clamp(min + clamp(ratio, 0, 1) * (max - min), min, max);\n const stepped = Math.round((value - min) / step) * step + min;\n const decimals = Math.max(0, `${step}`.split('.')[1]?.length ?? 0);\n return Number(stepped.toFixed(decimals));\n};\n\nconst nearestThumb = (value: number, values: SliderValues): SliderThumbName => (\n Math.abs(value - values.lower) <= Math.abs(value - values.upper) ? 'lower' : 'upper'\n);\n\nconst setThumbPresence = (thumb: HTMLElement | null, present: boolean, disabled: boolean, invalid: boolean): void => {\n if (!thumb) return;\n setPresence({el: thumb, attr: 'data-focus', present});\n setPresence({el: thumb, attr: 'data-disabled', present: disabled});\n setPresence({el: thumb, attr: 'data-invalid', present: invalid});\n};\n\nconst syncInput = ({\n input,\n props,\n value,\n min,\n max,\n label,\n valueText,\n nativeRequired,\n}: {\n input: HTMLInputElement | null;\n props: SliderProps;\n value: number;\n min: number;\n max: number;\n label: string;\n valueText: string;\n nativeRequired: boolean;\n}): void => {\n if (!input) return;\n input.min = String(min);\n input.max = String(max);\n input.step = String(props.step > 0 ? props.step : 1);\n syncNativeControl({input, state: {\n name: props.range ? '' : props.name,\n value: String(value),\n disabled: props.disabled,\n required: props.required,\n nativeRequired,\n invalid: props.invalid,\n }});\n input.setAttribute('aria-valuemin', String(min));\n input.setAttribute('aria-valuemax', String(max));\n input.setAttribute('aria-valuenow', String(value));\n if (valueText) input.setAttribute('aria-valuetext', valueText);\n else input.removeAttribute('aria-valuetext');\n if (label) input.setAttribute('aria-label', label);\n if (props.orientation === 'vertical') input.setAttribute('aria-orientation', 'vertical');\n else input.removeAttribute('aria-orientation');\n};\n\nconst writeGeometry = (props: SliderProps, elements: SliderElements, values: SliderValues): void => {\n const {min, max} = sliderBounds(props);\n const lowerPercent = percentFor(values.lower, min, max);\n const upperPercent = percentFor(values.upper, min, max);\n const start = props.range ? lowerPercent : 0;\n const end = props.range ? upperPercent : lowerPercent;\n\n elements.root.style.setProperty('--ui-slider-lower-percent', `${lowerPercent}%`);\n elements.root.style.setProperty('--ui-slider-upper-percent', `${upperPercent}%`);\n if (props.orientation === 'vertical') {\n if (elements.range) {\n elements.range.style.bottom = `${start}%`;\n elements.range.style.height = `${Math.max(0, end - start)}%`;\n elements.range.style.left = '';\n elements.range.style.width = '';\n }\n if (elements.singleThumb) elements.singleThumb.style.bottom = `${lowerPercent}%`;\n if (elements.lowerThumb) elements.lowerThumb.style.bottom = `${lowerPercent}%`;\n if (elements.upperThumb) elements.upperThumb.style.bottom = `${upperPercent}%`;\n } else {\n if (elements.range) {\n elements.range.style.left = `${start}%`;\n elements.range.style.width = `${Math.max(0, end - start)}%`;\n elements.range.style.bottom = '';\n elements.range.style.height = '';\n }\n if (elements.singleThumb) elements.singleThumb.style.left = `${lowerPercent}%`;\n if (elements.lowerThumb) elements.lowerThumb.style.left = `${lowerPercent}%`;\n if (elements.upperThumb) elements.upperThumb.style.left = `${upperPercent}%`;\n }\n\n elements.ticks.forEach((tick) => {\n const tickPercent = percentFor(parseValue(tick.dataset.value ?? '', min), min, max);\n if (props.orientation === 'vertical') {\n tick.style.bottom = `${tickPercent}%`;\n tick.style.left = '';\n } else {\n tick.style.left = `${tickPercent}%`;\n tick.style.bottom = '';\n }\n });\n};\n\nconst UiSlider = (): TrellisAlpineComponent<SliderData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let listeners: CleanupStack = [];\n let hiddenInputsKey = '';\n let pointerId: number | null = null;\n let dispatchingNative = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Slider has not been initialized.');\n return rootEl;\n };\n const currentSnapshot = (): MachineSnapshot<SliderContext, SliderProps> => bridge.getCommittedSnapshot();\n const currentProps = (): Readonly<SliderProps> => currentSnapshot().props;\n const currentValues = (): Readonly<SliderValues> => currentSnapshot().context.value;\n const elements = (): SliderElements => {\n const slider = root();\n const interactiveRoot = slider.querySelector<HTMLElement>('[data-ui-slider-root]');\n if (!interactiveRoot) throw new Error('Slider requires a root element.');\n return {\n root: interactiveRoot,\n track: interactiveRoot.querySelector<HTMLElement>('[data-ui-slider-track]'),\n range: interactiveRoot.querySelector<HTMLElement>('[data-ui-slider-range]'),\n lowerInput: interactiveRoot.querySelector<HTMLInputElement>('[data-ui-slider-input][data-thumb=\"lower\"]'),\n upperInput: interactiveRoot.querySelector<HTMLInputElement>('[data-ui-slider-input][data-thumb=\"upper\"]'),\n singleInput: interactiveRoot.querySelector<HTMLInputElement>('[data-ui-slider-input][data-thumb=\"single\"]'),\n lowerThumb: interactiveRoot.querySelector<HTMLElement>('[data-ui-slider-thumb][data-thumb=\"lower\"]'),\n upperThumb: interactiveRoot.querySelector<HTMLElement>('[data-ui-slider-thumb][data-thumb=\"upper\"]'),\n singleThumb: interactiveRoot.querySelector<HTMLElement>('[data-ui-slider-thumb][data-thumb=\"single\"]'),\n value: slider.querySelector<HTMLElement>('[data-ui-slider-value]'),\n hiddenInputs: slider.querySelector<HTMLElement>('[data-ui-slider-hidden-inputs]'),\n ticks: Array.from(slider.querySelectorAll<HTMLElement>('[data-ui-slider-tick]')),\n };\n };\n const inputFor = (thumb: SliderThumbName | null, parts = elements()): HTMLInputElement | null => {\n if (thumb === 'upper') return parts.upperInput;\n if (thumb === 'lower') return parts.lowerInput;\n return parts.singleInput;\n };\n const thumbFromInput = (input: HTMLInputElement): SliderThumbName => {\n if (input.dataset.thumb === 'upper') return 'upper';\n if (input.dataset.thumb === 'lower') return 'lower';\n return 'single';\n };\n\n const syncDom = (): void => {\n const props = currentProps();\n const values = currentValues();\n const parts = elements();\n const {min, max} = sliderBounds(props);\n reflectSchemaProp({\n el: root(),\n schema: sliderSchema,\n key: 'value',\n value: props.range ? `${values.lower},${values.upper}` : String(values.lower),\n });\n syncInput({\n input: parts.singleInput,\n props,\n value: values.lower,\n min,\n max,\n label: props.label,\n valueText: props.valueText,\n nativeRequired: props.required,\n });\n syncInput({\n input: parts.lowerInput,\n props,\n value: values.lower,\n min,\n max: props.range ? values.upper : max,\n label: props.lowerLabel,\n valueText: props.lowerValueText,\n nativeRequired: false,\n });\n syncInput({\n input: parts.upperInput,\n props,\n value: values.upper,\n min: props.range ? values.lower : min,\n max,\n label: props.upperLabel,\n valueText: props.upperValueText,\n nativeRequired: false,\n });\n writeGeometry(props, parts, values as SliderValues);\n if (parts.value) parts.value.textContent = formatValue(props, values as SliderValues);\n syncControlPresence({el: root(), state: props});\n syncControlPresence({el: parts.root, state: props});\n if (parts.track) syncControlPresence({el: parts.track, state: {disabled: props.disabled, invalid: props.invalid}});\n if (parts.range) syncControlPresence({el: parts.range, state: {disabled: props.disabled, invalid: props.invalid}});\n setThumbPresence(parts.singleThumb, parts.singleInput === document.activeElement, props.disabled, props.invalid);\n setThumbPresence(parts.lowerThumb, parts.lowerInput === document.activeElement, props.disabled, props.invalid);\n setThumbPresence(parts.upperThumb, parts.upperInput === document.activeElement, props.disabled, props.invalid);\n if (props.range && parts.hiddenInputs) {\n hiddenInputsKey = syncRepeatedHiddenInputs({container: parts.hiddenInputs, currentKey: hiddenInputsKey, state: {\n name: props.name,\n values: [String(values.lower), String(values.upper)],\n required: props.required,\n marker: 'data-ui-slider-hidden-input',\n }});\n } else if (parts.hiddenInputs) {\n hiddenInputsKey = syncRepeatedHiddenInputs({container: parts.hiddenInputs, currentKey: hiddenInputsKey, state: {\n name: '',\n values: [],\n marker: 'data-ui-slider-hidden-input',\n }});\n }\n };\n\n const eventThumb = (event: {thumb?: unknown}): SliderThumbName | null => (\n event.thumb === 'single' || event.thumb === 'lower' || event.thumb === 'upper' ? event.thumb : null\n );\n const emitNative = (name: 'input' | 'change', snapshot: MachineSnapshot<SliderContext, SliderProps>, event: {thumb?: unknown; type: string}): void => {\n const parts = elements();\n const inputs = event.type === 'API_SET' && currentProps().range\n ? [parts.lowerInput, parts.upperInput]\n : [inputFor(eventThumb(event) ?? snapshot.context.interaction.activeThumb, parts)];\n dispatchingNative = true;\n try {\n inputs.forEach((input) => input?.dispatchEvent(new Event(name, {bubbles: true})));\n } finally {\n dispatchingNative = false;\n }\n };\n const beginDrag = (snapshot: MachineSnapshot<SliderContext, SliderProps>, event: {type: string; [key: string]: unknown}): void => {\n const parts = elements();\n const thumb = snapshot.context.interaction.activeThumb;\n inputFor(thumb, parts)?.focus();\n pointerId = typeof event.pointerId === 'number' ? event.pointerId : null;\n if (pointerId === null) return;\n try {\n parts.root.setPointerCapture(pointerId);\n } catch {\n bridge.send({type: 'POINTER_ENDED', thumb});\n }\n };\n const endDrag = (): void => {\n if (pointerId === null) return;\n try {\n elements().root.releasePointerCapture(pointerId);\n } catch {\n // Capture cleanup is best-effort after interruption.\n }\n pointerId = null;\n };\n\n const bridge = createAlpineMachine({\n schema: sliderSchema,\n hooks: sliderHooks,\n createMachine: ({props}) => createSliderMachine({\n props,\n context: {value: initialSliderValues(props), interaction: {activeThumb: null}},\n effects: {\n sync: syncDom,\n beginDrag: ({snapshot, event}) => beginDrag(snapshot, event),\n endDrag,\n emitInput: ({snapshot, event}) => emitNative('input', snapshot, event),\n emitChange: ({snapshot, event}) => emitNative('change', snapshot, event),\n },\n }),\n });\n\n const handleInput = (event: Event, committed: boolean): void => {\n if (dispatchingNative || !(event.target instanceof HTMLInputElement)) return;\n bridge.send({\n type: committed ? 'INPUT_COMMITTED' : 'INPUT_CHANGED',\n thumb: thumbFromInput(event.target),\n value: event.target.value,\n });\n };\n const handleKeydown = (event: KeyboardEvent): void => {\n if (!(event.target instanceof HTMLInputElement)) return;\n if (!['PageUp', 'PageDown'].includes(event.key) && !(event.shiftKey && event.key.startsWith('Arrow'))) return;\n event.preventDefault();\n const direction = ['PageDown', 'ArrowDown', 'ArrowLeft'].includes(event.key) ? -1 : 1;\n const thumb = thumbFromInput(event.target);\n bridge.send({\n type: 'KEY_STEPPED',\n thumb,\n value: parseValue(event.target.value, sliderBounds(currentProps()).min) + direction * sliderBounds(currentProps()).bigStep,\n });\n };\n const handlePointerDown = (event: PointerEvent): void => {\n if (currentProps().disabled) return;\n const value = valueFromPointer(elements().root, event, currentProps());\n const thumb = currentProps().range ? nearestThumb(value, currentValues() as SliderValues) : 'single';\n bridge.send({type: 'POINTER_STARTED', value, thumb, pointerId: event.pointerId});\n event.preventDefault();\n };\n const handlePointerMove = (event: PointerEvent): void => {\n if (pointerId !== event.pointerId || !bridge.hasTag('dragging')) return;\n bridge.send({\n type: 'POINTER_MOVED',\n value: valueFromPointer(elements().root, event, currentProps()),\n thumb: currentSnapshot().context.interaction.activeThumb,\n });\n };\n const handlePointerUp = (event: PointerEvent): void => {\n if (pointerId !== event.pointerId || !bridge.hasTag('dragging')) return;\n bridge.send({type: 'POINTER_ENDED', thumb: currentSnapshot().context.interaction.activeThumb});\n };\n\n let component!: TrellisAlpineComponent<SliderData>;\n component = {\n ...bridge,\n get values(): readonly number[] {\n const snapshot = this.snapshot.current;\n if (!snapshot) return [];\n return snapshot.props.range\n ? [snapshot.context.value.lower, snapshot.context.value.upper]\n : [snapshot.context.value.lower];\n },\n setValue(value: number | readonly [number, number]): void {\n bridge.send({type: 'API_SET', values: Array.isArray(value) ? value : [value]});\n },\n init(): void {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n const parts = elements();\n [parts.singleInput, parts.lowerInput, parts.upperInput].forEach((input) => {\n if (!input) return;\n addListener({target: input, event: 'input', handler: (event) => handleInput(event, false), cleanup: listeners});\n addListener({target: input, event: 'change', handler: (event) => handleInput(event, true), cleanup: listeners});\n addListener({target: input, event: 'keydown', handler: (event) => {\n if (event instanceof KeyboardEvent) handleKeydown(event);\n }, cleanup: listeners});\n addListener({target: input, event: 'focus', handler: syncDom, cleanup: listeners});\n addListener({target: input, event: 'blur', handler: syncDom, cleanup: listeners});\n });\n addListener({target: parts.root, event: 'pointerdown', handler: (event) => {\n if (event instanceof PointerEvent) handlePointerDown(event);\n }, cleanup: listeners});\n addListener({target: parts.root, event: 'pointermove', handler: (event) => {\n if (event instanceof PointerEvent) handlePointerMove(event);\n }, cleanup: listeners});\n addListener({target: parts.root, event: 'pointerup', handler: (event) => {\n if (event instanceof PointerEvent) handlePointerUp(event);\n }, cleanup: listeners});\n addListener({target: parts.root, event: 'pointercancel', handler: (event) => {\n if (event instanceof PointerEvent) handlePointerUp(event);\n }, cleanup: listeners});\n syncDom();\n },\n destroy(): void {\n endDrag();\n listeners.splice(0).forEach((cleanup) => cleanup());\n bridge.disconnect();\n rootEl = null;\n },\n };\n return component;\n};\n\nconst registerSlider = defineAlpineData('UiSlider', UiSlider);\n\nexport {registerSlider, UiSlider};\nexport type {SliderData, SliderElements, SliderThumbName, SliderValues, UiSliderApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerSlider as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerSlider = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerSlider};\nexport default registerSlider;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-CYHiRVjx.js";export{e as UiAccordion,t as default,t as registerAccordion};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-D0Av2Aiw.js";export{e as UiCheckbox,t as UiCheckboxGroup,n as default,n as registerCheckbox};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-Ck7bhyzz.js";export{e as UiDataGrid,t as default,t as registerDataGrid};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-BbQ_TNRI.js";export{e as UiDatePicker,t as default,t as registerDatePicker};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-DSyiRko7.js";export{e as UiDropdown,t as default,t as registerDropdown};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-BwAge51I.js";export{e as UiField,t as default,t as registerField};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"../chunks/motion-BhADgUVd.js";import{n as
|
|
1
|
+
import{t as e}from"../chunks/motion-BhADgUVd.js";import{n as ee,r as te,t}from"../chunks/entry.generated-DJMDdEtO.js";import{t as n}from"../chunks/capability-motion-C_8mc71v.js";import{n as ne,t as r}from"../chunks/entry.generated-vM-5KVaL.js";import{t as i}from"../chunks/drag-and-drop-DHq3udf7.js";import{i as a,n as o,r as s,t as c}from"../chunks/capability-sortable-aY5GWxrK.js";import{n as re,t as l}from"../chunks/entry.generated-CYHiRVjx.js";import{n as ie,t as u}from"../chunks/entry.generated-C-lyYGbo.js";import{n as d,r as f,t as p}from"../chunks/entry.generated-D0Av2Aiw.js";import{n as m,t as h}from"../chunks/entry.generated-BbQ_TNRI.js";import{n as g,t as _}from"../chunks/entry.generated-B_xTkYSB.js";import{n as ae,t as v}from"../chunks/entry.generated-DSyiRko7.js";import{n as oe,t as y}from"../chunks/entry.generated-BwAge51I.js";import{n as se,t as b}from"../chunks/entry.generated-DNtvOM3X.js";import{n as ce,t as x}from"../chunks/entry.generated-CEGLKsEl.js";import{a as le,i as ue,n as S,o as C,r as w,t as T}from"../chunks/capability-shortcut-Br_XBf7u.js";import{t as E}from"../chunks/controller-DsXbNzqk.js";import{t as D}from"../chunks/entry.generated-jP0UEZIS.js";import{n as O,r as k,t as A}from"../chunks/entry.generated-BZXp8Edl.js";import{t as j}from"../chunks/capability-resizable-Bga8TngJ.js";import{n as M,r as N,t as P}from"../chunks/entry.generated-C1JdfrdC.js";import{n as F,r as I,t as L}from"../chunks/entry.generated-xjDWyE7q.js";import{n as R,t as z}from"../chunks/entry.generated-CPbvsglm.js";import{i as B,n as V,r as H,t as U}from"../chunks/entry.generated-Dd04OzRH.js";import{n as de,t as W}from"../chunks/entry2.generated-e3bTOzUi.js";import{n as fe,t as G}from"../chunks/entry.generated-Gl6wz0Oh.js";import{n as pe,t as K}from"../chunks/entry.generated-CtoSPDoI.js";import{n as me,r as he,t as q}from"../chunks/entry.generated-B74OtpL2.js";import{n as ge,t as J}from"../chunks/entry.generated-Ck7bhyzz.js";import{n as _e,t as Y}from"../chunks/entry.generated-B2rTvkxi.js";import{_ as ve,a as ye,b as be,c as xe,d as Se,f as Ce,g as we,h as Te,i as Ee,l as De,m as Oe,n as ke,o as Ae,p as X,r as je,s as Me,t as Z,u as Ne,v as Pe,x as Fe,y as Ie}from"../chunks/entry.generated-QspMEPHx.js";var Q=new WeakSet,$=e=>{Q.has(e)||(Q.add(e),n(e),j(e),c(e),C(e),l(e),u(),p(e),h(e),_(e),v(e),y(e),b(e),x(e),D(e),A(e),P(e),L(e),z(e),r(e),U(e),W(e),G(e),K(e),t(e),q(e),J(e),Y(e),Z(e))};export{ke as TABLE_ALIGNS,je as TABLE_BORDERS,Ee as TABLE_COLUMN_SCOPES,ye as TABLE_DENSITIES,Ae as TABLE_FILTER_AS_VALUES,Me as TABLE_LAYOUTS,xe as TABLE_ROW_HEADER_SCOPES,De as TABLE_SORTS,Ne as TABLE_VALIGNS,Se as TABLE_VARIANTS,Ce as TABLE_WIDTHS,re as UiAccordion,d as UiCheckbox,f as UiCheckboxGroup,ge as UiDataGrid,m as UiDatePicker,g as UiDirectUpload,ae as UiDropdown,oe as UiField,se as UiFileUpload,ce as UiInput,O as UiModal,k as UiModalTrigger,M as UiPanelToggle,N as UiPanels,F as UiRadio,I as UiRadioGroup,R as UiScrollArea,ne as UiSelect,V as UiSidebar,H as UiSidebarEdge,B as UiSidebarToggle,de as UiSlider,fe as UiSwitch,pe as UiTabs,ee as UiToast,te as UiToastOutlet,me as UiTooltip,_e as UiVirtualizer,$ as components,$ as default,E as createKeybindingController,i as createResizable,T as createShortcutMatcher,s as createSortableRegistry,S as formatShortcut,w as formatShortcutKeys,e as motion,ue as observePressedShortcutKeys,le as parseShortcut,l as registerAccordion,u as registerButton,p as registerCheckbox,J as registerDataGrid,h as registerDatePicker,_ as registerDirectUpload,v as registerDropdown,y as registerField,b as registerFileUpload,x as registerInput,D as registerKeybinding,A as registerModal,n as registerMotionCapability,P as registerPanels,L as registerRadio,j as registerResizableCapability,z as registerScrollArea,r as registerSelect,C as registerShortcutCapability,U as registerSidebar,W as registerSlider,c as registerSortableCapability,o as registerSortableDirective,G as registerSwitch,Z as registerTable,K as registerTabs,t as registerToast,q as registerTooltip,he as registerTooltipDirective,Y as registerVirtualizer,a as sortable,X as tableCaptionSchema,Oe as tableCellSchema,Te as tableColumnFilterSchema,we as tableColumnSchema,ve as tableEmptySchema,Pe as tableRowHeaderSchema,Ie as tableRowSchema,be as tableSchema,Fe as tableSectionSchema,ie as unregisterButton};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../client/src/components/entry.generated.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerAccordion} from './accordion/entry.generated';\nimport {registerButton} from './button/entry.generated';\nimport {registerCheckbox} from './checkbox/entry.generated';\nimport {registerDatePicker} from './date-picker/entry.generated';\nimport {registerDirectUpload} from './direct-upload/entry.generated';\nimport {registerDropdown} from './dropdown/entry.generated';\nimport {registerField} from './field/entry.generated';\nimport {registerFileUpload} from './file-upload/entry.generated';\nimport {registerInput} from './input/entry.generated';\nimport {registerModal} from './modal/entry.generated';\nimport {registerPanels} from './panels/entry.generated';\nimport {registerRadio} from './radio/entry.generated';\nimport {registerScrollArea} from './scroll-area/entry.generated';\nimport {registerSelect} from './select/entry.generated';\nimport {registerSidebar} from './sidebar/entry.generated';\nimport {registerSlider} from './slider/entry.generated';\nimport {registerSwitch} from './switch/entry.generated';\nimport {registerTabs} from './tabs/entry.generated';\nimport {registerToast} from './toast/entry.generated';\nimport {registerDataGrid} from './data-grid/entry.generated';\nimport {registerVirtualizer} from './virtualizer/entry.generated';\nimport {registerTable} from './table/entry.generated';\nimport {registerMotionCapability} from '../capabilities/motion';\nimport {registerResizableCapability} from '../capabilities/resizable';\nimport {registerSortableCapability} from '../capabilities/sortable';\n\ntype ComponentsPlugin = (AlpineInstance: AlpineType) => void;\nconst registered = new WeakSet<AlpineType>();\n\nconst components: ComponentsPlugin = (AlpineInstance): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerSortableCapability(AlpineInstance);\n registerAccordion(AlpineInstance);\n registerButton();\n registerCheckbox(AlpineInstance);\n registerDatePicker(AlpineInstance);\n registerDirectUpload(AlpineInstance);\n registerDropdown(AlpineInstance);\n registerField(AlpineInstance);\n registerFileUpload(AlpineInstance);\n registerInput(AlpineInstance);\n registerModal(AlpineInstance);\n registerPanels(AlpineInstance);\n registerRadio(AlpineInstance);\n registerScrollArea(AlpineInstance);\n registerSelect(AlpineInstance);\n registerSidebar(AlpineInstance);\n registerSlider(AlpineInstance);\n registerSwitch(AlpineInstance);\n registerTabs(AlpineInstance);\n registerToast(AlpineInstance);\n registerDataGrid(AlpineInstance);\n registerVirtualizer(AlpineInstance);\n registerTable(AlpineInstance);\n};\n\nexport {components};\nexport default components;\nexport type {ComponentsPlugin};\nexport * from './accordion/entry.generated';\nexport * from './button/entry.generated';\nexport * from './checkbox/entry.generated';\nexport * from './date-picker/entry.generated';\nexport * from './direct-upload/entry.generated';\nexport * from './dropdown/entry.generated';\nexport * from './field/entry.generated';\nexport * from './file-upload/entry.generated';\nexport * from './input/entry.generated';\nexport * from './modal/entry.generated';\nexport * from './panels/entry.generated';\nexport * from './radio/entry.generated';\nexport * from './scroll-area/entry.generated';\nexport * from './select/entry.generated';\nexport * from './sidebar/entry.generated';\nexport * from './slider/entry.generated';\nexport * from './switch/entry.generated';\nexport * from './tabs/entry.generated';\nexport * from './toast/entry.generated';\nexport * from './data-grid/entry.generated';\nexport * from './virtualizer/entry.generated';\nexport * from './table/entry.generated';\nexport * from '../capabilities/motion';\nexport * from '../capabilities/resizable';\nexport * from '../capabilities/sortable';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../client/src/components/entry.generated.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerAccordion} from './accordion/entry.generated';\nimport {registerButton} from './button/entry.generated';\nimport {registerCheckbox} from './checkbox/entry.generated';\nimport {registerDatePicker} from './date-picker/entry.generated';\nimport {registerDirectUpload} from './direct-upload/entry.generated';\nimport {registerDropdown} from './dropdown/entry.generated';\nimport {registerField} from './field/entry.generated';\nimport {registerFileUpload} from './file-upload/entry.generated';\nimport {registerInput} from './input/entry.generated';\nimport {registerKeybinding} from './keybinding/entry.generated';\nimport {registerModal} from './modal/entry.generated';\nimport {registerPanels} from './panels/entry.generated';\nimport {registerRadio} from './radio/entry.generated';\nimport {registerScrollArea} from './scroll-area/entry.generated';\nimport {registerSelect} from './select/entry.generated';\nimport {registerSidebar} from './sidebar/entry.generated';\nimport {registerSlider} from './slider/entry.generated';\nimport {registerSwitch} from './switch/entry.generated';\nimport {registerTabs} from './tabs/entry.generated';\nimport {registerToast} from './toast/entry.generated';\nimport {registerTooltip} from './tooltip/entry.generated';\nimport {registerDataGrid} from './data-grid/entry.generated';\nimport {registerVirtualizer} from './virtualizer/entry.generated';\nimport {registerTable} from './table/entry.generated';\nimport {registerMotionCapability} from '../capabilities/motion';\nimport {registerResizableCapability} from '../capabilities/resizable';\nimport {registerSortableCapability} from '../capabilities/sortable';\nimport {registerShortcutCapability} from '../capabilities/shortcut';\n\ntype ComponentsPlugin = (AlpineInstance: AlpineType) => void;\nconst registered = new WeakSet<AlpineType>();\n\nconst components: ComponentsPlugin = (AlpineInstance): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerSortableCapability(AlpineInstance);\n registerShortcutCapability(AlpineInstance);\n registerAccordion(AlpineInstance);\n registerButton();\n registerCheckbox(AlpineInstance);\n registerDatePicker(AlpineInstance);\n registerDirectUpload(AlpineInstance);\n registerDropdown(AlpineInstance);\n registerField(AlpineInstance);\n registerFileUpload(AlpineInstance);\n registerInput(AlpineInstance);\n registerKeybinding(AlpineInstance);\n registerModal(AlpineInstance);\n registerPanels(AlpineInstance);\n registerRadio(AlpineInstance);\n registerScrollArea(AlpineInstance);\n registerSelect(AlpineInstance);\n registerSidebar(AlpineInstance);\n registerSlider(AlpineInstance);\n registerSwitch(AlpineInstance);\n registerTabs(AlpineInstance);\n registerToast(AlpineInstance);\n registerTooltip(AlpineInstance);\n registerDataGrid(AlpineInstance);\n registerVirtualizer(AlpineInstance);\n registerTable(AlpineInstance);\n};\n\nexport {components};\nexport default components;\nexport type {ComponentsPlugin};\nexport * from './accordion/entry.generated';\nexport * from './button/entry.generated';\nexport * from './checkbox/entry.generated';\nexport * from './date-picker/entry.generated';\nexport * from './direct-upload/entry.generated';\nexport * from './dropdown/entry.generated';\nexport * from './field/entry.generated';\nexport * from './file-upload/entry.generated';\nexport * from './input/entry.generated';\nexport * from './keybinding/entry.generated';\nexport * from './modal/entry.generated';\nexport * from './panels/entry.generated';\nexport * from './radio/entry.generated';\nexport * from './scroll-area/entry.generated';\nexport * from './select/entry.generated';\nexport * from './sidebar/entry.generated';\nexport * from './slider/entry.generated';\nexport * from './switch/entry.generated';\nexport * from './tabs/entry.generated';\nexport * from './toast/entry.generated';\nexport * from './tooltip/entry.generated';\nexport * from './data-grid/entry.generated';\nexport * from './virtualizer/entry.generated';\nexport * from './table/entry.generated';\nexport * from '../capabilities/motion';\nexport * from '../capabilities/resizable';\nexport * from '../capabilities/sortable';\nexport * from '../capabilities/shortcut';\n"],"mappings":"4rEAiCA,IAAM,EAAa,IAAI,QAEjB,EAAgC,GAAyB,CACvD,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAC7B,EAAyB,CAAc,EACvC,EAA4B,CAAc,EAC1C,EAA2B,CAAc,EACzC,EAA2B,CAAc,EACzC,EAAkB,CAAc,EAChC,EAAe,EACf,EAAiB,CAAc,EAC/B,EAAmB,CAAc,EACjC,EAAqB,CAAc,EACnC,EAAiB,CAAc,EAC/B,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAc,CAAc,EAC5B,EAAe,CAAc,EAC7B,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAe,CAAc,EAC7B,EAAgB,CAAc,EAC9B,EAAe,CAAc,EAC7B,EAAe,CAAc,EAC7B,EAAa,CAAc,EAC3B,EAAc,CAAc,EAC5B,EAAgB,CAAc,EAC9B,EAAiB,CAAc,EAC/B,EAAoB,CAAc,EAClC,EAAc,CAAc,EAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-CEGLKsEl.js";export{e as UiInput,t as default,t as registerInput};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"../chunks/controller-DsXbNzqk.js";import{t}from"../chunks/entry.generated-jP0UEZIS.js";export{e as createKeybindingController,t as default,t as registerKeybinding};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-BZXp8Edl.js";export{e as UiModal,t as UiModalTrigger,n as default,n as registerModal};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-xjDWyE7q.js";export{e as UiRadio,t as UiRadioGroup,n as default,n as registerRadio};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-vM-5KVaL.js";export{e as UiSelect,t as default,t as registerSelect};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"../chunks/entry.generated-
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"../chunks/entry.generated-Dd04OzRH.js";export{t as UiSidebar,n as UiSidebarEdge,e as UiSidebarToggle,r as default,r as registerSidebar};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/
|
|
1
|
+
import{n as e,t}from"../chunks/entry2.generated-e3bTOzUi.js";export{e as UiSlider,t as default,t as registerSlider};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-Gl6wz0Oh.js";export{e as UiSwitch,t as default,t as registerSwitch};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-CtoSPDoI.js";export{e as UiTabs,t as default,t as registerTabs};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-B74OtpL2.js";export{e as UiTooltip,n as default,n as registerTooltip,t as registerTooltipDirective};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as
|
|
1
|
+
import{n as ee}from"./chunks/bridge-B4S_D6hV.js";import{t as e}from"./chunks/motion-BhADgUVd.js";import{n as t,r as te,t as ne}from"./chunks/entry.generated-DJMDdEtO.js";import{i as re}from"./chunks/ui-egQWc4ws.js";import{t as n}from"./chunks/capability-motion-C_8mc71v.js";import{a as r,c as i,f as a,l as o,n as s,o as c,s as l}from"./chunks/codecs-Cb1ns_47.js";import{i as u,r as d,t as f}from"./chunks/alpine-machine-BS13dbK4.js";import{t as p}from"./chunks/alpine-data-CytyCyfk.js";import{i as m,n as h,r as g,t as _}from"./chunks/core-Bmzg6DLB.js";import{n as v,t as y}from"./chunks/styles-TfvwVPGw.js";import{t as b}from"./chunks/merge-bindings-C8ewA_FD.js";import{t as x}from"./chunks/machine-Dqut4h89.js";import{n as S,t as C}from"./chunks/entry.generated-vM-5KVaL.js";import{t as w}from"./chunks/drag-and-drop-DHq3udf7.js";import{i as T,n as E,r as D,t as O}from"./chunks/capability-sortable-aY5GWxrK.js";import{n as k,t as A}from"./chunks/entry.generated-CYHiRVjx.js";import{n as j,t as M}from"./chunks/entry.generated-C-lyYGbo.js";import{n as N,r as P,t as F}from"./chunks/entry.generated-D0Av2Aiw.js";import{n as I,t as L}from"./chunks/entry.generated-BbQ_TNRI.js";import{n as R,t as z}from"./chunks/entry.generated-B_xTkYSB.js";import{n as B,t as V}from"./chunks/entry.generated-DSyiRko7.js";import{n as H,t as U}from"./chunks/entry.generated-BwAge51I.js";import{n as W,t as G}from"./chunks/entry.generated-DNtvOM3X.js";import{n as K,t as q}from"./chunks/entry.generated-CEGLKsEl.js";import{a as J,i as Y,n as X,o as ie,r as ae,t as oe}from"./chunks/capability-shortcut-Br_XBf7u.js";import{t as se}from"./chunks/controller-DsXbNzqk.js";import{t as ce}from"./chunks/entry.generated-jP0UEZIS.js";import{n as Z,r as le,t as ue}from"./chunks/entry.generated-BZXp8Edl.js";import{t as de}from"./chunks/capability-resizable-Bga8TngJ.js";import{n as fe,r as pe,t as me}from"./chunks/entry.generated-C1JdfrdC.js";import{n as he,r as ge,t as _e}from"./chunks/entry.generated-xjDWyE7q.js";import{n as ve,t as ye}from"./chunks/entry.generated-CPbvsglm.js";import{i as be,n as xe,r as Se,t as Ce}from"./chunks/entry.generated-Dd04OzRH.js";import{n as we,t as Te}from"./chunks/entry2.generated-e3bTOzUi.js";import{n as Ee,t as De}from"./chunks/entry.generated-Gl6wz0Oh.js";import{n as Oe,t as ke}from"./chunks/entry.generated-CtoSPDoI.js";import{n as Ae,r as je,t as Me}from"./chunks/entry.generated-B74OtpL2.js";import{n as Ne,t as Pe}from"./chunks/entry.generated-Ck7bhyzz.js";import{n as Fe,t as Ie}from"./chunks/entry.generated-B2rTvkxi.js";import{_ as Le,a as Re,b as ze,c as Be,d as Ve,f as He,g as Ue,h as We,i as Ge,l as Ke,m as qe,n as Je,o as Ye,p as Xe,r as Ze,s as Qe,t as $e,u as et,v as tt,x as nt,y as rt}from"./chunks/entry.generated-QspMEPHx.js";import{components as Q}from"./components/index.js";var it=`trellis:core.trellis:motion.trellis:resizable.trellis:sortable.trellis:shortcut.trellis:accordion.trellis:button.trellis:checkbox.trellis:date-picker.trellis:direct-upload.trellis:dropdown.trellis:field.trellis:file-upload.trellis:input.trellis:keybinding.trellis:modal.trellis:panels.trellis:radio.trellis:scroll-area.trellis:select.trellis:sidebar.trellis:slider.trellis:switch.trellis:tabs.trellis:toast.trellis:tooltip.trellis:data-grid.trellis:virtualizer.trellis:table`.split(`.`),$=e=>{_(e),Q(e),ee(it,e)};export{Je as TABLE_ALIGNS,Ze as TABLE_BORDERS,Ge as TABLE_COLUMN_SCOPES,Re as TABLE_DENSITIES,Ye as TABLE_FILTER_AS_VALUES,Qe as TABLE_LAYOUTS,Be as TABLE_ROW_HEADER_SCOPES,Ke as TABLE_SORTS,et as TABLE_VALIGNS,Ve as TABLE_VARIANTS,He as TABLE_WIDTHS,k as UiAccordion,N as UiCheckbox,P as UiCheckboxGroup,Ne as UiDataGrid,I as UiDatePicker,R as UiDirectUpload,B as UiDropdown,H as UiField,W as UiFileUpload,K as UiInput,Z as UiModal,le as UiModalTrigger,fe as UiPanelToggle,pe as UiPanels,he as UiRadio,ge as UiRadioGroup,ve as UiScrollArea,S as UiSelect,xe as UiSidebar,Se as UiSidebarEdge,be as UiSidebarToggle,we as UiSlider,Ee as UiSwitch,Oe as UiTabs,t as UiToast,te as UiToastOutlet,Ae as UiTooltip,Fe as UiVirtualizer,s as bool,Q as components,_ as coreRuntime,f as createAlpineMachine,se as createKeybindingController,x as createMachine,w as createResizable,oe as createShortcutMatcher,D as createSortableRegistry,d as createTransitionCoordinator,r as decodeProps,$ as default,$ as trellisUi,p as defineAlpineData,u as defineHook,g as defineManifest,c as defineProps,y as defineStyles,X as formatShortcut,ae as formatShortcutKeys,l as json,b as mergeBindings,e as motion,i as number,Y as observePressedShortcutKeys,o as oneOf,J as parseShortcut,m as propsFromSchema,A as registerAccordion,M as registerButton,F as registerCheckbox,Pe as registerDataGrid,L as registerDatePicker,z as registerDirectUpload,V as registerDropdown,U as registerField,G as registerFileUpload,q as registerInput,ce as registerKeybinding,ue as registerModal,n as registerMotionCapability,me as registerPanels,_e as registerRadio,de as registerResizableCapability,ye as registerScrollArea,C as registerSelect,ie as registerShortcutCapability,Ce as registerSidebar,Te as registerSlider,O as registerSortableCapability,E as registerSortableDirective,De as registerSwitch,$e as registerTable,ke as registerTabs,ne as registerToast,Me as registerTooltip,je as registerTooltipDirective,h as registerTransitionDirective,Ie as registerVirtualizer,v as resolveStyle,T as sortable,a as string,Xe as tableCaptionSchema,qe as tableCellSchema,We as tableColumnFilterSchema,Ue as tableColumnSchema,Le as tableEmptySchema,tt as tableRowHeaderSchema,rt as tableRowSchema,ze as tableSchema,nt as tableSectionSchema,re as ui,j as unregisterButton};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../client/src/assets/full-runtime.generated.ts","../../../../../../../client/src/index.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nconst fullRuntimeAssetIds = [\n 'trellis:core',\n 'trellis:motion',\n 'trellis:resizable',\n 'trellis:sortable',\n 'trellis:accordion',\n 'trellis:button',\n 'trellis:checkbox',\n 'trellis:date-picker',\n 'trellis:direct-upload',\n 'trellis:dropdown',\n 'trellis:field',\n 'trellis:file-upload',\n 'trellis:input',\n 'trellis:modal',\n 'trellis:panels',\n 'trellis:radio',\n 'trellis:scroll-area',\n 'trellis:select',\n 'trellis:sidebar',\n 'trellis:slider',\n 'trellis:switch',\n 'trellis:tabs',\n 'trellis:toast',\n 'trellis:data-grid',\n 'trellis:virtualizer',\n 'trellis:table',\n] as const;\n\nexport {fullRuntimeAssetIds};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {markAssetsRegistered} from './assets/bridge';\nimport {fullRuntimeAssetIds} from './assets/full-runtime.generated';\nimport components from './components/entry.generated';\nimport coreRuntime from './core';\n\ntype TrellisUIPlugin = (AlpineInstance: AlpineType) => void;\n\nconst trellisUi: TrellisUIPlugin = (AlpineInstance): void => {\n coreRuntime(AlpineInstance);\n components(AlpineInstance);\n markAssetsRegistered(fullRuntimeAssetIds, AlpineInstance);\n};\n\nexport {trellisUi};\nexport default trellisUi;\nexport type {TrellisUIPlugin};\nexport * from './core';\nexport * from './components/entry.generated';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../client/src/assets/full-runtime.generated.ts","../../../../../../../client/src/index.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nconst fullRuntimeAssetIds = [\n 'trellis:core',\n 'trellis:motion',\n 'trellis:resizable',\n 'trellis:sortable',\n 'trellis:shortcut',\n 'trellis:accordion',\n 'trellis:button',\n 'trellis:checkbox',\n 'trellis:date-picker',\n 'trellis:direct-upload',\n 'trellis:dropdown',\n 'trellis:field',\n 'trellis:file-upload',\n 'trellis:input',\n 'trellis:keybinding',\n 'trellis:modal',\n 'trellis:panels',\n 'trellis:radio',\n 'trellis:scroll-area',\n 'trellis:select',\n 'trellis:sidebar',\n 'trellis:slider',\n 'trellis:switch',\n 'trellis:tabs',\n 'trellis:toast',\n 'trellis:tooltip',\n 'trellis:data-grid',\n 'trellis:virtualizer',\n 'trellis:table',\n] as const;\n\nexport {fullRuntimeAssetIds};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {markAssetsRegistered} from './assets/bridge';\nimport {fullRuntimeAssetIds} from './assets/full-runtime.generated';\nimport components from './components/entry.generated';\nimport coreRuntime from './core';\n\ntype TrellisUIPlugin = (AlpineInstance: AlpineType) => void;\n\nconst trellisUi: TrellisUIPlugin = (AlpineInstance): void => {\n coreRuntime(AlpineInstance);\n components(AlpineInstance);\n markAssetsRegistered(fullRuntimeAssetIds, AlpineInstance);\n};\n\nexport {trellisUi};\nexport default trellisUi;\nexport type {TrellisUIPlugin};\nexport * from './core';\nexport * from './components/entry.generated';\n"],"mappings":"8vFAEA,IAAM,GAAsB,seA8B5B,ECvBM,EAA8B,GAAyB,CACzD,EAAY,CAAc,EAC1B,EAAW,CAAc,EACzB,GAAqB,GAAqB,CAAc,CAC5D"}
|