@new-black/lyra 1.0.36 → 1.0.38
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/inputs/checkbox/checkbox-group.stories.d.ts.map +1 -1
- package/dist/components/inputs/date-picker/date-picker.d.ts +14 -0
- package/dist/components/inputs/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/inputs/date-picker/date-picker.stories.d.ts +4 -0
- package/dist/components/inputs/date-picker/date-picker.stories.d.ts.map +1 -1
- package/dist/components/inputs/date-picker/date-range-picker.d.ts +14 -0
- package/dist/components/inputs/date-picker/date-range-picker.d.ts.map +1 -1
- package/dist/components/inputs/date-picker/date-range-picker.stories.d.ts +4 -0
- package/dist/components/inputs/date-picker/date-range-picker.stories.d.ts.map +1 -1
- package/dist/components/inputs/number-field/number-field.d.ts +14 -0
- package/dist/components/inputs/number-field/number-field.d.ts.map +1 -1
- package/dist/components/inputs/number-field/number-field.stories.d.ts +4 -0
- package/dist/components/inputs/number-field/number-field.stories.d.ts.map +1 -1
- package/dist/components/inputs/numeric-search-field/numeric-search-field.d.ts +2 -0
- package/dist/components/inputs/numeric-search-field/numeric-search-field.d.ts.map +1 -1
- package/dist/components/inputs/numeric-search-field/numeric-search-field.stories.d.ts +5 -0
- package/dist/components/inputs/numeric-search-field/numeric-search-field.stories.d.ts.map +1 -1
- package/dist/components/inputs/search-field/search-field.d.ts +14 -0
- package/dist/components/inputs/search-field/search-field.d.ts.map +1 -1
- package/dist/components/inputs/search-field/search-field.stories.d.ts +4 -0
- package/dist/components/inputs/search-field/search-field.stories.d.ts.map +1 -1
- package/dist/components/inputs/search-list-field/multi-search-list-field.stories.d.ts +4 -0
- package/dist/components/inputs/search-list-field/multi-search-list-field.stories.d.ts.map +1 -1
- package/dist/components/inputs/search-list-field/search-list-field.stories.d.ts +4 -0
- package/dist/components/inputs/search-list-field/search-list-field.stories.d.ts.map +1 -1
- package/dist/components/inputs/select/multi-select.stories.d.ts +4 -0
- package/dist/components/inputs/select/multi-select.stories.d.ts.map +1 -1
- package/dist/components/inputs/select/select.stories.d.ts +4 -0
- package/dist/components/inputs/select/select.stories.d.ts.map +1 -1
- package/dist/components/inputs/shared/styles.d.ts +14 -0
- package/dist/components/inputs/shared/styles.d.ts.map +1 -1
- package/dist/components/inputs/tag-input/tag-input.d.ts +14 -0
- package/dist/components/inputs/tag-input/tag-input.d.ts.map +1 -1
- package/dist/components/inputs/tag-input/tag-input.stories.d.ts +4 -0
- package/dist/components/inputs/tag-input/tag-input.stories.d.ts.map +1 -1
- package/dist/components/inputs/text-field/text-field.d.ts +14 -0
- package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
- package/dist/components/inputs/text-field/text-field.stories.d.ts +4 -0
- package/dist/components/inputs/text-field/text-field.stories.d.ts.map +1 -1
- package/dist/components/inputs/text-field-area/text-field-area.d.ts +14 -0
- package/dist/components/inputs/text-field-area/text-field-area.d.ts.map +1 -1
- package/dist/components/inputs/text-field-area/text-field-area.stories.d.ts +4 -0
- package/dist/components/inputs/text-field-area/text-field-area.stories.d.ts.map +1 -1
- package/dist/components/inputs/time-field/time-field.d.ts +14 -0
- package/dist/components/inputs/time-field/time-field.d.ts.map +1 -1
- package/dist/components/inputs/time-field/time-field.stories.d.ts +4 -0
- package/dist/components/inputs/time-field/time-field.stories.d.ts.map +1 -1
- package/dist/lyra100.cjs +1 -1
- package/dist/lyra100.js +3 -3
- package/dist/lyra101.cjs +1 -1
- package/dist/lyra101.js +3 -3
- package/dist/lyra102.cjs +1 -1
- package/dist/lyra102.js +1 -1
- package/dist/lyra103.cjs +1 -1
- package/dist/lyra103.js +1 -1
- package/dist/lyra16.cjs +1 -1
- package/dist/lyra16.js +1 -1
- package/dist/lyra225.cjs +1 -1
- package/dist/lyra225.js +2 -2
- package/dist/lyra226.cjs +1 -1
- package/dist/lyra226.js +1 -1
- package/dist/lyra227.cjs +1 -1
- package/dist/lyra227.js +2 -2
- package/dist/lyra23.cjs +1 -1
- package/dist/lyra23.cjs.map +1 -1
- package/dist/lyra23.js +44 -44
- package/dist/lyra23.js.map +1 -1
- package/dist/lyra230.cjs +1 -1
- package/dist/lyra230.js +35 -35
- package/dist/lyra25.cjs +1 -1
- package/dist/lyra25.cjs.map +1 -1
- package/dist/lyra25.js +53 -53
- package/dist/lyra25.js.map +1 -1
- package/dist/lyra27.cjs +1 -1
- package/dist/lyra27.js +2 -2
- package/dist/lyra29.cjs +1 -1
- package/dist/lyra29.cjs.map +1 -1
- package/dist/lyra29.js +27 -27
- package/dist/lyra29.js.map +1 -1
- package/dist/lyra33.cjs +1 -1
- package/dist/lyra33.cjs.map +1 -1
- package/dist/lyra33.js +50 -49
- package/dist/lyra33.js.map +1 -1
- package/dist/lyra34.cjs +1 -1
- package/dist/lyra34.js +3 -3
- package/dist/lyra36.cjs +1 -1
- package/dist/lyra36.cjs.map +1 -1
- package/dist/lyra36.js +116 -116
- package/dist/lyra36.js.map +1 -1
- package/dist/lyra37.cjs +1 -1
- package/dist/lyra37.cjs.map +1 -1
- package/dist/lyra37.js +131 -131
- package/dist/lyra37.js.map +1 -1
- package/dist/lyra40.cjs +1 -1
- package/dist/lyra40.cjs.map +1 -1
- package/dist/lyra40.js +4 -2
- package/dist/lyra40.js.map +1 -1
- package/dist/lyra43.cjs +1 -1
- package/dist/lyra43.cjs.map +1 -1
- package/dist/lyra43.js +24 -24
- package/dist/lyra43.js.map +1 -1
- package/dist/lyra44.cjs +1 -1
- package/dist/lyra44.cjs.map +1 -1
- package/dist/lyra44.js +23 -23
- package/dist/lyra44.js.map +1 -1
- package/dist/lyra45.cjs +1 -1
- package/dist/lyra45.cjs.map +1 -1
- package/dist/lyra45.js +31 -31
- package/dist/lyra45.js.map +1 -1
- package/dist/lyra455.cjs +1 -1
- package/dist/lyra455.js +1 -1
- package/dist/lyra456.cjs +1 -1
- package/dist/lyra456.cjs.map +1 -1
- package/dist/lyra456.js +1 -16
- package/dist/lyra456.js.map +1 -1
- package/dist/lyra457.cjs +1 -1
- package/dist/lyra457.cjs.map +1 -1
- package/dist/lyra457.js +16 -1
- package/dist/lyra457.js.map +1 -1
- package/dist/lyra458.cjs +1 -1
- package/dist/lyra458.cjs.map +1 -1
- package/dist/lyra458.js +11 -13
- package/dist/lyra458.js.map +1 -1
- package/dist/lyra459.cjs +1 -1
- package/dist/lyra459.cjs.map +1 -1
- package/dist/lyra459.js +31 -12
- package/dist/lyra459.js.map +1 -1
- package/dist/lyra46.cjs +1 -1
- package/dist/lyra46.cjs.map +1 -1
- package/dist/lyra46.js +26 -26
- package/dist/lyra46.js.map +1 -1
- package/dist/lyra462.cjs +1 -1
- package/dist/lyra462.cjs.map +1 -1
- package/dist/lyra462.js +51 -30
- package/dist/lyra462.js.map +1 -1
- package/dist/lyra463.cjs +1 -1
- package/dist/lyra463.cjs.map +1 -1
- package/dist/lyra463.js +50 -49
- package/dist/lyra463.js.map +1 -1
- package/dist/lyra464.cjs +1 -1
- package/dist/lyra464.cjs.map +1 -1
- package/dist/lyra464.js +7 -53
- package/dist/lyra464.js.map +1 -1
- package/dist/lyra465.cjs +1 -1
- package/dist/lyra465.cjs.map +1 -1
- package/dist/lyra465.js +61 -6
- package/dist/lyra465.js.map +1 -1
- package/dist/lyra466.cjs +1 -1
- package/dist/lyra466.cjs.map +1 -1
- package/dist/lyra466.js +36 -61
- package/dist/lyra466.js.map +1 -1
- package/dist/lyra467.cjs +5 -1
- package/dist/lyra467.cjs.map +1 -1
- package/dist/lyra467.js +2556 -35
- package/dist/lyra467.js.map +1 -1
- package/dist/lyra468.cjs +1 -5
- package/dist/lyra468.cjs.map +1 -1
- package/dist/lyra468.js +52 -2556
- package/dist/lyra468.js.map +1 -1
- package/dist/lyra469.cjs +1 -1
- package/dist/lyra469.cjs.map +1 -1
- package/dist/lyra469.js +13 -53
- package/dist/lyra469.js.map +1 -1
- package/dist/lyra47.cjs +1 -1
- package/dist/lyra47.cjs.map +1 -1
- package/dist/lyra47.js +123 -35
- package/dist/lyra47.js.map +1 -1
- package/dist/lyra471.cjs +1 -1
- package/dist/lyra471.js +1 -1
- package/dist/lyra472.cjs +1 -1
- package/dist/lyra472.js +1 -1
- package/dist/lyra474.cjs +1 -1
- package/dist/lyra474.js +2 -2
- package/dist/lyra475.cjs +1 -1
- package/dist/lyra475.js +2 -2
- package/dist/lyra50.cjs +1 -1
- package/dist/lyra50.js +1 -1
- package/dist/lyra512.cjs +1 -1
- package/dist/lyra512.js +3 -3
- package/dist/lyra514.cjs +1 -1
- package/dist/lyra514.js +1 -1
- package/dist/lyra52.cjs +1 -1
- package/dist/lyra52.js +2 -2
- package/dist/lyra520.cjs +1 -1
- package/dist/lyra520.js +1 -1
- package/dist/lyra521.cjs +1 -1
- package/dist/lyra521.js +35 -35
- package/dist/lyra522.cjs +1 -1
- package/dist/lyra522.js +1 -1
- package/dist/lyra560.cjs +1 -1
- package/dist/lyra560.cjs.map +1 -1
- package/dist/lyra560.js +86 -17
- package/dist/lyra560.js.map +1 -1
- package/dist/lyra561.cjs +1 -1
- package/dist/lyra561.cjs.map +1 -1
- package/dist/lyra561.js +14 -4
- package/dist/lyra561.js.map +1 -1
- package/dist/lyra562.cjs +1 -1
- package/dist/lyra562.cjs.map +1 -1
- package/dist/lyra562.js +13 -140
- package/dist/lyra562.js.map +1 -1
- package/dist/lyra563.cjs +1 -1
- package/dist/lyra563.cjs.map +1 -1
- package/dist/lyra563.js +14 -4
- package/dist/lyra563.js.map +1 -1
- package/dist/lyra564.cjs +1 -1
- package/dist/lyra564.cjs.map +1 -1
- package/dist/lyra564.js +14 -86
- package/dist/lyra564.js.map +1 -1
- package/dist/lyra565.cjs +1 -1
- package/dist/lyra565.cjs.map +1 -1
- package/dist/lyra565.js +12 -12
- package/dist/lyra565.js.map +1 -1
- package/dist/lyra566.cjs +1 -1
- package/dist/lyra566.cjs.map +1 -1
- package/dist/lyra566.js +12 -12
- package/dist/lyra566.js.map +1 -1
- package/dist/lyra567.cjs +1 -1
- package/dist/lyra567.cjs.map +1 -1
- package/dist/lyra567.js +12 -12
- package/dist/lyra567.js.map +1 -1
- package/dist/lyra568.cjs +1 -1
- package/dist/lyra568.cjs.map +1 -1
- package/dist/lyra568.js +9 -9
- package/dist/lyra568.js.map +1 -1
- package/dist/lyra569.cjs +1 -1
- package/dist/lyra569.cjs.map +1 -1
- package/dist/lyra569.js +8 -8
- package/dist/lyra569.js.map +1 -1
- package/dist/lyra570.cjs +1 -1
- package/dist/lyra570.cjs.map +1 -1
- package/dist/lyra570.js +12 -12
- package/dist/lyra570.js.map +1 -1
- package/dist/lyra571.cjs +1 -1
- package/dist/lyra571.cjs.map +1 -1
- package/dist/lyra571.js +9 -9
- package/dist/lyra571.js.map +1 -1
- package/dist/lyra572.cjs +1 -1
- package/dist/lyra572.cjs.map +1 -1
- package/dist/lyra572.js +12 -12
- package/dist/lyra572.js.map +1 -1
- package/dist/lyra573.cjs +1 -1
- package/dist/lyra573.cjs.map +1 -1
- package/dist/lyra573.js +9 -9
- package/dist/lyra573.js.map +1 -1
- package/dist/lyra574.cjs +1 -1
- package/dist/lyra574.cjs.map +1 -1
- package/dist/lyra574.js +12 -12
- package/dist/lyra574.js.map +1 -1
- package/dist/lyra575.cjs +1 -1
- package/dist/lyra575.cjs.map +1 -1
- package/dist/lyra575.js +12 -12
- package/dist/lyra575.js.map +1 -1
- package/dist/lyra576.cjs +1 -1
- package/dist/lyra576.cjs.map +1 -1
- package/dist/lyra576.js +13 -13
- package/dist/lyra576.js.map +1 -1
- package/dist/lyra577.cjs +1 -1
- package/dist/lyra577.cjs.map +1 -1
- package/dist/lyra577.js +12 -12
- package/dist/lyra577.js.map +1 -1
- package/dist/lyra578.cjs +1 -1
- package/dist/lyra578.cjs.map +1 -1
- package/dist/lyra578.js +12 -12
- package/dist/lyra578.js.map +1 -1
- package/dist/lyra579.cjs +1 -1
- package/dist/lyra579.cjs.map +1 -1
- package/dist/lyra579.js +12 -12
- package/dist/lyra579.js.map +1 -1
- package/dist/lyra580.cjs +1 -1
- package/dist/lyra580.cjs.map +1 -1
- package/dist/lyra580.js +13 -13
- package/dist/lyra580.js.map +1 -1
- package/dist/lyra581.cjs +1 -1
- package/dist/lyra581.cjs.map +1 -1
- package/dist/lyra581.js +12 -12
- package/dist/lyra581.js.map +1 -1
- package/dist/lyra582.cjs +1 -1
- package/dist/lyra582.cjs.map +1 -1
- package/dist/lyra582.js +12 -12
- package/dist/lyra582.js.map +1 -1
- package/dist/lyra583.cjs +1 -1
- package/dist/lyra583.cjs.map +1 -1
- package/dist/lyra583.js +12 -12
- package/dist/lyra583.js.map +1 -1
- package/dist/lyra584.cjs +1 -1
- package/dist/lyra584.cjs.map +1 -1
- package/dist/lyra584.js +12 -12
- package/dist/lyra584.js.map +1 -1
- package/dist/lyra585.cjs +1 -1
- package/dist/lyra585.cjs.map +1 -1
- package/dist/lyra585.js +8 -8
- package/dist/lyra585.js.map +1 -1
- package/dist/lyra586.cjs +1 -1
- package/dist/lyra586.cjs.map +1 -1
- package/dist/lyra586.js +12 -12
- package/dist/lyra586.js.map +1 -1
- package/dist/lyra587.cjs +1 -1
- package/dist/lyra587.cjs.map +1 -1
- package/dist/lyra587.js +12 -12
- package/dist/lyra587.js.map +1 -1
- package/dist/lyra588.cjs +1 -1
- package/dist/lyra588.cjs.map +1 -1
- package/dist/lyra588.js +12 -12
- package/dist/lyra588.js.map +1 -1
- package/dist/lyra589.cjs +1 -1
- package/dist/lyra589.cjs.map +1 -1
- package/dist/lyra589.js +12 -12
- package/dist/lyra589.js.map +1 -1
- package/dist/lyra590.cjs +1 -1
- package/dist/lyra590.cjs.map +1 -1
- package/dist/lyra590.js +12 -12
- package/dist/lyra590.js.map +1 -1
- package/dist/lyra591.cjs +1 -1
- package/dist/lyra591.cjs.map +1 -1
- package/dist/lyra591.js +12 -12
- package/dist/lyra591.js.map +1 -1
- package/dist/lyra592.cjs +1 -1
- package/dist/lyra592.cjs.map +1 -1
- package/dist/lyra592.js +12 -12
- package/dist/lyra592.js.map +1 -1
- package/dist/lyra593.cjs +1 -1
- package/dist/lyra593.cjs.map +1 -1
- package/dist/lyra593.js +13 -13
- package/dist/lyra593.js.map +1 -1
- package/dist/lyra594.cjs +1 -1
- package/dist/lyra594.cjs.map +1 -1
- package/dist/lyra594.js +13 -13
- package/dist/lyra594.js.map +1 -1
- package/dist/lyra595.cjs +1 -1
- package/dist/lyra595.cjs.map +1 -1
- package/dist/lyra595.js +144 -14
- package/dist/lyra595.js.map +1 -1
- package/dist/lyra596.cjs +1 -1
- package/dist/lyra596.cjs.map +1 -1
- package/dist/lyra596.js +5 -14
- package/dist/lyra596.js.map +1 -1
- package/dist/lyra597.cjs +1 -1
- package/dist/lyra597.cjs.map +1 -1
- package/dist/lyra597.js +7 -14
- package/dist/lyra597.js.map +1 -1
- package/dist/lyra598.cjs +1 -1
- package/dist/lyra598.cjs.map +1 -1
- package/dist/lyra598.js +6 -14
- package/dist/lyra598.js.map +1 -1
- package/dist/lyra599.cjs +1 -1
- package/dist/lyra599.cjs.map +1 -1
- package/dist/lyra599.js +9 -142
- package/dist/lyra599.js.map +1 -1
- package/dist/lyra60.cjs +1 -1
- package/dist/lyra60.js +5 -5
- package/dist/lyra600.cjs +1 -1
- package/dist/lyra600.cjs.map +1 -1
- package/dist/lyra600.js +141 -5
- package/dist/lyra600.js.map +1 -1
- package/dist/lyra601.cjs +1 -1
- package/dist/lyra601.cjs.map +1 -1
- package/dist/lyra601.js +17 -7
- package/dist/lyra601.js.map +1 -1
- package/dist/lyra602.cjs +1 -1
- package/dist/lyra602.cjs.map +1 -1
- package/dist/lyra602.js +4 -6
- package/dist/lyra602.js.map +1 -1
- package/dist/lyra603.cjs +1 -1
- package/dist/lyra603.cjs.map +1 -1
- package/dist/lyra603.js +3 -10
- package/dist/lyra603.js.map +1 -1
- package/dist/lyra604.cjs +1 -1
- package/dist/lyra604.cjs.map +1 -1
- package/dist/lyra604.js +30 -20
- package/dist/lyra604.js.map +1 -1
- package/dist/lyra605.cjs +1 -1
- package/dist/lyra605.cjs.map +1 -1
- package/dist/lyra605.js +21 -4
- package/dist/lyra605.js.map +1 -1
- package/dist/lyra606.cjs +1 -1
- package/dist/lyra606.cjs.map +1 -1
- package/dist/lyra606.js +4 -20
- package/dist/lyra606.js.map +1 -1
- package/dist/lyra607.cjs +1 -1
- package/dist/lyra607.cjs.map +1 -1
- package/dist/lyra607.js +20 -4
- package/dist/lyra607.js.map +1 -1
- package/dist/lyra608.cjs +1 -1
- package/dist/lyra608.cjs.map +1 -1
- package/dist/lyra608.js +2 -29
- package/dist/lyra608.js.map +1 -1
- package/dist/lyra609.cjs +1 -1
- package/dist/lyra609.cjs.map +1 -1
- package/dist/lyra609.js +2 -11
- package/dist/lyra609.js.map +1 -1
- package/dist/lyra61.cjs +1 -1
- package/dist/lyra61.js +3 -3
- package/dist/lyra610.cjs +1 -1
- package/dist/lyra610.cjs.map +1 -1
- package/dist/lyra610.js +2 -190
- package/dist/lyra610.js.map +1 -1
- package/dist/lyra611.cjs +1 -1
- package/dist/lyra611.cjs.map +1 -1
- package/dist/lyra611.js +233 -79
- package/dist/lyra611.js.map +1 -1
- package/dist/lyra612.cjs +1 -1
- package/dist/lyra612.cjs.map +1 -1
- package/dist/lyra612.js +15 -43
- package/dist/lyra612.js.map +1 -1
- package/dist/lyra613.cjs +1 -1
- package/dist/lyra613.cjs.map +1 -1
- package/dist/lyra613.js +479 -13
- package/dist/lyra613.js.map +1 -1
- package/dist/lyra614.cjs +1 -1
- package/dist/lyra614.cjs.map +1 -1
- package/dist/lyra614.js +66 -3
- package/dist/lyra614.js.map +1 -1
- package/dist/lyra615.cjs +1 -1
- package/dist/lyra615.cjs.map +1 -1
- package/dist/lyra615.js +13 -14
- package/dist/lyra615.js.map +1 -1
- package/dist/lyra616.cjs +1 -1
- package/dist/lyra616.cjs.map +1 -1
- package/dist/lyra616.js +51 -6
- package/dist/lyra616.js.map +1 -1
- package/dist/lyra617.cjs +1 -1
- package/dist/lyra617.cjs.map +1 -1
- package/dist/lyra617.js +2 -33
- package/dist/lyra617.js.map +1 -1
- package/dist/lyra618.cjs +9 -1
- package/dist/lyra618.cjs.map +1 -1
- package/dist/lyra618.js +48 -2
- package/dist/lyra618.js.map +1 -1
- package/dist/lyra619.cjs +9 -1
- package/dist/lyra619.cjs.map +1 -1
- package/dist/lyra619.js +83 -2
- package/dist/lyra619.js.map +1 -1
- package/dist/lyra62.cjs +1 -1
- package/dist/lyra62.js +7 -7
- package/dist/lyra620.cjs +1 -1
- package/dist/lyra620.cjs.map +1 -1
- package/dist/lyra620.js +133 -227
- package/dist/lyra620.js.map +1 -1
- package/dist/lyra621.cjs +1 -1
- package/dist/lyra621.cjs.map +1 -1
- package/dist/lyra621.js +77 -14
- package/dist/lyra621.js.map +1 -1
- package/dist/lyra622.cjs +1 -1
- package/dist/lyra622.cjs.map +1 -1
- package/dist/lyra622.js +41 -479
- package/dist/lyra622.js.map +1 -1
- package/dist/lyra623.cjs +1 -1
- package/dist/lyra623.cjs.map +1 -1
- package/dist/lyra623.js +11 -66
- package/dist/lyra623.js.map +1 -1
- package/dist/lyra624.cjs +1 -1
- package/dist/lyra624.cjs.map +1 -1
- package/dist/lyra624.js +33 -13
- package/dist/lyra624.js.map +1 -1
- package/dist/lyra625.cjs +1 -1
- package/dist/lyra625.cjs.map +1 -1
- package/dist/lyra625.js +190 -2
- package/dist/lyra625.js.map +1 -1
- package/dist/lyra626.cjs +1 -9
- package/dist/lyra626.cjs.map +1 -1
- package/dist/lyra626.js +16 -48
- package/dist/lyra626.js.map +1 -1
- package/dist/lyra627.cjs +1 -9
- package/dist/lyra627.cjs.map +1 -1
- package/dist/lyra627.js +3 -83
- package/dist/lyra627.js.map +1 -1
- package/dist/lyra628.cjs +1 -1
- package/dist/lyra628.cjs.map +1 -1
- package/dist/lyra628.js +14 -139
- package/dist/lyra628.js.map +1 -1
- package/dist/lyra629.cjs +1 -1
- package/dist/lyra629.cjs.map +1 -1
- package/dist/lyra629.js +6 -51
- package/dist/lyra629.js.map +1 -1
- package/dist/lyra63.cjs +1 -1
- package/dist/lyra63.js +5 -5
- package/dist/lyra637.cjs +1 -1
- package/dist/lyra637.cjs.map +1 -1
- package/dist/lyra637.js +331 -8
- package/dist/lyra637.js.map +1 -1
- package/dist/lyra638.cjs +1 -1
- package/dist/lyra638.cjs.map +1 -1
- package/dist/lyra638.js +7 -7
- package/dist/lyra638.js.map +1 -1
- package/dist/lyra639.cjs +1 -1
- package/dist/lyra639.cjs.map +1 -1
- package/dist/lyra639.js +7 -7
- package/dist/lyra639.js.map +1 -1
- package/dist/lyra640.cjs +1 -1
- package/dist/lyra640.cjs.map +1 -1
- package/dist/lyra640.js +7 -7
- package/dist/lyra640.js.map +1 -1
- package/dist/lyra641.cjs +1 -1
- package/dist/lyra641.cjs.map +1 -1
- package/dist/lyra641.js +4 -4
- package/dist/lyra641.js.map +1 -1
- package/dist/lyra642.cjs +1 -1
- package/dist/lyra642.cjs.map +1 -1
- package/dist/lyra642.js +7 -7
- package/dist/lyra642.js.map +1 -1
- package/dist/lyra643.cjs +1 -1
- package/dist/lyra643.cjs.map +1 -1
- package/dist/lyra643.js +7 -7
- package/dist/lyra643.js.map +1 -1
- package/dist/lyra644.cjs +1 -1
- package/dist/lyra644.cjs.map +1 -1
- package/dist/lyra644.js +4 -4
- package/dist/lyra644.js.map +1 -1
- package/dist/lyra645.cjs +1 -1
- package/dist/lyra645.cjs.map +1 -1
- package/dist/lyra645.js +4 -4
- package/dist/lyra645.js.map +1 -1
- package/dist/lyra646.cjs +1 -1
- package/dist/lyra646.cjs.map +1 -1
- package/dist/lyra646.js +4 -4
- package/dist/lyra646.js.map +1 -1
- package/dist/lyra647.cjs +1 -1
- package/dist/lyra647.cjs.map +1 -1
- package/dist/lyra647.js +4 -4
- package/dist/lyra647.js.map +1 -1
- package/dist/lyra648.cjs +1 -1
- package/dist/lyra648.cjs.map +1 -1
- package/dist/lyra648.js +7 -7
- package/dist/lyra648.js.map +1 -1
- package/dist/lyra649.cjs +1 -1
- package/dist/lyra649.cjs.map +1 -1
- package/dist/lyra649.js +7 -7
- package/dist/lyra649.js.map +1 -1
- package/dist/lyra650.cjs +1 -1
- package/dist/lyra650.cjs.map +1 -1
- package/dist/lyra650.js +7 -7
- package/dist/lyra650.js.map +1 -1
- package/dist/lyra651.cjs +1 -1
- package/dist/lyra651.cjs.map +1 -1
- package/dist/lyra651.js +4 -4
- package/dist/lyra651.js.map +1 -1
- package/dist/lyra652.cjs +1 -1
- package/dist/lyra652.cjs.map +1 -1
- package/dist/lyra652.js +7 -7
- package/dist/lyra652.js.map +1 -1
- package/dist/lyra653.cjs +1 -1
- package/dist/lyra653.cjs.map +1 -1
- package/dist/lyra653.js +7 -7
- package/dist/lyra653.js.map +1 -1
- package/dist/lyra654.cjs +1 -1
- package/dist/lyra654.cjs.map +1 -1
- package/dist/lyra654.js +7 -7
- package/dist/lyra654.js.map +1 -1
- package/dist/lyra655.cjs +1 -1
- package/dist/lyra655.cjs.map +1 -1
- package/dist/lyra655.js +7 -7
- package/dist/lyra655.js.map +1 -1
- package/dist/lyra656.cjs +1 -1
- package/dist/lyra656.cjs.map +1 -1
- package/dist/lyra656.js +7 -7
- package/dist/lyra656.js.map +1 -1
- package/dist/lyra657.cjs +1 -1
- package/dist/lyra657.cjs.map +1 -1
- package/dist/lyra657.js +4 -4
- package/dist/lyra657.js.map +1 -1
- package/dist/lyra658.cjs +1 -1
- package/dist/lyra658.cjs.map +1 -1
- package/dist/lyra658.js +7 -7
- package/dist/lyra658.js.map +1 -1
- package/dist/lyra659.cjs +1 -1
- package/dist/lyra659.cjs.map +1 -1
- package/dist/lyra659.js +7 -7
- package/dist/lyra659.js.map +1 -1
- package/dist/lyra660.cjs +1 -1
- package/dist/lyra660.cjs.map +1 -1
- package/dist/lyra660.js +3 -3
- package/dist/lyra660.js.map +1 -1
- package/dist/lyra661.cjs +1 -1
- package/dist/lyra661.cjs.map +1 -1
- package/dist/lyra661.js +4 -4
- package/dist/lyra661.js.map +1 -1
- package/dist/lyra662.cjs +1 -1
- package/dist/lyra662.cjs.map +1 -1
- package/dist/lyra662.js +7 -7
- package/dist/lyra662.js.map +1 -1
- package/dist/lyra663.cjs +1 -1
- package/dist/lyra663.cjs.map +1 -1
- package/dist/lyra663.js +7 -7
- package/dist/lyra663.js.map +1 -1
- package/dist/lyra664.cjs +1 -1
- package/dist/lyra664.cjs.map +1 -1
- package/dist/lyra664.js +7 -7
- package/dist/lyra664.js.map +1 -1
- package/dist/lyra665.cjs +1 -1
- package/dist/lyra665.cjs.map +1 -1
- package/dist/lyra665.js +4 -4
- package/dist/lyra665.js.map +1 -1
- package/dist/lyra666.cjs +1 -1
- package/dist/lyra666.cjs.map +1 -1
- package/dist/lyra666.js +7 -7
- package/dist/lyra666.js.map +1 -1
- package/dist/lyra667.cjs +1 -1
- package/dist/lyra667.cjs.map +1 -1
- package/dist/lyra667.js +4 -4
- package/dist/lyra667.js.map +1 -1
- package/dist/lyra668.cjs +1 -1
- package/dist/lyra668.cjs.map +1 -1
- package/dist/lyra668.js +4 -4
- package/dist/lyra668.js.map +1 -1
- package/dist/lyra669.cjs +1 -1
- package/dist/lyra669.cjs.map +1 -1
- package/dist/lyra669.js +7 -7
- package/dist/lyra669.js.map +1 -1
- package/dist/lyra670.cjs +1 -1
- package/dist/lyra670.cjs.map +1 -1
- package/dist/lyra670.js +4 -4
- package/dist/lyra670.js.map +1 -1
- package/dist/lyra671.cjs +1 -1
- package/dist/lyra671.cjs.map +1 -1
- package/dist/lyra671.js +8 -331
- package/dist/lyra671.js.map +1 -1
- package/dist/lyra673.cjs +1 -1
- package/dist/lyra673.js +4 -4
- package/dist/lyra674.cjs +1 -1
- package/dist/lyra674.js +4 -4
- package/dist/lyra676.cjs +1 -1
- package/dist/lyra676.js +4 -4
- package/dist/lyra677.cjs +1 -1
- package/dist/lyra677.js +3 -3
- package/dist/lyra678.cjs +1 -1
- package/dist/lyra678.js +2 -2
- package/dist/lyra683.cjs +1 -1
- package/dist/lyra683.js +1 -1
- package/dist/lyra687.cjs +1 -1
- package/dist/lyra687.js +2 -2
- package/dist/lyra69.cjs +1 -1
- package/dist/lyra69.js +2 -2
- package/dist/lyra692.cjs +1 -1
- package/dist/lyra692.js +1 -1
- package/dist/lyra695.cjs +1 -1
- package/dist/lyra695.js +2 -2
- package/dist/lyra697.cjs +1 -1
- package/dist/lyra697.js +1 -1
- package/dist/lyra725.cjs +1 -1
- package/dist/lyra725.js +4 -4
- package/dist/lyra77.cjs +1 -1
- package/dist/lyra77.js +1 -1
- package/dist/lyra785.cjs +1 -1
- package/dist/lyra785.js +1 -1
- package/dist/lyra786.cjs +1 -1
- package/dist/lyra786.cjs.map +1 -1
- package/dist/lyra786.js +373 -20
- package/dist/lyra786.js.map +1 -1
- package/dist/lyra787.cjs +1 -1
- package/dist/lyra787.cjs.map +1 -1
- package/dist/lyra787.js +21 -19
- package/dist/lyra787.js.map +1 -1
- package/dist/lyra788.cjs +1 -1
- package/dist/lyra788.cjs.map +1 -1
- package/dist/lyra788.js +20 -30
- package/dist/lyra788.js.map +1 -1
- package/dist/lyra789.cjs +1 -1
- package/dist/lyra789.cjs.map +1 -1
- package/dist/lyra789.js +28 -8
- package/dist/lyra789.js.map +1 -1
- package/dist/lyra790.cjs +1 -1
- package/dist/lyra790.cjs.map +1 -1
- package/dist/lyra790.js +10 -24
- package/dist/lyra790.js.map +1 -1
- package/dist/lyra791.cjs +1 -1
- package/dist/lyra791.cjs.map +1 -1
- package/dist/lyra791.js +19 -21
- package/dist/lyra791.js.map +1 -1
- package/dist/lyra792.cjs +1 -1
- package/dist/lyra792.cjs.map +1 -1
- package/dist/lyra792.js +17 -63
- package/dist/lyra792.js.map +1 -1
- package/dist/lyra793.cjs +1 -1
- package/dist/lyra793.cjs.map +1 -1
- package/dist/lyra793.js +62 -32
- package/dist/lyra793.js.map +1 -1
- package/dist/lyra794.cjs +1 -1
- package/dist/lyra794.cjs.map +1 -1
- package/dist/lyra794.js +36 -10
- package/dist/lyra794.js.map +1 -1
- package/dist/lyra795.cjs +1 -1
- package/dist/lyra795.cjs.map +1 -1
- package/dist/lyra795.js +10 -35
- package/dist/lyra795.js.map +1 -1
- package/dist/lyra796.cjs +1 -1
- package/dist/lyra796.cjs.map +1 -1
- package/dist/lyra796.js +34 -64
- package/dist/lyra796.js.map +1 -1
- package/dist/lyra797.cjs +1 -1
- package/dist/lyra797.cjs.map +1 -1
- package/dist/lyra797.js +70 -22
- package/dist/lyra797.js.map +1 -1
- package/dist/lyra798.cjs +1 -1
- package/dist/lyra798.cjs.map +1 -1
- package/dist/lyra798.js +22 -46
- package/dist/lyra798.js.map +1 -1
- package/dist/lyra799.cjs +1 -1
- package/dist/lyra799.cjs.map +1 -1
- package/dist/lyra799.js +38 -32
- package/dist/lyra799.js.map +1 -1
- package/dist/lyra800.cjs +1 -1
- package/dist/lyra800.cjs.map +1 -1
- package/dist/lyra800.js +41 -2
- package/dist/lyra800.js.map +1 -1
- package/dist/lyra801.cjs +1 -1
- package/dist/lyra801.cjs.map +1 -1
- package/dist/lyra801.js +2 -54
- package/dist/lyra801.js.map +1 -1
- package/dist/lyra802.cjs +1 -1
- package/dist/lyra802.cjs.map +1 -1
- package/dist/lyra802.js +54 -8
- package/dist/lyra802.js.map +1 -1
- package/dist/lyra803.cjs +1 -1
- package/dist/lyra803.cjs.map +1 -1
- package/dist/lyra803.js +8 -4
- package/dist/lyra803.js.map +1 -1
- package/dist/lyra804.cjs +1 -1
- package/dist/lyra804.cjs.map +1 -1
- package/dist/lyra804.js +4 -13
- package/dist/lyra804.js.map +1 -1
- package/dist/lyra805.cjs +1 -1
- package/dist/lyra805.cjs.map +1 -1
- package/dist/lyra805.js +10 -372
- package/dist/lyra805.js.map +1 -1
- package/dist/lyra806.cjs +1 -1
- package/dist/lyra806.cjs.map +1 -1
- package/dist/lyra806.js +584 -3
- package/dist/lyra806.js.map +1 -1
- package/dist/lyra807.cjs +1 -1
- package/dist/lyra807.cjs.map +1 -1
- package/dist/lyra807.js +11 -585
- package/dist/lyra807.js.map +1 -1
- package/dist/lyra808.cjs +1 -1
- package/dist/lyra808.cjs.map +1 -1
- package/dist/lyra808.js +4 -11
- package/dist/lyra808.js.map +1 -1
- package/dist/lyra810.cjs +1 -1
- package/dist/lyra810.cjs.map +1 -1
- package/dist/lyra810.js +15 -2
- package/dist/lyra810.js.map +1 -1
- package/dist/lyra811.cjs +1 -1
- package/dist/lyra811.cjs.map +1 -1
- package/dist/lyra811.js +22 -28
- package/dist/lyra811.js.map +1 -1
- package/dist/lyra812.cjs +1 -1
- package/dist/lyra812.cjs.map +1 -1
- package/dist/lyra812.js +2 -6
- package/dist/lyra812.js.map +1 -1
- package/dist/lyra813.cjs +1 -1
- package/dist/lyra813.cjs.map +1 -1
- package/dist/lyra813.js +29 -4
- package/dist/lyra813.js.map +1 -1
- package/dist/lyra814.cjs +1 -1
- package/dist/lyra814.cjs.map +1 -1
- package/dist/lyra814.js +5 -14
- package/dist/lyra814.js.map +1 -1
- package/dist/lyra815.cjs +1 -1
- package/dist/lyra815.cjs.map +1 -1
- package/dist/lyra815.js +3 -22
- package/dist/lyra815.js.map +1 -1
- package/dist/lyra816.cjs +1 -1
- package/dist/lyra816.js +1 -1
- package/dist/lyra819.cjs +1 -1
- package/dist/lyra819.js +1 -1
- package/dist/lyra825.cjs +4 -1
- package/dist/lyra825.cjs.map +1 -1
- package/dist/lyra825.js +47 -28
- package/dist/lyra825.js.map +1 -1
- package/dist/lyra826.cjs +1 -1
- package/dist/lyra826.cjs.map +1 -1
- package/dist/lyra826.js +2 -25
- package/dist/lyra826.js.map +1 -1
- package/dist/lyra827.cjs +1 -1
- package/dist/lyra827.cjs.map +1 -1
- package/dist/lyra827.js +18 -19
- package/dist/lyra827.js.map +1 -1
- package/dist/lyra828.cjs +1 -1
- package/dist/lyra828.cjs.map +1 -1
- package/dist/lyra828.js +28 -9
- package/dist/lyra828.js.map +1 -1
- package/dist/lyra829.cjs +1 -1
- package/dist/lyra829.cjs.map +1 -1
- package/dist/lyra829.js +24 -12
- package/dist/lyra829.js.map +1 -1
- package/dist/lyra830.cjs +1 -1
- package/dist/lyra830.cjs.map +1 -1
- package/dist/lyra830.js +20 -6
- package/dist/lyra830.js.map +1 -1
- package/dist/lyra831.cjs +1 -1
- package/dist/lyra831.cjs.map +1 -1
- package/dist/lyra831.js +8 -23
- package/dist/lyra831.js.map +1 -1
- package/dist/lyra832.cjs +1 -1
- package/dist/lyra832.cjs.map +1 -1
- package/dist/lyra832.js +13 -2
- package/dist/lyra832.js.map +1 -1
- package/dist/lyra833.cjs +1 -1
- package/dist/lyra833.cjs.map +1 -1
- package/dist/lyra833.js +6 -9
- package/dist/lyra833.js.map +1 -1
- package/dist/lyra834.cjs +1 -1
- package/dist/lyra834.cjs.map +1 -1
- package/dist/lyra834.js +24 -7
- package/dist/lyra834.js.map +1 -1
- package/dist/lyra835.cjs +1 -1
- package/dist/lyra835.cjs.map +1 -1
- package/dist/lyra835.js +2 -2
- package/dist/lyra835.js.map +1 -1
- package/dist/lyra836.cjs +1 -1
- package/dist/lyra836.cjs.map +1 -1
- package/dist/lyra836.js +8 -18
- package/dist/lyra836.js.map +1 -1
- package/dist/lyra837.cjs +1 -1
- package/dist/lyra837.cjs.map +1 -1
- package/dist/lyra837.js +7 -253
- package/dist/lyra837.js.map +1 -1
- package/dist/lyra838.cjs +1 -1
- package/dist/lyra838.cjs.map +1 -1
- package/dist/lyra838.js +243 -72
- package/dist/lyra838.js.map +1 -1
- package/dist/lyra839.cjs +1 -1
- package/dist/lyra839.cjs.map +1 -1
- package/dist/lyra839.js +82 -2
- package/dist/lyra839.js.map +1 -1
- package/dist/lyra840.cjs +1 -1
- package/dist/lyra840.cjs.map +1 -1
- package/dist/lyra840.js +2 -13
- package/dist/lyra840.js.map +1 -1
- package/dist/lyra841.cjs +1 -1
- package/dist/lyra841.cjs.map +1 -1
- package/dist/lyra841.js +12 -18
- package/dist/lyra841.js.map +1 -1
- package/dist/lyra842.cjs +1 -1
- package/dist/lyra842.cjs.map +1 -1
- package/dist/lyra842.js +17 -12
- package/dist/lyra842.js.map +1 -1
- package/dist/lyra843.cjs +1 -1
- package/dist/lyra843.cjs.map +1 -1
- package/dist/lyra843.js +13 -27
- package/dist/lyra843.js.map +1 -1
- package/dist/lyra844.cjs +1 -1
- package/dist/lyra844.cjs.map +1 -1
- package/dist/lyra844.js +27 -5
- package/dist/lyra844.js.map +1 -1
- package/dist/lyra845.cjs +1 -1
- package/dist/lyra845.cjs.map +1 -1
- package/dist/lyra845.js +5 -10
- package/dist/lyra845.js.map +1 -1
- package/dist/lyra846.cjs +1 -1
- package/dist/lyra846.cjs.map +1 -1
- package/dist/lyra846.js +10 -27
- package/dist/lyra846.js.map +1 -1
- package/dist/lyra847.cjs +1 -1
- package/dist/lyra847.cjs.map +1 -1
- package/dist/lyra847.js +28 -26
- package/dist/lyra847.js.map +1 -1
- package/dist/lyra848.cjs +1 -1
- package/dist/lyra848.cjs.map +1 -1
- package/dist/lyra848.js +26 -105
- package/dist/lyra848.js.map +1 -1
- package/dist/lyra849.cjs +1 -1
- package/dist/lyra849.cjs.map +1 -1
- package/dist/lyra849.js +104 -21
- package/dist/lyra849.js.map +1 -1
- package/dist/lyra850.cjs +1 -1
- package/dist/lyra850.cjs.map +1 -1
- package/dist/lyra850.js +22 -20
- package/dist/lyra850.js.map +1 -1
- package/dist/lyra851.cjs +1 -1
- package/dist/lyra851.cjs.map +1 -1
- package/dist/lyra851.js +20 -5
- package/dist/lyra851.js.map +1 -1
- package/dist/lyra852.cjs +1 -1
- package/dist/lyra852.cjs.map +1 -1
- package/dist/lyra852.js +5 -20
- package/dist/lyra852.js.map +1 -1
- package/dist/lyra853.cjs +1 -4
- package/dist/lyra853.cjs.map +1 -1
- package/dist/lyra853.js +17 -44
- package/dist/lyra853.js.map +1 -1
- package/dist/lyra86.cjs +1 -1
- package/dist/lyra86.js +1 -1
- package/dist/lyra865.cjs +1 -1
- package/dist/lyra865.cjs.map +1 -1
- package/dist/lyra865.js +2 -10
- package/dist/lyra865.js.map +1 -1
- package/dist/lyra866.cjs +1 -1
- package/dist/lyra866.cjs.map +1 -1
- package/dist/lyra866.js +10 -2
- package/dist/lyra866.js.map +1 -1
- package/dist/lyra876.cjs +1 -1
- package/dist/lyra876.cjs.map +1 -1
- package/dist/lyra876.js +7 -2
- package/dist/lyra876.js.map +1 -1
- package/dist/lyra877.cjs +1 -1
- package/dist/lyra877.cjs.map +1 -1
- package/dist/lyra877.js +2 -7
- package/dist/lyra877.js.map +1 -1
- package/dist/lyra88.cjs +1 -1
- package/dist/lyra88.js +1 -1
- package/dist/lyra882.cjs +1 -1
- package/dist/lyra882.js +1 -1
- package/dist/lyra90.cjs +1 -1
- package/dist/lyra90.js +1 -1
- package/dist/lyra92.cjs +1 -1
- package/dist/lyra92.js +1 -1
- package/package.json +1 -1
package/dist/lyra36.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra36.js","sources":["../src/components/inputs/select/select.tsx"],"sourcesContent":["import {\n CSSProperties,\n KeyboardEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Button as AriaButton, Group, Key } from \"react-aria-components\";\n\nimport clsx from \"clsx\";\n\nimport { useLocale, useMousePosition } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { sharedListStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\nimport { shouldRenderInputFooter, shouldRenderInputHeader } from \"../shared/helpers\";\n\nimport { MultiSelectProps, SelectItemsProps, SelectProps, ValueButton } from \"./select.types\";\n\ntype UseItemSelectionProps<T> = {\n closePopover: () => void;\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n getItemId: (item: T) => Key;\n onMultiChange?: (value?: T[]) => void;\n onSingleChange?: (value?: T) => void;\n value?: T | T[];\n};\n\nconst useItemSelection = <T extends object>({\n closePopover,\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems.findIndex((item) => getItemId(item) === getItemId(value));\n }\n }, [filteredItems, getItemId, value]);\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(selectedItemIndex ?? 0);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const refs = useRef<HTMLButtonElement[]>([]);\n\n const assignRefOnIndex = useCallback((index: number, el: HTMLButtonElement | null) => {\n if (el) {\n refs.current[index] = el;\n }\n }, []);\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = !value ? [] : [...(value as T[])];\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation on buttons\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n const nextButtonRef = refs.current[safeNextIndex];\n nextButtonRef?.scrollIntoView({ block: \"nearest\" });\n nextButtonRef?.focus();\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n const previousButtonRef = refs.current[safePreviousIndex];\n previousButtonRef?.scrollIntoView({ block: \"nearest\" });\n previousButtonRef?.focus();\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Escape\") {\n closePopover();\n }\n },\n [activeItem, closePopover, getNextItemIndex, getPreviousItemIndex, mousePosition],\n );\n\n // Handles onHoverChange event for the buttons\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n // Scroll the active item into view when the popover opens\n useEffect(() => {\n if (refs.current?.[activeItem]) {\n refs.current[activeItem].focus();\n }\n // We want this to run everytime the popover opens.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n return {\n activeItem,\n assignRefOnIndex,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\nconst ItemsList = <T extends object>({\n disabledItemIdKeys,\n getItemId,\n items,\n onMultiChange,\n onSingleChange,\n selectRenderElements,\n setOpenPopover,\n value,\n}: Pick<\n SelectItemsProps<T>,\n | \"disabledItemIdKeys\"\n | \"getItemId\"\n | \"items\"\n | \"onMultiChange\"\n | \"onSingleChange\"\n | \"selectRenderElements\"\n | \"setOpenPopover\"\n | \"value\"\n>) => {\n const {\n activeItem,\n assignRefOnIndex,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n toggleSelection,\n } = useItemSelection({\n closePopover: () => setOpenPopover(false),\n disabledItemIdKeys,\n filteredItems: items,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n });\n\n const itemIsDisabled = (item: T) => {\n return disabledItemIdKeys?.includes(getItemId(item)) ?? false;\n };\n\n return (\n <div\n className={sharedListStyles({\n className: \"h-full max-h-72 overflow-auto\",\n })}\n >\n {items.map((item, index) => (\n <AriaButton\n data-index={index}\n key={getItemId(item)}\n ref={(el) => assignRefOnIndex(index, el)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, index);\n }}\n onPress={() => toggleSelection(item)}\n onKeyDown={(e) => onKeyDown(e)}\n isDisabled={itemIsDisabled(item)}\n >\n <SharedListItem\n item={item}\n state={{\n active: activeItem === index,\n disabled: disabledItemIdKeys?.includes(getItemId(item)) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n hasSelection\n />\n </AriaButton>\n ))}\n </div>\n );\n};\n\n/**\n * Renders the options for the select component.\n *\n */\nconst SelectItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n items,\n label,\n onMultiChange,\n onSingleChange,\n open,\n placement = \"bottom start\",\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SelectItemsProps<T>) => {\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n shouldUpdatePosition\n aria-label={label}\n disablePadding\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <ItemsList\n getItemId={getItemId}\n items={items}\n onMultiChange={onMultiChange}\n onSingleChange={onSingleChange}\n selectRenderElements={selectRenderElements}\n setOpenPopover={setOpenPopover}\n value={value}\n disabledItemIdKeys={disabledItemIdKeys}\n />\n ) : null}\n </Popover>\n );\n};\n\n/**\n * Renders a single value button for a select input.\n *\n */\nconst SingleValueButton = <T extends object>({\n disableClearLogic,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n placeholder,\n renderCustomElementInValueButton,\n selectRenderElements,\n setOpenPopover,\n value,\n}: Omit<ValueButton<T>, \"onChange\"> & {\n onChange: (newValue?: T) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({ isInputOnly: false });\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setOpenPopover(true);\n }\n };\n\n return (\n <AriaButton\n className={({ isFocused, isHovered }) =>\n inputFieldStyles({\n fullWidth,\n isDisabled,\n isHovered,\n isFocused,\n isInvalid,\n hasEndSlot: true,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"min-h-8\",\n ),\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={() => {\n setOpenPopover(true);\n }}\n >\n <div className=\"flex grow text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value ? <>{getLabel(value)}</> : <Text color=\"secondary\">{placeholder}</Text>}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !disableClearLogic && !isDisabled ? (\n <>\n <div\n className=\"text-secondary\"\n role=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" />\n </div>\n </AriaButton>\n );\n};\n\n/**\n * Renders a button component for selecting multiple values.\n *\n */\nconst MultipleValuesButton = <T extends object>({\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n placeholder,\n setOpenPopover,\n value,\n}: Omit<ValueButton<T>, \"value\" | \"onChange\"> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({ isInputOnly: false });\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n const onKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpenPopover(true);\n }\n };\n\n return (\n <Group>\n {({ isFocusWithin }) => (\n <AriaButton\n className={({ isFocused, isHovered }) =>\n inputFieldStyles({\n fullWidth,\n isDisabled,\n isHovered,\n isFocused: isFocused || isFocusWithin,\n isInvalid,\n hasEndSlot: true,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"items-start\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n onKeyDown={(e) => onKeyDown(e)}\n onPress={() => setOpenPopover(true)}\n isDisabled={isDisabled}\n >\n <div className=\"flex w-full outline-none\">\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem]\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-4\" />\n </div>\n </AriaButton>\n )}\n </Group>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\n/**\n * Renders a select input component.\n *\n */\nexport const Select = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isRequired,\n items,\n label,\n name,\n onChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement,\n renderCustomElementInValueButton,\n selectRenderElements,\n value,\n}: SelectProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const [open, setOpenPopover] = useState(false);\n const disabled = isDisabled || fieldGroupIsDisabled;\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n hasInputHeader,\n hasLabel: !!label,\n });\n\n const triggerRef = useRef<HTMLDivElement>(null);\n const { direction } = useLocale();\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n setOpenPopover(false);\n },\n [onChange],\n );\n\n // sync the internal value with the value prop\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper({ fullWidth })}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <SingleValueButton\n fullWidth={fullWidth}\n isDisabled={disabled}\n disableClearLogic={disableClearLogic}\n isInvalid={isInvalid}\n placeholder={placeholder}\n value={selectedValue}\n getLabel={getLabel}\n getItemId={getItemId}\n label={label}\n onChange={onSingleChange}\n setOpenPopover={setOpenPopover}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SelectItems<T>\n triggerRef={triggerRef}\n label={`${label} options`}\n getItemId={getItemId}\n selectRenderElements={selectRenderElements}\n items={items}\n open={open}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n setOpenPopover={setOpenPopover}\n onSingleChange={onSingleChange}\n value={selectedValue}\n placement={placement}\n />\n </div>\n );\n};\n\nexport const MultiSelect = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isRequired,\n items,\n label,\n name,\n onChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement,\n selectRenderElements,\n value,\n}: MultiSelectProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const disabled = isDisabled || fieldGroupIsDisabled;\n const [open, setOpenPopover] = useState(false);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const triggerRef = useRef<HTMLDivElement>(null);\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n hasInputHeader,\n hasLabel: !!label,\n });\n\n const onMultipleChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n },\n [onChange],\n );\n\n // sync the internal value with the value prop\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper({ fullWidth })}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <MultipleValuesButton\n fullWidth={fullWidth}\n isDisabled={disabled}\n isInvalid={isInvalid}\n placeholder={placeholder}\n value={selectedValue}\n onChange={onMultipleChange}\n getItemId={getItemId}\n getLabel={getLabel}\n label={label}\n disableClearLogic={disableClearLogic}\n setOpenPopover={setOpenPopover}\n selectRenderElements={selectRenderElements}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SelectItems<T>\n label={`${label} options`}\n triggerRef={triggerRef}\n items={items}\n open={open}\n getItemId={getItemId}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n setOpenPopover={setOpenPopover}\n onMultiChange={onMultipleChange}\n placement={placement}\n value={selectedValue}\n />\n </div>\n );\n};\n"],"names":["useItemSelection","closePopover","disabledItemIdKeys","filteredItems","getItemId","onMultiChange","onSingleChange","value","selectedItemIndex","useMemo","item","activeItem","setActiveItem","useState","getPreviousItemIndex","useCallback","activeIndex","i","getNextItemIndex","refs","useRef","assignRefOnIndex","index","el","toggleSelection","currentValue","currentValueIds","newValue","v","getItemIsSelected","subValue","mousePosition","useMousePosition","previousMousePosition","onKeyDown","e","currentActiveIndex","safeNextIndex","nextButtonRef","safePreviousIndex","previousButtonRef","onHoverChange","isHovering","useEffect","_a","ItemsList","items","selectRenderElements","setOpenPopover","itemIsDisabled","jsx","sharedListStyles","AriaButton","SharedListItem","SelectItems","direction","label","open","placement","triggerRef","triggerRefWidth","setTriggerRefWidth","triggerWidth","_b","useEventListener","Popover","SingleValueButton","disableClearLogic","fullWidth","getLabel","isDisabled","isInvalid","onChange","placeholder","renderCustomElementInValueButton","inputFieldStyles","sharedInputStyles","jsxs","isFocused","isHovered","clsx","Fragment","Text","SvgIcon","MultipleValuesButton","onRemove","keys","itemId","Group","isFocusWithin","InputTagGroup","InputTag","UncontrolledInputs","name","Select","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","outerEndSlot","outerStartSlot","fieldGroupIsDisabled","useContext","FieldGroupContext","disabled","internalValue","setInternalValue","hasInputHeader","shouldRenderInputHeader","hasInputFooter","shouldRenderInputFooter","outerSlot","outerSlotsWrapper","wrapper","useLocale","selectedValue","InputHeader","InputFooter","MultiSelect","onMultipleChange"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lyra36.js","sources":["../src/components/inputs/select/select.tsx"],"sourcesContent":["import {\n CSSProperties,\n KeyboardEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Button as AriaButton, Group, Key } from \"react-aria-components\";\n\nimport clsx from \"clsx\";\n\nimport { useLocale, useMousePosition } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { sharedListStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\nimport { shouldRenderInputFooter, shouldRenderInputHeader } from \"../shared/helpers\";\n\nimport { MultiSelectProps, SelectItemsProps, SelectProps, ValueButton } from \"./select.types\";\n\ntype UseItemSelectionProps<T> = {\n closePopover: () => void;\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n getItemId: (item: T) => Key;\n onMultiChange?: (value?: T[]) => void;\n onSingleChange?: (value?: T) => void;\n value?: T | T[];\n};\n\nconst useItemSelection = <T extends object>({\n closePopover,\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems.findIndex((item) => getItemId(item) === getItemId(value));\n }\n }, [filteredItems, getItemId, value]);\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(selectedItemIndex ?? 0);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const refs = useRef<HTMLButtonElement[]>([]);\n\n const assignRefOnIndex = useCallback((index: number, el: HTMLButtonElement | null) => {\n if (el) {\n refs.current[index] = el;\n }\n }, []);\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = !value ? [] : [...(value as T[])];\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation on buttons\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n const nextButtonRef = refs.current[safeNextIndex];\n nextButtonRef?.scrollIntoView({ block: \"nearest\" });\n nextButtonRef?.focus();\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n const previousButtonRef = refs.current[safePreviousIndex];\n previousButtonRef?.scrollIntoView({ block: \"nearest\" });\n previousButtonRef?.focus();\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Escape\") {\n closePopover();\n }\n },\n [activeItem, closePopover, getNextItemIndex, getPreviousItemIndex, mousePosition],\n );\n\n // Handles onHoverChange event for the buttons\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n // Scroll the active item into view when the popover opens\n useEffect(() => {\n if (refs.current?.[activeItem]) {\n refs.current[activeItem].focus();\n }\n // We want this to run everytime the popover opens.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n return {\n activeItem,\n assignRefOnIndex,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\nconst ItemsList = <T extends object>({\n disabledItemIdKeys,\n getItemId,\n items,\n onMultiChange,\n onSingleChange,\n selectRenderElements,\n setOpenPopover,\n value,\n}: Pick<\n SelectItemsProps<T>,\n | \"disabledItemIdKeys\"\n | \"getItemId\"\n | \"items\"\n | \"onMultiChange\"\n | \"onSingleChange\"\n | \"selectRenderElements\"\n | \"setOpenPopover\"\n | \"value\"\n>) => {\n const {\n activeItem,\n assignRefOnIndex,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n toggleSelection,\n } = useItemSelection({\n closePopover: () => setOpenPopover(false),\n disabledItemIdKeys,\n filteredItems: items,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n });\n\n const itemIsDisabled = (item: T) => {\n return disabledItemIdKeys?.includes(getItemId(item)) ?? false;\n };\n\n return (\n <div\n className={sharedListStyles({\n className: \"h-full max-h-72 overflow-auto\",\n })}\n >\n {items.map((item, index) => (\n <AriaButton\n data-index={index}\n key={getItemId(item)}\n ref={(el) => assignRefOnIndex(index, el)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, index);\n }}\n onPress={() => toggleSelection(item)}\n onKeyDown={(e) => onKeyDown(e)}\n isDisabled={itemIsDisabled(item)}\n >\n <SharedListItem\n item={item}\n state={{\n active: activeItem === index,\n disabled: disabledItemIdKeys?.includes(getItemId(item)) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n hasSelection\n />\n </AriaButton>\n ))}\n </div>\n );\n};\n\n/**\n * Renders the options for the select component.\n *\n */\nconst SelectItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n items,\n label,\n onMultiChange,\n onSingleChange,\n open,\n placement = \"bottom start\",\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SelectItemsProps<T>) => {\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n shouldUpdatePosition\n aria-label={label}\n disablePadding\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <ItemsList\n getItemId={getItemId}\n items={items}\n onMultiChange={onMultiChange}\n onSingleChange={onSingleChange}\n selectRenderElements={selectRenderElements}\n setOpenPopover={setOpenPopover}\n value={value}\n disabledItemIdKeys={disabledItemIdKeys}\n />\n ) : null}\n </Popover>\n );\n};\n\n/**\n * Renders a single value button for a select input.\n *\n */\nconst SingleValueButton = <T extends object>({\n disableClearLogic,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n placeholder,\n renderCustomElementInValueButton,\n selectRenderElements,\n setOpenPopover,\n value,\n}: Omit<ValueButton<T>, \"onChange\"> & {\n onChange: (newValue?: T) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({ isInputOnly: false });\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setOpenPopover(true);\n }\n };\n\n return (\n <AriaButton\n className={({ isFocused, isHovered }) =>\n inputFieldStyles({\n fullWidth,\n isDisabled,\n isHovered,\n isFocused,\n isInvalid,\n hasEndSlot: true,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"min-h-8\",\n ),\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={() => {\n setOpenPopover(true);\n }}\n >\n <div className=\"flex grow text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value ? <>{getLabel(value)}</> : <Text color=\"secondary\">{placeholder}</Text>}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !disableClearLogic && !isDisabled ? (\n <>\n <div\n className=\"text-secondary\"\n role=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" />\n </div>\n </AriaButton>\n );\n};\n\n/**\n * Renders a button component for selecting multiple values.\n *\n */\nconst MultipleValuesButton = <T extends object>({\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n placeholder,\n setOpenPopover,\n value,\n}: Omit<ValueButton<T>, \"value\" | \"onChange\"> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({ isInputOnly: false });\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n const onKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpenPopover(true);\n }\n };\n\n return (\n <Group>\n {({ isFocusWithin }) => (\n <AriaButton\n className={({ isFocused, isHovered }) =>\n inputFieldStyles({\n fullWidth,\n isDisabled,\n isHovered,\n isFocused: isFocused || isFocusWithin,\n isInvalid,\n hasEndSlot: true,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"items-start\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n onKeyDown={(e) => onKeyDown(e)}\n onPress={() => setOpenPopover(true)}\n isDisabled={isDisabled}\n >\n <div className=\"flex w-full outline-none\">\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem]\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-4\" />\n </div>\n </AriaButton>\n )}\n </Group>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\n/**\n * Renders a select input component.\n *\n */\nexport const Select = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isRequired,\n items,\n label,\n name,\n onChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement,\n renderCustomElementInValueButton,\n selectRenderElements,\n value,\n}: SelectProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const [open, setOpenPopover] = useState(false);\n const disabled = isDisabled || fieldGroupIsDisabled;\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n hasInputHeader,\n hasLabel: !!label,\n });\n\n const triggerRef = useRef<HTMLDivElement>(null);\n const { direction } = useLocale();\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n setOpenPopover(false);\n },\n [onChange],\n );\n\n // sync the internal value with the value prop\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper({ fullWidth })}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <SingleValueButton\n fullWidth={fullWidth}\n isDisabled={disabled}\n disableClearLogic={disableClearLogic}\n isInvalid={isInvalid || !!errorMessage}\n placeholder={placeholder}\n value={selectedValue}\n getLabel={getLabel}\n getItemId={getItemId}\n label={label}\n onChange={onSingleChange}\n setOpenPopover={setOpenPopover}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SelectItems<T>\n triggerRef={triggerRef}\n label={`${label} options`}\n getItemId={getItemId}\n selectRenderElements={selectRenderElements}\n items={items}\n open={open}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n setOpenPopover={setOpenPopover}\n onSingleChange={onSingleChange}\n value={selectedValue}\n placement={placement}\n />\n </div>\n );\n};\n\nexport const MultiSelect = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isRequired,\n items,\n label,\n name,\n onChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement,\n selectRenderElements,\n value,\n}: MultiSelectProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const disabled = isDisabled || fieldGroupIsDisabled;\n const [open, setOpenPopover] = useState(false);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const triggerRef = useRef<HTMLDivElement>(null);\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n hasInputHeader,\n hasLabel: !!label,\n });\n\n const onMultipleChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n },\n [onChange],\n );\n\n // sync the internal value with the value prop\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper({ fullWidth })}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <MultipleValuesButton\n fullWidth={fullWidth}\n isDisabled={disabled}\n isInvalid={isInvalid || !!errorMessage}\n placeholder={placeholder}\n value={selectedValue}\n onChange={onMultipleChange}\n getItemId={getItemId}\n getLabel={getLabel}\n label={label}\n disableClearLogic={disableClearLogic}\n setOpenPopover={setOpenPopover}\n selectRenderElements={selectRenderElements}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SelectItems<T>\n label={`${label} options`}\n triggerRef={triggerRef}\n items={items}\n open={open}\n getItemId={getItemId}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n setOpenPopover={setOpenPopover}\n onMultiChange={onMultipleChange}\n placement={placement}\n value={selectedValue}\n />\n </div>\n );\n};\n"],"names":["useItemSelection","closePopover","disabledItemIdKeys","filteredItems","getItemId","onMultiChange","onSingleChange","value","selectedItemIndex","useMemo","item","activeItem","setActiveItem","useState","getPreviousItemIndex","useCallback","activeIndex","i","getNextItemIndex","refs","useRef","assignRefOnIndex","index","el","toggleSelection","currentValue","currentValueIds","newValue","v","getItemIsSelected","subValue","mousePosition","useMousePosition","previousMousePosition","onKeyDown","e","currentActiveIndex","safeNextIndex","nextButtonRef","safePreviousIndex","previousButtonRef","onHoverChange","isHovering","useEffect","_a","ItemsList","items","selectRenderElements","setOpenPopover","itemIsDisabled","jsx","sharedListStyles","AriaButton","SharedListItem","SelectItems","direction","label","open","placement","triggerRef","triggerRefWidth","setTriggerRefWidth","triggerWidth","_b","useEventListener","Popover","SingleValueButton","disableClearLogic","fullWidth","getLabel","isDisabled","isInvalid","onChange","placeholder","renderCustomElementInValueButton","inputFieldStyles","sharedInputStyles","jsxs","isFocused","isHovered","clsx","Fragment","Text","SvgIcon","MultipleValuesButton","onRemove","keys","itemId","Group","isFocusWithin","InputTagGroup","InputTag","UncontrolledInputs","name","Select","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","outerEndSlot","outerStartSlot","fieldGroupIsDisabled","useContext","FieldGroupContext","disabled","internalValue","setInternalValue","hasInputHeader","shouldRenderInputHeader","hasInputFooter","shouldRenderInputFooter","outerSlot","outerSlotsWrapper","wrapper","useLocale","selectedValue","InputHeader","InputFooter","MultiSelect","onMultipleChange"],"mappings":"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"}
|
package/dist/lyra37.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lyra94.cjs"),r=require("react"),M=require("./lyra93.cjs"),ue=require("react-dom"),ae=require("./lyra617.cjs"),pe=require("./lyra454.cjs");require("./lyra2.cjs");require("./lyra3.cjs");require("./lyra4.cjs");require("./lyra5.cjs");require("./lyra6.cjs");const I=require("./lyra67.cjs");require("./lyra8.cjs");require("./lyra9.cjs");require("./lyra10.cjs");require("./lyra11.cjs");require("./lyra12.cjs");require("./lyra13.cjs");require("./lyra14.cjs");require("./lyra15.cjs");require("./lyra16.cjs");require("./lyra17.cjs");require("./lyra18.cjs");require("./lyra19.cjs");require("./lyra20.cjs");require("./lyra21.cjs");require("./lyra22.cjs");require("./lyra23.cjs");require("./lyra24.cjs");require("./lyra25.cjs");const se=require("./lyra26.cjs");require("./lyra27.cjs");require("./lyra28.cjs");require("./lyra29.cjs");const ce=require("./lyra99.cjs");require("./lyra82.cjs");require("./lyra462.cjs");const le=require("./lyra38.cjs"),xe=require("./lyra39.cjs"),Y=require("./lyra40.cjs");require("./lyra44.cjs");require("./lyra31.cjs");require("./lyra32.cjs");require("./lyra33.cjs");require("./lyra34.cjs");require("./lyra35.cjs");const je=require("./lyra560.cjs"),fe=require("./lyra460.cjs"),me=require("./lyra461.cjs"),de=require("./lyra54.cjs");require("./lyra55.cjs");require("./lyra56.cjs");require("./lyra57.cjs");const oe=require("./lyra75.cjs");require("./lyra76.cjs");const ie=require("./lyra463.cjs");require("./lyra464.cjs");const ee=require("./lyra609.cjs"),Re=require("./lyra87.cjs"),qe=require("./lyra86.cjs");require("./lyra41.cjs");require("./lyra42.cjs");require("./lyra43.cjs");require("./lyra45.cjs");require("./lyra46.cjs");require("./lyra47.cjs");require("./lyra48.cjs");require("./lyra49.cjs");require("./lyra50.cjs");require("./lyra51.cjs");require("./lyra52.cjs");require("./lyra53.cjs");const Ee=require("./lyra58.cjs");require("./lyra59.cjs");require("./lyra60.cjs");require("./lyra61.cjs");require("./lyra62.cjs");require("./lyra63.cjs");require("./lyra64.cjs");const he=require("./lyra65.cjs");require("./lyra66.cjs");require("./lyra69.cjs");require("./lyra70.cjs");require("./lyra72.cjs");require("./lyra73.cjs");require("./lyra74.cjs");require("./lyra78.cjs");require("./lyra79.cjs");require("./lyra80.cjs");require("./lyra81.cjs");require("./lyra83.cjs");require("./lyra102.cjs");const Se=require("./lyra89.cjs");require("./lyra90.cjs");require("./lyra91.cjs");const re=require("./lyra92.cjs"),ve=({disableClearLogic:u,endSlot:s,fullWidth:n,getLabel:x,isDisabled:f,isInvalid:l,onChange:p,open:j,openPopover:E,placeholder:m,renderCustomElementInValueButton:h,searchInputRef:R,selectRenderElements:o,startSlot:q,value:i})=>{var a;const{buttonExcludedFromTabOrder:S,inputField:v}=Y.sharedInputStyles({isInvalid:l,hasEndSlot:!0,fullWidth:n,isDisabled:f,isInputOnly:!1}),t=c=>{(c.key==="Escape"||c.key==="Backspace")&&!u?(c.stopPropagation(),p==null||p(void 0)):c.key==="ArrowDown"||c.key==="ArrowUp"?E==null||E():c.key&&c.key.match(/^[a-zA-Z0-9]$/)&&(ue.flushSync(()=>{E==null||E()}),R.current&&(R.current.focus(),R.current.setSelectionRange(0,R.current.value.length)))};return e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[q,e.jsxRuntimeExports.jsxs(M.Button,{"aria-haspopup":"listbox","aria-expanded":j,className:({isFocused:c,isHovered:d})=>v({isHovered:d,isFocused:c,className:"min-h-8 grow"}),isDisabled:f,onKeyDown:t,onPress:E,children:[e.jsxRuntimeExports.jsxs("div",{className:"flex grow truncate text-start",children:[h&&i?(a=o(i))==null?void 0:a.customElement:null,i&&x(i)?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:x(i)}):e.jsxRuntimeExports.jsx(oe.Text,{variant:"body-medium",color:"secondary",children:m})]}),e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[i&&!f&&!u?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsx("div",{className:S(),role:"button",onPointerDown:c=>{c.stopPropagation(),p==null||p(void 0)},onClick:c=>{c.stopPropagation(),p==null||p(void 0)},children:e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"clear"})})}):null,e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"chevron-up-down",className:"h-4 w-4"})]})]}),s]})},ye=({fullWidth:u,getItemId:s,getLabel:n,isDisabled:x,isInvalid:f,label:l,onChange:p,openPopover:j,placeholder:E,searchInputRef:m,value:h})=>{const{inputField:R}=Y.sharedInputStyles({isInvalid:f,hasEndSlot:!0,fullWidth:u,isDisabled:x,isInputOnly:!1}),o=r.useCallback(i=>{i.key==="ArrowDown"||i.key==="ArrowUp"?j():i.key&&i.key.match(/^[a-zA-Z0-9]$/)&&(ue.flushSync(()=>{j()}),m.current&&(m.current.focus(),m.current.setSelectionRange(0,m.current.value.length)))},[j,m]),q=r.useCallback(i=>{h&&p(h.filter(S=>{const v=s(S);return!i.has(v)}))},[s,p,h]);return e.jsxRuntimeExports.jsx(M.Group,{className:({isFocusWithin:i,isHovered:S})=>R({isHovered:S,isFocused:i,className:pe.clsx(S&&!f&&!x&&!i?"border-hover":"","has:[data-focused]:border has:[data-focused]:border-focus","py-[0.4375rem]")}),children:e.jsxRuntimeExports.jsxs(M.Button,{onPress:j,onKeyDown:o,isDisabled:x,className:"flex w-full outline-none",children:[e.jsxRuntimeExports.jsx("div",{className:"grow text-left",children:h&&h.length?e.jsxRuntimeExports.jsx(ie.InputTagGroup,{label:l??"Selected items",className:"-m-1.5 -mt-[0.3125rem] items-center",onRemove:x?void 0:q,children:h.map(i=>e.jsxRuntimeExports.jsx(ie.InputTag,{id:s(i),isDisabled:x,children:n(i)},s(i)))}):e.jsxRuntimeExports.jsx(oe.Text,{color:"secondary",children:E})}),e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"chevron-up-down",className:"h-4 w-4 min-w-[16px]"})]})})},Ne=({endSlot:u,isLoading:s,onKeyDown:n,onQueryChange:x,query:f,searchInputRef:l,setQuery:p})=>{const j=r.useId(),{clear:E,search:m}=ce.useDictionary(),h=Se.useSpinDelay(s??!1,{delay:500,minDuration:200}),{buttonExcludedFromTabOrder:R}=Y.sharedInputStyles({fullWidth:!0});return r.useEffect(()=>{var o;(o=l.current)==null||o.focus()},[]),e.jsxRuntimeExports.jsx("div",{className:"pb-1",children:e.jsxRuntimeExports.jsxs("div",{className:"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5",children:[e.jsxRuntimeExports.jsx(M.Input,{ref:l,id:j,className:"w-full bg-transparent text-base outline-none placeholder:text-tertiary",onChange:o=>{var q,i;p(((q=o.target)==null?void 0:q.value)??""),x==null||x((i=o.target)==null?void 0:i.value)},placeholder:m,value:f??"",onKeyDown:o=>{o.code==="Tab"&&o.preventDefault(),n==null||n(o)}}),f&&f.length?e.jsxRuntimeExports.jsx(M.Button,{"aria-label":E,className:R(),excludeFromTabOrder:!0,onPress:()=>{var o;p(""),(o=l.current)==null||o.focus()},children:e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"clear"})}):null,u,h?e.jsxRuntimeExports.jsx(he.Spinner,{className:"mx-2",size:"small"}):null]})})},Fe=u=>{const s=r.useRef(null),[n,x]=r.useState(!1);return r.useEffect(()=>x(!1),[u]),{loadMoreButtonRef:s,isLoadMoreButtonFocused:n,setIsLoadMoreButtonFocused:x}},ke=({disabledItemIdKeys:u,filteredItems:s,getItemId:n,onMultiChange:x,onSingleChange:f,value:l})=>{const p=r.useMemo(()=>{if(Array.isArray(l))return l.length?s==null?void 0:s.findIndex(t=>n(t)===n(l[0])):0;if(l)return(s==null?void 0:s.findIndex(t=>n(t)===n(l)))??0},[s,n,l]),j=r.useCallback(t=>{if(Number.isInteger(t)){for(let a=t-1;a>=0;a--)if(!(u!=null&&u.includes(n(s[a]))))return Math.max(a,0)}return-1},[u,s,n]),E=r.useCallback(t=>{if(Number.isInteger(t)){for(let a=t+1;a<s.length;a++)if(!(u!=null&&u.includes(n(s[a]))))return Math.min(s.length-1,a)}return-1},[u,s,n]),m=r.useCallback(t=>{if(x){const a=l?[...l]:[],c=a.map(n),d=c!=null&&c.includes(n(t))?a.filter(B=>n(B)!==n(t)):[...a,t];x==null||x(d)}else f&&(f==null||f(t))},[n,x,f,l]),h=r.useCallback(t=>Array.isArray(l)?l.some(a=>n(a)===n(t)):l?n(l)===n(t):!1,[n,l]),[R,o]=r.useState(0),q=qe.useMousePosition(),i=r.useRef(void 0),S=r.useCallback(t=>{const a=R;if(t.key==="ArrowDown"){t.preventDefault();const c=E(a);c>=0&&(o(c),i.current=q)}else if(t.key==="ArrowUp"){t.preventDefault();const c=j(a);c>=0&&(o(c),i.current=q)}else t.key==="Enter"&&m(s[R])},[R,s,E,j,q,m]),v=r.useCallback((t,a)=>{t&&i.current!==q&&(o(a),i.current=q)},[q]);return{activeItem:R,setActiveItem:o,getItemIsSelected:h,onKeyDown:S,onHoverChange:v,selectedItemIndex:p,toggleSelection:m}},we=({selectedItemIndex:u,setActiveItem:s})=>(r.useEffect(()=>{if(u!==void 0&&u>=0)return s(u),()=>{s(0)}},[u,s]),null),te=({direction:u,disabledItemIdKeys:s,getItemId:n,getLabel:x,isLoading:f,items:l,label:p,onLoadMore:j,onMultiChange:E,onQueryChange:m,onSingleChange:h,open:R,placement:o,searchInputRef:q,selectRenderElements:i,setOpenPopover:S,triggerRef:v,value:t})=>{var Q,Z,g;const{loadMore:a,noResultsFound:c}=ce.useDictionary(),{filteredItems:d,query:B,setQuery:G}=Re.useFilterItemsByQuery({getLabel:x,items:l,onQueryChange:m}),{item:O}=fe.sharedListItemStyles(),{isLoadMoreButtonFocused:L,loadMoreButtonRef:T,setIsLoadMoreButtonFocused:W}=Fe(R),{activeItem:w,getItemIsSelected:$,onHoverChange:b,onKeyDown:z,selectedItemIndex:F,setActiveItem:k,toggleSelection:J}=ke({disabledItemIdKeys:s,filteredItems:d,getItemId:n,loadMoreButtonRef:T,onMultiChange:E,onSingleChange:h,value:t}),[X,_]=r.useState((Q=v.current)==null?void 0:Q.offsetWidth);je.default("resize",()=>{var y;_((y=v.current)==null?void 0:y.offsetWidth)});const H=X??((Z=v.current)==null?void 0:Z.offsetWidth),V=r.useRef(null),D=j?((d==null?void 0:d.length)??0)+1:(d==null?void 0:d.length)??0,P=ae.useVirtualizer({count:D,estimateSize:()=>40,getScrollElement:()=>V.current,overscan:6});r.useEffect(()=>{w!==void 0&&w>=0&&(d!=null&&d.length)&&(w===d.length-1&&j?P.scrollToIndex(D):P.scrollToIndex(Math.min(w,D-1)))},[w,D,d.length,j,P]);const U=P.getVirtualItems();return e.jsxRuntimeExports.jsx(de.Popover,{className:"p-1",isOpen:R,disablePadding:!0,triggerRef:v,onOpenChange:S,"aria-label":p,shouldUpdatePosition:!0,placement:o,style:{width:H&&H>280?H+"px":"280px",direction:u},children:R?e.jsxRuntimeExports.jsxs("div",{className:"gap-1",children:[e.jsxRuntimeExports.jsx(Ne,{onQueryChange:m,isLoading:f,query:B,setQuery:y=>{ue.flushSync(()=>{G(y),k(0)}),P.scrollToOffset(0)},searchInputRef:q,onKeyDown:z}),e.jsxRuntimeExports.jsx(we,{selectedItemIndex:F,setActiveItem:k}),e.jsxRuntimeExports.jsx("div",{ref:V,className:"w-full overflow-y-auto",style:{contain:"strict",height:Math.min(288,P.getTotalSize()+(j?4:0))},children:e.jsxRuntimeExports.jsx("div",{className:"relative w-full",style:{height:P.getTotalSize()},children:e.jsxRuntimeExports.jsx("div",{className:"absolute start-0 top-0 w-full",style:{transform:`translateY(${((g=U==null?void 0:U[0])==null?void 0:g.start)??0}px)`},children:U.map(y=>{if(y.index===D-1&&j)return e.jsxRuntimeExports.jsx("div",{"data-index":y.index,ref:P.measureElement,children:e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(Ee.Separator,{className:"my-1"}),e.jsxRuntimeExports.jsx(M.Button,{isDisabled:f,onFocusChange:W,onHoverChange:W,ref:T,className:O({className:"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]"}),onPress:()=>{var N;j(),(N=q.current)==null||N.focus()},onKeyDown:N=>{var A;N.key==="ArrowUp"&&(N.preventDefault(),(A=q.current)==null||A.focus())},children:a})]})},y.key);{const N=d[y.index];return e.jsxRuntimeExports.jsx("div",{"data-index":y.index,ref:P.measureElement,children:e.jsxRuntimeExports.jsx(M.Button,{className:"w-full text-start outline-none",onHoverChange:A=>{b(A,y.index)},onPress:()=>J(N),isDisabled:(s==null?void 0:s.includes(n(N)))??!1,excludeFromTabOrder:!0,children:e.jsxRuntimeExports.jsx(me.SharedListItem,{hasSelection:!0,item:N,state:{active:w===y.index&&!L,disabled:(s==null?void 0:s.includes(n(N)))??!1,selected:$(N)},selectRenderElements:i},n(N))},n(N))},y.key)}})})})}),D?null:e.jsxRuntimeExports.jsx(oe.Text,{variant:"body-medium",color:"secondary",className:"px-2.5",children:c})]}):null})},ne=({getItemId:u,name:s,value:n})=>s?Array.isArray(n)?n.map(x=>e.jsxRuntimeExports.jsx("input",{type:"hidden",name:s,value:u(x)},u(x))):n?e.jsxRuntimeExports.jsx("input",{type:"hidden",name:s,value:u(n)}):null:null,be=({defaultValue:u,description:s,disableClearLogic:n,disabledItemIdKeys:x,endSlot:f,errorMessage:l,fullWidth:p=!0,getItemId:j,getLabel:E,hideHintLabel:m,hideInputFooter:h,hideInputHeader:R,isDisabled:o,isInvalid:q,isLoading:i,isRequired:S,items:v,label:t,name:a,onChange:c,onLoadMore:d,onQueryChange:B,outerEndSlot:G,outerStartSlot:O,placeholder:L,placement:T="bottom start",renderCustomElementInValueButton:W,selectRenderElements:w,startSlot:$,value:b})=>{const{isDisabled:z}=r.useContext(se.FieldGroupContext),F=r.useRef(null),k=r.useRef(null),J=r.useRef(null),[X,_]=r.useState(b??u),[H,V]=r.useState(!1),D=()=>{var K;V(!0),(K=k.current)==null||K.click()},P=()=>V(!1),U=r.useCallback(K=>{_(K),c==null||c(K),P()},[c]),{direction:Q}=re.useLocale(),Z=r.useMemo(()=>ee.shouldRenderInputHeader({hideHintLabel:m,hideInputHeader:R,label:t}),[m,R,t]),g=r.useMemo(()=>ee.shouldRenderInputFooter({description:s,errorMessage:l,hideInputFooter:h}),[s,l,h]),{outerSlot:y,outerSlotsWrapper:C,wrapper:N}=Y.sharedInputStyles({fullWidth:p,isInvalid:q,isDisabled:o||z,hasInputHeader:Z,hasLabel:!!t});r.useEffect(()=>{_(b??u)},[u,b]);const A=b??X;return e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:a,value:A,getItemId:j}),e.jsxRuntimeExports.jsxs("div",{className:C(),children:[O?e.jsxRuntimeExports.jsx("div",{className:y(),children:O}):null,e.jsxRuntimeExports.jsxs("div",{className:N(),children:[Z?e.jsxRuntimeExports.jsx(le.InputHeader,{label:t,hideHintLabel:m,isRequired:S}):null,e.jsxRuntimeExports.jsx("div",{ref:J,children:e.jsxRuntimeExports.jsx(ve,{disableClearLogic:n,endSlot:f,fullWidth:p,getLabel:E,getItemId:j,isDisabled:o,isInvalid:q,open:H,openPopover:D,onChange:U,placeholder:L,searchInputRef:F,startSlot:$,value:A,renderCustomElementInValueButton:W,selectRenderElements:w})}),g?e.jsxRuntimeExports.jsx(xe.InputFooter,{description:s,errorMessage:l}):null]}),G?e.jsxRuntimeExports.jsx("div",{className:y(),children:G}):null]}),e.jsxRuntimeExports.jsx(te,{triggerRef:J,label:t,getItemId:j,getLabel:E,items:v,open:H,setOpenPopover:V,selectRenderElements:w,disabledItemIdKeys:x,direction:Q,onQueryChange:B,isLoading:i,searchInputRef:F,onLoadMore:d,placement:T,value:A,onSingleChange:U})]})},Be=({defaultValue:u,description:s,disableClearLogic:n,disabledItemIdKeys:x,endSlot:f,errorMessage:l,fullWidth:p=!0,getItemId:j,getLabel:E,hideHintLabel:m,hideInputFooter:h,hideInputHeader:R,isDisabled:o,isInvalid:q,isLoading:i,isRequired:S,items:v,label:t,labelId:a,name:c,onChange:d,onLoadMore:B,onQueryChange:G,outerEndSlot:O,outerStartSlot:L,placeholder:T,placement:W="bottom start",selectRenderElements:w,startSlot:$,value:b})=>{const{isDisabled:z}=r.useContext(se.FieldGroupContext),F=r.useRef(null),k=r.useRef(null),[J,X]=r.useState(b??u),[_,H]=r.useState(!1),V=()=>{H(!0)},D=r.useCallback(N=>{var A;X(N),d==null||d(N),(A=F.current)==null||A.focus()},[d]),{direction:P}=re.useLocale(),U=r.useMemo(()=>ee.shouldRenderInputHeader({hideHintLabel:m,hideInputHeader:R,label:t}),[m,R,t]),Q=r.useMemo(()=>ee.shouldRenderInputFooter({description:s,errorMessage:l,hideInputFooter:h}),[s,l,h]),{outerSlot:Z,outerSlotsWrapper:g,wrapper:y}=Y.sharedInputStyles({fullWidth:p,isInvalid:q,isDisabled:o||z,hasInputHeader:U,hasLabel:!!t});r.useEffect(()=>{X(b??u)},[u,b]);const C=b??J;return e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:c,value:C,getItemId:j}),e.jsxRuntimeExports.jsxs("div",{className:g(),children:[L?e.jsxRuntimeExports.jsx("div",{className:Z(),children:L}):null,e.jsxRuntimeExports.jsxs("div",{className:y(),children:[U?e.jsxRuntimeExports.jsx(le.InputHeader,{label:t,isRequired:S,hideHintLabel:m,labelId:a}):null,e.jsxRuntimeExports.jsx("div",{ref:k,children:e.jsxRuntimeExports.jsx(ye,{disableClearLogic:n,endSlot:f,fullWidth:p,getLabel:E,getItemId:j,isDisabled:o,isInvalid:q,onChange:D,open:_,openPopover:V,placeholder:T,searchInputRef:F,startSlot:$,value:C})}),Q?e.jsxRuntimeExports.jsx(xe.InputFooter,{description:s,errorMessage:l}):null]}),O?e.jsxRuntimeExports.jsx("div",{className:Z(),children:O}):null]}),e.jsxRuntimeExports.jsx(te,{label:t,searchInputRef:F,triggerRef:k,getItemId:j,getLabel:E,items:v,onMultiChange:D,value:C,placement:W,open:_,setOpenPopover:H,selectRenderElements:w,disabledItemIdKeys:x,direction:P,onQueryChange:G,isLoading:i,onLoadMore:B})]})},Oe=({children:u,defaultValue:s,disabledItemIdKeys:n,fullWidth:x=!1,getItemId:f,getLabel:l,isDisabled:p,isInvalid:j,isLoading:E,items:m,label:h,name:R,onChange:o,onLoadMore:q,onQueryChange:i,placement:S="bottom start",selectRenderElements:v,value:t})=>{const{isDisabled:a}=r.useContext(se.FieldGroupContext),c=r.useRef(null),d=r.useRef(null),B=r.useRef(null),[G,O]=r.useState(t??s),[L,T]=r.useState(!1),W=()=>{var k;T(!0),(k=d.current)==null||k.click()},w=()=>T(!1),$=r.useCallback(k=>{O(k),o==null||o(k),w()},[o]),{direction:b}=re.useLocale(),{wrapper:z}=Y.sharedInputStyles({fullWidth:x,isInvalid:j,isDisabled:p});r.useEffect(()=>{O(t??s)},[s,t]);const F=t??G;return e.jsxRuntimeExports.jsx(M.Provider,{values:[[M.ButtonContext,{onPress:()=>W(),isDisabled:p||a}]],children:e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:R,value:F,getItemId:f}),e.jsxRuntimeExports.jsx("div",{className:z(),children:e.jsxRuntimeExports.jsx("div",{ref:B,children:u})}),e.jsxRuntimeExports.jsx(te,{triggerRef:B,label:h,getItemId:f,getLabel:l,items:m,open:L,setOpenPopover:T,selectRenderElements:v,disabledItemIdKeys:n,direction:b,onLoadMore:q,onQueryChange:i,isLoading:E,searchInputRef:c,placement:S,value:F,onSingleChange:$})]})})},Te=({children:u,defaultValue:s,disabledItemIdKeys:n,fullWidth:x=!0,getItemId:f,getLabel:l,isDisabled:p,isInvalid:j,isLoading:E,items:m,label:h,name:R,onChange:o,onLoadMore:q,onQueryChange:i,placement:S="bottom start",selectRenderElements:v,value:t})=>{const{isDisabled:a}=r.useContext(se.FieldGroupContext),c=r.useRef(null),d=r.useRef(null),B=r.useRef(null),[G,O]=r.useState(t??s),[L,T]=r.useState(!1),W=()=>{var F;T(!0),(F=d.current)==null||F.click()},w=r.useCallback(F=>{var k;O(F),o==null||o(F),(k=c.current)==null||k.focus()},[o]),{direction:$}=re.useLocale(),{wrapper:b}=Y.sharedInputStyles({fullWidth:x,isInvalid:j,isDisabled:p});r.useEffect(()=>{O(t??s)},[s,t]);const z=t??G;return e.jsxRuntimeExports.jsx(M.Provider,{values:[[M.ButtonContext,{onPress:()=>W(),isDisabled:p||a}]],children:e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:R,value:z,getItemId:f}),e.jsxRuntimeExports.jsx("div",{className:b(),children:e.jsxRuntimeExports.jsx("div",{ref:B,children:u})}),e.jsxRuntimeExports.jsx(te,{label:h,searchInputRef:c,triggerRef:B,getItemId:f,getLabel:l,items:m,onLoadMore:q,open:L,setOpenPopover:T,selectRenderElements:v,disabledItemIdKeys:n,direction:$,onQueryChange:i,isLoading:E,value:z,onMultiChange:w,placement:S})]})})};exports.MultiSearchListField=Be;exports.MultiSearchListFieldWithCustomTrigger=Te;exports.SearchListField=be;exports.SearchListFieldWithCustomTrigger=Oe;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lyra94.cjs"),r=require("react"),G=require("./lyra93.cjs"),ue=require("react-dom"),ae=require("./lyra624.cjs"),pe=require("./lyra454.cjs");require("./lyra2.cjs");require("./lyra3.cjs");require("./lyra4.cjs");require("./lyra5.cjs");require("./lyra6.cjs");const I=require("./lyra67.cjs");require("./lyra8.cjs");require("./lyra9.cjs");require("./lyra10.cjs");require("./lyra11.cjs");require("./lyra12.cjs");require("./lyra13.cjs");require("./lyra14.cjs");require("./lyra15.cjs");require("./lyra16.cjs");require("./lyra17.cjs");require("./lyra18.cjs");require("./lyra19.cjs");require("./lyra20.cjs");require("./lyra21.cjs");require("./lyra22.cjs");require("./lyra23.cjs");require("./lyra24.cjs");require("./lyra25.cjs");const se=require("./lyra26.cjs");require("./lyra27.cjs");require("./lyra28.cjs");require("./lyra29.cjs");const ce=require("./lyra99.cjs");require("./lyra82.cjs");require("./lyra459.cjs");const le=require("./lyra38.cjs"),xe=require("./lyra39.cjs"),Y=require("./lyra40.cjs");require("./lyra44.cjs");require("./lyra31.cjs");require("./lyra32.cjs");require("./lyra33.cjs");require("./lyra34.cjs");require("./lyra35.cjs");const je=require("./lyra601.cjs"),fe=require("./lyra460.cjs"),me=require("./lyra461.cjs"),de=require("./lyra54.cjs");require("./lyra55.cjs");require("./lyra56.cjs");require("./lyra57.cjs");const oe=require("./lyra75.cjs");require("./lyra76.cjs");const ie=require("./lyra462.cjs");require("./lyra463.cjs");const ee=require("./lyra623.cjs"),Re=require("./lyra87.cjs"),qe=require("./lyra86.cjs");require("./lyra41.cjs");require("./lyra42.cjs");require("./lyra43.cjs");require("./lyra45.cjs");require("./lyra46.cjs");require("./lyra47.cjs");require("./lyra48.cjs");require("./lyra49.cjs");require("./lyra50.cjs");require("./lyra51.cjs");require("./lyra52.cjs");require("./lyra53.cjs");const Ee=require("./lyra58.cjs");require("./lyra59.cjs");require("./lyra60.cjs");require("./lyra61.cjs");require("./lyra62.cjs");require("./lyra63.cjs");require("./lyra64.cjs");const he=require("./lyra65.cjs");require("./lyra66.cjs");require("./lyra69.cjs");require("./lyra70.cjs");require("./lyra72.cjs");require("./lyra73.cjs");require("./lyra74.cjs");require("./lyra78.cjs");require("./lyra79.cjs");require("./lyra80.cjs");require("./lyra81.cjs");require("./lyra83.cjs");require("./lyra102.cjs");const Se=require("./lyra89.cjs");require("./lyra90.cjs");require("./lyra91.cjs");const re=require("./lyra92.cjs"),ve=({disableClearLogic:u,endSlot:s,fullWidth:n,getLabel:x,isDisabled:f,isInvalid:i,onChange:p,open:j,openPopover:E,placeholder:m,renderCustomElementInValueButton:h,searchInputRef:R,selectRenderElements:o,startSlot:q,value:c})=>{var a;const{buttonExcludedFromTabOrder:S,inputField:v}=Y.sharedInputStyles({isInvalid:i,hasEndSlot:!0,fullWidth:n,isDisabled:f,isInputOnly:!1}),t=l=>{(l.key==="Escape"||l.key==="Backspace")&&!u?(l.stopPropagation(),p==null||p(void 0)):l.key==="ArrowDown"||l.key==="ArrowUp"?E==null||E():l.key&&l.key.match(/^[a-zA-Z0-9]$/)&&(ue.flushSync(()=>{E==null||E()}),R.current&&(R.current.focus(),R.current.setSelectionRange(0,R.current.value.length)))};return e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[q,e.jsxRuntimeExports.jsxs(G.Button,{"aria-haspopup":"listbox","aria-expanded":j,className:({isFocused:l,isHovered:d})=>v({isHovered:d,isFocused:l,className:"min-h-8 grow"}),isDisabled:f,onKeyDown:t,onPress:E,children:[e.jsxRuntimeExports.jsxs("div",{className:"flex grow truncate text-start",children:[h&&c?(a=o(c))==null?void 0:a.customElement:null,c&&x(c)?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:x(c)}):e.jsxRuntimeExports.jsx(oe.Text,{variant:"body-medium",color:"secondary",children:m})]}),e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[c&&!f&&!u?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsx("div",{className:S(),role:"button",onPointerDown:l=>{l.stopPropagation(),p==null||p(void 0)},onClick:l=>{l.stopPropagation(),p==null||p(void 0)},children:e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"clear"})})}):null,e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"chevron-up-down",className:"h-4 w-4"})]})]}),s]})},ye=({fullWidth:u,getItemId:s,getLabel:n,isDisabled:x,isInvalid:f,label:i,onChange:p,openPopover:j,placeholder:E,searchInputRef:m,value:h})=>{const{inputField:R}=Y.sharedInputStyles({isInvalid:f,hasEndSlot:!0,fullWidth:u,isDisabled:x,isInputOnly:!1}),o=r.useCallback(c=>{c.key==="ArrowDown"||c.key==="ArrowUp"?j():c.key&&c.key.match(/^[a-zA-Z0-9]$/)&&(ue.flushSync(()=>{j()}),m.current&&(m.current.focus(),m.current.setSelectionRange(0,m.current.value.length)))},[j,m]),q=r.useCallback(c=>{h&&p(h.filter(S=>{const v=s(S);return!c.has(v)}))},[s,p,h]);return e.jsxRuntimeExports.jsx(G.Group,{className:({isFocusWithin:c,isHovered:S})=>R({isHovered:S,isFocused:c,className:pe.clsx(S&&!f&&!x&&!c?"border-hover":"","has:[data-focused]:border has:[data-focused]:border-focus","py-[0.4375rem]")}),children:e.jsxRuntimeExports.jsxs(G.Button,{onPress:j,onKeyDown:o,isDisabled:x,className:"flex w-full outline-none",children:[e.jsxRuntimeExports.jsx("div",{className:"grow text-left",children:h&&h.length?e.jsxRuntimeExports.jsx(ie.InputTagGroup,{label:i??"Selected items",className:"-m-1.5 -mt-[0.3125rem] items-center",onRemove:x?void 0:q,children:h.map(c=>e.jsxRuntimeExports.jsx(ie.InputTag,{id:s(c),isDisabled:x,children:n(c)},s(c)))}):e.jsxRuntimeExports.jsx(oe.Text,{color:"secondary",children:E})}),e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"chevron-up-down",className:"h-4 w-4 min-w-[16px]"})]})})},Ne=({endSlot:u,isLoading:s,onKeyDown:n,onQueryChange:x,query:f,searchInputRef:i,setQuery:p})=>{const j=r.useId(),{clear:E,search:m}=ce.useDictionary(),h=Se.useSpinDelay(s??!1,{delay:500,minDuration:200}),{buttonExcludedFromTabOrder:R}=Y.sharedInputStyles({fullWidth:!0});return r.useEffect(()=>{var o;(o=i.current)==null||o.focus()},[]),e.jsxRuntimeExports.jsx("div",{className:"pb-1",children:e.jsxRuntimeExports.jsxs("div",{className:"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5",children:[e.jsxRuntimeExports.jsx(G.Input,{ref:i,id:j,className:"w-full bg-transparent text-base outline-none placeholder:text-tertiary",onChange:o=>{var q,c;p(((q=o.target)==null?void 0:q.value)??""),x==null||x((c=o.target)==null?void 0:c.value)},placeholder:m,value:f??"",onKeyDown:o=>{o.code==="Tab"&&o.preventDefault(),n==null||n(o)}}),f&&f.length?e.jsxRuntimeExports.jsx(G.Button,{"aria-label":E,className:R(),excludeFromTabOrder:!0,onPress:()=>{var o;p(""),(o=i.current)==null||o.focus()},children:e.jsxRuntimeExports.jsx(I.SvgIcon,{name:"clear"})}):null,u,h?e.jsxRuntimeExports.jsx(he.Spinner,{className:"mx-2",size:"small"}):null]})})},Fe=u=>{const s=r.useRef(null),[n,x]=r.useState(!1);return r.useEffect(()=>x(!1),[u]),{loadMoreButtonRef:s,isLoadMoreButtonFocused:n,setIsLoadMoreButtonFocused:x}},ke=({disabledItemIdKeys:u,filteredItems:s,getItemId:n,onMultiChange:x,onSingleChange:f,value:i})=>{const p=r.useMemo(()=>{if(Array.isArray(i))return i.length?s==null?void 0:s.findIndex(t=>n(t)===n(i[0])):0;if(i)return(s==null?void 0:s.findIndex(t=>n(t)===n(i)))??0},[s,n,i]),j=r.useCallback(t=>{if(Number.isInteger(t)){for(let a=t-1;a>=0;a--)if(!(u!=null&&u.includes(n(s[a]))))return Math.max(a,0)}return-1},[u,s,n]),E=r.useCallback(t=>{if(Number.isInteger(t)){for(let a=t+1;a<s.length;a++)if(!(u!=null&&u.includes(n(s[a]))))return Math.min(s.length-1,a)}return-1},[u,s,n]),m=r.useCallback(t=>{if(x){const a=i?[...i]:[],l=a.map(n),d=l!=null&&l.includes(n(t))?a.filter(B=>n(B)!==n(t)):[...a,t];x==null||x(d)}else f&&(f==null||f(t))},[n,x,f,i]),h=r.useCallback(t=>Array.isArray(i)?i.some(a=>n(a)===n(t)):i?n(i)===n(t):!1,[n,i]),[R,o]=r.useState(0),q=qe.useMousePosition(),c=r.useRef(void 0),S=r.useCallback(t=>{const a=R;if(t.key==="ArrowDown"){t.preventDefault();const l=E(a);l>=0&&(o(l),c.current=q)}else if(t.key==="ArrowUp"){t.preventDefault();const l=j(a);l>=0&&(o(l),c.current=q)}else t.key==="Enter"&&m(s[R])},[R,s,E,j,q,m]),v=r.useCallback((t,a)=>{t&&c.current!==q&&(o(a),c.current=q)},[q]);return{activeItem:R,setActiveItem:o,getItemIsSelected:h,onKeyDown:S,onHoverChange:v,selectedItemIndex:p,toggleSelection:m}},we=({selectedItemIndex:u,setActiveItem:s})=>(r.useEffect(()=>{if(u!==void 0&&u>=0)return s(u),()=>{s(0)}},[u,s]),null),te=({direction:u,disabledItemIdKeys:s,getItemId:n,getLabel:x,isLoading:f,items:i,label:p,onLoadMore:j,onMultiChange:E,onQueryChange:m,onSingleChange:h,open:R,placement:o,searchInputRef:q,selectRenderElements:c,setOpenPopover:S,triggerRef:v,value:t})=>{var Q,Z,g;const{loadMore:a,noResultsFound:l}=ce.useDictionary(),{filteredItems:d,query:B,setQuery:L}=Re.useFilterItemsByQuery({getLabel:x,items:i,onQueryChange:m}),{item:O}=fe.sharedListItemStyles(),{isLoadMoreButtonFocused:M,loadMoreButtonRef:T,setIsLoadMoreButtonFocused:W}=Fe(R),{activeItem:w,getItemIsSelected:$,onHoverChange:b,onKeyDown:z,selectedItemIndex:F,setActiveItem:k,toggleSelection:J}=ke({disabledItemIdKeys:s,filteredItems:d,getItemId:n,loadMoreButtonRef:T,onMultiChange:E,onSingleChange:h,value:t}),[X,_]=r.useState((Q=v.current)==null?void 0:Q.offsetWidth);je.default("resize",()=>{var y;_((y=v.current)==null?void 0:y.offsetWidth)});const H=X??((Z=v.current)==null?void 0:Z.offsetWidth),V=r.useRef(null),D=j?((d==null?void 0:d.length)??0)+1:(d==null?void 0:d.length)??0,P=ae.useVirtualizer({count:D,estimateSize:()=>40,getScrollElement:()=>V.current,overscan:6});r.useEffect(()=>{w!==void 0&&w>=0&&(d!=null&&d.length)&&(w===d.length-1&&j?P.scrollToIndex(D):P.scrollToIndex(Math.min(w,D-1)))},[w,D,d.length,j,P]);const U=P.getVirtualItems();return e.jsxRuntimeExports.jsx(de.Popover,{className:"p-1",isOpen:R,disablePadding:!0,triggerRef:v,onOpenChange:S,"aria-label":p,shouldUpdatePosition:!0,placement:o,style:{width:H&&H>280?H+"px":"280px",direction:u},children:R?e.jsxRuntimeExports.jsxs("div",{className:"gap-1",children:[e.jsxRuntimeExports.jsx(Ne,{onQueryChange:m,isLoading:f,query:B,setQuery:y=>{ue.flushSync(()=>{L(y),k(0)}),P.scrollToOffset(0)},searchInputRef:q,onKeyDown:z}),e.jsxRuntimeExports.jsx(we,{selectedItemIndex:F,setActiveItem:k}),e.jsxRuntimeExports.jsx("div",{ref:V,className:"w-full overflow-y-auto",style:{contain:"strict",height:Math.min(288,P.getTotalSize()+(j?4:0))},children:e.jsxRuntimeExports.jsx("div",{className:"relative w-full",style:{height:P.getTotalSize()},children:e.jsxRuntimeExports.jsx("div",{className:"absolute start-0 top-0 w-full",style:{transform:`translateY(${((g=U==null?void 0:U[0])==null?void 0:g.start)??0}px)`},children:U.map(y=>{if(y.index===D-1&&j)return e.jsxRuntimeExports.jsx("div",{"data-index":y.index,ref:P.measureElement,children:e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(Ee.Separator,{className:"my-1"}),e.jsxRuntimeExports.jsx(G.Button,{isDisabled:f,onFocusChange:W,onHoverChange:W,ref:T,className:O({className:"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]"}),onPress:()=>{var N;j(),(N=q.current)==null||N.focus()},onKeyDown:N=>{var A;N.key==="ArrowUp"&&(N.preventDefault(),(A=q.current)==null||A.focus())},children:a})]})},y.key);{const N=d[y.index];return e.jsxRuntimeExports.jsx("div",{"data-index":y.index,ref:P.measureElement,children:e.jsxRuntimeExports.jsx(G.Button,{className:"w-full text-start outline-none",onHoverChange:A=>{b(A,y.index)},onPress:()=>J(N),isDisabled:(s==null?void 0:s.includes(n(N)))??!1,excludeFromTabOrder:!0,children:e.jsxRuntimeExports.jsx(me.SharedListItem,{hasSelection:!0,item:N,state:{active:w===y.index&&!M,disabled:(s==null?void 0:s.includes(n(N)))??!1,selected:$(N)},selectRenderElements:c},n(N))},n(N))},y.key)}})})})}),D?null:e.jsxRuntimeExports.jsx(oe.Text,{variant:"body-medium",color:"secondary",className:"px-2.5",children:l})]}):null})},ne=({getItemId:u,name:s,value:n})=>s?Array.isArray(n)?n.map(x=>e.jsxRuntimeExports.jsx("input",{type:"hidden",name:s,value:u(x)},u(x))):n?e.jsxRuntimeExports.jsx("input",{type:"hidden",name:s,value:u(n)}):null:null,be=({defaultValue:u,description:s,disableClearLogic:n,disabledItemIdKeys:x,endSlot:f,errorMessage:i,fullWidth:p=!0,getItemId:j,getLabel:E,hideHintLabel:m,hideInputFooter:h,hideInputHeader:R,isDisabled:o,isInvalid:q,isLoading:c,isRequired:S,items:v,label:t,name:a,onChange:l,onLoadMore:d,onQueryChange:B,outerEndSlot:L,outerStartSlot:O,placeholder:M,placement:T="bottom start",renderCustomElementInValueButton:W,selectRenderElements:w,startSlot:$,value:b})=>{const{isDisabled:z}=r.useContext(se.FieldGroupContext),F=r.useRef(null),k=r.useRef(null),J=r.useRef(null),[X,_]=r.useState(b??u),[H,V]=r.useState(!1),D=()=>{var K;V(!0),(K=k.current)==null||K.click()},P=()=>V(!1),U=r.useCallback(K=>{_(K),l==null||l(K),P()},[l]),{direction:Q}=re.useLocale(),Z=r.useMemo(()=>ee.shouldRenderInputHeader({hideHintLabel:m,hideInputHeader:R,label:t}),[m,R,t]),g=r.useMemo(()=>ee.shouldRenderInputFooter({description:s,errorMessage:i,hideInputFooter:h}),[s,i,h]),{outerSlot:y,outerSlotsWrapper:C,wrapper:N}=Y.sharedInputStyles({fullWidth:p,isInvalid:q,isDisabled:o||z,hasInputHeader:Z,hasLabel:!!t});r.useEffect(()=>{_(b??u)},[u,b]);const A=b??X;return e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:a,value:A,getItemId:j}),e.jsxRuntimeExports.jsxs("div",{className:C(),children:[O?e.jsxRuntimeExports.jsx("div",{className:y(),children:O}):null,e.jsxRuntimeExports.jsxs("div",{className:N(),children:[Z?e.jsxRuntimeExports.jsx(le.InputHeader,{label:t,hideHintLabel:m,isRequired:S}):null,e.jsxRuntimeExports.jsx("div",{ref:J,children:e.jsxRuntimeExports.jsx(ve,{disableClearLogic:n,endSlot:f,fullWidth:p,getLabel:E,getItemId:j,isDisabled:o,isInvalid:q||!!i,open:H,openPopover:D,onChange:U,placeholder:M,searchInputRef:F,startSlot:$,value:A,renderCustomElementInValueButton:W,selectRenderElements:w})}),g?e.jsxRuntimeExports.jsx(xe.InputFooter,{description:s,errorMessage:i}):null]}),L?e.jsxRuntimeExports.jsx("div",{className:y(),children:L}):null]}),e.jsxRuntimeExports.jsx(te,{triggerRef:J,label:t,getItemId:j,getLabel:E,items:v,open:H,setOpenPopover:V,selectRenderElements:w,disabledItemIdKeys:x,direction:Q,onQueryChange:B,isLoading:c,searchInputRef:F,onLoadMore:d,placement:T,value:A,onSingleChange:U})]})},Be=({defaultValue:u,description:s,disableClearLogic:n,disabledItemIdKeys:x,endSlot:f,errorMessage:i,fullWidth:p=!0,getItemId:j,getLabel:E,hideHintLabel:m,hideInputFooter:h,hideInputHeader:R,isDisabled:o,isInvalid:q,isLoading:c,isRequired:S,items:v,label:t,labelId:a,name:l,onChange:d,onLoadMore:B,onQueryChange:L,outerEndSlot:O,outerStartSlot:M,placeholder:T,placement:W="bottom start",selectRenderElements:w,startSlot:$,value:b})=>{const{isDisabled:z}=r.useContext(se.FieldGroupContext),F=r.useRef(null),k=r.useRef(null),[J,X]=r.useState(b??u),[_,H]=r.useState(!1),V=()=>{H(!0)},D=r.useCallback(N=>{var A;X(N),d==null||d(N),(A=F.current)==null||A.focus()},[d]),{direction:P}=re.useLocale(),U=r.useMemo(()=>ee.shouldRenderInputHeader({hideHintLabel:m,hideInputHeader:R,label:t}),[m,R,t]),Q=r.useMemo(()=>ee.shouldRenderInputFooter({description:s,errorMessage:i,hideInputFooter:h}),[s,i,h]),{outerSlot:Z,outerSlotsWrapper:g,wrapper:y}=Y.sharedInputStyles({fullWidth:p,isInvalid:q,isDisabled:o||z,hasInputHeader:U,hasLabel:!!t});r.useEffect(()=>{X(b??u)},[u,b]);const C=b??J;return e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:l,value:C,getItemId:j}),e.jsxRuntimeExports.jsxs("div",{className:g(),children:[M?e.jsxRuntimeExports.jsx("div",{className:Z(),children:M}):null,e.jsxRuntimeExports.jsxs("div",{className:y(),children:[U?e.jsxRuntimeExports.jsx(le.InputHeader,{label:t,isRequired:S,hideHintLabel:m,labelId:a}):null,e.jsxRuntimeExports.jsx("div",{ref:k,children:e.jsxRuntimeExports.jsx(ye,{disableClearLogic:n,endSlot:f,fullWidth:p,getLabel:E,getItemId:j,isDisabled:o,isInvalid:q||!!i,onChange:D,open:_,openPopover:V,placeholder:T,searchInputRef:F,startSlot:$,value:C})}),Q?e.jsxRuntimeExports.jsx(xe.InputFooter,{description:s,errorMessage:i}):null]}),O?e.jsxRuntimeExports.jsx("div",{className:Z(),children:O}):null]}),e.jsxRuntimeExports.jsx(te,{label:t,searchInputRef:F,triggerRef:k,getItemId:j,getLabel:E,items:v,onMultiChange:D,value:C,placement:W,open:_,setOpenPopover:H,selectRenderElements:w,disabledItemIdKeys:x,direction:P,onQueryChange:L,isLoading:c,onLoadMore:B})]})},Oe=({children:u,defaultValue:s,disabledItemIdKeys:n,fullWidth:x=!1,getItemId:f,getLabel:i,isDisabled:p,isInvalid:j,isLoading:E,items:m,label:h,name:R,onChange:o,onLoadMore:q,onQueryChange:c,placement:S="bottom start",selectRenderElements:v,value:t})=>{const{isDisabled:a}=r.useContext(se.FieldGroupContext),l=r.useRef(null),d=r.useRef(null),B=r.useRef(null),[L,O]=r.useState(t??s),[M,T]=r.useState(!1),W=()=>{var k;T(!0),(k=d.current)==null||k.click()},w=()=>T(!1),$=r.useCallback(k=>{O(k),o==null||o(k),w()},[o]),{direction:b}=re.useLocale(),{wrapper:z}=Y.sharedInputStyles({fullWidth:x,isInvalid:j,isDisabled:p});r.useEffect(()=>{O(t??s)},[s,t]);const F=t??L;return e.jsxRuntimeExports.jsx(G.Provider,{values:[[G.ButtonContext,{onPress:()=>W(),isDisabled:p||a}]],children:e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:R,value:F,getItemId:f}),e.jsxRuntimeExports.jsx("div",{className:z(),children:e.jsxRuntimeExports.jsx("div",{ref:B,children:u})}),e.jsxRuntimeExports.jsx(te,{triggerRef:B,label:h,getItemId:f,getLabel:i,items:m,open:M,setOpenPopover:T,selectRenderElements:v,disabledItemIdKeys:n,direction:b,onLoadMore:q,onQueryChange:c,isLoading:E,searchInputRef:l,placement:S,value:F,onSingleChange:$})]})})},Te=({children:u,defaultValue:s,disabledItemIdKeys:n,fullWidth:x=!0,getItemId:f,getLabel:i,isDisabled:p,isInvalid:j,isLoading:E,items:m,label:h,name:R,onChange:o,onLoadMore:q,onQueryChange:c,placement:S="bottom start",selectRenderElements:v,value:t})=>{const{isDisabled:a}=r.useContext(se.FieldGroupContext),l=r.useRef(null),d=r.useRef(null),B=r.useRef(null),[L,O]=r.useState(t??s),[M,T]=r.useState(!1),W=()=>{var F;T(!0),(F=d.current)==null||F.click()},w=r.useCallback(F=>{var k;O(F),o==null||o(F),(k=l.current)==null||k.focus()},[o]),{direction:$}=re.useLocale(),{wrapper:b}=Y.sharedInputStyles({fullWidth:x,isInvalid:j,isDisabled:p});r.useEffect(()=>{O(t??s)},[s,t]);const z=t??L;return e.jsxRuntimeExports.jsx(G.Provider,{values:[[G.ButtonContext,{onPress:()=>W(),isDisabled:p||a}]],children:e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx(ne,{name:R,value:z,getItemId:f}),e.jsxRuntimeExports.jsx("div",{className:b(),children:e.jsxRuntimeExports.jsx("div",{ref:B,children:u})}),e.jsxRuntimeExports.jsx(te,{label:h,searchInputRef:l,triggerRef:B,getItemId:f,getLabel:i,items:m,onLoadMore:q,open:M,setOpenPopover:T,selectRenderElements:v,disabledItemIdKeys:n,direction:$,onQueryChange:c,isLoading:E,value:z,onMultiChange:w,placement:S})]})})};exports.MultiSearchListField=Be;exports.MultiSearchListFieldWithCustomTrigger=Te;exports.SearchListField=be;exports.SearchListFieldWithCustomTrigger=Oe;
|
package/dist/lyra37.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra37.cjs","sources":["../src/components/inputs/search-list-field/search-list-field.tsx"],"sourcesContent":["import {\n CSSProperties,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Button as AriaButton,\n ButtonContext,\n Group,\n Input,\n Key,\n Provider,\n} from \"react-aria-components\";\nimport { flushSync } from \"react-dom\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport clsx from \"clsx\";\n\nimport { Separator, Spinner, useLocale, useSpinDelay } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { useFilterItemsByQuery } from \"../../../utils/hooks/use-filter-items-by-query\";\nimport { useMousePosition } from \"../../../utils/hooks/use-mouse-position\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { sharedListItemStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\nimport { shouldRenderInputFooter, shouldRenderInputHeader } from \"../shared/helpers\";\n\nimport {\n MultiSearchListFieldProps,\n MultiSearchListFieldWithCustomTriggerProps,\n SearchInputProps,\n SearchListFieldItemsProps,\n SearchListFieldProps,\n SearchListFieldWithCustomTriggerProps,\n ValueButton,\n} from \"./seach-list-field.types\";\n\nconst SingleValueButton = <T extends object>({\n disableClearLogic,\n endSlot,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n open,\n openPopover,\n placeholder,\n renderCustomElementInValueButton,\n searchInputRef,\n selectRenderElements,\n startSlot,\n value,\n}: ValueButton<T>) => {\n const { buttonExcludedFromTabOrder, inputField } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n e.stopPropagation();\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover?.();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover?.();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n };\n\n return (\n <div className=\"flex items-center gap-2\">\n {startSlot}\n <AriaButton\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n className={({ isFocused, isHovered }) =>\n inputField({\n isHovered,\n isFocused,\n className: \"min-h-8 grow\",\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={openPopover}\n >\n <div className=\"flex grow truncate text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value && getLabel(value) ? (\n <>{getLabel(value)}</>\n ) : (\n <Text variant=\"body-medium\" color=\"secondary\">\n {placeholder}\n </Text>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !isDisabled && !disableClearLogic ? (\n <>\n <div\n className={buttonExcludedFromTabOrder()}\n role=\"button\"\n onPointerDown={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4\" />\n </div>\n </AriaButton>\n {endSlot}\n </div>\n );\n};\n\nconst MultipleValuesButton = <T extends object>({\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n openPopover,\n placeholder,\n searchInputRef,\n value,\n}: Omit<\n ValueButton<T>,\n \"value\" | \"onChange\" | \"selectRenderElements\" | \"renderCustomElementInValueButton\"\n> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n },\n [openPopover, searchInputRef],\n );\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n return (\n <Group\n className={({ isFocusWithin: isFocused, isHovered }) =>\n inputFieldStyles({\n isHovered,\n isFocused,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"has:[data-focused]:border has:[data-focused]:border-focus\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n >\n <AriaButton\n onPress={openPopover}\n onKeyDown={onKeyDown}\n isDisabled={isDisabled}\n className=\"flex w-full outline-none\"\n >\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem] items-center\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-[16px]\" />\n </AriaButton>\n </Group>\n );\n};\n\nconst SearchInput = ({\n endSlot,\n isLoading,\n onKeyDown,\n onQueryChange,\n query,\n searchInputRef,\n setQuery,\n}: SearchInputProps & { onKeyDown: KeyboardEventHandler<HTMLInputElement> | undefined }) => {\n const id = useId();\n const { clear, search } = useDictionary();\n const showSpinner = useSpinDelay(isLoading ?? false, { delay: 500, minDuration: 200 });\n const { buttonExcludedFromTabOrder } = sharedInputStyles({ fullWidth: true });\n\n useEffect(() => {\n searchInputRef.current?.focus();\n // only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div className=\"pb-1\">\n <div className=\"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5\">\n <Input\n ref={searchInputRef}\n id={id}\n className=\"w-full bg-transparent text-base outline-none placeholder:text-tertiary\"\n onChange={(e) => {\n setQuery(e.target?.value ?? \"\");\n onQueryChange?.(e.target?.value as any);\n }}\n placeholder={search}\n value={query ?? \"\"}\n onKeyDown={(event) => {\n // Prevent selection of an item on Tab key down event\n if (event.code === \"Tab\") {\n event.preventDefault();\n }\n\n onKeyDown?.(event);\n }}\n />\n {query && query.length ? (\n <AriaButton\n aria-label={clear}\n className={buttonExcludedFromTabOrder()}\n excludeFromTabOrder\n onPress={() => {\n setQuery(\"\");\n searchInputRef.current?.focus();\n }}\n >\n <SvgIcon name=\"clear\" />\n </AriaButton>\n ) : null}\n {endSlot}\n {showSpinner ? <Spinner className=\"mx-2\" size=\"small\" /> : null}\n </div>\n </div>\n );\n};\n\nconst useLoadMoreHook = (open: boolean) => {\n const loadMoreButtonRef = useRef<HTMLButtonElement | null>(null);\n const [isLoadMoreButtonFocused, setIsLoadMoreButtonFocused] = useState(false);\n\n // Reset focused state as the popover opens / closes\n useEffect(() => setIsLoadMoreButtonFocused(false), [open]);\n return { loadMoreButtonRef, isLoadMoreButtonFocused, setIsLoadMoreButtonFocused };\n};\n\ntype UseItemSelectionProps<T> = {\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n onSingleChange?: (value?: T) => void;\n onMultiChange?: (value?: T[]) => void;\n getItemId: (item: T) => Key;\n value?: T | T[];\n loadMoreButtonRef: RefObject<HTMLButtonElement>;\n};\n\nconst useItemSelection = <T extends object>({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value)) ?? 0;\n }\n }, [filteredItems, getItemId, value]);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = !value ? [] : [...(value as T[])];\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(0);\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation when the searchinput is focused.\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Enter\") {\n toggleSelection(filteredItems[activeItem]);\n }\n },\n [\n activeItem,\n filteredItems,\n getNextItemIndex,\n getPreviousItemIndex,\n mousePosition,\n toggleSelection,\n ],\n );\n\n // Handles onHoverChange event for the search list field items\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n return {\n activeItem,\n setActiveItem,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\n// Component that only gets rendered when popover is open.\n// This way we can set the active item when the popover opens and make sure the selected item will become active.\n// When closing the popover, the active item will be reset to 0.\nconst SelectedItem = ({\n selectedItemIndex,\n setActiveItem,\n}: {\n selectedItemIndex?: number;\n setActiveItem: (value: number) => void;\n}) => {\n useEffect(() => {\n if (selectedItemIndex !== undefined && selectedItemIndex >= 0) {\n setActiveItem(selectedItemIndex);\n\n return () => {\n setActiveItem(0);\n };\n }\n }, [selectedItemIndex, setActiveItem]);\n return null;\n};\n\nconst SearchListFieldItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isLoading,\n items,\n label,\n onLoadMore,\n onMultiChange,\n onQueryChange,\n onSingleChange,\n open,\n placement,\n searchInputRef,\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SearchListFieldItemsProps<T>) => {\n const { loadMore, noResultsFound } = useDictionary();\n const { filteredItems, query, setQuery } = useFilterItemsByQuery<T>({\n getLabel,\n items,\n onQueryChange,\n });\n const { item: itemStyles } = sharedListItemStyles();\n const { isLoadMoreButtonFocused, loadMoreButtonRef, setIsLoadMoreButtonFocused } =\n useLoadMoreHook(open);\n\n const {\n activeItem,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n selectedItemIndex,\n setActiveItem,\n toggleSelection,\n } = useItemSelection({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n value,\n });\n\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n const count = onLoadMore ? (filteredItems?.length ?? 0) + 1 : filteredItems?.length ?? 0;\n\n const virtualizer = useVirtualizer({\n count,\n estimateSize: () => 40,\n getScrollElement: () => parentRef.current,\n overscan: 6,\n });\n\n // Make sure we scroll to the activeItem if it changes.\n useEffect(() => {\n if (activeItem !== undefined && activeItem >= 0 && filteredItems?.length) {\n // if it's the last filtered item and a load more button is present, scroll to the load more button into view as well.\n if (activeItem === filteredItems.length - 1 && onLoadMore) {\n virtualizer.scrollToIndex(count);\n } else {\n virtualizer.scrollToIndex(Math.min(activeItem, count - 1));\n }\n }\n }, [activeItem, count, filteredItems.length, onLoadMore, virtualizer]);\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n disablePadding\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n aria-label={label}\n shouldUpdatePosition\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <div className=\"gap-1\">\n <SearchInput\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n query={query}\n setQuery={(value) => {\n // Reset active item when query changes and set the query.\n // Using flushSync to make sure scroll to offset is called after the active item is set.\n flushSync(() => {\n setQuery(value);\n setActiveItem(0);\n });\n\n virtualizer.scrollToOffset(0);\n }}\n searchInputRef={searchInputRef}\n onKeyDown={onKeyDown}\n />\n <SelectedItem selectedItemIndex={selectedItemIndex} setActiveItem={setActiveItem} />\n <div\n ref={parentRef}\n className=\"w-full overflow-y-auto\"\n style={{\n contain: \"strict\",\n height: Math.min(288, virtualizer.getTotalSize() + (onLoadMore ? 4 : 0)),\n }}\n >\n <div\n className=\"relative w-full\"\n style={{\n height: virtualizer.getTotalSize(),\n }}\n >\n <div\n className=\"absolute start-0 top-0 w-full\"\n style={{\n transform: `translateY(${virtualItems?.[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualItem) => {\n const itemIsLastOfIndex = virtualItem.index === count - 1;\n\n if (itemIsLastOfIndex && onLoadMore) {\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <div>\n <Separator className=\"my-1\" />\n <AriaButton\n isDisabled={isLoading}\n onFocusChange={setIsLoadMoreButtonFocused}\n onHoverChange={setIsLoadMoreButtonFocused}\n ref={loadMoreButtonRef}\n className={itemStyles({\n className:\n \"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]\",\n })}\n onPress={() => {\n onLoadMore();\n\n // Focus input after loading more items\n searchInputRef.current?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n searchInputRef.current?.focus();\n }\n }}\n >\n {loadMore}\n </AriaButton>\n </div>\n </div>\n );\n } else {\n const item = filteredItems[virtualItem.index];\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <AriaButton\n key={getItemId(item)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n onPress={() => toggleSelection(item)}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n excludeFromTabOrder\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active: activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </AriaButton>\n </div>\n );\n }\n })}\n </div>\n </div>\n </div>\n {count ? null : (\n <Text variant=\"body-medium\" color=\"secondary\" className=\"px-2.5\">\n {noResultsFound}\n </Text>\n )}\n </div>\n ) : null}\n </Popover>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\nexport const SearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n renderCustomElementInValueButton,\n selectRenderElements,\n startSlot,\n value,\n}: SearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <SingleValueButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n open={isOpen}\n openPopover={openPopover}\n onChange={onSingleChange}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue as T | undefined}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n onLoadMore={onLoadMore}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n );\n};\n\nexport const MultiSearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n labelId,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n selectRenderElements,\n startSlot,\n value,\n}: MultiSearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader\n label={label}\n isRequired={isRequired}\n hideHintLabel={hideHintLabel}\n labelId={labelId}\n />\n ) : null}\n <div ref={triggerRef}>\n <MultipleValuesButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n onChange={onMultiChange}\n open={isOpen}\n openPopover={openPopover}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onMultiChange={onMultiChange}\n value={selectedValue}\n placement={placement}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n />\n </div>\n );\n};\n\nexport const SearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = false, // TODO: ask about it\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: SearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n onPress: () => openPopover(),\n isDisabled: isDisabled || fieldGroupIsDisabled,\n },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onLoadMore={onLoadMore}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n </Provider>\n );\n};\n\nexport const MultiSearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = true,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: MultiSearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n { onPress: () => openPopover(), isDisabled: isDisabled || fieldGroupIsDisabled },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onLoadMore={onLoadMore}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n value={selectedValue}\n onMultiChange={onMultiChange}\n placement={placement}\n />\n </div>\n </Provider>\n );\n};\n"],"names":["SingleValueButton","disableClearLogic","endSlot","fullWidth","getLabel","isDisabled","isInvalid","onChange","open","openPopover","placeholder","renderCustomElementInValueButton","searchInputRef","selectRenderElements","startSlot","value","buttonExcludedFromTabOrder","inputField","sharedInputStyles","onKeyDown","e","flushSync","jsxs","AriaButton","isFocused","isHovered","_a","Text","jsx","Fragment","SvgIcon","MultipleValuesButton","getItemId","label","inputFieldStyles","useCallback","onRemove","keys","item","itemId","Group","clsx","InputTagGroup","InputTag","SearchInput","isLoading","onQueryChange","query","setQuery","id","useId","clear","search","useDictionary","showSpinner","useSpinDelay","useEffect","Input","_b","event","Spinner","useLoadMoreHook","loadMoreButtonRef","useRef","isLoadMoreButtonFocused","setIsLoadMoreButtonFocused","useState","useItemSelection","disabledItemIdKeys","filteredItems","onMultiChange","onSingleChange","selectedItemIndex","useMemo","getPreviousItemIndex","activeIndex","i","getNextItemIndex","toggleSelection","currentValue","currentValueIds","newValue","v","getItemIsSelected","subValue","activeItem","setActiveItem","mousePosition","useMousePosition","previousMousePosition","currentActiveIndex","safeNextIndex","safePreviousIndex","onHoverChange","isHovering","index","SelectedItem","SearchListFieldItems","direction","items","onLoadMore","placement","setOpenPopover","triggerRef","loadMore","noResultsFound","useFilterItemsByQuery","itemStyles","sharedListItemStyles","triggerRefWidth","setTriggerRefWidth","useEventListener","triggerWidth","parentRef","count","virtualizer","useVirtualizer","virtualItems","Popover","_c","virtualItem","Separator","SharedListItem","UncontrolledInputs","name","SearchListField","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","outerEndSlot","outerStartSlot","fieldGroupIsDisabled","useContext","FieldGroupContext","comboBoxButtonRef","internalValue","setInternalValue","isOpen","setIsOpen","closePopover","useLocale","hasInputHeader","shouldRenderInputHeader","hasInputFooter","shouldRenderInputFooter","outerSlot","outerSlotsWrapper","wrapper","selectedValue","InputHeader","InputFooter","MultiSearchListField","labelId","SearchListFieldWithCustomTrigger","children","Provider","ButtonContext","MultiSearchListFieldWithCustomTrigger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lyra37.cjs","sources":["../src/components/inputs/search-list-field/search-list-field.tsx"],"sourcesContent":["import {\n CSSProperties,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Button as AriaButton,\n ButtonContext,\n Group,\n Input,\n Key,\n Provider,\n} from \"react-aria-components\";\nimport { flushSync } from \"react-dom\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport clsx from \"clsx\";\n\nimport { Separator, Spinner, useLocale, useSpinDelay } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { useFilterItemsByQuery } from \"../../../utils/hooks/use-filter-items-by-query\";\nimport { useMousePosition } from \"../../../utils/hooks/use-mouse-position\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { sharedListItemStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\nimport { shouldRenderInputFooter, shouldRenderInputHeader } from \"../shared/helpers\";\n\nimport {\n MultiSearchListFieldProps,\n MultiSearchListFieldWithCustomTriggerProps,\n SearchInputProps,\n SearchListFieldItemsProps,\n SearchListFieldProps,\n SearchListFieldWithCustomTriggerProps,\n ValueButton,\n} from \"./seach-list-field.types\";\n\nconst SingleValueButton = <T extends object>({\n disableClearLogic,\n endSlot,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n open,\n openPopover,\n placeholder,\n renderCustomElementInValueButton,\n searchInputRef,\n selectRenderElements,\n startSlot,\n value,\n}: ValueButton<T>) => {\n const { buttonExcludedFromTabOrder, inputField } = sharedInputStyles({\n isInvalid: isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n e.stopPropagation();\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover?.();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover?.();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n };\n\n return (\n <div className=\"flex items-center gap-2\">\n {startSlot}\n <AriaButton\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n className={({ isFocused, isHovered }) =>\n inputField({\n isHovered,\n isFocused,\n className: \"min-h-8 grow\",\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={openPopover}\n >\n <div className=\"flex grow truncate text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value && getLabel(value) ? (\n <>{getLabel(value)}</>\n ) : (\n <Text variant=\"body-medium\" color=\"secondary\">\n {placeholder}\n </Text>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !isDisabled && !disableClearLogic ? (\n <>\n <div\n className={buttonExcludedFromTabOrder()}\n role=\"button\"\n onPointerDown={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4\" />\n </div>\n </AriaButton>\n {endSlot}\n </div>\n );\n};\n\nconst MultipleValuesButton = <T extends object>({\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n openPopover,\n placeholder,\n searchInputRef,\n value,\n}: Omit<\n ValueButton<T>,\n \"value\" | \"onChange\" | \"selectRenderElements\" | \"renderCustomElementInValueButton\"\n> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n isInputOnly: false,\n });\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n },\n [openPopover, searchInputRef],\n );\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n return (\n <Group\n className={({ isFocusWithin: isFocused, isHovered }) =>\n inputFieldStyles({\n isHovered,\n isFocused,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"has:[data-focused]:border has:[data-focused]:border-focus\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n >\n <AriaButton\n onPress={openPopover}\n onKeyDown={onKeyDown}\n isDisabled={isDisabled}\n className=\"flex w-full outline-none\"\n >\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem] items-center\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-[16px]\" />\n </AriaButton>\n </Group>\n );\n};\n\nconst SearchInput = ({\n endSlot,\n isLoading,\n onKeyDown,\n onQueryChange,\n query,\n searchInputRef,\n setQuery,\n}: SearchInputProps & { onKeyDown: KeyboardEventHandler<HTMLInputElement> | undefined }) => {\n const id = useId();\n const { clear, search } = useDictionary();\n const showSpinner = useSpinDelay(isLoading ?? false, { delay: 500, minDuration: 200 });\n const { buttonExcludedFromTabOrder } = sharedInputStyles({ fullWidth: true });\n\n useEffect(() => {\n searchInputRef.current?.focus();\n // only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div className=\"pb-1\">\n <div className=\"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5\">\n <Input\n ref={searchInputRef}\n id={id}\n className=\"w-full bg-transparent text-base outline-none placeholder:text-tertiary\"\n onChange={(e) => {\n setQuery(e.target?.value ?? \"\");\n onQueryChange?.(e.target?.value as any);\n }}\n placeholder={search}\n value={query ?? \"\"}\n onKeyDown={(event) => {\n // Prevent selection of an item on Tab key down event\n if (event.code === \"Tab\") {\n event.preventDefault();\n }\n\n onKeyDown?.(event);\n }}\n />\n {query && query.length ? (\n <AriaButton\n aria-label={clear}\n className={buttonExcludedFromTabOrder()}\n excludeFromTabOrder\n onPress={() => {\n setQuery(\"\");\n searchInputRef.current?.focus();\n }}\n >\n <SvgIcon name=\"clear\" />\n </AriaButton>\n ) : null}\n {endSlot}\n {showSpinner ? <Spinner className=\"mx-2\" size=\"small\" /> : null}\n </div>\n </div>\n );\n};\n\nconst useLoadMoreHook = (open: boolean) => {\n const loadMoreButtonRef = useRef<HTMLButtonElement | null>(null);\n const [isLoadMoreButtonFocused, setIsLoadMoreButtonFocused] = useState(false);\n\n // Reset focused state as the popover opens / closes\n useEffect(() => setIsLoadMoreButtonFocused(false), [open]);\n return { loadMoreButtonRef, isLoadMoreButtonFocused, setIsLoadMoreButtonFocused };\n};\n\ntype UseItemSelectionProps<T> = {\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n onSingleChange?: (value?: T) => void;\n onMultiChange?: (value?: T[]) => void;\n getItemId: (item: T) => Key;\n value?: T | T[];\n loadMoreButtonRef: RefObject<HTMLButtonElement>;\n};\n\nconst useItemSelection = <T extends object>({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value)) ?? 0;\n }\n }, [filteredItems, getItemId, value]);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = !value ? [] : [...(value as T[])];\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(0);\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation when the searchinput is focused.\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Enter\") {\n toggleSelection(filteredItems[activeItem]);\n }\n },\n [\n activeItem,\n filteredItems,\n getNextItemIndex,\n getPreviousItemIndex,\n mousePosition,\n toggleSelection,\n ],\n );\n\n // Handles onHoverChange event for the search list field items\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n return {\n activeItem,\n setActiveItem,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\n// Component that only gets rendered when popover is open.\n// This way we can set the active item when the popover opens and make sure the selected item will become active.\n// When closing the popover, the active item will be reset to 0.\nconst SelectedItem = ({\n selectedItemIndex,\n setActiveItem,\n}: {\n selectedItemIndex?: number;\n setActiveItem: (value: number) => void;\n}) => {\n useEffect(() => {\n if (selectedItemIndex !== undefined && selectedItemIndex >= 0) {\n setActiveItem(selectedItemIndex);\n\n return () => {\n setActiveItem(0);\n };\n }\n }, [selectedItemIndex, setActiveItem]);\n return null;\n};\n\nconst SearchListFieldItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isLoading,\n items,\n label,\n onLoadMore,\n onMultiChange,\n onQueryChange,\n onSingleChange,\n open,\n placement,\n searchInputRef,\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SearchListFieldItemsProps<T>) => {\n const { loadMore, noResultsFound } = useDictionary();\n const { filteredItems, query, setQuery } = useFilterItemsByQuery<T>({\n getLabel,\n items,\n onQueryChange,\n });\n const { item: itemStyles } = sharedListItemStyles();\n const { isLoadMoreButtonFocused, loadMoreButtonRef, setIsLoadMoreButtonFocused } =\n useLoadMoreHook(open);\n\n const {\n activeItem,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n selectedItemIndex,\n setActiveItem,\n toggleSelection,\n } = useItemSelection({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n value,\n });\n\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n const count = onLoadMore ? (filteredItems?.length ?? 0) + 1 : filteredItems?.length ?? 0;\n\n const virtualizer = useVirtualizer({\n count,\n estimateSize: () => 40,\n getScrollElement: () => parentRef.current,\n overscan: 6,\n });\n\n // Make sure we scroll to the activeItem if it changes.\n useEffect(() => {\n if (activeItem !== undefined && activeItem >= 0 && filteredItems?.length) {\n // if it's the last filtered item and a load more button is present, scroll to the load more button into view as well.\n if (activeItem === filteredItems.length - 1 && onLoadMore) {\n virtualizer.scrollToIndex(count);\n } else {\n virtualizer.scrollToIndex(Math.min(activeItem, count - 1));\n }\n }\n }, [activeItem, count, filteredItems.length, onLoadMore, virtualizer]);\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n disablePadding\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n aria-label={label}\n shouldUpdatePosition\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <div className=\"gap-1\">\n <SearchInput\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n query={query}\n setQuery={(value) => {\n // Reset active item when query changes and set the query.\n // Using flushSync to make sure scroll to offset is called after the active item is set.\n flushSync(() => {\n setQuery(value);\n setActiveItem(0);\n });\n\n virtualizer.scrollToOffset(0);\n }}\n searchInputRef={searchInputRef}\n onKeyDown={onKeyDown}\n />\n <SelectedItem selectedItemIndex={selectedItemIndex} setActiveItem={setActiveItem} />\n <div\n ref={parentRef}\n className=\"w-full overflow-y-auto\"\n style={{\n contain: \"strict\",\n height: Math.min(288, virtualizer.getTotalSize() + (onLoadMore ? 4 : 0)),\n }}\n >\n <div\n className=\"relative w-full\"\n style={{\n height: virtualizer.getTotalSize(),\n }}\n >\n <div\n className=\"absolute start-0 top-0 w-full\"\n style={{\n transform: `translateY(${virtualItems?.[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualItem) => {\n const itemIsLastOfIndex = virtualItem.index === count - 1;\n\n if (itemIsLastOfIndex && onLoadMore) {\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <div>\n <Separator className=\"my-1\" />\n <AriaButton\n isDisabled={isLoading}\n onFocusChange={setIsLoadMoreButtonFocused}\n onHoverChange={setIsLoadMoreButtonFocused}\n ref={loadMoreButtonRef}\n className={itemStyles({\n className:\n \"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]\",\n })}\n onPress={() => {\n onLoadMore();\n\n // Focus input after loading more items\n searchInputRef.current?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n searchInputRef.current?.focus();\n }\n }}\n >\n {loadMore}\n </AriaButton>\n </div>\n </div>\n );\n } else {\n const item = filteredItems[virtualItem.index];\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <AriaButton\n key={getItemId(item)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n onPress={() => toggleSelection(item)}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n excludeFromTabOrder\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active: activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </AriaButton>\n </div>\n );\n }\n })}\n </div>\n </div>\n </div>\n {count ? null : (\n <Text variant=\"body-medium\" color=\"secondary\" className=\"px-2.5\">\n {noResultsFound}\n </Text>\n )}\n </div>\n ) : null}\n </Popover>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\nexport const SearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n renderCustomElementInValueButton,\n selectRenderElements,\n startSlot,\n value,\n}: SearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader label={label} hideHintLabel={hideHintLabel} isRequired={isRequired} />\n ) : null}\n <div ref={triggerRef}>\n <SingleValueButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid || !!errorMessage}\n open={isOpen}\n openPopover={openPopover}\n onChange={onSingleChange}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue as T | undefined}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n onLoadMore={onLoadMore}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n );\n};\n\nexport const MultiSearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n labelId,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n outerEndSlot,\n outerStartSlot,\n placeholder,\n placement = \"bottom start\",\n selectRenderElements,\n startSlot,\n value,\n}: MultiSearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const hasInputHeader = useMemo(\n () => shouldRenderInputHeader({ hideHintLabel, hideInputHeader, label }),\n [hideHintLabel, hideInputHeader, label],\n );\n\n const hasInputFooter = useMemo(\n () => shouldRenderInputFooter({ description, errorMessage, hideInputFooter }),\n [description, errorMessage, hideInputFooter],\n );\n\n const { outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n hasInputHeader,\n hasLabel: !!label,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <div className={wrapper()}>\n {hasInputHeader ? (\n <InputHeader\n label={label}\n isRequired={isRequired}\n hideHintLabel={hideHintLabel}\n labelId={labelId}\n />\n ) : null}\n <div ref={triggerRef}>\n <MultipleValuesButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid || !!errorMessage}\n onChange={onMultiChange}\n open={isOpen}\n openPopover={openPopover}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue}\n />\n </div>\n {hasInputFooter ? (\n <InputFooter description={description} errorMessage={errorMessage} />\n ) : null}\n </div>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onMultiChange={onMultiChange}\n value={selectedValue}\n placement={placement}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n />\n </div>\n );\n};\n\nexport const SearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = false, // TODO: ask about it\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: SearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n onPress: () => openPopover(),\n isDisabled: isDisabled || fieldGroupIsDisabled,\n },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onLoadMore={onLoadMore}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n </Provider>\n );\n};\n\nexport const MultiSearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = true,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: MultiSearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n { onPress: () => openPopover(), isDisabled: isDisabled || fieldGroupIsDisabled },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onLoadMore={onLoadMore}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n value={selectedValue}\n onMultiChange={onMultiChange}\n placement={placement}\n />\n </div>\n </Provider>\n );\n};\n"],"names":["SingleValueButton","disableClearLogic","endSlot","fullWidth","getLabel","isDisabled","isInvalid","onChange","open","openPopover","placeholder","renderCustomElementInValueButton","searchInputRef","selectRenderElements","startSlot","value","buttonExcludedFromTabOrder","inputField","sharedInputStyles","onKeyDown","e","flushSync","jsxs","AriaButton","isFocused","isHovered","_a","Text","jsx","Fragment","SvgIcon","MultipleValuesButton","getItemId","label","inputFieldStyles","useCallback","onRemove","keys","item","itemId","Group","clsx","InputTagGroup","InputTag","SearchInput","isLoading","onQueryChange","query","setQuery","id","useId","clear","search","useDictionary","showSpinner","useSpinDelay","useEffect","Input","_b","event","Spinner","useLoadMoreHook","loadMoreButtonRef","useRef","isLoadMoreButtonFocused","setIsLoadMoreButtonFocused","useState","useItemSelection","disabledItemIdKeys","filteredItems","onMultiChange","onSingleChange","selectedItemIndex","useMemo","getPreviousItemIndex","activeIndex","i","getNextItemIndex","toggleSelection","currentValue","currentValueIds","newValue","v","getItemIsSelected","subValue","activeItem","setActiveItem","mousePosition","useMousePosition","previousMousePosition","currentActiveIndex","safeNextIndex","safePreviousIndex","onHoverChange","isHovering","index","SelectedItem","SearchListFieldItems","direction","items","onLoadMore","placement","setOpenPopover","triggerRef","loadMore","noResultsFound","useFilterItemsByQuery","itemStyles","sharedListItemStyles","triggerRefWidth","setTriggerRefWidth","useEventListener","triggerWidth","parentRef","count","virtualizer","useVirtualizer","virtualItems","Popover","_c","virtualItem","Separator","SharedListItem","UncontrolledInputs","name","SearchListField","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","outerEndSlot","outerStartSlot","fieldGroupIsDisabled","useContext","FieldGroupContext","comboBoxButtonRef","internalValue","setInternalValue","isOpen","setIsOpen","closePopover","useLocale","hasInputHeader","shouldRenderInputHeader","hasInputFooter","shouldRenderInputFooter","outerSlot","outerSlotsWrapper","wrapper","selectedValue","InputHeader","InputFooter","MultiSearchListField","labelId","SearchListFieldWithCustomTrigger","children","Provider","ButtonContext","MultiSearchListFieldWithCustomTrigger"],"mappings":"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"}
|