@powerhousedao/design-system 6.0.0-dev.196 → 6.0.0-dev.197
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/{button-CRGaTu1H.d.ts → button-C8doazjv.d.ts} +1 -1
- package/dist/{button-CRGaTu1H.d.ts.map → button-C8doazjv.d.ts.map} +1 -1
- package/dist/{character-counter-sqhtpnM2.d.ts → character-counter-BWoglM2P.d.ts} +1 -1
- package/dist/{character-counter-sqhtpnM2.d.ts.map → character-counter-BWoglM2P.d.ts.map} +1 -1
- package/dist/{checkbox-WQJ1ELix.d.ts → checkbox-BueZ7Wg_.d.ts} +3 -3
- package/dist/{checkbox-WQJ1ELix.d.ts.map → checkbox-BueZ7Wg_.d.ts.map} +1 -1
- package/dist/{checkbox-base-kQOLgBSw.d.ts → checkbox-base-CZo-4eL0.d.ts} +1 -1
- package/dist/{checkbox-base-kQOLgBSw.d.ts.map → checkbox-base-CZo-4eL0.d.ts.map} +1 -1
- package/dist/{command-BVb5bGtc.d.ts → command--QCHwqST.d.ts} +8 -8
- package/dist/{command-BVb5bGtc.d.ts.map → command--QCHwqST.d.ts.map} +1 -1
- package/dist/connect/components/toast/toast.d.ts +16 -0
- package/dist/connect/components/toast/toast.d.ts.map +1 -0
- package/dist/connect/components/toast/toast.js +71 -0
- package/dist/connect/components/toast/toast.js.map +1 -0
- package/dist/connect/index.d.ts +3 -3
- package/dist/connect/index.js +3 -2
- package/dist/{connect-CrXsa33f.js → connect-D2wTJ-7r.js} +36 -366
- package/dist/connect-D2wTJ-7r.js.map +1 -0
- package/dist/{content-B-HaysyU.d.ts → content-DFFfr1mk.d.ts} +2 -2
- package/dist/{content-B-HaysyU.d.ts.map → content-DFFfr1mk.d.ts.map} +1 -1
- package/dist/document-timeline-FWiQhfIq.js +288 -0
- package/dist/document-timeline-FWiQhfIq.js.map +1 -0
- package/dist/{enum-field-gjkjO_WS.d.ts → enum-field-CBFI4x1f.d.ts} +4 -4
- package/dist/{enum-field-gjkjO_WS.d.ts.map → enum-field-CBFI4x1f.d.ts.map} +1 -1
- package/dist/{form-C1QA8m1k.d.ts → form-CKRKn0TQ.d.ts} +1 -1
- package/dist/{form-C1QA8m1k.d.ts.map → form-CKRKn0TQ.d.ts.map} +1 -1
- package/dist/{form-description-CJVMogCL.d.ts → form-description-CYkcMEzm.d.ts} +1 -1
- package/dist/{form-description-CJVMogCL.d.ts.map → form-description-CYkcMEzm.d.ts.map} +1 -1
- package/dist/{form-group-BDgpr5u8.d.ts → form-group-C8kL6pdZ.d.ts} +1 -1
- package/dist/form-group-C8kL6pdZ.d.ts.map +1 -0
- package/dist/{form-label-CCANBlbG.d.ts → form-label-b6nQi0XO.d.ts} +1 -1
- package/dist/{form-label-CCANBlbG.d.ts.map → form-label-b6nQi0XO.d.ts.map} +1 -1
- package/dist/{form-message-TYsO9BYM.d.ts → form-message-Dq72nBXz.d.ts} +1 -1
- package/dist/{form-message-TYsO9BYM.d.ts.map → form-message-Dq72nBXz.d.ts.map} +1 -1
- package/dist/{form-server-error-message-DM79ceCA.d.ts → form-server-error-message-DXbaiTfF.d.ts} +1 -1
- package/dist/{form-server-error-message-DM79ceCA.d.ts.map → form-server-error-message-DXbaiTfF.d.ts.map} +1 -1
- package/dist/{id-autocomplete-BafWC9wr.d.ts → id-autocomplete-CLC7zy-f.d.ts} +2 -2
- package/dist/{id-autocomplete-BafWC9wr.d.ts.map → id-autocomplete-CLC7zy-f.d.ts.map} +1 -1
- package/dist/{id-autocomplete-input-container-DxxI5DR6.d.ts → id-autocomplete-input-container-DsLTOkaT.d.ts} +2 -2
- package/dist/{id-autocomplete-input-container-DxxI5DR6.d.ts.map → id-autocomplete-input-container-DsLTOkaT.d.ts.map} +1 -1
- package/dist/{id-autocomplete-list-BHBavDro.d.ts → id-autocomplete-list-CFWHGDwL.d.ts} +2 -2
- package/dist/{id-autocomplete-list-BHBavDro.d.ts.map → id-autocomplete-list-CFWHGDwL.d.ts.map} +1 -1
- package/dist/{id-autocomplete-list-option-DlFexoVY.d.ts → id-autocomplete-list-option-fOnxSbzb.d.ts} +2 -2
- package/dist/{id-autocomplete-list-option-DlFexoVY.d.ts.map → id-autocomplete-list-option-fOnxSbzb.d.ts.map} +1 -1
- package/dist/{index-CuSjRT5A.d.ts → index-B6YyDoT1.d.ts} +1 -1
- package/dist/{index-CuSjRT5A.d.ts.map → index-B6YyDoT1.d.ts.map} +1 -1
- package/dist/{index-C37KRTG6.d.ts → index-U9etrdGX.d.ts} +3 -15
- package/dist/index-U9etrdGX.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/{input-Bl0zw1zI.d.ts → input-BpEQjaWV.d.ts} +1 -1
- package/dist/{input-Bl0zw1zI.d.ts.map → input-BpEQjaWV.d.ts.map} +1 -1
- package/dist/{json-viewer-B5JtYTX7.d.ts → json-viewer-DaTgmzkS.d.ts} +1 -1
- package/dist/{json-viewer-B5JtYTX7.d.ts.map → json-viewer-DaTgmzkS.d.ts.map} +1 -1
- package/dist/{message-list-BZ9ku5cz.d.ts → message-list-C4mPpBBa.d.ts} +2 -2
- package/dist/{message-list-BZ9ku5cz.d.ts.map → message-list-C4mPpBBa.d.ts.map} +1 -1
- package/dist/{popover-CD29J7Ou.d.ts → popover-XSBOuSih.d.ts} +1 -1
- package/dist/{popover-CD29J7Ou.d.ts.map → popover-XSBOuSih.d.ts.map} +1 -1
- package/dist/{radio-9EYSHlFT.d.ts → radio-eL0Oy86J.d.ts} +1 -1
- package/dist/{radio-9EYSHlFT.d.ts.map → radio-eL0Oy86J.d.ts.map} +1 -1
- package/dist/{radio-group-BT-3-R48.d.ts → radio-group-Bkli6nUz.d.ts} +1 -1
- package/dist/{radio-group-BT-3-R48.d.ts.map → radio-group-Bkli6nUz.d.ts.map} +1 -1
- package/dist/{radio-group-field-BeQEWaTA.d.ts → radio-group-field-z7q-PVyY.d.ts} +2 -2
- package/dist/{radio-group-field-BeQEWaTA.d.ts.map → radio-group-field-z7q-PVyY.d.ts.map} +1 -1
- package/dist/rwa/index.d.ts +2 -2
- package/dist/rwa/index.js +11 -10
- package/dist/rwa/index.js.map +1 -1
- package/dist/{search-autocomplete-BRGCFNv4.d.ts → search-autocomplete-BJJkrZ1i.d.ts} +2 -2
- package/dist/{search-autocomplete-BRGCFNv4.d.ts.map → search-autocomplete-BJJkrZ1i.d.ts.map} +1 -1
- package/dist/{select-field-CxQiIXRy.d.ts → select-field-D27IGJrV.d.ts} +2 -2
- package/dist/{select-field-CxQiIXRy.d.ts.map → select-field-D27IGJrV.d.ts.map} +1 -1
- package/dist/{selected-content-DPH03IS_.d.ts → selected-content-CdIw4hcC.d.ts} +2 -2
- package/dist/{selected-content-DPH03IS_.d.ts.map → selected-content-CdIw4hcC.d.ts.map} +1 -1
- package/dist/{splitted-input-diff-Cvmajf1T.d.ts → splitted-input-diff-Bjrw-jzX.d.ts} +2 -2
- package/dist/{splitted-input-diff-Cvmajf1T.d.ts.map → splitted-input-diff-Bjrw-jzX.d.ts.map} +1 -1
- package/dist/{src-BX8sU0Tq.js → src-8xf1ueaA.js} +3 -3
- package/dist/src-8xf1ueaA.js.map +1 -0
- package/dist/{text-field-D_SU7LsS.d.ts → text-field-Bi7Ze25A.d.ts} +3 -3
- package/dist/{text-field-D_SU7LsS.d.ts.map → text-field-Bi7Ze25A.d.ts.map} +1 -1
- package/dist/{text-input-BHnj0vwk.d.ts → text-input-BAO78Lzx.d.ts} +3 -3
- package/dist/{text-input-BHnj0vwk.d.ts.map → text-input-BAO78Lzx.d.ts.map} +1 -1
- package/dist/{text-input-diff-BX11t5bF.d.ts → text-input-diff-Bx-zFOZd.d.ts} +2 -2
- package/dist/{text-input-diff-BX11t5bF.d.ts.map → text-input-diff-Bx-zFOZd.d.ts.map} +1 -1
- package/dist/{tooltip-CJfsoXUL.d.ts → tooltip-CsucyiCV.d.ts} +1 -1
- package/dist/{tooltip-CJfsoXUL.d.ts.map → tooltip-CsucyiCV.d.ts.map} +1 -1
- package/dist/{types-BWOaVvle.d.ts → types-BTq-St7H.d.ts} +1 -1
- package/dist/{types-BWOaVvle.d.ts.map → types-BTq-St7H.d.ts.map} +1 -1
- package/dist/{types-xiS8yRsl.d.ts → types-Bsn62tJB.d.ts} +1 -1
- package/dist/{types-xiS8yRsl.d.ts.map → types-Bsn62tJB.d.ts.map} +1 -1
- package/dist/{types-DY2V2IQi.d.ts → types-C04Q_Fan.d.ts} +1 -1
- package/dist/{types-DY2V2IQi.d.ts.map → types-C04Q_Fan.d.ts.map} +1 -1
- package/dist/ui/components/button/button.d.ts +1 -1
- package/dist/ui/components/button/button.js +2 -2
- 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.map +1 -1
- package/dist/ui/components/checkbox/checkbox-base.d.ts +1 -1
- package/dist/ui/components/checkbox/checkbox-base.js +2 -2
- 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 +2 -2
- 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 +8 -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/enum-field.js +1 -1
- package/dist/ui/components/enum-field/enum-field.js.map +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/form.js +1 -1
- package/dist/ui/components/form/form.js.map +1 -1
- package/dist/ui/components/form/utils.js.map +1 -1
- package/dist/ui/components/form-description/form-description.d.ts +1 -1
- package/dist/ui/components/form-description/form-description.js +1 -1
- 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-group/form-group.js.map +1 -1
- package/dist/ui/components/form-label/form-label.d.ts +1 -1
- package/dist/ui/components/form-label/form-label.js +1 -1
- 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 +1 -1
- 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/form-server-error-message.js.map +1 -1
- package/dist/ui/components/form-message/message-list.d.ts +1 -1
- package/dist/ui/components/form-message/message-list.js +1 -1
- package/dist/ui/components/form-message/message-list.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-context.js +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-context.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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +2 -2
- 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/id-autocomplete/use-id-autocomplete.js.map +1 -1
- package/dist/ui/components/index.d.ts +36 -36
- package/dist/ui/components/input/input.d.ts +1 -1
- package/dist/ui/components/input/input.js +1 -1
- 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 +1 -1
- package/dist/ui/components/input/splitted-input-diff.js.map +1 -1
- package/dist/ui/components/input/subcomponent/input-diff.js +1 -1
- 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 +1 -1
- 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/json-viewer/json-viewer.js +1 -1
- package/dist/ui/components/json-viewer/json-viewer.js.map +1 -1
- package/dist/ui/components/popover/popover.d.ts +1 -1
- package/dist/ui/components/popover/popover.js +2 -2
- 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 +3 -3
- 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-group.js +1 -1
- package/dist/ui/components/radio-group-field/radio-group.js.map +1 -1
- package/dist/ui/components/radio-group-field/radio.d.ts +1 -1
- package/dist/ui/components/radio-group-field/radio.js +2 -2
- 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 +1 -1
- 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/search-autocomplete/use-search-autocomplete.js.map +1 -1
- package/dist/ui/components/select-field/content.d.ts +1 -1
- package/dist/ui/components/select-field/content.js +1 -1
- 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 +1 -1
- 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.js +1 -1
- 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/select-field/use-select-field.js.map +1 -1
- package/dist/ui/components/text-field/text-field.d.ts +1 -1
- package/dist/ui/components/text-field/text-field.js +1 -1
- package/dist/ui/components/text-field/text-field.js.map +1 -1
- package/dist/ui/components/text-input/text-input-diff.d.ts +1 -1
- package/dist/ui/components/text-input/text-input-diff.js.map +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/value-transformer/value-transformer.js +1 -1
- package/dist/ui/components/value-transformer/value-transformer.js.map +1 -1
- package/dist/ui/components/with-field-validation/with-field-validation.d.ts +1 -1
- package/dist/ui/components/with-field-validation/with-field-validation.js +1 -1
- package/dist/ui/components/with-field-validation/with-field-validation.js.map +1 -1
- package/dist/ui/index.d.ts +38 -38
- package/dist/ui/lib/date-picker.d.ts +1 -1
- package/dist/ui/lib/date-picker.js.map +1 -1
- package/dist/ui/lib/date-time-picker.js.map +1 -1
- package/dist/ui/lib/deep-equal.js.map +1 -1
- package/dist/ui/lib/is-empty.js.map +1 -1
- package/dist/ui/lib/shared-value-transformers.d.ts +1 -1
- package/dist/ui/lib/shared-value-transformers.js.map +1 -1
- package/dist/ui/lib/types.d.ts +1 -1
- package/dist/ui/lib/value-cast.js.map +1 -1
- package/dist/ui/types.d.ts +2 -2
- package/dist/{use-id-autocomplete-FGV0tDeG.d.ts → use-id-autocomplete-JE8w4UXf.d.ts} +2 -2
- package/dist/{use-id-autocomplete-FGV0tDeG.d.ts.map → use-id-autocomplete-JE8w4UXf.d.ts.map} +1 -1
- package/dist/{use-search-autocomplete-BYRTKJjd.d.ts → use-search-autocomplete-IfcQ_gKh.d.ts} +2 -2
- package/dist/{use-search-autocomplete-BYRTKJjd.d.ts.map → use-search-autocomplete-IfcQ_gKh.d.ts.map} +1 -1
- package/dist/{value-transformer-BDrKuBqy.d.ts → value-transformer-2yvrA5Rp.d.ts} +2 -2
- package/dist/{value-transformer-BDrKuBqy.d.ts.map → value-transformer-2yvrA5Rp.d.ts.map} +1 -1
- package/dist/{with-field-validation-DQwlMTzr.d.ts → with-field-validation-YcGrdIrv.d.ts} +2 -2
- package/dist/{with-field-validation-DQwlMTzr.d.ts.map → with-field-validation-YcGrdIrv.d.ts.map} +1 -1
- package/package.json +13 -5
- package/dist/connect-CrXsa33f.js.map +0 -1
- package/dist/form-group-BDgpr5u8.d.ts.map +0 -1
- package/dist/index-C37KRTG6.d.ts.map +0 -1
- package/dist/src-BX8sU0Tq.js.map +0 -1
- /package/dist/{index-C2geSgue.d.ts → index-E7Wvm5uX.d.ts} +0 -0
- /package/dist/{index-Dw5cCt-A.d.ts → index-J3R2mDFQ.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-message.js","names":[],"sources":["../../../../src/ui/components/form-message/form-message.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\n\nexport type FormMessageType = \"error\" | \"info\" | \"warning\";\n\ntype FormMessageOwnProps<E extends React.ElementType = React.ElementType> = {\n type?: FormMessageType;\n as?: E;\n className?: string;\n};\n\nexport type FormMessageProps<E extends React.ElementType> =\n FormMessageOwnProps<E> &\n Omit<React.ComponentPropsWithoutRef<E>, keyof FormMessageOwnProps>;\n\nconst defaultElement = \"p\";\n\nexport const FormMessage: <E extends React.ElementType = typeof defaultElement>(\n props: FormMessageProps<E>,\n) => React.ReactElement | null = ({\n children,\n type = \"info\",\n as,\n className,\n ...props\n}) => {\n const Component = as || defaultElement;\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"text-red-900 dark:text-red-900\",\n info: \"text-blue-900 dark:text-blue-900\",\n warning: \"text-yellow-900 dark:text-yellow-900\",\n };\n\n const classes = cn(\n \"mb-0 inline-flex items-center text-xs font-medium\",\n typeClasses[type],\n className,\n );\n\n // TODO: add icon\n return (\n <Component data-type={type} className={classes} {...props}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;AAcA,
|
|
1
|
+
{"version":3,"file":"form-message.js","names":["cn","defaultElement","FormMessage","children","type","as","className","props","Component","typeClasses","error","info","warning","classes"],"sources":["../../../../src/ui/components/form-message/form-message.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\n\nexport type FormMessageType = \"error\" | \"info\" | \"warning\";\n\ntype FormMessageOwnProps<E extends React.ElementType = React.ElementType> = {\n type?: FormMessageType;\n as?: E;\n className?: string;\n};\n\nexport type FormMessageProps<E extends React.ElementType> =\n FormMessageOwnProps<E> &\n Omit<React.ComponentPropsWithoutRef<E>, keyof FormMessageOwnProps>;\n\nconst defaultElement = \"p\";\n\nexport const FormMessage: <E extends React.ElementType = typeof defaultElement>(\n props: FormMessageProps<E>,\n) => React.ReactElement | null = ({\n children,\n type = \"info\",\n as,\n className,\n ...props\n}) => {\n const Component = as || defaultElement;\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"text-red-900 dark:text-red-900\",\n info: \"text-blue-900 dark:text-blue-900\",\n warning: \"text-yellow-900 dark:text-yellow-900\",\n };\n\n const classes = cn(\n \"mb-0 inline-flex items-center text-xs font-medium\",\n typeClasses[type],\n className,\n );\n\n // TODO: add icon\n return (\n <Component data-type={type} className={classes} {...props}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;AAcA,MAAMC,iBAAiB;AAEvB,MAAaC,eAEqB,EAChCC,UACAC,OAAO,QACPC,IACAC,WACA,GAAGC,YACC;CACJ,MAAMC,YAAYH,MAAMJ;CAQxB,MAAMY,UAAUb,GACd,qDAPmD;EACnDU,OAAO;EACPC,MAAM;EACNC,SAAS;EACV,CAIaR,OACZE,UACD;AAGD,QACE,oBAAC,WAAD;EAAW,aAAWF;EAAM,WAAWS;EAAS,GAAIN;EACjDJ;EACS,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as FormServerErrorMessage } from "../../../form-server-error-message-
|
|
1
|
+
import { t as FormServerErrorMessage } from "../../../form-server-error-message-DXbaiTfF.js";
|
|
2
2
|
export { FormServerErrorMessage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-server-error-message.js","names":[],"sources":["../../../../src/ui/components/form-message/form-server-error-message.tsx"],"sourcesContent":["import { useFormContext } from \"react-hook-form\";\nimport { FormMessageList } from \"./message-list.js\";\n\nexport const FormServerErrorMessage = () => {\n const { formState } = useFormContext();\n\n if (!formState.errors.root?.serverError.message) {\n return null;\n }\n\n return (\n <FormMessageList\n messages={[formState.errors.root.serverError.message]}\n type=\"error\"\n />\n );\n};\n"],"mappings":";;;;AAGA,
|
|
1
|
+
{"version":3,"file":"form-server-error-message.js","names":["useFormContext","FormMessageList","FormServerErrorMessage","formState","errors","root","serverError","message"],"sources":["../../../../src/ui/components/form-message/form-server-error-message.tsx"],"sourcesContent":["import { useFormContext } from \"react-hook-form\";\nimport { FormMessageList } from \"./message-list.js\";\n\nexport const FormServerErrorMessage = () => {\n const { formState } = useFormContext();\n\n if (!formState.errors.root?.serverError.message) {\n return null;\n }\n\n return (\n <FormMessageList\n messages={[formState.errors.root.serverError.message]}\n type=\"error\"\n />\n );\n};\n"],"mappings":";;;;AAGA,MAAaE,+BAA+B;CAC1C,MAAM,EAAEC,cAAcH,gBAAgB;AAEtC,KAAI,CAACG,UAAUC,OAAOC,MAAMC,YAAYC,QACtC,QAAO;AAGT,QACE,oBAAC,iBAAD;EACE,UAAU,CAACJ,UAAUC,OAAOC,KAAKC,YAAYC,QAAQ;EACrD,MAAK;EACL,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as FormMessageList } from "../../../message-list-
|
|
1
|
+
import { t as FormMessageList } from "../../../message-list-C4mPpBBa.js";
|
|
2
2
|
export { FormMessageList };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-list.js","names":[],"sources":["../../../../src/ui/components/form-message/message-list.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\nimport type { FormMessageType } from \"./form-message.js\";\nimport { FormMessage } from \"./form-message.js\";\n\ninterface FormMessageListProps {\n messages: string[];\n type?: FormMessageType;\n className?: string;\n}\n\nexport const FormMessageList: React.FC<FormMessageListProps> = ({\n messages,\n type = \"info\",\n className,\n ...props\n}) => {\n if (messages.length === 0) {\n return null;\n }\n\n if (messages.length === 1) {\n return (\n <FormMessage type={type} {...props}>\n {messages[0]}\n </FormMessage>\n );\n }\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"before:bg-red-900 dark:before:bg-red-900\",\n info: \"before:bg-blue-900 dark:before:bg-blue-900\",\n warning: \"before:bg-orange-900 dark:before:bg-orange-900\",\n };\n\n return (\n <ul className={cn(\"flex flex-col gap-1\", className)} {...props}>\n {messages.map((message) => (\n <FormMessage\n key={message}\n as=\"li\"\n type={type}\n className={cn(\n // Layout\n \"relative pl-4\",\n // Visual styles\n \"before:absolute before:left-0 before:top-[0.4em] before:size-2 before:rounded-full\",\n typeClasses[type],\n )}\n >\n {message}\n </FormMessage>\n ))}\n </ul>\n );\n};\n"],"mappings":";;;;AAUA,
|
|
1
|
+
{"version":3,"file":"message-list.js","names":["cn","FormMessage","FormMessageList","messages","type","className","props","length","typeClasses","error","info","warning","map","message"],"sources":["../../../../src/ui/components/form-message/message-list.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\nimport type { FormMessageType } from \"./form-message.js\";\nimport { FormMessage } from \"./form-message.js\";\n\ninterface FormMessageListProps {\n messages: string[];\n type?: FormMessageType;\n className?: string;\n}\n\nexport const FormMessageList: React.FC<FormMessageListProps> = ({\n messages,\n type = \"info\",\n className,\n ...props\n}) => {\n if (messages.length === 0) {\n return null;\n }\n\n if (messages.length === 1) {\n return (\n <FormMessage type={type} {...props}>\n {messages[0]}\n </FormMessage>\n );\n }\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"before:bg-red-900 dark:before:bg-red-900\",\n info: \"before:bg-blue-900 dark:before:bg-blue-900\",\n warning: \"before:bg-orange-900 dark:before:bg-orange-900\",\n };\n\n return (\n <ul className={cn(\"flex flex-col gap-1\", className)} {...props}>\n {messages.map((message) => (\n <FormMessage\n key={message}\n as=\"li\"\n type={type}\n className={cn(\n // Layout\n \"relative pl-4\",\n // Visual styles\n \"before:absolute before:left-0 before:top-[0.4em] before:size-2 before:rounded-full\",\n typeClasses[type],\n )}\n >\n {message}\n </FormMessage>\n ))}\n </ul>\n );\n};\n"],"mappings":";;;;AAUA,MAAaE,mBAAmD,EAC9DC,UACAC,OAAO,QACPC,WACA,GAAGC,YACC;AACJ,KAAIH,SAASI,WAAW,EACtB,QAAO;AAGT,KAAIJ,SAASI,WAAW,EACtB,QACE,oBAAC,aAAD;EAAmBH;EAAM,GAAIE;YAC1BH,SAAS;EACE,CAAA;CAIlB,MAAMK,cAA+C;EACnDC,OAAO;EACPC,MAAM;EACNC,SAAS;EACV;AAED,QACE,oBAAC,MAAD;EAAI,WAAWX,GAAG,uBAAuBK,UAAU;EAAE,GAAIC;YACtDH,SAASS,KAAKC,YACb,oBAAC,aAAD;GAEE,IAAG;GACGT;GACN,WAAWJ,GAET,iBAEA,sFACAQ,YAAYJ,MACb;aAEAS;GAEJ,EAbQA,QAaR,CAAC;EACC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createContext, useContext } from "react";
|
|
2
2
|
//#region src/ui/components/id-autocomplete/id-autocomplete-context.ts
|
|
3
|
-
const IdAutocompleteContext = createContext({});
|
|
3
|
+
const IdAutocompleteContext = /* @__PURE__ */ createContext({});
|
|
4
4
|
const useIdAutocompleteContext = () => useContext(IdAutocompleteContext);
|
|
5
5
|
//#endregion
|
|
6
6
|
export { IdAutocompleteContext, useIdAutocompleteContext };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-autocomplete-context.js","names":[],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport const IdAutocompleteContext = createContext<Record<string, unknown>>({});\n\nexport const useIdAutocompleteContext = () => useContext(IdAutocompleteContext);\n"],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"id-autocomplete-context.js","names":["createContext","useContext","IdAutocompleteContext","useIdAutocompleteContext"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport const IdAutocompleteContext = createContext<Record<string, unknown>>({});\n\nexport const useIdAutocompleteContext = () => useContext(IdAutocompleteContext);\n"],"mappings":";;AAEA,MAAaE,wBAAwBF,8BAAuC,EAAE,CAAC;AAE/E,MAAaG,iCAAiCF,WAAWC,sBAAsB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../../id-autocomplete-input-container-
|
|
1
|
+
import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../../id-autocomplete-input-container-DsLTOkaT.js";
|
|
2
2
|
export { IdAutocompleteInputContainer, IdAutocompleteInputContainerProps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as Icon, t as cn } from "../../../src-
|
|
1
|
+
import { h as Icon, t as cn } from "../../../src-8xf1ueaA.js";
|
|
2
2
|
import { Tooltip, TooltipProvider as Provider } from "../tooltip/tooltip.js";
|
|
3
3
|
import { sharedValueTransformers } from "../../lib/shared-value-transformers.js";
|
|
4
4
|
import { Input } from "../input/input.js";
|
|
@@ -8,7 +8,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
8
8
|
import { Command } from "cmdk";
|
|
9
9
|
import { useMediaQuery } from "usehooks-ts";
|
|
10
10
|
//#region src/ui/components/id-autocomplete/id-autocomplete-input-container.tsx
|
|
11
|
-
const IdAutocompleteInputContainer = React.forwardRef(({ id, name, value, className, isLoading, haveFetchError, disabled, onChange, onBlur, onClick, selectedOption, optionsLength, handleOpenChange, onKeyDown, onMouseDown, placeholder, hasError, label, required, isPopoverOpen, maxLength, handlePaste, onPaste, ...props }, ref) => {
|
|
11
|
+
const IdAutocompleteInputContainer = /* @__PURE__ */ React.forwardRef(({ id, name, value, className, isLoading, haveFetchError, disabled, onChange, onBlur, onClick, selectedOption, optionsLength, handleOpenChange, onKeyDown, onMouseDown, placeholder, hasError, label, required, isPopoverOpen, maxLength, handlePaste, onPaste, ...props }, ref) => {
|
|
12
12
|
const [hasCopied, setHasCopied] = useState(false);
|
|
13
13
|
const hasHover = useMediaQuery("(hover: hover) and (pointer: fine)");
|
|
14
14
|
const transformers = useMemo(() => [sharedValueTransformers.trimOnBlur(), sharedValueTransformers.trimOnEnter()], []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-autocomplete-input-container.js","names":["CommandPrimitive","TooltipProvider"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-input-container.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { cn, Icon } from \"#design-system\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport React, { useMemo, useState } from \"react\";\nimport { useMediaQuery } from \"usehooks-ts\";\nimport type { InputBaseProps } from \"../../types.js\";\nimport { Input } from \"../input/input.js\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport type { IdAutocompleteOption } from \"./types.js\";\n\ninterface IdAutocompleteInputContainerProps extends Omit<\n InputBaseProps<string>,\n \"defaultValue\" | \"errors\" | \"warnings\"\n> {\n isLoading: boolean;\n haveFetchError: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;\n selectedOption?: IdAutocompleteOption;\n optionsLength: number;\n handleOpenChange?: (open: boolean) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onMouseDown?: (e: React.MouseEvent<HTMLInputElement>) => void;\n placeholder?: string;\n hasError: boolean;\n isPopoverOpen: boolean;\n maxLength?: number;\n handlePaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n onPaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n}\n\nconst IdAutocompleteInputContainer = React.forwardRef<\n HTMLInputElement,\n IdAutocompleteInputContainerProps\n>(\n (\n {\n id,\n name,\n value,\n className,\n isLoading,\n haveFetchError,\n disabled,\n onChange,\n onBlur,\n onClick,\n selectedOption,\n optionsLength,\n handleOpenChange,\n onKeyDown,\n onMouseDown,\n placeholder,\n hasError,\n label,\n required,\n isPopoverOpen,\n maxLength,\n handlePaste,\n onPaste,\n ...props\n },\n ref,\n ) => {\n const [hasCopied, setHasCopied] = useState(false);\n const hasHover = useMediaQuery(\"(hover: hover) and (pointer: fine)\");\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <div className={cn(\"group relative\")}>\n <ValueTransformer transformers={transformers}>\n <CommandPrimitive.Input asChild>\n <Input\n id={id}\n name={name}\n value={value}\n className={cn(\"pr-9\", className)}\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n onClick={(e) => {\n const input = e.target as HTMLInputElement;\n if (\n !(isLoading || haveFetchError) &&\n !selectedOption &&\n input.value !== \"\"\n ) {\n handleOpenChange?.(true);\n }\n onClick?.(e);\n }}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n const isOptionsRelatedKey = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"Enter\",\n ].includes(e.key);\n\n if (e.key === \"Enter\" && isPopoverOpen && optionsLength === 0) {\n handleOpenChange?.(false);\n e.preventDefault();\n return;\n }\n if (\n !(isOptionsRelatedKey && isPopoverOpen && optionsLength > 0)\n ) {\n e.stopPropagation();\n }\n }}\n onMouseDown={(e) => {\n const input = e.target as HTMLInputElement;\n if (!input.contains(document.activeElement)) {\n // wait for the next tick to ensure the focus occurs first\n requestAnimationFrame(() => {\n input.select();\n });\n }\n onMouseDown?.(e);\n }}\n onPaste={(e) => {\n handlePaste?.(e);\n onPaste?.(e);\n }}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n aria-expanded={isPopoverOpen}\n maxLength={maxLength}\n {...props}\n ref={ref}\n />\n </CommandPrimitive.Input>\n </ValueTransformer>\n <div\n className={cn(\n \"absolute right-3 top-1/2 flex size-4 -translate-y-1/2 items-center\",\n !isLoading &&\n !haveFetchError &&\n !selectedOption &&\n \"pointer-events-none\",\n )}\n >\n {isLoading && (\n <Icon\n name=\"Reload\"\n size={16}\n className={cn(\"animate-spin text-gray-500 dark:text-gray-600\")}\n />\n )}\n {haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Network error!\">\n <Icon name=\"Error\" size={16} className={cn(\"text-red-900\")} />\n </Tooltip>\n </TooltipProvider>\n )}\n {selectedOption && !isLoading && !haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Copied!\" open={hasCopied} triggerAsChild>\n <button\n type=\"button\"\n onClick={() => {\n navigator.clipboard\n .writeText(selectedOption.value)\n .then(() => {\n setHasCopied(true);\n setTimeout(() => setHasCopied(false), 2000);\n })\n .catch((error) => {\n console.error(\"Failed to copy value: \", error);\n });\n }}\n className={cn(\n \"focus-visible:outline-none [&_svg]:pointer-events-none\",\n hasHover &&\n \"opacity-0 transition-opacity duration-500 group-hover:opacity-100\",\n )}\n >\n <Icon\n name=\"Copy\"\n size={16}\n className={cn(\"text-gray-500 dark:text-gray-600\")}\n />\n </button>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </div>\n );\n },\n);\n\nexport { IdAutocompleteInputContainer, type IdAutocompleteInputContainerProps };\n"],"mappings":";;;;;;;;;;AAkCA,MAAM,+BAA+B,MAAM,YAKvC,EACE,IACA,MACA,OACA,WACA,WACA,gBACA,UACA,UACA,QACA,SACA,gBACA,eACA,kBACA,WACA,aACA,aACA,UACA,OACA,UACA,eACA,WACA,aACA,SACA,GAAG,SAEL,QACG;CACH,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CACjD,MAAM,WAAW,cAAc,qCAAqC;CAEpE,MAAM,eAAgC,cAC9B,CACJ,wBAAwB,YAAY,EACpC,wBAAwB,aAAa,CACtC,EACD,EAAE,CACH;AAED,QACE,qBAAC,OAAD;EAAK,WAAW,GAAG,iBAAiB;YAApC,CACE,oBAAC,kBAAD;GAAgC;aAC9B,oBAACA,QAAiB,OAAlB;IAAwB,SAAA;cACtB,oBAAC,OAAD;KACM;KACE;KACC;KACP,WAAW,GAAG,QAAQ,UAAU;KACtB;KACA;KACF;KACR,UAAU,MAAM;MACd,MAAM,QAAQ,EAAE;AAChB,UACE,EAAE,aAAa,mBACf,CAAC,kBACD,MAAM,UAAU,GAEhB,oBAAmB,KAAK;AAE1B,gBAAU,EAAE;;KAEd,YAAY,MAAM;AAChB,kBAAY,EAAE;MACd,MAAM,sBAAsB;OAC1B;OACA;OACA;OACD,CAAC,SAAS,EAAE,IAAI;AAEjB,UAAI,EAAE,QAAQ,WAAW,iBAAiB,kBAAkB,GAAG;AAC7D,0BAAmB,MAAM;AACzB,SAAE,gBAAgB;AAClB;;AAEF,UACE,EAAE,uBAAuB,iBAAiB,gBAAgB,GAE1D,GAAE,iBAAiB;;KAGvB,cAAc,MAAM;MAClB,MAAM,QAAQ,EAAE;AAChB,UAAI,CAAC,MAAM,SAAS,SAAS,cAAc,CAEzC,6BAA4B;AAC1B,aAAM,QAAQ;QACd;AAEJ,oBAAc,EAAE;;KAElB,UAAU,MAAM;AACd,oBAAc,EAAE;AAChB,gBAAU,EAAE;;KAED;KACb,gBAAc;KACd,cAAY,CAAC,QAAQ,oBAAoB,KAAA;KACzC,iBAAe;KACf,iBAAe;KACJ;KACX,GAAI;KACC;KACL,CAAA;IACqB,CAAA;GACR,CAAA,EACnB,qBAAC,OAAD;GACE,WAAW,GACT,sEACA,CAAC,aACC,CAAC,kBACD,CAAC,kBACD,sBACH;aAPH;IASG,aACC,oBAAC,MAAD;KACE,MAAK;KACL,MAAM;KACN,WAAW,GAAG,gDAAgD;KAC9D,CAAA;IAEH,kBACC,oBAACC,UAAD,EAAA,UACE,oBAAC,SAAD;KAAS,SAAQ;eACf,oBAAC,MAAD;MAAM,MAAK;MAAQ,MAAM;MAAI,WAAW,GAAG,eAAe;MAAI,CAAA;KACtD,CAAA,EACM,CAAA;IAEnB,kBAAkB,CAAC,aAAa,CAAC,kBAChC,oBAACA,UAAD,EAAA,UACE,oBAAC,SAAD;KAAS,SAAQ;KAAU,MAAM;KAAW,gBAAA;eAC1C,oBAAC,UAAD;MACE,MAAK;MACL,eAAe;AACb,iBAAU,UACP,UAAU,eAAe,MAAM,CAC/B,WAAW;AACV,qBAAa,KAAK;AAClB,yBAAiB,aAAa,MAAM,EAAE,IAAK;SAC3C,CACD,OAAO,UAAU;AAChB,gBAAQ,MAAM,0BAA0B,MAAM;SAC9C;;MAEN,WAAW,GACT,0DACA,YACE,oEACH;gBAED,oBAAC,MAAD;OACE,MAAK;OACL,MAAM;OACN,WAAW,GAAG,mCAAmC;OACjD,CAAA;MACK,CAAA;KACD,CAAA,EACM,CAAA;IAEhB;KACF;;EAGX"}
|
|
1
|
+
{"version":3,"file":"id-autocomplete-input-container.js","names":["cn","Icon","sharedValueTransformers","Command","CommandPrimitive","React","useMemo","useState","useMediaQuery","Input","Tooltip","TooltipProvider","ValueTransformer","IdAutocompleteInputContainer","forwardRef","id","name","value","className","isLoading","haveFetchError","disabled","onChange","onBlur","onClick","selectedOption","optionsLength","handleOpenChange","onKeyDown","onMouseDown","placeholder","hasError","label","required","isPopoverOpen","maxLength","handlePaste","onPaste","props","ref","hasCopied","setHasCopied","hasHover","transformers","trimOnBlur","trimOnEnter","e","input","target","isOptionsRelatedKey","includes","key","preventDefault","stopPropagation","contains","document","activeElement","requestAnimationFrame","select","undefined","navigator","clipboard","writeText","then","setTimeout","catch","error","console"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-input-container.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { cn, Icon } from \"#design-system\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport React, { useMemo, useState } from \"react\";\nimport { useMediaQuery } from \"usehooks-ts\";\nimport type { InputBaseProps } from \"../../types.js\";\nimport { Input } from \"../input/input.js\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport type { IdAutocompleteOption } from \"./types.js\";\n\ninterface IdAutocompleteInputContainerProps extends Omit<\n InputBaseProps<string>,\n \"defaultValue\" | \"errors\" | \"warnings\"\n> {\n isLoading: boolean;\n haveFetchError: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;\n selectedOption?: IdAutocompleteOption;\n optionsLength: number;\n handleOpenChange?: (open: boolean) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onMouseDown?: (e: React.MouseEvent<HTMLInputElement>) => void;\n placeholder?: string;\n hasError: boolean;\n isPopoverOpen: boolean;\n maxLength?: number;\n handlePaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n onPaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n}\n\nconst IdAutocompleteInputContainer = React.forwardRef<\n HTMLInputElement,\n IdAutocompleteInputContainerProps\n>(\n (\n {\n id,\n name,\n value,\n className,\n isLoading,\n haveFetchError,\n disabled,\n onChange,\n onBlur,\n onClick,\n selectedOption,\n optionsLength,\n handleOpenChange,\n onKeyDown,\n onMouseDown,\n placeholder,\n hasError,\n label,\n required,\n isPopoverOpen,\n maxLength,\n handlePaste,\n onPaste,\n ...props\n },\n ref,\n ) => {\n const [hasCopied, setHasCopied] = useState(false);\n const hasHover = useMediaQuery(\"(hover: hover) and (pointer: fine)\");\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <div className={cn(\"group relative\")}>\n <ValueTransformer transformers={transformers}>\n <CommandPrimitive.Input asChild>\n <Input\n id={id}\n name={name}\n value={value}\n className={cn(\"pr-9\", className)}\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n onClick={(e) => {\n const input = e.target as HTMLInputElement;\n if (\n !(isLoading || haveFetchError) &&\n !selectedOption &&\n input.value !== \"\"\n ) {\n handleOpenChange?.(true);\n }\n onClick?.(e);\n }}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n const isOptionsRelatedKey = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"Enter\",\n ].includes(e.key);\n\n if (e.key === \"Enter\" && isPopoverOpen && optionsLength === 0) {\n handleOpenChange?.(false);\n e.preventDefault();\n return;\n }\n if (\n !(isOptionsRelatedKey && isPopoverOpen && optionsLength > 0)\n ) {\n e.stopPropagation();\n }\n }}\n onMouseDown={(e) => {\n const input = e.target as HTMLInputElement;\n if (!input.contains(document.activeElement)) {\n // wait for the next tick to ensure the focus occurs first\n requestAnimationFrame(() => {\n input.select();\n });\n }\n onMouseDown?.(e);\n }}\n onPaste={(e) => {\n handlePaste?.(e);\n onPaste?.(e);\n }}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n aria-expanded={isPopoverOpen}\n maxLength={maxLength}\n {...props}\n ref={ref}\n />\n </CommandPrimitive.Input>\n </ValueTransformer>\n <div\n className={cn(\n \"absolute right-3 top-1/2 flex size-4 -translate-y-1/2 items-center\",\n !isLoading &&\n !haveFetchError &&\n !selectedOption &&\n \"pointer-events-none\",\n )}\n >\n {isLoading && (\n <Icon\n name=\"Reload\"\n size={16}\n className={cn(\"animate-spin text-gray-500 dark:text-gray-600\")}\n />\n )}\n {haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Network error!\">\n <Icon name=\"Error\" size={16} className={cn(\"text-red-900\")} />\n </Tooltip>\n </TooltipProvider>\n )}\n {selectedOption && !isLoading && !haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Copied!\" open={hasCopied} triggerAsChild>\n <button\n type=\"button\"\n onClick={() => {\n navigator.clipboard\n .writeText(selectedOption.value)\n .then(() => {\n setHasCopied(true);\n setTimeout(() => setHasCopied(false), 2000);\n })\n .catch((error) => {\n console.error(\"Failed to copy value: \", error);\n });\n }}\n className={cn(\n \"focus-visible:outline-none [&_svg]:pointer-events-none\",\n hasHover &&\n \"opacity-0 transition-opacity duration-500 group-hover:opacity-100\",\n )}\n >\n <Icon\n name=\"Copy\"\n size={16}\n className={cn(\"text-gray-500 dark:text-gray-600\")}\n />\n </button>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </div>\n );\n },\n);\n\nexport { IdAutocompleteInputContainer, type IdAutocompleteInputContainerProps };\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../../id-autocomplete-list-option-
|
|
1
|
+
import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../../id-autocomplete-list-option-fOnxSbzb.js";
|
|
2
2
|
export { IdAutocompleteListOption, IdAutocompleteListOptionProps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as Icon, t as cn } from "../../../src-
|
|
1
|
+
import { h as Icon, t as cn } from "../../../src-8xf1ueaA.js";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/ui/components/id-autocomplete/id-autocomplete-list-option.tsx
|
|
@@ -8,7 +8,7 @@ const IconRenderer = ({ customIcon, asPlaceholder }) => {
|
|
|
8
8
|
size: 24,
|
|
9
9
|
className: cn("shrink-0", asPlaceholder ? "text-gray-400 dark:text-gray-700" : "text-gray-900 dark:text-gray-300")
|
|
10
10
|
});
|
|
11
|
-
if (React.isValidElement(customIcon)) return /* @__PURE__ */ jsx("div", {
|
|
11
|
+
if (/* @__PURE__ */ React.isValidElement(customIcon)) return /* @__PURE__ */ jsx("div", {
|
|
12
12
|
className: "size-6 shrink-0 overflow-hidden",
|
|
13
13
|
children: customIcon
|
|
14
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-autocomplete-list-option.js","names":[],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list-option.tsx"],"sourcesContent":["import type { IconName } from \"#design-system\";\nimport { cn, Icon } from \"#design-system\";\nimport React from \"react\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\nconst IconRenderer: React.FC<{\n customIcon?: IconName | React.ReactElement;\n asPlaceholder?: boolean;\n}> = ({ customIcon, asPlaceholder }) => {\n if (typeof customIcon === \"string\") {\n return (\n <Icon\n name={customIcon}\n size={24}\n className={cn(\n \"shrink-0\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-900 dark:text-gray-300\",\n )}\n />\n );\n }\n if (React.isValidElement(customIcon)) {\n return <div className=\"size-6 shrink-0 overflow-hidden\">{customIcon}</div>;\n }\n return null;\n};\n\nconst ReloadButton: React.FC<{\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n value: string;\n}> = ({\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n value,\n}) => (\n <div>\n <button\n type=\"button\"\n disabled={isLoadingSelectedOption || isFetchSelectedOptionSync}\n onClick={() => {\n if (!isLoadingSelectedOption && !isFetchSelectedOptionSync) {\n handleFetchSelectedOption(value);\n }\n }}\n className={cn(\n \"mt-0.5 focus-visible:outline-none\",\n \"disabled:pointer-events-none [&_svg]:pointer-events-none\",\n )}\n aria-label={\n isLoadingSelectedOption\n ? \"Loading\"\n : isFetchSelectedOptionSync\n ? \"Success\"\n : \"Reload\"\n }\n >\n <Icon\n name={isFetchSelectedOptionSync ? \"Checkmark\" : \"Reload\"}\n size={16}\n className={cn(\n \"text-gray-500 dark:text-gray-600\",\n isLoadingSelectedOption && \"animate-spin\",\n isFetchSelectedOptionSync && \"animate-in fade-in duration-500\",\n )}\n />\n </button>\n </div>\n);\n\ntype IdAutocompleteListOptionProps = {\n variant: IdAutocompleteProps[\"variant\"];\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n className?: string;\n placeholderIcon?: IconName | React.ReactElement;\n} & IdAutocompleteOption<Record<string, unknown>>;\n\nconst IdAutocompleteListOption: React.FC<IdAutocompleteListOptionProps> = ({\n variant = \"withValue\",\n icon,\n title = \"Title not available\",\n path = \"Path not available\",\n value,\n description = \"Description not available\",\n asPlaceholder,\n showValue = true,\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n className,\n placeholderIcon = \"PowerhouseLogoSmall\",\n ...extraProps\n}) => {\n const renderWithValue = () => (\n <div className={cn(\"flex w-full items-center\")}>\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {value}\n </span>\n </div>\n );\n\n const renderWithValueTitleAndDescription = (showDescription = true) => (\n <div className={cn(\"flex w-full flex-col gap-1\")}>\n <div className={cn(\"flex gap-2\")}>\n <IconRenderer\n customIcon={asPlaceholder ? placeholderIcon : icon}\n asPlaceholder={asPlaceholder}\n />\n <div className={cn(\"flex min-w-0 grow flex-col gap-[-2px]\")}>\n <span\n className={cn(\n \"truncate text-sm font-bold leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-900 dark:text-gray-300\",\n )}\n >\n {title}\n </span>\n {!showValue && typeof path === \"object\" ? (\n <a\n href={path.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"truncate text-xs leading-5 text-blue-900 hover:underline focus-visible:outline-none\",\n )}\n >\n {path.text}\n </a>\n ) : (\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {typeof path === \"object\" ? path.text : path}\n </span>\n )}\n </div>\n {asPlaceholder === false && handleFetchSelectedOption && (\n <ReloadButton\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={handleFetchSelectedOption}\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n value={value}\n />\n )}\n </div>\n {showValue && (\n <div className={cn(\"flex max-w-full items-center\")}>\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {value}\n </span>\n </div>\n )}\n {showDescription && (\n <div className={cn(\"flex flex-col\")}>\n <p\n className={cn(\n \"line-clamp-2 text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-900 dark:text-gray-300\",\n )}\n >\n {description}\n </p>\n </div>\n )}\n {showDescription &&\n \"agentType\" in extraProps &&\n typeof extraProps.agentType === \"string\" && (\n <div className={cn(\"flex max-w-full items-center justify-end\")}>\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {extraProps.agentType}\n </span>\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\n \"w-full max-w-full rounded-md bg-transparent px-3 pb-2\",\n variant === \"withValue\" ? \"pt-2\" : \"pt-3\",\n className,\n )}\n >\n {variant === \"withValue\" && renderWithValue()}\n {variant === \"withValueAndTitle\" &&\n renderWithValueTitleAndDescription(false)}\n {variant === \"withValueTitleAndDescription\" &&\n renderWithValueTitleAndDescription()}\n </div>\n );\n};\n\nexport { IdAutocompleteListOption, type IdAutocompleteListOptionProps };\n"],"mappings":";;;;AAKA,
|
|
1
|
+
{"version":3,"file":"id-autocomplete-list-option.js","names":["cn","Icon","React","IconRenderer","customIcon","asPlaceholder","isValidElement","ReloadButton","isLoadingSelectedOption","handleFetchSelectedOption","isFetchSelectedOptionSync","value","IdAutocompleteListOption","variant","icon","title","path","description","showValue","className","placeholderIcon","extraProps","renderWithValue","renderWithValueTitleAndDescription","showDescription","url","text","agentType"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list-option.tsx"],"sourcesContent":["import type { IconName } from \"#design-system\";\nimport { cn, Icon } from \"#design-system\";\nimport React from \"react\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\nconst IconRenderer: React.FC<{\n customIcon?: IconName | React.ReactElement;\n asPlaceholder?: boolean;\n}> = ({ customIcon, asPlaceholder }) => {\n if (typeof customIcon === \"string\") {\n return (\n <Icon\n name={customIcon}\n size={24}\n className={cn(\n \"shrink-0\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-900 dark:text-gray-300\",\n )}\n />\n );\n }\n if (React.isValidElement(customIcon)) {\n return <div className=\"size-6 shrink-0 overflow-hidden\">{customIcon}</div>;\n }\n return null;\n};\n\nconst ReloadButton: React.FC<{\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n value: string;\n}> = ({\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n value,\n}) => (\n <div>\n <button\n type=\"button\"\n disabled={isLoadingSelectedOption || isFetchSelectedOptionSync}\n onClick={() => {\n if (!isLoadingSelectedOption && !isFetchSelectedOptionSync) {\n handleFetchSelectedOption(value);\n }\n }}\n className={cn(\n \"mt-0.5 focus-visible:outline-none\",\n \"disabled:pointer-events-none [&_svg]:pointer-events-none\",\n )}\n aria-label={\n isLoadingSelectedOption\n ? \"Loading\"\n : isFetchSelectedOptionSync\n ? \"Success\"\n : \"Reload\"\n }\n >\n <Icon\n name={isFetchSelectedOptionSync ? \"Checkmark\" : \"Reload\"}\n size={16}\n className={cn(\n \"text-gray-500 dark:text-gray-600\",\n isLoadingSelectedOption && \"animate-spin\",\n isFetchSelectedOptionSync && \"animate-in fade-in duration-500\",\n )}\n />\n </button>\n </div>\n);\n\ntype IdAutocompleteListOptionProps = {\n variant: IdAutocompleteProps[\"variant\"];\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n className?: string;\n placeholderIcon?: IconName | React.ReactElement;\n} & IdAutocompleteOption<Record<string, unknown>>;\n\nconst IdAutocompleteListOption: React.FC<IdAutocompleteListOptionProps> = ({\n variant = \"withValue\",\n icon,\n title = \"Title not available\",\n path = \"Path not available\",\n value,\n description = \"Description not available\",\n asPlaceholder,\n showValue = true,\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n className,\n placeholderIcon = \"PowerhouseLogoSmall\",\n ...extraProps\n}) => {\n const renderWithValue = () => (\n <div className={cn(\"flex w-full items-center\")}>\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {value}\n </span>\n </div>\n );\n\n const renderWithValueTitleAndDescription = (showDescription = true) => (\n <div className={cn(\"flex w-full flex-col gap-1\")}>\n <div className={cn(\"flex gap-2\")}>\n <IconRenderer\n customIcon={asPlaceholder ? placeholderIcon : icon}\n asPlaceholder={asPlaceholder}\n />\n <div className={cn(\"flex min-w-0 grow flex-col gap-[-2px]\")}>\n <span\n className={cn(\n \"truncate text-sm font-bold leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-900 dark:text-gray-300\",\n )}\n >\n {title}\n </span>\n {!showValue && typeof path === \"object\" ? (\n <a\n href={path.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"truncate text-xs leading-5 text-blue-900 hover:underline focus-visible:outline-none\",\n )}\n >\n {path.text}\n </a>\n ) : (\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {typeof path === \"object\" ? path.text : path}\n </span>\n )}\n </div>\n {asPlaceholder === false && handleFetchSelectedOption && (\n <ReloadButton\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={handleFetchSelectedOption}\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n value={value}\n />\n )}\n </div>\n {showValue && (\n <div className={cn(\"flex max-w-full items-center\")}>\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {value}\n </span>\n </div>\n )}\n {showDescription && (\n <div className={cn(\"flex flex-col\")}>\n <p\n className={cn(\n \"line-clamp-2 text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-900 dark:text-gray-300\",\n )}\n >\n {description}\n </p>\n </div>\n )}\n {showDescription &&\n \"agentType\" in extraProps &&\n typeof extraProps.agentType === \"string\" && (\n <div className={cn(\"flex max-w-full items-center justify-end\")}>\n <span\n className={cn(\n \"truncate text-xs leading-5\",\n asPlaceholder\n ? \"text-gray-400 dark:text-gray-700\"\n : \"text-gray-500 dark:text-gray-600\",\n )}\n >\n {extraProps.agentType}\n </span>\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\n \"w-full max-w-full rounded-md bg-transparent px-3 pb-2\",\n variant === \"withValue\" ? \"pt-2\" : \"pt-3\",\n className,\n )}\n >\n {variant === \"withValue\" && renderWithValue()}\n {variant === \"withValueAndTitle\" &&\n renderWithValueTitleAndDescription(false)}\n {variant === \"withValueTitleAndDescription\" &&\n renderWithValueTitleAndDescription()}\n </div>\n );\n};\n\nexport { IdAutocompleteListOption, type IdAutocompleteListOptionProps };\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../../id-autocomplete-list-
|
|
1
|
+
import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../../id-autocomplete-list-CFWHGDwL.js";
|
|
2
2
|
export { IdAutocompleteList, IdAutocompleteListProps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "../../../src-
|
|
1
|
+
import { t as cn } from "../../../src-8xf1ueaA.js";
|
|
2
2
|
import { CommandEmpty, CommandGroup, CommandItem, CommandList } from "../command/command.js";
|
|
3
3
|
import { IdAutocompleteListOption } from "./id-autocomplete-list-option.js";
|
|
4
4
|
import { useEffect } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-autocomplete-list.js","names":[],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\nimport { useCommandState } from \"cmdk\";\nimport React, { useEffect } from \"react\";\nimport {\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n} from \"../command/command.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface IdAutocompleteListProps {\n variant: IdAutocompleteProps[\"variant\"];\n commandListRef?: React.RefObject<HTMLDivElement | null>;\n selectedValue?: string;\n options?: IdAutocompleteOption[];\n toggleOption?: (value: string) => void;\n renderOption?: (\n option: IdAutocompleteOption,\n displayProps?: {\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n className?: string;\n },\n ) => React.ReactNode;\n previewPlaceholder?: IdAutocompleteOption;\n}\n\nconst IdAutocompleteList: React.FC<IdAutocompleteListProps> = ({\n variant,\n commandListRef,\n selectedValue,\n options = [],\n toggleOption,\n renderOption,\n previewPlaceholder,\n}) => {\n const cmdkSearch = useCommandState((state) => state.search);\n const defaultOption: IdAutocompleteOption = previewPlaceholder || {\n value: \"value not available\",\n title: \"Title not available\",\n path: \"Path not available\",\n description: \"Description not available\",\n };\n\n useEffect(() => {\n commandListRef?.current?.scrollTo({ top: 0, behavior: \"instant\" });\n }, [commandListRef, cmdkSearch]);\n\n return (\n <CommandList ref={commandListRef}>\n <CommandEmpty className={cn(\"h-full p-1\")}>\n {renderOption ? (\n renderOption(defaultOption, {\n asPlaceholder: true,\n showValue: true,\n className: cn(\"pb-0\"),\n })\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={defaultOption.icon}\n title={defaultOption.title}\n path={defaultOption.path}\n value={defaultOption.value}\n description={defaultOption.description}\n asPlaceholder\n className={cn(\"pb-0\")}\n />\n )}\n </CommandEmpty>\n <CommandGroup className={cn(\"px-1\")}>\n {options.map((opt) => {\n const isSelected = selectedValue === opt.value;\n\n return (\n <CommandItem\n key={opt.value}\n value={opt.value}\n onSelect={() => toggleOption?.(opt.value)}\n className={cn(\n \"h-full cursor-pointer border-y-0 p-0\",\n \"data-[selected=true]:bg-gray-100 dark:data-[selected=true]:bg-gray-900\",\n )}\n role=\"option\"\n aria-selected={isSelected}\n >\n {renderOption ? (\n renderOption(opt, {\n asPlaceholder: false,\n showValue: true,\n })\n ) : (\n <IdAutocompleteListOption variant={variant} {...opt} />\n )}\n </CommandItem>\n );\n })}\n </CommandGroup>\n </CommandList>\n );\n};\n\nexport { IdAutocompleteList, type IdAutocompleteListProps };\n"],"mappings":";;;;;;;AA+BA,
|
|
1
|
+
{"version":3,"file":"id-autocomplete-list.js","names":["cn","useCommandState","React","useEffect","CommandEmpty","CommandGroup","CommandItem","CommandList","IdAutocompleteListOption","IdAutocompleteList","variant","commandListRef","selectedValue","options","toggleOption","renderOption","previewPlaceholder","cmdkSearch","state","search","defaultOption","value","title","path","description","current","scrollTo","top","behavior","asPlaceholder","showValue","className","icon","map","opt","isSelected"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list.tsx"],"sourcesContent":["import { cn } from \"#design-system\";\nimport { useCommandState } from \"cmdk\";\nimport React, { useEffect } from \"react\";\nimport {\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n} from \"../command/command.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface IdAutocompleteListProps {\n variant: IdAutocompleteProps[\"variant\"];\n commandListRef?: React.RefObject<HTMLDivElement | null>;\n selectedValue?: string;\n options?: IdAutocompleteOption[];\n toggleOption?: (value: string) => void;\n renderOption?: (\n option: IdAutocompleteOption,\n displayProps?: {\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n className?: string;\n },\n ) => React.ReactNode;\n previewPlaceholder?: IdAutocompleteOption;\n}\n\nconst IdAutocompleteList: React.FC<IdAutocompleteListProps> = ({\n variant,\n commandListRef,\n selectedValue,\n options = [],\n toggleOption,\n renderOption,\n previewPlaceholder,\n}) => {\n const cmdkSearch = useCommandState((state) => state.search);\n const defaultOption: IdAutocompleteOption = previewPlaceholder || {\n value: \"value not available\",\n title: \"Title not available\",\n path: \"Path not available\",\n description: \"Description not available\",\n };\n\n useEffect(() => {\n commandListRef?.current?.scrollTo({ top: 0, behavior: \"instant\" });\n }, [commandListRef, cmdkSearch]);\n\n return (\n <CommandList ref={commandListRef}>\n <CommandEmpty className={cn(\"h-full p-1\")}>\n {renderOption ? (\n renderOption(defaultOption, {\n asPlaceholder: true,\n showValue: true,\n className: cn(\"pb-0\"),\n })\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={defaultOption.icon}\n title={defaultOption.title}\n path={defaultOption.path}\n value={defaultOption.value}\n description={defaultOption.description}\n asPlaceholder\n className={cn(\"pb-0\")}\n />\n )}\n </CommandEmpty>\n <CommandGroup className={cn(\"px-1\")}>\n {options.map((opt) => {\n const isSelected = selectedValue === opt.value;\n\n return (\n <CommandItem\n key={opt.value}\n value={opt.value}\n onSelect={() => toggleOption?.(opt.value)}\n className={cn(\n \"h-full cursor-pointer border-y-0 p-0\",\n \"data-[selected=true]:bg-gray-100 dark:data-[selected=true]:bg-gray-900\",\n )}\n role=\"option\"\n aria-selected={isSelected}\n >\n {renderOption ? (\n renderOption(opt, {\n asPlaceholder: false,\n showValue: true,\n })\n ) : (\n <IdAutocompleteListOption variant={variant} {...opt} />\n )}\n </CommandItem>\n );\n })}\n </CommandGroup>\n </CommandList>\n );\n};\n\nexport { IdAutocompleteList, type IdAutocompleteListProps };\n"],"mappings":";;;;;;;AA+BA,MAAMS,sBAAyD,EAC7DC,SACAC,gBACAC,eACAC,UAAU,EAAE,EACZC,cACAC,cACAC,yBACI;CACJ,MAAMC,aAAahB,iBAAiBiB,UAAUA,MAAMC,OAAO;CAC3D,MAAMC,gBAAsCJ,sBAAsB;EAChEK,OAAO;EACPC,OAAO;EACPC,MAAM;EACNC,aAAa;EACd;AAEDrB,iBAAgB;AACdQ,kBAAgBc,SAASC,SAAS;GAAEC,KAAK;GAAGC,UAAU;GAAW,CAAC;IACjE,CAACjB,gBAAgBM,WAAW,CAAC;AAEhC,QACE,qBAAC,aAAD;EAAa,KAAKN;YAAlB,CACE,oBAAC,cAAD;GAAc,WAAWX,GAAG,aAAa;aACtCe,eACCA,aAAaK,eAAe;IAC1BS,eAAe;IACfC,WAAW;IACXC,WAAW/B,GAAG,OAAM;IACrB,CAAC,GAEF,oBAAC,0BAAD;IACWU;IACT,MAAMU,cAAcY;IACpB,OAAOZ,cAAcE;IACrB,MAAMF,cAAcG;IACpB,OAAOH,cAAcC;IACrB,aAAaD,cAAcI;IAC3B,eAAA;IACA,WAAWxB,GAAG,OAAO;IAExB,CAAA;GACW,CAAA,EACd,oBAAC,cAAD;GAAc,WAAWA,GAAG,OAAO;aAChCa,QAAQoB,KAAKC,QAAQ;IACpB,MAAMC,aAAavB,kBAAkBsB,IAAIb;AAEzC,WACE,oBAAC,aAAD;KAEE,OAAOa,IAAIb;KACX,gBAAgBP,eAAeoB,IAAIb,MAAM;KACzC,WAAWrB,GACT,wCACA,yEACD;KACD,MAAK;KACL,iBAAemC;eAEdpB,eACCA,aAAamB,KAAK;MAChBL,eAAe;MACfC,WAAW;MACZ,CAAC,GAEF,oBAAC,0BAAD;MAAmCpB;MAAS,GAAIwB;MACjD,CAAA;KACW,EAlBPA,IAAIb,MAkBG;KAEhB;GACU,CAAA,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as IdAutocomplete } from "../../../id-autocomplete-
|
|
1
|
+
import { t as IdAutocomplete } from "../../../id-autocomplete-CLC7zy-f.js";
|
|
2
2
|
export { IdAutocomplete };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cn } from "../../../src-
|
|
1
|
+
import { t as cn } from "../../../src-8xf1ueaA.js";
|
|
2
2
|
import { FormLabel } from "../form-label/form-label.js";
|
|
3
3
|
import { FormMessageList } from "../form-message/message-list.js";
|
|
4
4
|
import { FormDescription } from "../form-description/form-description.js";
|
|
@@ -15,7 +15,7 @@ import React, { useId, useMemo, useRef } from "react";
|
|
|
15
15
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
16
|
import { Command } from "cmdk";
|
|
17
17
|
//#region src/ui/components/id-autocomplete/id-autocomplete.tsx
|
|
18
|
-
const IdAutocomplete = React.forwardRef(({ id: idProp, name, className, label, description, value, defaultValue, disabled, placeholder, required, errors, warnings, onChange, onBlur, onClick, onKeyDown, onMouseDown, autoComplete = true, variant = "withValue", maxLength, fetchOptionsCallback, fetchSelectedOptionCallback, isOpenByDefault, initialOptions, renderOption, previewPlaceholder, ...props }, ref) => {
|
|
18
|
+
const IdAutocomplete = /* @__PURE__ */ React.forwardRef(({ id: idProp, name, className, label, description, value, defaultValue, disabled, placeholder, required, errors, warnings, onChange, onBlur, onClick, onKeyDown, onMouseDown, autoComplete = true, variant = "withValue", maxLength, fetchOptionsCallback, fetchSelectedOptionCallback, isOpenByDefault, initialOptions, renderOption, previewPlaceholder, ...props }, ref) => {
|
|
19
19
|
const prefix = useId();
|
|
20
20
|
const id = idProp ?? `${prefix}-id-autocomplete`;
|
|
21
21
|
const inputRef = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-autocomplete.js","names":[],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { cn } from \"#design-system\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command } from \"cmdk\";\nimport React, { useId, useMemo, useRef } from \"react\";\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 { Input } from \"../input/input.js\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"../popover/popover.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport { IdAutocompleteInputContainer } from \"./id-autocomplete-input-container.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport { IdAutocompleteList } from \"./id-autocomplete-list.js\";\nimport type { IdAutocompleteProps } from \"./types.js\";\nimport { useIdAutocomplete } from \"./use-id-autocomplete.js\";\n\nconst IdAutocomplete = React.forwardRef<HTMLInputElement, IdAutocompleteProps>(\n (\n {\n id: idProp,\n name,\n className,\n label,\n description,\n value,\n defaultValue,\n disabled,\n placeholder,\n required,\n errors,\n warnings,\n onChange,\n onBlur,\n onClick,\n onKeyDown,\n onMouseDown,\n autoComplete = true,\n variant = \"withValue\",\n maxLength,\n fetchOptionsCallback,\n fetchSelectedOptionCallback,\n isOpenByDefault, // to be used only in stories\n initialOptions,\n renderOption,\n previewPlaceholder,\n ...props\n },\n ref,\n ) => {\n const prefix = useId();\n const id = idProp ?? `${prefix}-id-autocomplete`;\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const mergedRef = (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const hasWarning = Array.isArray(warnings) && warnings.length > 0;\n const hasError = Array.isArray(errors) && errors.length > 0;\n\n const {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n } = useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions: fetchOptionsCallback,\n fetchSelectedOption: fetchSelectedOptionCallback,\n });\n\n const handleOptionSelection = (optionValue: string) => {\n toggleOption(optionValue);\n inputRef.current?.focus();\n };\n\n const asCard =\n variant === \"withValueAndTitle\" ||\n variant === \"withValueTitleAndDescription\";\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <FormGroup>\n {!!label && (\n <FormLabel\n htmlFor={id}\n disabled={disabled}\n hasError={hasError}\n required={required}\n onClick={(e) => {\n e.preventDefault();\n (e.target as HTMLLabelElement).control?.focus();\n }}\n >\n {label}\n </FormLabel>\n )}\n {autoComplete && fetchOptionsCallback ? (\n <Popover open={isPopoverOpen} onOpenChange={handleOpenChange}>\n <Command\n shouldFilter={false}\n value={commandValue}\n onValueChange={handleCommandValue}\n className={cn(\"dark:bg-charcoal-900 bg-gray-100\")}\n >\n <PopoverAnchor asChild={true}>\n <IdAutocompleteInputContainer\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n isLoading={isLoading}\n haveFetchError={haveFetchError}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onTriggerBlur}\n onClick={onClick}\n selectedOption={selectedOption}\n optionsLength={options.length}\n handleOpenChange={handleOpenChange}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n hasError={hasError}\n label={label}\n required={required}\n isPopoverOpen={isPopoverOpen}\n maxLength={maxLength}\n handlePaste={handlePaste}\n {...props}\n ref={mergedRef}\n />\n </PopoverAnchor>\n {asCard &&\n (renderOption ? (\n renderOption(\n selectedOption === undefined && previewPlaceholder\n ? {\n ...previewPlaceholder,\n }\n : {\n ...selectedOption,\n value: selectedOption?.value ?? \"\",\n },\n {\n asPlaceholder: selectedOption === undefined,\n showValue: false,\n isLoadingSelectedOption,\n handleFetchSelectedOption: fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined,\n isFetchSelectedOptionSync,\n className: cn(\"rounded-t-none pt-2\"),\n },\n )\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={selectedOption?.icon ?? previewPlaceholder?.icon}\n title={selectedOption?.title ?? previewPlaceholder?.title}\n path={selectedOption?.path ?? previewPlaceholder?.path}\n value={\n selectedOption?.value ?? previewPlaceholder?.value ?? \"\"\n }\n description={\n selectedOption?.description ??\n previewPlaceholder?.description\n }\n asPlaceholder={selectedOption === undefined}\n showValue={false}\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={\n fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined\n }\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n className={cn(\"rounded-t-none pt-2\")}\n />\n ))}\n <PopoverContent\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n if (e.target instanceof Element && e.target.id === id) {\n e.preventDefault();\n }\n }}\n >\n <IdAutocompleteList\n variant={variant}\n commandListRef={commandListRef}\n selectedValue={selectedValue}\n options={options}\n toggleOption={handleOptionSelection}\n renderOption={renderOption}\n previewPlaceholder={previewPlaceholder}\n />\n </PopoverContent>\n </Command>\n </Popover>\n ) : (\n <ValueTransformer transformers={transformers}>\n <Input\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onBlur}\n onClick={onClick}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n maxLength={maxLength}\n {...props}\n ref={mergedRef}\n />\n </ValueTransformer>\n )}\n {!!description && <FormDescription>{description}</FormDescription>}\n {hasWarning && <FormMessageList messages={warnings} type=\"warning\" />}\n {hasError && <FormMessageList messages={errors} type=\"error\" />}\n </FormGroup>\n );\n },\n);\n\nIdAutocomplete.displayName = \"IdAutocomplete\";\n\nexport { IdAutocomplete };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"id-autocomplete.js","names":["cn","sharedValueTransformers","Command","React","useId","useMemo","useRef","FormDescription","FormGroup","FormLabel","FormMessageList","Input","Popover","PopoverAnchor","PopoverContent","ValueTransformer","IdAutocompleteInputContainer","IdAutocompleteListOption","IdAutocompleteList","useIdAutocomplete","IdAutocomplete","forwardRef","id","idProp","name","className","label","description","value","defaultValue","disabled","placeholder","required","errors","warnings","onChange","onBlur","onClick","onKeyDown","onMouseDown","autoComplete","variant","maxLength","fetchOptionsCallback","fetchSelectedOptionCallback","isOpenByDefault","initialOptions","renderOption","previewPlaceholder","props","ref","prefix","inputRef","mergedRef","node","current","hasWarning","Array","isArray","length","hasError","selectedValue","selectedOption","isPopoverOpen","commandListRef","options","isLoading","isLoadingSelectedOption","haveFetchError","commandValue","isFetchSelectedOptionSync","toggleOption","handleOpenChange","onTriggerBlur","handleChange","handleCommandValue","handleFetchSelectedOption","handlePaste","fetchOptions","fetchSelectedOption","handleOptionSelection","optionValue","focus","asCard","transformers","trimOnBlur","trimOnEnter","e","preventDefault","target","control","undefined","asPlaceholder","showValue","icon","title","path","Element","displayName"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { cn } from \"#design-system\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command } from \"cmdk\";\nimport React, { useId, useMemo, useRef } from \"react\";\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 { Input } from \"../input/input.js\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"../popover/popover.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport { IdAutocompleteInputContainer } from \"./id-autocomplete-input-container.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport { IdAutocompleteList } from \"./id-autocomplete-list.js\";\nimport type { IdAutocompleteProps } from \"./types.js\";\nimport { useIdAutocomplete } from \"./use-id-autocomplete.js\";\n\nconst IdAutocomplete = React.forwardRef<HTMLInputElement, IdAutocompleteProps>(\n (\n {\n id: idProp,\n name,\n className,\n label,\n description,\n value,\n defaultValue,\n disabled,\n placeholder,\n required,\n errors,\n warnings,\n onChange,\n onBlur,\n onClick,\n onKeyDown,\n onMouseDown,\n autoComplete = true,\n variant = \"withValue\",\n maxLength,\n fetchOptionsCallback,\n fetchSelectedOptionCallback,\n isOpenByDefault, // to be used only in stories\n initialOptions,\n renderOption,\n previewPlaceholder,\n ...props\n },\n ref,\n ) => {\n const prefix = useId();\n const id = idProp ?? `${prefix}-id-autocomplete`;\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const mergedRef = (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const hasWarning = Array.isArray(warnings) && warnings.length > 0;\n const hasError = Array.isArray(errors) && errors.length > 0;\n\n const {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n } = useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions: fetchOptionsCallback,\n fetchSelectedOption: fetchSelectedOptionCallback,\n });\n\n const handleOptionSelection = (optionValue: string) => {\n toggleOption(optionValue);\n inputRef.current?.focus();\n };\n\n const asCard =\n variant === \"withValueAndTitle\" ||\n variant === \"withValueTitleAndDescription\";\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <FormGroup>\n {!!label && (\n <FormLabel\n htmlFor={id}\n disabled={disabled}\n hasError={hasError}\n required={required}\n onClick={(e) => {\n e.preventDefault();\n (e.target as HTMLLabelElement).control?.focus();\n }}\n >\n {label}\n </FormLabel>\n )}\n {autoComplete && fetchOptionsCallback ? (\n <Popover open={isPopoverOpen} onOpenChange={handleOpenChange}>\n <Command\n shouldFilter={false}\n value={commandValue}\n onValueChange={handleCommandValue}\n className={cn(\"dark:bg-charcoal-900 bg-gray-100\")}\n >\n <PopoverAnchor asChild={true}>\n <IdAutocompleteInputContainer\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n isLoading={isLoading}\n haveFetchError={haveFetchError}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onTriggerBlur}\n onClick={onClick}\n selectedOption={selectedOption}\n optionsLength={options.length}\n handleOpenChange={handleOpenChange}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n hasError={hasError}\n label={label}\n required={required}\n isPopoverOpen={isPopoverOpen}\n maxLength={maxLength}\n handlePaste={handlePaste}\n {...props}\n ref={mergedRef}\n />\n </PopoverAnchor>\n {asCard &&\n (renderOption ? (\n renderOption(\n selectedOption === undefined && previewPlaceholder\n ? {\n ...previewPlaceholder,\n }\n : {\n ...selectedOption,\n value: selectedOption?.value ?? \"\",\n },\n {\n asPlaceholder: selectedOption === undefined,\n showValue: false,\n isLoadingSelectedOption,\n handleFetchSelectedOption: fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined,\n isFetchSelectedOptionSync,\n className: cn(\"rounded-t-none pt-2\"),\n },\n )\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={selectedOption?.icon ?? previewPlaceholder?.icon}\n title={selectedOption?.title ?? previewPlaceholder?.title}\n path={selectedOption?.path ?? previewPlaceholder?.path}\n value={\n selectedOption?.value ?? previewPlaceholder?.value ?? \"\"\n }\n description={\n selectedOption?.description ??\n previewPlaceholder?.description\n }\n asPlaceholder={selectedOption === undefined}\n showValue={false}\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={\n fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined\n }\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n className={cn(\"rounded-t-none pt-2\")}\n />\n ))}\n <PopoverContent\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n if (e.target instanceof Element && e.target.id === id) {\n e.preventDefault();\n }\n }}\n >\n <IdAutocompleteList\n variant={variant}\n commandListRef={commandListRef}\n selectedValue={selectedValue}\n options={options}\n toggleOption={handleOptionSelection}\n renderOption={renderOption}\n previewPlaceholder={previewPlaceholder}\n />\n </PopoverContent>\n </Command>\n </Popover>\n ) : (\n <ValueTransformer transformers={transformers}>\n <Input\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onBlur}\n onClick={onClick}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n maxLength={maxLength}\n {...props}\n ref={mergedRef}\n />\n </ValueTransformer>\n )}\n {!!description && <FormDescription>{description}</FormDescription>}\n {hasWarning && <FormMessageList messages={warnings} type=\"warning\" />}\n {hasError && <FormMessageList messages={errors} type=\"error\" />}\n </FormGroup>\n );\n },\n);\n\nIdAutocomplete.displayName = \"IdAutocomplete\";\n\nexport { IdAutocomplete };\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAMoB,iBAAiBjB,sBAAMkB,YAEzB,EACEC,IAAIC,QACJC,MACAC,WACAC,OACAC,aACAC,OACAC,cACAC,UACAC,aACAC,UACAC,QACAC,UACAC,UACAC,QACAC,SACAC,WACAC,aACAC,eAAe,MACfC,UAAU,aACVC,WACAC,sBACAC,6BACAC,iBACAC,gBACAC,cACAC,oBACA,GAAGC,SAELC,QACG;CACH,MAAMC,SAAS/C,OAAO;CACtB,MAAMkB,KAAKC,UAAU,GAAG4B,OAAM;CAC9B,MAAMC,WAAW9C,OAAgC,KAAK;CAEtD,MAAM+C,aAAaC,SAAkC;AACnDF,WAASG,UAAUD;AACnB,MAAI,OAAOJ,QAAQ,WACjBA,KAAII,KAAK;WACAJ,IACTA,KAAIK,UAAUD;;CAIlB,MAAME,aAAaC,MAAMC,QAAQxB,SAAS,IAAIA,SAASyB,SAAS;CAChE,MAAMC,WAAWH,MAAMC,QAAQzB,OAAO,IAAIA,OAAO0B,SAAS;CAE1D,MAAM,EACJE,eACAC,gBACAC,eACAC,gBACAC,SACAC,WACAC,yBACAC,gBACAC,cACAC,2BACAC,cACAC,kBACAC,eACAC,cACAC,oBACAC,2BACAC,gBACE1D,kBAAkB;EACpBqB;EACAX;EACAD;EACAiB;EACAC;EACAX;EACAC;EACA0C,cAAcnC;EACdoC,qBAAqBnC;EACtB,CAAC;CAEF,MAAMoC,yBAAyBC,gBAAwB;AACrDV,eAAaU,YAAY;AACzB7B,WAASG,SAAS2B,OAAO;;CAG3B,MAAMC,SACJ1C,YAAY,uBACZA,YAAY;CAEd,MAAM2C,eAAgC/E,cAC9B,CACJJ,wBAAwBoF,YAAY,EACpCpF,wBAAwBqF,aAAa,CACtC,EACD,EACF,CAAC;AAED,QACE,qBAAC,WAAD,EAAA,UAAA;EACG,CAAC,CAAC5D,SACD,oBAAC,WAAD;GACE,SAASJ;GACCQ;GACA8B;GACA5B;GACV,UAAUuD,MAAM;AACdA,MAAEC,gBAAgB;AACjBD,MAAEE,OAA4BC,SAASR,OAAO;;aAGhDxD;GAEJ,CAAA;EACAc,gBAAgBG,uBACf,oBAAC,SAAD;GAAS,MAAMoB;GAAe,cAAcS;aAC1C,qBAAC,SAAD;IACE,cAAc;IACd,OAAOH;IACP,eAAeM;IACf,WAAW3E,GAAG,mCAAmC;cAJnD;KAME,oBAAC,eAAD;MAAe,SAAS;gBACtB,oBAAC,8BAAD;OACMsB;OACEE;OACN,OAAOqC;OACIpC;OACAyC;OACKE;OACNtC;OACV,UAAU4C;OACV,QAAQD;OACCpC;OACOyB;OAChB,eAAeG,QAAQN;OACLa;OACPlC;OACEC;OACAR;OACH6B;OACHlC;OACGM;OACK+B;OACJrB;OACEmC;OACb,GAAI5B;OACJ,KAAKI;OAAU,CAAA;MAEJ,CAAA;KACd8B,WACEpC,eACCA,aACEe,mBAAmB6B,KAAAA,KAAa3C,qBAC5B,EACE,GAAGA,oBACJ,GACD;MACE,GAAGc;MACHlC,OAAOkC,gBAAgBlC,SAAS;MACjC,EACL;MACEgE,eAAe9B,mBAAmB6B,KAAAA;MAClCE,WAAW;MACX1B;MACAS,2BAA2BhC,8BACvBgC,4BACAe,KAAAA;MACJrB;MACA7C,WAAWzB,GAAG,sBAAqB;MAEvC,CAAC,GAED,oBAAC,0BAAD;MACWyC;MACT,MAAMqB,gBAAgBgC,QAAQ9C,oBAAoB8C;MAClD,OAAOhC,gBAAgBiC,SAAS/C,oBAAoB+C;MACpD,MAAMjC,gBAAgBkC,QAAQhD,oBAAoBgD;MAClD,OACElC,gBAAgBlC,SAASoB,oBAAoBpB,SAAS;MAExD,aACEkC,gBAAgBnC,eAChBqB,oBAAoBrB;MAEtB,eAAemC,mBAAmB6B,KAAAA;MAClC,WAAW;MACcxB;MACzB,2BACEvB,8BACIgC,4BACAe,KAAAA;MAEqBrB;MAC3B,WAAWtE,GAAG,sBAAsB;MAEvC,CAAA;KACH,oBAAC,gBAAD;MACE,OAAM;MACN,kBAAkBuF,MAAMA,EAAEC,gBAAgB;MAC1C,oBAAoBD,MAAM;AACxB,WAAIA,EAAEE,kBAAkBQ,WAAWV,EAAEE,OAAOnE,OAAOA,GACjDiE,GAAEC,gBAAgB;;gBAItB,oBAAC,oBAAD;OACW/C;OACOuB;OACDH;OACNI;OACT,cAAce;OACAjC;OACMC;OAAmB,CAAA;MAE3B,CAAA;KACT;;GACD,CAAA,GAEV,oBAAC,kBAAD;GAAgCoC;aAC9B,oBAAC,OAAD;IACM9D;IACEE;IACN,OAAOqC;IACIpC;IACDK;IACV,UAAU4C;IACFtC;IACCC;IACIE;IACAR;IACb,gBAAc6B;IACd,cAAY,CAAClC,QAAQ,oBAAoBiE,KAAAA;IACzC,iBAAe3D;IACJU;IACX,GAAIO;IACJ,KAAKI;IAAU,CAAA;GAGpB,CAAA;EACA,CAAC,CAAC1B,eAAe,oBAAC,iBAAD,EAAA,UAAkBA,aAA8B,CAAA;EACjE6B,cAAc,oBAAC,iBAAD;GAAiB,UAAUtB;GAAU,MAAK;GAAY,CAAA;EACpE0B,YAAY,oBAAC,iBAAD;GAAiB,UAAU3B;GAAQ,MAAK;GAAU,CAAA;EACrD,EAAA,CAAA;EAGjB;AAEDb,eAAe8E,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { v as IdAutocompleteOption, y as IdAutocompleteProps } from "../../../index-
|
|
1
|
+
import { v as IdAutocompleteOption, y as IdAutocompleteProps } from "../../../index-B6YyDoT1.js";
|
|
2
2
|
export { IdAutocompleteOption, IdAutocompleteProps };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as useIdAutocomplete } from "../../../use-id-autocomplete-
|
|
1
|
+
import { t as useIdAutocomplete } from "../../../use-id-autocomplete-JE8w4UXf.js";
|
|
2
2
|
export { useIdAutocomplete };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-id-autocomplete.js","names":[],"sources":["../../../../src/ui/components/id-autocomplete/use-id-autocomplete.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useIdAutocompleteContext } from \"./id-autocomplete-context.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface UseIdAutocompleteParams {\n autoComplete: IdAutocompleteProps[\"autoComplete\"];\n defaultValue?: string;\n value?: string;\n isOpenByDefault: IdAutocompleteProps[\"isOpenByDefault\"];\n initialOptions: IdAutocompleteProps[\"initialOptions\"];\n onChange?: IdAutocompleteProps[\"onChange\"];\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n fetchOptions: IdAutocompleteProps[\"fetchOptionsCallback\"];\n fetchSelectedOption: IdAutocompleteProps[\"fetchSelectedOptionCallback\"];\n}\n\nexport function useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions,\n fetchSelectedOption,\n}: UseIdAutocompleteParams) {\n const context = useIdAutocompleteContext();\n const shouldFetchOptions = useRef(false);\n const isInternalChange = useRef(false);\n const commandListRef = useRef<HTMLDivElement>(null);\n\n const [isPopoverOpen, setIsPopoverOpen] = useState(isOpenByDefault ?? false);\n const [options, setOptions] = useState<IdAutocompleteOption[]>(\n initialOptions ?? [],\n );\n const [isLoading, setIsLoading] = useState(false);\n const [isLoadingSelectedOption, setIsLoadingSelectedOption] = useState(false);\n const [haveFetchError, setHaveFetchError] = useState(false);\n const [selectedValue, setSelectedValue] = useState(\n value ?? defaultValue ?? \"\",\n );\n const [selectedOption, setSelectedOption] = useState<\n IdAutocompleteOption | undefined\n >(undefined);\n const [commandValue, setCommandValue] = useState(\"\");\n const [isFetchSelectedOptionSync, setIsFetchSelectedOptionSync] =\n useState(false);\n\n const clear = useCallback(() => {\n setHaveFetchError(false);\n setIsLoading(false);\n setIsLoadingSelectedOption(false);\n setIsPopoverOpen(false);\n }, []);\n\n const debouncedFetchOptions = useDebounceCallback(\n useCallback(\n (newValue: string) => {\n if (!autoComplete || !fetchOptions) return;\n if (newValue === \"\") {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n return;\n }\n\n setHaveFetchError(false);\n setIsLoading(true);\n\n try {\n const result = fetchOptions(newValue, context);\n Promise.resolve(result)\n .then((newOptions) => {\n setOptions(newOptions);\n const matchingOption = newOptions.find(\n (opt) => opt.value === newValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n setIsPopoverOpen(false);\n } else {\n setSelectedOption(undefined);\n setIsPopoverOpen(true);\n }\n setIsLoading(false);\n })\n .catch(() => {\n setHaveFetchError(true);\n setIsLoading(false);\n });\n } catch {\n setHaveFetchError(true);\n setIsLoading(false);\n }\n },\n [clear, autoComplete, fetchOptions, context],\n ),\n );\n\n const handleFetchSelectedOption = useCallback(\n (value: string) => {\n if (!autoComplete || !fetchSelectedOption) return;\n\n setIsLoadingSelectedOption(true);\n\n try {\n const result = fetchSelectedOption(value);\n const isPromise = result instanceof Promise;\n\n Promise.resolve(result)\n .then((option) => {\n if (option) {\n setSelectedOption(option);\n setOptions((prevOptions) => {\n const optionIndex = prevOptions.findIndex(\n (opt) => opt.value === value,\n );\n if (optionIndex !== -1) {\n const newOptions = [...prevOptions];\n newOptions[optionIndex] = option;\n return newOptions;\n }\n return prevOptions;\n });\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n setIsLoadingSelectedOption(false);\n if (!isPromise) {\n setIsFetchSelectedOptionSync(true);\n setTimeout(() => {\n setIsFetchSelectedOptionSync(false);\n }, 1500);\n }\n })\n .catch(() => {\n setIsLoadingSelectedOption(false);\n });\n } catch {\n setIsLoadingSelectedOption(false);\n }\n },\n [clear, autoComplete, fetchSelectedOption],\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n setCommandValue(options[0]?.value ?? \"\");\n }\n setIsPopoverOpen(open);\n },\n [options],\n );\n\n const toggleOption = useCallback(\n (optionValue: string) => {\n shouldFetchOptions.current = false;\n isInternalChange.current = true;\n setSelectedValue(optionValue);\n setSelectedOption(options.find((opt) => opt.value === optionValue));\n clear();\n onChange?.(optionValue);\n },\n [onChange, clear, options],\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n shouldFetchOptions.current = true;\n setSelectedValue(newValue);\n setSelectedOption(undefined);\n onChange?.(newValue);\n },\n [onChange],\n );\n\n const handleCommandValue = useCallback((value: string) => {\n setCommandValue(value);\n }, []);\n\n const onTriggerBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (!isPopoverOpen) {\n onBlur?.(e);\n }\n },\n [onBlur, isPopoverOpen],\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n // Get clipboard data and trim it\n const clipboardData = e.clipboardData.getData(\"text\");\n const trimmedValue = clipboardData.trim();\n\n // If trimming changed the value, handle paste manually\n if (clipboardData !== trimmedValue) {\n e.preventDefault();\n\n // Get current input element and selection positions\n const input = e.currentTarget;\n const start = input.selectionStart || 0;\n const end = input.selectionEnd || 0;\n\n // Create new value by inserting trimmed text at cursor position\n const currentValue = input.value;\n const newValue =\n currentValue.substring(0, start) +\n trimmedValue +\n currentValue.substring(end);\n\n // Update input value via onChange\n onChange?.(newValue);\n\n // Set cursor position after pasted text and fetch options\n requestAnimationFrame(() => {\n const newPosition = start + trimmedValue.length;\n input.setSelectionRange(newPosition, newPosition);\n debouncedFetchOptions(newValue);\n });\n } else if (clipboardData === selectedValue) {\n debouncedFetchOptions(selectedValue);\n }\n },\n [selectedValue, debouncedFetchOptions, onChange],\n );\n\n useEffect(() => {\n if (autoComplete) {\n if (shouldFetchOptions.current) {\n debouncedFetchOptions(selectedValue);\n }\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n }, [autoComplete, selectedValue, debouncedFetchOptions, clear]);\n\n useEffect(() => {\n if (!isInternalChange.current) {\n shouldFetchOptions.current = false;\n setSelectedValue(value ?? defaultValue ?? \"\");\n setSelectedOption(undefined);\n }\n isInternalChange.current = false;\n }, [value]);\n\n useEffect(() => {\n if (initialOptions?.length && selectedValue) {\n const matchingOption = initialOptions.find(\n (opt) => opt.value === selectedValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n }\n }\n }, []);\n\n return {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-id-autocomplete.js","names":["useCallback","useEffect","useRef","useState","useDebounceCallback","useIdAutocompleteContext","useIdAutocomplete","autoComplete","defaultValue","value","isOpenByDefault","initialOptions","onChange","onBlur","fetchOptions","fetchSelectedOption","context","shouldFetchOptions","isInternalChange","commandListRef","isPopoverOpen","setIsPopoverOpen","options","setOptions","isLoading","setIsLoading","isLoadingSelectedOption","setIsLoadingSelectedOption","haveFetchError","setHaveFetchError","selectedValue","setSelectedValue","selectedOption","setSelectedOption","undefined","commandValue","setCommandValue","isFetchSelectedOptionSync","setIsFetchSelectedOptionSync","clear","debouncedFetchOptions","newValue","result","Promise","resolve","then","newOptions","matchingOption","find","opt","catch","handleFetchSelectedOption","isPromise","option","prevOptions","optionIndex","findIndex","setTimeout","handleOpenChange","open","toggleOption","optionValue","current","handleChange","e","target","handleCommandValue","onTriggerBlur","handlePaste","clipboardData","getData","trimmedValue","trim","preventDefault","input","currentTarget","start","selectionStart","end","selectionEnd","currentValue","substring","requestAnimationFrame","newPosition","length","setSelectionRange"],"sources":["../../../../src/ui/components/id-autocomplete/use-id-autocomplete.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useIdAutocompleteContext } from \"./id-autocomplete-context.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface UseIdAutocompleteParams {\n autoComplete: IdAutocompleteProps[\"autoComplete\"];\n defaultValue?: string;\n value?: string;\n isOpenByDefault: IdAutocompleteProps[\"isOpenByDefault\"];\n initialOptions: IdAutocompleteProps[\"initialOptions\"];\n onChange?: IdAutocompleteProps[\"onChange\"];\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n fetchOptions: IdAutocompleteProps[\"fetchOptionsCallback\"];\n fetchSelectedOption: IdAutocompleteProps[\"fetchSelectedOptionCallback\"];\n}\n\nexport function useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions,\n fetchSelectedOption,\n}: UseIdAutocompleteParams) {\n const context = useIdAutocompleteContext();\n const shouldFetchOptions = useRef(false);\n const isInternalChange = useRef(false);\n const commandListRef = useRef<HTMLDivElement>(null);\n\n const [isPopoverOpen, setIsPopoverOpen] = useState(isOpenByDefault ?? false);\n const [options, setOptions] = useState<IdAutocompleteOption[]>(\n initialOptions ?? [],\n );\n const [isLoading, setIsLoading] = useState(false);\n const [isLoadingSelectedOption, setIsLoadingSelectedOption] = useState(false);\n const [haveFetchError, setHaveFetchError] = useState(false);\n const [selectedValue, setSelectedValue] = useState(\n value ?? defaultValue ?? \"\",\n );\n const [selectedOption, setSelectedOption] = useState<\n IdAutocompleteOption | undefined\n >(undefined);\n const [commandValue, setCommandValue] = useState(\"\");\n const [isFetchSelectedOptionSync, setIsFetchSelectedOptionSync] =\n useState(false);\n\n const clear = useCallback(() => {\n setHaveFetchError(false);\n setIsLoading(false);\n setIsLoadingSelectedOption(false);\n setIsPopoverOpen(false);\n }, []);\n\n const debouncedFetchOptions = useDebounceCallback(\n useCallback(\n (newValue: string) => {\n if (!autoComplete || !fetchOptions) return;\n if (newValue === \"\") {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n return;\n }\n\n setHaveFetchError(false);\n setIsLoading(true);\n\n try {\n const result = fetchOptions(newValue, context);\n Promise.resolve(result)\n .then((newOptions) => {\n setOptions(newOptions);\n const matchingOption = newOptions.find(\n (opt) => opt.value === newValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n setIsPopoverOpen(false);\n } else {\n setSelectedOption(undefined);\n setIsPopoverOpen(true);\n }\n setIsLoading(false);\n })\n .catch(() => {\n setHaveFetchError(true);\n setIsLoading(false);\n });\n } catch {\n setHaveFetchError(true);\n setIsLoading(false);\n }\n },\n [clear, autoComplete, fetchOptions, context],\n ),\n );\n\n const handleFetchSelectedOption = useCallback(\n (value: string) => {\n if (!autoComplete || !fetchSelectedOption) return;\n\n setIsLoadingSelectedOption(true);\n\n try {\n const result = fetchSelectedOption(value);\n const isPromise = result instanceof Promise;\n\n Promise.resolve(result)\n .then((option) => {\n if (option) {\n setSelectedOption(option);\n setOptions((prevOptions) => {\n const optionIndex = prevOptions.findIndex(\n (opt) => opt.value === value,\n );\n if (optionIndex !== -1) {\n const newOptions = [...prevOptions];\n newOptions[optionIndex] = option;\n return newOptions;\n }\n return prevOptions;\n });\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n setIsLoadingSelectedOption(false);\n if (!isPromise) {\n setIsFetchSelectedOptionSync(true);\n setTimeout(() => {\n setIsFetchSelectedOptionSync(false);\n }, 1500);\n }\n })\n .catch(() => {\n setIsLoadingSelectedOption(false);\n });\n } catch {\n setIsLoadingSelectedOption(false);\n }\n },\n [clear, autoComplete, fetchSelectedOption],\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n setCommandValue(options[0]?.value ?? \"\");\n }\n setIsPopoverOpen(open);\n },\n [options],\n );\n\n const toggleOption = useCallback(\n (optionValue: string) => {\n shouldFetchOptions.current = false;\n isInternalChange.current = true;\n setSelectedValue(optionValue);\n setSelectedOption(options.find((opt) => opt.value === optionValue));\n clear();\n onChange?.(optionValue);\n },\n [onChange, clear, options],\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n shouldFetchOptions.current = true;\n setSelectedValue(newValue);\n setSelectedOption(undefined);\n onChange?.(newValue);\n },\n [onChange],\n );\n\n const handleCommandValue = useCallback((value: string) => {\n setCommandValue(value);\n }, []);\n\n const onTriggerBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (!isPopoverOpen) {\n onBlur?.(e);\n }\n },\n [onBlur, isPopoverOpen],\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n // Get clipboard data and trim it\n const clipboardData = e.clipboardData.getData(\"text\");\n const trimmedValue = clipboardData.trim();\n\n // If trimming changed the value, handle paste manually\n if (clipboardData !== trimmedValue) {\n e.preventDefault();\n\n // Get current input element and selection positions\n const input = e.currentTarget;\n const start = input.selectionStart || 0;\n const end = input.selectionEnd || 0;\n\n // Create new value by inserting trimmed text at cursor position\n const currentValue = input.value;\n const newValue =\n currentValue.substring(0, start) +\n trimmedValue +\n currentValue.substring(end);\n\n // Update input value via onChange\n onChange?.(newValue);\n\n // Set cursor position after pasted text and fetch options\n requestAnimationFrame(() => {\n const newPosition = start + trimmedValue.length;\n input.setSelectionRange(newPosition, newPosition);\n debouncedFetchOptions(newValue);\n });\n } else if (clipboardData === selectedValue) {\n debouncedFetchOptions(selectedValue);\n }\n },\n [selectedValue, debouncedFetchOptions, onChange],\n );\n\n useEffect(() => {\n if (autoComplete) {\n if (shouldFetchOptions.current) {\n debouncedFetchOptions(selectedValue);\n }\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n }, [autoComplete, selectedValue, debouncedFetchOptions, clear]);\n\n useEffect(() => {\n if (!isInternalChange.current) {\n shouldFetchOptions.current = false;\n setSelectedValue(value ?? defaultValue ?? \"\");\n setSelectedOption(undefined);\n }\n isInternalChange.current = false;\n }, [value]);\n\n useEffect(() => {\n if (initialOptions?.length && selectedValue) {\n const matchingOption = initialOptions.find(\n (opt) => opt.value === selectedValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n }\n }\n }, []);\n\n return {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { n as ButtonProps, r as buttonVariants, t as Button } from "../../button-
|
|
2
|
-
import { n as CharacterCounterProps, t as CharacterCounter } from "../../character-counter-
|
|
3
|
-
import { n as CheckboxValue, t as CheckboxBase } from "../../checkbox-base-
|
|
4
|
-
import { n as CheckboxProps, t as Checkbox } from "../../checkbox-
|
|
5
|
-
import { a as CommandItem, i as CommandInput, n as CommandEmpty, o as CommandList, r as CommandGroup, s as CommandLoading, t as Command } from "../../command
|
|
6
|
-
import { n as RadioGroupFieldProps, t as RadioGroupField } from "../../radio-group-field-
|
|
7
|
-
import { n as SelectFieldProps, r as SelectFieldRaw, t as SelectField } from "../../select-field-
|
|
8
|
-
import { n as EnumFieldProps, t as EnumField } from "../../enum-field-
|
|
9
|
-
import { n as FormDescriptionProps, t as FormDescription } from "../../form-description-
|
|
10
|
-
import { t as FormGroup } from "../../form-group-
|
|
11
|
-
import { n as FormLabelProps, t as FormLabel } from "../../form-label-
|
|
12
|
-
import { n as FormMessageProps, r as FormMessageType, t as FormMessage } from "../../form-message-
|
|
13
|
-
import { t as FormServerErrorMessage } from "../../form-server-error-message-
|
|
14
|
-
import { t as FormMessageList } from "../../message-list-
|
|
15
|
-
import { t as Form } from "../../form-
|
|
16
|
-
import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../id-autocomplete-input-container-
|
|
17
|
-
import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../id-autocomplete-list-option-
|
|
18
|
-
import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../id-autocomplete-list-
|
|
19
|
-
import { t as IdAutocomplete } from "../../id-autocomplete-
|
|
20
|
-
import { t as useIdAutocomplete } from "../../use-id-autocomplete-
|
|
21
|
-
import { n as InputProps, t as Input } from "../../input-
|
|
22
|
-
import { t as SplittedInputDiff } from "../../splitted-input-diff-
|
|
23
|
-
import { t as JsonViewer } from "../../json-viewer-
|
|
24
|
-
import { i as PopoverTrigger, n as PopoverAnchor, r as PopoverContent, t as Popover } from "../../popover-
|
|
25
|
-
import { n as RadioGroup, t as CustomizableRadioGroupProps } from "../../radio-group-
|
|
26
|
-
import { n as RadioProps, t as Radio } from "../../radio-
|
|
27
|
-
import { n as SearchAutocompleteProps, r as SearchAutocompleteRowContext, t as SearchAutocompleteOption } from "../../types-
|
|
28
|
-
import { t as SearchAutocomplete } from "../../search-autocomplete-
|
|
29
|
-
import { t as useSearchAutocomplete } from "../../use-search-autocomplete-
|
|
30
|
-
import { t as Content } from "../../content-
|
|
31
|
-
import { t as SelectedContent } from "../../selected-content-
|
|
32
|
-
import { n as TextInputProps, t as TextInput } from "../../text-input-
|
|
33
|
-
import { n as TextFieldProps, t as TextField } from "../../text-field-
|
|
34
|
-
import { a as TooltipProps, i as TooltipContent, n as Root, o as Trigger, r as Tooltip, t as Provider } from "../../tooltip-
|
|
35
|
-
import { t as ValueTransformer } from "../../value-transformer-
|
|
36
|
-
import { n as withFieldValidation, t as ValidationOptions } from "../../with-field-validation-
|
|
1
|
+
import { n as ButtonProps, r as buttonVariants, t as Button } from "../../button-C8doazjv.js";
|
|
2
|
+
import { n as CharacterCounterProps, t as CharacterCounter } from "../../character-counter-BWoglM2P.js";
|
|
3
|
+
import { n as CheckboxValue, t as CheckboxBase } from "../../checkbox-base-CZo-4eL0.js";
|
|
4
|
+
import { n as CheckboxProps, t as Checkbox } from "../../checkbox-BueZ7Wg_.js";
|
|
5
|
+
import { a as CommandItem, i as CommandInput, n as CommandEmpty, o as CommandList, r as CommandGroup, s as CommandLoading, t as Command } from "../../command--QCHwqST.js";
|
|
6
|
+
import { n as RadioGroupFieldProps, t as RadioGroupField } from "../../radio-group-field-z7q-PVyY.js";
|
|
7
|
+
import { n as SelectFieldProps, r as SelectFieldRaw, t as SelectField } from "../../select-field-D27IGJrV.js";
|
|
8
|
+
import { n as EnumFieldProps, t as EnumField } from "../../enum-field-CBFI4x1f.js";
|
|
9
|
+
import { n as FormDescriptionProps, t as FormDescription } from "../../form-description-CYkcMEzm.js";
|
|
10
|
+
import { t as FormGroup } from "../../form-group-C8kL6pdZ.js";
|
|
11
|
+
import { n as FormLabelProps, t as FormLabel } from "../../form-label-b6nQi0XO.js";
|
|
12
|
+
import { n as FormMessageProps, r as FormMessageType, t as FormMessage } from "../../form-message-Dq72nBXz.js";
|
|
13
|
+
import { t as FormServerErrorMessage } from "../../form-server-error-message-DXbaiTfF.js";
|
|
14
|
+
import { t as FormMessageList } from "../../message-list-C4mPpBBa.js";
|
|
15
|
+
import { t as Form } from "../../form-CKRKn0TQ.js";
|
|
16
|
+
import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../id-autocomplete-input-container-DsLTOkaT.js";
|
|
17
|
+
import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../id-autocomplete-list-option-fOnxSbzb.js";
|
|
18
|
+
import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../id-autocomplete-list-CFWHGDwL.js";
|
|
19
|
+
import { t as IdAutocomplete } from "../../id-autocomplete-CLC7zy-f.js";
|
|
20
|
+
import { t as useIdAutocomplete } from "../../use-id-autocomplete-JE8w4UXf.js";
|
|
21
|
+
import { n as InputProps, t as Input } from "../../input-BpEQjaWV.js";
|
|
22
|
+
import { t as SplittedInputDiff } from "../../splitted-input-diff-Bjrw-jzX.js";
|
|
23
|
+
import { t as JsonViewer } from "../../json-viewer-DaTgmzkS.js";
|
|
24
|
+
import { i as PopoverTrigger, n as PopoverAnchor, r as PopoverContent, t as Popover } from "../../popover-XSBOuSih.js";
|
|
25
|
+
import { n as RadioGroup, t as CustomizableRadioGroupProps } from "../../radio-group-Bkli6nUz.js";
|
|
26
|
+
import { n as RadioProps, t as Radio } from "../../radio-eL0Oy86J.js";
|
|
27
|
+
import { n as SearchAutocompleteProps, r as SearchAutocompleteRowContext, t as SearchAutocompleteOption } from "../../types-C04Q_Fan.js";
|
|
28
|
+
import { t as SearchAutocomplete } from "../../search-autocomplete-BJJkrZ1i.js";
|
|
29
|
+
import { t as useSearchAutocomplete } from "../../use-search-autocomplete-IfcQ_gKh.js";
|
|
30
|
+
import { t as Content } from "../../content-DFFfr1mk.js";
|
|
31
|
+
import { t as SelectedContent } from "../../selected-content-CdIw4hcC.js";
|
|
32
|
+
import { n as TextInputProps, t as TextInput } from "../../text-input-BAO78Lzx.js";
|
|
33
|
+
import { n as TextFieldProps, t as TextField } from "../../text-field-Bi7Ze25A.js";
|
|
34
|
+
import { a as TooltipProps, i as TooltipContent, n as Root, o as Trigger, r as Tooltip, t as Provider } from "../../tooltip-CsucyiCV.js";
|
|
35
|
+
import { t as ValueTransformer } from "../../value-transformer-2yvrA5Rp.js";
|
|
36
|
+
import { n as withFieldValidation, t as ValidationOptions } from "../../with-field-validation-YcGrdIrv.js";
|
|
37
37
|
export { Button, ButtonProps, CharacterCounter, CharacterCounterProps, Checkbox, CheckboxBase, CheckboxProps, CheckboxValue, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, Content, CustomizableRadioGroupProps, EnumField, EnumFieldProps, Form, FormDescription, FormDescriptionProps, FormGroup, FormLabel, FormLabelProps, FormMessage, FormMessageList, FormMessageProps, FormMessageType, FormServerErrorMessage, IdAutocomplete, IdAutocompleteInputContainer, IdAutocompleteInputContainerProps, IdAutocompleteList, IdAutocompleteListOption, IdAutocompleteListOptionProps, IdAutocompleteListProps, Input, InputProps, JsonViewer, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Radio, RadioGroup, RadioGroupField, RadioGroupFieldProps, RadioProps, SearchAutocomplete, SearchAutocompleteOption, SearchAutocompleteProps, SearchAutocompleteRowContext, SelectField, SelectFieldProps, SelectFieldRaw, SelectedContent, SplittedInputDiff, TextField, TextFieldProps, TextInput, TextInputProps, Tooltip, TooltipContent, TooltipProps, Provider as TooltipProvider, Root as TooltipRoot, Trigger as TooltipTrigger, ValidationOptions, ValueTransformer, buttonVariants, useIdAutocomplete, useSearchAutocomplete, withFieldValidation };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as InputProps, t as Input } from "../../../input-
|
|
1
|
+
import { n as InputProps, t as Input } from "../../../input-BpEQjaWV.js";
|
|
2
2
|
export { Input, InputProps };
|
|
@@ -7,7 +7,7 @@ function cn(...inputs) {
|
|
|
7
7
|
return twMerge(clsx$1(inputs));
|
|
8
8
|
}
|
|
9
9
|
const inputBaseStyles = cn("flex h-9 w-full rounded-md text-sm font-normal leading-5 text-gray-900 dark:text-gray-50", "dark:border-charcoal-700 dark:bg-charcoal-900 border border-gray-300 bg-white", "px-3 py-2", "font-sans placeholder:text-gray-500 dark:placeholder:text-gray-600", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-900 focus-visible:ring-offset-0 focus-visible:ring-offset-white", "dark:focus-visible:ring-charcoal-300 dark:focus-visible:ring-offset-charcoal-900 dark:focus:bg-charcoal-900 focus:bg-gray-50", "disabled:cursor-not-allowed", "disabled:border-gray-300 disabled:bg-gray-50 disabled:text-gray-700", "disabled:dark:border-charcoal-800 disabled:dark:bg-charcoal-900 disabled:dark:text-gray-300");
|
|
10
|
-
const Input = React$1.forwardRef(({ className, type, ...props }, ref) => {
|
|
10
|
+
const Input = /* @__PURE__ */ React$1.forwardRef(({ className, type, ...props }, ref) => {
|
|
11
11
|
return /* @__PURE__ */ jsx("input", {
|
|
12
12
|
type,
|
|
13
13
|
className: cn(inputBaseStyles, className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","names":["clsx","React"],"sources":["../../../../src/ui/components/input/input.tsx"],"sourcesContent":["import type { ClassValue } from \"clsx\";\nimport clsx from \"clsx\";\nimport * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nfunction cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement>;\n\nconst inputBaseStyles = cn(\n // Base styles\n \"flex h-9 w-full rounded-md text-sm font-normal leading-5 text-gray-900 dark:text-gray-50\",\n // Border & Background\n \"dark:border-charcoal-700 dark:bg-charcoal-900 border border-gray-300 bg-white\",\n // Padding\n \"px-3 py-2\",\n // Placeholder\n \"font-sans placeholder:text-gray-500 dark:placeholder:text-gray-600\",\n // Focus styles\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-900 focus-visible:ring-offset-0 focus-visible:ring-offset-white\",\n \"dark:focus-visible:ring-charcoal-300 dark:focus-visible:ring-offset-charcoal-900 dark:focus:bg-charcoal-900 focus:bg-gray-50\",\n // Disabled state\n \"disabled:cursor-not-allowed\",\n \"disabled:border-gray-300 disabled:bg-gray-50 disabled:text-gray-700\",\n \"disabled:dark:border-charcoal-800 disabled:dark:bg-charcoal-900 disabled:dark:text-gray-300\",\n);\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(inputBaseStyles, className)}\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n"],"mappings":";;;;;AAIA,
|
|
1
|
+
{"version":3,"file":"input.js","names":["clsx","React","twMerge","cn","inputs","inputBaseStyles","Input","forwardRef","className","type","props","ref","displayName"],"sources":["../../../../src/ui/components/input/input.tsx"],"sourcesContent":["import type { ClassValue } from \"clsx\";\nimport clsx from \"clsx\";\nimport * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nfunction cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement>;\n\nconst inputBaseStyles = cn(\n // Base styles\n \"flex h-9 w-full rounded-md text-sm font-normal leading-5 text-gray-900 dark:text-gray-50\",\n // Border & Background\n \"dark:border-charcoal-700 dark:bg-charcoal-900 border border-gray-300 bg-white\",\n // Padding\n \"px-3 py-2\",\n // Placeholder\n \"font-sans placeholder:text-gray-500 dark:placeholder:text-gray-600\",\n // Focus styles\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-900 focus-visible:ring-offset-0 focus-visible:ring-offset-white\",\n \"dark:focus-visible:ring-charcoal-300 dark:focus-visible:ring-offset-charcoal-900 dark:focus:bg-charcoal-900 focus:bg-gray-50\",\n // Disabled state\n \"disabled:cursor-not-allowed\",\n \"disabled:border-gray-300 disabled:bg-gray-50 disabled:text-gray-700\",\n \"disabled:dark:border-charcoal-800 disabled:dark:bg-charcoal-900 disabled:dark:text-gray-300\",\n);\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(inputBaseStyles, className)}\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n"],"mappings":";;;;;AAIA,SAASG,GAAG,GAAGC,QAAsB;AACnC,QAAOF,QAAQF,OAAKI,OAAO,CAAC;;AAI9B,MAAMC,kBAAkBF,GAEtB,4FAEA,iFAEA,aAEA,sEAEA,2IACA,gIAEA,+BACA,uEACA,8FACD;AAED,MAAMG,QAAQL,wBAAMM,YACjB,EAAEC,WAAWC,MAAM,GAAGC,SAASC,QAAQ;AACtC,QACE,oBAAC,SAAD;EACQF;EACN,WAAWN,GAAGE,iBAAiBG,UAAU;EACpCG;EACL,GAAID;EACJ,CAAA;EAGP;AAEDJ,MAAMM,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SplittedInputDiff } from "../../../splitted-input-diff-
|
|
1
|
+
import { t as SplittedInputDiff } from "../../../splitted-input-diff-Bjrw-jzX.js";
|
|
2
2
|
export { SplittedInputDiff };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as Icon, t as cn } from "../../../src-
|
|
1
|
+
import { h as Icon, t as cn } from "../../../src-8xf1ueaA.js";
|
|
2
2
|
import { Tooltip, TooltipProvider as Provider } from "../tooltip/tooltip.js";
|
|
3
3
|
import { InputDiff } from "./subcomponent/input-diff.js";
|
|
4
4
|
import { TextDiff } from "./subcomponent/text-diff.js";
|