UNPKG

@react-querybuilder/chakra

Version:

Custom Chakra UI components for react-querybuilder

1 lines 21.6 kB
{"version":3,"file":"react-querybuilder_chakra.production.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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"}