@accelint/design-system 0.1.0 → 0.2.0
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/README.md +1 -1
- package/dist/assets/components/button/button.css +55 -0
- package/dist/assets/components/checkbox/checkbox.css +73 -0
- package/dist/assets/components/chip/chip.css +62 -0
- package/dist/assets/components/combo-box/combo-box.css +66 -0
- package/dist/assets/components/dialog/dialog.css +51 -0
- package/dist/assets/components/drawer/drawer.css +135 -0
- package/dist/assets/components/group/group.css +33 -0
- package/dist/assets/components/icon/icon.css +19 -0
- package/dist/assets/components/input/input.css +29 -0
- package/dist/assets/components/menu/menu.css +85 -0
- package/dist/assets/components/options/options.css +82 -0
- package/dist/assets/components/picker/picker.css +47 -0
- package/dist/assets/components/popover/popover.css +26 -0
- package/dist/assets/components/query-builder/query-builder.css +129 -0
- package/dist/assets/components/radio/radio.css +67 -0
- package/dist/assets/components/search-field/search-field.css +62 -0
- package/dist/assets/components/select/select.css +33 -0
- package/dist/assets/components/switch/switch.css +62 -0
- package/dist/assets/components/tabs/tabs.css +144 -0
- package/dist/assets/components/textarea/textarea.css +32 -0
- package/dist/assets/components/tooltip/tooltip.css +54 -0
- package/dist/assets/components/tree/tree.css +157 -0
- package/dist/assets/hooks/use-theme/use-theme.css +6 -0
- package/dist/assets/src/components/button/button.css.ts.vanilla-9uttMYGm.css +55 -0
- package/dist/assets/src/components/checkbox/checkbox.css.ts.vanilla-Bewmypyn.css +73 -0
- package/dist/assets/src/components/chip/chip.css.ts.vanilla-CsGhxrlu.css +62 -0
- package/dist/assets/src/components/combo-box/combo-box.css.ts.vanilla-BNEPKjPm.css +66 -0
- package/dist/assets/src/components/dialog/dialog.css.ts.vanilla-CG0m-NJD.css +51 -0
- package/dist/assets/src/components/drawer/drawer.css.ts.vanilla-DEfHnoNS.css +135 -0
- package/dist/assets/src/components/group/group.css.ts.vanilla-DR69xgQy.css +33 -0
- package/dist/assets/src/components/icon/icon.css.ts.vanilla-CoUAfp2F.css +19 -0
- package/dist/assets/src/components/input/input.css.ts.vanilla-DoK5h9SX.css +29 -0
- package/dist/assets/src/components/menu/menu.css.ts.vanilla-LoWLg-jE.css +85 -0
- package/dist/assets/src/components/options/options.css.ts.vanilla-CWWFBTou.css +82 -0
- package/dist/assets/src/components/picker/picker.css.ts.vanilla-Fe0YXv-c.css +47 -0
- package/dist/assets/src/components/popover/popover.css.ts.vanilla-C5YGwwVD.css +26 -0
- package/dist/assets/src/components/query-builder/query-builder.css.ts.vanilla-B3P9cbCv.css +129 -0
- package/dist/assets/src/components/radio/radio.css.ts.vanilla-gi-KedQc.css +67 -0
- package/dist/assets/src/components/search-field/search-field.css.ts.vanilla-B_JL53f8.css +62 -0
- package/dist/assets/src/components/select/select.css.ts.vanilla-C94A60jf.css +33 -0
- package/dist/assets/src/components/switch/switch.css.ts.vanilla-DkQwtRa6.css +62 -0
- package/dist/assets/src/components/tabs/tabs.css.ts.vanilla-BygIflpl.css +144 -0
- package/dist/assets/src/components/textarea/textarea.css.ts.vanilla-Ba6E5HFc.css +32 -0
- package/dist/assets/src/components/tooltip/tooltip.css.ts.vanilla-BntxAlwN.css +54 -0
- package/dist/assets/src/components/tree/tree.css.ts.vanilla-SLmhk0zZ.css +157 -0
- package/dist/assets/src/hooks/use-theme/use-theme.css.ts.vanilla-zkVHnGkP.css +6 -0
- package/dist/assets/src/styles/layers.css.ts.vanilla-B2GUgnOF.css +21 -0
- package/dist/assets/src/styles/reset.css.ts.vanilla-C8PShXm0.css +31 -0
- package/dist/assets/src/styles/space.css.ts.vanilla-Md6Whc4G.css +18 -0
- package/dist/assets/src/styles/surfaces.css.ts.vanilla-Ckztx7VT.css +24 -0
- package/dist/assets/src/styles/theme.css.ts.vanilla-aDPSIzBK.css +208 -0
- package/dist/assets/src/styles/typography.css.ts.vanilla-DRT9H7rd.css +150 -0
- package/dist/assets/styles/layers.css +21 -0
- package/dist/assets/styles/reset.css +31 -0
- package/dist/assets/styles/space.css +18 -0
- package/dist/assets/styles/surfaces.css +24 -0
- package/dist/assets/styles/theme.css +208 -0
- package/dist/assets/styles/typography.css +150 -0
- package/dist/components/aria/aria.d.ts +19 -0
- package/dist/components/aria/aria.js +36 -0
- package/dist/components/aria/aria.js.map +1 -0
- package/dist/components/aria/index.d.ts +1 -0
- package/dist/components/button/button.css.d.ts +33 -0
- package/dist/components/button/button.d.ts +39 -0
- package/dist/components/button/button.js +71 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/button.vanilla.js +8 -0
- package/dist/components/button/button.vanilla.js.map +1 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/types.d.ts +28 -0
- package/dist/components/checkbox/checkbox.css.d.ts +35 -0
- package/dist/components/checkbox/checkbox.d.ts +21 -0
- package/dist/components/checkbox/checkbox.js +68 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/checkbox.vanilla.js +9 -0
- package/dist/components/checkbox/checkbox.vanilla.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/types.d.ts +38 -0
- package/dist/components/chip/chip.css.d.ts +31 -0
- package/dist/components/chip/chip.d.ts +30 -0
- package/dist/components/chip/chip.js +106 -0
- package/dist/components/chip/chip.js.map +1 -0
- package/dist/components/chip/chip.vanilla.js +8 -0
- package/dist/components/chip/chip.vanilla.js.map +1 -0
- package/dist/components/chip/index.d.ts +3 -0
- package/dist/components/chip/types.d.ts +31 -0
- package/dist/components/collection/collection.d.ts +13 -0
- package/dist/components/collection/collection.js +15 -0
- package/dist/components/collection/collection.js.map +1 -0
- package/dist/components/collection/index.d.ts +1 -0
- package/dist/components/combo-box/combo-box.css.d.ts +22 -0
- package/dist/components/combo-box/combo-box.d.ts +8 -0
- package/dist/components/combo-box/combo-box.js +87 -0
- package/dist/components/combo-box/combo-box.js.map +1 -0
- package/dist/components/combo-box/combo-box.vanilla.js +8 -0
- package/dist/components/combo-box/combo-box.vanilla.js.map +1 -0
- package/dist/components/combo-box/index.d.ts +3 -0
- package/dist/components/combo-box/types.d.ts +32 -0
- package/dist/components/dialog/dialog.css.d.ts +34 -0
- package/dist/components/dialog/dialog.d.ts +18 -0
- package/dist/components/dialog/dialog.js +146 -0
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/dialog.vanilla.js +8 -0
- package/dist/components/dialog/dialog.vanilla.js.map +1 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dialog/types.d.ts +48 -0
- package/dist/components/drawer/drawer.css.d.ts +33 -0
- package/dist/components/drawer/drawer.d.ts +13 -0
- package/dist/components/drawer/drawer.js +199 -0
- package/dist/components/drawer/drawer.js.map +1 -0
- package/dist/components/drawer/drawer.vanilla.js +10 -0
- package/dist/components/drawer/drawer.vanilla.js.map +1 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/types.d.ts +71 -0
- package/dist/components/element/element.d.ts +11 -0
- package/dist/components/element/element.js +21 -0
- package/dist/components/element/element.js.map +1 -0
- package/dist/components/element/index.d.ts +2 -0
- package/dist/components/element/types.d.ts +21 -0
- package/dist/components/group/group.css.d.ts +14 -0
- package/dist/components/group/group.d.ts +10 -0
- package/dist/components/group/group.js +44 -0
- package/dist/components/group/group.js.map +1 -0
- package/dist/components/group/group.vanilla.js +7 -0
- package/dist/components/group/group.vanilla.js.map +1 -0
- package/dist/components/group/index.d.ts +3 -0
- package/dist/components/group/types.d.ts +35 -0
- package/dist/components/icon/icon.css.d.ts +18 -0
- package/dist/components/icon/icon.d.ts +12 -0
- package/dist/components/icon/icon.js +26 -0
- package/dist/components/icon/icon.js.map +1 -0
- package/dist/components/icon/icon.vanilla.js +8 -0
- package/dist/components/icon/icon.vanilla.js.map +1 -0
- package/dist/components/icon/index.d.ts +3 -0
- package/dist/components/icon/types.d.ts +13 -0
- package/dist/components/index.d.ts +26 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/input.css.d.ts +29 -0
- package/dist/components/input/input.d.ts +8 -0
- package/dist/components/input/input.js +93 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/input/input.vanilla.js +8 -0
- package/dist/components/input/input.vanilla.js.map +1 -0
- package/dist/components/input/types.d.ts +44 -0
- package/dist/components/menu/index.d.ts +3 -0
- package/dist/components/menu/menu.css.d.ts +75 -0
- package/dist/components/menu/menu.d.ts +24 -0
- package/dist/components/menu/menu.js +155 -0
- package/dist/components/menu/menu.js.map +1 -0
- package/dist/components/menu/menu.vanilla.js +8 -0
- package/dist/components/menu/menu.vanilla.js.map +1 -0
- package/dist/components/menu/types.d.ts +48 -0
- package/dist/components/merge-provider/index.d.ts +2 -0
- package/dist/components/merge-provider/merge-provider.d.ts +14 -0
- package/dist/components/merge-provider/merge-provider.js +40 -0
- package/dist/components/merge-provider/merge-provider.js.map +1 -0
- package/dist/components/merge-provider/types.d.ts +5 -0
- package/dist/components/options/index.d.ts +3 -0
- package/dist/components/options/options.css.d.ts +79 -0
- package/dist/components/options/options.d.ts +20 -0
- package/dist/components/options/options.js +152 -0
- package/dist/components/options/options.js.map +1 -0
- package/dist/components/options/options.vanilla.js +10 -0
- package/dist/components/options/options.vanilla.js.map +1 -0
- package/dist/components/options/types.d.ts +49 -0
- package/dist/components/picker/index.d.ts +3 -0
- package/dist/components/picker/picker.css.d.ts +32 -0
- package/dist/components/picker/picker.d.ts +18 -0
- package/dist/components/picker/picker.js +46 -0
- package/dist/components/picker/picker.js.map +1 -0
- package/dist/components/picker/picker.stories.css.d.ts +3 -0
- package/dist/components/picker/picker.vanilla.js +9 -0
- package/dist/components/picker/picker.vanilla.js.map +1 -0
- package/dist/components/picker/types.d.ts +28 -0
- package/dist/components/popover/index.d.ts +3 -0
- package/dist/components/popover/popover.css.d.ts +31 -0
- package/dist/components/popover/popover.d.ts +8 -0
- package/dist/components/popover/popover.js +110 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/popover/popover.vanilla.js +7 -0
- package/dist/components/popover/popover.vanilla.js.map +1 -0
- package/dist/components/popover/types.d.ts +32 -0
- package/dist/components/query-builder/action-element.d.ts +2 -0
- package/dist/components/query-builder/action-element.js +12 -0
- package/dist/components/query-builder/action-element.js.map +1 -0
- package/dist/components/query-builder/constants.d.ts +4 -0
- package/dist/components/query-builder/constants.js +20 -0
- package/dist/components/query-builder/constants.js.map +1 -0
- package/dist/components/query-builder/dataset-sample.d.ts +91 -0
- package/dist/components/query-builder/group.d.ts +5 -0
- package/dist/components/query-builder/group.js +87 -0
- package/dist/components/query-builder/group.js.map +1 -0
- package/dist/components/query-builder/index.d.ts +5 -0
- package/dist/components/query-builder/query-builder.css.d.ts +91 -0
- package/dist/components/query-builder/query-builder.d.ts +2 -0
- package/dist/components/query-builder/query-builder.js +129 -0
- package/dist/components/query-builder/query-builder.js.map +1 -0
- package/dist/components/query-builder/query-builder.vanilla.js +10 -0
- package/dist/components/query-builder/query-builder.vanilla.js.map +1 -0
- package/dist/components/query-builder/rule.d.ts +3 -0
- package/dist/components/query-builder/rule.js +112 -0
- package/dist/components/query-builder/rule.js.map +1 -0
- package/dist/components/query-builder/types.d.ts +128 -0
- package/dist/components/query-builder/utils.d.ts +29 -0
- package/dist/components/query-builder/utils.js +22 -0
- package/dist/components/query-builder/utils.js.map +1 -0
- package/dist/components/query-builder/value-editor.d.ts +4 -0
- package/dist/components/query-builder/value-editor.js +74 -0
- package/dist/components/query-builder/value-editor.js.map +1 -0
- package/dist/components/query-builder/value-selector.d.ts +2 -0
- package/dist/components/query-builder/value-selector.js +28 -0
- package/dist/components/query-builder/value-selector.js.map +1 -0
- package/dist/components/radio/index.d.ts +3 -0
- package/dist/components/radio/radio.css.d.ts +34 -0
- package/dist/components/radio/radio.d.ts +16 -0
- package/dist/components/radio/radio.js +63 -0
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/radio/radio.vanilla.js +8 -0
- package/dist/components/radio/radio.vanilla.js.map +1 -0
- package/dist/components/radio/types.d.ts +29 -0
- package/dist/components/search-field/index.d.ts +3 -0
- package/dist/components/search-field/search-field.css.d.ts +16 -0
- package/dist/components/search-field/search-field.d.ts +9 -0
- package/dist/components/search-field/search-field.js +60 -0
- package/dist/components/search-field/search-field.js.map +1 -0
- package/dist/components/search-field/search-field.vanilla.js +7 -0
- package/dist/components/search-field/search-field.vanilla.js.map +1 -0
- package/dist/components/search-field/types.d.ts +29 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/select.css.d.ts +25 -0
- package/dist/components/select/select.d.ts +8 -0
- package/dist/components/select/select.js +80 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/select/select.vanilla.js +8 -0
- package/dist/components/select/select.vanilla.js.map +1 -0
- package/dist/components/select/types.d.ts +30 -0
- package/dist/components/switch/index.d.ts +3 -0
- package/dist/components/switch/switch.css.d.ts +25 -0
- package/dist/components/switch/switch.d.ts +4 -0
- package/dist/components/switch/switch.js +34 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/switch/switch.vanilla.js +8 -0
- package/dist/components/switch/switch.vanilla.js.map +1 -0
- package/dist/components/switch/types.d.ts +17 -0
- package/dist/components/tabs/index.d.ts +3 -0
- package/dist/components/tabs/tabs.css.d.ts +49 -0
- package/dist/components/tabs/tabs.d.ts +68 -0
- package/dist/components/tabs/tabs.js +108 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/tabs/tabs.vanilla.js +11 -0
- package/dist/components/tabs/tabs.vanilla.js.map +1 -0
- package/dist/components/tabs/types.d.ts +82 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/textarea.css.d.ts +31 -0
- package/dist/components/textarea/textarea.d.ts +14 -0
- package/dist/components/textarea/textarea.js +86 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/textarea/textarea.vanilla.js +8 -0
- package/dist/components/textarea/textarea.vanilla.js.map +1 -0
- package/dist/components/textarea/types.d.ts +39 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/tooltip.css.d.ts +23 -0
- package/dist/components/tooltip/tooltip.d.ts +23 -0
- package/dist/components/tooltip/tooltip.js +69 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/tooltip/tooltip.vanilla.js +8 -0
- package/dist/components/tooltip/tooltip.vanilla.js.map +1 -0
- package/dist/components/tooltip/types.d.ts +39 -0
- package/dist/components/tree/index.d.ts +3 -0
- package/dist/components/tree/tree.css.d.ts +73 -0
- package/dist/components/tree/tree.d.ts +5 -0
- package/dist/components/tree/tree.js +337 -0
- package/dist/components/tree/tree.js.map +1 -0
- package/dist/components/tree/tree.vanilla.js +11 -0
- package/dist/components/tree/tree.vanilla.js.map +1 -0
- package/dist/components/tree/types.d.ts +114 -0
- package/dist/components/tree/utils.d.ts +8 -0
- package/dist/components/tree/utils.js +75 -0
- package/dist/components/tree/utils.js.map +1 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/use-collection-render/index.d.ts +1 -0
- package/dist/hooks/use-collection-render/use-collection-render.d.ts +9 -0
- package/dist/hooks/use-collection-render/use-collection-render.js +20 -0
- package/dist/hooks/use-collection-render/use-collection-render.js.map +1 -0
- package/dist/hooks/use-context-props/index.d.ts +1 -0
- package/dist/hooks/use-context-props/use-context-props.d.ts +7 -0
- package/dist/hooks/use-context-props/use-context-props.js +15 -0
- package/dist/hooks/use-context-props/use-context-props.js.map +1 -0
- package/dist/hooks/use-defaults/index.d.ts +2 -0
- package/dist/hooks/use-defaults/types.d.ts +67 -0
- package/dist/hooks/use-defaults/use-defaults.d.ts +56 -0
- package/dist/hooks/use-defaults/use-defaults.js +21 -0
- package/dist/hooks/use-defaults/use-defaults.js.map +1 -0
- package/dist/hooks/use-propagating-press/index.d.ts +1 -0
- package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +9 -0
- package/dist/hooks/use-propagating-press/use-propagating-press.js +14 -0
- package/dist/hooks/use-propagating-press/use-propagating-press.js.map +1 -0
- package/dist/hooks/use-slot/index.d.ts +1 -0
- package/dist/hooks/use-slot/use-slot.d.ts +13 -0
- package/dist/hooks/use-slot/use-slot.js +18 -0
- package/dist/hooks/use-slot/use-slot.js.map +1 -0
- package/dist/hooks/use-theme/index.d.ts +2 -0
- package/dist/hooks/use-theme/types.d.ts +86 -0
- package/dist/hooks/use-theme/use-theme.css.d.ts +1 -0
- package/dist/hooks/use-theme/use-theme.d.ts +13 -0
- package/dist/hooks/use-theme/use-theme.js +64 -0
- package/dist/hooks/use-theme/use-theme.js.map +1 -0
- package/dist/hooks/use-theme/use-theme.vanilla.js +4 -0
- package/dist/hooks/use-theme/use-theme.vanilla.js.map +1 -0
- package/dist/hooks/use-tree/index.d.ts +1 -0
- package/dist/hooks/use-tree/use-tree.d.ts +2 -0
- package/dist/hooks/use-tree/use-tree.js +217 -0
- package/dist/hooks/use-tree/use-tree.js.map +1 -0
- package/dist/hooks/use-tree/utils.d.ts +6 -0
- package/dist/hooks/use-tree/utils.js +77 -0
- package/dist/hooks/use-tree/utils.js.map +1 -0
- package/dist/hooks/use-update-effect/index.d.ts +1 -0
- package/dist/hooks/use-update-effect/use-update-effect.d.ts +1 -0
- package/dist/hooks/use-update-effect/use-update-effect.js +20 -0
- package/dist/hooks/use-update-effect/use-update-effect.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/ladle/actions.d.ts +1 -0
- package/dist/ladle/index.d.ts +1 -0
- package/dist/styles/index.d.ts +6 -0
- package/dist/styles/layers.css.d.ts +16 -0
- package/dist/styles/layers.vanilla.js +4 -0
- package/dist/styles/layers.vanilla.js.map +1 -0
- package/dist/styles/reset.css.d.ts +1 -0
- package/dist/styles/space.css.d.ts +1 -0
- package/dist/styles/surfaces.css.d.ts +4 -0
- package/dist/styles/surfaces.vanilla.js +4 -0
- package/dist/styles/surfaces.vanilla.js.map +1 -0
- package/dist/styles/theme.css.d.ts +334 -0
- package/dist/styles/theme.vanilla.js +31 -0
- package/dist/styles/theme.vanilla.js.map +1 -0
- package/dist/styles/typography.css.d.ts +17 -0
- package/dist/styles/typography.vanilla.js +8 -0
- package/dist/styles/typography.vanilla.js.map +1 -0
- package/dist/styles.css +2018 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/types/deckgl.d.ts +1 -0
- package/dist/types/generic.d.ts +3 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/props.d.ts +4 -0
- package/dist/types/react-aria.d.ts +91 -0
- package/dist/types/use-tree.d.ts +52 -0
- package/dist/types/vanilla-extract.d.ts +15 -0
- package/dist/utils/css.d.ts +139 -0
- package/dist/utils/css.js +145 -0
- package/dist/utils/css.js.map +1 -0
- package/dist/utils/events.d.ts +10 -0
- package/dist/utils/events.js +5 -0
- package/dist/utils/events.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/props.d.ts +29 -0
- package/dist/utils/props.js +108 -0
- package/dist/utils/props.js.map +1 -0
- package/dist/utils/validators.d.ts +49 -0
- package/dist/utils/validators.js +37 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/vanilla.d.ts +30 -0
- package/dist/vanilla.js +27 -0
- package/package.json +19 -7
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type RuleProps, useRule } from 'react-querybuilder';
|
|
2
|
+
export declare function Rule(props: RuleProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function RuleComponents({ classNames: classNamesProp, cloneRule, context, disabled, dragRef, fieldData, generateOnChangeHandler, hideValueControls, inputType, operators, parentDisabled, path, removeRule, rule, schema, shiftDownDisabled, shiftUpDisabled, shiftRuleDown, shiftRuleUp, toggleLockRule, translations, validationResult, valueEditorSeparator, valueEditorType, valueSourceOptions, valueSources, values, }: RuleProps & ReturnType<typeof useRule>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext, useMemo } from 'react';
|
|
3
|
+
import { useRule, useStopEventPropagation, TestID } from 'react-querybuilder';
|
|
4
|
+
import { inlineVars } from '../../utils/css.js';
|
|
5
|
+
import { AriaText } from '../aria/aria.js';
|
|
6
|
+
import { QueryBuilderContext } from './constants.js';
|
|
7
|
+
import { queryBuilderRuleStateVars } from './query-builder.vanilla.js';
|
|
8
|
+
import { getValidationResult } from './utils.js';
|
|
9
|
+
|
|
10
|
+
function Rule(props) {
|
|
11
|
+
const { classNames } = useContext(QueryBuilderContext);
|
|
12
|
+
const rule = useRule(props);
|
|
13
|
+
const cloneRule = useStopEventPropagation(rule.cloneRule);
|
|
14
|
+
const toggleLockRule = useStopEventPropagation(rule.toggleLockRule);
|
|
15
|
+
const removeRule = useStopEventPropagation(rule.removeRule);
|
|
16
|
+
const shiftRuleUp = useStopEventPropagation(rule.shiftRuleUp);
|
|
17
|
+
const shiftRuleDown = useStopEventPropagation(rule.shiftRuleDown);
|
|
18
|
+
const { valid: isValid, reasons } = getValidationResult(props.rule, rule.fieldData?.validator);
|
|
19
|
+
const style = useMemo(() => inlineVars(queryBuilderRuleStateVars, {
|
|
20
|
+
isDisabled: rule.disabled,
|
|
21
|
+
isDragging: rule.isDragging,
|
|
22
|
+
isDropTarget: rule.isOver
|
|
23
|
+
}), [rule.disabled, rule.isDragging, rule.isOver]);
|
|
24
|
+
return jsxs("div", { className: classNames?.rule?.container, style, children: [jsx("div", { ref: rule.dndRef, className: rule.outerClassName, "data-dragmonitorid": rule.dragMonitorId, "data-dropmonitorid": rule.dropMonitorId, "data-level": rule.path.length, "data-path": JSON.stringify(rule.path), "data-rule-id": rule.id, "data-testid": TestID.rule, children: jsx(RuleComponents, { ...rule, cloneRule, removeRule, shiftRuleDown, shiftRuleUp, toggleLockRule }) }), !isValid && reasons?.map((reason) => jsx(AriaText, { className: classNames?.rule?.error, children: reason }, reason))] });
|
|
25
|
+
}
|
|
26
|
+
function RuleComponents({ classNames: classNamesProp, cloneRule, context, disabled, dragRef, fieldData, generateOnChangeHandler, hideValueControls, inputType, operators, parentDisabled, path, removeRule, rule, schema, shiftDownDisabled, shiftUpDisabled, shiftRuleDown, shiftRuleUp, toggleLockRule, translations, validationResult, valueEditorSeparator, valueEditorType, valueSourceOptions, valueSources, values }) {
|
|
27
|
+
const { classNames, consistentColumns } = useContext(QueryBuilderContext);
|
|
28
|
+
const { controls: { shiftActions: ShiftActionsControlElement, dragHandle: DragHandleControlElement, fieldSelector: FieldSelectorControlElement, operatorSelector: OperatorSelectorControlElement, valueSourceSelector: ValueSourceSelectorControlElement, valueEditor: ValueEditorControlElement, cloneRuleAction: CloneRuleActionControlElement, lockRuleAction: LockRuleActionControlElement, removeRuleAction: RemoveRuleActionControlElement }, enableDragAndDrop, showCloneButtons, showLockButtons, showShiftActions } = schema;
|
|
29
|
+
const titles = useMemo(() => ({
|
|
30
|
+
shiftUp: translations.shiftActionUp.title,
|
|
31
|
+
shiftDown: translations.shiftActionDown.title
|
|
32
|
+
}), [translations.shiftActionDown.title, translations.shiftActionUp.title]);
|
|
33
|
+
const labels = useMemo(() => ({
|
|
34
|
+
shiftUp: translations.shiftActionUp.label,
|
|
35
|
+
shiftDown: translations.shiftActionDown.label
|
|
36
|
+
}), [translations.shiftActionDown.label, translations.shiftActionUp.label]);
|
|
37
|
+
const renderOperator = schema.autoSelectField || rule.field !== translations.fields.placeholderName;
|
|
38
|
+
const operator = useMemo(() => {
|
|
39
|
+
if (renderOperator) {
|
|
40
|
+
return jsx("div", { className: classNames?.rule?.operator, children: jsx(OperatorSelectorControlElement, { testID: TestID.operators, field: rule.field, fieldData, title: translations.operators.title, options: operators, value: rule.operator, className: classNamesProp.operators, handleOnChange: generateOnChangeHandler("operator"), level: path.length, path, disabled, context, validation: validationResult, schema, rule }) });
|
|
41
|
+
}
|
|
42
|
+
return !renderOperator && consistentColumns ? jsx("div", { className: classNames?.rule?.operator }) : null;
|
|
43
|
+
}, [
|
|
44
|
+
OperatorSelectorControlElement,
|
|
45
|
+
classNames?.rule?.operator,
|
|
46
|
+
classNamesProp.operators,
|
|
47
|
+
consistentColumns,
|
|
48
|
+
context,
|
|
49
|
+
disabled,
|
|
50
|
+
fieldData,
|
|
51
|
+
generateOnChangeHandler,
|
|
52
|
+
operators,
|
|
53
|
+
path,
|
|
54
|
+
renderOperator,
|
|
55
|
+
rule,
|
|
56
|
+
schema,
|
|
57
|
+
translations.operators.title,
|
|
58
|
+
validationResult
|
|
59
|
+
]);
|
|
60
|
+
const renderValue = renderOperator && (schema.autoSelectOperator || rule.operator !== translations.operators.placeholderName) && !hideValueControls;
|
|
61
|
+
const value = useMemo(() => {
|
|
62
|
+
if (renderValue) {
|
|
63
|
+
return jsx("div", { className: classNames?.rule?.values, children: jsx(ValueEditorControlElement, { testID: TestID.valueEditor, field: rule.field, fieldData, title: translations.value.title, operator: rule.operator, value: rule.value, valueSource: rule.valueSource ?? "value", type: valueEditorType, inputType, values, listsAsArrays: schema.listsAsArrays, parseNumbers: schema.parseNumbers, separator: valueEditorSeparator, className: classNamesProp.value, handleOnChange: generateOnChangeHandler("value"), level: path.length, path, disabled, context, validation: validationResult, schema, rule }) });
|
|
64
|
+
}
|
|
65
|
+
return !renderValue && consistentColumns ? jsx("div", { className: classNames?.rule?.values }) : null;
|
|
66
|
+
}, [
|
|
67
|
+
ValueEditorControlElement,
|
|
68
|
+
classNames?.rule?.values,
|
|
69
|
+
classNamesProp.value,
|
|
70
|
+
consistentColumns,
|
|
71
|
+
context,
|
|
72
|
+
disabled,
|
|
73
|
+
fieldData,
|
|
74
|
+
generateOnChangeHandler,
|
|
75
|
+
inputType,
|
|
76
|
+
path,
|
|
77
|
+
renderValue,
|
|
78
|
+
rule,
|
|
79
|
+
schema,
|
|
80
|
+
translations.value.title,
|
|
81
|
+
validationResult,
|
|
82
|
+
valueEditorSeparator,
|
|
83
|
+
valueEditorType,
|
|
84
|
+
values
|
|
85
|
+
]);
|
|
86
|
+
const renderValueSources = renderValue && !["null", "notNull"].includes(rule.operator) && valueSources.length > 1;
|
|
87
|
+
const sources = useMemo(() => {
|
|
88
|
+
if (renderValueSources) {
|
|
89
|
+
return jsx("div", { className: classNames?.rule?.source, children: jsx(ValueSourceSelectorControlElement, { testID: TestID.valueSourceSelector, field: rule.field, fieldData, title: translations.valueSourceSelector.title, options: valueSourceOptions, value: rule.valueSource ?? "value", className: classNamesProp.valueSource, handleOnChange: generateOnChangeHandler("valueSource"), level: path.length, path, disabled, context, validation: validationResult, schema, rule }) });
|
|
90
|
+
}
|
|
91
|
+
return !renderValueSources && consistentColumns ? jsx("div", { className: classNames?.rule?.source }) : null;
|
|
92
|
+
}, [
|
|
93
|
+
ValueSourceSelectorControlElement,
|
|
94
|
+
classNames?.rule?.source,
|
|
95
|
+
classNamesProp.valueSource,
|
|
96
|
+
consistentColumns,
|
|
97
|
+
context,
|
|
98
|
+
disabled,
|
|
99
|
+
fieldData,
|
|
100
|
+
generateOnChangeHandler,
|
|
101
|
+
path,
|
|
102
|
+
renderValueSources,
|
|
103
|
+
rule,
|
|
104
|
+
schema,
|
|
105
|
+
translations.valueSourceSelector.title,
|
|
106
|
+
validationResult,
|
|
107
|
+
valueSourceOptions
|
|
108
|
+
]);
|
|
109
|
+
return jsxs(Fragment, { children: [showShiftActions && jsx("div", { className: classNames?.rule?.shift, children: jsx(ShiftActionsControlElement, { testID: TestID.shiftActions, level: path.length, path, titles, labels, className: classNamesProp.shiftActions, disabled, shiftUp: shiftRuleUp, shiftDown: shiftRuleDown, shiftUpDisabled, shiftDownDisabled, context, validation: validationResult, schema, ruleOrGroup: rule }) }), enableDragAndDrop && jsx("div", { className: classNames?.rule?.drag, children: jsx(DragHandleControlElement, { testID: TestID.dragHandle, ref: dragRef, level: path.length, path, title: translations.dragHandle.title, label: translations.dragHandle.label, className: classNamesProp.dragHandle, disabled, context, validation: validationResult, schema, ruleOrGroup: rule }) }), jsx("div", { className: classNames?.rule?.field, children: jsx(FieldSelectorControlElement, { testID: TestID.fields, options: schema.fields, title: translations.fields.title, value: rule.field, operator: rule.operator, className: classNamesProp.fields, handleOnChange: generateOnChangeHandler("field"), level: path.length, path, disabled, context, validation: validationResult, schema, rule }) }), operator, sources, value, showCloneButtons && jsx("div", { className: classNames?.rule?.clone, children: jsx(CloneRuleActionControlElement, { testID: TestID.cloneRule, label: translations.cloneRule.label, title: translations.cloneRule.title, className: classNamesProp.cloneRule, handleOnClick: cloneRule, level: path.length, path, disabled, context, validation: validationResult, ruleOrGroup: rule, schema }) }), showLockButtons && jsx("div", { className: classNames?.rule?.lock, children: jsx(LockRuleActionControlElement, { testID: TestID.lockRule, label: translations.lockRule.label, title: translations.lockRule.title, className: classNamesProp.lockRule, handleOnClick: toggleLockRule, level: path.length, path, disabled, disabledTranslation: parentDisabled ? void 0 : translations.lockRuleDisabled, context, validation: validationResult, ruleOrGroup: rule, schema }) }), jsx("div", { className: classNames?.rule?.remove, children: jsx(RemoveRuleActionControlElement, { testID: TestID.removeRule, label: translations.removeRule.label, title: translations.removeRule.title, className: classNamesProp.removeRule, handleOnClick: removeRule, level: path.length, path, disabled, context, validation: validationResult, ruleOrGroup: rule, schema }) })] });
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export { Rule, RuleComponents };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sources":["../../../src/components/query-builder/rule.tsx"],"sourcesContent":["import { useContext, useMemo } from 'react';\nimport {\n type RuleProps,\n TestID,\n useRule,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { inlineVars } from '../../utils';\nimport { AriaText } from '../aria';\nimport { QueryBuilderContext } from './constants';\nimport { queryBuilderRuleStateVars } from './query-builder.css';\nimport { getValidationResult } from './utils';\n\nexport function Rule(props: RuleProps) {\n const { classNames } = useContext(QueryBuilderContext);\n const rule = useRule(props);\n const cloneRule = useStopEventPropagation(rule.cloneRule);\n const toggleLockRule = useStopEventPropagation(rule.toggleLockRule);\n const removeRule = useStopEventPropagation(rule.removeRule);\n const shiftRuleUp = useStopEventPropagation(rule.shiftRuleUp);\n const shiftRuleDown = useStopEventPropagation(rule.shiftRuleDown);\n\n const { valid: isValid, reasons } = getValidationResult(\n props.rule,\n rule.fieldData?.validator,\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderRuleStateVars, {\n isDisabled: rule.disabled,\n isDragging: rule.isDragging,\n isDropTarget: rule.isOver,\n }),\n [rule.disabled, rule.isDragging, rule.isOver],\n );\n\n return (\n <div className={classNames?.rule?.container} style={style}>\n <div\n ref={rule.dndRef}\n className={rule.outerClassName}\n data-dragmonitorid={rule.dragMonitorId}\n data-dropmonitorid={rule.dropMonitorId}\n data-level={rule.path.length}\n data-path={JSON.stringify(rule.path)}\n data-rule-id={rule.id}\n data-testid={TestID.rule}\n >\n <RuleComponents\n {...rule}\n cloneRule={cloneRule}\n removeRule={removeRule}\n shiftRuleDown={shiftRuleDown}\n shiftRuleUp={shiftRuleUp}\n toggleLockRule={toggleLockRule}\n />\n </div>\n {!isValid &&\n reasons?.map((reason) => (\n <AriaText key={reason} className={classNames?.rule?.error}>\n {reason}\n </AriaText>\n ))}\n </div>\n );\n}\n\nexport function RuleComponents({\n classNames: classNamesProp,\n cloneRule,\n context,\n disabled,\n dragRef,\n fieldData,\n generateOnChangeHandler,\n hideValueControls,\n inputType,\n operators,\n parentDisabled,\n path,\n removeRule,\n rule,\n schema,\n shiftDownDisabled,\n shiftUpDisabled,\n shiftRuleDown,\n shiftRuleUp,\n toggleLockRule,\n translations,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n valueSourceOptions,\n valueSources,\n values,\n}: RuleProps & ReturnType<typeof useRule>) {\n const { classNames, consistentColumns } = useContext(QueryBuilderContext);\n\n const {\n controls: {\n shiftActions: ShiftActionsControlElement,\n dragHandle: DragHandleControlElement,\n fieldSelector: FieldSelectorControlElement,\n operatorSelector: OperatorSelectorControlElement,\n valueSourceSelector: ValueSourceSelectorControlElement,\n valueEditor: ValueEditorControlElement,\n cloneRuleAction: CloneRuleActionControlElement,\n lockRuleAction: LockRuleActionControlElement,\n removeRuleAction: RemoveRuleActionControlElement,\n },\n enableDragAndDrop,\n showCloneButtons,\n showLockButtons,\n showShiftActions,\n } = schema;\n\n const titles = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.title,\n shiftDown: translations.shiftActionDown.title,\n }),\n [translations.shiftActionDown.title, translations.shiftActionUp.title],\n );\n\n const labels = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.label,\n shiftDown: translations.shiftActionDown.label,\n }),\n [translations.shiftActionDown.label, translations.shiftActionUp.label],\n );\n\n const renderOperator =\n schema.autoSelectField ||\n rule.field !== translations.fields.placeholderName;\n\n const operator = useMemo(() => {\n if (renderOperator) {\n return (\n <div className={classNames?.rule?.operator}>\n <OperatorSelectorControlElement\n testID={TestID.operators}\n field={rule.field}\n fieldData={fieldData}\n title={translations.operators.title}\n options={operators}\n value={rule.operator}\n className={classNamesProp.operators}\n handleOnChange={generateOnChangeHandler('operator')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderOperator && consistentColumns ? (\n <div className={classNames?.rule?.operator} />\n ) : null;\n }, [\n OperatorSelectorControlElement,\n classNames?.rule?.operator,\n classNamesProp.operators,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n operators,\n path,\n renderOperator,\n rule,\n schema,\n translations.operators.title,\n validationResult,\n ]);\n\n const renderValue =\n renderOperator &&\n (schema.autoSelectOperator ||\n rule.operator !== translations.operators.placeholderName) &&\n !hideValueControls;\n\n const value = useMemo(() => {\n if (renderValue) {\n return (\n <div className={classNames?.rule?.values}>\n <ValueEditorControlElement\n testID={TestID.valueEditor}\n field={rule.field}\n fieldData={fieldData}\n title={translations.value.title}\n operator={rule.operator}\n value={rule.value}\n valueSource={rule.valueSource ?? 'value'}\n type={valueEditorType}\n inputType={inputType}\n values={values}\n listsAsArrays={schema.listsAsArrays}\n parseNumbers={schema.parseNumbers}\n separator={valueEditorSeparator}\n className={classNamesProp.value}\n handleOnChange={generateOnChangeHandler('value')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValue && consistentColumns ? (\n <div className={classNames?.rule?.values} />\n ) : null;\n }, [\n ValueEditorControlElement,\n classNames?.rule?.values,\n classNamesProp.value,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n inputType,\n path,\n renderValue,\n rule,\n schema,\n translations.value.title,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n values,\n ]);\n\n const renderValueSources =\n renderValue &&\n !['null', 'notNull'].includes(rule.operator) &&\n valueSources.length > 1;\n\n const sources = useMemo(() => {\n if (renderValueSources) {\n return (\n <div className={classNames?.rule?.source}>\n <ValueSourceSelectorControlElement\n testID={TestID.valueSourceSelector}\n field={rule.field}\n fieldData={fieldData}\n title={translations.valueSourceSelector.title}\n options={valueSourceOptions}\n value={rule.valueSource ?? 'value'}\n className={classNamesProp.valueSource}\n handleOnChange={generateOnChangeHandler('valueSource')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValueSources && consistentColumns ? (\n <div className={classNames?.rule?.source} />\n ) : null;\n }, [\n ValueSourceSelectorControlElement,\n classNames?.rule?.source,\n classNamesProp.valueSource,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n path,\n renderValueSources,\n rule,\n schema,\n translations.valueSourceSelector.title,\n validationResult,\n valueSourceOptions,\n ]);\n\n return (\n <>\n {showShiftActions && (\n <div className={classNames?.rule?.shift}>\n <ShiftActionsControlElement\n testID={TestID.shiftActions}\n level={path.length}\n path={path}\n titles={titles}\n labels={labels}\n className={classNamesProp.shiftActions}\n disabled={disabled}\n shiftUp={shiftRuleUp}\n shiftDown={shiftRuleDown}\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n {enableDragAndDrop && (\n <div className={classNames?.rule?.drag}>\n <DragHandleControlElement\n testID={TestID.dragHandle}\n ref={dragRef}\n level={path.length}\n path={path}\n title={translations.dragHandle.title}\n label={translations.dragHandle.label}\n className={classNamesProp.dragHandle}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n <div className={classNames?.rule?.field}>\n <FieldSelectorControlElement\n testID={TestID.fields}\n options={schema.fields}\n title={translations.fields.title}\n value={rule.field}\n operator={rule.operator}\n className={classNamesProp.fields}\n handleOnChange={generateOnChangeHandler('field')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n {operator}\n {sources}\n {value}\n {showCloneButtons && (\n <div className={classNames?.rule?.clone}>\n <CloneRuleActionControlElement\n testID={TestID.cloneRule}\n label={translations.cloneRule.label}\n title={translations.cloneRule.title}\n className={classNamesProp.cloneRule}\n handleOnClick={cloneRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n {showLockButtons && (\n <div className={classNames?.rule?.lock}>\n <LockRuleActionControlElement\n testID={TestID.lockRule}\n label={translations.lockRule.label}\n title={translations.lockRule.title}\n className={classNamesProp.lockRule}\n handleOnClick={toggleLockRule}\n level={path.length}\n path={path}\n disabled={disabled}\n disabledTranslation={\n parentDisabled ? undefined : translations.lockRuleDisabled\n }\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n <div className={classNames?.rule?.remove}>\n <RemoveRuleActionControlElement\n testID={TestID.removeRule}\n label={translations.removeRule.label}\n title={translations.removeRule.title}\n className={classNamesProp.removeRule}\n handleOnClick={removeRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n </>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import type { ComponentType, ReactElement } from 'react';
|
|
2
|
+
import type { QueryBuilderProps as RQBProps, FullField, FullOperator, FullCombinator, ActionProps as RQBActionProps, RuleGroupProps, RuleGroupType, ValueEditorProps, useRuleGroup } from 'react-querybuilder';
|
|
3
|
+
import type { LiteralUnion, PartialDeep } from 'type-fest';
|
|
4
|
+
import type { AsType, RenderPropsChildren, OmitProtectedProps } from '../../types';
|
|
5
|
+
import type { ButtonClassNames, ButtonProps } from '../button/types';
|
|
6
|
+
import type { CheckboxClassNames, CheckboxRenderProps } from '../checkbox/types';
|
|
7
|
+
import type { InputClassNames, InputProps } from '../input/types';
|
|
8
|
+
import type { RadioClassNames } from '../radio/types';
|
|
9
|
+
import type { SelectClassNames, SelectProps, SelectRenderProps } from '../select/types';
|
|
10
|
+
import type { SwitchClassNames } from '../switch/types';
|
|
11
|
+
import type { TextAreaProps, TextAreaClassNames } from '../textarea/types';
|
|
12
|
+
type DefaultRQBProps = RQBProps<RuleGroupType, FullField, FullOperator, FullCombinator>;
|
|
13
|
+
type SupportedClassNames = Pick<Exclude<DefaultRQBProps['controlClassnames'], undefined>, 'addGroup' | 'addRule' | 'cloneGroup' | 'cloneRule' | 'dragHandle' | 'lockGroup' | 'lockRule' | 'removeGroup' | 'removeRule'>;
|
|
14
|
+
export type QueryBuilderClassNames = PartialDeep<{
|
|
15
|
+
[K in keyof SupportedClassNames]: string;
|
|
16
|
+
} & {
|
|
17
|
+
queryBuilder: {
|
|
18
|
+
container: string;
|
|
19
|
+
queryBuilder: string;
|
|
20
|
+
};
|
|
21
|
+
group: {
|
|
22
|
+
container: string;
|
|
23
|
+
group: string;
|
|
24
|
+
header: string;
|
|
25
|
+
body: string;
|
|
26
|
+
footer: string;
|
|
27
|
+
add: string;
|
|
28
|
+
clone: string;
|
|
29
|
+
combinator: string;
|
|
30
|
+
drag: string;
|
|
31
|
+
lock: string;
|
|
32
|
+
shift: string;
|
|
33
|
+
remove: string;
|
|
34
|
+
toggle: string;
|
|
35
|
+
};
|
|
36
|
+
rule: {
|
|
37
|
+
container: string;
|
|
38
|
+
rule: string;
|
|
39
|
+
field: string;
|
|
40
|
+
operator: string;
|
|
41
|
+
source: string;
|
|
42
|
+
values: string;
|
|
43
|
+
value: string;
|
|
44
|
+
add: string;
|
|
45
|
+
clone: string;
|
|
46
|
+
drag: string;
|
|
47
|
+
lock: string;
|
|
48
|
+
shift: string;
|
|
49
|
+
remove: string;
|
|
50
|
+
error: string;
|
|
51
|
+
};
|
|
52
|
+
button: ButtonClassNames;
|
|
53
|
+
checkbox: CheckboxClassNames;
|
|
54
|
+
input: InputClassNames;
|
|
55
|
+
radio: RadioClassNames;
|
|
56
|
+
select: SelectClassNames;
|
|
57
|
+
switch: SwitchClassNames;
|
|
58
|
+
textarea: TextAreaClassNames;
|
|
59
|
+
}>;
|
|
60
|
+
export type QueryBuilderSizes = 'sm' | 'lg';
|
|
61
|
+
export type QueryBuilderMapping = Partial<{
|
|
62
|
+
button: Record<QueryBuilderSizes, OmitProtectedProps<ButtonProps>>;
|
|
63
|
+
error: Record<QueryBuilderSizes, string>;
|
|
64
|
+
input: Record<QueryBuilderSizes, OmitProtectedProps<InputProps>>;
|
|
65
|
+
select: Record<QueryBuilderSizes, OmitProtectedProps<SelectProps<object>>>;
|
|
66
|
+
textarea: Record<QueryBuilderSizes, OmitProtectedProps<TextAreaProps>>;
|
|
67
|
+
}>;
|
|
68
|
+
export type QueryBuilderValueEditors = Record<LiteralUnion<Exclude<ValueEditorProps['type'], null | undefined>, string>, (props: ValueEditorProps) => ReactElement>;
|
|
69
|
+
export type RuleGroupElementsProps = RuleGroupProps & ReturnType<typeof useRuleGroup>;
|
|
70
|
+
export type RuleGroupElements = {
|
|
71
|
+
ruleGroupBodyElements: ComponentType<RuleGroupElementsProps>;
|
|
72
|
+
ruleGroupFooterElements: ComponentType<RuleGroupElementsProps>;
|
|
73
|
+
ruleGroupHeaderElements: ComponentType<RuleGroupElementsProps>;
|
|
74
|
+
};
|
|
75
|
+
type BaseQueryBuilderProps = {
|
|
76
|
+
classNames?: QueryBuilderClassNames;
|
|
77
|
+
consistentColumns?: boolean;
|
|
78
|
+
controlElements?: DefaultRQBProps['controlElements'] & Partial<RuleGroupElements>;
|
|
79
|
+
icons?: {
|
|
80
|
+
checkbox?: RenderPropsChildren<CheckboxRenderProps>;
|
|
81
|
+
select?: RenderPropsChildren<SelectRenderProps>;
|
|
82
|
+
};
|
|
83
|
+
mapping?: QueryBuilderMapping;
|
|
84
|
+
size?: QueryBuilderSizes;
|
|
85
|
+
valueEditors?: QueryBuilderValueEditors;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Omitted props are currently unsupported functionality
|
|
89
|
+
*/
|
|
90
|
+
export type QueryBuilderProps = Partial<Omit<DefaultRQBProps, 'showCombinatorsBetweenRules' | 'listsAsArrays'> & BaseQueryBuilderProps>;
|
|
91
|
+
export type ActionProps = AsType<RQBActionProps>;
|
|
92
|
+
export type QueryBuilderContextValue = BaseQueryBuilderProps & Required<Pick<BaseQueryBuilderProps, 'size'>> & {
|
|
93
|
+
controlElements: RuleGroupElements;
|
|
94
|
+
};
|
|
95
|
+
export type QueryBuilderState = {
|
|
96
|
+
isDisabled: boolean;
|
|
97
|
+
};
|
|
98
|
+
export type QueryBuilderGroupState = {
|
|
99
|
+
/**
|
|
100
|
+
* Columns after the core 4 columns and before the remove rule column
|
|
101
|
+
*/
|
|
102
|
+
after: number;
|
|
103
|
+
/**
|
|
104
|
+
* Columns before the core 4 columns
|
|
105
|
+
*/
|
|
106
|
+
before: number;
|
|
107
|
+
/**
|
|
108
|
+
* Calculated based on enabled features
|
|
109
|
+
*/
|
|
110
|
+
columns: number;
|
|
111
|
+
/**
|
|
112
|
+
* Represents whether the rule or any of its parents are disabled
|
|
113
|
+
*
|
|
114
|
+
* RQB also uses this property when a rule is locked
|
|
115
|
+
*/
|
|
116
|
+
isDisabled: boolean;
|
|
117
|
+
};
|
|
118
|
+
export type QueryBuilderRuleState = {
|
|
119
|
+
/**
|
|
120
|
+
* Represents whether the rule or any of its parents are disabled
|
|
121
|
+
*
|
|
122
|
+
* RQB also uses this property when a rule is locked
|
|
123
|
+
*/
|
|
124
|
+
isDisabled: boolean;
|
|
125
|
+
isDragging: boolean;
|
|
126
|
+
isDropTarget: boolean;
|
|
127
|
+
};
|
|
128
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
import type { PressEvent } from 'react-aria';
|
|
3
|
+
import type { RuleType, RuleValidator, ValidationResult } from 'react-querybuilder';
|
|
4
|
+
/**
|
|
5
|
+
* This is required because the C2DS Button supports an onPress event but
|
|
6
|
+
* QueryBuilder provides a callback that expects a MouseEvent and will error
|
|
7
|
+
* out if preventDefault is not available as a method.
|
|
8
|
+
* @param event
|
|
9
|
+
*/
|
|
10
|
+
export declare const pressToMouseEvent: (event: PressEvent) => MouseEvent;
|
|
11
|
+
/**
|
|
12
|
+
* Validates according to the validator function
|
|
13
|
+
*
|
|
14
|
+
* For single-value rules (e.g. 5 is a number), validator function should provide a single conditional
|
|
15
|
+
* const singleValidator = z.string().min(1);
|
|
16
|
+
*
|
|
17
|
+
* For multi-value rules (e.g. using operators such as "between" or "during), validator func can optionally
|
|
18
|
+
* be a union conditional https://zod.dev/?id=unions to allow validation against either a single value or multiple.
|
|
19
|
+
* Right and left validators in the tuple do not need to be the same.
|
|
20
|
+
*
|
|
21
|
+
* const multiValidator = z.union([
|
|
22
|
+
* singleValidator,
|
|
23
|
+
* z.tuple([singleValidator, singleValidator])
|
|
24
|
+
* ])
|
|
25
|
+
*
|
|
26
|
+
* @param rule
|
|
27
|
+
* @param validator
|
|
28
|
+
*/
|
|
29
|
+
export declare const getValidationResult: (rule: RuleType, validator?: RuleValidator) => ValidationResult;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { noop } from 'lodash';
|
|
2
|
+
|
|
3
|
+
const pressToMouseEvent = (event) => ({
|
|
4
|
+
...event,
|
|
5
|
+
preventDefault: noop,
|
|
6
|
+
stopPropagation: noop
|
|
7
|
+
});
|
|
8
|
+
const getValidationResult = (rule, validator) => {
|
|
9
|
+
if (!validator) {
|
|
10
|
+
return { valid: true };
|
|
11
|
+
}
|
|
12
|
+
const result = validator(rule);
|
|
13
|
+
if (typeof result === "boolean") {
|
|
14
|
+
return { valid: result };
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
valid: result.valid,
|
|
18
|
+
reasons: result.valid ? [] : result.reasons
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { getValidationResult, pressToMouseEvent };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/components/query-builder/utils.ts"],"sourcesContent":["import { noop } from 'lodash';\nimport type { MouseEvent } from 'react';\nimport type { PressEvent } from 'react-aria';\nimport type {\n RuleType,\n RuleValidator,\n ValidationResult,\n} from 'react-querybuilder';\n\n/**\n * This is required because the C2DS Button supports an onPress event but\n * QueryBuilder provides a callback that expects a MouseEvent and will error\n * out if preventDefault is not available as a method.\n * @param event\n */\nexport const pressToMouseEvent = (event: PressEvent) =>\n ({\n ...event,\n preventDefault: noop,\n stopPropagation: noop,\n }) as unknown as MouseEvent;\n\n/**\n * Validates according to the validator function\n *\n * For single-value rules (e.g. 5 is a number), validator function should provide a single conditional\n * const singleValidator = z.string().min(1);\n *\n * For multi-value rules (e.g. using operators such as \"between\" or \"during), validator func can optionally\n * be a union conditional https://zod.dev/?id=unions to allow validation against either a single value or multiple.\n * Right and left validators in the tuple do not need to be the same.\n *\n * const multiValidator = z.union([\n * singleValidator,\n * z.tuple([singleValidator, singleValidator])\n * ])\n *\n * @param rule\n * @param validator\n */\nexport const getValidationResult = (\n rule: RuleType,\n validator?: RuleValidator,\n): ValidationResult => {\n if (!validator) {\n return { valid: true };\n }\n\n const result = validator(rule);\n\n if (typeof result === 'boolean') {\n return { valid: result };\n }\n\n return {\n valid: result.valid,\n reasons: result.valid ? [] : result.reasons,\n };\n};\n"],"names":[],"mappings":";;;AAea,MAAA,iBAAA,GAAoB,CAAC,KAC/B,MAAA;AAAA,EACC,GAAG,KAAA;AAAA,EACH,cAAgB,EAAA,IAAA;AAAA,EAChB,eAAiB,EAAA,IAAA;AACnB,CAAA,EAAA;AAoBW,MAAA,mBAAA,GAAsB,CACjC,IAAA,EACA,SACqB,KAAA;AACrB,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,EAAE,OAAO,IAAK,EAAA,CAAA;AAAA,GACvB;AAEA,EAAM,MAAA,MAAA,GAAS,UAAU,IAAI,CAAA,CAAA;AAE7B,EAAI,IAAA,OAAO,WAAW,SAAW,EAAA;AAC/B,IAAO,OAAA,EAAE,OAAO,MAAO,EAAA,CAAA;AAAA,GACzB;AAEA,EAAO,OAAA;AAAA,IACL,OAAO,MAAO,CAAA,KAAA;AAAA,IACd,OAAS,EAAA,MAAA,CAAO,KAAQ,GAAA,KAAK,MAAO,CAAA,OAAA;AAAA,GACtC,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ValueEditorProps } from 'react-querybuilder';
|
|
2
|
+
import type { QueryBuilderValueEditors } from './types';
|
|
3
|
+
export declare const defaultValueEditors: QueryBuilderValueEditors;
|
|
4
|
+
export declare function ValueEditor(props: ValueEditorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext, useCallback } from 'react';
|
|
3
|
+
import { useValueEditor } from 'react-querybuilder';
|
|
4
|
+
import { Checkbox } from '../checkbox/checkbox.js';
|
|
5
|
+
import { Input } from '../input/input.js';
|
|
6
|
+
import { RadioGroup, Radio } from '../radio/radio.js';
|
|
7
|
+
import { Switch } from '../switch/switch.js';
|
|
8
|
+
import { TextArea } from '../textarea/textarea.js';
|
|
9
|
+
import { QueryBuilderContext, multiValueOperators } from './constants.js';
|
|
10
|
+
import { getValidationResult } from './utils.js';
|
|
11
|
+
import { ValueSelector } from './value-selector.js';
|
|
12
|
+
|
|
13
|
+
function CheckboxValueEditor({ disabled, fieldData: { name, validator }, handleOnChange, rule, value }) {
|
|
14
|
+
const { icons } = useContext(QueryBuilderContext);
|
|
15
|
+
const { valid } = getValidationResult(rule, validator);
|
|
16
|
+
return jsx(Checkbox, { isDisabled: disabled, isSelected: value, onChange: handleOnChange, "aria-invalid": !valid, "aria-label": name, children: icons?.checkbox });
|
|
17
|
+
}
|
|
18
|
+
function RadioGroupValueEditor({ disabled, fieldData: { name, validator }, handleOnChange, rule, value, values }) {
|
|
19
|
+
const { valid } = getValidationResult(rule, validator);
|
|
20
|
+
return jsx(RadioGroup, { value, isDisabled: disabled, onChange: handleOnChange, "aria-invalid": !valid, "aria-label": name, children: values?.map((option) => jsx(Radio, { value: option.value, children: option.label }, option.name)) });
|
|
21
|
+
}
|
|
22
|
+
const defaultOptions = [];
|
|
23
|
+
function SelectValueEditor({ disabled, fieldData: { name, validator }, handleOnChange, rule, type, value, values = defaultOptions, ...rest }) {
|
|
24
|
+
const { valid } = getValidationResult(rule, validator);
|
|
25
|
+
return jsx(ValueSelector, { ...rest, disabled, multiple: type === "multiselect", options: values, title: name, validation: !valid, value, handleOnChange });
|
|
26
|
+
}
|
|
27
|
+
function SwitchValueEditor({ disabled, fieldData: { name, validator }, handleOnChange, rule, value }) {
|
|
28
|
+
const { valid } = getValidationResult(rule, validator);
|
|
29
|
+
return jsx(Switch, { isDisabled: disabled, isSelected: Boolean(value), onChange: handleOnChange, "aria-invalid": !valid, "aria-label": name });
|
|
30
|
+
}
|
|
31
|
+
function TextValueEditor({ disabled, fieldData: { name, placeholder, validator }, handleOnChange, inputType, rule, value }) {
|
|
32
|
+
const { valid } = getValidationResult(rule, validator);
|
|
33
|
+
const handleChange = useCallback((event) => handleOnChange(event.target.value), [handleOnChange]);
|
|
34
|
+
return jsx(Input, { disabled, placeholder, type: inputType ?? "text", value, onChange: handleChange, "aria-invalid": !valid, "aria-label": name });
|
|
35
|
+
}
|
|
36
|
+
function TextareaValueEditor({ disabled, fieldData: { name, placeholder, validator }, handleOnChange, rule, value }) {
|
|
37
|
+
const { valid } = getValidationResult(rule, validator);
|
|
38
|
+
const handleChange = useCallback((event) => handleOnChange(event.currentTarget.textContent), [handleOnChange]);
|
|
39
|
+
return jsx(TextArea, { disabled, placeholder, value, onChange: handleChange, "aria-label": name, "aria-invalid": !valid });
|
|
40
|
+
}
|
|
41
|
+
const defaultValueEditors = {
|
|
42
|
+
checkbox: CheckboxValueEditor,
|
|
43
|
+
multiselect: SelectValueEditor,
|
|
44
|
+
radio: RadioGroupValueEditor,
|
|
45
|
+
select: SelectValueEditor,
|
|
46
|
+
switch: SwitchValueEditor,
|
|
47
|
+
text: TextValueEditor,
|
|
48
|
+
textarea: TextareaValueEditor
|
|
49
|
+
};
|
|
50
|
+
function ValueEditor(props) {
|
|
51
|
+
const { fieldData: { id, valueEditorType }, operator, rule: ruleProp } = props;
|
|
52
|
+
const { classNames, valueEditors } = useContext(QueryBuilderContext);
|
|
53
|
+
const { valueAsArray, multiValueHandler } = useValueEditor({
|
|
54
|
+
...props,
|
|
55
|
+
skipHook: true
|
|
56
|
+
});
|
|
57
|
+
const rule = useCallback((index) => ({
|
|
58
|
+
...ruleProp,
|
|
59
|
+
value: valueAsArray[index]
|
|
60
|
+
}), [ruleProp, valueAsArray]);
|
|
61
|
+
const handleRangeStartChange = useCallback((value) => multiValueHandler(value, 0), [multiValueHandler]);
|
|
62
|
+
const handleRangeEndChange = useCallback((value) => multiValueHandler(value, 1), [multiValueHandler]);
|
|
63
|
+
const type = (typeof valueEditorType === "function" ? valueEditorType(operator) : valueEditorType) ?? "text";
|
|
64
|
+
const Editor = valueEditors?.[type];
|
|
65
|
+
if (operator === "null" || operator === "notNull" || !Editor) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
if (multiValueOperators.includes(operator)) {
|
|
69
|
+
return jsx(Fragment, { children: ["start", "end"].map((term, index) => jsx("div", { className: classNames?.rule?.value, children: jsx(Editor, { ...props, rule: rule(index), value: valueAsArray[index], handleOnChange: !index ? handleRangeStartChange : handleRangeEndChange }) }, `${id}-${term}`)) });
|
|
70
|
+
}
|
|
71
|
+
return jsx("div", { className: classNames?.rule?.value, children: jsx(Editor, { ...props }) });
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export { ValueEditor, defaultValueEditors };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-editor.js","sources":["../../../src/components/query-builder/value-editor.tsx"],"sourcesContent":["import {\n type ChangeEvent,\n type FormEvent,\n useCallback,\n useContext,\n} from 'react';\nimport { useValueEditor, type ValueEditorProps } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport { Input, type InputType } from '../input';\nimport { Radio, RadioGroup } from '../radio';\nimport { Switch } from '../switch';\nimport { TextArea } from '../textarea';\nimport { multiValueOperators, QueryBuilderContext } from './constants';\nimport type { QueryBuilderValueEditors } from './types';\nimport { getValidationResult } from './utils';\nimport { ValueSelector } from './value-selector';\n\nfunction CheckboxValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { icons } = useContext(QueryBuilderContext);\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Checkbox\n isDisabled={disabled}\n isSelected={value}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {icons?.checkbox}\n </Checkbox>\n );\n}\n\nfunction RadioGroupValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n values,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <RadioGroup\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </RadioGroup>\n );\n}\n\nconst defaultOptions: unknown[] = [];\n\nfunction SelectValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n type,\n value,\n values = defaultOptions,\n ...rest\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <ValueSelector\n {...rest}\n disabled={disabled}\n multiple={type === 'multiselect'}\n options={values}\n title={name}\n validation={!valid}\n value={value}\n handleOnChange={handleOnChange}\n />\n );\n}\n\nfunction SwitchValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n return (\n <Switch\n isDisabled={disabled}\n isSelected={Boolean(value)}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n inputType,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) =>\n handleOnChange(event.target.value),\n [handleOnChange],\n );\n\n return (\n <Input\n disabled={disabled}\n placeholder={placeholder}\n type={(inputType as InputType) ?? 'text'}\n value={value}\n onChange={handleChange}\n aria-invalid={!valid}\n aria-label={name}\n />\n );\n}\n\nfunction TextareaValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid } = getValidationResult(rule, validator);\n\n const handleChange = useCallback(\n (event: FormEvent<HTMLSpanElement>) =>\n handleOnChange(event.currentTarget.textContent),\n [handleOnChange],\n );\n\n return (\n <TextArea\n disabled={disabled}\n placeholder={placeholder}\n value={value}\n onChange={handleChange}\n aria-label={name}\n aria-invalid={!valid}\n />\n );\n}\n\nexport const defaultValueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\n multiselect: SelectValueEditor,\n radio: RadioGroupValueEditor,\n select: SelectValueEditor,\n switch: SwitchValueEditor,\n text: TextValueEditor,\n textarea: TextareaValueEditor,\n};\n\nexport function ValueEditor(props: ValueEditorProps) {\n const {\n fieldData: { id, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\n\n const { classNames, valueEditors } = useContext(QueryBuilderContext);\n\n const { valueAsArray, multiValueHandler } = useValueEditor({\n ...props,\n skipHook: true,\n });\n\n const rule = useCallback(\n (index: number) => ({\n ...ruleProp,\n value: valueAsArray[index],\n }),\n [ruleProp, valueAsArray],\n );\n\n const handleRangeStartChange = useCallback(\n (value: string) => multiValueHandler(value, 0),\n [multiValueHandler],\n );\n\n const handleRangeEndChange = useCallback(\n (value: string) => multiValueHandler(value, 1),\n [multiValueHandler],\n );\n\n const type =\n (typeof valueEditorType === 'function'\n ? valueEditorType(operator)\n : valueEditorType) ?? 'text';\n\n const Editor = valueEditors?.[type];\n\n if (operator === 'null' || operator === 'notNull' || !Editor) {\n return null;\n }\n\n if (multiValueOperators.includes(operator)) {\n return (\n <>\n {['start', 'end'].map((term, index) => (\n <div key={`${id}-${term}`} className={classNames?.rule?.value}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n !index ? handleRangeStartChange : handleRangeEndChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div className={classNames?.rule?.value}>\n <Editor {...props} />\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { type FullOption, type ValueSelectorProps } from 'react-querybuilder';
|
|
2
|
+
export declare function ValueSelector<T extends FullOption = FullOption>({ handleOnChange, listsAsArrays, options: optionsProp, multiple, title, validation, value, ...rest }: ValueSelectorProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext, useCallback, useMemo } from 'react';
|
|
3
|
+
import { useValueSelector, isOptionGroupArray } from 'react-querybuilder';
|
|
4
|
+
import { callRenderProps } from '../../utils/props.js';
|
|
5
|
+
import { AriaSection, AriaHeader, AriaSelectValue } from '../aria/aria.js';
|
|
6
|
+
import { Button } from '../button/button.js';
|
|
7
|
+
import { OptionsItem, OptionsList, Options } from '../options/options.js';
|
|
8
|
+
import { Select } from '../select/select.js';
|
|
9
|
+
import { QueryBuilderContext } from './constants.js';
|
|
10
|
+
|
|
11
|
+
function ValueSelector({ handleOnChange, listsAsArrays, options: optionsProp, multiple, title, validation, value, ...rest }) {
|
|
12
|
+
const { icons, size } = useContext(QueryBuilderContext);
|
|
13
|
+
const { onChange, val } = useValueSelector({
|
|
14
|
+
handleOnChange,
|
|
15
|
+
listsAsArrays,
|
|
16
|
+
multiple,
|
|
17
|
+
value
|
|
18
|
+
});
|
|
19
|
+
const handleSelectionChange = useCallback((selection) => onChange(`${selection}`), [onChange]);
|
|
20
|
+
const handleMultiSelectChange = useCallback((keys) => onChange([...keys].join(", ")), [onChange]);
|
|
21
|
+
const options = useMemo(() => isOptionGroupArray(optionsProp) ? optionsProp.map((section) => jsxs(AriaSection, { children: [jsx(AriaHeader, { children: section.label }), section.options.map((option) => jsx(OptionsItem, { id: option.name, children: option.label }, option.name))] }, section.label)) : optionsProp.map((option) => jsx(OptionsItem, { id: option.name, children: option.label }, option.name)), [optionsProp]);
|
|
22
|
+
return multiple ? jsx(
|
|
23
|
+
OptionsList,
|
|
24
|
+
{ ...rest, selectedKeys: val, selectionMode: "multiple", size, onSelectionChange: handleMultiSelectChange, "aria-label": title, children: options }
|
|
25
|
+
) : jsx(Select, { ...rest, selectedKey: Array.isArray(val) ? val[0] : val, size, isInvalid: title === "Value" && !validation, onSelectionChange: handleSelectionChange, "aria-label": title, children: (renderProps) => jsxs(Fragment, { children: [jsxs(Button, { children: [jsx(AriaSelectValue, { children: ({ selectedText }) => selectedText }), callRenderProps(icons?.select, renderProps)] }), jsx(Options, { children: jsx(OptionsList, { children: options }) })] }) });
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { ValueSelector };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-selector.js","sources":["../../../src/components/query-builder/value-selector.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react';\nimport type { Key } from 'react-aria';\nimport type { Selection } from 'react-aria-components';\nimport {\n type FullOption,\n isOptionGroupArray,\n useValueSelector,\n type ValueSelectorProps,\n} from 'react-querybuilder';\nimport { callRenderProps } from '../../utils';\nimport { AriaHeader, AriaSection, AriaSelectValue } from '../aria';\nimport { Button } from '../button';\nimport { Options, OptionsItem, OptionsList } from '../options';\nimport { Select } from '../select';\nimport { QueryBuilderContext } from './constants';\n\nexport function ValueSelector<T extends FullOption = FullOption>({\n handleOnChange,\n listsAsArrays,\n options: optionsProp,\n multiple,\n title,\n validation,\n value,\n ...rest\n}: ValueSelectorProps<T>) {\n const { icons, size } = useContext(QueryBuilderContext);\n\n const { onChange, val } = useValueSelector({\n handleOnChange,\n listsAsArrays,\n multiple,\n value,\n });\n\n const handleSelectionChange = useCallback(\n (selection: Key) => onChange(`${selection}`),\n [onChange],\n );\n\n const handleMultiSelectChange = useCallback(\n (keys: Selection) => onChange([...keys].join(', ')),\n [onChange],\n );\n\n const options = useMemo(\n () =>\n isOptionGroupArray(optionsProp)\n ? optionsProp.map((section) => (\n <AriaSection key={section.label}>\n <AriaHeader>{section.label}</AriaHeader>\n {section.options.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n ))}\n </AriaSection>\n ))\n : optionsProp.map((option) => (\n <OptionsItem id={option.name} key={option.name}>\n {option.label}\n </OptionsItem>\n )),\n [optionsProp],\n );\n\n return multiple ? (\n <OptionsList // TODO: Replace with ChipField when it exists\n {...rest}\n selectedKeys={val}\n selectionMode='multiple'\n size={size}\n onSelectionChange={handleMultiSelectChange}\n aria-label={title}\n >\n {options}\n </OptionsList>\n ) : (\n <Select\n {...rest}\n selectedKey={Array.isArray(val) ? val[0] : val}\n size={size}\n isInvalid={title === 'Value' && !validation}\n onSelectionChange={handleSelectionChange}\n aria-label={title}\n >\n {(renderProps) => (\n <>\n <Button>\n <AriaSelectValue>\n {({ selectedText }) => selectedText}\n </AriaSelectValue>\n {callRenderProps(icons?.select, renderProps)}\n </Button>\n <Options>\n <OptionsList>{options}</OptionsList>\n </Options>\n </>\n )}\n </Select>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { Radio, RadioContext, RadioGroup, RadioGroupContext } from './radio';
|
|
2
|
+
export { radioClassNames, radioColorVars, radioSpaceVars, radioGroupStateVars, radioStateVars, } from './radio.css';
|
|
3
|
+
export { type RadioAlignment, type RadioClassNames, type RadioContextProps, type RadioGroupProps, type RadioGroupState, type RadioProps, type RadioState, } from './types';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { RadioClassNames } from './types';
|
|
2
|
+
export declare const radioContainer: string;
|
|
3
|
+
export declare const radioGroupContainer: string;
|
|
4
|
+
export declare const radioColorVars: {
|
|
5
|
+
border: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
6
|
+
background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
7
|
+
color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
8
|
+
};
|
|
9
|
+
export declare const radioSpaceVars: {
|
|
10
|
+
diameter: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
11
|
+
gap: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
12
|
+
elementGap: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
13
|
+
};
|
|
14
|
+
export declare const radioStateVars: {
|
|
15
|
+
alignInput: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
16
|
+
isDisabled: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
17
|
+
isFocused: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
18
|
+
isFocusVisible: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
19
|
+
isHovered: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
20
|
+
isPressed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
21
|
+
isReadOnly: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
22
|
+
isSelected: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
23
|
+
isInvalid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
24
|
+
isRequired: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
25
|
+
};
|
|
26
|
+
export declare const radioGroupStateVars: {
|
|
27
|
+
alignInput: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
28
|
+
orientation: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
29
|
+
isDisabled: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
30
|
+
isReadOnly: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
31
|
+
isInvalid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
32
|
+
isRequired: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
33
|
+
};
|
|
34
|
+
export declare const radioClassNames: RadioClassNames;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ContextValue } from 'react-aria-components';
|
|
2
|
+
import type { RadioGroupProps, RadioRenderProps, RadioContextProps } from './types';
|
|
3
|
+
export declare const RadioContext: import("react").Context<ContextValue<RadioContextProps, HTMLLabelElement>>;
|
|
4
|
+
export declare const Radio: (props: Omit<import("react-aria-components").RadioProps, "children" | "className" | "style"> & {
|
|
5
|
+
children?: import("../..").RenderPropsChildren<RadioRenderProps>;
|
|
6
|
+
label?: string;
|
|
7
|
+
classNames?: import("./types").RadioClassNames;
|
|
8
|
+
alignInput?: import("./types").RadioAlignment;
|
|
9
|
+
} & import("react").RefAttributes<HTMLLabelElement>) => import("react").ReactElement | null;
|
|
10
|
+
export declare const RadioGroupContext: import("react").Context<ContextValue<RadioGroupProps, HTMLDivElement>>;
|
|
11
|
+
export declare const RadioGroup: (props: Omit<import("react-aria-components").RadioGroupProps, "className" | "style"> & Pick<{
|
|
12
|
+
children?: import("../..").RenderPropsChildren<RadioRenderProps>;
|
|
13
|
+
label?: string;
|
|
14
|
+
classNames?: import("./types").RadioClassNames;
|
|
15
|
+
alignInput?: import("./types").RadioAlignment;
|
|
16
|
+
}, "classNames" | "label" | "alignInput"> & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement | null;
|