@accelint/design-toolkit 3.0.0 → 5.0.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/dist/components/accordion/index.d.ts +1 -1
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/accordion/styles.d.ts +1 -1
- package/dist/components/accordion/styles.js +1 -1
- package/dist/components/accordion/styles.js.map +1 -1
- package/dist/components/accordion/types.d.ts +1 -1
- package/dist/components/action-bar/index.d.ts +10 -0
- package/dist/components/action-bar/index.js +2 -0
- package/dist/components/action-bar/index.js.map +1 -0
- package/dist/components/action-bar/styles.d.ts +5 -0
- package/dist/components/action-bar/styles.js +2 -0
- package/dist/components/action-bar/styles.js.map +1 -0
- package/dist/components/action-bar/types.d.ts +5 -0
- package/dist/components/action-bar/types.js +2 -0
- package/dist/components/action-bar/types.js.map +1 -0
- package/dist/components/avatar/index.d.ts +1 -1
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/avatar/styles.d.ts +1 -1
- package/dist/components/avatar/styles.js +1 -1
- package/dist/components/avatar/styles.js.map +1 -1
- package/dist/components/avatar/types.d.ts +1 -1
- package/dist/components/badge/index.d.ts +1 -1
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/badge/styles.d.ts +1 -1
- package/dist/components/badge/styles.js +1 -1
- package/dist/components/badge/styles.js.map +1 -1
- package/dist/components/button/index.d.ts +1 -1
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/styles.d.ts +3 -3
- package/dist/components/button/styles.js +1 -1
- package/dist/components/button/styles.js.map +1 -1
- package/dist/components/button/types.d.ts +1 -1
- package/dist/components/checkbox/styles.d.ts +1 -1
- package/dist/components/checkbox/styles.js +1 -1
- package/dist/components/checkbox/styles.js.map +1 -1
- package/dist/components/chip/index.d.ts +1 -1
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/chip/styles.d.ts +4 -4
- package/dist/components/chip/styles.js +1 -1
- package/dist/components/chip/styles.js.map +1 -1
- package/dist/components/classification-badge/index.d.ts +1 -1
- package/dist/components/classification-badge/index.js.map +1 -1
- package/dist/components/classification-badge/styles.js +1 -1
- package/dist/components/classification-badge/styles.js.map +1 -1
- package/dist/components/classification-banner/index.d.ts +1 -1
- package/dist/components/classification-banner/index.js.map +1 -1
- package/dist/components/classification-banner/styles.js +1 -1
- package/dist/components/classification-banner/styles.js.map +1 -1
- package/dist/components/color-picker/styles.d.ts +1 -1
- package/dist/components/color-picker/styles.js +1 -1
- package/dist/components/color-picker/styles.js.map +1 -1
- package/dist/components/combobox-field/index.d.ts +1 -1
- package/dist/components/combobox-field/index.js.map +1 -1
- package/dist/components/combobox-field/styles.d.ts +3 -3
- package/dist/components/combobox-field/styles.js +1 -1
- package/dist/components/combobox-field/styles.js.map +1 -1
- package/dist/components/combobox-field/types.d.ts +1 -1
- package/dist/components/date-field/index.d.ts +1 -3
- package/dist/components/date-field/index.js +1 -1
- package/dist/components/date-field/index.js.map +1 -1
- package/dist/components/date-field/styles.d.ts +41 -51
- package/dist/components/date-field/styles.js +1 -1
- package/dist/components/date-field/styles.js.map +1 -1
- package/dist/components/date-field/types.d.ts +12 -15
- package/dist/components/details-list/index.d.ts +1 -1
- package/dist/components/details-list/index.js +1 -1
- package/dist/components/details-list/index.js.map +1 -1
- package/dist/components/details-list/styles.d.ts +1 -1
- package/dist/components/details-list/styles.js +1 -1
- package/dist/components/details-list/styles.js.map +1 -1
- package/dist/components/dialog/index.d.ts +28 -38
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/dialog/styles.d.ts +60 -0
- package/dist/components/dialog/styles.js +2 -0
- package/dist/components/dialog/styles.js.map +1 -0
- package/dist/components/dialog/types.d.ts +14 -0
- package/dist/components/dialog/types.js +2 -0
- package/dist/components/dialog/types.js.map +1 -0
- package/dist/components/drawer/index.d.ts +1 -1
- package/dist/components/drawer/index.js +1 -1
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/drawer/styles.d.ts +2 -2
- package/dist/components/drawer/styles.js +1 -1
- package/dist/components/drawer/styles.js.map +1 -1
- package/dist/components/drawer/types.d.ts +1 -1
- package/dist/components/hero/index.js +1 -1
- package/dist/components/hero/index.js.map +1 -1
- package/dist/components/hero/styles.d.ts +1 -1
- package/dist/components/hero/styles.js +1 -1
- package/dist/components/hero/styles.js.map +1 -1
- package/dist/components/hotkey/index.d.ts +1 -1
- package/dist/components/hotkey/index.js.map +1 -1
- package/dist/components/hotkey/styles.d.ts +1 -1
- package/dist/components/hotkey/styles.js +1 -1
- package/dist/components/hotkey/styles.js.map +1 -1
- package/dist/components/icon/index.d.ts +1 -1
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/icon/styles.d.ts +1 -1
- package/dist/components/input/index.d.ts +1 -1
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/styles.d.ts +1 -1
- package/dist/components/input/styles.js +1 -1
- package/dist/components/input/styles.js.map +1 -1
- package/dist/components/label/index.d.ts +1 -1
- package/dist/components/label/index.js.map +1 -1
- package/dist/components/label/styles.d.ts +1 -1
- package/dist/components/label/styles.js +1 -1
- package/dist/components/label/styles.js.map +1 -1
- package/dist/components/lines/index.d.ts +9 -0
- package/dist/components/lines/index.js +2 -0
- package/dist/components/lines/index.js.map +1 -0
- package/dist/components/lines/styles.d.ts +32 -0
- package/dist/components/lines/styles.js +2 -0
- package/dist/components/lines/styles.js.map +1 -0
- package/dist/components/lines/types.d.ts +10 -0
- package/dist/components/lines/types.js +2 -0
- package/dist/components/lines/types.js.map +1 -0
- package/dist/components/link/index.d.ts +17 -0
- package/dist/components/link/index.js +2 -0
- package/dist/components/link/index.js.map +1 -0
- package/dist/components/link/styles.d.ts +5 -0
- package/dist/components/link/styles.js +2 -0
- package/dist/components/link/styles.js.map +1 -0
- package/dist/components/link/types.d.ts +9 -0
- package/dist/components/link/types.js +2 -0
- package/dist/components/link/types.js.map +1 -0
- package/dist/components/menu/index.js +1 -1
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/menu/styles.d.ts +1 -1
- package/dist/components/menu/styles.js +1 -1
- package/dist/components/menu/styles.js.map +1 -1
- package/dist/components/options/index.js.map +1 -1
- package/dist/components/options/styles.d.ts +3 -3
- package/dist/components/options/styles.js +1 -1
- package/dist/components/options/styles.js.map +1 -1
- package/dist/components/options/types.d.ts +1 -1
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/styles.d.ts +1 -1
- package/dist/components/popover/styles.js +1 -1
- package/dist/components/popover/styles.js.map +1 -1
- package/dist/components/query-builder/action-element.js.map +1 -1
- package/dist/components/query-builder/group.js +1 -1
- package/dist/components/query-builder/group.js.map +1 -1
- package/dist/components/query-builder/index.js +1 -1
- package/dist/components/query-builder/index.js.map +1 -1
- package/dist/components/query-builder/value-editor.js.map +1 -1
- package/dist/components/query-builder/value-selector.js.map +1 -1
- package/dist/components/radio/styles.d.ts +1 -1
- package/dist/components/radio/styles.js +1 -1
- package/dist/components/radio/styles.js.map +1 -1
- package/dist/components/search-field/index.d.ts +3 -3
- package/dist/components/search-field/index.js.map +1 -1
- package/dist/components/search-field/styles.d.ts +1 -1
- package/dist/components/search-field/styles.js +1 -1
- package/dist/components/search-field/styles.js.map +1 -1
- package/dist/components/select-field/index.d.ts +1 -1
- package/dist/components/select-field/index.js +1 -1
- package/dist/components/select-field/index.js.map +1 -1
- package/dist/components/select-field/styles.d.ts +4 -4
- package/dist/components/select-field/styles.js +1 -1
- package/dist/components/select-field/styles.js.map +1 -1
- package/dist/components/select-field/types.d.ts +1 -1
- package/dist/components/sidenav/events.d.ts +8 -0
- package/dist/components/sidenav/events.js +2 -0
- package/dist/components/sidenav/events.js.map +1 -0
- package/dist/components/sidenav/index.d.ts +51 -0
- package/dist/components/sidenav/index.js +2 -0
- package/dist/components/sidenav/index.js.map +1 -0
- package/dist/components/sidenav/styles.d.ts +114 -0
- package/dist/components/sidenav/styles.js +2 -0
- package/dist/components/sidenav/styles.js.map +1 -0
- package/dist/components/sidenav/types.d.ts +38 -0
- package/dist/components/sidenav/types.js +2 -0
- package/dist/components/sidenav/types.js.map +1 -0
- package/dist/components/skeleton/styles.d.ts +2 -2
- package/dist/components/skeleton/styles.js +1 -1
- package/dist/components/skeleton/styles.js.map +1 -1
- package/dist/components/slider/index.d.ts +4 -43
- package/dist/components/slider/index.js +1 -1
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/styles.d.ts +84 -0
- package/dist/components/slider/styles.js +2 -0
- package/dist/components/slider/styles.js.map +1 -0
- package/dist/components/slider/types.d.ts +22 -0
- package/dist/components/slider/types.js +2 -0
- package/dist/components/slider/types.js.map +1 -0
- package/dist/components/switch/index.d.ts +1 -1
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/switch/styles.d.ts +1 -1
- package/dist/components/switch/styles.js +1 -1
- package/dist/components/switch/styles.js.map +1 -1
- package/dist/components/tabs/index.d.ts +37 -36
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs/styles.d.ts +48 -0
- package/dist/components/tabs/styles.js +2 -0
- package/dist/components/tabs/styles.js.map +1 -0
- package/dist/components/tabs/types.d.ts +6 -0
- package/dist/components/tabs/types.js +2 -0
- package/dist/components/tabs/types.js.map +1 -0
- package/dist/components/text-area-field/index.d.ts +1 -1
- package/dist/components/text-area-field/index.js.map +1 -1
- package/dist/components/text-area-field/styles.d.ts +4 -4
- package/dist/components/text-area-field/styles.js +1 -1
- package/dist/components/text-area-field/styles.js.map +1 -1
- package/dist/components/text-field/index.js.map +1 -1
- package/dist/components/text-field/styles.d.ts +4 -4
- package/dist/components/text-field/styles.js +1 -1
- package/dist/components/text-field/styles.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +1 -1
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/styles.d.ts +1 -1
- package/dist/components/tooltip/styles.js +1 -1
- package/dist/components/tooltip/styles.js.map +1 -1
- package/dist/components/tooltip/types.d.ts +3 -1
- package/dist/components/tree/index.d.ts +51 -0
- package/dist/components/tree/index.js +2 -0
- package/dist/components/tree/index.js.map +1 -0
- package/dist/components/tree/styles.d.ts +128 -0
- package/dist/components/tree/styles.js +2 -0
- package/dist/components/tree/styles.js.map +1 -0
- package/dist/components/tree/types.d.ts +41 -0
- package/dist/components/tree/types.js +2 -0
- package/dist/components/tree/types.js.map +1 -0
- package/dist/components/view-stack/index.js.map +1 -1
- package/dist/foundation/token-data.d.ts +17 -0
- package/dist/foundation/token-data.js +2 -0
- package/dist/foundation/token-data.js.map +1 -0
- package/dist/hooks/use-tree/actions/cache.d.ts +78 -0
- package/dist/hooks/use-tree/actions/cache.js +2 -0
- package/dist/hooks/use-tree/actions/cache.js.map +1 -0
- package/dist/hooks/use-tree/actions/index.d.ts +38 -0
- package/dist/hooks/use-tree/actions/index.js +2 -0
- package/dist/hooks/use-tree/actions/index.js.map +1 -0
- package/dist/hooks/use-tree/state/index.d.ts +8 -0
- package/dist/hooks/use-tree/state/index.js +2 -0
- package/dist/hooks/use-tree/state/index.js.map +1 -0
- package/dist/hooks/use-tree/state/utils.d.ts +7 -0
- package/dist/hooks/use-tree/state/utils.js +2 -0
- package/dist/hooks/use-tree/state/utils.js.map +1 -0
- package/dist/hooks/use-tree/types.d.ts +171 -0
- package/dist/hooks/use-tree/types.js +2 -0
- package/dist/hooks/use-tree/types.js.map +1 -0
- package/dist/icons/catalog.js +1 -1
- package/dist/icons/catalog.js.map +1 -1
- package/dist/index.css +12 -18
- package/dist/index.d.ts +35 -8
- package/dist/index.js +1 -1
- package/dist/lib/react.d.ts +22 -8
- package/dist/lib/react.js +8 -4
- package/dist/lib/react.js.map +1 -1
- package/dist/lib/utils.d.ts +15 -5
- package/dist/lib/utils.js +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/providers/theme-provider.d.ts +22 -0
- package/dist/providers/theme-provider.js +2 -0
- package/dist/providers/theme-provider.js.map +1 -0
- package/dist/styles.css +2071 -1007
- package/dist/tokens/themes.css +741 -53
- package/dist/tokens/tokens.css +133 -65
- package/dist/tokens/tokens.d.ts +449 -1
- package/dist/tokens/tokens.js +2 -0
- package/dist/tokens/tokens.js.map +1 -0
- package/dist/tokens/types.d.ts +299 -0
- package/dist/tokens/types.js +2 -0
- package/dist/tokens/types.js.map +1 -0
- package/dist/variants/variants.css +19 -1
- package/package.json +20 -9
- package/dist/tokens/index.d.ts +0 -123
- package/dist/tokens/index.js +0 -2
- package/dist/tokens/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/query-builder/group.tsx"],"names":["RuleGroup","group","useRuleGroup","props","r","useStopEventPropagation","addGroup","l","cloneGroup","addRule","removeGroup","toggleLockGroup","jsxs","b","cn","h","jsx","e","elementProps","RuleGroupHeaderComponent","shouldShowLock","ruleGroup","shouldShowClone","Fragment","R","TestID","o","RuleGroupFooterComponent"],"mappings":"qNAwBgBA,SACd,CAAMC,EAAQC,CAAAA,CAAaC,MAGzB,CAAA,CAAAC,YAAA,CAAA,CAAQ,CACN,CAAA,CAAA,MAAA,CAAU,CAAE,QAAA,CAAA,CAAA,qBAKd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,MAAA,CAAA,CAAA,UAGIC,CAAwBJ,CAAAA,CAAM,6BAAO,CAAA,CAC/CK,CAAAA,OAAyC,CAAA,CAAA,CAAA,CAAAC,uBAAA,CAAQ,CAAA,CACjDC,QAA2C,CAAA,CAAA,CAAA,CAAAD,uBAAA,CAAA,CAAA,CAAU,UACL,CAAA,CAAA,CAAA,CAAAA,uBAAA,CAAA,CAAA,CAAA,eACJ,CAAA,CAAA,CAAA,CAAAA,uBAAA,CAAA,CAAA,CAAA,WAGhD,CAAO,CACL,SAAGN,CAAAA,KACH,CAAA,GAAA,CAAAK,CAAAA,QACA,CAAAG,CAAAA,CACA,OAAA,CAAA,CAAA,CAAA,UACA,CAAA,CAAA,CAAA,WACA,CAAA,CAAA,CAAA,eAEkBD,CAAAA,CAAYP,CAAAA,CAAOS,EAAaC,CAAe,CACrE,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEC,CAAAA,CAAC,CAAA,OAAIC,IAAA,CAAA,KAAA,CAAA,CAAWC,SAAc,CAAAC,EAAA,CAAA,CAAS,CAAA,SACrC,CAAA,CAAAC,QAAC,CAAI,CAAAC,GAAA,CAAA,KAAA,CAAA,CAAWH,SAAc,CAAMC,EAAA,CAClC,CAAA,CAAA,MAAA,CAAAC,CAAAA,QAA8BE,CAAcD,IAC9C,CAAA,CACAD,CAAAA,GAAC,CAAA,CAAA,CAAA,CAAA,CAAI,CAAAC,GAAA,CAAA,KAAA,CAAA,CAAWH,SAAkB,CAChCC,UAAAC,CAAAA,QAA2BE,CAAcD,GAAA,CAC3C,CAAA,CACAD,CAAAA,GAAC,CAAA,CAAA,CAAA,CAAA,CAAI,CAAAC,GAAA,CAAA,KAAA,CAAA,CAAWH,SAAc,CAAMC,EAAA,CAClC,CAAA,CAAA,MAAA,CAAAC,CAAAA,QAA8BE,CAAcD,GAAA,CAC9C,CAAA,CAAA,CACF,GAIG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,UAGd,CAAMC,CAAAA,CAAiBC,CAAAA,CAAU,MAAA,CAAO,CAAA,CAAA,CAAA,MAAA,CAAA,eACP,CAAA,CAAA,CAAA,CAAA,CAAA,IAC3BC,CAAAA,MAA4B,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,MAAA,CAAA,gBAGvC,EAAQ,CACN,CAAA,CAAA,MAAA,CAAU,CACR,QAAA,CAAA,CAAA,kBACA,CAAA,CAAA,CAAA,gBACA,CAAA,CAAA,CAAA,eACA,CAAA,CAAA,CAAA,sBAMJV,CAAAA,CAAAW,CAAAA,OACEV,IAAA,CAAAW,QAAA,CAAA,CAAAR,QAEE,CAAA,CAAAC,GAAA,CAAQQ,EAAO,CAAA,MAAA,CAAAC,MAAA,CAAA,WACNL,CAAU,OAAO,CAAA,CAAA,CAAA,MAAA,CAAA,WACT,CAAA,KAAA,CAAA,CAAA,CAAA,UACA,CAAA,KAAA,CAAA,CAAA,CAAA,YAAa,CAAA,WAC9B,CAAA,KAAA,CAAWA,SAAU,CAAA,CAAA,CAAA,sBACrB,CAAA,cAA0B,CAAA,CAAA,CAAA,kBACT,CAAA,KAAA,CAAA,CAAA,CAAU,SAC3B,CAAA,KAAiB,CAAA,KAAK,CAAA,CAAA,CAAA,IACtB,CAAA,MAAgB,CAAA,IAChB,CAAA,CAAA,CAAA,IAAUA,CAAAA,QAAU,CAAA,CACpB,SAASA,CAAU,OAAA,CACnB,CAAA,CAAA,OAAA,CAAA,UAAsB,CAAA,CAAA,CAAA,gBACJ,CAAA,MAAA,CAbbI,EAAO,MAAA,CAAA,CAAAC,MAAA,CAAA,WAgBX,CAAA,CAAA,CAAA,EACCT,GAAA,CAAA,KAAA,CAAAD,CAAAA,QAEE,CAAAC,GAAA,CAAQQ,CAAAA,CAAO,CAAA,MAAA,CAAAC,MAAA,CAAA,UACE,CAAA,KAAA,CAAA,CAAA,CAAA,YAAa,CAAA,oBACb,CAAA,KAAA,CAAA,CAAA,CAAA,YAAa,CAAA,cAC9B,CAAA,KAAA,CAAWL,SAAU,CAAA,CAAA,CAAA,UAAW,CAAA,wBACP,CAAA,CAAA,CAAA,UACR,CAAA,KAAA,CAAA,CAAA,CAAU,SAC3B,CAAA,KAAiB,CAAA,KAAK,CAAA,CAAA,CAAA,IACtB,CAAA,MAAgB,CAAA,IAChB,CAAA,CAAA,CAAA,IAAUA,CAAAA,QAAU,CAAA,CACpB,SAASA,CAAU,OAAA,CACnB,CAAA,CAAA,OAAA,CAAA,UAAsB,CAAA,CAAA,CAAA,gBACtB,CAAA,WAAuB,CAAA,CAAA,CACvB,SAAkB,CAAA,MAAA,CAbbI,CAAAA,CAAO,MAAA,CAAA,CAAAC,MAAA,CAcd,iBAKAT,GAAA,CAAA,KAAA,CAAAD,CAAAA,QAEE,CAAAC,GAAA,CAAQQ,CAAAA,CAAO,CAAA,MAAA,CAAAC,MAAA,CACf,SAAiB,CAAA,KAAA,CAAA,CAAA,CAAA,YAAa,CAAU,SACxC,CAAA,KAAiB,CAAA,KAAA,CAAA,CAAA,CAAA,YAAa,CAAU,SACxC,CAAA,KAAA,CAAWL,SAAU,CAAA,CAAA,CAAA,UAAW,CAChC,SAAA,CAAA,aAAyB,CAAA,CAAA,CAAA,eACR,CAAA,KAAA,CAAA,CAAA,CAAU,SAC3B,CAAA,KAAiB,CAAA,KAAK,CAAA,CAAA,CAAA,IACtB,CAAA,WACA,CAAA,CAAA,CAAA,IAAUA,CAAAA,QAAU,CAAA,CACpB,CAAA,QAAA,CAAA,mBACY,CAAA,CAAA,CAAA,cAEI,CAAA,MAAA,CAAA,CAAA,CAAA,YAAa,CAAA,iBAEpBA,CAAU,OAAA,CACnB,CAAA,CAAA,OAAA,CAAA,UAAsB,CAAA,CAAA,CAAA,4BACC,CAAA,CAAA,CACvB,SAAkB,CAAA,MAAA,CAlBbI,CAAAA,CAAO,MAAA,CAAA,CAAAC,MAmBd,CAAA,SAID,CAAA,CAAA,CAAA,CAAA,CAAA,EACCT,GAAA,CAAA,KAAA,CAAAD,CAAAA,QAEE,CAAAC,GAAA,CAAQQ,EAAO,CAAA,MAAA,CAAAC,MAAA,CAAA,WACE,CAAA,KAAA,CAAA,CAAA,CAAA,YAAa,CAAA,WAC9B,CAAA,0BAA8B,CAAA,WAC9B,CAAA,KAAA,CAAWL,SAAU,CAAA,CAAA,CAAA,UAAW,CAAA,WAChC,CAAA,2BACiB,CAAA,KAAA,CAAA,CAAA,CAAU,SAC3B,CAAA,KAAiB,CAAA,KAAK,CAAA,CAAA,CAAA,WACN,CAAA,IAChB,CAAA,CAAA,CAAA,IAAUA,CAAAA,QAAU,CAAA,CACpB,CAAA,QAASA,CAAU,OAAA,CACnB,oBAAsB,CAAA,CAAA,CAAA,gBACtB,CAAA,WAAuB,CAAA,CAAA,CACvB,SAAkB,CAAA,MAAA,CAbbI,CAAAA,CAAO,MAAA,CAAA,CAAAC,MAAA,CAAA,WAqBjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,SAGR,CACJ,CAAA,CAAA,CAAA,CAAA,KACE,CAAA,MAAA,CAAU,CACR,QAAA,CAAA,CAAA,cACA,CAAA,CAAA,CAAA,aAKN,CAAA,CAAA,CAAA,CAAA,CACEf,CAAAA,CAAAW,QACEV,IAAA,CAAAW,QAAA,CAAA,CAAAR,QAEE,CAAA,CAAAC,GAAA,CAAQQ,CAAAA,CAAO,CAAA,MAAA,CACfC,MAAA,CAAA,OAAiB,CAAA,KAAA,CAAA,CAAA,CAAA,YAAqB,CAAA,OACtC,CAAA,KAAiB,CAAA,KAAA,CAAA,CAAA,CAAA,YAAqB,CAAA,OACtC,CAAA,KAAA,CAAWL,SAAU,CAAA,CAAA,CAAA,UACrB,CAAA,OAAA,CAAA,aAAyB,CACzB,SAAiB,CAAA,KAAA,CAAA,CAAA,CAAU,SAC3B,CAAA,KAAiB,CAAA,KAAK,CAAA,CAAA,CAAA,IACtB,CAAA,MAAgB,CAAA,IAChB,CAAA,CAAA,CAAA,IAAUA,CAAAA,QAAU,CAAA,CACpB,CAAA,QAASA,CAAU,OAAA,CACnB,CAAA,CAAA,OAAA,CAAA,UAAsB,CAAA,CAAA,CAAA,gBACtB,CAAA,WAAuB,CAAA,CAAA,CACvB,SAAkB,CAAA,MAAA,CAbbI,EAAO,MAAA,CAcd,CAAAC,MACAV,CAAAA,OAEE,CAAA,CAAAC,GAAA,CAAQQ,CAAAA,CAAO,CAAA,MAAA,CAAAC,MACf,SAAiB,CAAA,KAAA,CAAA,CAAA,CAAA,YAAsB,CAAA,QACvC,CAAA,KAAiB,CAAA,KAAA,CAAA,CAAA,CAAA,YAAsB,SACvC,CAAA,KAAA,CAAWL,SAAU,CAAA,CAAA,CAAA,UACrB,CAAA,QAAA,CAAA,aAAyB,CAAA,CACzB,CAAA,QAAiB,CAAA,KAAA,CAAA,CAAA,CAAU,SAC3B,CAAA,KAAiB,CAAA,KAAK,CAAA,CAAA,CAAA,IACtB,CAAA,WACA,CAAA,CAAA,CAAA,IAAUA,CAAAA,QAAU,CAAA,CACpB,CAAA,QAASA,CAAU,OAAA,CACnB,CAAA,CAAA,OAAA,CAAA,6BACA,CAAA,WAAuB,CAAA,CAAA,CACvB,SAAkB,CAAA,MAAA,CAbbI,CAAAA,CAAO,MAAA,CAAA,CAcdC,eAGN,CAAA,CAAA,CAAA,CAAA","file":"group.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { cn } from '@/lib/utils';\nimport { useMemo } from 'react';\nimport {\n type RuleGroupProps,\n TestID,\n useRuleGroup,\n useStopEventPropagation,\n} from 'react-querybuilder';\n\nexport function RuleGroup(props: RuleGroupProps) {\n const group = useRuleGroup(props);\n\n const {\n schema: {\n controls: { ruleGroupBodyElements: RuleGroupBodyElements },\n },\n } = group;\n\n const {\n schema: { classNames },\n } = props;\n\n const addRule = useStopEventPropagation(group.addRule);\n const addGroup = useStopEventPropagation(group.addGroup);\n const cloneGroup = useStopEventPropagation(group.cloneGroup);\n const toggleLockGroup = useStopEventPropagation(group.toggleLockGroup);\n const removeGroup = useStopEventPropagation(group.removeGroup);\n\n const elementProps = useMemo(\n () => ({\n ...group,\n addGroup,\n addRule,\n cloneGroup,\n removeGroup,\n toggleLockGroup,\n }),\n [addGroup, addRule, cloneGroup, group, removeGroup, toggleLockGroup],\n );\n\n return (\n <div className={cn(classNames.ruleGroup)}>\n <div className={cn(classNames.header)}>\n <RuleGroupHeaderComponent {...elementProps} />\n </div>\n <div className={cn(classNames.body)}>\n <RuleGroupBodyElements {...elementProps} />\n </div>\n <div className={cn(classNames.header)}>\n <RuleGroupFooterComponent {...elementProps} />\n </div>\n </div>\n );\n}\n\nexport function RuleGroupHeaderComponent(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const shouldShowLock = ruleGroup.schema.showLockButtons;\n const isNotRoot = ruleGroup.path.length > 0;\n const shouldShowClone = ruleGroup.schema.showCloneButtons && isNotRoot;\n\n const {\n schema: {\n controls: {\n combinatorSelector: CombinatorSelectorControlElement,\n cloneGroupAction: CloneGroupActionControlElement,\n lockGroupAction: LockGroupActionControlElement,\n removeGroupAction: RemoveGroupActionControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n <CombinatorSelectorControlElement\n key={TestID.combinators}\n testID={TestID.combinators}\n options={ruleGroup.schema.combinators}\n value={ruleGroup.combinator}\n title={ruleGroup.translations.combinators.title}\n className={ruleGroup.classNames.combinators}\n handleOnChange={ruleGroup.onCombinatorChange}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n />\n {shouldShowClone && (\n <div>\n <CloneGroupActionControlElement\n key={TestID.cloneGroup}\n testID={TestID.cloneGroup}\n label={ruleGroup.translations.cloneRuleGroup.label}\n title={ruleGroup.translations.cloneRuleGroup.title}\n className={ruleGroup.classNames.cloneGroup}\n handleOnClick={ruleGroup.cloneGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {shouldShowLock && (\n <div>\n <LockGroupActionControlElement\n key={TestID.lockGroup}\n testID={TestID.lockGroup}\n label={ruleGroup.translations.lockGroup.label}\n title={ruleGroup.translations.lockGroup.title}\n className={ruleGroup.classNames.lockGroup}\n handleOnClick={ruleGroup.toggleLockGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n disabledTranslation={\n ruleGroup.parentDisabled\n ? undefined\n : ruleGroup.translations.lockGroupDisabled\n }\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {isNotRoot && (\n <div>\n <RemoveGroupActionControlElement\n key={TestID.removeGroup}\n testID={TestID.removeGroup}\n label={ruleGroup.translations.removeGroup.label}\n title={ruleGroup.translations.removeGroup.title}\n className={ruleGroup.classNames.removeGroup}\n handleOnClick={ruleGroup.removeGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n </>\n );\n}\n\nexport function RuleGroupFooterComponent(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const {\n schema: {\n controls: {\n addGroupAction: AddGroupActionControlElement,\n addRuleAction: AddRuleActionControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n <AddRuleActionControlElement\n key={TestID.addRule}\n testID={TestID.addRule}\n label={ruleGroup.translations.addRule.label}\n title={ruleGroup.translations.addRule.title}\n className={ruleGroup.classNames.addRule}\n handleOnClick={ruleGroup.addRule}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n <AddGroupActionControlElement\n key={TestID.addGroup}\n testID={TestID.addGroup}\n label={ruleGroup.translations.addGroup.label}\n title={ruleGroup.translations.addGroup.title}\n className={ruleGroup.classNames.addGroup}\n handleOnClick={ruleGroup.addGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/query-builder/group.tsx"],"names":["RuleGroup","group","useRuleGroup","props","r","useStopEventPropagation","addGroup","l","cloneGroup","addRule","removeGroup","toggleLockGroup","jsxs","b","cn","h","jsx","e","elementProps","RuleGroupHeaderComponent","shouldShowLock","ruleGroup","shouldShowClone","Fragment","R","TestID","o","RuleGroupFooterComponent"],"mappings":"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","file":"group.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useMemo } from 'react';\nimport {\n type RuleGroupProps,\n TestID,\n useRuleGroup,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { cn } from '@/lib/utils';\n\nexport function RuleGroup(props: RuleGroupProps) {\n const group = useRuleGroup(props);\n\n const {\n schema: {\n controls: { ruleGroupBodyElements: RuleGroupBodyElements },\n },\n } = group;\n\n const {\n schema: { classNames },\n } = props;\n\n const addRule = useStopEventPropagation(group.addRule);\n const addGroup = useStopEventPropagation(group.addGroup);\n const cloneGroup = useStopEventPropagation(group.cloneGroup);\n const toggleLockGroup = useStopEventPropagation(group.toggleLockGroup);\n const removeGroup = useStopEventPropagation(group.removeGroup);\n\n const elementProps = useMemo(\n () => ({\n ...group,\n addGroup,\n addRule,\n cloneGroup,\n removeGroup,\n toggleLockGroup,\n }),\n [addGroup, addRule, cloneGroup, group, removeGroup, toggleLockGroup],\n );\n\n return (\n <div className={cn(classNames.ruleGroup)}>\n <div className={cn(classNames.header)}>\n <RuleGroupHeaderComponent {...elementProps} />\n </div>\n <div className={cn(classNames.body)}>\n <RuleGroupBodyElements {...elementProps} />\n </div>\n <div className={cn(classNames.header)}>\n <RuleGroupFooterComponent {...elementProps} />\n </div>\n </div>\n );\n}\n\nexport function RuleGroupHeaderComponent(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const shouldShowLock = ruleGroup.schema.showLockButtons;\n const isNotRoot = ruleGroup.path.length > 0;\n const shouldShowClone = ruleGroup.schema.showCloneButtons && isNotRoot;\n\n const {\n schema: {\n controls: {\n combinatorSelector: CombinatorSelectorControlElement,\n cloneGroupAction: CloneGroupActionControlElement,\n lockGroupAction: LockGroupActionControlElement,\n removeGroupAction: RemoveGroupActionControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n <CombinatorSelectorControlElement\n key={TestID.combinators}\n testID={TestID.combinators}\n options={ruleGroup.schema.combinators}\n ruleGroup={ruleGroup.ruleGroup}\n value={ruleGroup.combinator}\n title={ruleGroup.translations.combinators.title}\n className={ruleGroup.classNames.combinators}\n handleOnChange={ruleGroup.onCombinatorChange}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n />\n {shouldShowClone && (\n <div>\n <CloneGroupActionControlElement\n key={TestID.cloneGroup}\n testID={TestID.cloneGroup}\n label={ruleGroup.translations.cloneRuleGroup.label}\n title={ruleGroup.translations.cloneRuleGroup.title}\n className={ruleGroup.classNames.cloneGroup}\n handleOnClick={ruleGroup.cloneGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {shouldShowLock && (\n <div>\n <LockGroupActionControlElement\n key={TestID.lockGroup}\n testID={TestID.lockGroup}\n label={ruleGroup.translations.lockGroup.label}\n title={ruleGroup.translations.lockGroup.title}\n className={ruleGroup.classNames.lockGroup}\n handleOnClick={ruleGroup.toggleLockGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n disabledTranslation={\n ruleGroup.parentDisabled\n ? undefined\n : ruleGroup.translations.lockGroupDisabled\n }\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {isNotRoot && (\n <div>\n <RemoveGroupActionControlElement\n key={TestID.removeGroup}\n testID={TestID.removeGroup}\n label={ruleGroup.translations.removeGroup.label}\n title={ruleGroup.translations.removeGroup.title}\n className={ruleGroup.classNames.removeGroup}\n handleOnClick={ruleGroup.removeGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n </>\n );\n}\n\nexport function RuleGroupFooterComponent(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const {\n schema: {\n controls: {\n addGroupAction: AddGroupActionControlElement,\n addRuleAction: AddRuleActionControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n <AddRuleActionControlElement\n key={TestID.addRule}\n testID={TestID.addRule}\n label={ruleGroup.translations.addRule.label}\n title={ruleGroup.translations.addRule.title}\n className={ruleGroup.classNames.addRule}\n handleOnClick={ruleGroup.addRule}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n <AddGroupActionControlElement\n key={TestID.addGroup}\n testID={TestID.addGroup}\n label={ruleGroup.translations.addGroup.label}\n title={ruleGroup.translations.addGroup.title}\n className={ruleGroup.classNames.addGroup}\n handleOnClick={ruleGroup.addGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </>\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {jsx,jsxs}from'react/jsx-runtime';import'client-only';import {LockFill,Delete,Duplicate}from'@accelint/icons';import {useMemo,createContext,useCallback}from'react';import {QueryBuilder}from'react-querybuilder';import {cn}from'../../lib/utils.js';import {Button}from'../button/index.js';import {Icon}from'../icon/index.js';import {Label}from'../label/index.js';import {Radio}from'../radio/index.js';import {Tooltip}from'../tooltip/index.js';import {ActionElement}from'./action-element.js';import {RuleGroup,RuleGroupHeaderComponent,RuleGroupFooterComponent}from'./group.js';import {Rule}from'./rule.js';import {getValidationResult,pressToMouseEvent}from'./utils.js';import {ValueEditor}from'./value-editor.js';import {ValueSelector}from'./value-selector.js';const w={AND:"All rules below must be true for a match",OR:"One of the rules below must be true for a match"};function x({options:r,value:n,handleOnChange:l}){return jsxs(Radio.Group,{value:n,onChange:l,orientation:"horizontal",children:[jsx(Label,{children:"Combinator"}),r.map(
|
|
1
|
+
import {jsx,jsxs}from'react/jsx-runtime';import'client-only';import {LockFill,Delete,Duplicate}from'@accelint/icons';import {useMemo,createContext,useCallback}from'react';import {QueryBuilder}from'react-querybuilder';import {cn}from'../../lib/utils.js';import {Button}from'../button/index.js';import {Icon}from'../icon/index.js';import {Label}from'../label/index.js';import {Radio}from'../radio/index.js';import {Tooltip}from'../tooltip/index.js';import {ActionElement}from'./action-element.js';import {RuleGroup,RuleGroupHeaderComponent,RuleGroupFooterComponent}from'./group.js';import {Rule}from'./rule.js';import {getValidationResult,pressToMouseEvent}from'./utils.js';import {ValueEditor}from'./value-editor.js';import {ValueSelector}from'./value-selector.js';const w={AND:"All rules below must be true for a match",OR:"One of the rules below must be true for a match"};function x({options:r,value:n,handleOnChange:l}){return jsxs(Radio.Group,{value:n,onChange:l,orientation:"horizontal",children:[jsx(Label,{children:"Combinator"}),r.map(e=>jsx(Radio,{value:e.label,children:jsxs(Tooltip,{children:[jsx(Tooltip.Trigger,{children:jsx("span",{children:e.label})}),jsx(Tooltip.Body,{placement:"top",children:w[e.label]})]})},e.label))]})}function C({handleOnClick:r,className:n,...l}){const e=useCallback(i=>r(pressToMouseEvent(i)),[r]);return jsx(Button,{size:"small",variant:"icon",onPress:e,className:n,...l,children:jsx(Icon,{children:jsx(Delete,{})})})}function f({handleOnClick:r,className:n,...l}){const e=useCallback(i=>r(pressToMouseEvent(i)),[r]);return jsx(Button,{size:"small",variant:"icon",onPress:e,className:n,...l,children:jsx(Icon,{children:jsx(LockFill,{})})})}function d({handleOnClick:r,className:n,...l}){const e=useCallback(i=>r(pressToMouseEvent(i)),[r]);return jsx(Button,{size:"small",variant:"icon",onPress:e,className:n,...l,children:jsx(Icon,{children:jsx(Duplicate,{})})})}function t({controlClassnames:r,controlElements:n,orientation:l="horizontal",showRuleLines:e=true,...i}){const G=useMemo(()=>({combinatorSelector:x,cloneGroupAction:d,cloneRuleAction:d,removeRuleAction:C,lockGroupAction:f,lockRuleAction:f,ruleGroup:RuleGroup,rule:Rule,actionElement:ActionElement,valueSelector:ValueSelector,valueEditor:ValueEditor,...n}),[n]),g=useMemo(()=>({queryBuilder:"outline outline-transparent",ruleGroup:"group col-span-full flex flex-col gap-s p-s outline outline-info-bold rounded-medium",header:"flex gap-s",body:cn("group grid gap-x-s empty:hidden",e?"grid-cols-[10px_minmax(100px,_1fr)_min-content]":"grid-cols-[minmax(100px,_1fr)_min-content]"),combinators:"my-s",addRule:"",addGroup:"",cloneRule:"fg-info-bold hover:fg-info-hover",cloneGroup:"fg-info-bold hover:fg-info-hover",removeGroup:"",rule:cn("flex gap-xs py-s",l==="vertical"?"flex-col":"min-height-[50px] items-start"),fields:"w-full",operators:"",value:"w-full",removeRule:"",valid:"",invalid:"",disabled:"",lockRule:"fg-info-bold hover:fg-info-hover",lockGroup:"fg-info-bold hover:fg-info-hover",valueSource:"",valueListItem:""}),[l,e]),E=useMemo(()=>({...g,...r}),[r,g]),S=createContext({orientation:l,showRuleLines:e});return jsx(QueryBuilder,{showNotToggle:false,showShiftActions:false,enableDragAndDrop:false,controlClassnames:E,controlElements:G,context:S,listsAsArrays:true,...i})}t.CombinatorSelector=x,t.RemoveRuleAction=C,t.LockAction=f,t.CloneAction=d,t.ActionElement=ActionElement,t.Rule=Rule,t.RuleGroup=RuleGroup,t.RuleGroupHeaderComponent=RuleGroupHeaderComponent,t.RuleGroupFooterComponent=RuleGroupFooterComponent,t.getValidationResult=getValidationResult,t.ValueEditor=ValueEditor,t.ValueSelector=ValueSelector;export{t as QueryBuilder};//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/query-builder/index.tsx"],"names":["jsx","Label","B","b","options","Radio","jsxs","Tooltip","e","z","m","operatorDescriptions","option","RemoveRuleAction","className","event","handleOnClick","pressToMouseEvent","handlePress","rest","p","Icon","u","LockAction","useCallback","T","CloneAction","k","QueryBuilder","c","Q","mergedElements","CombinatorSelector","s","defaultClassnames","R","A","y","P","h","g","RQBBuilder","D","V","mergedClassnames","Rule","RuleGroupFooterComponent","getValidationResult","N","ValueSelector"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { Delete, Duplicate, LockFill } from '@accelint/icons';\nimport type { PressEvent } from '@react-types/shared';\nimport { createContext, useCallback, useMemo } from 'react';\nimport {\n type ActionProps,\n type Classnames,\n type CombinatorSelectorProps,\n QueryBuilder as RQBBuilder,\n} from 'react-querybuilder';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport { Radio } from '../radio';\nimport { Tooltip } from '../tooltip';\nimport { ActionElement } from './action-element';\nimport {\n RuleGroup,\n RuleGroupFooterComponent,\n RuleGroupHeaderComponent,\n} from './group';\nimport { Rule } from './rule';\nimport type { QueryBuilderContextType, QueryBuilderProps } from './types';\nimport { getValidationResult, pressToMouseEvent } from './utils';\nimport { ValueEditor } from './value-editor';\nimport { ValueSelector } from './value-selector';\n\nconst operatorDescriptions: Record<string, string> = {\n AND: 'All rules below must be true for a match',\n OR: 'One of the rules below must be true for a match',\n};\n\nfunction CombinatorSelector({\n options,\n value,\n handleOnChange,\n}: CombinatorSelectorProps) {\n return (\n <Radio.Group\n value={value}\n onChange={handleOnChange}\n orientation='horizontal'\n >\n <Label>Combinator</Label>\n {options.map((option) => (\n <Radio key={option.label} value={option.label}>\n <Tooltip>\n <Tooltip.Trigger>\n <span>{option.label}</span>\n </Tooltip.Trigger>\n <Tooltip.Body placement='top'>\n {operatorDescriptions[option.label]}\n </Tooltip.Body>\n </Tooltip>\n </Radio>\n ))}\n </Radio.Group>\n );\n}\n\nfunction RemoveRuleAction({ handleOnClick, className, ...rest }: ActionProps) {\n // TODO: remove pressToMouseEvent when design-system is removed\n const handlePress = useCallback(\n (event: PressEvent) => handleOnClick(pressToMouseEvent(event)),\n [handleOnClick],\n );\n\n return (\n <Button\n size='small'\n variant='icon'\n onPress={handlePress}\n className={className}\n {...rest}\n >\n <Icon>\n <Delete />\n </Icon>\n </Button>\n );\n}\n\nfunction LockAction({ handleOnClick, className, ...rest }: ActionProps) {\n // TODO: remove pressToMouseEvent when design-system is removed\n const handlePress = useCallback(\n (event: PressEvent) => handleOnClick(pressToMouseEvent(event)),\n [handleOnClick],\n );\n\n return (\n <Button\n size='small'\n variant='icon'\n onPress={handlePress}\n className={className}\n {...rest}\n >\n <Icon>\n <LockFill />\n </Icon>\n </Button>\n );\n}\n\nfunction CloneAction({ handleOnClick, className, ...rest }: ActionProps) {\n // TODO: remove pressToMouseEvent when design-system is removed\n const handlePress = useCallback(\n (event: PressEvent) => handleOnClick(pressToMouseEvent(event)),\n [handleOnClick],\n );\n\n return (\n <Button\n size='small'\n variant='icon'\n onPress={handlePress}\n className={className}\n {...rest}\n >\n <Icon>\n <Duplicate />\n </Icon>\n </Button>\n );\n}\n\n/**\n * QueryBuilder - A visual interface for building complex database queries\n *\n * Provides an intuitive drag-and-drop interface for constructing database queries\n * with support for multiple conditions, operators, and logical grouping. Enables\n * users to build complex filters without writing SQL or code.\n *\n * @example\n * // Basic query builder\n * <QueryBuilder\n * fields={[\n * // { name, label, type, inputType, operators },\n * ]}\n * query={\n * // { combinator, rules }\n * }\n * onQueryChange={handleQueryChange}\n * controlElements={{\n * addRuleAction: CustomAddButton,\n * removeRuleAction: CustomRemoveButton\n * }}\n * orientation=\"vertical\"\n * />\n */\nexport function QueryBuilder({\n controlClassnames,\n controlElements,\n orientation = 'horizontal',\n showRuleLines = true,\n ...rest\n}: QueryBuilderProps) {\n /**\n * Represents the list of available controls that the component can use as a custom\n * component override.Passed in as a map of our custom defaults, but can be\n * overridden by using the controlElements prop\n */\n const mergedElements = useMemo(\n () => ({\n combinatorSelector: CombinatorSelector,\n cloneGroupAction: CloneAction,\n cloneRuleAction: CloneAction,\n removeRuleAction: RemoveRuleAction,\n lockGroupAction: LockAction,\n lockRuleAction: LockAction,\n ruleGroup: RuleGroup,\n rule: Rule,\n actionElement: ActionElement,\n valueSelector: ValueSelector,\n valueEditor: ValueEditor,\n ...controlElements,\n }),\n [controlElements],\n );\n\n /**\n * Represents the list of available classnames that the component will recognize.\n * Passed in as a map as all the default styling, but can be overridden by using the\n * controlClassnames prop\n */\n const defaultClassnames: Partial<Classnames> = useMemo(\n () => ({\n queryBuilder: 'border border-transparent',\n ruleGroup:\n 'group col-span-full flex flex-col gap-s p-s border border-info rounded-medium',\n header: 'flex gap-s',\n body: cn(\n 'group grid gap-x-s empty:hidden',\n showRuleLines\n ? 'grid-cols-[10px_minmax(100px,_1fr)_min-content]'\n : 'grid-cols-[minmax(100px,_1fr)_min-content]',\n ),\n combinators: 'my-s',\n addRule: '',\n addGroup: '',\n cloneRule: 'fg-interactive hover:fg-interactive-hover',\n cloneGroup: 'fg-interactive hover:fg-interactive-hover',\n removeGroup: '',\n rule: cn(\n 'flex gap-xs py-s',\n orientation === 'vertical'\n ? 'flex-col'\n : 'min-height-[50px] items-start',\n ),\n fields: 'w-full',\n operators: '',\n value: 'w-full',\n removeRule: '',\n valid: '',\n invalid: '',\n disabled: '',\n lockRule: 'fg-interactive hover:fg-interactive-hover',\n lockGroup: 'fg-interactive hover:fg-interactive-hover',\n valueSource: '',\n valueListItem: '',\n }),\n [orientation, showRuleLines],\n );\n\n const mergedClassnames = useMemo(() => {\n return {\n ...defaultClassnames,\n ...controlClassnames,\n };\n }, [controlClassnames, defaultClassnames]);\n\n const QueryBuilderContext = createContext<QueryBuilderContextType>({\n orientation,\n showRuleLines,\n });\n\n return (\n <RQBBuilder\n showNotToggle={false}\n showShiftActions={false}\n enableDragAndDrop={false}\n controlClassnames={mergedClassnames}\n controlElements={mergedElements}\n context={QueryBuilderContext}\n listsAsArrays\n {...rest}\n />\n );\n}\n\nQueryBuilder.CombinatorSelector = CombinatorSelector;\nQueryBuilder.RemoveRuleAction = RemoveRuleAction;\nQueryBuilder.LockAction = LockAction;\nQueryBuilder.CloneAction = CloneAction;\nQueryBuilder.ActionElement = ActionElement;\nQueryBuilder.Rule = Rule;\nQueryBuilder.RuleGroup = RuleGroup;\nQueryBuilder.RuleGroupHeaderComponent = RuleGroupHeaderComponent;\nQueryBuilder.RuleGroupFooterComponent = RuleGroupFooterComponent;\nQueryBuilder.getValidationResult = getValidationResult;\nQueryBuilder.ValueEditor = ValueEditor;\nQueryBuilder.ValueSelector = ValueSelector;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/query-builder/index.tsx"],"names":["jsx","Label","B","b","options","Radio","jsxs","Tooltip","o","z","p","operatorDescriptions","option","RemoveRuleAction","className","event","handleOnClick","pressToMouseEvent","handlePress","rest","c","Icon","a","LockAction","useCallback","T","CloneAction","k","QueryBuilder","m","Q","mergedElements","CombinatorSelector","u","defaultClassnames","R","A","y","P","h","v","orientation","mergedClassnames","useMemo","RQBBuilder","D","V","Rule","RuleGroupFooterComponent","getValidationResult","N","ValueSelector"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { Delete, Duplicate, LockFill } from '@accelint/icons';\nimport { createContext, useCallback, useMemo } from 'react';\nimport {\n type ActionProps,\n type Classnames,\n type CombinatorSelectorProps,\n QueryBuilder as RQBBuilder,\n} from 'react-querybuilder';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport { Radio } from '../radio';\nimport { Tooltip } from '../tooltip';\nimport { ActionElement } from './action-element';\nimport {\n RuleGroup,\n RuleGroupFooterComponent,\n RuleGroupHeaderComponent,\n} from './group';\nimport { Rule } from './rule';\nimport { getValidationResult, pressToMouseEvent } from './utils';\nimport { ValueEditor } from './value-editor';\nimport { ValueSelector } from './value-selector';\nimport type { PressEvent } from '@react-types/shared';\nimport type { QueryBuilderContextType, QueryBuilderProps } from './types';\n\nconst operatorDescriptions: Record<string, string> = {\n AND: 'All rules below must be true for a match',\n OR: 'One of the rules below must be true for a match',\n};\n\nfunction CombinatorSelector({\n options,\n value,\n handleOnChange,\n}: CombinatorSelectorProps) {\n return (\n <Radio.Group\n value={value}\n onChange={handleOnChange}\n orientation='horizontal'\n >\n <Label>Combinator</Label>\n {options.map((option) => (\n <Radio key={option.label} value={option.label}>\n <Tooltip>\n <Tooltip.Trigger>\n <span>{option.label}</span>\n </Tooltip.Trigger>\n <Tooltip.Body placement='top'>\n {operatorDescriptions[option.label]}\n </Tooltip.Body>\n </Tooltip>\n </Radio>\n ))}\n </Radio.Group>\n );\n}\n\nfunction RemoveRuleAction({ handleOnClick, className, ...rest }: ActionProps) {\n // TODO: remove pressToMouseEvent when design-system is removed\n const handlePress = useCallback(\n (event: PressEvent) => handleOnClick(pressToMouseEvent(event)),\n [handleOnClick],\n );\n\n return (\n <Button\n size='small'\n variant='icon'\n onPress={handlePress}\n className={className}\n {...rest}\n >\n <Icon>\n <Delete />\n </Icon>\n </Button>\n );\n}\n\nfunction LockAction({ handleOnClick, className, ...rest }: ActionProps) {\n // TODO: remove pressToMouseEvent when design-system is removed\n const handlePress = useCallback(\n (event: PressEvent) => handleOnClick(pressToMouseEvent(event)),\n [handleOnClick],\n );\n\n return (\n <Button\n size='small'\n variant='icon'\n onPress={handlePress}\n className={className}\n {...rest}\n >\n <Icon>\n <LockFill />\n </Icon>\n </Button>\n );\n}\n\nfunction CloneAction({ handleOnClick, className, ...rest }: ActionProps) {\n // TODO: remove pressToMouseEvent when design-system is removed\n const handlePress = useCallback(\n (event: PressEvent) => handleOnClick(pressToMouseEvent(event)),\n [handleOnClick],\n );\n\n return (\n <Button\n size='small'\n variant='icon'\n onPress={handlePress}\n className={className}\n {...rest}\n >\n <Icon>\n <Duplicate />\n </Icon>\n </Button>\n );\n}\n\n/**\n * QueryBuilder - A visual interface for building complex database queries\n *\n * Provides an intuitive drag-and-drop interface for constructing database queries\n * with support for multiple conditions, operators, and logical grouping. Enables\n * users to build complex filters without writing SQL or code.\n *\n * @example\n * // Basic query builder\n * <QueryBuilder\n * fields={[\n * // { name, label, type, inputType, operators },\n * ]}\n * query={\n * // { combinator, rules }\n * }\n * onQueryChange={handleQueryChange}\n * controlElements={{\n * addRuleAction: CustomAddButton,\n * removeRuleAction: CustomRemoveButton\n * }}\n * orientation=\"vertical\"\n * />\n */\nexport function QueryBuilder({\n controlClassnames,\n controlElements,\n orientation = 'horizontal',\n showRuleLines = true,\n ...rest\n}: QueryBuilderProps) {\n /**\n * Represents the list of available controls that the component can use as a custom\n * component override.Passed in as a map of our custom defaults, but can be\n * overridden by using the controlElements prop\n */\n const mergedElements = useMemo(\n () => ({\n combinatorSelector: CombinatorSelector,\n cloneGroupAction: CloneAction,\n cloneRuleAction: CloneAction,\n removeRuleAction: RemoveRuleAction,\n lockGroupAction: LockAction,\n lockRuleAction: LockAction,\n ruleGroup: RuleGroup,\n rule: Rule,\n actionElement: ActionElement,\n valueSelector: ValueSelector,\n valueEditor: ValueEditor,\n ...controlElements,\n }),\n [controlElements],\n );\n\n /**\n * Represents the list of available classnames that the component will recognize.\n * Passed in as a map as all the default styling, but can be overridden by using the\n * controlClassnames prop\n */\n const defaultClassnames: Partial<Classnames> = useMemo(\n () => ({\n queryBuilder: 'outline outline-transparent',\n ruleGroup:\n 'group col-span-full flex flex-col gap-s p-s outline outline-info-bold rounded-medium',\n header: 'flex gap-s',\n body: cn(\n 'group grid gap-x-s empty:hidden',\n showRuleLines\n ? 'grid-cols-[10px_minmax(100px,_1fr)_min-content]'\n : 'grid-cols-[minmax(100px,_1fr)_min-content]',\n ),\n combinators: 'my-s',\n addRule: '',\n addGroup: '',\n cloneRule: 'fg-info-bold hover:fg-info-hover',\n cloneGroup: 'fg-info-bold hover:fg-info-hover',\n removeGroup: '',\n rule: cn(\n 'flex gap-xs py-s',\n orientation === 'vertical'\n ? 'flex-col'\n : 'min-height-[50px] items-start',\n ),\n fields: 'w-full',\n operators: '',\n value: 'w-full',\n removeRule: '',\n valid: '',\n invalid: '',\n disabled: '',\n lockRule: 'fg-info-bold hover:fg-info-hover',\n lockGroup: 'fg-info-bold hover:fg-info-hover',\n valueSource: '',\n valueListItem: '',\n }),\n [orientation, showRuleLines],\n );\n\n const mergedClassnames = useMemo(() => {\n return {\n ...defaultClassnames,\n ...controlClassnames,\n };\n }, [controlClassnames, defaultClassnames]);\n\n const QueryBuilderContext = createContext<QueryBuilderContextType>({\n orientation,\n showRuleLines,\n });\n\n return (\n <RQBBuilder\n showNotToggle={false}\n showShiftActions={false}\n enableDragAndDrop={false}\n controlClassnames={mergedClassnames}\n controlElements={mergedElements}\n context={QueryBuilderContext}\n listsAsArrays\n {...rest}\n />\n );\n}\n\nQueryBuilder.CombinatorSelector = CombinatorSelector;\nQueryBuilder.RemoveRuleAction = RemoveRuleAction;\nQueryBuilder.LockAction = LockAction;\nQueryBuilder.CloneAction = CloneAction;\nQueryBuilder.ActionElement = ActionElement;\nQueryBuilder.Rule = Rule;\nQueryBuilder.RuleGroup = RuleGroup;\nQueryBuilder.RuleGroupHeaderComponent = RuleGroupHeaderComponent;\nQueryBuilder.RuleGroupFooterComponent = RuleGroupFooterComponent;\nQueryBuilder.getValidationResult = getValidationResult;\nQueryBuilder.ValueEditor = ValueEditor;\nQueryBuilder.ValueSelector = ValueSelector;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/query-builder/value-editor.tsx"],"names":["value","valid","getValidationResult","disabled","p","u","y","rule","validator","b","name","values","defaultOptions","type","jsx","h","handleOnChange","inputType","TextField","placeholder","P","TextareaValueEditor","TextAreaField","g","valueEditors","CheckboxValueEditor","SelectValueEditor","ruleProp","props","valueAsArray","useValueEditor","useCallback","index","multiValueHandler","v","valueEditorType","operator","Editor","multiValueOperators","Fragment","C","A","handleRangeStartChange","term"],"mappings":"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","file":"value-editor.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useCallback } from 'react';\nimport { type ValueEditorProps, useValueEditor } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport type { InputProps } from '../input/types';\nimport { Radio } from '../radio';\nimport { Switch } from '../switch';\nimport { TextAreaField } from '../text-area-field';\nimport { TextField } from '../text-field';\nimport { multiValueOperators } 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 { 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 );\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 <Radio.Group\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </Radio.Group>\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 aria-labelledby={name}\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 aria-labelledby={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, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextField\n inputProps={{\n placeholder,\n type: (inputType as InputProps['type']) ?? 'text',\n }}\n size='small'\n value={value}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n errorMessage={reasons?.join('/n')}\n />\n );\n}\n\nfunction TextareaValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextAreaField\n size='small'\n errorMessage={reasons?.join('/n')}\n inputProps={{ placeholder }}\n value={value}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-label={name}\n aria-invalid={!valid}\n aria-labelledby={name}\n />\n );\n}\n\nconst valueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\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: { name, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\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={`${name}-${term}`}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n index ? handleRangeEndChange : handleRangeStartChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div>\n <Editor {...props} />\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/query-builder/value-editor.tsx"],"names":["value","valid","getValidationResult","disabled","p","u","y","rule","validator","b","name","values","defaultOptions","type","jsx","h","handleOnChange","inputType","TextField","placeholder","P","TextareaValueEditor","TextAreaField","g","valueEditors","CheckboxValueEditor","SelectValueEditor","ruleProp","props","valueAsArray","useValueEditor","useCallback","index","multiValueHandler","v","valueEditorType","operator","Editor","multiValueOperators","Fragment","C","A","handleRangeStartChange","term"],"mappings":"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","file":"value-editor.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useCallback } from 'react';\nimport { useValueEditor, type ValueEditorProps } from 'react-querybuilder';\nimport { Checkbox } from '../checkbox';\nimport { Radio } from '../radio';\nimport { Switch } from '../switch';\nimport { TextAreaField } from '../text-area-field';\nimport { TextField } from '../text-field';\nimport { multiValueOperators } from './constants';\nimport { getValidationResult } from './utils';\nimport { ValueSelector } from './value-selector';\nimport type { InputProps } from '../input/types';\nimport type { QueryBuilderValueEditors } from './types';\n\nfunction CheckboxValueEditor({\n disabled,\n fieldData: { name, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\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 );\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 <Radio.Group\n value={value}\n isDisabled={disabled}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n >\n {values?.map((option) => (\n <Radio key={option.name} value={option.value}>\n {option.label}\n </Radio>\n ))}\n </Radio.Group>\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 aria-labelledby={name}\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 aria-labelledby={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, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextField\n inputProps={{\n placeholder,\n type: (inputType as InputProps['type']) ?? 'text',\n }}\n size='small'\n value={value}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-invalid={!valid}\n aria-label={name}\n aria-labelledby={name}\n errorMessage={reasons?.join('/n')}\n />\n );\n}\n\nfunction TextareaValueEditor({\n disabled,\n fieldData: { name, placeholder, validator },\n handleOnChange,\n rule,\n value,\n}: ValueEditorProps) {\n const { valid, reasons } = getValidationResult(rule, validator);\n\n return (\n <TextAreaField\n size='small'\n errorMessage={reasons?.join('/n')}\n inputProps={{ placeholder }}\n value={value}\n isDisabled={disabled}\n isInvalid={!valid}\n onChange={handleOnChange}\n aria-label={name}\n aria-invalid={!valid}\n aria-labelledby={name}\n />\n );\n}\n\nconst valueEditors: QueryBuilderValueEditors = {\n checkbox: CheckboxValueEditor,\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: { name, valueEditorType },\n operator,\n rule: ruleProp,\n } = props;\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={`${name}-${term}`}>\n <Editor\n {...props}\n rule={rule(index)}\n value={valueAsArray[index]}\n handleOnChange={\n index ? handleRangeEndChange : handleRangeStartChange\n }\n />\n </div>\n ))}\n </>\n );\n }\n\n return (\n <div>\n <Editor {...props} />\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/query-builder/value-selector.tsx"],"names":["multiple","title","validation","value","onChange","val","useValueSelector","handleOnChange","O","selection","S","options","useMemo","isOptionGroupArray","optionsProp","section","jsx","Options","C","r","option","a","A","disabled","handleSelectionChange"],"mappings":"sQA2BI,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAEA,CAAA,CAAA,CAAA,QACA,CAAA,CAAA,CAAA,eACAA,CAAAA,OACAC,CAAAA,CACA,CAAA,QAAA,CAAA,CAAAC,MACA,CAAA,CAAAC,CAAAA,UAIM,CAAA,CAAA,CAAA,KAAA,CAAAC,CAAAA,CAAU,GAAA,CAAAC,CAAI,CAAA,CAAIC,CAAAA,CAAiB,QACzC,CAAA,CAAA,CAAA,GAAA,CAAA,CAAAC,CAAAA,CACAC,gCACA,CAAA,CAAA,CAAA,aACAL,CACF,CAAC,CAAA,QAG4B,CACrBM,CAAAA,CAAAA,KACO,CAAGA,CAAS,EAAE,CAE3B,CAAA,CACAC,WAACN,CAAQ,CACX,EAEMO,CAAAA,CAAUC,EACd,CAAA,CAAA,CAAA,EACEC,CAAmBC,CAAW,CAAA,EAC1BA,CAAAA,CAAY,IAAKC,CAAAA,CAAAA,CACfC,OAAAA,CAACC,IAAQC,kBAAA,CAAA,CAAA,CAAA,CAAA,CAAR,CAAoC,GAAA,CAAA,CAAA,EAAQH,GAAAA,CAAQI,eAClD,CAAA,CAAA,MAAQ,QAAQ,CAAA,QACdF,CAAAA,CAAQ,CAAA,OAAK,CAAIG,GAAO,CAAA,CAAA,EACtBC,GAAA,CAAAF,OAAA,CAAA,IAAA,CAAAC,GAAO,CAAA,CAAA,CAAA,IAD0BA,CAAO,QAFzBL,CAAAA,CAAQ,CAAA,KAO/B,CAAA,CACDD,CAAAA,CAAY,IAAKM,CAAAA,CAAAA,CACfJ,CAAAA,CAACC,MAAQ,CAAR,CACC,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,EAAWG,GAAAA,CAAOD,YAClB,CAAA,CAAA,SAGC,CAAA,CAAA,CAAA,KAAAC,CAAAA,SAFIA,CAAO,QAKrBN,CAAW,CACd,MAEA,CAAA,CAAA,CACEE,CAAAA,IACE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,OACLK,GAAA,CAAAC,aAAA,CAAA,CAAA,IAAYC,mBAEC,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,WAAmB,CAAC,KACvC,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBtB,CAAAA,CACjB,kBAAmBuB,CAAAA,CAElB,iBAGP,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA","file":"value-selector.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/components/query-builder/value-selector.tsx"],"names":["multiple","title","validation","value","onChange","val","useValueSelector","handleOnChange","O","selection","S","options","useMemo","isOptionGroupArray","optionsProp","section","jsx","Options","C","r","option","a","A","disabled","handleSelectionChange"],"mappings":"sQA2BI,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,oBAEA,CAAA,CAAA,CAAA,QACA,CAAA,CAAA,CAAA,eACAA,CAAAA,OACAC,CAAAA,CACA,CAAA,QAAA,CAAA,CAAAC,MACA,CAAA,CAAAC,CAAAA,UAIM,CAAA,CAAA,CAAA,KAAA,CAAAC,CAAAA,CAAU,GAAA,CAAAC,CAAI,CAAA,CAAIC,CAAAA,CAAiB,QACzC,CAAA,CAAA,CAAA,GAAA,CAAA,CAAAC,CAAAA,CACAC,gCACA,CAAA,CAAA,CAAA,aACAL,CACF,CAAC,CAAA,QAG4B,CACrBM,CAAAA,CAAAA,KACO,CAAGA,CAAS,EAAE,CAE3B,CAAA,CACAC,WAACN,CAAQ,CACX,EAEMO,CAAAA,CAAUC,EACd,CAAA,CAAA,CAAA,EACEC,CAAmBC,CAAW,CAAA,EAC1BA,CAAAA,CAAY,IAAKC,CAAAA,CAAAA,CACfC,OAAAA,CAACC,IAAQC,kBAAA,CAAA,CAAA,CAAA,CAAA,CAAR,CAAoC,GAAA,CAAA,CAAA,EAAQH,GAAAA,CAAQI,eAClD,CAAA,CAAA,MAAQ,QAAQ,CAAA,QACdF,CAAAA,CAAQ,CAAA,OAAK,CAAIG,GAAO,CAAA,CAAA,EACtBC,GAAA,CAAAF,OAAA,CAAA,IAAA,CAAAC,GAAO,CAAA,CAAA,CAAA,IAD0BA,CAAO,QAFzBL,CAAAA,CAAQ,CAAA,KAO/B,CAAA,CACDD,CAAAA,CAAY,IAAKM,CAAAA,CAAAA,CACfJ,CAAAA,CAACC,MAAQ,CAAR,CACC,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,EAAWG,GAAAA,CAAOD,YAClB,CAAA,CAAA,SAGC,CAAA,CAAA,CAAA,KAAAC,CAAAA,SAFIA,CAAO,QAKrBN,CAAW,CACd,MAEA,CAAA,CAAA,CACEE,CAAAA,IACE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,OACLK,GAAA,CAAAC,aAAA,CAAA,CAAA,IAAYC,mBAEC,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,WAAmB,CAAC,KACvC,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBtB,CAAAA,CACjB,kBAAmBuB,CAAAA,CAElB,iBAGP,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA","file":"value-selector.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useCallback, useMemo } from 'react';\nimport {\n isOptionGroupArray,\n useValueSelector,\n type ValueSelectorProps,\n} from 'react-querybuilder';\nimport { ComboBoxField } from '../combobox-field';\nimport { Options } from '../options';\nimport type { Key } from '@react-types/shared';\n\nexport function ValueSelector(props: ValueSelectorProps) {\n const {\n handleOnChange,\n disabled,\n listsAsArrays,\n options: optionsProp,\n multiple,\n title,\n validation,\n value,\n ...rest\n } = props;\n\n const { onChange, val } = useValueSelector({\n handleOnChange,\n listsAsArrays,\n multiple,\n value,\n });\n\n const handleSelectionChange = useCallback(\n (selection: Key | null) => {\n if (selection) {\n onChange(`${selection}`);\n }\n },\n [onChange],\n );\n\n const options = useMemo(\n () =>\n isOptionGroupArray(optionsProp)\n ? optionsProp.map((section) => (\n <Options.Section key={section.label} header={section.label}>\n {section.options.map((option) => (\n <Options.Item id={option.name} key={option.name}>\n {option.label}\n </Options.Item>\n ))}\n </Options.Section>\n ))\n : optionsProp.map((option) => (\n <Options.Item\n textValue={option.label}\n id={option.name}\n key={option.name}\n >\n {option.label}\n </Options.Item>\n )),\n [optionsProp],\n );\n\n return (\n <ComboBoxField\n size='small'\n isDisabled={disabled}\n {...rest}\n selectedKey={Array.isArray(val) ? val[0] : val}\n aria-labelledby={title}\n onSelectionChange={handleSelectionChange}\n >\n {options}\n </ComboBoxField>\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {tv}from'./../../lib/utils.js';const r=tv({slots:{group:["group/radio-group flex gap-xs","orientation-horizontal:flex-wrap","orientation-vertical:flex-col"],groupLabel:"w-full",radio:["group/radio flex cursor-pointer items-center gap-m group-orientation-horizontal/radio-group:grow group-orientation-horizontal/radio-group:basis-1/3","disabled:cursor-not-allowed"],control:["my-xxs flex size-l items-center justify-center rounded-full outline outline-interactive before:block before:size-s before:rounded-full","group-enabled/radio:group-focus-visible/radio:outline-interactive-hover","group-enabled/radio:group-hover/radio:outline-interactive-hover","group-enabled/radio:group-selected/radio:outline-
|
|
1
|
+
import {tv}from'./../../lib/utils.js';const r=tv({slots:{group:["group/radio-group flex gap-xs","orientation-horizontal:flex-wrap","orientation-vertical:flex-col"],groupLabel:"w-full",radio:["group/radio flex cursor-pointer items-center gap-m group-orientation-horizontal/radio-group:grow group-orientation-horizontal/radio-group:basis-1/3","disabled:cursor-not-allowed"],control:["my-xxs flex size-l items-center justify-center rounded-full outline outline-interactive before:block before:size-s before:rounded-full","group-enabled/radio:group-focus-visible/radio:outline-interactive-hover","group-enabled/radio:group-hover/radio:outline-interactive-hover","group-enabled/radio:group-selected/radio:outline-accent-primary-bold group-enabled/radio:group-selected/radio:before:bg-accent-primary-bold","group-enabled/radio:group-selected/radio:group-focus-visible/radio:outline-interactive-hover","group-enabled/radio:group-selected/radio:group-hover/radio:outline-interactive-hover","group-disabled/radio:outline-interactive-disabled","group-disabled/radio:group-selected/radio:before:bg-interactive-disabled"],label:["fg-primary-bold text-body-s","group-disabled/radio:fg-disabled"]}});export{r as RadioStyles};//# sourceMappingURL=styles.js.map
|
|
2
2
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/radio/styles.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/components/radio/styles.ts"],"names":["o"],"mappings":"sCAeE,MAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KACE,CAAA,CAAA,KAAA,CAAA,CAAA,+BACA,CAAA,kEAGF,CAAA,CAAA,UACA,CAAA,QACE,CAAA,KAAA,CAAA,CAAA,qJACA,CAAA,6BAEO,CACP,kJACA,CAAA,yEACA,CAAA,+MAEA,CAAA,8FACA,CAAA,sFACA,CAAA,mDACA,CAAA,gHAEqC,CAAA,kCAE1C,CAAA,CAAA,CAAA","file":"styles.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { tv } from '@/lib/utils';\n\nexport const RadioStyles = tv({\n slots: {\n group: [\n 'group/radio-group flex gap-xs',\n 'orientation-horizontal:flex-wrap',\n 'orientation-vertical:flex-col',\n ],\n groupLabel: 'w-full',\n radio: [\n 'group/radio flex cursor-pointer items-center gap-m group-orientation-horizontal/radio-group:grow group-orientation-horizontal/radio-group:basis-1/3',\n 'disabled:cursor-not-allowed',\n ],\n control: [\n 'my-xxs flex size-l items-center justify-center rounded-full outline outline-interactive before:block before:size-s before:rounded-full',\n 'group-enabled/radio:group-focus-visible/radio:outline-interactive-hover',\n 'group-enabled/radio:group-hover/radio:outline-interactive-hover',\n 'group-enabled/radio:group-selected/radio:outline-accent-primary-bold group-enabled/radio:group-selected/radio:before:bg-accent-primary-bold',\n 'group-enabled/radio:group-selected/radio:group-focus-visible/radio:outline-interactive-hover',\n 'group-enabled/radio:group-selected/radio:group-hover/radio:outline-interactive-hover',\n 'group-disabled/radio:outline-interactive-disabled',\n 'group-disabled/radio:group-selected/radio:before:bg-interactive-disabled',\n ],\n label: ['fg-primary-bold text-body-s', 'group-disabled/radio:fg-disabled'],\n },\n});\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { ProviderProps } from '../../lib/types.js';
|
|
4
3
|
import { ContextValue } from 'react-aria-components';
|
|
4
|
+
import { ProviderProps } from '../../lib/types.js';
|
|
5
5
|
import { SearchFieldProps } from './types.js';
|
|
6
6
|
import 'tailwind-variants';
|
|
7
7
|
import '../button/types.js';
|
|
@@ -31,8 +31,8 @@ declare namespace SearchFieldProvider {
|
|
|
31
31
|
* variant="filled"
|
|
32
32
|
* placeholder="Search products"
|
|
33
33
|
* classNames={{
|
|
34
|
-
* input: "bg-
|
|
35
|
-
* searchIcon: "
|
|
34
|
+
* input: "bg-info-bold",
|
|
35
|
+
* searchIcon: "fg-accent-primary-bold"
|
|
36
36
|
* }}
|
|
37
37
|
* />
|
|
38
38
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search-field/index.tsx"],"names":["input","SearchFieldContext","x","F","props","jsx","e","SearchFieldProvider","useContextProps","ref","N","inputProps","isLoading","variant","SearchFieldStylesDefaults","rest","C","Icon","t","v","composeRenderProps","classNames","className","field","search","Search","Input","u","y","loading","Loop","Button","S","clear","CancelFill","P","SearchField"],"mappings":"8VA6Be,MAAA,CAAAA,KAAO,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,MAAS,CAAA,CAAA,CAAA,OAA4B,CAAA,CAEtDC,CAAAA,KACmD,CAAA,CAAI,CAAA,CAEpEC,iBAAA,EAAA,CAAA,CAAA,CAAAC,aAAA,CAAA,IACE,EAAA,SACA,CAAA,CAAA,CAAGC,QAEH,CAAA,CAAA,CACEC,GAACJ,CAAmB,CAAA,CAAA,CAAA,OAASK,GAAA,CAAA,CAAA,CAAA,QAC1B,CAAA,CAAA,KACH,CAEJ,CACAC,CAAAA,QAAoB,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,WAAA,CAAA,sBAsCJ,CAAA,SAAc,CAAqB,CAC/D,CAACH,GAAU,CAAA,CAAII,CAAAA,GAAuBC,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAMR,CAAkB,CAAAS,eAErE,CAAA,CAAA,CAAA,CAAA,EACE,IAAA,CAAA,CAAA,CAAA,CAAA,KACA,CAAA,UAAAC,CAAAA,CACA,CAAA,UAAAC,CAAY,CAAA,CAAA,SACZC,CAAAA,CAAUC,CAAAA,KAA0B,CAAA,OACpC,CAAA,CAAGC,CACLC,yBAAA,CAAIZ,OAEJ,CAAA,GACGa,CAAAA,CAAK,CAAA,CAAA,CAAA,OAASX,GAAA,CAAAY,IAAA,CAAA,QAAK,CAClB,CAAA,IAAA,CAAA,OAAC,CACE,QACD,CAAKT,IAAAA,CACLU,WAAA,CAAA,CAAA,GAAA,CAAA,CAAA,GAAWC,CAAmBC,CAAAA,CAAAA,SAAoBC,CAChDC,kBAAAA,CAAM,CAAE,EAAA,KAAA,CAAA,CAAA,EAAAD,CAAW,CAAA,CAAA,SACrB,CAAA,CAEA,CAAA,OAAA,CAAA,CAAAjB,CAAAA,CAACY,CAAAA,CAAA,QAAK,CAAA,CAAAX,GAAWkB,CAAAA,IAAO,CAAE,CAAA,SAAWH,CAAAA,CAAAA,CAAY,CAAA,SAAQ,CAAA,CAAA,EAAA,MACvD,CAAA,OAAAhB,CAAAA,CAACoB,CAAAA,CAAA,CAAA,QAEFC,CAAApB,GACE,CAAAqB,MAAA,CAAGhB,EACJ,CAAA,CAAA,CAAA,CAAAL,GAAA,CAAAsB,KAAA,CAAA,CAAA,GAA8BP,CAAAA,CAAAA,SAAoBC,CAChDtB,kBAAAA,CAAM,CAAE,EAAA,KAAA,CAAA,CAAA,EAAAsB,CAAW,CAAA,CAAA,SACrB,CAAA,CACA,CAAA,OAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CACP,IAEEjB,CAAAA,QACE,CAAA,CAAA,CAAA,CAAA,CAAAC,GAAWuB,CAAAA,IAAQ,CAAE,CAAA,SAAWR,CAAAA,CAAAA,CAAY,CAAA,SAAS,CAAA,CAAA,EAAA,OAErD,CAAA,OAAAhB,CAAAA,CAACyB,CAAAA,CAAA,CAAA,QAGFC,CAAAzB,GACC,CAAA0B,IAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA1B,GAAWc,CAAAA,MAAmBC,CAAAA,CAAAA,SAAoBC,CAChDW,kBAAAA,CAAM,CAAE,EAAA,KAAA,CAAA,CAAA,EAAAX,CAAW,CAAA,CAAA,SACrB,CAAA,CAEA,CAAA,OAAA,CAAAjB,CAAAA,CAACY,CAAAA,CAAA,CACC,QAAA,CAAAZ,GAAAA,CAAC6B,IAAAA,CAAA,CAAA,QAIT,CAAA5B,GACF,CAEJ6B,UAEAC,CAAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,WAAA,CAC1BA,aAAuB7B,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/components/search-field/index.tsx"],"names":["input","SearchFieldContext","x","F","props","jsx","e","SearchFieldProvider","useContextProps","ref","N","inputProps","isLoading","variant","SearchFieldStylesDefaults","rest","C","Icon","t","v","composeRenderProps","classNames","className","field","search","Search","Input","u","y","loading","Loop","Button","S","clear","CancelFill","P","SearchField"],"mappings":"8VA6Be,MAAA,CAAAA,KAAO,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,MAAS,CAAA,CAAA,CAAA,OAA4B,CAAA,CAEtDC,CAAAA,KACmD,CAAA,CAAI,CAAA,CAEpEC,iBAAA,EAAA,CAAA,CAAA,CAAAC,aAAA,CAAA,IACE,EAAA,SACA,CAAA,CAAA,CAAGC,QAEH,CAAA,CAAA,CACEC,GAACJ,CAAmB,CAAA,CAAA,CAAA,OAASK,GAAA,CAAA,CAAA,CAAA,QAC1B,CAAA,CAAA,KACH,CAEJ,CACAC,CAAAA,QAAoB,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,WAAA,CAAA,sBAsCJ,CAAA,SAAc,CAAqB,CAC/D,CAACH,GAAU,CAAA,CAAII,CAAAA,GAAuBC,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAMR,CAAkB,CAAAS,eAErE,CAAA,CAAA,CAAA,CAAA,EACE,IAAA,CAAA,CAAA,CAAA,CAAA,KACA,CAAA,UAAAC,CAAAA,CACA,CAAA,UAAAC,CAAY,CAAA,CAAA,SACZC,CAAAA,CAAUC,CAAAA,KAA0B,CAAA,OACpC,CAAA,CAAGC,CACLC,yBAAA,CAAIZ,OAEJ,CAAA,GACGa,CAAAA,CAAK,CAAA,CAAA,CAAA,OAASX,GAAA,CAAAY,IAAA,CAAA,QAAK,CAClB,CAAA,IAAA,CAAA,OAAC,CACE,QACD,CAAKT,IAAAA,CACLU,WAAA,CAAA,CAAA,GAAA,CAAA,CAAA,GAAWC,CAAmBC,CAAAA,CAAAA,SAAoBC,CAChDC,kBAAAA,CAAM,CAAE,EAAA,KAAA,CAAA,CAAA,EAAAD,CAAW,CAAA,CAAA,SACrB,CAAA,CAEA,CAAA,OAAA,CAAA,CAAAjB,CAAAA,CAACY,CAAAA,CAAA,QAAK,CAAA,CAAAX,GAAWkB,CAAAA,IAAO,CAAE,CAAA,SAAWH,CAAAA,CAAAA,CAAY,CAAA,SAAQ,CAAA,CAAA,EAAA,MACvD,CAAA,OAAAhB,CAAAA,CAACoB,CAAAA,CAAA,CAAA,QAEFC,CAAApB,GACE,CAAAqB,MAAA,CAAGhB,EACJ,CAAA,CAAA,CAAA,CAAAL,GAAA,CAAAsB,KAAA,CAAA,CAAA,GAA8BP,CAAAA,CAAAA,SAAoBC,CAChDtB,kBAAAA,CAAM,CAAE,EAAA,KAAA,CAAA,CAAA,EAAAsB,CAAW,CAAA,CAAA,SACrB,CAAA,CACA,CAAA,OAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CACP,IAEEjB,CAAAA,QACE,CAAA,CAAA,CAAA,CAAA,CAAAC,GAAWuB,CAAAA,IAAQ,CAAE,CAAA,SAAWR,CAAAA,CAAAA,CAAY,CAAA,SAAS,CAAA,CAAA,EAAA,OAErD,CAAA,OAAAhB,CAAAA,CAACyB,CAAAA,CAAA,CAAA,QAGFC,CAAAzB,GACC,CAAA0B,IAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA1B,GAAWc,CAAAA,MAAmBC,CAAAA,CAAAA,SAAoBC,CAChDW,kBAAAA,CAAM,CAAE,EAAA,KAAA,CAAA,CAAA,EAAAX,CAAW,CAAA,CAAA,SACrB,CAAA,CAEA,CAAA,OAAA,CAAAjB,CAAAA,CAACY,CAAAA,CAAA,CACC,QAAA,CAAAZ,GAAAA,CAAC6B,IAAAA,CAAA,CAAA,QAIT,CAAA5B,GACF,CAEJ6B,UAEAC,CAAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,WAAA,CAC1BA,aAAuB7B,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { CancelFill, Loop, Search } from '@accelint/icons';\nimport { createContext } from 'react';\nimport {\n SearchField as AriaSearchField,\n Button,\n type ContextValue,\n composeRenderProps,\n Input,\n useContextProps,\n} from 'react-aria-components';\nimport { Icon } from '../icon';\nimport { SearchFieldStyles, SearchFieldStylesDefaults } from './styles';\nimport type { ProviderProps } from '@/lib/types';\nimport type { SearchFieldProps } from './types';\n\nconst { field, input, search, loading, clear } = SearchFieldStyles();\n\nexport const SearchFieldContext =\n createContext<ContextValue<SearchFieldProps, HTMLDivElement>>(null);\n\nfunction SearchFieldProvider({\n children,\n ...props\n}: ProviderProps<SearchFieldProps>) {\n return (\n <SearchFieldContext.Provider value={props}>\n {children}\n </SearchFieldContext.Provider>\n );\n}\nSearchFieldProvider.displayName = 'SearchField.Provider';\n\n/**\n * SearchField - A customizable search input component built on React Aria Components\n *\n * Provides a search input with integrated search icon, loading state, and clear functionality.\n * Supports two visual variants (filled/outlined), and granular styling control.\n *\n * @example\n * // Basic search field\n * <SearchField placeholder=\"Search...\" />\n *\n * @example\n * // Filled variant with custom styling\n * <SearchField\n * variant=\"filled\"\n * placeholder=\"Search products\"\n * classNames={{\n * input: \"bg-info-bold\",\n * searchIcon: \"fg-accent-primary-bold\"\n * }}\n * />\n *\n * @example\n * // With event handlers\n * <SearchField\n * placeholder=\"Type to search\"\n * onSubmit={(value) => console.log('Search:', value)}\n * onChange={(value) => setQuery(value)}\n * />\n *\n * @example\n * // Using context provider for default props\n * <SearchField.Provider variant=\"filled\">\n * <SearchField placeholder=\"Search 1\" />\n * <SearchField placeholder=\"Search 2\" />\n * </SearchField.Provider>\n */\nexport function SearchField({ ref, ...props }: SearchFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, SearchFieldContext);\n\n const {\n classNames,\n inputProps,\n isLoading = false,\n variant = SearchFieldStylesDefaults.variant,\n ...rest\n } = props;\n\n return (\n <Icon.Provider size='small'>\n <AriaSearchField\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n field({ className, variant }),\n )}\n >\n <Icon className={search({ className: classNames?.search, variant })}>\n <Search />\n </Icon>\n <Input\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n input({ className, variant }),\n )}\n type='search'\n />\n {isLoading ? (\n <Icon\n className={loading({ className: classNames?.loading, variant })}\n >\n <Loop />\n </Icon>\n ) : (\n <Button\n className={composeRenderProps(classNames?.clear, (className) =>\n clear({ className, variant }),\n )}\n >\n <Icon>\n <CancelFill />\n </Icon>\n </Button>\n )}\n </AriaSearchField>\n </Icon.Provider>\n );\n}\n\nSearchField.displayName = 'SearchField';\nSearchField.Provider = SearchFieldProvider;\n"]}
|
|
@@ -48,6 +48,6 @@ declare const SearchFieldStyles: tailwind_variants.TVReturnType<{
|
|
|
48
48
|
clear: string[];
|
|
49
49
|
loading: string;
|
|
50
50
|
search: string;
|
|
51
|
-
}, undefined, unknown, unknown
|
|
51
|
+
}, undefined, unknown, unknown>>;
|
|
52
52
|
|
|
53
53
|
export { SearchFieldStyles, SearchFieldStylesDefaults };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {tv}from'./../../lib/utils.js';const i={variant:"outlined"},
|
|
1
|
+
import {tv}from'./../../lib/utils.js';const i={variant:"outlined"},o=tv({slots:{field:["group/search-field fg-primary-bold flex items-center gap-s rounded-round p-s outline","focus-visible-within:outline-accent-primary-bold","hover:outline-interactive-hover","disabled:fg-disabled disabled:placeholder:fg-disabled disabled:cursor-not-allowed disabled:outline-interactive-disabled"],input:["hide-cancel block w-full font-display text-body-s outline-none","placeholder:fg-primary-muted","disabled:cursor-not-allowed"],clear:["fg-info-bold cursor-pointer","focus-visible:fg-info-hover","hover:fg-info-hover","group-empty/search-field:invisible group-disabled/search-field:invisible"],loading:"motion-safe:animate-spin",search:""},variants:{variant:{filled:{field:"bg-surface-raised outline-static"},outlined:{field:"outline-interactive"}}},defaultVariants:i});export{o as SearchFieldStyles,i as SearchFieldStylesDefaults};//# sourceMappingURL=styles.js.map
|
|
2
2
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/search-field/styles.ts"],"names":["e"],"mappings":"sCAeE,MAAA,CAAS,CAAA,CAAA,OAAA,CACX,UAGE,CAAA,CAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KACE,CAAA,CAAA,KAAA,CAAA,CAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/search-field/styles.ts"],"names":["e"],"mappings":"sCAeE,MAAA,CAAS,CAAA,CAAA,OAAA,CACX,UAGE,CAAA,CAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KACE,CAAA,CAAA,KAAA,CAAA,CAAA,sFACA,CAAA,kDACA,CAAA,iCACA,CAAA,yHAGA,CAAA,CAAA,KAAA,CAAA,CAAA,gEACA,CAAA,8BACA,CAAA,6BAGA,CAAA,CAAA,KAAA,CAAA,CAAA,6BACA,CAAA,6BACA,CAAA,qBACA,CAAA,0EAEO,CAAA,CAAA,OAAA,CAAA,0BAEX,CAAA,MACA,CAAA,EAAA,CAAU,CACR,QAAS,CACP,CAAA,OACE,CAAA,CAAA,MAAO,CAAA,CAAA,KAAA,CAAA,kCAET,CAAU,CACR,QAAO,CAAA,CAAA,KAAA,CAAA,qBAIb,CAAA,CAAA,CAAA,CAAA,eACD,CAAA,CAAA,CAAA","file":"styles.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { tv } from '@/lib/utils';\n\nexport const SearchFieldStylesDefaults = {\n variant: 'outlined',\n} as const;\n\nexport const SearchFieldStyles = tv({\n slots: {\n field: [\n 'group/search-field fg-primary-bold flex items-center gap-s rounded-round p-s outline',\n 'focus-visible-within:outline-accent-primary-bold',\n 'hover:outline-interactive-hover',\n 'disabled:fg-disabled disabled:placeholder:fg-disabled disabled:cursor-not-allowed disabled:outline-interactive-disabled',\n ],\n input: [\n 'hide-cancel block w-full font-display text-body-s outline-none',\n 'placeholder:fg-primary-muted',\n 'disabled:cursor-not-allowed',\n ],\n clear: [\n 'fg-info-bold cursor-pointer',\n 'focus-visible:fg-info-hover',\n 'hover:fg-info-hover',\n 'group-empty/search-field:invisible group-disabled/search-field:invisible',\n ],\n loading: 'motion-safe:animate-spin',\n search: '',\n },\n variants: {\n variant: {\n filled: {\n field: 'bg-surface-raised outline-static',\n },\n outlined: {\n field: 'outline-interactive',\n },\n },\n },\n defaultVariants: SearchFieldStylesDefaults,\n});\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { ProviderProps } from '../../lib/types.js';
|
|
4
3
|
import { ContextValue } from 'react-aria-components';
|
|
4
|
+
import { ProviderProps } from '../../lib/types.js';
|
|
5
5
|
import { SelectFieldProps } from './types.js';
|
|
6
6
|
import '../button/types.js';
|
|
7
7
|
import 'tailwind-variants';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import V from'@accelint/icons/chevron-down';import {createContext}from'react';import {useContextProps,Select,composeRenderProps,SelectValue,Text,FieldError,Popover,Virtualizer,ListLayout}from'react-aria-components';import {Button}from'../button/index.js';import {Icon}from'../icon/index.js';import {Label}from'../label/index.js';import {Options}from'../options/index.js';import {SelectFieldStyles}from'./styles.js';const {description:k,error:G,trigger:J,label:
|
|
1
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import V from'@accelint/icons/chevron-down';import {createContext}from'react';import {useContextProps,Select,composeRenderProps,SelectValue,Text,FieldError,Popover,Virtualizer,ListLayout}from'react-aria-components';import {Button}from'../button/index.js';import {Icon}from'../icon/index.js';import {Label}from'../label/index.js';import {Options}from'../options/index.js';import {SelectFieldStyles}from'./styles.js';const {description:k,error:G,trigger:J,label:d,field:K,value:Q}=SelectFieldStyles(),m=createContext(null);function u({children:o,...t}){return jsx(m.Provider,{value:t,children:o})}u.displayName="SelectField.Provider";function P({ref:o,...t}){[t,o]=useContextProps(t,o??null,m);const{size:i="medium",children:S,classNames:r,description:n,errorMessage:f,label:N,layoutOptions:F,isInvalid:y,...g}=t,c=f||null,p=i==="small",b=!p&&!!d;return jsx(Select,{...g,ref:o,className:composeRenderProps(r?.field,s=>K({className:s})),isInvalid:y||(c?true:void 0),"data-size":i,children:composeRenderProps(S,(s,{isRequired:x,isDisabled:C,isInvalid:L})=>jsxs(Fragment,{children:[b&&jsx(Label,{className:d({className:r?.label}),isRequired:x,isDisabled:C,children:N}),jsxs(Button,{className:composeRenderProps(r?.trigger,a=>J({className:a})),variant:"outline",size:i,children:[jsx(SelectValue,{className:Q({className:r?.value})}),jsx(Icon,{children:jsx(V,{className:"transform group-open/select-field:rotate-180"})})]}),!!n&&!(p||L)&&jsx(Text,{className:k({className:r?.description}),slot:"description",children:n}),jsx(FieldError,{className:composeRenderProps(r?.error,a=>G({className:a})),children:c}),jsx(Popover,{className:"min-w-(--trigger-width)",children:jsx(Virtualizer,{layout:ListLayout,layoutOptions:F,children:jsx(Options,{children:s})})})]}))})}P.displayName="SelectField",P.Provider=u;export{P as SelectField,m as SelectFieldContext};//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/select-field/index.tsx"],"names":["SelectFieldStyles","createContext","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/select-field/index.tsx"],"names":["SelectFieldStyles","createContext","children","props","H","z","jsx","SelectFieldProvider","e","SelectField","SelectFieldContext","D","classNames","errorMessageProp","errorMessage","showLabel","label","AriaSelect","rest","ref","composeRenderProps","className","I","isInvalidProp","size","isRequired","isDisabled","isInvalid","jsxs","Fragment","v","R","labelProp","Button","trigger","T","l","AriaSelectValue","value","Icon","h","ChevronDown","B","O","descriptionProp","error","w","AriaPopover","E","M","q"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport ChevronDown from '@accelint/icons/chevron-down';\nimport { createContext } from 'react';\nimport {\n Popover as AriaPopover,\n Select as AriaSelect,\n SelectValue as AriaSelectValue,\n type ContextValue,\n composeRenderProps,\n FieldError,\n ListLayout,\n Text,\n useContextProps,\n Virtualizer,\n} from 'react-aria-components';\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport { Options } from '../options';\nimport { SelectFieldStyles } from './styles';\nimport type { ProviderProps } from '@/lib/types';\nimport type { SelectFieldProps } from './types';\n\nconst { description, error, trigger, label, field, value } =\n SelectFieldStyles();\n\nexport const SelectFieldContext =\n createContext<ContextValue<SelectFieldProps, HTMLDivElement>>(null);\n\nfunction SelectFieldProvider({\n children,\n ...props\n}: ProviderProps<SelectFieldProps>) {\n return (\n <SelectFieldContext.Provider value={props}>\n {children}\n </SelectFieldContext.Provider>\n );\n}\nSelectFieldProvider.displayName = 'SelectField.Provider';\n\n/**\n * SelectField - A dropdown selection component with comprehensive form field features\n *\n * Provides an accessible and feature-rich select dropdown with built-in validation,\n * multiple sizing options, virtualization support for large datasets, and seamless\n * integration with form libraries. Includes label, description, and error messaging\n * capabilities with customizable styling through className props.\n *\n * @example\n * // Basic select field\n * <SelectField label='Country' placeholder='Select a country'>\n * <Options.Item textValue='us'>United States</Options.Item>\n * <Options.Item textValue='ca'>Canada</Options.Item>\n * <Options.Item textValue='uk'>United Kingdom</Options.Item>\n * </SelectField>\n *\n * @example\n * // Select field with validation and description\n * <SelectField\n * label=\"Priority Level\"\n * description=\"Choose the urgency level for this task\"\n * errorMessage={errors.priority}\n * isRequired\n * isInvalid={!!errors.priority}\n * >\n * <Options.Item textValue=\"low\">Low</Options.Item>\n * <Options.Item textValue=\"medium\">Medium</Options.Item>\n * <Options.Item textValue=\"high\">High</Options.Item>\n * </SelectField>\n *\n * @example\n * // Small size select field with custom styling\n * <SelectField\n * size=\"small\"\n * placeholder=\"Quick select\"\n * classNames={{\n * field: \"custom-field-styles\",\n * trigger: \"custom-trigger-styles\"\n * }}\n * >\n * <Options.Item textValue=\"option1\">Option 1</Options.Item>\n * <Options.Item textValue=\"option2\">Option 2</Options.Item>\n * </SelectField>\n */\nexport function SelectField({ ref, ...props }: SelectFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, SelectFieldContext);\n\n const {\n size = 'medium',\n children,\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n label: labelProp,\n layoutOptions,\n isInvalid: isInvalidProp,\n ...rest\n } = props;\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n const showLabel = !isSmall && !!label;\n\n return (\n <AriaSelect\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n field({ className }),\n )}\n isInvalid={isInvalidProp || (errorMessage ? true : undefined)}\n data-size={size}\n >\n {composeRenderProps(\n children,\n (children, { isRequired, isDisabled, isInvalid }) => (\n <>\n {showLabel && (\n <Label\n className={label({ className: classNames?.label })}\n isRequired={isRequired}\n isDisabled={isDisabled}\n >\n {labelProp}\n </Label>\n )}\n <Button\n className={composeRenderProps(classNames?.trigger, (className) =>\n trigger({ className }),\n )}\n variant='outline'\n size={size}\n >\n <AriaSelectValue\n className={value({ className: classNames?.value })}\n />\n <Icon>\n <ChevronDown className='transform group-open/select-field:rotate-180' />\n </Icon>\n </Button>\n {!!descriptionProp && !(isSmall || isInvalid) && (\n <Text\n className={description({ className: classNames?.description })}\n slot='description'\n >\n {descriptionProp}\n </Text>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n error({ className }),\n )}\n >\n {errorMessage}\n </FieldError>\n <AriaPopover className='min-w-(--trigger-width)'>\n <Virtualizer layout={ListLayout} layoutOptions={layoutOptions}>\n <Options>{children}</Options>\n </Virtualizer>\n </AriaPopover>\n </>\n ),\n )}\n </AriaSelect>\n );\n}\nSelectField.displayName = 'SelectField';\nSelectField.Provider = SelectFieldProvider;\n"]}
|
|
@@ -4,10 +4,10 @@ import * as tailwind_merge from 'tailwind-merge';
|
|
|
4
4
|
declare const SelectFieldStyles: tailwind_variants.TVReturnType<{
|
|
5
5
|
[key: string]: {
|
|
6
6
|
[key: string]: tailwind_merge.ClassNameValue | {
|
|
7
|
+
description?: tailwind_merge.ClassNameValue;
|
|
7
8
|
label?: tailwind_merge.ClassNameValue;
|
|
8
9
|
value?: tailwind_merge.ClassNameValue;
|
|
9
10
|
trigger?: tailwind_merge.ClassNameValue;
|
|
10
|
-
description?: tailwind_merge.ClassNameValue;
|
|
11
11
|
field?: tailwind_merge.ClassNameValue;
|
|
12
12
|
error?: tailwind_merge.ClassNameValue;
|
|
13
13
|
};
|
|
@@ -15,10 +15,10 @@ declare const SelectFieldStyles: tailwind_variants.TVReturnType<{
|
|
|
15
15
|
} | {
|
|
16
16
|
[x: string]: {
|
|
17
17
|
[x: string]: tailwind_merge.ClassNameValue | {
|
|
18
|
+
description?: tailwind_merge.ClassNameValue;
|
|
18
19
|
label?: tailwind_merge.ClassNameValue;
|
|
19
20
|
value?: tailwind_merge.ClassNameValue;
|
|
20
21
|
trigger?: tailwind_merge.ClassNameValue;
|
|
21
|
-
description?: tailwind_merge.ClassNameValue;
|
|
22
22
|
field?: tailwind_merge.ClassNameValue;
|
|
23
23
|
error?: tailwind_merge.ClassNameValue;
|
|
24
24
|
};
|
|
@@ -33,10 +33,10 @@ declare const SelectFieldStyles: tailwind_variants.TVReturnType<{
|
|
|
33
33
|
}, undefined, {
|
|
34
34
|
[key: string]: {
|
|
35
35
|
[key: string]: tailwind_merge.ClassNameValue | {
|
|
36
|
+
description?: tailwind_merge.ClassNameValue;
|
|
36
37
|
label?: tailwind_merge.ClassNameValue;
|
|
37
38
|
value?: tailwind_merge.ClassNameValue;
|
|
38
39
|
trigger?: tailwind_merge.ClassNameValue;
|
|
39
|
-
description?: tailwind_merge.ClassNameValue;
|
|
40
40
|
field?: tailwind_merge.ClassNameValue;
|
|
41
41
|
error?: tailwind_merge.ClassNameValue;
|
|
42
42
|
};
|
|
@@ -55,6 +55,6 @@ declare const SelectFieldStyles: tailwind_variants.TVReturnType<{
|
|
|
55
55
|
description: string;
|
|
56
56
|
error: string;
|
|
57
57
|
value: string[];
|
|
58
|
-
}, undefined, unknown, unknown
|
|
58
|
+
}, undefined, unknown, unknown>>;
|
|
59
59
|
|
|
60
60
|
export { SelectFieldStyles };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {tv}from'./../../lib/utils.js';const s=tv({slots:{field:"group/select-field",trigger:["justify-between","size-medium:py-xs group-size-medium/select-field:min-w-[220px]","group-size-small/select-field:fit-content size-small:py-xxs","group-invalid/select-field:enabled:outline-serious","group-focus-visible/select-field:enabled:outline-
|
|
1
|
+
import {tv}from'./../../lib/utils.js';const s=tv({slots:{field:"group/select-field",trigger:["justify-between","size-medium:py-xs group-size-medium/select-field:min-w-[220px]","group-size-small/select-field:fit-content size-small:py-xxs","group-invalid/select-field:enabled:outline-serious-bold","group-focus-visible/select-field:enabled:outline-accent-primary-bold"],label:"",description:"fg-primary-muted group-disabled/select-field:fg-disabled text-body-xs",error:"fg-serious-bold text-body-xs",value:["flex grow items-center font-display","group-size-small/select-field:gap-xs group-size-small/select-field:text-body-xs","group-size-medium/select-field:gap-s group-size-medium/select-field:text-body-s"]}});export{s as SelectFieldStyles};//# sourceMappingURL=styles.js.map
|
|
2
2
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/select-field/styles.ts"],"names":["e"],"mappings":"sCAeE,MAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KAAO,CAAA,CAAA,KAAA,CAAA,oBAEL,2BACA,CAAA,gEACA,CAAA,6DACA,CAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/select-field/styles.ts"],"names":["e"],"mappings":"sCAeE,MAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KAAO,CAAA,CAAA,KAAA,CAAA,oBAEL,2BACA,CAAA,gEACA,CAAA,6DACA,CAAA,yDACA,CAAA,sEAEK,CACP,CAAA,KAAA,CAAA,EAAA,CAAA,mFAEO,CAAA,KAAA,CAAA,8BAEL,CAAA,KAAA,CAAA,CAAA,qCACA,CAAA,iFACA,CAAA,iFAGL,CAAA,CAAA,CAAA","file":"styles.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { tv } from '@/lib/utils';\n\nexport const SelectFieldStyles = tv({\n slots: {\n field: 'group/select-field',\n trigger: [\n 'justify-between',\n 'size-medium:py-xs group-size-medium/select-field:min-w-[220px]',\n 'group-size-small/select-field:fit-content size-small:py-xxs',\n 'group-invalid/select-field:enabled:outline-serious-bold',\n 'group-focus-visible/select-field:enabled:outline-accent-primary-bold',\n ],\n label: '',\n description:\n 'fg-primary-muted group-disabled/select-field:fg-disabled text-body-xs',\n error: 'fg-serious-bold text-body-xs',\n value: [\n 'flex grow items-center font-display',\n 'group-size-small/select-field:gap-xs group-size-small/select-field:text-body-xs',\n 'group-size-medium/select-field:gap-s group-size-medium/select-field:text-body-s',\n ],\n },\n});\n"]}
|
|
@@ -2,8 +2,8 @@ import { RefAttributes } from 'react';
|
|
|
2
2
|
import { SelectProps, VirtualizerProps, ListLayoutOptions, FieldErrorProps } from 'react-aria-components';
|
|
3
3
|
import { ButtonProps } from '../button/types.js';
|
|
4
4
|
import { LabelProps } from '../label/types.js';
|
|
5
|
-
import '../../lib/types.js';
|
|
6
5
|
import 'tailwind-variants';
|
|
6
|
+
import '../../lib/types.js';
|
|
7
7
|
import '../button/styles.js';
|
|
8
8
|
import 'tailwind-merge';
|
|
9
9
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/sidenav/events.ts"],"names":["SidenavEventNamespace","SidenavEventTypes"],"mappings":"AAYO,MAAMA,CAAAA,CAAwB,SAAA,CAExBC,CAAAA,CAAoB,CAC/B,OAAQ,CAAA,EAAGD,CAAqB,CAAA,OAAA,CAAA,CAChC,IAAA,CAAM,GAAGA,CAAqB,CAAA,KAAA,CAAA,CAC9B,KAAA,CAAO,CAAA,EAAGA,CAAqB,CAAA,MAAA,CACjC","file":"events.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport const SidenavEventNamespace = 'Sidenav';\n\nexport const SidenavEventTypes = {\n toggle: `${SidenavEventNamespace}:toggle`,\n open: `${SidenavEventNamespace}:open`,\n close: `${SidenavEventNamespace}:close`,\n} as const;\n"]}
|