@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/lyra37.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra37.js","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.js","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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"}
|
package/dist/lyra40.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lyra455.cjs"),t=e.tv({slots:{outerSlotsWrapper:["flex gap-2"],wrapper:["flex flex-col"],outerSlot:[],inputHeader:["flex","items-baseline","gap-1","mb-1"],label:["text-base","font-semibold","transition-all","ease-out","duration-150"],hint:["text-sm","text-tertiary"],inputField:["flex","items-center","outline-none","border","border-solid","border-default","rounded","font-sans","text-base","transition-all","ease-out","duration-150","placeholder:text-tertiary"],input:["w-full","flex-grow","outline-none","disabled:cursor-not-allowed","text-base","bg-transparent","min-h-[1.875rem]"],errorMessage:["text-error","text-sm","mt-1"],description:["text-sm","text-secondary","mt-1"],buttonExcludedFromTabOrder:["outline-none","text-secondary","animate-in","zoom-in","duration-200"],button:["outline-none box-border rounded-xxs focus-visible:bg-action-highlight focus-visible:shadow-highlight"]},variants:{fullWidth:{true:{wrapper:"w-full",inputField:"w-full"},false:{wrapper:"w-fit",inputField:"w-fit"}},isDisabled:{true:{inputField:"bg-surface-secondary text-secondary placeholder:text-tertiary cursor-not-allowed"},false:{inputField:"bg-surface-primary text-primary shadow-inner"}},isInvalid:{true:{inputField:"border-error"}},isHovered:{true:{}},isFocused:{true:{inputField:"!border-focus !shadow-highlight-and-inner"}},hasEndSlot:{true:{inputField:"pe-2"}},hasStartSlot:{true:{inputField:"ps-2"}},hasLabel:{true:{}},hasInputHeader:{true:{}},isInputOnly:{true:{input:"px-2.5"},false:{inputField:"px-2.5"}}},compoundVariants:[{isDisabled:!1,isFocused:!1,isInvalid:!1,isHovered:!0,className:{inputField:"!border-hover"}},{hasInputHeader:!0,hasLabel:!0,className:{outerSlot:"pt-5"}},{hasInputHeader:!0,hasLabel:!1,className:{outerSlot:"pt-[1.0625rem]"}},{}],defaultVariants:{isDisabled:!1,fullWidth:!0,isInputOnly:!0}});exports.sharedInputStyles=t;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lyra455.cjs"),t=e.tv({slots:{outerSlotsWrapper:["flex gap-2"],wrapper:["flex flex-col"],outerSlot:[],inputHeader:["flex","items-baseline","gap-1","mb-1"],label:["text-base","font-semibold","transition-all","ease-out","duration-150"],hint:["text-sm","text-tertiary"],inputField:["flex","items-center","outline-none","border","border-solid","border-default","rounded","font-sans","text-base","transition-all","ease-out","duration-150","placeholder:text-tertiary"],input:["w-full","flex-grow","outline-none","disabled:cursor-not-allowed","text-base","bg-transparent","min-h-[1.875rem]"],errorMessage:["text-error","text-sm","mt-1"],description:["text-sm","text-secondary","mt-1"],buttonExcludedFromTabOrder:["outline-none","text-secondary","animate-in","zoom-in","duration-200"],button:["outline-none box-border rounded-xxs focus-visible:bg-action-highlight focus-visible:shadow-highlight"]},variants:{fullWidth:{true:{wrapper:"w-full",inputField:"w-full",outerSlotsWrapper:"w-full"},false:{wrapper:"w-fit",inputField:"w-fit",outerSlotsWrapper:"w-fit"}},isDisabled:{true:{inputField:"bg-surface-secondary text-secondary placeholder:text-tertiary cursor-not-allowed"},false:{inputField:"bg-surface-primary text-primary shadow-inner"}},isInvalid:{true:{inputField:"border-error"}},isHovered:{true:{}},isFocused:{true:{inputField:"!border-focus !shadow-highlight-and-inner"}},hasEndSlot:{true:{inputField:"pe-2"}},hasStartSlot:{true:{inputField:"ps-2"}},hasLabel:{true:{}},hasInputHeader:{true:{}},isInputOnly:{true:{input:"px-2.5"},false:{inputField:"px-2.5"}}},compoundVariants:[{isDisabled:!1,isFocused:!1,isInvalid:!1,isHovered:!0,className:{inputField:"!border-hover"}},{hasInputHeader:!0,hasLabel:!0,className:{outerSlot:"pt-5"}},{hasInputHeader:!0,hasLabel:!1,className:{outerSlot:"pt-[1.0625rem]"}},{}],defaultVariants:{isDisabled:!1,fullWidth:!0,isInputOnly:!0}});exports.sharedInputStyles=t;
|
package/dist/lyra40.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra40.cjs","sources":["../src/components/inputs/shared/styles.ts"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\nexport const sharedInputStyles = tv({\n slots: {\n /** Wrapper of the field components and the outer slots. */\n outerSlotsWrapper: [\"flex gap-2\"],\n /** Wrapper of the field-related components (the field itself, label, description). */\n wrapper: [\"flex flex-col\"],\n outerSlot: [],\n inputHeader: [\"flex\", \"items-baseline\", \"gap-1\", \"mb-1\"],\n label: [\"text-base\", \"font-semibold\", \"transition-all\", \"ease-out\", \"duration-150\"],\n hint: [\"text-sm\", \"text-tertiary\"],\n inputField: [\n \"flex\",\n \"items-center\",\n \"outline-none\",\n \"border\",\n \"border-solid\",\n \"border-default\",\n \"rounded\",\n \"font-sans\",\n \"text-base\",\n \"transition-all\",\n \"ease-out\",\n \"duration-150\",\n \"placeholder:text-tertiary\",\n ],\n input: [\n \"w-full\",\n \"flex-grow\",\n \"outline-none\",\n \"disabled:cursor-not-allowed\",\n \"text-base\",\n \"bg-transparent\",\n \"min-h-[1.875rem]\",\n ],\n errorMessage: [\"text-error\", \"text-sm\", \"mt-1\"],\n description: [\"text-sm\", \"text-secondary\", \"mt-1\"],\n buttonExcludedFromTabOrder: [\n \"outline-none\",\n \"text-secondary\",\n \"animate-in\",\n \"zoom-in\",\n \"duration-200\",\n ],\n button: [\n \"outline-none box-border rounded-xxs focus-visible:bg-action-highlight focus-visible:shadow-highlight\",\n ],\n },\n variants: {\n fullWidth: {\n true: {\n wrapper: \"w-full\",\n inputField: \"w-full\",\n },\n false: {\n wrapper: \"w-fit\",\n inputField: \"w-fit\",\n },\n },\n isDisabled: {\n true: {\n inputField:\n \"bg-surface-secondary text-secondary placeholder:text-tertiary cursor-not-allowed\",\n },\n false: {\n inputField: \"bg-surface-primary text-primary shadow-inner\",\n },\n },\n isInvalid: {\n true: {\n inputField: \"border-error\",\n },\n },\n isHovered: {\n true: {},\n },\n isFocused: {\n true: {\n inputField: \"!border-focus !shadow-highlight-and-inner\",\n },\n },\n hasEndSlot: {\n true: {\n inputField: \"pe-2\",\n },\n },\n hasStartSlot: {\n true: {\n inputField: \"ps-2\",\n },\n },\n hasLabel: {\n true: {},\n },\n hasInputHeader: {\n true: {},\n },\n /**\n * This variant should be set to `true` if the field only contains an input element (and it is not a custom input-like component\n * such as `SearchListField`, `Select`, `TagInput` or date / time pickers).\n */\n isInputOnly: {\n true: {\n input: \"px-2.5\",\n },\n false: {\n inputField: \"px-2.5\",\n },\n },\n },\n compoundVariants: [\n {\n isDisabled: false,\n isFocused: false,\n isInvalid: false,\n isHovered: true,\n className: {\n inputField: \"!border-hover\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: true,\n className: {\n outerSlot: \"pt-5\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: false,\n className: {\n outerSlot: \"pt-[1.0625rem]\",\n },\n },\n {},\n ],\n defaultVariants: {\n isDisabled: false,\n fullWidth: true,\n isInputOnly: true,\n },\n});\n"],"names":["sharedInputStyles","tv"],"mappings":"iHAEaA,EAAoBC,EAAAA,GAAG,CAClC,MAAO,CAEL,kBAAmB,CAAC,YAAY,EAEhC,QAAS,CAAC,eAAe,EACzB,UAAW,CAAC,EACZ,YAAa,CAAC,OAAQ,iBAAkB,QAAS,MAAM,EACvD,MAAO,CAAC,YAAa,gBAAiB,iBAAkB,WAAY,cAAc,EAClF,KAAM,CAAC,UAAW,eAAe,EACjC,WAAY,CACV,OACA,eACA,eACA,SACA,eACA,iBACA,UACA,YACA,YACA,iBACA,WACA,eACA,2BACF,EACA,MAAO,CACL,SACA,YACA,eACA,8BACA,YACA,iBACA,kBACF,EACA,aAAc,CAAC,aAAc,UAAW,MAAM,EAC9C,YAAa,CAAC,UAAW,iBAAkB,MAAM,EACjD,2BAA4B,CAC1B,eACA,iBACA,aACA,UACA,cACF,EACA,OAAQ,CACN,sGACF,CACF,EACA,SAAU,CACR,UAAW,CACT,KAAM,CACJ,QAAS,SACT,WAAY,
|
|
1
|
+
{"version":3,"file":"lyra40.cjs","sources":["../src/components/inputs/shared/styles.ts"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\nexport const sharedInputStyles = tv({\n slots: {\n /** Wrapper of the field components and the outer slots. */\n outerSlotsWrapper: [\"flex gap-2\"],\n /** Wrapper of the field-related components (the field itself, label, description). */\n wrapper: [\"flex flex-col\"],\n outerSlot: [],\n inputHeader: [\"flex\", \"items-baseline\", \"gap-1\", \"mb-1\"],\n label: [\"text-base\", \"font-semibold\", \"transition-all\", \"ease-out\", \"duration-150\"],\n hint: [\"text-sm\", \"text-tertiary\"],\n inputField: [\n \"flex\",\n \"items-center\",\n \"outline-none\",\n \"border\",\n \"border-solid\",\n \"border-default\",\n \"rounded\",\n \"font-sans\",\n \"text-base\",\n \"transition-all\",\n \"ease-out\",\n \"duration-150\",\n \"placeholder:text-tertiary\",\n ],\n input: [\n \"w-full\",\n \"flex-grow\",\n \"outline-none\",\n \"disabled:cursor-not-allowed\",\n \"text-base\",\n \"bg-transparent\",\n \"min-h-[1.875rem]\",\n ],\n errorMessage: [\"text-error\", \"text-sm\", \"mt-1\"],\n description: [\"text-sm\", \"text-secondary\", \"mt-1\"],\n buttonExcludedFromTabOrder: [\n \"outline-none\",\n \"text-secondary\",\n \"animate-in\",\n \"zoom-in\",\n \"duration-200\",\n ],\n button: [\n \"outline-none box-border rounded-xxs focus-visible:bg-action-highlight focus-visible:shadow-highlight\",\n ],\n },\n variants: {\n fullWidth: {\n true: {\n wrapper: \"w-full\",\n inputField: \"w-full\",\n outerSlotsWrapper: \"w-full\",\n },\n false: {\n wrapper: \"w-fit\",\n inputField: \"w-fit\",\n outerSlotsWrapper: \"w-fit\",\n },\n },\n isDisabled: {\n true: {\n inputField:\n \"bg-surface-secondary text-secondary placeholder:text-tertiary cursor-not-allowed\",\n },\n false: {\n inputField: \"bg-surface-primary text-primary shadow-inner\",\n },\n },\n isInvalid: {\n true: {\n inputField: \"border-error\",\n },\n },\n isHovered: {\n true: {},\n },\n isFocused: {\n true: {\n inputField: \"!border-focus !shadow-highlight-and-inner\",\n },\n },\n hasEndSlot: {\n true: {\n inputField: \"pe-2\",\n },\n },\n hasStartSlot: {\n true: {\n inputField: \"ps-2\",\n },\n },\n hasLabel: {\n true: {},\n },\n hasInputHeader: {\n true: {},\n },\n /**\n * This variant should be set to `true` if the field only contains an input element (and it is not a custom input-like component\n * such as `SearchListField`, `Select`, `TagInput` or date / time pickers).\n */\n isInputOnly: {\n true: {\n input: \"px-2.5\",\n },\n false: {\n inputField: \"px-2.5\",\n },\n },\n },\n compoundVariants: [\n {\n isDisabled: false,\n isFocused: false,\n isInvalid: false,\n isHovered: true,\n className: {\n inputField: \"!border-hover\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: true,\n className: {\n outerSlot: \"pt-5\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: false,\n className: {\n outerSlot: \"pt-[1.0625rem]\",\n },\n },\n {},\n ],\n defaultVariants: {\n isDisabled: false,\n fullWidth: true,\n isInputOnly: true,\n },\n});\n"],"names":["sharedInputStyles","tv"],"mappings":"iHAEaA,EAAoBC,EAAAA,GAAG,CAClC,MAAO,CAEL,kBAAmB,CAAC,YAAY,EAEhC,QAAS,CAAC,eAAe,EACzB,UAAW,CAAC,EACZ,YAAa,CAAC,OAAQ,iBAAkB,QAAS,MAAM,EACvD,MAAO,CAAC,YAAa,gBAAiB,iBAAkB,WAAY,cAAc,EAClF,KAAM,CAAC,UAAW,eAAe,EACjC,WAAY,CACV,OACA,eACA,eACA,SACA,eACA,iBACA,UACA,YACA,YACA,iBACA,WACA,eACA,2BACF,EACA,MAAO,CACL,SACA,YACA,eACA,8BACA,YACA,iBACA,kBACF,EACA,aAAc,CAAC,aAAc,UAAW,MAAM,EAC9C,YAAa,CAAC,UAAW,iBAAkB,MAAM,EACjD,2BAA4B,CAC1B,eACA,iBACA,aACA,UACA,cACF,EACA,OAAQ,CACN,sGACF,CACF,EACA,SAAU,CACR,UAAW,CACT,KAAM,CACJ,QAAS,SACT,WAAY,SACZ,kBAAmB,QACrB,EACA,MAAO,CACL,QAAS,QACT,WAAY,QACZ,kBAAmB,OACrB,CACF,EACA,WAAY,CACV,KAAM,CACJ,WACE,kFACJ,EACA,MAAO,CACL,WAAY,8CACd,CACF,EACA,UAAW,CACT,KAAM,CACJ,WAAY,cACd,CACF,EACA,UAAW,CACT,KAAM,CAAC,CACT,EACA,UAAW,CACT,KAAM,CACJ,WAAY,2CACd,CACF,EACA,WAAY,CACV,KAAM,CACJ,WAAY,MACd,CACF,EACA,aAAc,CACZ,KAAM,CACJ,WAAY,MACd,CACF,EACA,SAAU,CACR,KAAM,CAAC,CACT,EACA,eAAgB,CACd,KAAM,CAAC,CACT,EAKA,YAAa,CACX,KAAM,CACJ,MAAO,QACT,EACA,MAAO,CACL,WAAY,QACd,CACF,CACF,EACA,iBAAkB,CAChB,CACE,WAAY,GACZ,UAAW,GACX,UAAW,GACX,UAAW,GACX,UAAW,CACT,WAAY,eACd,CACF,EACA,CACE,eAAgB,GAChB,SAAU,GACV,UAAW,CACT,UAAW,MACb,CACF,EACA,CACE,eAAgB,GAChB,SAAU,GACV,UAAW,CACT,UAAW,gBACb,CACF,EACA,CAAC,CACH,EACA,gBAAiB,CACf,WAAY,GACZ,UAAW,GACX,YAAa,EACf,CACF,CAAC"}
|
package/dist/lyra40.js
CHANGED
|
@@ -50,11 +50,13 @@ const r = e({
|
|
|
50
50
|
fullWidth: {
|
|
51
51
|
true: {
|
|
52
52
|
wrapper: "w-full",
|
|
53
|
-
inputField: "w-full"
|
|
53
|
+
inputField: "w-full",
|
|
54
|
+
outerSlotsWrapper: "w-full"
|
|
54
55
|
},
|
|
55
56
|
false: {
|
|
56
57
|
wrapper: "w-fit",
|
|
57
|
-
inputField: "w-fit"
|
|
58
|
+
inputField: "w-fit",
|
|
59
|
+
outerSlotsWrapper: "w-fit"
|
|
58
60
|
}
|
|
59
61
|
},
|
|
60
62
|
isDisabled: {
|
package/dist/lyra40.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra40.js","sources":["../src/components/inputs/shared/styles.ts"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\nexport const sharedInputStyles = tv({\n slots: {\n /** Wrapper of the field components and the outer slots. */\n outerSlotsWrapper: [\"flex gap-2\"],\n /** Wrapper of the field-related components (the field itself, label, description). */\n wrapper: [\"flex flex-col\"],\n outerSlot: [],\n inputHeader: [\"flex\", \"items-baseline\", \"gap-1\", \"mb-1\"],\n label: [\"text-base\", \"font-semibold\", \"transition-all\", \"ease-out\", \"duration-150\"],\n hint: [\"text-sm\", \"text-tertiary\"],\n inputField: [\n \"flex\",\n \"items-center\",\n \"outline-none\",\n \"border\",\n \"border-solid\",\n \"border-default\",\n \"rounded\",\n \"font-sans\",\n \"text-base\",\n \"transition-all\",\n \"ease-out\",\n \"duration-150\",\n \"placeholder:text-tertiary\",\n ],\n input: [\n \"w-full\",\n \"flex-grow\",\n \"outline-none\",\n \"disabled:cursor-not-allowed\",\n \"text-base\",\n \"bg-transparent\",\n \"min-h-[1.875rem]\",\n ],\n errorMessage: [\"text-error\", \"text-sm\", \"mt-1\"],\n description: [\"text-sm\", \"text-secondary\", \"mt-1\"],\n buttonExcludedFromTabOrder: [\n \"outline-none\",\n \"text-secondary\",\n \"animate-in\",\n \"zoom-in\",\n \"duration-200\",\n ],\n button: [\n \"outline-none box-border rounded-xxs focus-visible:bg-action-highlight focus-visible:shadow-highlight\",\n ],\n },\n variants: {\n fullWidth: {\n true: {\n wrapper: \"w-full\",\n inputField: \"w-full\",\n },\n false: {\n wrapper: \"w-fit\",\n inputField: \"w-fit\",\n },\n },\n isDisabled: {\n true: {\n inputField:\n \"bg-surface-secondary text-secondary placeholder:text-tertiary cursor-not-allowed\",\n },\n false: {\n inputField: \"bg-surface-primary text-primary shadow-inner\",\n },\n },\n isInvalid: {\n true: {\n inputField: \"border-error\",\n },\n },\n isHovered: {\n true: {},\n },\n isFocused: {\n true: {\n inputField: \"!border-focus !shadow-highlight-and-inner\",\n },\n },\n hasEndSlot: {\n true: {\n inputField: \"pe-2\",\n },\n },\n hasStartSlot: {\n true: {\n inputField: \"ps-2\",\n },\n },\n hasLabel: {\n true: {},\n },\n hasInputHeader: {\n true: {},\n },\n /**\n * This variant should be set to `true` if the field only contains an input element (and it is not a custom input-like component\n * such as `SearchListField`, `Select`, `TagInput` or date / time pickers).\n */\n isInputOnly: {\n true: {\n input: \"px-2.5\",\n },\n false: {\n inputField: \"px-2.5\",\n },\n },\n },\n compoundVariants: [\n {\n isDisabled: false,\n isFocused: false,\n isInvalid: false,\n isHovered: true,\n className: {\n inputField: \"!border-hover\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: true,\n className: {\n outerSlot: \"pt-5\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: false,\n className: {\n outerSlot: \"pt-[1.0625rem]\",\n },\n },\n {},\n ],\n defaultVariants: {\n isDisabled: false,\n fullWidth: true,\n isInputOnly: true,\n },\n});\n"],"names":["sharedInputStyles","tv"],"mappings":";AAEO,MAAMA,IAAoBC,EAAG;AAAA,EAClC,OAAO;AAAA;AAAA,IAEL,mBAAmB,CAAC,YAAY;AAAA;AAAA,IAEhC,SAAS,CAAC,eAAe;AAAA,IACzB,WAAW,CAAC;AAAA,IACZ,aAAa,CAAC,QAAQ,kBAAkB,SAAS,MAAM;AAAA,IACvD,OAAO,CAAC,aAAa,iBAAiB,kBAAkB,YAAY,cAAc;AAAA,IAClF,MAAM,CAAC,WAAW,eAAe;AAAA,IACjC,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,cAAc,CAAC,cAAc,WAAW,MAAM;AAAA,IAC9C,aAAa,CAAC,WAAW,kBAAkB,MAAM;AAAA,IACjD,4BAA4B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,YAAY;AAAA,
|
|
1
|
+
{"version":3,"file":"lyra40.js","sources":["../src/components/inputs/shared/styles.ts"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\nexport const sharedInputStyles = tv({\n slots: {\n /** Wrapper of the field components and the outer slots. */\n outerSlotsWrapper: [\"flex gap-2\"],\n /** Wrapper of the field-related components (the field itself, label, description). */\n wrapper: [\"flex flex-col\"],\n outerSlot: [],\n inputHeader: [\"flex\", \"items-baseline\", \"gap-1\", \"mb-1\"],\n label: [\"text-base\", \"font-semibold\", \"transition-all\", \"ease-out\", \"duration-150\"],\n hint: [\"text-sm\", \"text-tertiary\"],\n inputField: [\n \"flex\",\n \"items-center\",\n \"outline-none\",\n \"border\",\n \"border-solid\",\n \"border-default\",\n \"rounded\",\n \"font-sans\",\n \"text-base\",\n \"transition-all\",\n \"ease-out\",\n \"duration-150\",\n \"placeholder:text-tertiary\",\n ],\n input: [\n \"w-full\",\n \"flex-grow\",\n \"outline-none\",\n \"disabled:cursor-not-allowed\",\n \"text-base\",\n \"bg-transparent\",\n \"min-h-[1.875rem]\",\n ],\n errorMessage: [\"text-error\", \"text-sm\", \"mt-1\"],\n description: [\"text-sm\", \"text-secondary\", \"mt-1\"],\n buttonExcludedFromTabOrder: [\n \"outline-none\",\n \"text-secondary\",\n \"animate-in\",\n \"zoom-in\",\n \"duration-200\",\n ],\n button: [\n \"outline-none box-border rounded-xxs focus-visible:bg-action-highlight focus-visible:shadow-highlight\",\n ],\n },\n variants: {\n fullWidth: {\n true: {\n wrapper: \"w-full\",\n inputField: \"w-full\",\n outerSlotsWrapper: \"w-full\",\n },\n false: {\n wrapper: \"w-fit\",\n inputField: \"w-fit\",\n outerSlotsWrapper: \"w-fit\",\n },\n },\n isDisabled: {\n true: {\n inputField:\n \"bg-surface-secondary text-secondary placeholder:text-tertiary cursor-not-allowed\",\n },\n false: {\n inputField: \"bg-surface-primary text-primary shadow-inner\",\n },\n },\n isInvalid: {\n true: {\n inputField: \"border-error\",\n },\n },\n isHovered: {\n true: {},\n },\n isFocused: {\n true: {\n inputField: \"!border-focus !shadow-highlight-and-inner\",\n },\n },\n hasEndSlot: {\n true: {\n inputField: \"pe-2\",\n },\n },\n hasStartSlot: {\n true: {\n inputField: \"ps-2\",\n },\n },\n hasLabel: {\n true: {},\n },\n hasInputHeader: {\n true: {},\n },\n /**\n * This variant should be set to `true` if the field only contains an input element (and it is not a custom input-like component\n * such as `SearchListField`, `Select`, `TagInput` or date / time pickers).\n */\n isInputOnly: {\n true: {\n input: \"px-2.5\",\n },\n false: {\n inputField: \"px-2.5\",\n },\n },\n },\n compoundVariants: [\n {\n isDisabled: false,\n isFocused: false,\n isInvalid: false,\n isHovered: true,\n className: {\n inputField: \"!border-hover\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: true,\n className: {\n outerSlot: \"pt-5\",\n },\n },\n {\n hasInputHeader: true,\n hasLabel: false,\n className: {\n outerSlot: \"pt-[1.0625rem]\",\n },\n },\n {},\n ],\n defaultVariants: {\n isDisabled: false,\n fullWidth: true,\n isInputOnly: true,\n },\n});\n"],"names":["sharedInputStyles","tv"],"mappings":";AAEO,MAAMA,IAAoBC,EAAG;AAAA,EAClC,OAAO;AAAA;AAAA,IAEL,mBAAmB,CAAC,YAAY;AAAA;AAAA,IAEhC,SAAS,CAAC,eAAe;AAAA,IACzB,WAAW,CAAC;AAAA,IACZ,aAAa,CAAC,QAAQ,kBAAkB,SAAS,MAAM;AAAA,IACvD,OAAO,CAAC,aAAa,iBAAiB,kBAAkB,YAAY,cAAc;AAAA,IAClF,MAAM,CAAC,WAAW,eAAe;AAAA,IACjC,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,cAAc,CAAC,cAAc,WAAW,MAAM;AAAA,IAC9C,aAAa,CAAC,WAAW,kBAAkB,MAAM;AAAA,IACjD,4BAA4B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,mBAAmB;AAAA,MACrB;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,mBAAmB;AAAA,MACrB;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,YACE;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,MAAM,CAAC;AAAA,IACT;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,QACJ,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC;AAAA,IACT;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM,CAAC;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa;AAAA,MACX,MAAM;AAAA,QACJ,OAAO;AAAA,MACT;AAAA,MACA,OAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,QACT,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA;AAAA,MACE,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,WAAW;AAAA,QACT,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA;AAAA,MACE,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,WAAW;AAAA,QACT,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EACH;AAAA,EACA,iBAAiB;AAAA,IACf,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,aAAa;AAAA,EACf;AACF,CAAC;"}
|
package/dist/lyra43.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./lyra94.cjs"),u=require("react"),l=require("./lyra93.cjs"),_=require("./lyra105.cjs"),b=require("./lyra454.cjs"),ne=require("./lyra97.cjs"),ue=require("./lyra99.cjs"),oe=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./lyra94.cjs"),u=require("react"),l=require("./lyra93.cjs"),_=require("./lyra105.cjs"),b=require("./lyra454.cjs"),ne=require("./lyra97.cjs"),ue=require("./lyra99.cjs"),oe=require("./lyra629.cjs"),ie=require("./lyra67.cjs");require("./lyra462.cjs");const le=require("./lyra463.cjs"),ae=require("./lyra38.cjs"),ce=require("./lyra39.cjs"),pe=require("./lyra40.cjs"),A=require("./lyra623.cjs"),G=({defaultValue:m,description:d,fullWidth:O=!0,hideHintLabel:f,hideInputFooter:v,hideInputHeader:q,inputRef:E,label:a,onChange:c,outerEndSlot:T,outerStartSlot:w,value:g,...j},R)=>{[j,R]=l.useContextProps(j,R,l.TextFieldContext);const N=u.useRef(null),p=_.useObjectRef(E?_.mergeRefs(N,E):N),{className:C,errorMessage:x,isDisabled:H=!1,isInvalid:K,isRequired:h,name:k,...W}=j,z=ue.useDictionary(),[J,S]=u.useState(""),[t,B]=u.useState(g??m??[]),D=u.useMemo(()=>A.shouldRenderInputHeader({hideHintLabel:f,hideInputHeader:q,label:a}),[f,q,a]),L=u.useMemo(()=>A.shouldRenderInputFooter({description:d,errorMessage:x,hideInputFooter:v}),[d,x,v]),{inputField:Q,outerSlot:P,outerSlotsWrapper:U,wrapper:X}=pe.sharedInputStyles({fullWidth:O,hasInputHeader:D,hasLabel:!!a,isInputOnly:!1});u.useEffect(()=>{B(g??m??[])},[g,m]);const i=u.useCallback(e=>{B(e),c==null||c(e)},[c]),Y=u.useCallback(e=>{if(["Enter",","].includes(e.key)){e.preventDefault();const o=e.currentTarget.value.trim();o&&!t.includes(o)&&i([...t,e.currentTarget.value.trim()]),S("")}else e.key==="Backspace"&&(e.currentTarget.value||(e.preventDefault(),i(t.slice(0,-1))))},[i,t]),Z=u.useCallback(e=>{if(e.preventDefault(),e.clipboardData){const o=e.clipboardData.getData("Text");if(o){const s=o?o.split(",").map(r=>r.replace(/[\u200B-\u200D\uFEFF]/g,"")).filter(r=>r.length>0).map(r=>r.trim()):[];i(Array.from(new Set([...t,...s])))}}},[i,t]),$=u.useMemo(()=>h&&t.length===0,[t.length,h]),{removeButton:ee,tag:te}=le.tagStyles(),[se,M]=u.useState(!1),[y,I]=u.useState(0),[re,V]=u.useState(!1);return n.jsxRuntimeExports.jsxs("div",{className:U(),children:[w?n.jsxRuntimeExports.jsx("div",{className:P(),children:w}):null,n.jsxRuntimeExports.jsx(l.TextField,{className:X({className:C}),isDisabled:H,isInvalid:K,isRequired:$,...W,onKeyDown:Y,value:J,onChange:S,onPaste:Z,ref:R,children:({isDisabled:e,isInvalid:o})=>n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[D?n.jsxRuntimeExports.jsx(ae.InputHeader,{label:a,isRequired:h,hideHintLabel:f}):null,n.jsxRuntimeExports.jsxs(l.Group,{className:({isFocusWithin:s,isHovered:r})=>Q({isFocused:s,isHovered:r,isDisabled:e,isInvalid:o||!!x,className:"relative flex-wrap items-start gap-1"}),onFocus:()=>{var s;t.length===0&&((s=p==null?void 0:p.current)==null||s.focus())},children:[n.jsxRuntimeExports.jsxs("div",{className:b.clsx(t.length&&"-my-px","-mx-1 flex w-full flex-wrap gap-1 py-[0.1875rem] outline-none"),tabIndex:e?void 0:0,role:"grid",onKeyDown:s=>{s.key==="ArrowRight"?(s.preventDefault(),I(r=>(r+1)%t.length)):s.key==="ArrowLeft"?(s.preventDefault(),I(r=>(r-1+t.length)%t.length)):s.key==="Backspace"&&y!==-1&&i(t.filter((r,F)=>F!==y))},onFocus:()=>{e||M(!0)},onBlur:()=>{e||M(!1)},children:[t.map((s,r)=>n.jsxRuntimeExports.jsxs("div",{className:te({allowsRemoving:!0,className:b.clsx(se&&r===y&&!re&&!e?"border-focus shadow-highlight":"")}),"aria-label":s,"aria-colindex":r+1,role:"gridcell",onClick:()=>{e||I(r)},children:[s,!e&&n.jsxRuntimeExports.jsx(oe.SpanButton,{className:ee({isDisabled:e}),onPress:()=>i(t.filter(F=>F!==s)),children:n.jsxRuntimeExports.jsx(ie.SvgIcon,{name:"clear"})})]},s)),n.jsxRuntimeExports.jsx(l.Input,{className:"-my-0.5 h-7 w-full min-w-36 flex-1 ps-2 outline-none",ref:p,onFocus:()=>{e||V(!0)},onBlur:()=>{e||V(!1)}})]}),k?n.jsxRuntimeExports.jsx("input",{type:"hidden",value:t.join(","),name:k}):null]}),L?n.jsxRuntimeExports.jsx(ce.InputFooter,{description:d??z.tagInputDescription,errorMessage:x}):null]})}),T?n.jsxRuntimeExports.jsx("div",{className:P(),children:T}):null]})};G.displayName="TagInput";const xe=ne.fixedForwardRef(G);exports.TagInput=xe;
|
package/dist/lyra43.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra43.cjs","sources":["../src/components/inputs/tag-input/tag-input.tsx"],"sourcesContent":["import {\n ClipboardEvent,\n ForwardedRef,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Group,\n Input,\n TextField as AriaTextField,\n TextFieldContext,\n TextFieldProps as AriaTextFieldProps,\n useContextProps,\n} from \"react-aria-components\";\n\nimport { mergeRefs, useObjectRef } from \"@react-aria/utils\";\nimport { KeyboardEvent } from \"@react-types/shared\";\nimport clsx from \"clsx\";\nimport { VariantProps } from \"tailwind-variants\";\n\nimport { fixedForwardRef } from \"../../../utils/helpers\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { SpanButton } from \"../../button/span-button\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { tagStyles } from \"../input-tag-group\";\nimport {\n InputFooter,\n InputFooterProps,\n InputHeader,\n InputHeaderProps,\n sharedInputStyles,\n} from \"../shared\";\nimport { shouldRenderInputFooter, shouldRenderInputHeader } from \"../shared/helpers\";\nimport { InputOuterSlotsProps } from \"../shared/types\";\n\nexport type TagInputProps = Omit<AriaTextFieldProps, \"value\" | \"defaultValue\" | \"onChange\"> &\n Omit<\n VariantProps<typeof sharedInputStyles>,\n \"hasEndSlot\" | \"hasStartSlot\" | \"hasInputHeader\" | \"hasLabel\" | \"isInputOnly\"\n > &\n InputHeaderProps &\n InputFooterProps &\n InputOuterSlotsProps & {\n className?: string;\n placeholder?: string;\n inputRef?: RefObject<HTMLInputElement>;\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n };\n\nconst _TagInput = (\n {\n defaultValue,\n description,\n fullWidth = true,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n inputRef,\n label,\n onChange,\n outerEndSlot,\n outerStartSlot,\n value,\n ...props\n }: TagInputProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n [props, ref] = useContextProps(props, ref, TextFieldContext);\n\n const localTextInputRef = useRef<HTMLInputElement>(null);\n const textInputRef = useObjectRef(\n inputRef ? mergeRefs(localTextInputRef, inputRef) : localTextInputRef,\n );\n\n const {\n className,\n errorMessage,\n isDisabled = false,\n isInvalid,\n isRequired,\n name,\n ...textFieldProps\n } = props;\n\n const dictionary = useDictionary();\n const [inputValue, setInputValue] = useState(\"\");\n const [internalValue, setInternalValue] = useState(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 { inputField, outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n hasInputHeader,\n hasLabel: !!label,\n isInputOnly: false,\n });\n\n useEffect(() => {\n setInternalValue(value ?? defaultValue ?? []);\n }, [value, defaultValue]);\n\n const internalOnChange = useCallback(\n (value: string[]) => {\n setInternalValue(value);\n onChange?.(value);\n },\n [onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if ([\"Enter\", \",\"].includes(e.key)) {\n e.preventDefault();\n const valueToAdd = e.currentTarget.value.trim();\n if (valueToAdd && !internalValue.includes(valueToAdd)) {\n internalOnChange([...internalValue, e.currentTarget.value.trim()]);\n }\n setInputValue(\"\");\n } else if (e.key === \"Backspace\") {\n if (!e.currentTarget.value) {\n e.preventDefault();\n internalOnChange(internalValue.slice(0, -1));\n }\n }\n },\n [internalOnChange, internalValue],\n );\n\n const onPaste = useCallback(\n (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n if (e.clipboardData) {\n const text = e.clipboardData.getData(\"Text\");\n if (text) {\n const splitValues = text\n ? text\n .split(\",\")\n // remove zero width characters\n .map((x) => x.replace(/[\\u200B-\\u200D\\uFEFF]/g, \"\"))\n .filter((x) => x.length > 0)\n .map((x) => x.trim())\n : [];\n internalOnChange(Array.from(new Set([...internalValue, ...splitValues])));\n }\n }\n },\n [internalOnChange, internalValue],\n );\n\n const shouldInputBeRequired = useMemo(\n () => isRequired && internalValue.length === 0,\n [internalValue.length, isRequired],\n );\n\n const { removeButton, tag } = tagStyles();\n const [tagGroupIsFocused, setTagGroupIsFocused] = useState(false);\n const [tagFocusVisible, setTagFocusVisible] = useState<number>(0);\n const [inputHasFocus, setInputHasFocus] = useState(false);\n\n return (\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <AriaTextField\n className={wrapper({ className })}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isRequired={shouldInputBeRequired}\n {...textFieldProps}\n onKeyDown={onKeyDown}\n value={inputValue}\n onChange={setInputValue}\n onPaste={onPaste}\n ref={ref}\n >\n {({ isDisabled, isInvalid }) => (\n <>\n {hasInputHeader ? (\n <InputHeader label={label} isRequired={isRequired} hideHintLabel={hideHintLabel} />\n ) : null}\n <Group\n className={({ isFocusWithin, isHovered }) => {\n return inputField({\n isFocused: isFocusWithin,\n isHovered: isHovered,\n isDisabled,\n isInvalid,\n className: \"relative flex-wrap items-start gap-1\",\n });\n }}\n onFocus={() => {\n // Make sure that the input is focused when the group focuses and there are no tags yet\n if (internalValue.length === 0) textInputRef?.current?.focus();\n }}\n >\n <div\n className={clsx(\n internalValue.length && \"-my-px\",\n \"-mx-1 flex w-full flex-wrap gap-1 py-[0.1875rem] outline-none\",\n )}\n tabIndex={!isDisabled ? 0 : undefined}\n role=\"grid\"\n onKeyDown={(e) => {\n if (e.key === \"ArrowRight\") {\n e.preventDefault();\n setTagFocusVisible((prev) => (prev + 1) % internalValue.length);\n } else if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n setTagFocusVisible(\n (prev) => (prev - 1 + internalValue.length) % internalValue.length,\n );\n } else if (e.key === \"Backspace\") {\n if (tagFocusVisible !== -1) {\n internalOnChange(\n internalValue.filter((_, index) => index !== tagFocusVisible),\n );\n }\n }\n }}\n onFocus={() => {\n if (!isDisabled) setTagGroupIsFocused(true);\n }}\n onBlur={() => {\n if (!isDisabled) setTagGroupIsFocused(false);\n }}\n >\n {internalValue.map((value, index) => (\n <div\n key={value}\n className={tag({\n allowsRemoving: true,\n className: clsx(\n tagGroupIsFocused &&\n index === tagFocusVisible &&\n !inputHasFocus &&\n !isDisabled\n ? \"border-focus shadow-highlight\"\n : \"\",\n ),\n })}\n aria-label={value}\n aria-colindex={index + 1}\n role=\"gridcell\"\n onClick={() => {\n if (!isDisabled) {\n setTagFocusVisible(index);\n }\n }}\n >\n {value}\n {!isDisabled && (\n <SpanButton\n className={removeButton({ isDisabled })}\n onPress={() => internalOnChange(internalValue.filter((x) => x !== value))}\n >\n <SvgIcon name=\"clear\" />\n </SpanButton>\n )}\n </div>\n ))}\n\n <Input\n className=\"-my-0.5 h-7 w-full min-w-36 flex-1 ps-2 outline-none\"\n ref={textInputRef}\n onFocus={() => {\n if (!isDisabled) {\n setInputHasFocus(true);\n }\n }}\n onBlur={() => {\n if (!isDisabled) {\n setInputHasFocus(false);\n }\n }}\n />\n </div>\n {name ? <input type=\"hidden\" value={internalValue.join(\",\")} name={name} /> : null}\n </Group>\n {hasInputFooter ? (\n <InputFooter\n description={description ?? dictionary.tagInputDescription}\n errorMessage={errorMessage}\n />\n ) : null}\n </>\n )}\n </AriaTextField>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n );\n};\n\n_TagInput.displayName = \"TagInput\";\n\nexport const TagInput = fixedForwardRef(_TagInput);\n"],"names":["_TagInput","defaultValue","description","fullWidth","hideHintLabel","hideInputFooter","hideInputHeader","inputRef","label","onChange","outerEndSlot","outerStartSlot","value","props","ref","useContextProps","TextFieldContext","localTextInputRef","useRef","textInputRef","useObjectRef","mergeRefs","className","errorMessage","isDisabled","isInvalid","isRequired","name","textFieldProps","dictionary","useDictionary","inputValue","setInputValue","useState","internalValue","setInternalValue","hasInputHeader","useMemo","shouldRenderInputHeader","hasInputFooter","shouldRenderInputFooter","inputField","outerSlot","outerSlotsWrapper","wrapper","sharedInputStyles","useEffect","internalOnChange","useCallback","onKeyDown","valueToAdd","onPaste","text","splitValues","x","shouldInputBeRequired","removeButton","tag","tagStyles","tagGroupIsFocused","setTagGroupIsFocused","tagFocusVisible","setTagFocusVisible","inputHasFocus","setInputHasFocus","jsxs","jsx","AriaTextField","Fragment","InputHeader","Group","isFocusWithin","isHovered","_a","clsx","e","prev","_","index","SpanButton","SvgIcon","Input","InputFooter","TagInput","fixedForwardRef"],"mappings":"ueAuDMA,EAAY,CAChB,CACE,aAAAC,EACA,YAAAC,EACA,UAAAC,EAAY,GACZ,cAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,eAAAC,EACA,MAAAC,EACA,GAAGC,CACL,EACAC,IACG,CACH,CAACD,EAAOC,CAAG,EAAIC,EAAAA,gBAAgBF,EAAOC,EAAKE,EAAAA,gBAAgB,EAErD,MAAAC,EAAoBC,SAAyB,IAAI,EACjDC,EAAeC,EAAA,aACnBb,EAAWc,EAAA,UAAUJ,EAAmBV,CAAQ,EAAIU,CAAA,EAGhD,CACJ,UAAAK,EACA,aAAAC,EACA,WAAAC,EAAa,GACb,UAAAC,EACA,WAAAC,EACA,KAAAC,EACA,GAAGC,CACD,EAAAf,EAEEgB,EAAaC,GAAAA,gBACb,CAACC,EAAYC,CAAa,EAAIC,WAAS,EAAE,EACzC,CAACC,EAAeC,CAAgB,EAAIF,WAASrB,GAASX,GAAgB,CAAA,CAAE,EAExEmC,EAAiBC,EAAA,QACrB,IAAMC,EAAwB,wBAAA,CAAE,cAAAlC,EAAe,gBAAAE,EAAiB,MAAAE,EAAO,EACvE,CAACJ,EAAeE,EAAiBE,CAAK,CAAA,EAGlC+B,EAAiBF,EAAA,QACrB,IAAMG,EAAwB,wBAAA,CAAE,YAAAtC,EAAa,aAAAqB,EAAc,gBAAAlB,EAAiB,EAC5E,CAACH,EAAaqB,EAAclB,CAAe,CAAA,EAGvC,CAAE,WAAAoC,EAAY,UAAAC,EAAW,kBAAAC,EAAmB,QAAAC,CAAA,EAAYC,GAAAA,kBAAkB,CAC9E,UAAA1C,EACA,eAAAiC,EACA,SAAU,CAAC,CAAC5B,EACZ,YAAa,EAAA,CACd,EAEDsC,EAAAA,UAAU,IAAM,CACGX,EAAAvB,GAASX,GAAgB,CAAA,CAAE,CAAA,EAC3C,CAACW,EAAOX,CAAY,CAAC,EAExB,MAAM8C,EAAmBC,EAAA,YACtBpC,GAAoB,CACnBuB,EAAiBvB,CAAK,EACtBH,GAAA,MAAAA,EAAWG,EACb,EACA,CAACH,CAAQ,CAAA,EAGLwC,EAAYD,EAAA,YACf,GAAqB,CACpB,GAAI,CAAC,QAAS,GAAG,EAAE,SAAS,EAAE,GAAG,EAAG,CAClC,EAAE,eAAe,EACjB,MAAME,EAAa,EAAE,cAAc,MAAM,KAAK,EAC1CA,GAAc,CAAChB,EAAc,SAASgB,CAAU,GACjCH,EAAA,CAAC,GAAGb,EAAe,EAAE,cAAc,MAAM,KAAM,CAAA,CAAC,EAEnEF,EAAc,EAAE,CAAA,MACP,EAAE,MAAQ,cACd,EAAE,cAAc,QACnB,EAAE,eAAe,EACjBe,EAAiBb,EAAc,MAAM,EAAG,EAAE,CAAC,GAGjD,EACA,CAACa,EAAkBb,CAAa,CAAA,EAG5BiB,EAAUH,EAAA,YACb,GAAwC,CAGvC,GAFA,EAAE,eAAe,EAEb,EAAE,cAAe,CACnB,MAAMI,EAAO,EAAE,cAAc,QAAQ,MAAM,EAC3C,GAAIA,EAAM,CACR,MAAMC,EAAcD,EAChBA,EACG,MAAM,GAAG,EAET,IAAKE,GAAMA,EAAE,QAAQ,yBAA0B,EAAE,CAAC,EAClD,OAAQA,GAAMA,EAAE,OAAS,CAAC,EAC1B,IAAKA,GAAMA,EAAE,KAAM,CAAA,EACtB,CAAA,EACaP,EAAA,MAAM,KAAK,IAAI,IAAI,CAAC,GAAGb,EAAe,GAAGmB,CAAW,CAAC,CAAC,CAAC,CAC1E,CACF,CACF,EACA,CAACN,EAAkBb,CAAa,CAAA,EAG5BqB,EAAwBlB,EAAA,QAC5B,IAAMX,GAAcQ,EAAc,SAAW,EAC7C,CAACA,EAAc,OAAQR,CAAU,CAAA,EAG7B,CAAE,aAAA8B,GAAc,IAAAC,EAAI,EAAIC,GAAU,UAAA,EAClC,CAACC,GAAmBC,CAAoB,EAAI3B,WAAS,EAAK,EAC1D,CAAC4B,EAAiBC,CAAkB,EAAI7B,WAAiB,CAAC,EAC1D,CAAC8B,GAAeC,CAAgB,EAAI/B,WAAS,EAAK,EAExD,OACGgC,EAAAA,kBAAAA,KAAA,MAAA,CAAI,UAAWtB,EAAA,EACb,SAAA,CAAAhC,0BAAkB,MAAI,CAAA,UAAW+B,EAAU,EAAI,UAAe,CAAA,EAAS,KACxEwB,EAAA,kBAAA,IAACC,EAAA,UAAA,CACC,UAAWvB,EAAQ,CAAE,UAAAtB,EAAW,EAChC,WAAAE,EACA,UAAAC,EACA,WAAY8B,EACX,GAAG3B,EACJ,UAAAqB,EACA,MAAOlB,EACP,SAAUC,EACV,QAAAmB,EACA,IAAArC,EAEC,UAAC,CAAE,WAAAU,EAAY,UAAAC,CAAAA,IAEXwC,EAAA,kBAAA,KAAAG,6BAAA,CAAA,SAAA,CAAAhC,EACE8B,EAAA,kBAAA,IAAAG,eAAA,CAAY,MAAA7D,EAAc,WAAAkB,EAAwB,cAAAtB,CAA8B,CAAA,EAC/E,KACJ6D,EAAA,kBAAA,KAACK,EAAA,MAAA,CACC,UAAW,CAAC,CAAE,cAAAC,EAAe,UAAAC,KACpB/B,EAAW,CAChB,UAAW8B,EACX,UAAAC,EACA,WAAAhD,EACA,UAAAC,EACA,UAAW,sCAAA,CACZ,EAEH,QAAS,IAAM,OAETS,EAAc,SAAW,KAAGuC,EAAAtD,GAAA,YAAAA,EAAc,UAAd,MAAAsD,EAAuB,QACzD,EAEA,SAAA,CAAAR,EAAA,kBAAA,KAAC,MAAA,CACC,UAAWS,EAAA,KACTxC,EAAc,QAAU,SACxB,+DACF,EACA,SAAWV,EAAiB,OAAJ,EACxB,KAAK,OACL,UAAYmD,GAAM,CACZA,EAAE,MAAQ,cACZA,EAAE,eAAe,EACjBb,EAAoBc,IAAUA,EAAO,GAAK1C,EAAc,MAAM,GACrDyC,EAAE,MAAQ,aACnBA,EAAE,eAAe,EACjBb,EACGc,IAAUA,EAAO,EAAI1C,EAAc,QAAUA,EAAc,MAAA,GAErDyC,EAAE,MAAQ,aACfd,IAAoB,IACtBd,EACEb,EAAc,OAAO,CAAC2C,EAAGC,IAAUA,IAAUjB,CAAe,CAAA,CAIpE,EACA,QAAS,IAAM,CACRrC,GAAYoC,EAAqB,EAAI,CAC5C,EACA,OAAQ,IAAM,CACPpC,GAAYoC,EAAqB,EAAK,CAC7C,EAEC,SAAA,CAAc1B,EAAA,IAAI,CAACtB,EAAOkE,IACzBb,EAAA,kBAAA,KAAC,MAAA,CAEC,UAAWR,GAAI,CACb,eAAgB,GAChB,UAAWiB,EAAA,KACTf,IACEmB,IAAUjB,GACV,CAACE,IACD,CAACvC,EACC,gCACA,EACN,CAAA,CACD,EACD,aAAYZ,EACZ,gBAAekE,EAAQ,EACvB,KAAK,WACL,QAAS,IAAM,CACRtD,GACHsC,EAAmBgB,CAAK,CAE5B,EAEC,SAAA,CAAAlE,EACA,CAACY,GACA0C,EAAA,kBAAA,IAACa,GAAA,WAAA,CACC,UAAWvB,GAAa,CAAE,WAAAhC,EAAY,EACtC,QAAS,IAAMuB,EAAiBb,EAAc,OAAQoB,GAAMA,IAAM1C,CAAK,CAAC,EAExE,SAAAsD,EAAAA,kBAAAA,IAACc,GAAAA,QAAQ,CAAA,KAAK,OAAQ,CAAA,CAAA,CACxB,CAAA,CAAA,EA5BGpE,CAAA,CA+BR,EAEDsD,EAAA,kBAAA,IAACe,EAAA,MAAA,CACC,UAAU,uDACV,IAAK9D,EACL,QAAS,IAAM,CACRK,GACHwC,EAAiB,EAAI,CAEzB,EACA,OAAQ,IAAM,CACPxC,GACHwC,EAAiB,EAAK,CAE1B,CAAA,CACF,CAAA,CAAA,CACF,EACCrC,EAAQuC,EAAAA,kBAAAA,IAAA,QAAA,CAAM,KAAK,SAAS,MAAOhC,EAAc,KAAK,GAAG,EAAG,KAAAP,CAAA,CAAY,EAAK,IAAA,CAAA,CAChF,EACCY,EACC2B,EAAA,kBAAA,IAACgB,GAAA,YAAA,CACC,YAAahF,GAAe2B,EAAW,oBACvC,aAAAN,CAAA,CAAA,EAEA,IAAA,EACN,CAAA,CAEJ,EACCb,EAAgBwD,EAAAA,kBAAAA,IAAA,MAAA,CAAI,UAAWxB,EAAU,EAAI,UAAa,CAAA,EAAS,IACtE,CAAA,CAAA,CAEJ,EAEA1C,EAAU,YAAc,WAEX,MAAAmF,GAAWC,mBAAgBpF,CAAS"}
|
|
1
|
+
{"version":3,"file":"lyra43.cjs","sources":["../src/components/inputs/tag-input/tag-input.tsx"],"sourcesContent":["import {\n ClipboardEvent,\n ForwardedRef,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Group,\n Input,\n TextField as AriaTextField,\n TextFieldContext,\n TextFieldProps as AriaTextFieldProps,\n useContextProps,\n} from \"react-aria-components\";\n\nimport { mergeRefs, useObjectRef } from \"@react-aria/utils\";\nimport { KeyboardEvent } from \"@react-types/shared\";\nimport clsx from \"clsx\";\nimport { VariantProps } from \"tailwind-variants\";\n\nimport { fixedForwardRef } from \"../../../utils/helpers\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { SpanButton } from \"../../button/span-button\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { tagStyles } from \"../input-tag-group\";\nimport {\n InputFooter,\n InputFooterProps,\n InputHeader,\n InputHeaderProps,\n sharedInputStyles,\n} from \"../shared\";\nimport { shouldRenderInputFooter, shouldRenderInputHeader } from \"../shared/helpers\";\nimport { InputOuterSlotsProps } from \"../shared/types\";\n\nexport type TagInputProps = Omit<AriaTextFieldProps, \"value\" | \"defaultValue\" | \"onChange\"> &\n Omit<\n VariantProps<typeof sharedInputStyles>,\n \"hasEndSlot\" | \"hasStartSlot\" | \"hasInputHeader\" | \"hasLabel\" | \"isInputOnly\"\n > &\n InputHeaderProps &\n InputFooterProps &\n InputOuterSlotsProps & {\n className?: string;\n placeholder?: string;\n inputRef?: RefObject<HTMLInputElement>;\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n };\n\nconst _TagInput = (\n {\n defaultValue,\n description,\n fullWidth = true,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n inputRef,\n label,\n onChange,\n outerEndSlot,\n outerStartSlot,\n value,\n ...props\n }: TagInputProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n [props, ref] = useContextProps(props, ref, TextFieldContext);\n\n const localTextInputRef = useRef<HTMLInputElement>(null);\n const textInputRef = useObjectRef(\n inputRef ? mergeRefs(localTextInputRef, inputRef) : localTextInputRef,\n );\n\n const {\n className,\n errorMessage,\n isDisabled = false,\n isInvalid,\n isRequired,\n name,\n ...textFieldProps\n } = props;\n\n const dictionary = useDictionary();\n const [inputValue, setInputValue] = useState(\"\");\n const [internalValue, setInternalValue] = useState(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 { inputField, outerSlot, outerSlotsWrapper, wrapper } = sharedInputStyles({\n fullWidth,\n hasInputHeader,\n hasLabel: !!label,\n isInputOnly: false,\n });\n\n useEffect(() => {\n setInternalValue(value ?? defaultValue ?? []);\n }, [value, defaultValue]);\n\n const internalOnChange = useCallback(\n (value: string[]) => {\n setInternalValue(value);\n onChange?.(value);\n },\n [onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if ([\"Enter\", \",\"].includes(e.key)) {\n e.preventDefault();\n const valueToAdd = e.currentTarget.value.trim();\n if (valueToAdd && !internalValue.includes(valueToAdd)) {\n internalOnChange([...internalValue, e.currentTarget.value.trim()]);\n }\n setInputValue(\"\");\n } else if (e.key === \"Backspace\") {\n if (!e.currentTarget.value) {\n e.preventDefault();\n internalOnChange(internalValue.slice(0, -1));\n }\n }\n },\n [internalOnChange, internalValue],\n );\n\n const onPaste = useCallback(\n (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n if (e.clipboardData) {\n const text = e.clipboardData.getData(\"Text\");\n if (text) {\n const splitValues = text\n ? text\n .split(\",\")\n // remove zero width characters\n .map((x) => x.replace(/[\\u200B-\\u200D\\uFEFF]/g, \"\"))\n .filter((x) => x.length > 0)\n .map((x) => x.trim())\n : [];\n internalOnChange(Array.from(new Set([...internalValue, ...splitValues])));\n }\n }\n },\n [internalOnChange, internalValue],\n );\n\n const shouldInputBeRequired = useMemo(\n () => isRequired && internalValue.length === 0,\n [internalValue.length, isRequired],\n );\n\n const { removeButton, tag } = tagStyles();\n const [tagGroupIsFocused, setTagGroupIsFocused] = useState(false);\n const [tagFocusVisible, setTagFocusVisible] = useState<number>(0);\n const [inputHasFocus, setInputHasFocus] = useState(false);\n\n return (\n <div className={outerSlotsWrapper()}>\n {outerStartSlot ? <div className={outerSlot()}>{outerStartSlot}</div> : null}\n <AriaTextField\n className={wrapper({ className })}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isRequired={shouldInputBeRequired}\n {...textFieldProps}\n onKeyDown={onKeyDown}\n value={inputValue}\n onChange={setInputValue}\n onPaste={onPaste}\n ref={ref}\n >\n {({ isDisabled, isInvalid }) => (\n <>\n {hasInputHeader ? (\n <InputHeader label={label} isRequired={isRequired} hideHintLabel={hideHintLabel} />\n ) : null}\n <Group\n className={({ isFocusWithin, isHovered }) => {\n return inputField({\n isFocused: isFocusWithin,\n isHovered: isHovered,\n isDisabled,\n isInvalid: isInvalid || !!errorMessage,\n className: \"relative flex-wrap items-start gap-1\",\n });\n }}\n onFocus={() => {\n // Make sure that the input is focused when the group focuses and there are no tags yet\n if (internalValue.length === 0) textInputRef?.current?.focus();\n }}\n >\n <div\n className={clsx(\n internalValue.length && \"-my-px\",\n \"-mx-1 flex w-full flex-wrap gap-1 py-[0.1875rem] outline-none\",\n )}\n tabIndex={!isDisabled ? 0 : undefined}\n role=\"grid\"\n onKeyDown={(e) => {\n if (e.key === \"ArrowRight\") {\n e.preventDefault();\n setTagFocusVisible((prev) => (prev + 1) % internalValue.length);\n } else if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n setTagFocusVisible(\n (prev) => (prev - 1 + internalValue.length) % internalValue.length,\n );\n } else if (e.key === \"Backspace\") {\n if (tagFocusVisible !== -1) {\n internalOnChange(\n internalValue.filter((_, index) => index !== tagFocusVisible),\n );\n }\n }\n }}\n onFocus={() => {\n if (!isDisabled) setTagGroupIsFocused(true);\n }}\n onBlur={() => {\n if (!isDisabled) setTagGroupIsFocused(false);\n }}\n >\n {internalValue.map((value, index) => (\n <div\n key={value}\n className={tag({\n allowsRemoving: true,\n className: clsx(\n tagGroupIsFocused &&\n index === tagFocusVisible &&\n !inputHasFocus &&\n !isDisabled\n ? \"border-focus shadow-highlight\"\n : \"\",\n ),\n })}\n aria-label={value}\n aria-colindex={index + 1}\n role=\"gridcell\"\n onClick={() => {\n if (!isDisabled) {\n setTagFocusVisible(index);\n }\n }}\n >\n {value}\n {!isDisabled && (\n <SpanButton\n className={removeButton({ isDisabled })}\n onPress={() => internalOnChange(internalValue.filter((x) => x !== value))}\n >\n <SvgIcon name=\"clear\" />\n </SpanButton>\n )}\n </div>\n ))}\n\n <Input\n className=\"-my-0.5 h-7 w-full min-w-36 flex-1 ps-2 outline-none\"\n ref={textInputRef}\n onFocus={() => {\n if (!isDisabled) {\n setInputHasFocus(true);\n }\n }}\n onBlur={() => {\n if (!isDisabled) {\n setInputHasFocus(false);\n }\n }}\n />\n </div>\n {name ? <input type=\"hidden\" value={internalValue.join(\",\")} name={name} /> : null}\n </Group>\n {hasInputFooter ? (\n <InputFooter\n description={description ?? dictionary.tagInputDescription}\n errorMessage={errorMessage}\n />\n ) : null}\n </>\n )}\n </AriaTextField>\n {outerEndSlot ? <div className={outerSlot()}>{outerEndSlot}</div> : null}\n </div>\n );\n};\n\n_TagInput.displayName = \"TagInput\";\n\nexport const TagInput = fixedForwardRef(_TagInput);\n"],"names":["_TagInput","defaultValue","description","fullWidth","hideHintLabel","hideInputFooter","hideInputHeader","inputRef","label","onChange","outerEndSlot","outerStartSlot","value","props","ref","useContextProps","TextFieldContext","localTextInputRef","useRef","textInputRef","useObjectRef","mergeRefs","className","errorMessage","isDisabled","isInvalid","isRequired","name","textFieldProps","dictionary","useDictionary","inputValue","setInputValue","useState","internalValue","setInternalValue","hasInputHeader","useMemo","shouldRenderInputHeader","hasInputFooter","shouldRenderInputFooter","inputField","outerSlot","outerSlotsWrapper","wrapper","sharedInputStyles","useEffect","internalOnChange","useCallback","onKeyDown","valueToAdd","onPaste","text","splitValues","x","shouldInputBeRequired","removeButton","tag","tagStyles","tagGroupIsFocused","setTagGroupIsFocused","tagFocusVisible","setTagFocusVisible","inputHasFocus","setInputHasFocus","jsxs","jsx","AriaTextField","Fragment","InputHeader","Group","isFocusWithin","isHovered","_a","clsx","e","prev","_","index","SpanButton","SvgIcon","Input","InputFooter","TagInput","fixedForwardRef"],"mappings":"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"}
|