@react-querybuilder/chakra
Version:
Custom Chakra UI components for react-querybuilder
1 lines • 21.3 kB
Source Map (JSON)
{"version":3,"file":"react-querybuilder_chakra.mjs","names":["Ctrl","ChakraSwitch","Lbl","Switch: React.ForwardRefExoticComponent<\n Omit<SwitchProps, 'ref'> & React.RefAttributes<HTMLInputElement>\n>","Switch","Switch","ChakraCheckbox","Checkbox: React.ForwardRefExoticComponent<\n Omit<CheckboxProps, 'ref'> & React.RefAttributes<HTMLInputElement>\n>","Checkbox","ChakraRadioGroup","Radio: React.ForwardRefExoticComponent<\n RadioProps & React.RefAttributes<HTMLInputElement>\n>","Radio","RadioGroup: React.ForwardRefExoticComponent<\n ChakraRadioGroup.RootProps & React.RefAttributes<HTMLDivElement>\n>","Switch","Checkbox","RadioGroup","NativeSelectRoot: React.ForwardRefExoticComponent<\n NativeSelectRootProps & React.RefAttributes<HTMLDivElement>\n>","NativeSelect","Select","NativeSelectField: React.ForwardRefExoticComponent<\n NativeSelectField & React.RefAttributes<HTMLSelectElement>\n>","NativeSelectField","chakraControlElements: ControlElementsProp<FullField, string>","chakraTranslations: Partial<Translations>","QueryBuilderChakra: QueryBuilderContextProvider"],"sources":["../src/ChakraActionElement.tsx","../src/snippets/switch.tsx","../src/ChakraNotToggle.tsx","../src/snippets/checkbox.tsx","../src/snippets/radio.tsx","../src/ChakraValueEditor.tsx","../src/snippets/native-select.tsx","../src/ChakraValueSelector.tsx","../src/index.tsx"],"sourcesContent":["import { Button } from '@chakra-ui/react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport * as React from 'react';\nimport type { ActionProps } from 'react-querybuilder';\n\n/**\n * @group Props\n */\nexport interface ChakraActionProps extends ActionProps, ComponentPropsWithoutRef<typeof Button> {}\n\n/**\n * @group Components\n */\nexport const ChakraActionElement = ({\n className,\n handleOnClick,\n label,\n title,\n disabled,\n disabledTranslation,\n // Props that should not be in extraProps\n testID: _testID,\n rules: _rules,\n level: _level,\n path: _path,\n context: _context,\n validation: _validation,\n ruleOrGroup: _ruleOrGroup,\n schema: _schema,\n ...extraProps\n}: ChakraActionProps): React.JSX.Element => (\n <Button\n className={className}\n title={disabledTranslation && disabled ? disabledTranslation.title : title}\n onClick={e => handleOnClick(e)}\n disabled={disabled && !disabledTranslation}\n {...extraProps}>\n {disabledTranslation && disabled ? disabledTranslation.label : label}\n </Button>\n);\n","import { Switch as ChakraSwitch } from '@chakra-ui/react';\nimport * as React from 'react';\n\nexport interface SwitchProps extends ChakraSwitch.RootProps {\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.Ref<HTMLLabelElement>;\n trackLabel?: { on: React.ReactNode; off: React.ReactNode };\n thumbLabel?: { on: React.ReactNode; off: React.ReactNode };\n}\n\n// oxlint-disable no-explicit-any\nconst Ctrl = ChakraSwitch.Control as any;\nconst Thumb = ChakraSwitch.Thumb as any;\nconst Lbl = ChakraSwitch.Label as any;\n// oxlint-enable no-explicit-any\n\nexport const Switch: React.ForwardRefExoticComponent<\n Omit<SwitchProps, 'ref'> & React.RefAttributes<HTMLInputElement>\n> = React.forwardRef<HTMLInputElement, SwitchProps>(function Switch(props, ref) {\n const { inputProps, children, rootRef, trackLabel, thumbLabel, ...rest } = props;\n\n return (\n <ChakraSwitch.Root ref={rootRef} {...rest}>\n <ChakraSwitch.HiddenInput ref={ref} {...inputProps} />\n <Ctrl>\n <Thumb>\n {thumbLabel && (\n <ChakraSwitch.ThumbIndicator fallback={thumbLabel?.off}>\n {thumbLabel?.on}\n </ChakraSwitch.ThumbIndicator>\n )}\n </Thumb>\n {trackLabel && (\n <ChakraSwitch.Indicator fallback={trackLabel.off}>{trackLabel.on}</ChakraSwitch.Indicator>\n )}\n </Ctrl>\n {children != null && <Lbl>{children}</Lbl>}\n </ChakraSwitch.Root>\n );\n});\n","import * as React from 'react';\nimport type { NotToggleProps } from 'react-querybuilder';\nimport type { SwitchProps } from './snippets/switch';\nimport { Switch } from './snippets/switch';\n\n/**\n * @group Props\n */\nexport interface ChakraNotToggleProps extends NotToggleProps, Omit<SwitchProps, 'label'> {}\n\n/**\n * @group Components\n */\nexport const ChakraNotToggle = ({\n className,\n handleOnChange,\n label,\n checked,\n title,\n disabled,\n // Props that should not be in extraProps\n path: _path,\n context: _context,\n validation: _validation,\n testID: _testID,\n schema: _schema,\n ruleGroup: _ruleGroup,\n ...extraProps\n}: ChakraNotToggleProps): React.JSX.Element => (\n <Switch\n title={title}\n className={className}\n disabled={disabled}\n checked={checked}\n onCheckedChange={(e: { checked: boolean }) => handleOnChange(e.checked)}\n {...extraProps}>\n {label}\n </Switch>\n);\n","import { Checkbox as ChakraCheckbox } from '@chakra-ui/react';\nimport * as React from 'react';\n\nexport interface CheckboxProps extends ChakraCheckbox.RootProps {\n icon?: React.ReactNode;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.Ref<HTMLLabelElement>;\n}\n\n// oxlint-disable no-explicit-any\nconst Ctrl = ChakraCheckbox.Control as any;\nconst Lbl = ChakraCheckbox.Label as any;\n// oxlint-enable no-explicit-any\n\nexport const Checkbox: React.ForwardRefExoticComponent<\n Omit<CheckboxProps, 'ref'> & React.RefAttributes<HTMLInputElement>\n> = React.forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(props, ref) {\n const { icon, children, inputProps, rootRef, ...rest } = props;\n return (\n <ChakraCheckbox.Root ref={rootRef} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <Ctrl>{icon || <ChakraCheckbox.Indicator />}</Ctrl>\n {children != null && <Lbl>{children}</Lbl>}\n </ChakraCheckbox.Root>\n );\n});\n","import { RadioGroup as ChakraRadioGroup } from '@chakra-ui/react';\nimport * as React from 'react';\n\nexport interface RadioProps extends ChakraRadioGroup.ItemProps {\n rootRef?: React.Ref<HTMLLabelElement>;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n children?: React.ReactNode;\n value: string;\n}\n\n// TODO: fix types\nconst CRGI = ChakraRadioGroup.Item as React.ForwardRefExoticComponent<\n RadioProps & React.RefAttributes<HTMLLabelElement>\n>;\n\n// oxlint-disable-next-line no-explicit-any\nconst ItemText = ChakraRadioGroup.ItemText as any;\n\nexport const Radio: React.ForwardRefExoticComponent<\n RadioProps & React.RefAttributes<HTMLInputElement>\n> = React.forwardRef<HTMLInputElement, RadioProps>(function Radio(props, ref) {\n const { children, inputProps, rootRef, ...rest } = props;\n return (\n <CRGI ref={rootRef} {...rest}>\n <ChakraRadioGroup.ItemHiddenInput ref={ref} {...inputProps} />\n <ChakraRadioGroup.ItemIndicator />\n {children && <ItemText>{children}</ItemText>}\n </CRGI>\n );\n});\n\nexport const RadioGroup: React.ForwardRefExoticComponent<\n ChakraRadioGroup.RootProps & React.RefAttributes<HTMLDivElement>\n> = ChakraRadioGroup.Root;\n","import { Input, Stack, Textarea } from '@chakra-ui/react';\nimport * as React from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\nimport { ValueEditor, useValueEditor } from 'react-querybuilder';\nimport { Checkbox } from './snippets/checkbox';\nimport { Radio, RadioGroup } from './snippets/radio';\nimport { Switch } from './snippets/switch';\n\n/**\n * @group Props\n */\nexport interface ChakraValueEditorProps extends ValueEditorProps {\n extraProps?: Record<string, unknown>;\n}\n\n/**\n * @group Components\n */\nexport const ChakraValueEditor = (allProps: ChakraValueEditorProps): React.JSX.Element | null => {\n const {\n fieldData,\n operator,\n value,\n handleOnChange,\n title,\n className,\n type,\n inputType,\n values = [],\n listsAsArrays: _listsAsArrays,\n separator,\n valueSource: _vs,\n testID,\n disabled,\n selectorComponent: SelectorComponent = allProps.schema.controls.valueSelector,\n extraProps,\n parseNumbers: _parseNumbers,\n ...propsForValueSelector\n } = allProps;\n\n const {\n valueAsArray,\n multiValueHandler,\n bigIntValueHandler,\n valueListItemClassName,\n inputTypeCoerced,\n } = useValueEditor(allProps);\n\n if (operator === 'null' || operator === 'notNull') {\n return null;\n }\n\n const placeHolderText = fieldData?.placeholder ?? '';\n\n if (\n (operator === 'between' || operator === 'notBetween') &&\n (type === 'select' || type === 'text')\n ) {\n if (type === 'text') {\n const editors = ['from', 'to'].map((key, i) => {\n return (\n <Input\n key={key}\n type={inputTypeCoerced}\n value={valueAsArray[i] ?? ''}\n disabled={disabled}\n className={valueListItemClassName}\n placeholder={placeHolderText}\n onChange={e => multiValueHandler(e.target.value, i)}\n {...extraProps}\n />\n );\n });\n return (\n <span data-testid={testID} className={className} title={title}>\n {editors[0]}\n {separator}\n {editors[1]}\n </span>\n );\n }\n return <ValueEditor {...allProps} skipHook />;\n }\n\n switch (type) {\n case 'select':\n return (\n <SelectorComponent\n {...propsForValueSelector}\n className={className}\n title={title}\n value={value}\n disabled={disabled}\n handleOnChange={handleOnChange}\n options={values}\n />\n );\n\n case 'multiselect':\n return <ValueEditor {...allProps} skipHook />;\n\n case 'textarea':\n return (\n <Textarea\n value={value}\n title={title}\n disabled={disabled}\n className={className}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n {...extraProps}\n />\n );\n\n case 'switch':\n return (\n <Switch\n className={className}\n checked={!!value}\n title={title}\n disabled={disabled}\n // oxlint-disable-next-line typescript/no-explicit-any\n onChange={(e: any) => handleOnChange(e.target.checked)}\n {...extraProps}\n />\n );\n\n case 'checkbox':\n return (\n <Checkbox\n className={className}\n title={title}\n disabled={disabled}\n // oxlint-disable-next-line typescript/no-explicit-any\n onChange={(e: any) => handleOnChange(e.target.checked)}\n checked={!!value}\n {...extraProps}\n />\n );\n\n case 'radio':\n return (\n <RadioGroup\n className={className}\n title={title}\n value={value}\n // oxlint-disable-next-line typescript/no-explicit-any\n onChange={(e: any) => handleOnChange(e.target.value)}\n disabled={disabled}\n {...extraProps}>\n <Stack direction=\"row\">\n {values.map(v => (\n <Radio key={v.name} value={v.name}>\n {v.label}\n </Radio>\n ))}\n </Stack>\n </RadioGroup>\n );\n }\n\n if (inputType === 'bigint') {\n return (\n <Input\n data-testid={testID}\n type={inputTypeCoerced}\n placeholder={placeHolderText}\n value={`${value}`}\n title={title}\n className={className}\n disabled={disabled}\n onChange={e => bigIntValueHandler(e.target.value)}\n {...extraProps}\n />\n );\n }\n\n return (\n <Input\n type={inputTypeCoerced}\n value={value}\n title={title}\n disabled={disabled}\n className={className}\n placeholder={placeHolderText}\n onChange={e => handleOnChange(e.target.value)}\n {...extraProps}\n />\n );\n};\n","'use client';\n\nimport { NativeSelect as Select } from '@chakra-ui/react';\nimport * as React from 'react';\n\ninterface NativeSelectRootProps extends Select.RootProps {\n icon?: React.ReactNode;\n}\n\nexport const NativeSelectRoot: React.ForwardRefExoticComponent<\n NativeSelectRootProps & React.RefAttributes<HTMLDivElement>\n> = React.forwardRef<HTMLDivElement, NativeSelectRootProps>(function NativeSelect(props, ref) {\n const { icon, children, ...rest } = props;\n return (\n <Select.Root ref={ref} {...rest}>\n {children}\n <Select.Indicator>{icon}</Select.Indicator>\n </Select.Root>\n );\n});\n\ninterface NativeSelectItem {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\ninterface NativeSelectField extends Select.FieldProps {\n items?: Array<string | NativeSelectItem>;\n}\n\nexport const NativeSelectField: React.ForwardRefExoticComponent<\n NativeSelectField & React.RefAttributes<HTMLSelectElement>\n> = React.forwardRef<HTMLSelectElement, NativeSelectField>(function NativeSelectField(props, ref) {\n const { items: itemsProp, children, ...rest } = props;\n\n const items = React.useMemo(\n () => itemsProp?.map(item => (typeof item === 'string' ? { label: item, value: item } : item)),\n [itemsProp]\n );\n\n return (\n <Select.Field ref={ref} {...rest}>\n {children}\n {items?.map(item => (\n <option key={item.value} value={item.value} disabled={item.disabled}>\n {item.label}\n </option>\n ))}\n </Select.Field>\n );\n});\n","import type { ComponentPropsWithoutRef } from 'react';\nimport * as React from 'react';\nimport type { VersatileSelectorProps } from 'react-querybuilder';\nimport { NativeSelectField, NativeSelectRoot } from './snippets/native-select';\nimport { toOptions } from './utils';\n\n/**\n * @group Props\n */\nexport interface ChakraValueSelectorProps\n extends VersatileSelectorProps, ComponentPropsWithoutRef<typeof NativeSelectRoot> {}\n\n/**\n * @group Components\n */\nexport const ChakraValueSelector = ({\n className,\n handleOnChange,\n options,\n value,\n title,\n disabled,\n // Props that should not be in extraProps\n testID: _testID,\n rule: _rule,\n ruleGroup: _ruleGroup,\n rules: _rules,\n level: _level,\n path: _path,\n context: _context,\n validation: _validation,\n operator: _operator,\n field: _field,\n fieldData: _fieldData,\n multiple: _multiple,\n listsAsArrays: _listsAsArrays,\n schema: _schema,\n ...extraProps\n}: ChakraValueSelectorProps): React.JSX.Element => (\n <NativeSelectRoot className={className} title={title} {...extraProps}>\n <NativeSelectField\n value={value}\n onChange={e => handleOnChange(e.target.value)}\n {...{ disabled }}>\n {toOptions(options)}\n </NativeSelectField>\n </NativeSelectRoot>\n);\n","import * as React from 'react';\nimport {\n FaChevronDown,\n FaChevronUp,\n FaCopy,\n FaGripVertical,\n FaLock,\n FaLockOpen,\n FaTimes,\n} from 'react-icons/fa';\nimport type {\n ControlElementsProp,\n FullField,\n QueryBuilderContextProvider,\n Translations,\n} from 'react-querybuilder';\nimport { getCompatContextProvider } from 'react-querybuilder';\nimport { ChakraActionElement } from './ChakraActionElement';\nimport { ChakraNotToggle } from './ChakraNotToggle';\nimport { ChakraValueEditor } from './ChakraValueEditor';\nimport { ChakraValueSelector } from './ChakraValueSelector';\n\nexport * from './ChakraActionElement';\nexport * from './ChakraNotToggle';\nexport * from './ChakraValueEditor';\nexport * from './ChakraValueSelector';\n\n/**\n * @group Props\n */\nexport const chakraControlElements: ControlElementsProp<FullField, string> = {\n actionElement: ChakraActionElement,\n valueSelector: ChakraValueSelector,\n notToggle: ChakraNotToggle,\n valueEditor: ChakraValueEditor,\n};\n\n/**\n * @group Props\n */\nexport const chakraTranslations: Partial<Translations> = {\n dragHandle: { label: <FaGripVertical /> },\n removeGroup: { label: <FaTimes /> },\n removeRule: { label: <FaTimes /> },\n cloneRuleGroup: { label: <FaCopy /> },\n cloneRule: { label: <FaCopy /> },\n lockGroup: { label: <FaLockOpen /> },\n lockRule: { label: <FaLockOpen /> },\n lockGroupDisabled: { label: <FaLock /> },\n lockRuleDisabled: { label: <FaLock /> },\n shiftActionDown: { label: <FaChevronDown /> },\n shiftActionUp: { label: <FaChevronUp /> },\n};\n\n/**\n * @group Components\n */\nexport const QueryBuilderChakra: QueryBuilderContextProvider = getCompatContextProvider({\n controlElements: chakraControlElements,\n translations: chakraTranslations,\n});\n"],"mappings":"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"}