@powerhousedao/design-system 6.1.0-dev.12 → 6.1.0-dev.14
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/Removed-CO_5C1ce.js +178 -0
- package/dist/Removed-CO_5C1ce.js.map +1 -0
- package/dist/Tabler-FjvVqX5a.js +65 -0
- package/dist/Tabler-FjvVqX5a.js.map +1 -0
- package/dist/{button-49Walvwn.d.ts → button-C8doazjv.d.ts} +1 -1
- package/dist/{button-49Walvwn.d.ts.map → button-C8doazjv.d.ts.map} +1 -1
- package/dist/{character-counter-BcuG4STA.d.ts → character-counter-BWoglM2P.d.ts} +1 -1
- package/dist/{character-counter-BcuG4STA.d.ts.map → character-counter-BWoglM2P.d.ts.map} +1 -1
- package/dist/{checkbox-Bxc7-H_k.d.ts → checkbox-CGBtXQnI.d.ts} +3 -3
- package/dist/{checkbox-Bxc7-H_k.d.ts.map → checkbox-CGBtXQnI.d.ts.map} +1 -1
- package/dist/{checkbox-base-8xXJvAbj.d.ts → checkbox-base-CZo-4eL0.d.ts} +1 -1
- package/dist/{checkbox-base-8xXJvAbj.d.ts.map → checkbox-base-CZo-4eL0.d.ts.map} +1 -1
- package/dist/{command-CThXmS49.d.ts → command-By1kGfcI.d.ts} +15 -15
- package/dist/command-By1kGfcI.d.ts.map +1 -0
- package/dist/connect/components/toast/toast.d.ts.map +1 -1
- package/dist/connect/components/toast/toast.js +6 -6
- package/dist/connect/components/toast/toast.js.map +1 -1
- package/dist/connect/index.d.ts +49 -91
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +1032 -843
- package/dist/connect/index.js.map +1 -1
- package/dist/{content-Ce1V2wTc.d.ts → content-BHWIqmio.d.ts} +2 -2
- package/dist/{content-Ce1V2wTc.d.ts.map → content-BHWIqmio.d.ts.map} +1 -1
- package/dist/{enum-field-DJ4XRc2r.d.ts → enum-field-CwZVs3Ux.d.ts} +3 -3
- package/dist/{enum-field-DJ4XRc2r.d.ts.map → enum-field-CwZVs3Ux.d.ts.map} +1 -1
- package/dist/{form-B9JNvrH6.d.ts → form-CKRKn0TQ.d.ts} +1 -1
- package/dist/{form-B9JNvrH6.d.ts.map → form-CKRKn0TQ.d.ts.map} +1 -1
- package/dist/{form-description-BpST5Ww-.d.ts → form-description-CYkcMEzm.d.ts} +1 -1
- package/dist/{form-description-BpST5Ww-.d.ts.map → form-description-CYkcMEzm.d.ts.map} +1 -1
- package/dist/{form-group-BauWlFkQ.d.ts → form-group-C8kL6pdZ.d.ts} +1 -1
- package/dist/form-group-C8kL6pdZ.d.ts.map +1 -0
- package/dist/{form-label-Cz_gcj-B.d.ts → form-label-b6nQi0XO.d.ts} +1 -1
- package/dist/form-label-b6nQi0XO.d.ts.map +1 -0
- package/dist/{form-message-BPqNM4gG.d.ts → form-message-Dq72nBXz.d.ts} +1 -1
- package/dist/{form-message-BPqNM4gG.d.ts.map → form-message-Dq72nBXz.d.ts.map} +1 -1
- package/dist/{form-server-error-message-CzMQQ8ru.d.ts → form-server-error-message-DXbaiTfF.d.ts} +1 -1
- package/dist/{form-server-error-message-CzMQQ8ru.d.ts.map → form-server-error-message-DXbaiTfF.d.ts.map} +1 -1
- package/dist/{src-BgKEHW0i.js → icon-C4QOpsdI.js} +14 -964
- package/dist/icon-C4QOpsdI.js.map +1 -0
- package/dist/{id-autocomplete-ClooY-ur.d.ts → id-autocomplete-C-hwriS5.d.ts} +2 -2
- package/dist/{id-autocomplete-ClooY-ur.d.ts.map → id-autocomplete-C-hwriS5.d.ts.map} +1 -1
- package/dist/{id-autocomplete-input-container-O7l0T0zJ.d.ts → id-autocomplete-input-container-DFEyPh5p.d.ts} +2 -2
- package/dist/{id-autocomplete-input-container-O7l0T0zJ.d.ts.map → id-autocomplete-input-container-DFEyPh5p.d.ts.map} +1 -1
- package/dist/{id-autocomplete-list-CpPWWmw0.d.ts → id-autocomplete-list-EzLpF23C.d.ts} +2 -2
- package/dist/{id-autocomplete-list-CpPWWmw0.d.ts.map → id-autocomplete-list-EzLpF23C.d.ts.map} +1 -1
- package/dist/{id-autocomplete-list-option-QmSvQwgn.d.ts → id-autocomplete-list-option-CB5B07Hi.d.ts} +2 -2
- package/dist/{id-autocomplete-list-option-QmSvQwgn.d.ts.map → id-autocomplete-list-option-CB5B07Hi.d.ts.map} +1 -1
- package/dist/{index-BEiWWMW2.d.ts → index--hDSfvJT.d.ts} +2 -15
- package/dist/index--hDSfvJT.d.ts.map +1 -0
- package/dist/index-E7Wvm5uX.d.ts +1 -0
- package/dist/index-J3R2mDFQ.d.ts +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -2
- package/dist/{input-D11GgWGm.d.ts → input-BpEQjaWV.d.ts} +1 -1
- package/dist/input-BpEQjaWV.d.ts.map +1 -0
- package/dist/{json-viewer-vWp8vOvz.d.ts → json-viewer-DaTgmzkS.d.ts} +1 -1
- package/dist/{json-viewer-vWp8vOvz.d.ts.map → json-viewer-DaTgmzkS.d.ts.map} +1 -1
- package/dist/{message-list-aysvo-xf.d.ts → message-list-C4mPpBBa.d.ts} +2 -2
- package/dist/{message-list-aysvo-xf.d.ts.map → message-list-C4mPpBBa.d.ts.map} +1 -1
- package/dist/{popover-glLRVxPS.d.ts → popover-XSBOuSih.d.ts} +1 -1
- package/dist/{popover-glLRVxPS.d.ts.map → popover-XSBOuSih.d.ts.map} +1 -1
- package/dist/{radio-DZ4xl9oz.d.ts → radio-eL0Oy86J.d.ts} +1 -1
- package/dist/{radio-DZ4xl9oz.d.ts.map → radio-eL0Oy86J.d.ts.map} +1 -1
- package/dist/{radio-group-DjJbcDzB.d.ts → radio-group-Bkli6nUz.d.ts} +1 -1
- package/dist/{radio-group-DjJbcDzB.d.ts.map → radio-group-Bkli6nUz.d.ts.map} +1 -1
- package/dist/{radio-group-field-BkD0Nl0j.d.ts → radio-group-field-wlqeiLN3.d.ts} +3 -3
- package/dist/{radio-group-field-BkD0Nl0j.d.ts.map → radio-group-field-wlqeiLN3.d.ts.map} +1 -1
- package/dist/{search-autocomplete-OeZbE-VN.d.ts → search-autocomplete-BJJkrZ1i.d.ts} +2 -2
- package/dist/{search-autocomplete-OeZbE-VN.d.ts.map → search-autocomplete-BJJkrZ1i.d.ts.map} +1 -1
- package/dist/{select-field-B9KcyWc1.d.ts → select-field-C97QIhUL.d.ts} +2 -2
- package/dist/{select-field-B9KcyWc1.d.ts.map → select-field-C97QIhUL.d.ts.map} +1 -1
- package/dist/{selected-content-HHOKK679.d.ts → selected-content-CGsK5PR4.d.ts} +2 -2
- package/dist/selected-content-CGsK5PR4.d.ts.map +1 -0
- package/dist/sidebar-DOoE4krt.d.ts +102 -0
- package/dist/sidebar-DOoE4krt.d.ts.map +1 -0
- package/dist/sidebar-provider-C2eyz9TL.d.ts +46 -0
- package/dist/sidebar-provider-C2eyz9TL.d.ts.map +1 -0
- package/dist/{splitted-input-diff-DZ_0mBKD.d.ts → splitted-input-diff-CwPedpov.d.ts} +2 -2
- package/dist/splitted-input-diff-CwPedpov.d.ts.map +1 -0
- package/dist/src-BrrPQVce.js +710 -0
- package/dist/src-BrrPQVce.js.map +1 -0
- package/dist/style.css +84 -4173
- package/dist/{text-field-CwxxUhUk.d.ts → text-field-DSInH67J.d.ts} +3 -3
- package/dist/{text-field-CwxxUhUk.d.ts.map → text-field-DSInH67J.d.ts.map} +1 -1
- package/dist/{text-input-By73a1-n.d.ts → text-input-8zXIWHLi.d.ts} +3 -3
- package/dist/{text-input-By73a1-n.d.ts.map → text-input-8zXIWHLi.d.ts.map} +1 -1
- package/dist/{text-input-diff-C6OK2A4u.d.ts → text-input-diff-B0vLSKQm.d.ts} +2 -2
- package/dist/{text-input-diff-C6OK2A4u.d.ts.map → text-input-diff-B0vLSKQm.d.ts.map} +1 -1
- package/dist/{tooltip-Cf5jSzdt.d.ts → tooltip-BxS9HpML.d.ts} +1 -1
- package/dist/{tooltip-Cf5jSzdt.d.ts.map → tooltip-BxS9HpML.d.ts.map} +1 -1
- package/dist/{types-tThrTH_c.d.ts → types-BTq-St7H.d.ts} +1 -1
- package/dist/{types-tThrTH_c.d.ts.map → types-BTq-St7H.d.ts.map} +1 -1
- package/dist/{types-BfmDXMrz.d.ts → types-Bsn62tJB.d.ts} +1 -1
- package/dist/{types-BfmDXMrz.d.ts.map → types-Bsn62tJB.d.ts.map} +1 -1
- package/dist/{types-9JRQnd7a.d.ts → types-C04Q_Fan.d.ts} +1 -1
- package/dist/{types-9JRQnd7a.d.ts.map → types-C04Q_Fan.d.ts.map} +1 -1
- package/dist/types-CNbvfWjh.d.ts +31 -0
- package/dist/types-CNbvfWjh.d.ts.map +1 -0
- package/dist/ui/components/button/button.d.ts +1 -1
- package/dist/ui/components/button/button.js +3 -3
- package/dist/ui/components/button/button.js.map +1 -1
- package/dist/ui/components/character-counter/character-counter.d.ts +1 -1
- package/dist/ui/components/character-counter/character-counter.js +6 -6
- package/dist/ui/components/character-counter/character-counter.js.map +1 -1
- package/dist/ui/components/checkbox/checkbox-base.d.ts +1 -1
- package/dist/ui/components/checkbox/checkbox-base.js +3 -3
- package/dist/ui/components/checkbox/checkbox-base.js.map +1 -1
- package/dist/ui/components/checkbox/checkbox.d.ts +1 -1
- package/dist/ui/components/checkbox/checkbox.js +4 -4
- package/dist/ui/components/checkbox/checkbox.js.map +1 -1
- package/dist/ui/components/command/command.d.ts +1 -1
- package/dist/ui/components/command/command.js +9 -8
- package/dist/ui/components/command/command.js.map +1 -1
- package/dist/ui/components/enum-field/enum-field.d.ts +1 -1
- package/dist/ui/components/enum-field/types.d.ts +1 -1
- package/dist/ui/components/form/form.d.ts +1 -1
- package/dist/ui/components/form-description/form-description.d.ts +1 -1
- package/dist/ui/components/form-description/form-description.js +2 -2
- package/dist/ui/components/form-description/form-description.js.map +1 -1
- package/dist/ui/components/form-group/form-group.d.ts +1 -1
- package/dist/ui/components/form-label/form-label.d.ts +1 -1
- package/dist/ui/components/form-label/form-label.js +5 -4
- package/dist/ui/components/form-label/form-label.js.map +1 -1
- package/dist/ui/components/form-message/form-message.d.ts +1 -1
- package/dist/ui/components/form-message/form-message.js +5 -5
- package/dist/ui/components/form-message/form-message.js.map +1 -1
- package/dist/ui/components/form-message/form-server-error-message.d.ts +1 -1
- package/dist/ui/components/form-message/message-list.d.ts +1 -1
- package/dist/ui/components/form-message/message-list.js +6 -6
- package/dist/ui/components/form-message/message-list.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js +10 -9
- package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js +20 -19
- package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list.js +6 -6
- package/dist/ui/components/id-autocomplete/id-autocomplete-list.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete.js +4 -4
- package/dist/ui/components/id-autocomplete/id-autocomplete.js.map +1 -1
- package/dist/ui/components/id-autocomplete/types.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/use-id-autocomplete.d.ts +1 -1
- package/dist/ui/components/index.d.ts +40 -37
- package/dist/ui/components/index.js +3 -1
- package/dist/ui/components/input/input.d.ts +1 -1
- package/dist/ui/components/input/input.js +2 -6
- package/dist/ui/components/input/input.js.map +1 -1
- package/dist/ui/components/input/splitted-input-diff.d.ts +1 -1
- package/dist/ui/components/input/splitted-input-diff.js +12 -11
- package/dist/ui/components/input/splitted-input-diff.js.map +1 -1
- package/dist/ui/components/input/subcomponent/input-diff.js +2 -2
- package/dist/ui/components/input/subcomponent/input-diff.js.map +1 -1
- package/dist/ui/components/input/subcomponent/text-diff.d.ts +1 -1
- package/dist/ui/components/input/subcomponent/text-diff.js +5 -5
- package/dist/ui/components/input/subcomponent/text-diff.js.map +1 -1
- package/dist/ui/components/json-viewer/json-viewer.d.ts +1 -1
- package/dist/ui/components/popover/popover.d.ts +1 -1
- package/dist/ui/components/popover/popover.js +3 -3
- package/dist/ui/components/popover/popover.js.map +1 -1
- package/dist/ui/components/radio-group-field/radio-group-field.d.ts +1 -1
- package/dist/ui/components/radio-group-field/radio-group-field.js +2 -2
- package/dist/ui/components/radio-group-field/radio-group-field.js.map +1 -1
- package/dist/ui/components/radio-group-field/radio-group.d.ts +1 -1
- package/dist/ui/components/radio-group-field/radio.d.ts +1 -1
- package/dist/ui/components/radio-group-field/radio.js +4 -4
- package/dist/ui/components/radio-group-field/radio.js.map +1 -1
- package/dist/ui/components/search-autocomplete/index.d.ts +3 -3
- package/dist/ui/components/search-autocomplete/search-autocomplete.d.ts +1 -1
- package/dist/ui/components/search-autocomplete/search-autocomplete.js +16 -16
- package/dist/ui/components/search-autocomplete/search-autocomplete.js.map +1 -1
- package/dist/ui/components/search-autocomplete/types.d.ts +1 -1
- package/dist/ui/components/search-autocomplete/use-search-autocomplete.d.ts +1 -1
- package/dist/ui/components/select-field/content.d.ts +1 -1
- package/dist/ui/components/select-field/content.js +10 -9
- package/dist/ui/components/select-field/content.js.map +1 -1
- package/dist/ui/components/select-field/select-field.d.ts +1 -1
- package/dist/ui/components/select-field/select-field.js +2 -2
- package/dist/ui/components/select-field/select-field.js.map +1 -1
- package/dist/ui/components/select-field/selected-content.d.ts +1 -1
- package/dist/ui/components/select-field/selected-content.js +11 -10
- package/dist/ui/components/select-field/selected-content.js.map +1 -1
- package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts +1 -1
- package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts.map +1 -1
- package/dist/ui/components/select-field/subcomponents/CommandItemList.js +11 -10
- package/dist/ui/components/select-field/subcomponents/CommandItemList.js.map +1 -1
- package/dist/ui/components/select-field/use-select-field.d.ts +1 -1
- package/dist/ui/components/sidebar/index.d.ts +4 -0
- package/dist/ui/components/sidebar/index.js +3 -0
- package/dist/ui/components/sidebar/sidebar.d.ts +2 -0
- package/dist/ui/components/sidebar/sidebar.js +110 -0
- package/dist/ui/components/sidebar/sidebar.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.d.ts +14 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js +56 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-header.d.ts +11 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-header.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-header.js +45 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-header.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-item.d.ts +35 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-item.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-item.js +156 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-item.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.d.ts +7 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js +30 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/index.d.ts +2 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/index.js +2 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.d.ts +2 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.js +268 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.d.ts +92 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.js +107 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/index.d.ts +4 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/index.js +4 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.d.ts +10 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js +22 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.d.ts +10 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js +22 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.d.ts +8 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js +85 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.d.ts +16 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js +21 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.d.ts +7 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.js +63 -0
- package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.js.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/status-icon.d.ts +16 -0
- package/dist/ui/components/sidebar/subcomponents/status-icon.d.ts.map +1 -0
- package/dist/ui/components/sidebar/subcomponents/status-icon.js +43 -0
- package/dist/ui/components/sidebar/subcomponents/status-icon.js.map +1 -0
- package/dist/ui/components/sidebar/types.d.ts +2 -0
- package/dist/ui/components/sidebar/types.js +14 -0
- package/dist/ui/components/sidebar/types.js.map +1 -0
- package/dist/ui/components/sidebar/use-ellipsis.d.ts +10 -0
- package/dist/ui/components/sidebar/use-ellipsis.d.ts.map +1 -0
- package/dist/ui/components/sidebar/use-ellipsis.js +26 -0
- package/dist/ui/components/sidebar/use-ellipsis.js.map +1 -0
- package/dist/ui/components/sidebar/use-sidebar-resize.d.ts +22 -0
- package/dist/ui/components/sidebar/use-sidebar-resize.d.ts.map +1 -0
- package/dist/ui/components/sidebar/use-sidebar-resize.js +72 -0
- package/dist/ui/components/sidebar/use-sidebar-resize.js.map +1 -0
- package/dist/ui/components/sidebar/utils.d.ts +14 -0
- package/dist/ui/components/sidebar/utils.d.ts.map +1 -0
- package/dist/ui/components/sidebar/utils.js +118 -0
- package/dist/ui/components/sidebar/utils.js.map +1 -0
- package/dist/ui/components/text-field/text-field.d.ts +1 -1
- package/dist/ui/components/text-input/text-input-diff.d.ts +1 -1
- package/dist/ui/components/text-input/text-input.d.ts +1 -1
- package/dist/ui/components/text-input/text-input.js +2 -2
- package/dist/ui/components/text-input/text-input.js.map +1 -1
- package/dist/ui/components/text-input/types.d.ts +1 -1
- package/dist/ui/components/tooltip/tooltip.d.ts +1 -1
- package/dist/ui/components/tooltip/tooltip.js +2 -2
- package/dist/ui/components/tooltip/tooltip.js.map +1 -1
- package/dist/ui/components/types.d.ts +1 -1
- package/dist/ui/components/value-transformer/value-transformer.d.ts +1 -1
- package/dist/ui/components/with-field-validation/with-field-validation.d.ts +1 -1
- package/dist/ui/index.d.ts +42 -39
- package/dist/ui/index.js +3 -1
- package/dist/ui/lib/date-picker.d.ts +1 -1
- package/dist/ui/lib/shared-value-transformers.d.ts +1 -1
- package/dist/ui/lib/types.d.ts +1 -1
- package/dist/ui/types.d.ts +2 -2
- package/dist/{use-id-autocomplete-BcL_O50p.d.ts → use-id-autocomplete-By7YSChC.d.ts} +2 -2
- package/dist/{use-id-autocomplete-BcL_O50p.d.ts.map → use-id-autocomplete-By7YSChC.d.ts.map} +1 -1
- package/dist/{use-search-autocomplete-Xf7shCtk.d.ts → use-search-autocomplete-IfcQ_gKh.d.ts} +2 -2
- package/dist/{use-search-autocomplete-Xf7shCtk.d.ts.map → use-search-autocomplete-IfcQ_gKh.d.ts.map} +1 -1
- package/dist/{value-transformer-DCiU65Qa.d.ts → value-transformer-DQjqtNih.d.ts} +2 -2
- package/dist/{value-transformer-DCiU65Qa.d.ts.map → value-transformer-DQjqtNih.d.ts.map} +1 -1
- package/dist/{with-field-validation-BIac25Sm.d.ts → with-field-validation-Di5D8vU-.d.ts} +2 -2
- package/dist/{with-field-validation-BIac25Sm.d.ts.map → with-field-validation-Di5D8vU-.d.ts.map} +1 -1
- package/package.json +9 -5
- package/theme.css +60 -14
- package/dist/command-CThXmS49.d.ts.map +0 -1
- package/dist/form-group-BauWlFkQ.d.ts.map +0 -1
- package/dist/form-label-Cz_gcj-B.d.ts.map +0 -1
- package/dist/index-BEiWWMW2.d.ts.map +0 -1
- package/dist/input-D11GgWGm.d.ts.map +0 -1
- package/dist/selected-content-HHOKK679.d.ts.map +0 -1
- package/dist/splitted-input-diff-DZ_0mBKD.d.ts.map +0 -1
- package/dist/src-BgKEHW0i.js.map +0 -1
- /package/dist/{index-CWsYGvaO.d.ts → index--okzibnx.d.ts} +0 -0
- /package/dist/{index-qM4PwHTs.d.ts → index-BLwMeReG.d.ts} +0 -0
- /package/dist/{index-uQcTfU6c.d.ts → index-Cw3C7_1f.d.ts} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as cn } from "../../../src-BgKEHW0i.js";
|
|
2
1
|
import { Popover, PopoverAnchor, PopoverContent } from "../popover/popover.js";
|
|
3
2
|
import { Input } from "../input/input.js";
|
|
4
3
|
import { useSearchAutocomplete } from "./use-search-autocomplete.js";
|
|
5
4
|
import { useCallback, useState } from "react";
|
|
5
|
+
import { twMerge } from "tailwind-merge";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region src/ui/components/search-autocomplete/search-autocomplete.tsx
|
|
8
8
|
const SearchAutocomplete = (props) => {
|
|
@@ -44,23 +44,23 @@ const SearchAutocomplete = (props) => {
|
|
|
44
44
|
]);
|
|
45
45
|
const loading = isLoading || externalLoading;
|
|
46
46
|
if (!fetchOptions) return /* @__PURE__ */ jsxs("div", {
|
|
47
|
-
className:
|
|
47
|
+
className: twMerge("flex items-center gap-2", className),
|
|
48
48
|
children: [/* @__PURE__ */ jsx(Input, {
|
|
49
49
|
value: query,
|
|
50
50
|
onChange: handleInputChange,
|
|
51
51
|
onKeyDown: handleKeyDown,
|
|
52
52
|
placeholder,
|
|
53
53
|
disabled: disabled || selectingValue !== null,
|
|
54
|
-
className: "max-w-xs text-gray-700"
|
|
54
|
+
className: "max-w-xs text-gray-700 dark:text-slate-200"
|
|
55
55
|
}), /* @__PURE__ */ jsx("button", {
|
|
56
56
|
onClick: handleSubmit,
|
|
57
57
|
disabled: disabled || !query.trim() || selectingValue !== null,
|
|
58
|
-
className: "h-9 rounded-md bg-gray-900 px-4 text-sm font-semibold text-white transition-colors hover:bg-gray-800 disabled:cursor-not-allowed disabled:opacity-50",
|
|
58
|
+
className: "h-9 rounded-md bg-gray-900 px-4 text-sm font-semibold text-white transition-colors hover:bg-gray-800 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-100",
|
|
59
59
|
children: selectLabel
|
|
60
60
|
})]
|
|
61
61
|
});
|
|
62
62
|
return /* @__PURE__ */ jsxs("div", {
|
|
63
|
-
className:
|
|
63
|
+
className: twMerge("relative", className),
|
|
64
64
|
children: [
|
|
65
65
|
/* @__PURE__ */ jsxs(Popover, {
|
|
66
66
|
open: isOpen && results.length > 0,
|
|
@@ -73,7 +73,7 @@ const SearchAutocomplete = (props) => {
|
|
|
73
73
|
onKeyDown: handleKeyDown,
|
|
74
74
|
placeholder,
|
|
75
75
|
disabled,
|
|
76
|
-
className: "max-w-xs text-gray-700"
|
|
76
|
+
className: "max-w-xs text-gray-700 dark:text-slate-200"
|
|
77
77
|
})
|
|
78
78
|
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
79
79
|
align: "start",
|
|
@@ -101,7 +101,7 @@ const SearchAutocomplete = (props) => {
|
|
|
101
101
|
})
|
|
102
102
|
}, option.value);
|
|
103
103
|
return /* @__PURE__ */ jsxs("div", {
|
|
104
|
-
className: "flex items-center justify-between gap-2 rounded-md px-2 py-1.5 hover:bg-gray-100",
|
|
104
|
+
className: "flex items-center justify-between gap-2 rounded-md px-2 py-1.5 hover:bg-gray-100 dark:hover:bg-slate-700",
|
|
105
105
|
children: [renderOption ? /* @__PURE__ */ jsx("div", {
|
|
106
106
|
className: "min-w-0 flex-1",
|
|
107
107
|
children: renderOption(option)
|
|
@@ -109,19 +109,19 @@ const SearchAutocomplete = (props) => {
|
|
|
109
109
|
className: "min-w-0 flex-1",
|
|
110
110
|
children: [
|
|
111
111
|
/* @__PURE__ */ jsx("p", {
|
|
112
|
-
className: "truncate text-sm font-medium text-gray-900",
|
|
112
|
+
className: "truncate text-sm font-medium text-gray-900 dark:text-slate-50",
|
|
113
113
|
children: option.label
|
|
114
114
|
}),
|
|
115
115
|
option.version && /* @__PURE__ */ jsxs("p", {
|
|
116
|
-
className: "truncate text-xs text-gray-500",
|
|
116
|
+
className: "truncate text-xs text-gray-500 dark:text-slate-400",
|
|
117
117
|
children: ["v", option.version]
|
|
118
118
|
}),
|
|
119
119
|
option.description && /* @__PURE__ */ jsx("p", {
|
|
120
|
-
className: "truncate text-xs text-gray-500",
|
|
120
|
+
className: "truncate text-xs text-gray-500 dark:text-slate-400",
|
|
121
121
|
children: option.description
|
|
122
122
|
}),
|
|
123
123
|
option.meta && /* @__PURE__ */ jsx("p", {
|
|
124
|
-
className: "truncate text-xs text-gray-400",
|
|
124
|
+
className: "truncate text-xs text-gray-400 dark:text-slate-500",
|
|
125
125
|
children: option.meta
|
|
126
126
|
})
|
|
127
127
|
]
|
|
@@ -129,12 +129,12 @@ const SearchAutocomplete = (props) => {
|
|
|
129
129
|
className: "flex shrink-0 items-center justify-center",
|
|
130
130
|
children: selectingContent
|
|
131
131
|
}) : option.disabled ? /* @__PURE__ */ jsx("span", {
|
|
132
|
-
className: "shrink-0 rounded-md bg-gray-100 px-3 py-1 text-xs font-medium text-gray-500",
|
|
132
|
+
className: "shrink-0 rounded-md bg-gray-100 px-3 py-1 text-xs font-medium text-gray-500 dark:bg-slate-700 dark:text-slate-400",
|
|
133
133
|
children: option.disabledLabel ?? "Unavailable"
|
|
134
134
|
}) : /* @__PURE__ */ jsx("button", {
|
|
135
135
|
onClick: () => void handleSelect(option.value),
|
|
136
136
|
disabled: selectingValue === option.value,
|
|
137
|
-
className: "shrink-0 rounded-md bg-gray-900 px-3 py-1 text-xs font-medium text-white transition-colors hover:bg-gray-800 disabled:opacity-50",
|
|
137
|
+
className: "shrink-0 rounded-md bg-gray-900 px-3 py-1 text-xs font-medium text-white transition-colors hover:bg-gray-800 disabled:opacity-50 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-100",
|
|
138
138
|
children: selectingValue === option.value ? "..." : selectLabel
|
|
139
139
|
})]
|
|
140
140
|
}, option.value);
|
|
@@ -143,15 +143,15 @@ const SearchAutocomplete = (props) => {
|
|
|
143
143
|
})]
|
|
144
144
|
}),
|
|
145
145
|
loading && /* @__PURE__ */ jsx("p", {
|
|
146
|
-
className: "mt-1 text-xs text-gray-500",
|
|
146
|
+
className: "mt-1 text-xs text-gray-500 dark:text-slate-400",
|
|
147
147
|
children: "Searching..."
|
|
148
148
|
}),
|
|
149
149
|
error && /* @__PURE__ */ jsx("p", {
|
|
150
|
-
className: "mt-1 text-xs text-red-600",
|
|
150
|
+
className: "mt-1 text-xs text-red-600 dark:text-red-100",
|
|
151
151
|
children: error
|
|
152
152
|
}),
|
|
153
153
|
!loading && !error && query.trim() && results.length === 0 && !isOpen && /* @__PURE__ */ jsx("p", {
|
|
154
|
-
className: "mt-1 text-xs text-gray-500",
|
|
154
|
+
className: "mt-1 text-xs text-gray-500 dark:text-slate-400",
|
|
155
155
|
children: "No results found"
|
|
156
156
|
})
|
|
157
157
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-autocomplete.js","names":["cn","React","useCallback","useState","Input","Popover","PopoverAnchor","PopoverContent","useSearchAutocomplete","SearchAutocomplete","props","fetchOptions","onSelect","selectLabel","selectingContent","placeholder","disabled","loading","externalLoading","className","renderOption","renderRow","keepOpenSelector","debounceMs","query","setQuery","results","isLoading","error","isOpen","setIsOpen","handleQueryChange","selectingValue","setSelectingValue","handleInputChange","e","target","value","handleSelect","handleSubmit","trim","handleKeyDown","key","preventDefault","length","closest","map","option","label","version","description","meta","disabledLabel"],"sources":["../../../../src/ui/components/search-autocomplete/search-autocomplete.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\nimport React, { useCallback, useState } from \"react\";\nimport { Input } from \"../input/input.js\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"../popover/popover.js\";\nimport type { SearchAutocompleteProps } from \"./types.js\";\nimport { useSearchAutocomplete } from \"./use-search-autocomplete.js\";\n\nexport const SearchAutocomplete: React.FC<SearchAutocompleteProps> = (\n props,\n) => {\n const {\n fetchOptions,\n onSelect,\n selectLabel = \"Select\",\n selectingContent,\n placeholder = \"Search...\",\n disabled = false,\n loading: externalLoading = false,\n className,\n renderOption,\n renderRow,\n keepOpenSelector,\n debounceMs = 300,\n } = props;\n\n const {\n query,\n setQuery,\n results,\n isLoading,\n error,\n isOpen,\n setIsOpen,\n handleQueryChange,\n } = useSearchAutocomplete({ fetchOptions, debounceMs });\n\n const [selectingValue, setSelectingValue] = useState<string | null>(null);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleQueryChange(e.target.value);\n },\n [handleQueryChange],\n );\n\n const handleSelect = useCallback(\n async (value: string) => {\n setSelectingValue(value);\n try {\n await onSelect(value);\n setQuery(\"\");\n setIsOpen(false);\n } catch {\n // error handled by caller\n } finally {\n setSelectingValue(null);\n }\n },\n [onSelect, setQuery, setIsOpen],\n );\n\n const handleSubmit = useCallback(() => {\n if (query.trim()) {\n void handleSelect(query.trim());\n }\n }, [query, handleSelect]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (!fetchOptions && query.trim()) {\n handleSubmit();\n }\n }\n },\n [fetchOptions, query, handleSubmit],\n );\n\n const loading = isLoading || externalLoading;\n\n // Fallback: plain text input + submit when no fetchOptions\n if (!fetchOptions) {\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <Input\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || selectingValue !== null}\n className=\"max-w-xs text-gray-700\"\n />\n <button\n onClick={handleSubmit}\n disabled={disabled || !query.trim() || selectingValue !== null}\n className=\"h-9 rounded-md bg-gray-900 px-4 text-sm font-semibold text-white transition-colors hover:bg-gray-800 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {selectLabel}\n </button>\n </div>\n );\n }\n\n return (\n <div className={cn(\"relative\", className)}>\n <Popover open={isOpen && results.length > 0} onOpenChange={setIsOpen}>\n <PopoverAnchor asChild>\n <Input\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n className=\"max-w-xs text-gray-700\"\n />\n </PopoverAnchor>\n <PopoverContent\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n if (keepOpenSelector) {\n const target = e.target as HTMLElement | null;\n if (target?.closest(keepOpenSelector)) {\n e.preventDefault();\n return;\n }\n }\n setIsOpen(false);\n }}\n className=\"max-h-80 overflow-visible p-1\"\n >\n <div className=\"max-h-80 overflow-y-auto\">\n {results.map((option) => {\n if (renderRow) {\n return (\n <div key={option.value} className=\"rounded-md\">\n {renderRow(option, {\n selectingValue,\n selectLabel,\n selectingContent,\n handleSelect: (value) => void handleSelect(value),\n })}\n </div>\n );\n }\n return (\n <div\n key={option.value}\n className=\"flex items-center justify-between gap-2 rounded-md px-2 py-1.5 hover:bg-gray-100\"\n >\n {renderOption ? (\n <div className=\"min-w-0 flex-1\">{renderOption(option)}</div>\n ) : (\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate text-sm font-medium text-gray-900\">\n {option.label}\n </p>\n {option.version && (\n <p className=\"truncate text-xs text-gray-500\">\n v{option.version}\n </p>\n )}\n {option.description && (\n <p className=\"truncate text-xs text-gray-500\">\n {option.description}\n </p>\n )}\n {option.meta && (\n <p className=\"truncate text-xs text-gray-400\">\n {option.meta}\n </p>\n )}\n </div>\n )}\n {selectingValue === option.value && selectingContent ? (\n <div className=\"flex shrink-0 items-center justify-center\">\n {selectingContent}\n </div>\n ) : option.disabled ? (\n <span className=\"shrink-0 rounded-md bg-gray-100 px-3 py-1 text-xs font-medium text-gray-500\">\n {option.disabledLabel ?? \"Unavailable\"}\n </span>\n ) : (\n <button\n onClick={() => void handleSelect(option.value)}\n disabled={selectingValue === option.value}\n className=\"shrink-0 rounded-md bg-gray-900 px-3 py-1 text-xs font-medium text-white transition-colors hover:bg-gray-800 disabled:opacity-50\"\n >\n {selectingValue === option.value ? \"...\" : selectLabel}\n </button>\n )}\n </div>\n );\n })}\n </div>\n </PopoverContent>\n </Popover>\n {loading && <p className=\"mt-1 text-xs text-gray-500\">Searching...</p>}\n {error && <p className=\"mt-1 text-xs text-red-600\">{error}</p>}\n {!loading &&\n !error &&\n query.trim() &&\n results.length === 0 &&\n !isOpen && (\n <p className=\"mt-1 text-xs text-gray-500\">No results found</p>\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search-autocomplete.js","names":["twMerge","React","useCallback","useState","Input","Popover","PopoverAnchor","PopoverContent","useSearchAutocomplete","SearchAutocomplete","props","fetchOptions","onSelect","selectLabel","selectingContent","placeholder","disabled","loading","externalLoading","className","renderOption","renderRow","keepOpenSelector","debounceMs","query","setQuery","results","isLoading","error","isOpen","setIsOpen","handleQueryChange","selectingValue","setSelectingValue","handleInputChange","e","target","value","handleSelect","handleSubmit","trim","handleKeyDown","key","preventDefault","length","closest","map","option","label","version","description","meta","disabledLabel"],"sources":["../../../../src/ui/components/search-autocomplete/search-autocomplete.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport React, { useCallback, useState } from \"react\";\nimport { Input } from \"../input/input.js\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"../popover/popover.js\";\nimport type { SearchAutocompleteProps } from \"./types.js\";\nimport { useSearchAutocomplete } from \"./use-search-autocomplete.js\";\n\nexport const SearchAutocomplete: React.FC<SearchAutocompleteProps> = (\n props,\n) => {\n const {\n fetchOptions,\n onSelect,\n selectLabel = \"Select\",\n selectingContent,\n placeholder = \"Search...\",\n disabled = false,\n loading: externalLoading = false,\n className,\n renderOption,\n renderRow,\n keepOpenSelector,\n debounceMs = 300,\n } = props;\n\n const {\n query,\n setQuery,\n results,\n isLoading,\n error,\n isOpen,\n setIsOpen,\n handleQueryChange,\n } = useSearchAutocomplete({ fetchOptions, debounceMs });\n\n const [selectingValue, setSelectingValue] = useState<string | null>(null);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleQueryChange(e.target.value);\n },\n [handleQueryChange],\n );\n\n const handleSelect = useCallback(\n async (value: string) => {\n setSelectingValue(value);\n try {\n await onSelect(value);\n setQuery(\"\");\n setIsOpen(false);\n } catch {\n // error handled by caller\n } finally {\n setSelectingValue(null);\n }\n },\n [onSelect, setQuery, setIsOpen],\n );\n\n const handleSubmit = useCallback(() => {\n if (query.trim()) {\n void handleSelect(query.trim());\n }\n }, [query, handleSelect]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (!fetchOptions && query.trim()) {\n handleSubmit();\n }\n }\n },\n [fetchOptions, query, handleSubmit],\n );\n\n const loading = isLoading || externalLoading;\n\n // Fallback: plain text input + submit when no fetchOptions\n if (!fetchOptions) {\n return (\n <div className={twMerge(\"flex items-center gap-2\", className)}>\n <Input\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || selectingValue !== null}\n className=\"max-w-xs text-gray-700 dark:text-slate-200\"\n />\n <button\n onClick={handleSubmit}\n disabled={disabled || !query.trim() || selectingValue !== null}\n className=\"h-9 rounded-md bg-gray-900 px-4 text-sm font-semibold text-white transition-colors hover:bg-gray-800 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-100\"\n >\n {selectLabel}\n </button>\n </div>\n );\n }\n\n return (\n <div className={twMerge(\"relative\", className)}>\n <Popover open={isOpen && results.length > 0} onOpenChange={setIsOpen}>\n <PopoverAnchor asChild>\n <Input\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n className=\"max-w-xs text-gray-700 dark:text-slate-200\"\n />\n </PopoverAnchor>\n <PopoverContent\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n if (keepOpenSelector) {\n const target = e.target as HTMLElement | null;\n if (target?.closest(keepOpenSelector)) {\n e.preventDefault();\n return;\n }\n }\n setIsOpen(false);\n }}\n className=\"max-h-80 overflow-visible p-1\"\n >\n <div className=\"max-h-80 overflow-y-auto\">\n {results.map((option) => {\n if (renderRow) {\n return (\n <div key={option.value} className=\"rounded-md\">\n {renderRow(option, {\n selectingValue,\n selectLabel,\n selectingContent,\n handleSelect: (value) => void handleSelect(value),\n })}\n </div>\n );\n }\n return (\n <div\n key={option.value}\n className=\"flex items-center justify-between gap-2 rounded-md px-2 py-1.5 hover:bg-gray-100 dark:hover:bg-slate-700\"\n >\n {renderOption ? (\n <div className=\"min-w-0 flex-1\">{renderOption(option)}</div>\n ) : (\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate text-sm font-medium text-gray-900 dark:text-slate-50\">\n {option.label}\n </p>\n {option.version && (\n <p className=\"truncate text-xs text-gray-500 dark:text-slate-400\">\n v{option.version}\n </p>\n )}\n {option.description && (\n <p className=\"truncate text-xs text-gray-500 dark:text-slate-400\">\n {option.description}\n </p>\n )}\n {option.meta && (\n <p className=\"truncate text-xs text-gray-400 dark:text-slate-500\">\n {option.meta}\n </p>\n )}\n </div>\n )}\n {selectingValue === option.value && selectingContent ? (\n <div className=\"flex shrink-0 items-center justify-center\">\n {selectingContent}\n </div>\n ) : option.disabled ? (\n <span className=\"shrink-0 rounded-md bg-gray-100 px-3 py-1 text-xs font-medium text-gray-500 dark:bg-slate-700 dark:text-slate-400\">\n {option.disabledLabel ?? \"Unavailable\"}\n </span>\n ) : (\n <button\n onClick={() => void handleSelect(option.value)}\n disabled={selectingValue === option.value}\n className=\"shrink-0 rounded-md bg-gray-900 px-3 py-1 text-xs font-medium text-white transition-colors hover:bg-gray-800 disabled:opacity-50 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-100\"\n >\n {selectingValue === option.value ? \"...\" : selectLabel}\n </button>\n )}\n </div>\n );\n })}\n </div>\n </PopoverContent>\n </Popover>\n {loading && (\n <p className=\"mt-1 text-xs text-gray-500 dark:text-slate-400\">\n Searching...\n </p>\n )}\n {error && (\n <p className=\"mt-1 text-xs text-red-600 dark:text-red-100\">{error}</p>\n )}\n {!loading &&\n !error &&\n query.trim() &&\n results.length === 0 &&\n !isOpen && (\n <p className=\"mt-1 text-xs text-gray-500 dark:text-slate-400\">\n No results found\n </p>\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as SearchAutocompleteProps, r as SearchAutocompleteRowContext, t as SearchAutocompleteOption } from "../../../types-
|
|
1
|
+
import { n as SearchAutocompleteProps, r as SearchAutocompleteRowContext, t as SearchAutocompleteOption } from "../../../types-C04Q_Fan.js";
|
|
2
2
|
export { SearchAutocompleteOption, SearchAutocompleteProps, SearchAutocompleteRowContext };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as useSearchAutocomplete } from "../../../use-search-autocomplete-
|
|
1
|
+
import { t as useSearchAutocomplete } from "../../../use-search-autocomplete-IfcQ_gKh.js";
|
|
2
2
|
export { useSearchAutocomplete };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Content } from "../../../content-
|
|
1
|
+
import { t as Content } from "../../../content-BHWIqmio.js";
|
|
2
2
|
export { Content };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as Icon } from "../../../icon-C4QOpsdI.js";
|
|
2
2
|
import { CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "../command/command.js";
|
|
3
3
|
import { CommandItemList } from "./subcomponents/CommandItemList.js";
|
|
4
4
|
import { useEffect } from "react";
|
|
5
|
+
import { twMerge } from "tailwind-merge";
|
|
5
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
import { useCommandState } from "cmdk";
|
|
7
8
|
//#region src/ui/components/select-field/content.tsx
|
|
@@ -25,13 +26,13 @@ const Content = ({ searchable, commandListRef, multiple, selectedValues, selecti
|
|
|
25
26
|
].includes(e.key) && enabledOptions.length > 0)) e.stopPropagation();
|
|
26
27
|
},
|
|
27
28
|
wrapperClassName: "rounded-t",
|
|
28
|
-
className: "text-gray-900 dark:text-
|
|
29
|
+
className: "text-gray-900 dark:text-slate-50"
|
|
29
30
|
}), /* @__PURE__ */ jsxs(CommandList, {
|
|
30
31
|
ref: commandListRef,
|
|
31
32
|
tabIndex: !searchable ? 0 : void 0,
|
|
32
33
|
children: [
|
|
33
34
|
/* @__PURE__ */ jsx(CommandEmpty, {
|
|
34
|
-
className: "p-4 text-center text-sm/5 font-normal text-gray-700 dark:text-
|
|
35
|
+
className: "p-4 text-center text-sm/5 font-normal text-gray-700 dark:text-slate-200",
|
|
35
36
|
children: "No results found."
|
|
36
37
|
}),
|
|
37
38
|
multiple && cmdkSearch === "" && /* @__PURE__ */ jsx(CommandGroup, {
|
|
@@ -40,14 +41,14 @@ const Content = ({ searchable, commandListRef, multiple, selectedValues, selecti
|
|
|
40
41
|
value: "select-all",
|
|
41
42
|
onSelect: toggleAll,
|
|
42
43
|
disabled: false,
|
|
43
|
-
className:
|
|
44
|
+
className: twMerge("cursor-pointer", "data-[selected=true]:bg-gray-100 dark:data-[selected=true]:bg-slate-600"),
|
|
44
45
|
role: "option",
|
|
45
46
|
"aria-selected": selectedValues.length === enabledOptions.length,
|
|
46
47
|
children: /* @__PURE__ */ jsxs("div", {
|
|
47
48
|
className: "flex w-full items-center gap-2",
|
|
48
49
|
children: [
|
|
49
50
|
selectionIcon === "auto" && /* @__PURE__ */ jsx("div", {
|
|
50
|
-
className:
|
|
51
|
+
className: twMerge("flex size-4 items-center justify-center rounded-md border", "border-gray-700 dark:border-slate-200", selectedValues.length === enabledOptions.length && "bg-gray-900 text-gray-50 dark:bg-slate-50 dark:text-slate-900"),
|
|
51
52
|
children: selectedValues.length === enabledOptions.length && /* @__PURE__ */ jsx(Icon, {
|
|
52
53
|
name: "Checkmark",
|
|
53
54
|
size: 16
|
|
@@ -58,11 +59,11 @@ const Content = ({ searchable, commandListRef, multiple, selectedValues, selecti
|
|
|
58
59
|
children: selectionIconPosition === "left" && selectedValues.length === enabledOptions.length && /* @__PURE__ */ jsx(Icon, {
|
|
59
60
|
name: "Checkmark",
|
|
60
61
|
size: 16,
|
|
61
|
-
className: "text-gray-900 dark:text-
|
|
62
|
+
className: "text-gray-900 dark:text-slate-50"
|
|
62
63
|
})
|
|
63
64
|
}),
|
|
64
65
|
/* @__PURE__ */ jsx("span", {
|
|
65
|
-
className: "text-sm/4 font-semibold text-gray-900 dark:text-
|
|
66
|
+
className: "text-sm/4 font-semibold text-gray-900 dark:text-slate-50",
|
|
66
67
|
children: selectedValues.length === enabledOptions.length ? "Deselect All" : "Select All"
|
|
67
68
|
}),
|
|
68
69
|
selectionIcon === "checkmark" && selectionIconPosition === "right" && /* @__PURE__ */ jsx("div", {
|
|
@@ -70,7 +71,7 @@ const Content = ({ searchable, commandListRef, multiple, selectedValues, selecti
|
|
|
70
71
|
children: selectedValues.length === enabledOptions.length && /* @__PURE__ */ jsx(Icon, {
|
|
71
72
|
name: "Checkmark",
|
|
72
73
|
size: 16,
|
|
73
|
-
className: "text-gray-900 dark:text-
|
|
74
|
+
className: "text-gray-900 dark:text-slate-50"
|
|
74
75
|
})
|
|
75
76
|
})
|
|
76
77
|
]
|
|
@@ -90,7 +91,7 @@ const Content = ({ searchable, commandListRef, multiple, selectedValues, selecti
|
|
|
90
91
|
toggleOption,
|
|
91
92
|
tabIndex: !searchable ? 0 : void 0
|
|
92
93
|
}),
|
|
93
|
-
favoriteOptions.length > 0 && /* @__PURE__ */ jsx("div", { className: "my-1 border-b border-gray-300 dark:border-
|
|
94
|
+
favoriteOptions.length > 0 && /* @__PURE__ */ jsx("div", { className: "my-1 border-b border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100" }),
|
|
94
95
|
/* @__PURE__ */ jsx(CommandItemList, {
|
|
95
96
|
options,
|
|
96
97
|
selectedValues,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","names":["
|
|
1
|
+
{"version":3,"file":"content.js","names":["Icon","twMerge","useCommandState","React","useEffect","CommandEmpty","CommandGroup","CommandInput","CommandItem","CommandList","CommandItemList","Content","searchable","commandListRef","multiple","selectedValues","selectionIcon","selectionIconPosition","options","toggleAll","toggleOption","favoriteOptions","enabledOptions","filter","opt","disabled","hasAnyIcon","some","icon","cmdkSearch","state","search","current","scrollTo","top","behavior","e","isOptionsRelatedKey","includes","key","length","stopPropagation","undefined"],"sources":["../../../../src/ui/components/select-field/content.tsx"],"sourcesContent":["import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useCommandState } from \"cmdk\";\nimport React, { useEffect } from \"react\";\nimport {\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"../command/command.js\";\nimport type { SelectProps } from \"../enum-field/types.js\";\nimport { CommandItemList } from \"./subcomponents/CommandItemList.js\";\ninterface ContentProps {\n searchable?: boolean;\n commandListRef: React.RefObject<HTMLDivElement | null>;\n multiple?: boolean;\n selectedValues: string[];\n selectionIcon: \"auto\" | \"checkmark\";\n selectionIconPosition: \"left\" | \"right\";\n options: SelectProps[\"options\"];\n favoriteOptions?: SelectProps[\"options\"];\n toggleAll: () => void;\n toggleOption: (value: string) => void;\n}\n\nexport const Content: React.FC<ContentProps> = ({\n searchable,\n commandListRef,\n multiple,\n selectedValues,\n selectionIcon,\n selectionIconPosition,\n options = [],\n toggleAll,\n toggleOption,\n favoriteOptions = [],\n}) => {\n const enabledOptions = options.filter((opt) => !opt.disabled);\n const hasAnyIcon = options.some((opt) => opt.icon);\n\n const cmdkSearch = useCommandState((state) => state.search);\n // scroll to top when search change\n useEffect(() => {\n commandListRef.current?.scrollTo({ top: 0, behavior: \"instant\" });\n }, [commandListRef, cmdkSearch]);\n\n return (\n <>\n {searchable && (\n <CommandInput\n placeholder=\"Search...\"\n onKeyDown={(e) => {\n const isOptionsRelatedKey = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"Enter\",\n ].includes(e.key);\n if (!(isOptionsRelatedKey && enabledOptions.length > 0)) {\n e.stopPropagation();\n }\n }}\n wrapperClassName=\"rounded-t\"\n className=\"text-gray-900 dark:text-slate-50\"\n />\n )}\n <CommandList ref={commandListRef} tabIndex={!searchable ? 0 : undefined}>\n <CommandEmpty className=\"p-4 text-center text-sm/5 font-normal text-gray-700 dark:text-slate-200\">\n No results found.\n </CommandEmpty>\n {multiple && cmdkSearch === \"\" && (\n <CommandGroup className=\"pb-0\">\n <CommandItem\n value=\"select-all\"\n onSelect={toggleAll}\n disabled={false}\n className={twMerge(\n \"cursor-pointer\",\n \"data-[selected=true]:bg-gray-100 dark:data-[selected=true]:bg-slate-600\",\n )}\n role=\"option\"\n aria-selected={selectedValues.length === enabledOptions.length}\n >\n <div className=\"flex w-full items-center gap-2\">\n {selectionIcon === \"auto\" && (\n <div\n className={twMerge(\n \"flex size-4 items-center justify-center rounded-md border\",\n \"border-gray-700 dark:border-slate-200\",\n selectedValues.length === enabledOptions.length &&\n \"bg-gray-900 text-gray-50 dark:bg-slate-50 dark:text-slate-900\",\n )}\n >\n {selectedValues.length === enabledOptions.length && (\n <Icon name=\"Checkmark\" size={16} />\n )}\n </div>\n )}\n {selectionIcon === \"checkmark\" &&\n !(selectionIconPosition === \"right\" && hasAnyIcon) && (\n <div className=\"size-4\">\n {selectionIconPosition === \"left\" &&\n selectedValues.length === enabledOptions.length && (\n <Icon\n name=\"Checkmark\"\n size={16}\n className=\"text-gray-900 dark:text-slate-50\"\n />\n )}\n </div>\n )}\n <span className=\"text-sm/4 font-semibold text-gray-900 dark:text-slate-50\">\n {selectedValues.length === enabledOptions.length\n ? \"Deselect All\"\n : \"Select All\"}\n </span>\n {selectionIcon === \"checkmark\" &&\n selectionIconPosition === \"right\" && (\n <div className=\"ml-auto size-4\">\n {selectedValues.length === enabledOptions.length && (\n <Icon\n name=\"Checkmark\"\n size={16}\n className=\"text-gray-900 dark:text-slate-50\"\n />\n )}\n </div>\n )}\n </div>\n </CommandItem>\n </CommandGroup>\n )}\n <CommandGroup\n className={multiple && cmdkSearch === \"\" ? \"pt-0\" : undefined}\n >\n <CommandItemList\n options={favoriteOptions}\n selectedValues={selectedValues}\n multiple={multiple}\n selectionIcon={selectionIcon}\n selectionIconPosition={selectionIconPosition}\n hasAnyIcon={hasAnyIcon}\n toggleOption={toggleOption}\n tabIndex={!searchable ? 0 : undefined}\n />\n\n {favoriteOptions.length > 0 && (\n <div className=\"my-1 border-b border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100\" />\n )}\n <CommandItemList\n options={options}\n selectedValues={selectedValues}\n multiple={multiple}\n selectionIcon={selectionIcon}\n selectionIconPosition={selectionIconPosition}\n hasAnyIcon={hasAnyIcon}\n toggleOption={toggleOption}\n tabIndex={!searchable ? 0 : undefined}\n />\n </CommandGroup>\n </CommandList>\n </>\n );\n};\n"],"mappings":";;;;;;;;AA0BA,MAAaW,WAAmC,EAC9CC,YACAC,gBACAC,UACAC,gBACAC,eACAC,uBACAC,UAAU,EAAE,EACZC,WACAC,cACAC,kBAAkB,EAAA,OACd;CACJ,MAAMC,iBAAiBJ,QAAQK,QAAQC,QAAQ,CAACA,IAAIC,SAAS;CAC7D,MAAMC,aAAaR,QAAQS,MAAMH,QAAQA,IAAII,KAAK;CAElD,MAAMC,aAAa3B,iBAAiB4B,UAAUA,MAAMC,OAAO;AAE3D3B,iBAAgB;AACdS,iBAAemB,SAASC,SAAS;GAAEC,KAAK;GAAGC,UAAU;GAAW,CAAC;IAChE,CAACtB,gBAAgBgB,WAAW,CAAC;AAEhC,QACE,qBAAA,YAAA,EAAA,UAAA,CACGjB,cACC,oBAAC,cAAD;EACE,aAAY;EACZ,YAAYwB,MAAM;AAMhB,OAAI,EALwB;IAC1B;IACA;IACA;IACD,CAACE,SAASF,EAAEG,IAAI,IACYjB,eAAekB,SAAS,GACnDJ,GAAEK,iBAAiB;;EAGvB,kBAAiB;EACjB,WAAU;EAEb,CAAA,EACD,qBAAC,aAAD;EAAa,KAAK5B;EAAgB,UAAU,CAACD,aAAa,IAAI8B,KAAAA;YAA9D;GACE,oBAAC,cAAD;IAAc,WAAU;cAAyE;IAEnF,CAAA;GACb5B,YAAYe,eAAe,MAC1B,oBAAC,cAAD;IAAc,WAAU;cACtB,oBAAC,aAAD;KACE,OAAM;KACN,UAAUV;KACV,UAAU;KACV,WAAWlB,QACT,kBACA,0EACD;KACD,MAAK;KACL,iBAAec,eAAeyB,WAAWlB,eAAekB;eAExD,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACGxB,kBAAkB,UACjB,oBAAC,OAAD;QACE,WAAWf,QACT,6DACA,yCACAc,eAAeyB,WAAWlB,eAAekB,UACvC,gEACH;kBAEAzB,eAAeyB,WAAWlB,eAAekB,UACxC,oBAAC,MAAD;SAAM,MAAK;SAAY,MAAM;SAC9B,CAAA;QAEJ,CAAA;OACAxB,kBAAkB,eACjB,EAAEC,0BAA0B,WAAWS,eACrC,oBAAC,OAAD;QAAK,WAAU;kBACZT,0BAA0B,UACzBF,eAAeyB,WAAWlB,eAAekB,UACvC,oBAAC,MAAD;SACE,MAAK;SACL,MAAM;SACN,WAAU;SAEb,CAAA;QAEN,CAAA;OACH,oBAAC,QAAD;QAAM,WAAU;kBACbzB,eAAeyB,WAAWlB,eAAekB,SACtC,iBACA;QACA,CAAA;OACLxB,kBAAkB,eACjBC,0BAA0B,WACxB,oBAAC,OAAD;QAAK,WAAU;kBACZF,eAAeyB,WAAWlB,eAAekB,UACxC,oBAAC,MAAD;SACE,MAAK;SACL,MAAM;SACN,WAAU;SAEb,CAAA;QAEJ,CAAA;OACA;;KACM,CAAA;IAEhB,CAAA;GACD,qBAAC,cAAD;IACE,WAAW1B,YAAYe,eAAe,KAAK,SAASa,KAAAA;cADtD;KAGE,oBAAC,iBAAD;MACE,SAASrB;MACON;MACND;MACKE;MACQC;MACXS;MACEN;MACd,UAAU,CAACR,aAAa,IAAI8B,KAAAA;MAAU,CAAA;KAGvCrB,gBAAgBmB,SAAS,KACxB,oBAAC,OAAD,EAAK,WAAU,6FAChB,CAAA;KACD,oBAAC,iBAAD;MACWtB;MACOH;MACND;MACKE;MACQC;MACXS;MACEN;MACd,UAAU,CAACR,aAAa,IAAI8B,KAAAA;MAAU,CAAA;KAE5B;;GACH;IACZ,EAAA,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as SelectFieldProps, r as SelectFieldRaw, t as SelectField } from "../../../select-field-
|
|
1
|
+
import { n as SelectFieldProps, r as SelectFieldRaw, t as SelectField } from "../../../select-field-C97QIhUL.js";
|
|
2
2
|
export { SelectField, SelectFieldProps, SelectFieldRaw };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { t as cn } from "../../../src-BgKEHW0i.js";
|
|
2
1
|
import { Button } from "../button/button.js";
|
|
3
2
|
import { FormLabel } from "../form-label/form-label.js";
|
|
4
3
|
import { FormMessageList } from "../form-message/message-list.js";
|
|
@@ -11,6 +10,7 @@ import { Content } from "./content.js";
|
|
|
11
10
|
import { SelectedContent } from "./selected-content.js";
|
|
12
11
|
import { useSelectField } from "./use-select-field.js";
|
|
13
12
|
import React, { useCallback, useId } from "react";
|
|
13
|
+
import { twMerge } from "tailwind-merge";
|
|
14
14
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
//#region src/ui/components/select-field/select-field.tsx
|
|
16
16
|
const SelectFieldRaw = /* @__PURE__ */ React.forwardRef(({ options = [], favoriteOptions = [], defaultValue, value, onChange, onBlur, id: propId, name, label, required, disabled, errors = [], warnings = [], multiple, selectionIcon = "auto", selectionIconPosition = "left", searchable, description, placeholder, className, contentClassName, contentAlign = "start", ...props }, ref) => {
|
|
@@ -58,7 +58,7 @@ const SelectFieldRaw = /* @__PURE__ */ React.forwardRef(({ options = [], favorit
|
|
|
58
58
|
"aria-label": label ? void 0 : multiple ? "Multi select" : "Select",
|
|
59
59
|
"aria-required": required,
|
|
60
60
|
"aria-expanded": isPopoverOpen,
|
|
61
|
-
className:
|
|
61
|
+
className: twMerge("flex h-9 w-full items-center justify-between px-3 py-2", "rounded-md border border-gray-300 bg-gray-50 dark:border-slate-600 dark:bg-slate-700 dark:text-slate-100", "hover:border-gray-300 hover:bg-gray-100 dark:hover:border-slate-500 dark:hover:bg-slate-600 dark:hover:text-slate-100", "dark:hover:border-slate-500 dark:hover:bg-slate-600 dark:hover:text-slate-100", "focus:ring-1 focus:ring-gray-900 focus:ring-offset-0 focus:outline-none dark:focus:ring-slate-300", "focus-visible:ring-1 focus-visible:ring-gray-900 focus-visible:ring-offset-0 dark:focus-visible:ring-slate-300", disabled && ["pointer-events-auto! cursor-not-allowed bg-gray-50 dark:bg-slate-800", "hover:border-gray-300 hover:bg-gray-50 dark:hover:border-slate-500 dark:hover:bg-slate-600 dark:hover:text-slate-100"], className),
|
|
62
62
|
...props,
|
|
63
63
|
ref,
|
|
64
64
|
children: /* @__PURE__ */ jsx(SelectedContent, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-field.js","names":["cn","React","useCallback","useId","Button","Command","FormDescription","FormGroup","FormLabel","FormMessageList","Popover","PopoverContent","PopoverTrigger","withFieldValidation","Content","SelectedContent","useSelectField","SelectFieldRaw","forwardRef","options","favoriteOptions","defaultValue","value","onChange","onBlur","id","propId","name","label","required","disabled","errors","warnings","multiple","selectionIcon","selectionIconPosition","searchable","description","placeholder","className","contentClassName","contentAlign","props","ref","prefix","selectedValues","isPopoverOpen","commandListRef","toggleOption","handleClear","toggleAll","handleOpenChange","onTriggerBlur","e","length","preventDefault","target","control","focus","open","document","activeElement","undefined","find","opt","SelectField","displayName"],"sources":["../../../../src/ui/components/select-field/select-field.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\nimport React, { useCallback, useId } from \"react\";\nimport type { FieldErrorHandling, InputBaseProps } from \"../../types.js\";\nimport { Button } from \"../button/button.js\";\nimport { Command } from \"../command/command.js\";\nimport type { SelectOption, SelectProps } from \"../enum-field/types.js\";\nimport { FormDescription } from \"../form-description/form-description.js\";\nimport { FormGroup } from \"../form-group/form-group.js\";\nimport { FormLabel } from \"../form-label/form-label.js\";\nimport { FormMessageList } from \"../form-message/message-list.js\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover/popover.js\";\nimport { withFieldValidation } from \"../with-field-validation/with-field-validation.js\";\nimport { Content } from \"./content.js\";\nimport { SelectedContent } from \"./selected-content.js\";\nimport { useSelectField } from \"./use-select-field.js\";\n\ntype SelectFieldBaseProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n | keyof InputBaseProps<string | string[]>\n | keyof FieldErrorHandling\n | keyof SelectProps\n>;\n\nexport type SelectFieldProps = SelectFieldBaseProps &\n InputBaseProps<string | string[]> &\n FieldErrorHandling & {\n options?: SelectOption[];\n favoriteOptions?: SelectOption[];\n } & Omit<SelectProps, \"options\" | \"favoriteOptions\">;\n\nexport const SelectFieldRaw = React.forwardRef<\n HTMLButtonElement,\n SelectFieldProps\n>(\n (\n {\n // core functionality props\n options = [],\n favoriteOptions = [],\n defaultValue,\n value,\n onChange,\n onBlur,\n\n // form-related props\n id: propId,\n name,\n label,\n required,\n disabled,\n\n // validation props\n errors = [],\n warnings = [],\n\n // behavior props\n multiple,\n selectionIcon = \"auto\",\n selectionIconPosition = \"left\",\n searchable,\n\n // display props\n description,\n placeholder,\n className,\n contentClassName,\n contentAlign = \"start\",\n\n ...props\n },\n ref,\n ) => {\n const prefix = useId();\n const id = propId ?? `${prefix}-select`;\n\n const {\n selectedValues,\n isPopoverOpen,\n commandListRef,\n toggleOption,\n handleClear,\n toggleAll,\n handleOpenChange,\n } = useSelectField({\n options,\n multiple,\n defaultValue,\n value,\n onChange,\n });\n\n const onTriggerBlur = useCallback(\n (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!isPopoverOpen) {\n // trigger the blur event when the trigger loses focus but the popover is not open,\n // because when the popover is open, the trigger loses focus but the select as a component still has the focus\n onBlur?.(e);\n }\n },\n [onBlur, isPopoverOpen],\n );\n\n return (\n <FormGroup>\n {label && (\n <FormLabel\n htmlFor={id}\n required={required}\n disabled={disabled}\n hasError={errors.length > 0}\n inline={false}\n onClick={(e) => {\n e.preventDefault();\n (e.target as HTMLLabelElement).control?.focus();\n }}\n >\n {label}\n </FormLabel>\n )}\n <Popover\n open={isPopoverOpen}\n onOpenChange={(open) => {\n handleOpenChange(open);\n // if the popover is closing and it was not by the trigger button\n if (!open && document.activeElement?.id !== id) {\n onBlur?.({ target: {} } as React.FocusEvent<HTMLButtonElement>);\n }\n }}\n >\n <PopoverTrigger asChild={true}>\n {/* TODO: create a trigger component */}\n <Button\n id={id}\n name={name}\n type=\"button\"\n role=\"combobox\"\n onBlur={onTriggerBlur}\n disabled={disabled}\n aria-invalid={errors.length > 0}\n aria-label={\n label ? undefined : multiple ? \"Multi select\" : \"Select\"\n }\n aria-required={required}\n aria-expanded={isPopoverOpen}\n className={cn(\n \"flex h-9 w-full items-center justify-between px-3 py-2\",\n \"rounded-md border border-gray-300 bg-white dark:border-charcoal-700 dark:bg-charcoal-900\",\n \"hover:border-gray-300 hover:bg-gray-100\",\n \"dark:hover:border-charcoal-700 dark:hover:bg-charcoal-800\",\n \"focus:ring-1 focus:ring-gray-900 focus:ring-offset-0 focus:outline-none dark:focus:ring-charcoal-300\",\n \"focus-visible:ring-1 focus-visible:ring-gray-900 focus-visible:ring-offset-0 dark:focus-visible:ring-charcoal-300\",\n disabled && [\n \"pointer-events-auto! cursor-not-allowed bg-gray-50\",\n \"hover:border-gray-300 hover:bg-gray-50 dark:hover:border-charcoal-700 dark:hover:bg-charcoal-900\",\n ],\n className,\n )}\n {...props}\n ref={ref}\n >\n <SelectedContent\n selectedValues={selectedValues}\n options={[...favoriteOptions, ...options]}\n multiple={multiple}\n searchable={searchable}\n placeholder={placeholder}\n handleClear={handleClear}\n />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align={contentAlign}\n onEscapeKeyDown={(e) => {\n e.preventDefault();\n handleOpenChange(false);\n }}\n className={contentClassName}\n >\n <Command\n defaultValue={\n !multiple && selectedValues[0]\n ? options.find((opt) => opt.value === selectedValues[0])\n ?.label\n : undefined\n }\n >\n <Content\n favoriteOptions={favoriteOptions}\n searchable={searchable}\n commandListRef={commandListRef}\n multiple={multiple}\n selectedValues={selectedValues}\n selectionIcon={selectionIcon}\n selectionIconPosition={selectionIconPosition}\n options={options}\n toggleAll={toggleAll}\n toggleOption={toggleOption}\n />\n </Command>\n </PopoverContent>\n </Popover>\n {description && <FormDescription>{description}</FormDescription>}\n {warnings.length > 0 && (\n <FormMessageList messages={warnings} type=\"warning\" />\n )}\n {errors.length > 0 && (\n <FormMessageList messages={errors} type=\"error\" />\n )}\n </FormGroup>\n );\n },\n);\n\nexport const SelectField =\n withFieldValidation<SelectFieldProps>(SelectFieldRaw);\n\nSelectField.displayName = \"SelectField\";\n"],"mappings":";;;;;;;;;;;;;;;AA8BA,MAAaiB,iBAAiBhB,sBAAMiB,YAKhC,EAEEC,UAAU,EAAE,EACZC,kBAAkB,EAAE,EACpBC,cACAC,OACAC,UACAC,QAGAC,IAAIC,QACJC,MACAC,OACAC,UACAC,UAGAC,SAAS,EAAE,EACXC,WAAW,EAAE,EAGbC,UACAC,gBAAgB,QAChBC,wBAAwB,QACxBC,YAGAC,aACAC,aACAC,WACAC,kBACAC,eAAe,SAEf,GAAGC,SAELC,QACG;CACH,MAAMC,SAASzC,OAAO;CACtB,MAAMsB,KAAKC,UAAU,GAAGkB,OAAM;CAE9B,MAAM,EACJC,gBACAC,eACAC,gBACAC,cACAC,aACAC,WACAC,qBACEnC,eAAe;EACjBG;EACAc;EACAZ;EACAC;EACAC;EACD,CAAC;CAEF,MAAM6B,gBAAgBlD,aACnBmD,MAA2C;AAC1C,MAAI,CAACP,cAGHtB,UAAS6B,EAAE;IAGf,CAAC7B,QAAQsB,cACX,CAAC;AAED,QACE,qBAAC,WAAD,EAAA,UAAA;EACGlB,SACC,oBAAC,WAAD;GACE,SAASH;GACCI;GACAC;GACV,UAAUC,OAAOuB,SAAS;GAC1B,QAAQ;GACR,UAAUD,MAAM;AACdA,MAAEE,gBAAgB;AACjBF,MAAEG,OAA4BC,SAASC,OAAO;;aAGhD9B;GAEJ,CAAA;EACD,qBAAC,SAAD;GACE,MAAMkB;GACN,eAAea,SAAS;AACtBR,qBAAiBQ,KAAK;AAEtB,QAAI,CAACA,QAAQC,SAASC,eAAepC,OAAOA,GAC1CD,UAAS,EAAEgC,QAAQ,EAAC,EAA0C,CAAC;;aANrE,CAUE,oBAAC,gBAAD;IAAgB,SAAS;cAEvB,oBAAC,QAAD;KACM/B;KACEE;KACN,MAAK;KACL,MAAK;KACL,QAAQyB;KACEtB;KACV,gBAAcC,OAAOuB,SAAS;KAC9B,cACE1B,QAAQkC,KAAAA,IAAY7B,WAAW,iBAAiB;KAElD,iBAAeJ;KACf,iBAAeiB;KACf,WAAW9C,GACT,0DACA,4FACA,2CACA,6DACA,wGACA,qHACA8B,YAAY,CACV,sDACA,mGACD,EACDS,UACD;KACD,GAAIG;KACCC;eAEL,oBAAC,iBAAD;MACkBE;MAChB,SAAS,CAAC,GAAGzB,iBAAiB,GAAGD,QAAQ;MAC/Bc;MACEG;MACCE;MACAW;MAAY,CAAA;KAErB,CAAA;IACM,CAAA,EAChB,oBAAC,gBAAD;IACE,OAAOR;IACP,kBAAkBY,MAAM;AACtBA,OAAEE,gBAAgB;AAClBJ,sBAAiB,MAAM;;IAEzB,WAAWX;cAEX,oBAAC,SAAD;KACE,cACE,CAACP,YAAYY,eAAe,KACxB1B,QAAQ4C,MAAMC,QAAQA,IAAI1C,UAAUuB,eAAe,GAAG,EAClDjB,QACJkC,KAAAA;eAGN,oBAAC,SAAD;MACmB1C;MACLgB;MACIW;MACNd;MACMY;MACDX;MACQC;MACdhB;MACE+B;MACGF;MAAa,CAAA;KAEtB,CAAA;IACK,CAAA,CACT;;EACRX,eAAe,oBAAC,iBAAD,EAAA,UAAkBA,aAA8B,CAAA;EAC/DL,SAASsB,SAAS,KACjB,oBAAC,iBAAD;GAAiB,UAAUtB;GAAU,MAAK;GAC3C,CAAA;EACAD,OAAOuB,SAAS,KACf,oBAAC,iBAAD;GAAiB,UAAUvB;GAAQ,MAAK;GACzC,CAAA;EACS,EAAA,CAAA;EAGjB;AAED,MAAakC,cACXpD,oBAAsCI,eAAe;AAEvDgD,YAAYC,cAAc"}
|
|
1
|
+
{"version":3,"file":"select-field.js","names":["twMerge","React","useCallback","useId","Button","Command","FormDescription","FormGroup","FormLabel","FormMessageList","Popover","PopoverContent","PopoverTrigger","withFieldValidation","Content","SelectedContent","useSelectField","SelectFieldRaw","forwardRef","options","favoriteOptions","defaultValue","value","onChange","onBlur","id","propId","name","label","required","disabled","errors","warnings","multiple","selectionIcon","selectionIconPosition","searchable","description","placeholder","className","contentClassName","contentAlign","props","ref","prefix","selectedValues","isPopoverOpen","commandListRef","toggleOption","handleClear","toggleAll","handleOpenChange","onTriggerBlur","e","length","preventDefault","target","control","focus","open","document","activeElement","undefined","find","opt","SelectField","displayName"],"sources":["../../../../src/ui/components/select-field/select-field.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport React, { useCallback, useId } from \"react\";\nimport type { FieldErrorHandling, InputBaseProps } from \"../../types.js\";\nimport { Button } from \"../button/button.js\";\nimport { Command } from \"../command/command.js\";\nimport type { SelectOption, SelectProps } from \"../enum-field/types.js\";\nimport { FormDescription } from \"../form-description/form-description.js\";\nimport { FormGroup } from \"../form-group/form-group.js\";\nimport { FormLabel } from \"../form-label/form-label.js\";\nimport { FormMessageList } from \"../form-message/message-list.js\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover/popover.js\";\nimport { withFieldValidation } from \"../with-field-validation/with-field-validation.js\";\nimport { Content } from \"./content.js\";\nimport { SelectedContent } from \"./selected-content.js\";\nimport { useSelectField } from \"./use-select-field.js\";\n\ntype SelectFieldBaseProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n | keyof InputBaseProps<string | string[]>\n | keyof FieldErrorHandling\n | keyof SelectProps\n>;\n\nexport type SelectFieldProps = SelectFieldBaseProps &\n InputBaseProps<string | string[]> &\n FieldErrorHandling & {\n options?: SelectOption[];\n favoriteOptions?: SelectOption[];\n } & Omit<SelectProps, \"options\" | \"favoriteOptions\">;\n\nexport const SelectFieldRaw = React.forwardRef<\n HTMLButtonElement,\n SelectFieldProps\n>(\n (\n {\n // core functionality props\n options = [],\n favoriteOptions = [],\n defaultValue,\n value,\n onChange,\n onBlur,\n\n // form-related props\n id: propId,\n name,\n label,\n required,\n disabled,\n\n // validation props\n errors = [],\n warnings = [],\n\n // behavior props\n multiple,\n selectionIcon = \"auto\",\n selectionIconPosition = \"left\",\n searchable,\n\n // display props\n description,\n placeholder,\n className,\n contentClassName,\n contentAlign = \"start\",\n\n ...props\n },\n ref,\n ) => {\n const prefix = useId();\n const id = propId ?? `${prefix}-select`;\n\n const {\n selectedValues,\n isPopoverOpen,\n commandListRef,\n toggleOption,\n handleClear,\n toggleAll,\n handleOpenChange,\n } = useSelectField({\n options,\n multiple,\n defaultValue,\n value,\n onChange,\n });\n\n const onTriggerBlur = useCallback(\n (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!isPopoverOpen) {\n // trigger the blur event when the trigger loses focus but the popover is not open,\n // because when the popover is open, the trigger loses focus but the select as a component still has the focus\n onBlur?.(e);\n }\n },\n [onBlur, isPopoverOpen],\n );\n\n return (\n <FormGroup>\n {label && (\n <FormLabel\n htmlFor={id}\n required={required}\n disabled={disabled}\n hasError={errors.length > 0}\n inline={false}\n onClick={(e) => {\n e.preventDefault();\n (e.target as HTMLLabelElement).control?.focus();\n }}\n >\n {label}\n </FormLabel>\n )}\n <Popover\n open={isPopoverOpen}\n onOpenChange={(open) => {\n handleOpenChange(open);\n // if the popover is closing and it was not by the trigger button\n if (!open && document.activeElement?.id !== id) {\n onBlur?.({ target: {} } as React.FocusEvent<HTMLButtonElement>);\n }\n }}\n >\n <PopoverTrigger asChild={true}>\n {/* TODO: create a trigger component */}\n <Button\n id={id}\n name={name}\n type=\"button\"\n role=\"combobox\"\n onBlur={onTriggerBlur}\n disabled={disabled}\n aria-invalid={errors.length > 0}\n aria-label={\n label ? undefined : multiple ? \"Multi select\" : \"Select\"\n }\n aria-required={required}\n aria-expanded={isPopoverOpen}\n className={twMerge(\n \"flex h-9 w-full items-center justify-between px-3 py-2\",\n \"rounded-md border border-gray-300 bg-gray-50 dark:border-slate-600 dark:bg-slate-700 dark:text-slate-100\",\n \"hover:border-gray-300 hover:bg-gray-100 dark:hover:border-slate-500 dark:hover:bg-slate-600 dark:hover:text-slate-100\",\n \"dark:hover:border-slate-500 dark:hover:bg-slate-600 dark:hover:text-slate-100\",\n \"focus:ring-1 focus:ring-gray-900 focus:ring-offset-0 focus:outline-none dark:focus:ring-slate-300\",\n \"focus-visible:ring-1 focus-visible:ring-gray-900 focus-visible:ring-offset-0 dark:focus-visible:ring-slate-300\",\n disabled && [\n \"pointer-events-auto! cursor-not-allowed bg-gray-50 dark:bg-slate-800\",\n \"hover:border-gray-300 hover:bg-gray-50 dark:hover:border-slate-500 dark:hover:bg-slate-600 dark:hover:text-slate-100\",\n ],\n className,\n )}\n {...props}\n ref={ref}\n >\n <SelectedContent\n selectedValues={selectedValues}\n options={[...favoriteOptions, ...options]}\n multiple={multiple}\n searchable={searchable}\n placeholder={placeholder}\n handleClear={handleClear}\n />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align={contentAlign}\n onEscapeKeyDown={(e) => {\n e.preventDefault();\n handleOpenChange(false);\n }}\n className={contentClassName}\n >\n <Command\n defaultValue={\n !multiple && selectedValues[0]\n ? options.find((opt) => opt.value === selectedValues[0])\n ?.label\n : undefined\n }\n >\n <Content\n favoriteOptions={favoriteOptions}\n searchable={searchable}\n commandListRef={commandListRef}\n multiple={multiple}\n selectedValues={selectedValues}\n selectionIcon={selectionIcon}\n selectionIconPosition={selectionIconPosition}\n options={options}\n toggleAll={toggleAll}\n toggleOption={toggleOption}\n />\n </Command>\n </PopoverContent>\n </Popover>\n {description && <FormDescription>{description}</FormDescription>}\n {warnings.length > 0 && (\n <FormMessageList messages={warnings} type=\"warning\" />\n )}\n {errors.length > 0 && (\n <FormMessageList messages={errors} type=\"error\" />\n )}\n </FormGroup>\n );\n },\n);\n\nexport const SelectField =\n withFieldValidation<SelectFieldProps>(SelectFieldRaw);\n\nSelectField.displayName = \"SelectField\";\n"],"mappings":";;;;;;;;;;;;;;;AA8BA,MAAaiB,iBAAiBhB,sBAAMiB,YAKhC,EAEEC,UAAU,EAAE,EACZC,kBAAkB,EAAE,EACpBC,cACAC,OACAC,UACAC,QAGAC,IAAIC,QACJC,MACAC,OACAC,UACAC,UAGAC,SAAS,EAAE,EACXC,WAAW,EAAE,EAGbC,UACAC,gBAAgB,QAChBC,wBAAwB,QACxBC,YAGAC,aACAC,aACAC,WACAC,kBACAC,eAAe,SAEf,GAAGC,SAELC,QACG;CACH,MAAMC,SAASzC,OAAO;CACtB,MAAMsB,KAAKC,UAAU,GAAGkB,OAAM;CAE9B,MAAM,EACJC,gBACAC,eACAC,gBACAC,cACAC,aACAC,WACAC,qBACEnC,eAAe;EACjBG;EACAc;EACAZ;EACAC;EACAC;EACD,CAAC;CAEF,MAAM6B,gBAAgBlD,aACnBmD,MAA2C;AAC1C,MAAI,CAACP,cAGHtB,UAAS6B,EAAE;IAGf,CAAC7B,QAAQsB,cACX,CAAC;AAED,QACE,qBAAC,WAAD,EAAA,UAAA;EACGlB,SACC,oBAAC,WAAD;GACE,SAASH;GACCI;GACAC;GACV,UAAUC,OAAOuB,SAAS;GAC1B,QAAQ;GACR,UAAUD,MAAM;AACdA,MAAEE,gBAAgB;AACjBF,MAAEG,OAA4BC,SAASC,OAAO;;aAGhD9B;GAEJ,CAAA;EACD,qBAAC,SAAD;GACE,MAAMkB;GACN,eAAea,SAAS;AACtBR,qBAAiBQ,KAAK;AAEtB,QAAI,CAACA,QAAQC,SAASC,eAAepC,OAAOA,GAC1CD,UAAS,EAAEgC,QAAQ,EAAC,EAA0C,CAAC;;aANrE,CAUE,oBAAC,gBAAD;IAAgB,SAAS;cAEvB,oBAAC,QAAD;KACM/B;KACEE;KACN,MAAK;KACL,MAAK;KACL,QAAQyB;KACEtB;KACV,gBAAcC,OAAOuB,SAAS;KAC9B,cACE1B,QAAQkC,KAAAA,IAAY7B,WAAW,iBAAiB;KAElD,iBAAeJ;KACf,iBAAeiB;KACf,WAAW9C,QACT,0DACA,4GACA,yHACA,iFACA,qGACA,kHACA8B,YAAY,CACV,wEACA,uHACD,EACDS,UACD;KACD,GAAIG;KACCC;eAEL,oBAAC,iBAAD;MACkBE;MAChB,SAAS,CAAC,GAAGzB,iBAAiB,GAAGD,QAAQ;MAC/Bc;MACEG;MACCE;MACAW;MAAY,CAAA;KAErB,CAAA;IACM,CAAA,EAChB,oBAAC,gBAAD;IACE,OAAOR;IACP,kBAAkBY,MAAM;AACtBA,OAAEE,gBAAgB;AAClBJ,sBAAiB,MAAM;;IAEzB,WAAWX;cAEX,oBAAC,SAAD;KACE,cACE,CAACP,YAAYY,eAAe,KACxB1B,QAAQ4C,MAAMC,QAAQA,IAAI1C,UAAUuB,eAAe,GAAG,EAClDjB,QACJkC,KAAAA;eAGN,oBAAC,SAAD;MACmB1C;MACLgB;MACIW;MACNd;MACMY;MACDX;MACQC;MACdhB;MACE+B;MACGF;MAAa,CAAA;KAEtB,CAAA;IACK,CAAA,CACT;;EACRX,eAAe,oBAAC,iBAAD,EAAA,UAAkBA,aAA8B,CAAA;EAC/DL,SAASsB,SAAS,KACjB,oBAAC,iBAAD;GAAiB,UAAUtB;GAAU,MAAK;GAC3C,CAAA;EACAD,OAAOuB,SAAS,KACf,oBAAC,iBAAD;GAAiB,UAAUvB;GAAQ,MAAK;GACzC,CAAA;EACS,EAAA,CAAA;EAGjB;AAED,MAAakC,cACXpD,oBAAsCI,eAAe;AAEvDgD,YAAYC,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SelectedContent } from "../../../selected-content-
|
|
1
|
+
import { t as SelectedContent } from "../../../selected-content-CGsK5PR4.js";
|
|
2
2
|
export { SelectedContent };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as Icon } from "../../../icon-C4QOpsdI.js";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import { twMerge } from "tailwind-merge";
|
|
3
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
5
|
//#region src/ui/components/select-field/selected-content.tsx
|
|
5
6
|
const SelectedContent = ({ selectedValues, options = [], multiple, searchable, placeholder, handleClear }) => {
|
|
@@ -11,31 +12,31 @@ const SelectedContent = ({ selectedValues, options = [], multiple, searchable, p
|
|
|
11
12
|
return IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "size-4" });
|
|
12
13
|
};
|
|
13
14
|
if (selectedValues.length === 0) return /* @__PURE__ */ jsxs("div", {
|
|
14
|
-
className:
|
|
15
|
+
className: twMerge("mx-auto flex w-full items-center", placeholder ? "justify-between" : "justify-end"),
|
|
15
16
|
children: [placeholder && /* @__PURE__ */ jsx("span", {
|
|
16
|
-
className: "text-sm/5 font-normal text-gray-
|
|
17
|
+
className: "text-sm/5 font-normal text-gray-700 dark:text-slate-200",
|
|
17
18
|
children: placeholder
|
|
18
19
|
}), searchable ? /* @__PURE__ */ jsx(Icon, {
|
|
19
20
|
name: "CaretSort",
|
|
20
21
|
size: 16,
|
|
21
|
-
className: "cursor-pointer text-gray-700 dark:text-
|
|
22
|
+
className: "cursor-pointer text-gray-700 dark:text-slate-200"
|
|
22
23
|
}) : /* @__PURE__ */ jsx(Icon, {
|
|
23
24
|
name: "ChevronDown",
|
|
24
25
|
size: 16,
|
|
25
|
-
className: "cursor-pointer text-gray-700 dark:text-
|
|
26
|
+
className: "cursor-pointer text-gray-700 dark:text-slate-200"
|
|
26
27
|
})]
|
|
27
28
|
});
|
|
28
29
|
return /* @__PURE__ */ jsxs("div", {
|
|
29
30
|
className: "flex w-full items-center justify-between gap-2",
|
|
30
31
|
children: [/* @__PURE__ */ jsx("div", {
|
|
31
|
-
className:
|
|
32
|
+
className: twMerge("max-w-full truncate text-gray-900 dark:text-slate-50", !multiple && "flex items-center gap-2"),
|
|
32
33
|
children: selectedValues.map((value, index) => {
|
|
33
34
|
const option = options.find((o) => o.value === value);
|
|
34
35
|
return !multiple ? /* @__PURE__ */ jsxs(React.Fragment, { children: [renderIcon(option?.icon), /* @__PURE__ */ jsx("span", {
|
|
35
36
|
className: "truncate text-sm/5 font-normal",
|
|
36
37
|
children: option?.label
|
|
37
38
|
})] }, value) : /* @__PURE__ */ jsx("span", {
|
|
38
|
-
className:
|
|
39
|
+
className: twMerge("text-sm/5 font-normal", index !== selectedValues.length - 1 && "mr-1"),
|
|
39
40
|
children: index !== selectedValues.length - 1 ? `${option?.label},` : option?.label
|
|
40
41
|
}, value);
|
|
41
42
|
})
|
|
@@ -51,16 +52,16 @@ const SelectedContent = ({ selectedValues, options = [], multiple, searchable, p
|
|
|
51
52
|
children: /* @__PURE__ */ jsx(Icon, {
|
|
52
53
|
name: "XmarkLight",
|
|
53
54
|
size: 16,
|
|
54
|
-
className: "cursor-pointer text-gray-700 dark:text-
|
|
55
|
+
className: "cursor-pointer text-gray-700 dark:text-slate-200"
|
|
55
56
|
})
|
|
56
57
|
}), searchable ? /* @__PURE__ */ jsx(Icon, {
|
|
57
58
|
name: "CaretSort",
|
|
58
59
|
size: 16,
|
|
59
|
-
className: "cursor-pointer text-gray-700 dark:text-
|
|
60
|
+
className: "cursor-pointer text-gray-700 dark:text-slate-200"
|
|
60
61
|
}) : /* @__PURE__ */ jsx(Icon, {
|
|
61
62
|
name: "ChevronDown",
|
|
62
63
|
size: 16,
|
|
63
|
-
className: "cursor-pointer text-gray-700 dark:text-
|
|
64
|
+
className: "cursor-pointer text-gray-700 dark:text-slate-200"
|
|
64
65
|
})]
|
|
65
66
|
})]
|
|
66
67
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selected-content.js","names":["
|
|
1
|
+
{"version":3,"file":"selected-content.js","names":["Icon","twMerge","React","SelectedContent","selectedValues","options","multiple","searchable","placeholder","handleClear","renderIcon","IconComponent","length","map","value","index","option","find","o","icon","label","e","preventDefault","stopPropagation"],"sources":["../../../../src/ui/components/select-field/selected-content.tsx"],"sourcesContent":["import type { IconName } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport React from \"react\";\nimport type { SelectProps } from \"../enum-field/types.js\";\n\ninterface SelectedContentProps {\n selectedValues: string[];\n options: SelectProps[\"options\"];\n multiple?: boolean;\n searchable?: boolean;\n placeholder?: string;\n handleClear: () => void;\n}\n\nexport const SelectedContent: React.FC<SelectedContentProps> = ({\n selectedValues,\n options = [],\n multiple,\n searchable,\n placeholder,\n handleClear,\n}) => {\n const renderIcon = (\n IconComponent:\n | IconName\n | React.ComponentType<{ className?: string }>\n | undefined,\n ) => {\n if (typeof IconComponent === \"string\") {\n return <Icon name={IconComponent} size={16} />;\n }\n return IconComponent && <IconComponent className=\"size-4\" />;\n };\n\n if (selectedValues.length === 0) {\n return (\n <div\n className={twMerge(\n \"mx-auto flex w-full items-center\",\n placeholder ? \"justify-between\" : \"justify-end\",\n )}\n >\n {placeholder && (\n <span className=\"text-sm/5 font-normal text-gray-700 dark:text-slate-200\">\n {placeholder}\n </span>\n )}\n {searchable ? (\n <Icon\n name=\"CaretSort\"\n size={16}\n className=\"cursor-pointer text-gray-700 dark:text-slate-200\"\n />\n ) : (\n <Icon\n name=\"ChevronDown\"\n size={16}\n className=\"cursor-pointer text-gray-700 dark:text-slate-200\"\n />\n )}\n </div>\n );\n }\n\n return (\n <div className=\"flex w-full items-center justify-between gap-2\">\n <div\n className={twMerge(\n \"max-w-full truncate text-gray-900 dark:text-slate-50\",\n !multiple && \"flex items-center gap-2\",\n )}\n >\n {selectedValues.map((value, index) => {\n const option = options.find((o) => o.value === value);\n return !multiple ? (\n <React.Fragment key={value}>\n {renderIcon(option?.icon)}\n <span className=\"truncate text-sm/5 font-normal\">\n {option?.label}\n </span>\n </React.Fragment>\n ) : (\n <span\n key={value}\n className={twMerge(\n \"text-sm/5 font-normal\",\n index !== selectedValues.length - 1 && \"mr-1\",\n )}\n >\n {index !== selectedValues.length - 1\n ? `${option?.label},`\n : option?.label}\n </span>\n );\n })}\n </div>\n <div className=\"flex items-center justify-between gap-2\">\n {multiple && selectedValues.length > 0 && (\n <div\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleClear();\n }}\n className=\"size-4 p-0\"\n >\n <Icon\n name=\"XmarkLight\"\n size={16}\n className=\"cursor-pointer text-gray-700 dark:text-slate-200\"\n />\n </div>\n )}\n {searchable ? (\n <Icon\n name=\"CaretSort\"\n size={16}\n className=\"cursor-pointer text-gray-700 dark:text-slate-200\"\n />\n ) : (\n <Icon\n name=\"ChevronDown\"\n size={16}\n className=\"cursor-pointer text-gray-700 dark:text-slate-200\"\n />\n )}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;AAeA,MAAaG,mBAAmD,EAC9DC,gBACAC,UAAU,EAAE,EACZC,UACAC,YACAC,aACAC,kBACI;CACJ,MAAMC,cACJC,kBAIG;AACH,MAAI,OAAOA,kBAAkB,SAC3B,QAAO,oBAAC,MAAD;GAAM,MAAMA;GAAe,MAAM;GAAM,CAAA;AAEhD,SAAOA,iBAAiB,oBAAC,eAAD,EAAe,WAAU,UAAW,CAAA;;AAG9D,KAAIP,eAAeQ,WAAW,EAC5B,QACE,qBAAC,OAAD;EACE,WAAWX,QACT,oCACAO,cAAc,oBAAoB,cACnC;YAJH,CAMGA,eACC,oBAAC,QAAD;GAAM,WAAU;aACbA;GAEJ,CAAA,EACAD,aACC,oBAAC,MAAD;GACE,MAAK;GACL,MAAM;GACN,WAAU;GACV,CAAA,GAEF,oBAAC,MAAD;GACE,MAAK;GACL,MAAM;GACN,WAAU;GAEb,CAAA,CACG;;AAIV,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,oBAAC,OAAD;GACE,WAAWN,QACT,wDACA,CAACK,YAAY,0BACd;aAEAF,eAAeS,KAAKC,OAAOC,UAAU;IACpC,MAAMC,SAASX,QAAQY,MAAMC,MAAMA,EAAEJ,UAAUA,MAAM;AACrD,WAAO,CAACR,WACN,qBAAC,MAAM,UAAP,EAAA,UAAA,CACGI,WAAWM,QAAQG,KAAK,EACzB,oBAAC,QAAD;KAAM,WAAU;eACbH,QAAQI;KACL,CAAA,CACS,EAAA,EALIN,MAKJ,GAEjB,oBAAC,QAAD;KAEE,WAAWb,QACT,yBACAc,UAAUX,eAAeQ,SAAS,KAAK,OACxC;eAEAG,UAAUX,eAAeQ,SAAS,IAC/B,GAAGI,QAAQI,MAAK,KAChBJ,QAAQI;KAEf,EAVQN,MAUR;KACD;GACC,CAAA,EACL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACGR,YAAYF,eAAeQ,SAAS,KACnC,oBAAC,OAAD;IACE,UAAUS,MAAM;AACdA,OAAEC,gBAAgB;AAClBD,OAAEE,iBAAiB;AACnBd,kBAAa;;IAEf,WAAU;cAEV,oBAAC,MAAD;KACE,MAAK;KACL,MAAM;KACN,WAAU;KAAkD,CAAA;IAGjE,CAAA,EACAF,aACC,oBAAC,MAAD;IACE,MAAK;IACL,MAAM;IACN,WAAU;IACV,CAAA,GAEF,oBAAC,MAAD;IACE,MAAK;IACL,MAAM;IACN,WAAU;IAEb,CAAA,CACE;KACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandItemList.d.ts","names":[],"sources":["../../../../../src/ui/components/select-field/subcomponents/CommandItemList.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"CommandItemList.d.ts","names":[],"sources":["../../../../../src/ui/components/select-field/subcomponents/CommandItemList.tsx"],"mappings":";;;;UAOU,oBAAA;EACR,OAAA,EAAS,WAAA;EACT,cAAA;EACA,QAAA;EACA,aAAA;EACA,qBAAA;EACA,UAAA;EACA,YAAA,GAAe,KAAA;EACf,QAAA;AAAA;AAAA,cA2BW,eAAA,EAAiB,KAAA,CAAM,EAAA,CAAG,oBAAA"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as Icon } from "../../../../icon-C4QOpsdI.js";
|
|
2
2
|
import { CommandItem } from "../../command/command.js";
|
|
3
3
|
import "react";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
4
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
//#region src/ui/components/select-field/subcomponents/CommandItemList.tsx
|
|
6
7
|
const renderIcon = (IconComponent) => {
|
|
7
8
|
if (typeof IconComponent === "string") return /* @__PURE__ */ jsx(Icon, {
|
|
8
9
|
name: IconComponent,
|
|
9
10
|
size: 16,
|
|
10
|
-
className:
|
|
11
|
+
className: twMerge("text-gray-700 dark:text-slate-200")
|
|
11
12
|
});
|
|
12
|
-
return IconComponent && /* @__PURE__ */ jsx(IconComponent, { className:
|
|
13
|
+
return IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: twMerge("size-4", "text-gray-700 dark:text-slate-200") });
|
|
13
14
|
};
|
|
14
15
|
const CommandItemList = ({ options = [], selectedValues, multiple, selectionIcon, selectionIconPosition, hasAnyIcon, toggleOption, tabIndex }) => {
|
|
15
16
|
return /* @__PURE__ */ jsx(Fragment$1, { children: options.map((opt) => {
|
|
@@ -19,31 +20,31 @@ const CommandItemList = ({ options = [], selectedValues, multiple, selectionIcon
|
|
|
19
20
|
value: opt.label,
|
|
20
21
|
onSelect: () => !opt.disabled && toggleOption(opt.value),
|
|
21
22
|
disabled: opt.disabled,
|
|
22
|
-
className:
|
|
23
|
+
className: twMerge("cursor-pointer", "data-[selected=true]:bg-gray-100 dark:data-[selected=true]:bg-slate-500", opt.disabled && "pointer-events-auto! cursor-not-allowed hover:bg-transparent dark:hover:bg-slate-500"),
|
|
23
24
|
role: "option",
|
|
24
25
|
"aria-selected": isSelected,
|
|
25
26
|
children: [
|
|
26
27
|
selectionIcon === "auto" && (multiple ? /* @__PURE__ */ jsx("div", {
|
|
27
|
-
className:
|
|
28
|
+
className: twMerge("flex size-4 items-center justify-center rounded-md border", "border-gray-700 dark:border-slate-200", isSelected && "bg-gray-900 text-gray-50 dark:bg-slate-50 dark:text-slate-900"),
|
|
28
29
|
children: isSelected && /* @__PURE__ */ jsx(Icon, {
|
|
29
30
|
name: "Checkmark",
|
|
30
31
|
size: 16
|
|
31
32
|
})
|
|
32
33
|
}) : /* @__PURE__ */ jsx("div", {
|
|
33
|
-
className:
|
|
34
|
-
children: isSelected && /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-1/2 size-2.5 -translate-1/2 rounded-full bg-gray-900 dark:bg-
|
|
34
|
+
className: twMerge("relative size-4 rounded-full border", isSelected ? "border-gray-900 dark:border-slate-50" : "border-gray-800 dark:border-slate-100", "bg-transparent"),
|
|
35
|
+
children: isSelected && /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-1/2 size-2.5 -translate-1/2 rounded-full bg-gray-900 dark:bg-slate-50" })
|
|
35
36
|
})),
|
|
36
37
|
selectionIcon === "checkmark" && !(selectionIconPosition === "right" && hasAnyIcon) && /* @__PURE__ */ jsx("div", {
|
|
37
38
|
className: "size-4",
|
|
38
39
|
children: selectionIconPosition === "left" && isSelected && /* @__PURE__ */ jsx(Icon, {
|
|
39
40
|
name: "Checkmark",
|
|
40
41
|
size: 16,
|
|
41
|
-
className: "text-gray-900 dark:text-
|
|
42
|
+
className: "text-gray-900 dark:text-slate-50"
|
|
42
43
|
})
|
|
43
44
|
}),
|
|
44
45
|
renderIcon(opt.icon),
|
|
45
46
|
/* @__PURE__ */ jsx("span", {
|
|
46
|
-
className:
|
|
47
|
+
className: twMerge("flex-1 truncate text-sm/4 font-normal", "text-gray-700 dark:text-slate-200", opt.disabled && "text-gray-700 dark:text-slate-200"),
|
|
47
48
|
children: opt.label
|
|
48
49
|
}),
|
|
49
50
|
selectionIcon === "checkmark" && selectionIconPosition === "right" && /* @__PURE__ */ jsx("div", {
|
|
@@ -51,7 +52,7 @@ const CommandItemList = ({ options = [], selectedValues, multiple, selectionIcon
|
|
|
51
52
|
children: isSelected && /* @__PURE__ */ jsx(Icon, {
|
|
52
53
|
name: "Checkmark",
|
|
53
54
|
size: 16,
|
|
54
|
-
className: "text-gray-900 dark:text-
|
|
55
|
+
className: "text-gray-900 dark:text-slate-50"
|
|
55
56
|
})
|
|
56
57
|
})
|
|
57
58
|
]
|