diff options
Diffstat (limited to '8381.75348cec9fbdb1d0296e.js.map')
-rw-r--r-- | 8381.75348cec9fbdb1d0296e.js.map | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/8381.75348cec9fbdb1d0296e.js.map b/8381.75348cec9fbdb1d0296e.js.map deleted file mode 100644 index 08938cf..0000000 --- a/8381.75348cec9fbdb1d0296e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"8381.75348cec9fbdb1d0296e.js","mappings":"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","sources":["webpack:///./src/Common/input.module.css?8347","webpack:///./src/Common/Input.js","webpack:///./src/Keyboard/Behaviors/BehaviorHeader.js","webpack:///./src/Keyboard/Behaviors/styles.module.css?4611","webpack:///./src/Keyboard/Behaviors/PropertyName.js","webpack:///./src/Keyboard/Behaviors/PropertyValue/styles.module.css?9c7d","webpack:///./src/Keyboard/Behaviors/PropertyValue/simple-types.js","webpack:///./src/ValuePicker/ChoicesPicker.js","webpack:///./src/Keyboard/Behaviors/PropertyValue/collection-types.js","webpack:///./src/Keyboard/Behaviors/PropertyValue/BehaviorsPropertyValue.js","webpack:///./src/Keyboard/Behaviors/PropertyValue/BindingsPropertyValue.js","webpack:///./src/Keyboard/Behaviors/PropertyValue/PropertyValue.js","webpack:///./src/Keyboard/Behaviors/PropertyValue/index.js","webpack:///./src/Keyboard/Behaviors/BehaviorEditor.js","webpack:///./src/Keyboard/Behaviors/BetaNoticeDialog.js","webpack:///./src/Keyboard/Behaviors/NewBehaviorModal.js","webpack:///./src/Keyboard/Behaviors/create-behavior.js","webpack:///./src/Keyboard/Behaviors/Behaviors.js","webpack:///./src/Keyboard/Common/Devicetree/nodePropTypes.js","webpack:///./src/Keyboard/Common/Devicetree/NodeIdentifiers.js","webpack:///./src/reducer-util.js","webpack:///./src/Common/input.module.css","webpack:///./src/Keyboard/Behaviors/PropertyValue/styles.module.css","webpack:///./src/Keyboard/Behaviors/styles.module.css"],"sourcesContent":["\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./input.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./input.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import PropTypes from 'prop-types'\nimport styles from './input.module.css'\n\nexport default function Input ({ validator, required = false, value = '', ...rest }) {\n const error = validator(value) || (!value && required && 'cannot be empty')\n\n return (\n <span className={styles.wrapper}>\n <input type=\"text\" value={value} {...rest} />\n {error && <span className={styles.error}>{error}</span>}\n </span>\n )\n}\n\nInput.propTypes = {\n value: PropTypes.any.isRequired,\n required: PropTypes.bool,\n validator: PropTypes.func\n}\n","import NodeIdentifiers from '../Common/Devicetree/NodeIdentifiers'\n\nexport default function BehaviorHeader (props) {\n const { node } = props\n\n return (\n <div>\n <p><code>{node.properties.compatible.parsed}</code></p>\n <NodeIdentifiers {...props} />\n </div>\n )\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import styles from './styles.module.css'\n\nexport default function PropertyName ({ property, schema, required = false }) {\n return (\n <>\n <span className={styles.propertyName} title={property}>\n {property}\n {required && <span className={styles.requiredIndicator}>*</span>}\n </span>\n {schema.deprecatedBy && (\n <sub className={styles.propertyDeprecation}>\n (deprecated)\n </sub>\n )}\n </>\n )\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import Icon from '../../../Common/Icon'\nimport styles from './styles.module.css'\n\nexport function RawPropertyValue ({ prop, schema, onUpdate }) {\n return (\n <>\n <Icon name=\"code\" title=\"Raw property value\" /> <input\n required={schema?.required}\n value={prop?.raw}\n onChange={e => onUpdate({\n ...prop,\n raw: e.target.value,\n useRaw: true\n })}\n />\n </>\n )\n}\n\nexport function ConstPropertyValue ({ schema }) {\n return (\n <span className={[\n styles.propertyValue,\n styles.readonly\n ].join(' ')}>\n {schema.const}\n </span>\n )\n}\n\nexport function StringPropertyValue ({ prop, schema, onUpdate }) {\n return (\n <input\n type=\"text\"\n className={styles.propertyValue}\n value={prop?.parsed ?? ''}\n placeholder={schema.default && `Default: ${schema.default}`}\n onChange={e => {\n onUpdate({\n ...prop,\n parsed: e.target.value,\n useRaw: false\n })\n }}\n />\n )\n}\n\nexport function IntegerPropertyValue ({ prop, schema, onUpdate }) {\n return (\n <input\n type=\"number\"\n className={styles.propertyValue}\n value={prop?.parsed ?? ''}\n placeholder={schema.default && `Default: ${schema.default}`}\n onChange={e => {\n onUpdate({\n ...prop,\n parsed: Number(e.target.value),\n useRaw: false\n })\n }}\n />\n )\n}\n\nexport function BooleanPropertyValue ({ prop, onUpdate }) {\n return (\n <input\n type=\"checkbox\"\n className={styles.propertyValue}\n checked={prop?.parsed || false}\n onChange={e => {\n onUpdate({\n parsed: !!e.target.checked,\n useRaw: false\n })\n }}\n />\n )\n}\n","import fuzzysort from 'fuzzysort'\nimport PropTypes from 'prop-types'\nimport { useCallback, useMemo } from 'react'\n\nimport ResultList from './ResultList'\nimport SearchFilter from './SearchFilter'\nimport style from './style.module.css'\n\nfunction ChoicesPicker (props) {\n const { choices, prompt, onSelect } = props\n const formattedChoices = useMemo(() => {\n return choices.map(value => ({ value }))\n }, [choices])\n\n const renderSearchResult = useCallback(result => {\n const title = result.search\n ? (\n <span>\n {fuzzysort.highlight(result.search, (v, i) => (\n <b key={i}>{v}</b>\n ))}\n </span>\n )\n : (\n <span>\n {result.value}\n </span>\n )\n\n return (\n <>\n {title}\n {result.description && <p className={style.description}>{result.description}</p>}\n </>\n )\n }, [])\n\n return (\n <div className={style.dialog}>\n <p>{prompt || 'Select'}</p>\n <SearchFilter\n choices={formattedChoices}\n initialQuery=\"\"\n searchKey=\"value\"\n renderResults={results => results && (\n <ResultList\n results={results}\n onSelect={choice => onSelect(choice.value)}\n renderResult={renderSearchResult}\n />\n )}\n />\n </div>\n )\n}\n\nChoicesPicker.propTypes = {\n choices: PropTypes.arrayOf(PropTypes.stirng).isRequired,\n prompt: PropTypes.string,\n onSelect: PropTypes.func.isRequired\n}\n\nexport default ChoicesPicker\n","import map from 'lodash/map'\nimport { useCallback, useContext, useMemo, useState } from 'react'\nimport ActionButton from '../../../Common/ActionButton'\nimport Icon from '../../../Common/Icon'\nimport Modal from '../../../Common/Modal'\n\nimport { DefinitionsContext } from '../../../Contexts/Definitions'\nimport ChoicesPicker from '../../../ValuePicker/ChoicesPicker'\n\nimport styles from './styles.module.css'\n\nfunction useSchemaChoices (schema) {\n const definitions = useContext(DefinitionsContext)\n return useMemo(() => {\n if (!schema.choices) {\n return []\n }\n\n if (Array.isArray(schema.choices)) {\n return schema.choices\n }\n\n if (!schema.choices.$source) {\n throw new Error('Expected schema.choices.$source')\n }\n\n const source = definitions[schema.choices.$source]\n if (schema.choices.$key) {\n return map(source, schema.choices.$key)\n }\n\n return source\n }, [definitions, schema.choices])\n}\n\nexport function EnumPropertyValue ({ prop = {}, schema, onUpdate }) {\n const choices = schema.enum\n const value = prop.parsed\n const handleChange = useCallback(event => {\n onUpdate({\n ...prop,\n parsed: choices[event.target.value],\n useRaw: false\n })\n }, [prop, choices, onUpdate])\n\n return (\n <select className={styles.propertyValue} onChange={handleChange} value={choices.indexOf(value)}>\n {choices.map((name, i) => (\n <option key={i} value={i}>{name}</option>\n ))}\n </select>\n )\n}\n\nexport function MultiSelectPropertyValue ({ prop = {}, schema, onUpdate }) {\n const choices = useSchemaChoices(schema)\n const { parsed: selected = [] } = prop\n const handleChange = useCallback(selected => {\n onUpdate({ ...prop, useRaw: false, parsed: selected })\n }, [prop, onUpdate])\n\n const MultiSelect = choices.length > 20\n ? MultiSelectChips\n : MultiSelectCheckboxes\n\n return (\n <MultiSelect\n selected={selected}\n choices={choices}\n onUpdate={handleChange}\n />\n )\n}\n\nfunction MultiSelectCheckboxes ({ selected, choices, onUpdate }) {\n const handleChange = useCallback(choice => {\n onUpdate(\n selected.includes(choice)\n ? selected.filter(v => v !== choice)\n : [...selected, choice]\n )\n }, [selected, onUpdate])\n\n return (\n <ol className={styles.propertyMultiSelect}>\n {choices.map((choice, i) => (\n <li key={i}>\n <label>\n <input\n type=\"checkbox\"\n checked={selected.includes(choice)}\n onChange={e => handleChange(choice)}\n />\n {choice}\n </label>\n </li>\n ))}\n </ol>\n )\n}\n\nfunction MultiSelectChips ({ selected, choices, onUpdate }) {\n const [adding, setAdding] = useState(false)\n const addChoice = useCallback(choice => {\n onUpdate([...selected, choice])\n setAdding(false)\n }, [setAdding, selected, onUpdate])\n const remove = useCallback(choice => {\n onUpdate(selected.filter(value => value !== choice))\n }, [selected, onUpdate])\n\n // TODO: make these CSS classes more generic if I want to share them between\n // unrelated components. (or refactor the elements themselves)\n return (\n <>\n <ul className={styles.propertyMultiSelectChips}>\n {selected.map((choice, i) => (\n <li key={i}>\n <span className={styles.behaviorBind}>\n {choice} {(\n <Icon\n name=\"times\"\n className={styles.phandleRemove}\n onClick={() => remove(choice)}\n />\n )}\n </span>\n </li>\n ))}\n </ul>\n <ActionButton secondary onClick={() => setAdding(true)}>\n <Icon name=\"plus\" /> Add\n </ActionButton>\n {adding && (\n <Modal onDismiss={() => setAdding(false)}>\n <ChoicesPicker\n choices={choices}\n onSelect={addChoice}\n />\n </Modal>\n )}\n </>\n )\n}\n","import compact from 'lodash/compact'\nimport { useCallback, useState } from 'react'\n\nimport Icon from '../../../Common/Icon'\nimport ValuePicker from '../../../ValuePicker'\nimport { replaceIndex, withoutIndex } from '../../../reducer-util'\n\nimport styles from './styles.module.css'\nimport ActionButton from '../../../Common/ActionButton'\n\nexport default function BehaviorssPropertyValue ({ prop = {}, schema = {}, onUpdate }) {\n const { parsed: selection = [] } = prop\n const { length } = schema\n const [editing, setEditing] = useState(null)\n\n const canAddMore = (\n length === undefined || (length && selection.length < length)\n )\n\n const insertPhandle = useCallback(() => {\n onUpdate({\n ...prop,\n useRaw: false,\n parsed: [...selection, '']\n })\n\n setEditing(selection.length)\n }, [prop, selection, onUpdate, setEditing])\n\n const updatePhandle = useCallback(result => {\n onUpdate({\n ...prop,\n useRaw: false,\n parsed: replaceIndex(selection, editing, result.code)\n })\n\n setEditing(null)\n }, [prop, selection, editing, onUpdate])\n\n const removePhandle = useCallback(index => {\n onUpdate({\n ...prop,\n useRaw: false,\n parsed: withoutIndex(selection, index)\n })\n }, [prop, selection, onUpdate])\n\n return (\n <div>\n <ol className={compact([\n styles.propertyPhandleSelect,\n length === 1 && styles.propertyPhandleSingleton\n ]).join(' ')}>\n {selection.map((phandle, i) => (\n <li key={i}>\n <span\n className={styles.behaviorBind}\n onClick={() => setEditing(i)}\n >\n {phandle}\n {length !== 1 && (\n <Icon\n name=\"times\"\n className={styles.phandleRemove}\n onClick={event => {\n event.stopPropagation()\n removePhandle(i)\n }}\n />\n )}\n </span>\n </li>\n ))}\n </ol>\n {editing !== null && (\n <ValuePicker\n node={{ value: selection[editing], params: [], slot: 'behaviour' }}\n type=\"value\"\n context=\"none\"\n behaviour={{ code: selection[editing] }}\n prompt=\"Select Behavior\"\n searchKey=\"code\"\n onSelect={updatePhandle}\n onCancel={() => setEditing(null)}\n />\n )}\n {canAddMore && (\n <ActionButton secondary onClick={insertPhandle}>\n <Icon name=\"plus\" /> Add Behavior\n </ActionButton>\n )}\n </div>\n )\n}\n","import { useCallback } from 'react'\nimport ActionButton from '../../../Common/ActionButton'\nimport Icon from '../../../Common/Icon'\nimport { replaceIndex, withoutIndex } from '../../../reducer-util'\n\nimport Key from '../../Keys/Key'\nimport KeyWrapper from '../../Keys/KeyWrapper'\n\nimport styles from './styles.module.css'\n\nexport default function BindingsPropertyValue ({ prop = {}, onUpdate }) {\n const { parsed: selection = [] } = prop\n\n const insertBinding = useCallback(() => {\n onUpdate({\n ...prop,\n useRaw: false,\n parsed: [...selection, { value: '', params: [] }]\n })\n }, [prop, selection, onUpdate])\n\n const updateBinding = useCallback((binding, i) => {\n onUpdate({\n ...prop,\n useRaw: false,\n parsed: replaceIndex(selection, i, binding)\n })\n }, [prop, selection, onUpdate])\n\n const removeBinding = useCallback(index => {\n onUpdate({\n ...prop,\n useRaw: false,\n parsed: withoutIndex(selection, index)\n })\n }, [prop, selection, onUpdate])\n\n return (\n <>\n <ol className={styles.propertyBindingsValue}>\n {selection.map((binding, i) => (\n <li key={i}>\n <KeyWrapper>\n <Key\n context=\"none\"\n value={binding.value}\n params={binding.params}\n onUpdate={binding => updateBinding(binding, i)}\n />\n <div className={styles.actions}>\n <Icon\n name=\"trash\"\n className={styles.deleteBind}\n onClick={e => {\n e.stopPropagation()\n removeBinding(i)\n }}\n />\n </div>\n </KeyWrapper>\n </li>\n ))}\n </ol>\n <ActionButton secondary onClick={insertBinding}>\n <Icon name=\"plus\" /> Add binding\n </ActionButton>\n </>\n )\n}\n","import PropTypes from 'prop-types'\n\nimport KeyPositionSelector from '../../Common/KeyPositionSelector'\nimport {\n RawPropertyValue,\n ConstPropertyValue,\n StringPropertyValue,\n IntegerPropertyValue,\n BooleanPropertyValue\n} from './simple-types'\nimport {\n EnumPropertyValue,\n MultiSelectPropertyValue\n} from './collection-types'\nimport BehaviorsPropertyValue from './BehaviorsPropertyValue'\nimport BindingsPropertyValue from './BindingsPropertyValue'\n\nfunction PropertyValue (props) {\n const { schema = {} } = props\n const { type } = schema\n if ('const' in schema) {\n return <ConstPropertyValue {...props} />\n }\n\n if ('enum' in schema) {\n return <EnumPropertyValue {...props} />\n }\n\n if (schema.helper === 'key-position-picker') {\n const { prop = {}, onUpdate } = props\n return (\n <KeyPositionSelector\n value={prop.parsed || []}\n onUpdate={value => {\n onUpdate({\n ...prop,\n useRaw: false,\n parsed: value\n })\n }}\n />\n )\n }\n\n if (schema.choices) {\n return <MultiSelectPropertyValue {...props} />\n }\n\n switch (type) {\n case 'string':\n return <StringPropertyValue {...props} />\n case 'int':\n return <IntegerPropertyValue {...props} />\n case 'boolean':\n return <BooleanPropertyValue {...props} />\n case 'phandle':\n case 'phandles':\n return <BehaviorsPropertyValue {...props} />\n case 'phandle-array':\n return <BindingsPropertyValue {...props} />\n default:\n return <RawPropertyValue {...props} />\n }\n}\n\nPropertyValue.propTypes = {\n schema: PropTypes.shape({\n type: PropTypes.oneOf([\n 'string',\n 'boolean',\n 'int',\n 'array',\n 'phandle',\n 'phandles',\n 'phandle-array',\n\n 'integer-union'\n ]),\n required: PropTypes.bool,\n description: PropTypes.string,\n default: PropTypes.any,\n const: PropTypes.any,\n helper: PropTypes.any\n }),\n prop: PropTypes.shape({\n parsed: PropTypes.any,\n raw: PropTypes.string\n }),\n onUpdate: PropTypes.func.isRequired\n}\n\nexport default PropertyValue\n","import PropertyValue from './PropertyValue'\n\nexport default PropertyValue\n","import cloneDeep from 'lodash/cloneDeep'\nimport omit from 'lodash/omit'\nimport { useCallback, useContext, useState } from 'react'\n\nimport ActionButton from '../../Common/ActionButton'\nimport DialogBox from '../../Common/DialogBox'\nimport Icon from '../../Common/Icon'\nimport Modal from '../../Common/Modal'\nimport { DefinitionsContext } from '../../Contexts/Definitions'\nimport BehaviorHeader from './BehaviorHeader'\nimport PropertyName from './PropertyName'\nimport PropertyValue from './PropertyValue'\nimport styles from './styles.module.css'\n\nfunction BehaviorEditor ({ node, onUpdate, onCancel }) {\n const { behaviors: schemas } = useContext(DefinitionsContext)\n const [pendingChanges, setPendingChanges] = useState(node)\n const schema = schemas[node.properties.compatible?.parsed]\n\n const handlePropNameChange = prop => event => {\n setPendingChanges({\n ...pendingChanges,\n properties: Object.keys(pendingChanges.properties).reduce((acc, key) => {\n const value = pendingChanges.properties[key]\n if (key === prop) {\n key = event.target.value\n }\n\n acc[key] = value\n return acc\n }, {})\n })\n }\n\n const handlePropValueChange = name => value => {\n setPendingChanges({\n ...pendingChanges,\n properties: {\n ...pendingChanges.properties,\n [name]: value\n }\n })\n }\n\n const handleDeleteProp = name => {\n setPendingChanges({\n ...pendingChanges,\n properties: omit(pendingChanges.properties, name)\n })\n }\n\n const confirm = useCallback(() => {\n onUpdate(cloneDeep(pendingChanges))\n }, [pendingChanges, onUpdate])\n\n const schemaProps = schema?.properties || {}\n const propertiesList = (\n schema\n ? Object.keys(schemaProps)\n : Object.keys(pendingChanges.properties)\n ).filter(property => {\n return property !== 'label' && (\n !schemaProps[property]?.deprecatedBy ||\n !!pendingChanges.properties[property]\n )\n })\n\n const propDeprecationMapping = Object.keys(schemaProps).reduce((map, name) => {\n const { deprecatedBy: otherProp } = schemaProps[name]\n if (otherProp) {\n map[otherProp] = name\n }\n return map\n }, {})\n\n const requiredPropertiesList = Object.keys(schemaProps).filter(name => {\n const { required, deprecatedBy } = schemaProps[name]\n const deprecatedProp = propDeprecationMapping[name]\n\n // Ignore this property's \"required\" flag if we currently have a value for\n // another property that either deprecates or is deprecated by this one.\n if ((deprecatedBy || deprecatedProp) in pendingChanges.properties) {\n return false\n }\n\n return required\n })\n\n const requiredPropsMissingValues = requiredPropertiesList.filter(name => (\n !pendingChanges.properties[name]\n ))\n\n return (\n <Modal onDismiss={onCancel}>\n <DialogBox dismissText={false}>\n <div style={{ maxHeight: '80vh', overflow: 'auto' }}>\n <h2>Edit {node.name} <code>(&{node.labels[0]})</code></h2>\n <BehaviorHeader\n node={pendingChanges}\n onUpdate={setPendingChanges}\n />\n\n <h3>Configuration</h3>\n <table className={styles.editorForm}>\n <thead>\n <tr>\n <th>Property</th>\n <th>Value</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {propertiesList.map((name, i) => (\n <tr key={i}>\n <td className={styles.propertyName}>\n {name in schemaProps\n ? (\n <PropertyName\n property={name}\n schema={schemaProps[name]}\n required={requiredPropertiesList.includes(name)}\n />\n )\n : (\n <input value={name} onChange={handlePropNameChange(name)} />\n )}\n </td>\n <td className={styles.propertyValue}>\n <PropertyValue\n name={name}\n prop={pendingChanges.properties[name]}\n schema={schemaProps[name]}\n onUpdate={handlePropValueChange(name)}\n />\n </td>\n <td>\n {(pendingChanges.properties[name] && !requiredPropertiesList.includes(name)) && (\n <Icon\n name=\"trash-can\"\n className={styles.action}\n onClick={() => handleDeleteProp(name)}\n />\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n {requiredPropertiesList.length > 0 && (\n <p>\n <em><span className={styles.requiredIndicator}>*</span>Property is required.</em>\n </p>\n )}\n <div style={{ textAlign: 'center' }}>\n <ActionButton disabled={requiredPropsMissingValues.length > 0} onClick={confirm}>Okay</ActionButton>\n <ActionButton onClick={onCancel} secondary>Cancel</ActionButton>\n </div>\n </div>\n </DialogBox>\n </Modal>\n )\n}\n\nexport default BehaviorEditor\n","import DialogBox from '../../Common/DialogBox'\nimport Link from '../../Common/Link'\nimport Modal from '../../Common/Modal'\n\nexport default function BetaNoticeDialog ({ onDismiss }) {\n const issuesLink = (\n <Link external href=\"https://github.com/nickcoutsos/keymap-editor/issues\">\n Keymap Editor Issues\n </Link>\n )\n\n return (\n <Modal onDismiss={onDismiss}>\n <DialogBox onDismiss={onDismiss} style={{ maxHeight: '80vh', overflow: 'scroll' }}>\n <h2>Behavior Editing Beta Test</h2>\n <p>Welcome to the behavior editing beta!</p>\n\n <p>\n This feature has been a long time coming, and while it should enable a\n lot of advanced ZMK features through the app it is still a work in\n progress. Some features are still missing so the use experience is a\n little rough, and there may be errors as well. Some familiarity with\n ZMK behavior functionality is expected.\n </p>\n\n <p>\n I've been using it for a while and it seems to be in a pretty workable\n state, but I can't catch everything, so it would mean a lot to me for\n you to share any feedback or issues on GitHub: {issuesLink}.\n </p>\n </DialogBox>\n </Modal>\n )\n}\n","import PropTypes from 'prop-types'\nimport { useMemo, useState } from 'react'\n\nimport { behaviorSchemas } from 'zmk-data/behaviors'\n\nimport ActionButton from '../../Common/ActionButton'\nimport { Select } from '../../Sources/Controls'\n\nimport DialogBox from '../../Common/DialogBox'\nimport Modal from '../../Common/Modal'\n\nconst knownBehaviorTypes = [\n 'zmk,behavior-hold-tap',\n 'zmk,behavior-mod-morph',\n 'zmk,behavior-tap-dance',\n 'zmk,behavior-sticky-key',\n 'zmk,behavior-caps-word',\n 'zmk,behavior-sensor-rotate',\n 'zmk,behavior-sensor-rotate-var'\n]\n\nconst options = knownBehaviorTypes.map(value => ({ value, label: behaviorSchemas[value].description }))\n\nfunction NewBehaviorModal ({ onUpdate, onCancel }) {\n const [pendingSelection, setPendingSelection] = useState('')\n const selected = useMemo(() => options.find(option => option.value === pendingSelection), [pendingSelection])\n\n return (\n <Modal>\n <DialogBox dismissText={null}>\n <h3>Add new behavior</h3>\n <label>\n <Select\n required\n placeholder=\"Select a behavior type\"\n value={selected}\n options={options}\n onChange={({ value }) => setPendingSelection(value)}\n formatOptionLabel={({ value, label }, { context }) => (\n <>\n <div>{label}</div>\n {context !== 'value' && <div style={{ opacity: '0.6' }}>(<em>{value}</em>)</div>}\n </>\n )}\n />\n </label>\n <div style={{ textAlign: 'center', margin: '10px' }}>\n <ActionButton\n disabled={!pendingSelection}\n onClick={() => onUpdate(pendingSelection)}\n >\n Create\n </ActionButton>\n <ActionButton onClick={onCancel} secondary>Cancel</ActionButton>\n </div>\n </DialogBox>\n </Modal>\n )\n}\n\nNewBehaviorModal.propTypes = {\n onUpdate: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired\n}\n\nexport default NewBehaviorModal\n","import times from 'lodash/times'\nimport { behaviorSchemas } from 'zmk-data/behaviors'\n\nfunction isBindingType (propSchema) {\n return ['phandle', 'phandles', 'phandle-array'].includes(propSchema.type)\n}\n\nexport function createBehavior (compatible, { name, labels, label }) {\n const schema = behaviorSchemas[compatible]\n return {\n name,\n labels,\n properties: {\n compatible: {\n raw: `\"${compatible}\"`,\n parsed: compatible\n },\n label: {\n raw: `\"${label}\"`,\n parsed: label\n },\n ...Object.keys(schema.properties).reduce((props, prop) => {\n const propSchema = schema.properties[prop]\n if (isBindingType(propSchema) && propSchema.length) {\n props[prop] = {\n parsed: times(propSchema.length, () => '&none')\n }\n } else if ('const' in propSchema) {\n props[prop] = {\n parsed: propSchema.const,\n // this isn't right but conveniently only affects #binding-cells\n // which is an integer and which we never need to use as a raw value\n raw: `<${propSchema.const.toString()}>`\n }\n }\n\n return props\n }, {})\n }\n }\n}\n","import { useCallback, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\n\nimport ActionButton from '../../Common/ActionButton'\nimport Icon from '../../Common/Icon'\nimport BehaviorEditor from './BehaviorEditor'\nimport BetaNoticeDialog from './BetaNoticeDialog'\nimport NewBehaviorModal from './NewBehaviorModal'\nimport styles from './styles.module.css'\nimport { createBehavior } from './create-behavior'\nimport {\n selectBehaviors,\n addBehavior,\n deleteBehavior,\n updateBehavior\n} from './behaviorsSlice'\n\nfunction Behaviors () {\n const experimentalSettings = useSelector(state => state.experimentalSettings)\n\n const [editing, setEditing] = useState(null)\n const [creating, setCreating] = useState(false)\n const [betaDisclaimerVisible, setBetaDisclaimerVisible] = useState(false)\n const behaviors = useSelector(selectBehaviors)\n const dispatch = useDispatch()\n\n const handleAdd = useCallback(() => {\n setCreating(true)\n }, [setCreating])\n\n const handleAddPending = useCallback(compatible => {\n setCreating(false)\n dispatch(addBehavior({\n behavior: createBehavior(compatible, {\n name: 'new_behavior',\n labels: ['new_behavior'],\n label: 'NEW_BEHAVIOR'\n })\n }))\n\n setTimeout(() => setEditing(behaviors.length))\n }, [behaviors, dispatch, setCreating, setEditing])\n\n const handleEdit = useCallback(index => {\n setEditing(index)\n }, [setEditing])\n\n const handleDelete = useCallback((index) => {\n dispatch(deleteBehavior({ behaviorIndex: index }))\n }, [dispatch])\n\n const showBetaDialog = useCallback(event => {\n event.stopPropagation()\n setBetaDisclaimerVisible(true)\n }, [setBetaDisclaimerVisible])\n\n const hideBetaDialog = useCallback(() => {\n setBetaDisclaimerVisible(false)\n }, [setBetaDisclaimerVisible])\n\n const toggleBeta = useCallback(enableBehaviorEditing => {\n dispatch({\n type: 'SETTINGS_UPDATE',\n settings: {\n ...experimentalSettings,\n enableBehaviorEditing\n }\n })\n }, [experimentalSettings, dispatch])\n\n return (\n <div className={styles.main}>\n\n {creating && (\n <NewBehaviorModal\n onUpdate={handleAddPending}\n onCancel={() => setCreating(false)}\n />\n )}\n\n {editing !== null && (\n <BehaviorEditor\n node={behaviors[editing]}\n onCancel={() => setEditing(null)}\n onUpdate={behavior => {\n setEditing(null)\n dispatch(updateBehavior({\n behaviorIndex: editing,\n behavior\n }))\n }}\n />\n )}\n\n {betaDisclaimerVisible && (\n <BetaNoticeDialog onDismiss={hideBetaDialog} />\n )}\n\n <div className={styles.panel}>\n <label>\n Enable Beta\n <input\n type=\"checkbox\"\n checked={experimentalSettings.enableBehaviorEditing}\n onChange={e => toggleBeta(e.target.checked)}\n />\n </label>\n\n <ActionButton onClick={showBetaDialog} style={{ backgroundColor: 'orange' }}>\n <Icon name=\"warning\" /> Details\n </ActionButton>\n\n <h3>Custom Behaviors</h3>\n <table style={{ width: '100%' }}>\n <thead>\n <tr>\n <th>Binding</th>\n <th>Compatible</th>\n <th>Actions</th>\n </tr>\n </thead>\n <tbody>\n {behaviors.map((behavior, i) => (\n <tr key={i}>\n <td><code>&{behavior.labels[0]}</code></td>\n <td>{behavior.properties.compatible.raw}</td>\n <td>\n {experimentalSettings.enableBehaviorEditing && (\n <>\n <Icon className={styles.action} onClick={() => handleEdit(i)} name=\"wrench\" />\n <Icon className={styles.action} onClick={() => handleDelete(i)} name=\"trash-can\" />\n </>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n\n <ActionButton onClick={handleAdd}>\n Add New Behavior\n </ActionButton>\n </div>\n </div>\n )\n}\n\nexport default Behaviors\n","import PropTypes from 'prop-types'\n\nexport const propValueShape = {\n useRaw: PropTypes.bool,\n raw: PropTypes.string,\n parsed: PropTypes.any\n}\n\nexport const devicetreeNodeShape = {\n name: PropTypes.string.isRequired,\n labels: PropTypes.arrayOf(PropTypes.string).isRequired,\n properties: PropTypes.objectOf(function (propValue, key, componentName, location, propFullName) {\n try {\n PropTypes.checkPropTypes({\n propValue: PropTypes.shape(propValueShape).isRequired\n }, { propValue }, location, componentName)\n } catch (err) {\n return new Error(\n 'Invalid prop `' + propFullName + '` supplied to' +\n ' `' + componentName + '`. Validation failed.'\n )\n }\n }).isRequired\n}\n","import { useCallback, useState } from 'react'\nimport PropTypes from 'prop-types'\n\nimport Input from '../../../Common/Input'\nimport { devicetreeNodeShape } from './nodePropTypes'\nimport {\n validateDevicetreeLabel,\n validateDevicetreeNodeName\n} from './validators'\n\n// TODO: break this apart to match individual toggles\nfunction isCombined (node) {\n const { name } = node\n const { labels: [nodeLabel] = [] } = node\n const { label: labelProp } = node.properties\n\n return (\n name.toLowerCase() === (nodeLabel || '').toLowerCase() &&\n name.toLowerCase() === (labelProp?.parsed || '').toLowerCase()\n )\n}\n\nexport default function NodeIdentifiers ({ node, onUpdate }) {\n // TODO: trigger value updates when toggling\n const [nameFromBind, setNameFromBind] = useState(isCombined(node))\n const [labelFromBind, setLabelFromBind] = useState(isCombined(node))\n const [\n handleUpdateNodeName,\n handleUpdateNodeLabel,\n handleUpdateLabelProperty\n ] = useIdentifierUpdaters(node, onUpdate, nameFromBind, labelFromBind)\n\n return (\n <table>\n <tbody>\n <tr>\n <th>Bind</th>\n <td>\n <Input\n type=\"text\"\n value={node.labels[0] || ''}\n required={true}\n validator={validateDevicetreeLabel}\n onChange={handleUpdateNodeLabel}\n />\n </td>\n </tr>\n <tr>\n <th>Node</th>\n <td>\n <Input\n value={node.name}\n required={true}\n readOnly={nameFromBind}\n disabled={nameFromBind}\n validator={validateDevicetreeNodeName}\n onChange={handleUpdateNodeName}\n />\n <label title=\"Set automatically using bind name\">\n <input\n type=\"checkbox\"\n checked={nameFromBind}\n onChange={e => setNameFromBind(e.target.checked)}\n /> Automatic\n </label>\n </td>\n </tr>\n <tr>\n <th>Label</th>\n <td>\n <Input\n type=\"text\"\n value={node.properties.label.parsed || ''}\n required={true}\n readOnly={labelFromBind}\n disabled={labelFromBind}\n validator={() => null}\n onChange={handleUpdateLabelProperty}\n />\n <label title=\"Set automatically using bind name\">\n <input\n type=\"checkbox\"\n checked={labelFromBind}\n onChange={e => setLabelFromBind(e.target.checked)}\n /> Automatic\n </label>\n </td>\n </tr>\n </tbody>\n </table>\n )\n}\n\nfunction useIdentifierUpdaters (node, onUpdate, nameFromBind, labelFromBind) {\n const handleUpdateNodeName = useCallback(e => {\n onUpdate({ ...node, name: e.target.value })\n }, [node, onUpdate])\n\n const handleUpdateNodeLabel = useCallback(e => {\n const { value } = e.target\n const labels = [value, ...node.labels.slice(1)]\n const name = nameFromBind ? value : node.name\n const properties = labelFromBind\n ? {\n ...node.properties,\n label: {\n parsed: value.toUpperCase(),\n raw: `\"${value.toUpperCase()}\"`,\n useRaw: false\n }\n }\n : node.properties\n\n onUpdate({ ...node, name, labels, properties })\n }, [node, onUpdate, nameFromBind, labelFromBind])\n\n const handleUpdateLabelProperty = useCallback(e => onUpdate({\n ...node,\n properties: {\n ...node.properties,\n label: {\n ...node.properties.label,\n parsed: e.target.value,\n useRaw: false\n }\n }\n }), [node, onUpdate])\n\n return [\n handleUpdateNodeName,\n handleUpdateNodeLabel,\n handleUpdateLabelProperty\n ]\n}\n\nNodeIdentifiers.propTypes = {\n node: PropTypes.shape(devicetreeNodeShape).isRequired,\n onUpdate: PropTypes.func.isRequired\n}\n","\nexport const withoutIndex = (array, index) => [\n ...array.slice(0, index),\n ...array.slice(index + 1)\n]\n\nexport const replaceIndex = (array, index, value) => [\n ...array.slice(0, index),\n value,\n ...array.slice(index + 1)\n]\n\nexport function repositionElement (array, index, target) {\n if (target === -1) {\n return [...array.filter((_, i) => i !== index), array[index]]\n }\n\n const reordered = array.reduce((arr, val, i) => {\n if (i === target) arr.push(array[index])\n if (i !== index) arr.push(val)\n return arr\n }, [])\n\n return reordered\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".OaJISbD1WCmb03at77EG {\\n position: relative;\\n}\\n\\n.MUN9De8dUvbPGH9cEDoQ {\\n position: absolute;\\n z-index: 10;\\n bottom: 0;\\n left: 50%;\\n transform: translate(-50%, 100%);\\n max-width: 250px;\\n width: 100%;\\n\\n border-radius: 4px;\\n padding: 3px 5px;\\n\\n color: white;\\n background-color: var(--error-highlight);\\n font-size: 85%;\\n font-family: sans-serif;\\n\\n opacity: 0.9;\\n}\\n.MUN9De8dUvbPGH9cEDoQ::before {\\n position: absolute;\\n display: block;\\n content: ' ';\\n z-index: -1;\\n\\n left: 50%;\\n width: 10px;\\n height: 10px;\\n\\n background-color: var(--error-highlight);\\n transform: translate(-50%, -7px) rotate(45deg);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Common/input.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,SAAS;EACT,SAAS;EACT,gCAAgC;EAChC,gBAAgB;EAChB,WAAW;;EAEX,kBAAkB;EAClB,gBAAgB;;EAEhB,YAAY;EACZ,wCAAwC;EACxC,cAAc;EACd,uBAAuB;;EAEvB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,YAAY;EACZ,WAAW;;EAEX,SAAS;EACT,WAAW;EACX,YAAY;;EAEZ,wCAAwC;EACxC,8CAA8C;AAChD\",\"sourcesContent\":[\".wrapper {\\n position: relative;\\n}\\n\\n.error {\\n position: absolute;\\n z-index: 10;\\n bottom: 0;\\n left: 50%;\\n transform: translate(-50%, 100%);\\n max-width: 250px;\\n width: 100%;\\n\\n border-radius: 4px;\\n padding: 3px 5px;\\n\\n color: white;\\n background-color: var(--error-highlight);\\n font-size: 85%;\\n font-family: sans-serif;\\n\\n opacity: 0.9;\\n}\\n.error::before {\\n position: absolute;\\n display: block;\\n content: ' ';\\n z-index: -1;\\n\\n left: 50%;\\n width: 10px;\\n height: 10px;\\n\\n background-color: var(--error-highlight);\\n transform: translate(-50%, -7px) rotate(45deg);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"wrapper\": \"OaJISbD1WCmb03at77EG\",\n\t\"error\": \"MUN9De8dUvbPGH9cEDoQ\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".S3t60CK1JCROFIrRlm4j [readonly] {\\n cursor: not-allowed;\\n color: gray;\\n outline: gray;\\n}\\n\\ninput.S3t60CK1JCROFIrRlm4j[type=\\\"text\\\"],\\ninput.S3t60CK1JCROFIrRlm4j[type=\\\"number\\\"],\\nselect.S3t60CK1JCROFIrRlm4j {\\n width: 100%;\\n}\\n\\nol.MedG7SPG2ge2h7j2yqrJ {\\n list-style-type: none;\\n margin-top: 0;\\n padding: 0;\\n}\\n.V50Bekt6td9yQOSiDGdx {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n}\\n.V50Bekt6td9yQOSiDGdx li {\\n display: inline-block;\\n line-height: 2rem;\\n}\\nol.QNg3v6_eJoK7_qV0_y9n {\\n margin: 0;\\n}\\nol.QNg3v6_eJoK7_qV0_y9n li {\\n line-height: 2rem;\\n}\\nol.u65C3Uji7covMUn996dR {\\n list-style-type: none;\\n padding: 0;\\n}\\n.xp5u4Uo4X2fxxX9KwwXu {\\n cursor: pointer;\\n margin: 2px;\\n padding: 5px;\\n font-family: monospace;\\n border-radius: 1rem;\\n background-color: var(--key-bg-base);\\n}\\n.xp5u4Uo4X2fxxX9KwwXu:hover {\\n background-color: var(--hover-selection);\\n color: white;\\n}\\n\\n.gpFGP00LCwlGjK6yrGWw {\\n vertical-align: text-bottom;\\n margin: 0 2px;\\n}\\n.gpFGP00LCwlGjK6yrGWw:hover {\\n color: black;\\n}\\n\\n.gsAzkKxnfzTcp5ApwmWS {\\n display: flex;\\n flex-wrap: wrap;\\n gap: 10px;\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n}\\n\\n/* Copied from MacroEditor :( */\\n.KrcWDYfRVRfvRhpsBFxs {\\n visibility: hidden;\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n font-size: 80%;\\n\\n color: var(--key-color-hover);\\n}\\n.KrcWDYfRVRfvRhpsBFxs > * {\\n margin: 2px;\\n opacity: 0.5;\\n cursor: pointer;\\n}\\n.gsAzkKxnfzTcp5ApwmWS li :hover .KrcWDYfRVRfvRhpsBFxs {\\n visibility: visible;\\n z-index: 10;\\n}\\n\\n.KrcWDYfRVRfvRhpsBFxs :hover {\\n opacity: 1;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Keyboard/Behaviors/PropertyValue/styles.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;EACnB,WAAW;EACX,aAAa;AACf;;AAEA;;;EAGE,WAAW;AACb;;AAEA;EACE,qBAAqB;EACrB,aAAa;EACb,UAAU;AACZ;AACA;EACE,qBAAqB;EACrB,SAAS;EACT,UAAU;AACZ;AACA;EACE,qBAAqB;EACrB,iBAAiB;AACnB;AACA;EACE,SAAS;AACX;AACA;EACE,iBAAiB;AACnB;AACA;EACE,qBAAqB;EACrB,UAAU;AACZ;AACA;EACE,eAAe;EACf,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,mBAAmB;EACnB,oCAAoC;AACtC;AACA;EACE,wCAAwC;EACxC,YAAY;AACd;;AAEA;EACE,2BAA2B;EAC3B,aAAa;AACf;AACA;EACE,YAAY;AACd;;AAEA;EACE,aAAa;EACb,eAAe;EACf,SAAS;EACT,qBAAqB;EACrB,UAAU;EACV,SAAS;AACX;;AAEA,+BAA+B;AAC/B;EACE,kBAAkB;EAClB,kBAAkB;EAClB,QAAQ;EACR,UAAU;EACV,cAAc;;EAEd,6BAA6B;AAC/B;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;AACjB;AACA;EACE,mBAAmB;EACnB,WAAW;AACb;;AAEA;EACE,UAAU;AACZ\",\"sourcesContent\":[\".propertyValue [readonly] {\\n cursor: not-allowed;\\n color: gray;\\n outline: gray;\\n}\\n\\ninput.propertyValue[type=\\\"text\\\"],\\ninput.propertyValue[type=\\\"number\\\"],\\nselect.propertyValue {\\n width: 100%;\\n}\\n\\nol.propertyMultiSelect {\\n list-style-type: none;\\n margin-top: 0;\\n padding: 0;\\n}\\n.propertyMultiSelectChips {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n}\\n.propertyMultiSelectChips li {\\n display: inline-block;\\n line-height: 2rem;\\n}\\nol.propertyPhandleSelect {\\n margin: 0;\\n}\\nol.propertyPhandleSelect li {\\n line-height: 2rem;\\n}\\nol.propertyPhandleSingleton {\\n list-style-type: none;\\n padding: 0;\\n}\\n.behaviorBind {\\n cursor: pointer;\\n margin: 2px;\\n padding: 5px;\\n font-family: monospace;\\n border-radius: 1rem;\\n background-color: var(--key-bg-base);\\n}\\n.behaviorBind:hover {\\n background-color: var(--hover-selection);\\n color: white;\\n}\\n\\n.phandleRemove {\\n vertical-align: text-bottom;\\n margin: 0 2px;\\n}\\n.phandleRemove:hover {\\n color: black;\\n}\\n\\n.propertyBindingsValue {\\n display: flex;\\n flex-wrap: wrap;\\n gap: 10px;\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n}\\n\\n/* Copied from MacroEditor :( */\\n.actions {\\n visibility: hidden;\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n font-size: 80%;\\n\\n color: var(--key-color-hover);\\n}\\n.actions > * {\\n margin: 2px;\\n opacity: 0.5;\\n cursor: pointer;\\n}\\n.propertyBindingsValue li :hover .actions {\\n visibility: visible;\\n z-index: 10;\\n}\\n\\n.actions :hover {\\n opacity: 1;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"propertyValue\": \"S3t60CK1JCROFIrRlm4j\",\n\t\"propertyMultiSelect\": \"MedG7SPG2ge2h7j2yqrJ\",\n\t\"propertyMultiSelectChips\": \"V50Bekt6td9yQOSiDGdx\",\n\t\"propertyPhandleSelect\": \"QNg3v6_eJoK7_qV0_y9n\",\n\t\"propertyPhandleSingleton\": \"u65C3Uji7covMUn996dR\",\n\t\"behaviorBind\": \"xp5u4Uo4X2fxxX9KwwXu\",\n\t\"phandleRemove\": \"gpFGP00LCwlGjK6yrGWw\",\n\t\"propertyBindingsValue\": \"gsAzkKxnfzTcp5ApwmWS\",\n\t\"actions\": \"KrcWDYfRVRfvRhpsBFxs\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".kcj881bnLDph62EcKelj {\\n padding-bottom: 60px;\\n}\\n\\n.GeuMxQtBvZYr0nOURDHd {\\n display: flex;\\n width: 190px;\\n flex-direction: column;\\n padding: 10px;\\n gap: 10px;\\n position: fixed;\\n}\\n\\n.NqlHG1MKBiOUUFAed3CM {\\n max-width: 700px;\\n margin: 0 auto;\\n padding-bottom: 60px;\\n}\\n\\n.NqlHG1MKBiOUUFAed3CM table {\\n border-spacing: 0;\\n}\\n.NqlHG1MKBiOUUFAed3CM table thead {\\n text-align: left;\\n}\\n\\n.NqlHG1MKBiOUUFAed3CM table tbody tr td {\\n padding: 10px;\\n margin: 0;\\n}\\n.NqlHG1MKBiOUUFAed3CM table tbody tr:nth-child(even) {\\n background-color: var(--key-bg-base);\\n}\\n\\n.Q3_rmo3XiEVg8qfXgKX_ {\\n cursor: pointer;\\n padding: 5px;\\n opacity: 0.6;\\n}\\n.Q3_rmo3XiEVg8qfXgKX_:hover {\\n opacity: 1;\\n}\\n\\ntable.czOKx_t_EDF44pilzyzA { max-height: 80vh; }\\ntable.czOKx_t_EDF44pilzyzA th { text-align: left }\\ntable.czOKx_t_EDF44pilzyzA input { font-family: monospace }\\ntable.czOKx_t_EDF44pilzyzA td {\\n padding: 4px;\\n vertical-align: top;\\n}\\ntable.czOKx_t_EDF44pilzyzA .s8rWNi6e8BZ7yQubfDws {\\n font-family: monospace;\\n}\\n.Bux6GxjreGZZkcXqx6kv {\\n display: block;\\n font-style: italic;\\n}\\n\\n.xvIZYbb8L5QbOLcesQ4T {\\n color: red;\\n font-style: italic;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Keyboard/Behaviors/styles.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,oBAAoB;AACtB;;AAEA;EACE,aAAa;EACb,YAAY;EACZ,sBAAsB;EACtB,aAAa;EACb,SAAS;EACT,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,cAAc;EACd,oBAAoB;AACtB;;AAEA;EACE,iBAAiB;AACnB;AACA;EACE,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,SAAS;AACX;AACA;EACE,oCAAoC;AACtC;;AAEA;EACE,eAAe;EACf,YAAY;EACZ,YAAY;AACd;AACA;EACE,UAAU;AACZ;;AAEA,6BAAmB,gBAAgB,EAAE;AACrC,gCAAsB,iBAAiB;AACvC,mCAAyB,uBAAuB;AAChD;EACE,YAAY;EACZ,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,UAAU;EACV,kBAAkB;AACpB\",\"sourcesContent\":[\".main {\\n padding-bottom: 60px;\\n}\\n\\n.sidebar {\\n display: flex;\\n width: 190px;\\n flex-direction: column;\\n padding: 10px;\\n gap: 10px;\\n position: fixed;\\n}\\n\\n.panel {\\n max-width: 700px;\\n margin: 0 auto;\\n padding-bottom: 60px;\\n}\\n\\n.panel table {\\n border-spacing: 0;\\n}\\n.panel table thead {\\n text-align: left;\\n}\\n\\n.panel table tbody tr td {\\n padding: 10px;\\n margin: 0;\\n}\\n.panel table tbody tr:nth-child(even) {\\n background-color: var(--key-bg-base);\\n}\\n\\n.action {\\n cursor: pointer;\\n padding: 5px;\\n opacity: 0.6;\\n}\\n.action:hover {\\n opacity: 1;\\n}\\n\\ntable.editorForm { max-height: 80vh; }\\ntable.editorForm th { text-align: left }\\ntable.editorForm input { font-family: monospace }\\ntable.editorForm td {\\n padding: 4px;\\n vertical-align: top;\\n}\\ntable.editorForm .propertyName {\\n font-family: monospace;\\n}\\n.propertyDeprecation {\\n display: block;\\n font-style: italic;\\n}\\n\\n.requiredIndicator {\\n color: red;\\n font-style: italic;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"main\": \"kcj881bnLDph62EcKelj\",\n\t\"sidebar\": \"GeuMxQtBvZYr0nOURDHd\",\n\t\"panel\": \"NqlHG1MKBiOUUFAed3CM\",\n\t\"action\": \"Q3_rmo3XiEVg8qfXgKX_\",\n\t\"editorForm\": \"czOKx_t_EDF44pilzyzA\",\n\t\"propertyName\": \"s8rWNi6e8BZ7yQubfDws\",\n\t\"propertyDeprecation\": \"Bux6GxjreGZZkcXqx6kv\",\n\t\"requiredIndicator\": \"xvIZYbb8L5QbOLcesQ4T\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","Input","validator","required","value","rest","error","className","styles","type","propTypes","PropTypes","BehaviorHeader","props","node","properties","compatible","parsed","NodeIdentifiers","PropertyName","property","schema","title","deprecatedBy","RawPropertyValue","prop","onUpdate","Icon","name","raw","onChange","e","target","useRaw","ConstPropertyValue","join","const","StringPropertyValue","placeholder","default","IntegerPropertyValue","Number","BooleanPropertyValue","checked","ChoicesPicker","choices","prompt","onSelect","formattedChoices","useMemo","map","renderSearchResult","useCallback","result","search","fuzzysort","v","i","description","style","SearchFilter","initialQuery","searchKey","renderResults","results","ResultList","choice","renderResult","isRequired","EnumPropertyValue","enum","handleChange","event","indexOf","MultiSelectPropertyValue","definitions","useContext","DefinitionsContext","Array","isArray","$source","Error","source","$key","useSchemaChoices","selected","MultiSelect","length","MultiSelectChips","MultiSelectCheckboxes","includes","filter","useState","adding","setAdding","addChoice","remove","onClick","ActionButton","secondary","Modal","onDismiss","BehaviorssPropertyValue","selection","editing","setEditing","canAddMore","insertPhandle","updatePhandle","replaceIndex","code","removePhandle","index","withoutIndex","compact","phandle","stopPropagation","ValuePicker","params","slot","context","behaviour","onCancel","BindingsPropertyValue","insertBinding","updateBinding","binding","removeBinding","KeyWrapper","Key","PropertyValue","helper","KeyPositionSelector","schemas","behaviors","pendingChanges","setPendingChanges","handlePropValueChange","confirm","cloneDeep","schemaProps","propertiesList","Object","keys","propDeprecationMapping","reduce","otherProp","requiredPropertiesList","deprecatedProp","requiredPropsMissingValues","DialogBox","dismissText","maxHeight","overflow","labels","acc","key","omit","handleDeleteProp","textAlign","disabled","BetaNoticeDialog","issuesLink","Link","external","href","label","behaviorSchemas","NewBehaviorModal","pendingSelection","setPendingSelection","find","option","formatOptionLabel","opacity","margin","createBehavior","propSchema","isBindingType","times","toString","experimentalSettings","useSelector","state","creating","setCreating","betaDisclaimerVisible","setBetaDisclaimerVisible","selectBehaviors","dispatch","useDispatch","handleAdd","handleAddPending","addBehavior","behavior","setTimeout","handleEdit","handleDelete","deleteBehavior","behaviorIndex","showBetaDialog","hideBetaDialog","toggleBeta","enableBehaviorEditing","settings","updateBehavior","backgroundColor","width","propValueShape","devicetreeNodeShape","propValue","componentName","location","propFullName","err","isCombined","nodeLabel","labelProp","toLowerCase","nameFromBind","setNameFromBind","labelFromBind","setLabelFromBind","slice","toUpperCase","useIdentifierUpdaters","handleUpdateNodeName","handleUpdateNodeLabel","handleUpdateLabelProperty","validateDevicetreeLabel","readOnly","validateDevicetreeNodeName","array","repositionElement","_","arr","val","push","___CSS_LOADER_EXPORT___","module","id","locals"],"sourceRoot":""}
\ No newline at end of file |