shad-m 1.0.0 → 1.0.2
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/common/interactive/list.d.ts +1 -1
- package/dist/common/interactive/select/variants.d.ts +1 -1
- package/dist/components/alert-dialog.d.ts +2 -2
- package/dist/components/badge.d.ts +3 -3
- package/dist/components/button.d.ts +4 -4
- package/dist/components/chip.d.ts +2 -2
- package/dist/components/command.d.ts +7 -7
- package/dist/components/dialog.d.ts +2 -2
- package/dist/components/input-otp.d.ts +2 -2
- package/dist/components/resizable.d.ts +1 -1
- package/dist/components/sidebar.d.ts +1 -1
- package/dist/components/spinner.d.ts +2 -2
- package/dist/components/stepper.d.ts +3 -3
- package/dist/components/toggle-group.d.ts +2 -2
- package/dist/components/toggle.d.ts +2 -2
- package/dist/index.css +43 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8189 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +7846 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +34 -2
- package/dist/assets/Animation/index.js +0 -180
- package/dist/assets/Animation/index.js.map +0 -1
- package/dist/assets/Animation/index.mjs +0 -79
- package/dist/assets/Animation/index.mjs.map +0 -1
- package/dist/assets/Icon/index.js +0 -2102
- package/dist/assets/Icon/index.js.map +0 -1
- package/dist/assets/Icon/index.mjs +0 -421
- package/dist/assets/Icon/index.mjs.map +0 -1
- package/dist/assets/Image/index.js +0 -755
- package/dist/assets/Image/index.js.map +0 -1
- package/dist/assets/Image/index.mjs +0 -150
- package/dist/assets/Image/index.mjs.map +0 -1
- package/dist/common/display/countdown.js +0 -68
- package/dist/common/display/countdown.js.map +0 -1
- package/dist/common/display/countdown.mjs +0 -46
- package/dist/common/display/countdown.mjs.map +0 -1
- package/dist/common/display/display-field-group.js +0 -91
- package/dist/common/display/display-field-group.js.map +0 -1
- package/dist/common/display/display-field-group.mjs +0 -89
- package/dist/common/display/display-field-group.mjs.map +0 -1
- package/dist/common/display/display-field.js +0 -46
- package/dist/common/display/display-field.js.map +0 -1
- package/dist/common/display/display-field.mjs +0 -40
- package/dist/common/display/display-field.mjs.map +0 -1
- package/dist/common/display/display-html-string.js +0 -52
- package/dist/common/display/display-html-string.js.map +0 -1
- package/dist/common/display/display-html-string.mjs +0 -30
- package/dist/common/display/display-html-string.mjs.map +0 -1
- package/dist/common/display/index.js +0 -59
- package/dist/common/display/index.js.map +0 -1
- package/dist/common/display/index.mjs +0 -10
- package/dist/common/display/index.mjs.map +0 -1
- package/dist/common/display/page-breadcrumb.js +0 -43
- package/dist/common/display/page-breadcrumb.js.map +0 -1
- package/dist/common/display/page-breadcrumb.mjs +0 -37
- package/dist/common/display/page-breadcrumb.mjs.map +0 -1
- package/dist/common/display/page-v2.js +0 -58
- package/dist/common/display/page-v2.js.map +0 -1
- package/dist/common/display/page-v2.mjs +0 -20
- package/dist/common/display/page-v2.mjs.map +0 -1
- package/dist/common/display/page.js +0 -155
- package/dist/common/display/page.js.map +0 -1
- package/dist/common/display/page.mjs +0 -138
- package/dist/common/display/page.mjs.map +0 -1
- package/dist/common/display/score-meter.js +0 -161
- package/dist/common/display/score-meter.js.map +0 -1
- package/dist/common/display/score-meter.mjs +0 -140
- package/dist/common/display/score-meter.mjs.map +0 -1
- package/dist/common/display/sidebar/app-sidebar.js +0 -114
- package/dist/common/display/sidebar/app-sidebar.js.map +0 -1
- package/dist/common/display/sidebar/app-sidebar.mjs +0 -92
- package/dist/common/display/sidebar/app-sidebar.mjs.map +0 -1
- package/dist/common/display/sidebar/index.js +0 -89
- package/dist/common/display/sidebar/index.js.map +0 -1
- package/dist/common/display/sidebar/index.mjs +0 -81
- package/dist/common/display/sidebar/index.mjs.map +0 -1
- package/dist/common/display/sidebar/nav-main.js +0 -406
- package/dist/common/display/sidebar/nav-main.js.map +0 -1
- package/dist/common/display/sidebar/nav-main.mjs +0 -400
- package/dist/common/display/sidebar/nav-main.mjs.map +0 -1
- package/dist/common/display/sidebar/sidebar-sheet.js +0 -140
- package/dist/common/display/sidebar/sidebar-sheet.js.map +0 -1
- package/dist/common/display/sidebar/sidebar-sheet.mjs +0 -118
- package/dist/common/display/sidebar/sidebar-sheet.mjs.map +0 -1
- package/dist/common/display/sidebar/types.js +0 -4
- package/dist/common/display/sidebar/types.js.map +0 -1
- package/dist/common/display/sidebar/types.mjs +0 -3
- package/dist/common/display/sidebar/types.mjs.map +0 -1
- package/dist/common/display/status-state.js +0 -97
- package/dist/common/display/status-state.js.map +0 -1
- package/dist/common/display/status-state.mjs +0 -88
- package/dist/common/display/status-state.mjs.map +0 -1
- package/dist/common/forms/auto-form.js +0 -101
- package/dist/common/forms/auto-form.js.map +0 -1
- package/dist/common/forms/auto-form.mjs +0 -78
- package/dist/common/forms/auto-form.mjs.map +0 -1
- package/dist/common/forms/form-field.js +0 -58
- package/dist/common/forms/form-field.js.map +0 -1
- package/dist/common/forms/form-field.mjs +0 -56
- package/dist/common/forms/form-field.mjs.map +0 -1
- package/dist/common/forms/form-input-field.js +0 -64
- package/dist/common/forms/form-input-field.js.map +0 -1
- package/dist/common/forms/form-input-field.mjs +0 -62
- package/dist/common/forms/form-input-field.mjs.map +0 -1
- package/dist/common/forms/index.js +0 -22
- package/dist/common/forms/index.js.map +0 -1
- package/dist/common/forms/index.mjs +0 -5
- package/dist/common/forms/index.mjs.map +0 -1
- package/dist/common/forms/switch-field.js +0 -106
- package/dist/common/forms/switch-field.js.map +0 -1
- package/dist/common/forms/switch-field.mjs +0 -104
- package/dist/common/forms/switch-field.mjs.map +0 -1
- package/dist/common/interactive/alert-dialog-wrapper.js +0 -141
- package/dist/common/interactive/alert-dialog-wrapper.js.map +0 -1
- package/dist/common/interactive/alert-dialog-wrapper.mjs +0 -119
- package/dist/common/interactive/alert-dialog-wrapper.mjs.map +0 -1
- package/dist/common/interactive/autocomplete.js +0 -178
- package/dist/common/interactive/autocomplete.js.map +0 -1
- package/dist/common/interactive/autocomplete.mjs +0 -157
- package/dist/common/interactive/autocomplete.mjs.map +0 -1
- package/dist/common/interactive/copy-tooltip.js +0 -152
- package/dist/common/interactive/copy-tooltip.js.map +0 -1
- package/dist/common/interactive/copy-tooltip.mjs +0 -143
- package/dist/common/interactive/copy-tooltip.mjs.map +0 -1
- package/dist/common/interactive/date-field.js +0 -303
- package/dist/common/interactive/date-field.js.map +0 -1
- package/dist/common/interactive/date-field.mjs +0 -281
- package/dist/common/interactive/date-field.mjs.map +0 -1
- package/dist/common/interactive/date-input/date-input.js +0 -68
- package/dist/common/interactive/date-input/date-input.js.map +0 -1
- package/dist/common/interactive/date-input/date-input.mjs +0 -62
- package/dist/common/interactive/date-input/date-input.mjs.map +0 -1
- package/dist/common/interactive/date-input/index.js +0 -17
- package/dist/common/interactive/date-input/index.js.map +0 -1
- package/dist/common/interactive/date-input/index.mjs +0 -4
- package/dist/common/interactive/date-input/index.mjs.map +0 -1
- package/dist/common/interactive/date-input/types.js +0 -4
- package/dist/common/interactive/date-input/types.js.map +0 -1
- package/dist/common/interactive/date-input/types.mjs +0 -3
- package/dist/common/interactive/date-input/types.mjs.map +0 -1
- package/dist/common/interactive/date-input/use-typed-date.js +0 -478
- package/dist/common/interactive/date-input/use-typed-date.js.map +0 -1
- package/dist/common/interactive/date-input/use-typed-date.mjs +0 -476
- package/dist/common/interactive/date-input/use-typed-date.mjs.map +0 -1
- package/dist/common/interactive/date-input/utils.js +0 -34
- package/dist/common/interactive/date-input/utils.js.map +0 -1
- package/dist/common/interactive/date-input/utils.mjs +0 -29
- package/dist/common/interactive/date-input/utils.mjs.map +0 -1
- package/dist/common/interactive/date-picker.js +0 -616
- package/dist/common/interactive/date-picker.js.map +0 -1
- package/dist/common/interactive/date-picker.mjs +0 -594
- package/dist/common/interactive/date-picker.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/date-range-input.js +0 -82
- package/dist/common/interactive/date-range-input/date-range-input.js.map +0 -1
- package/dist/common/interactive/date-range-input/date-range-input.mjs +0 -76
- package/dist/common/interactive/date-range-input/date-range-input.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/index.js +0 -12
- package/dist/common/interactive/date-range-input/index.js.map +0 -1
- package/dist/common/interactive/date-range-input/index.mjs +0 -3
- package/dist/common/interactive/date-range-input/index.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/types.js +0 -4
- package/dist/common/interactive/date-range-input/types.js.map +0 -1
- package/dist/common/interactive/date-range-input/types.mjs +0 -3
- package/dist/common/interactive/date-range-input/types.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/use-typed-date-range.js +0 -602
- package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +0 -1
- package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +0 -600
- package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +0 -1
- package/dist/common/interactive/date-time-picker.js +0 -215
- package/dist/common/interactive/date-time-picker.js.map +0 -1
- package/dist/common/interactive/date-time-picker.mjs +0 -213
- package/dist/common/interactive/date-time-picker.mjs.map +0 -1
- package/dist/common/interactive/dialog-wrapper.js +0 -124
- package/dist/common/interactive/dialog-wrapper.js.map +0 -1
- package/dist/common/interactive/dialog-wrapper.mjs +0 -102
- package/dist/common/interactive/dialog-wrapper.mjs.map +0 -1
- package/dist/common/interactive/filter.js +0 -287
- package/dist/common/interactive/filter.js.map +0 -1
- package/dist/common/interactive/filter.mjs +0 -280
- package/dist/common/interactive/filter.mjs.map +0 -1
- package/dist/common/interactive/index.js +0 -235
- package/dist/common/interactive/index.js.map +0 -1
- package/dist/common/interactive/index.mjs +0 -24
- package/dist/common/interactive/index.mjs.map +0 -1
- package/dist/common/interactive/list.js +0 -160
- package/dist/common/interactive/list.js.map +0 -1
- package/dist/common/interactive/list.mjs +0 -134
- package/dist/common/interactive/list.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/index.js +0 -35
- package/dist/common/interactive/otp-dialog/index.js.map +0 -1
- package/dist/common/interactive/otp-dialog/index.mjs +0 -6
- package/dist/common/interactive/otp-dialog/index.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/otp-dialog.js +0 -325
- package/dist/common/interactive/otp-dialog/otp-dialog.js.map +0 -1
- package/dist/common/interactive/otp-dialog/otp-dialog.mjs +0 -303
- package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/reducer.js +0 -40
- package/dist/common/interactive/otp-dialog/reducer.js.map +0 -1
- package/dist/common/interactive/otp-dialog/reducer.mjs +0 -37
- package/dist/common/interactive/otp-dialog/reducer.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/types.js +0 -15
- package/dist/common/interactive/otp-dialog/types.js.map +0 -1
- package/dist/common/interactive/otp-dialog/types.mjs +0 -13
- package/dist/common/interactive/otp-dialog/types.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/utils.js +0 -24
- package/dist/common/interactive/otp-dialog/utils.js.map +0 -1
- package/dist/common/interactive/otp-dialog/utils.mjs +0 -21
- package/dist/common/interactive/otp-dialog/utils.mjs.map +0 -1
- package/dist/common/interactive/pagination/PaginationSkeleton.js +0 -51
- package/dist/common/interactive/pagination/PaginationSkeleton.js.map +0 -1
- package/dist/common/interactive/pagination/PaginationSkeleton.mjs +0 -49
- package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +0 -1
- package/dist/common/interactive/pagination/index.js +0 -235
- package/dist/common/interactive/pagination/index.js.map +0 -1
- package/dist/common/interactive/pagination/index.mjs +0 -223
- package/dist/common/interactive/pagination/index.mjs.map +0 -1
- package/dist/common/interactive/pagination/usePagination.js +0 -28
- package/dist/common/interactive/pagination/usePagination.js.map +0 -1
- package/dist/common/interactive/pagination/usePagination.mjs +0 -25
- package/dist/common/interactive/pagination/usePagination.mjs.map +0 -1
- package/dist/common/interactive/popover-wrapper.js +0 -138
- package/dist/common/interactive/popover-wrapper.js.map +0 -1
- package/dist/common/interactive/popover-wrapper.mjs +0 -116
- package/dist/common/interactive/popover-wrapper.mjs.map +0 -1
- package/dist/common/interactive/pressable.js +0 -84
- package/dist/common/interactive/pressable.js.map +0 -1
- package/dist/common/interactive/pressable.mjs +0 -62
- package/dist/common/interactive/pressable.mjs.map +0 -1
- package/dist/common/interactive/select/context.js +0 -38
- package/dist/common/interactive/select/context.js.map +0 -1
- package/dist/common/interactive/select/context.mjs +0 -14
- package/dist/common/interactive/select/context.mjs.map +0 -1
- package/dist/common/interactive/select/index.js +0 -123
- package/dist/common/interactive/select/index.js.map +0 -1
- package/dist/common/interactive/select/index.mjs +0 -18
- package/dist/common/interactive/select/index.mjs.map +0 -1
- package/dist/common/interactive/select/select-body.js +0 -89
- package/dist/common/interactive/select/select-body.js.map +0 -1
- package/dist/common/interactive/select/select-body.mjs +0 -67
- package/dist/common/interactive/select/select-body.mjs.map +0 -1
- package/dist/common/interactive/select/select-close.js +0 -38
- package/dist/common/interactive/select/select-close.js.map +0 -1
- package/dist/common/interactive/select/select-close.mjs +0 -16
- package/dist/common/interactive/select/select-close.mjs.map +0 -1
- package/dist/common/interactive/select/select-content-auto-layout.js +0 -221
- package/dist/common/interactive/select/select-content-auto-layout.js.map +0 -1
- package/dist/common/interactive/select/select-content-auto-layout.mjs +0 -199
- package/dist/common/interactive/select/select-content-auto-layout.mjs.map +0 -1
- package/dist/common/interactive/select/select-content-group-auto-layout.js +0 -411
- package/dist/common/interactive/select/select-content-group-auto-layout.js.map +0 -1
- package/dist/common/interactive/select/select-content-group-auto-layout.mjs +0 -389
- package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +0 -1
- package/dist/common/interactive/select/select-content.js +0 -187
- package/dist/common/interactive/select/select-content.js.map +0 -1
- package/dist/common/interactive/select/select-content.mjs +0 -165
- package/dist/common/interactive/select/select-content.mjs.map +0 -1
- package/dist/common/interactive/select/select-footer.js +0 -82
- package/dist/common/interactive/select/select-footer.js.map +0 -1
- package/dist/common/interactive/select/select-footer.mjs +0 -60
- package/dist/common/interactive/select/select-footer.mjs.map +0 -1
- package/dist/common/interactive/select/select-item.js +0 -214
- package/dist/common/interactive/select/select-item.js.map +0 -1
- package/dist/common/interactive/select/select-item.mjs +0 -191
- package/dist/common/interactive/select/select-item.mjs.map +0 -1
- package/dist/common/interactive/select/select-layout.js +0 -66
- package/dist/common/interactive/select/select-layout.js.map +0 -1
- package/dist/common/interactive/select/select-layout.mjs +0 -41
- package/dist/common/interactive/select/select-layout.mjs.map +0 -1
- package/dist/common/interactive/select/select-search.js +0 -55
- package/dist/common/interactive/select/select-search.js.map +0 -1
- package/dist/common/interactive/select/select-search.mjs +0 -33
- package/dist/common/interactive/select/select-search.mjs.map +0 -1
- package/dist/common/interactive/select/select-states.js +0 -57
- package/dist/common/interactive/select/select-states.js.map +0 -1
- package/dist/common/interactive/select/select-states.mjs +0 -34
- package/dist/common/interactive/select/select-states.mjs.map +0 -1
- package/dist/common/interactive/select/select-trigger.js +0 -310
- package/dist/common/interactive/select/select-trigger.js.map +0 -1
- package/dist/common/interactive/select/select-trigger.mjs +0 -286
- package/dist/common/interactive/select/select-trigger.mjs.map +0 -1
- package/dist/common/interactive/select/select-value.js +0 -52
- package/dist/common/interactive/select/select-value.js.map +0 -1
- package/dist/common/interactive/select/select-value.mjs +0 -30
- package/dist/common/interactive/select/select-value.mjs.map +0 -1
- package/dist/common/interactive/select/select.js +0 -184
- package/dist/common/interactive/select/select.js.map +0 -1
- package/dist/common/interactive/select/select.mjs +0 -162
- package/dist/common/interactive/select/select.mjs.map +0 -1
- package/dist/common/interactive/select/types.js +0 -4
- package/dist/common/interactive/select/types.js.map +0 -1
- package/dist/common/interactive/select/types.mjs +0 -3
- package/dist/common/interactive/select/types.mjs.map +0 -1
- package/dist/common/interactive/select/utils.js +0 -31
- package/dist/common/interactive/select/utils.js.map +0 -1
- package/dist/common/interactive/select/utils.mjs +0 -28
- package/dist/common/interactive/select/utils.mjs.map +0 -1
- package/dist/common/interactive/select/variants.js +0 -27
- package/dist/common/interactive/select/variants.js.map +0 -1
- package/dist/common/interactive/select/variants.mjs +0 -25
- package/dist/common/interactive/select/variants.mjs.map +0 -1
- package/dist/common/interactive/select-chip.js +0 -76
- package/dist/common/interactive/select-chip.js.map +0 -1
- package/dist/common/interactive/select-chip.mjs +0 -74
- package/dist/common/interactive/select-chip.mjs.map +0 -1
- package/dist/common/interactive/select-level.js +0 -236
- package/dist/common/interactive/select-level.js.map +0 -1
- package/dist/common/interactive/select-level.mjs +0 -230
- package/dist/common/interactive/select-level.mjs.map +0 -1
- package/dist/common/interactive/select-range.js +0 -211
- package/dist/common/interactive/select-range.js.map +0 -1
- package/dist/common/interactive/select-range.mjs +0 -209
- package/dist/common/interactive/select-range.mjs.map +0 -1
- package/dist/common/interactive/select-with-api.js +0 -767
- package/dist/common/interactive/select-with-api.js.map +0 -1
- package/dist/common/interactive/select-with-api.mjs +0 -758
- package/dist/common/interactive/select-with-api.mjs.map +0 -1
- package/dist/common/interactive/select.js +0 -15
- package/dist/common/interactive/select.js.map +0 -1
- package/dist/common/interactive/select.mjs +0 -4
- package/dist/common/interactive/select.mjs.map +0 -1
- package/dist/common/interactive/sheet-wrapper.js +0 -105
- package/dist/common/interactive/sheet-wrapper.js.map +0 -1
- package/dist/common/interactive/sheet-wrapper.mjs +0 -83
- package/dist/common/interactive/sheet-wrapper.mjs.map +0 -1
- package/dist/common/interactive/table/enhanced-table.js +0 -390
- package/dist/common/interactive/table/enhanced-table.js.map +0 -1
- package/dist/common/interactive/table/enhanced-table.mjs +0 -388
- package/dist/common/interactive/table/enhanced-table.mjs.map +0 -1
- package/dist/common/interactive/table/index.js +0 -83
- package/dist/common/interactive/table/index.js.map +0 -1
- package/dist/common/interactive/table/index.mjs +0 -68
- package/dist/common/interactive/table/index.mjs.map +0 -1
- package/dist/common/interactive/table/table-pagination.js +0 -12
- package/dist/common/interactive/table/table-pagination.js.map +0 -1
- package/dist/common/interactive/table/table-pagination.mjs +0 -10
- package/dist/common/interactive/table/table-pagination.mjs.map +0 -1
- package/dist/common/interactive/table/types.js +0 -4
- package/dist/common/interactive/table/types.js.map +0 -1
- package/dist/common/interactive/table/types.mjs +0 -3
- package/dist/common/interactive/table/types.mjs.map +0 -1
- package/dist/common/interactive/time-picker.js +0 -313
- package/dist/common/interactive/time-picker.js.map +0 -1
- package/dist/common/interactive/time-picker.mjs +0 -307
- package/dist/common/interactive/time-picker.mjs.map +0 -1
- package/dist/common/interactive/types.js +0 -4
- package/dist/common/interactive/types.js.map +0 -1
- package/dist/common/interactive/types.mjs +0 -3
- package/dist/common/interactive/types.mjs.map +0 -1
- package/dist/common/pages/page-404.js +0 -16
- package/dist/common/pages/page-404.js.map +0 -1
- package/dist/common/pages/page-404.mjs +0 -11
- package/dist/common/pages/page-404.mjs.map +0 -1
- package/dist/common/pages/page-500.js +0 -30
- package/dist/common/pages/page-500.js.map +0 -1
- package/dist/common/pages/page-500.mjs +0 -25
- package/dist/common/pages/page-500.mjs.map +0 -1
- package/dist/components/accordion.js +0 -65
- package/dist/components/accordion.js.map +0 -1
- package/dist/components/accordion.mjs +0 -39
- package/dist/components/accordion.mjs.map +0 -1
- package/dist/components/alert-dialog.js +0 -231
- package/dist/components/alert-dialog.js.map +0 -1
- package/dist/components/alert-dialog.mjs +0 -197
- package/dist/components/alert-dialog.mjs.map +0 -1
- package/dist/components/alert.js +0 -97
- package/dist/components/alert.js.map +0 -1
- package/dist/components/alert.mjs +0 -72
- package/dist/components/alert.mjs.map +0 -1
- package/dist/components/aspect-ratio.js +0 -29
- package/dist/components/aspect-ratio.js.map +0 -1
- package/dist/components/aspect-ratio.mjs +0 -7
- package/dist/components/aspect-ratio.mjs.map +0 -1
- package/dist/components/avatar.js +0 -64
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/avatar.mjs +0 -39
- package/dist/components/avatar.mjs.map +0 -1
- package/dist/components/badge.js +0 -72
- package/dist/components/badge.js.map +0 -1
- package/dist/components/badge.mjs +0 -69
- package/dist/components/badge.mjs.map +0 -1
- package/dist/components/breadcrumb.js +0 -109
- package/dist/components/breadcrumb.js.map +0 -1
- package/dist/components/breadcrumb.mjs +0 -81
- package/dist/components/breadcrumb.mjs.map +0 -1
- package/dist/components/button.js +0 -250
- package/dist/components/button.js.map +0 -1
- package/dist/components/button.mjs +0 -226
- package/dist/components/button.mjs.map +0 -1
- package/dist/components/calendar.js +0 -681
- package/dist/components/calendar.js.map +0 -1
- package/dist/components/calendar.mjs +0 -659
- package/dist/components/calendar.mjs.map +0 -1
- package/dist/components/card.js +0 -98
- package/dist/components/card.js.map +0 -1
- package/dist/components/card.mjs +0 -71
- package/dist/components/card.mjs.map +0 -1
- package/dist/components/carousel.js +0 -237
- package/dist/components/carousel.js.map +0 -1
- package/dist/components/carousel.mjs +0 -208
- package/dist/components/carousel.mjs.map +0 -1
- package/dist/components/chart.js +0 -252
- package/dist/components/chart.js.map +0 -1
- package/dist/components/chart.mjs +0 -224
- package/dist/components/chart.mjs.map +0 -1
- package/dist/components/checkbox.js +0 -97
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/checkbox.mjs +0 -74
- package/dist/components/checkbox.mjs.map +0 -1
- package/dist/components/chip.js +0 -88
- package/dist/components/chip.js.map +0 -1
- package/dist/components/chip.mjs +0 -82
- package/dist/components/chip.mjs.map +0 -1
- package/dist/components/collapsible.js +0 -33
- package/dist/components/collapsible.js.map +0 -1
- package/dist/components/collapsible.mjs +0 -9
- package/dist/components/collapsible.mjs.map +0 -1
- package/dist/components/command.js +0 -125
- package/dist/components/command.js.map +0 -1
- package/dist/components/command.mjs +0 -95
- package/dist/components/command.mjs.map +0 -1
- package/dist/components/context-menu.js +0 -168
- package/dist/components/context-menu.js.map +0 -1
- package/dist/components/context-menu.mjs +0 -131
- package/dist/components/context-menu.mjs.map +0 -1
- package/dist/components/dialog.js +0 -192
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/dialog.mjs +0 -159
- package/dist/components/dialog.mjs.map +0 -1
- package/dist/components/drawer.js +0 -98
- package/dist/components/drawer.js.map +0 -1
- package/dist/components/drawer.mjs +0 -67
- package/dist/components/drawer.mjs.map +0 -1
- package/dist/components/dropdown-menu.js +0 -163
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/dropdown-menu.mjs +0 -126
- package/dist/components/dropdown-menu.mjs.map +0 -1
- package/dist/components/form.js +0 -123
- package/dist/components/form.js.map +0 -1
- package/dist/components/form.mjs +0 -94
- package/dist/components/form.mjs.map +0 -1
- package/dist/components/hover-card.js +0 -50
- package/dist/components/hover-card.js.map +0 -1
- package/dist/components/hover-card.mjs +0 -25
- package/dist/components/hover-card.mjs.map +0 -1
- package/dist/components/input-otp.js +0 -84
- package/dist/components/input-otp.js.map +0 -1
- package/dist/components/input-otp.mjs +0 -59
- package/dist/components/input-otp.mjs.map +0 -1
- package/dist/components/input.js +0 -858
- package/dist/components/input.js.map +0 -1
- package/dist/components/input.mjs +0 -831
- package/dist/components/input.mjs.map +0 -1
- package/dist/components/label.js +0 -38
- package/dist/components/label.js.map +0 -1
- package/dist/components/label.mjs +0 -15
- package/dist/components/label.mjs.map +0 -1
- package/dist/components/lottie.js +0 -59
- package/dist/components/lottie.js.map +0 -1
- package/dist/components/lottie.mjs +0 -49
- package/dist/components/lottie.mjs.map +0 -1
- package/dist/components/menubar.js +0 -195
- package/dist/components/menubar.js.map +0 -1
- package/dist/components/menubar.mjs +0 -157
- package/dist/components/menubar.mjs.map +0 -1
- package/dist/components/navigation-menu.js +0 -126
- package/dist/components/navigation-menu.js.map +0 -1
- package/dist/components/navigation-menu.mjs +0 -95
- package/dist/components/navigation-menu.mjs.map +0 -1
- package/dist/components/pagination.js +0 -112
- package/dist/components/pagination.js.map +0 -1
- package/dist/components/pagination.mjs +0 -84
- package/dist/components/pagination.mjs.map +0 -1
- package/dist/components/popover.js +0 -63
- package/dist/components/popover.js.map +0 -1
- package/dist/components/popover.mjs +0 -38
- package/dist/components/popover.mjs.map +0 -1
- package/dist/components/progress.js +0 -50
- package/dist/components/progress.js.map +0 -1
- package/dist/components/progress.mjs +0 -27
- package/dist/components/progress.mjs.map +0 -1
- package/dist/components/radio-group.js +0 -91
- package/dist/components/radio-group.js.map +0 -1
- package/dist/components/radio-group.mjs +0 -67
- package/dist/components/radio-group.mjs.map +0 -1
- package/dist/components/resizable.js +0 -59
- package/dist/components/resizable.js.map +0 -1
- package/dist/components/resizable.mjs +0 -35
- package/dist/components/resizable.mjs.map +0 -1
- package/dist/components/responsive-popover.js +0 -74
- package/dist/components/responsive-popover.js.map +0 -1
- package/dist/components/responsive-popover.mjs +0 -50
- package/dist/components/responsive-popover.mjs.map +0 -1
- package/dist/components/scroll-area.js +0 -63
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/components/scroll-area.mjs +0 -39
- package/dist/components/scroll-area.mjs.map +0 -1
- package/dist/components/separator.js +0 -47
- package/dist/components/separator.js.map +0 -1
- package/dist/components/separator.mjs +0 -24
- package/dist/components/separator.mjs.map +0 -1
- package/dist/components/sheet.js +0 -239
- package/dist/components/sheet.js.map +0 -1
- package/dist/components/sheet.mjs +0 -206
- package/dist/components/sheet.mjs.map +0 -1
- package/dist/components/sidebar.js +0 -888
- package/dist/components/sidebar.js.map +0 -1
- package/dist/components/sidebar.mjs +0 -842
- package/dist/components/sidebar.mjs.map +0 -1
- package/dist/components/skeleton.js +0 -153
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/skeleton.mjs +0 -127
- package/dist/components/skeleton.mjs.map +0 -1
- package/dist/components/slider.js +0 -45
- package/dist/components/slider.js.map +0 -1
- package/dist/components/slider.mjs +0 -22
- package/dist/components/slider.mjs.map +0 -1
- package/dist/components/sonner.js +0 -76
- package/dist/components/sonner.js.map +0 -1
- package/dist/components/sonner.mjs +0 -71
- package/dist/components/sonner.mjs.map +0 -1
- package/dist/components/spinner.js +0 -59
- package/dist/components/spinner.js.map +0 -1
- package/dist/components/spinner.mjs +0 -36
- package/dist/components/spinner.mjs.map +0 -1
- package/dist/components/stepper.js +0 -726
- package/dist/components/stepper.js.map +0 -1
- package/dist/components/stepper.mjs +0 -702
- package/dist/components/stepper.mjs.map +0 -1
- package/dist/components/switch.js +0 -85
- package/dist/components/switch.js.map +0 -1
- package/dist/components/switch.mjs +0 -62
- package/dist/components/switch.mjs.map +0 -1
- package/dist/components/table.js +0 -91
- package/dist/components/table.js.map +0 -1
- package/dist/components/table.mjs +0 -62
- package/dist/components/table.mjs.map +0 -1
- package/dist/components/tabs.js +0 -287
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/tabs.mjs +0 -261
- package/dist/components/tabs.mjs.map +0 -1
- package/dist/components/textarea.js +0 -200
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/textarea.mjs +0 -174
- package/dist/components/textarea.mjs.map +0 -1
- package/dist/components/toggle-group.js +0 -67
- package/dist/components/toggle-group.js.map +0 -1
- package/dist/components/toggle-group.mjs +0 -43
- package/dist/components/toggle-group.mjs.map +0 -1
- package/dist/components/toggle.js +0 -63
- package/dist/components/toggle.js.map +0 -1
- package/dist/components/toggle.mjs +0 -39
- package/dist/components/toggle.mjs.map +0 -1
- package/dist/components/tooltip.js +0 -172
- package/dist/components/tooltip.js.map +0 -1
- package/dist/components/tooltip.mjs +0 -145
- package/dist/components/tooltip.mjs.map +0 -1
- package/dist/hooks/index.js +0 -27
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/index.mjs +0 -6
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/hooks/useCopyToClipboard.js +0 -59
- package/dist/hooks/useCopyToClipboard.js.map +0 -1
- package/dist/hooks/useCopyToClipboard.mjs +0 -57
- package/dist/hooks/useCopyToClipboard.mjs.map +0 -1
- package/dist/hooks/useDevice.js +0 -20
- package/dist/hooks/useDevice.js.map +0 -1
- package/dist/hooks/useDevice.mjs +0 -14
- package/dist/hooks/useDevice.mjs.map +0 -1
- package/dist/hooks/useDialogTracking.js +0 -113
- package/dist/hooks/useDialogTracking.js.map +0 -1
- package/dist/hooks/useDialogTracking.mjs +0 -91
- package/dist/hooks/useDialogTracking.mjs.map +0 -1
- package/dist/hooks/useIsMounted.js +0 -15
- package/dist/hooks/useIsMounted.js.map +0 -1
- package/dist/hooks/useIsMounted.mjs +0 -13
- package/dist/hooks/useIsMounted.mjs.map +0 -1
- package/dist/hooks/usePathname.js +0 -85
- package/dist/hooks/usePathname.js.map +0 -1
- package/dist/hooks/usePathname.mjs +0 -83
- package/dist/hooks/usePathname.mjs.map +0 -1
- package/dist/icons.js +0 -14
- package/dist/icons.js.map +0 -1
- package/dist/icons.mjs +0 -3
- package/dist/icons.mjs.map +0 -1
- package/dist/lib/formatCurrency.js +0 -187
- package/dist/lib/formatCurrency.js.map +0 -1
- package/dist/lib/formatCurrency.mjs +0 -185
- package/dist/lib/formatCurrency.mjs.map +0 -1
- package/dist/lib/helpers.js +0 -171
- package/dist/lib/helpers.js.map +0 -1
- package/dist/lib/helpers.mjs +0 -157
- package/dist/lib/helpers.mjs.map +0 -1
- package/dist/lib/index.js +0 -33
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/index.mjs +0 -6
- package/dist/lib/index.mjs.map +0 -1
- package/dist/lib/types.js +0 -11
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/types.mjs +0 -9
- package/dist/lib/types.mjs.map +0 -1
- package/dist/lib/utils.js +0 -24
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/utils.mjs +0 -19
- package/dist/lib/utils.mjs.map +0 -1
- package/dist/providers/DeviceSizeWatcher/index.js +0 -72
- package/dist/providers/DeviceSizeWatcher/index.js.map +0 -1
- package/dist/providers/DeviceSizeWatcher/index.mjs +0 -47
- package/dist/providers/DeviceSizeWatcher/index.mjs.map +0 -1
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +0 -22
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +0 -1
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +0 -20
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +0 -1
- package/dist/providers/UISystemProvider.js +0 -197
- package/dist/providers/UISystemProvider.js.map +0 -1
- package/dist/providers/UISystemProvider.mjs +0 -188
- package/dist/providers/UISystemProvider.mjs.map +0 -1
- package/dist/providers/index.js +0 -24
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/index.mjs +0 -3
- package/dist/providers/index.mjs.map +0 -1
- package/dist/theme.js +0 -333
- package/dist/theme.js.map +0 -1
- package/dist/theme.mjs +0 -327
- package/dist/theme.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/common/interactive/select-with-api.tsx"],"names":["React","debounce","jsx","jsxs","Select","SelectTrigger","SelectValue","SelectBody","useSelectContext","SelectContent","SelectSearch","InfiniteScroll","Spinner","SelectEmptyState","SelectItem","Fragment","SelectGroup"],"mappings":"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","file":"select-with-api.js","sourcesContent":["'use client';\n\nimport React from 'react';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { Spinner } from '../../components/spinner';\nimport { debounce } from '../../lib/helpers';\nimport {\n Select,\n SelectBody,\n SelectContent,\n SelectEmptyState,\n SelectGroup,\n SelectItem,\n SelectSearch,\n SelectTrigger,\n SelectValue,\n useSelectContext,\n type Option,\n type OptionGroup,\n type SelectContentAutoLayoutProps,\n type SelectContentGroupAutoLayoutProps,\n type SelectProps,\n} from './select';\n\n// Types for API search functions\nexport type ApiSearchFunction<T = Option> = (query: string) => Promise<T[]>;\nexport type ApiSearchGroupFunction = (query: string) => Promise<OptionGroup<Option>[]>;\n\n// Types for API search functions with pagination support\nexport type ApiSearchPaginatedFunction<T = Option> = (\n query: string,\n page: number,\n pageSize: number,\n) => Promise<PaginatedSearchResult<T>>;\n\n// Props for single options API search\nexport interface SelectWithApiSearchProps extends Omit<SelectProps, 'children'> {\n multiple?: boolean;\n searchApi: ApiSearchFunction<Option> | ApiSearchPaginatedFunction<Option>;\n searchPlaceholder?: string;\n debounceMs?: number;\n trackingSearchName?: string;\n trackingSearchData?: Record<string, any>;\n // Pagination props\n pageSize?: number;\n enableInfiniteScroll?: boolean;\n // SelectTrigger props\n isError?: boolean;\n errorText?: string;\n helpText?: string;\n errorTextClassName?: string;\n helpTextClassName?: string;\n asChild?: boolean;\n icon?: React.ReactNode;\n hasRemoveIcon?: boolean;\n className?: string;\n size?: 'default' | 'lg';\n placeholder?: string;\n inputClassName?: string;\n buttonIconClassName?: string;\n classButton?: string;\n classLabel?: string;\n addonBefore?: React.ReactNode;\n addonAfter?: React.ReactNode;\n // Additional content between search and list\n additionalContent?: React.ReactNode;\n // Value renderer for SelectValue\n valueRenderer?: (\n value?: Option[],\n groupValue?: { group?: OptionGroup<Option>[] | undefined; child?: Option[] | undefined },\n ) => React.ReactNode;\n isRequired?: boolean;\n}\n\n// Props for grouped options API search\nexport interface SelectWithApiSearchGroupProps extends Omit<SelectProps, 'children'> {\n multiple?: boolean;\n searchApi: ApiSearchGroupFunction | ApiSearchPaginatedFunction<OptionGroup<Option>>;\n searchPlaceholder?: string;\n debounceMs?: number;\n trackingSearchName?: string;\n trackingSearchData?: Record<string, any>;\n // Pagination props\n pageSize?: number;\n enableInfiniteScroll?: boolean;\n // SelectTrigger props\n isError?: boolean;\n errorText?: string;\n helpText?: string;\n errorTextClassName?: string;\n helpTextClassName?: string;\n asChild?: boolean;\n icon?: React.ReactNode;\n hasRemoveIcon?: boolean;\n className?: string;\n size?: 'default' | 'lg';\n inputClassName?: string;\n buttonIconClassName?: string;\n classButton?: string;\n classLabel?: string;\n addonBefore?: React.ReactNode;\n addonAfter?: React.ReactNode;\n // Additional content between search and list\n additionalContent?: React.ReactNode;\n // Value renderer for SelectValue\n valueRenderer?: (\n value?: Option[],\n groupValue?: { group?: OptionGroup<Option>[] | undefined; child?: Option[] | undefined },\n ) => React.ReactNode;\n isRequired?: boolean;\n}\n\nexport function SelectWithApiSearch({\n // API-specific props\n multiple,\n searchApi,\n searchPlaceholder,\n debounceMs = 300,\n trackingSearchName = '',\n trackingSearchData = {},\n pageSize = 20,\n enableInfiniteScroll = false,\n // SelectTrigger props\n isError,\n errorText,\n helpText,\n errorTextClassName,\n helpTextClassName,\n asChild,\n icon,\n hasRemoveIcon = false,\n className,\n size,\n placeholder,\n inputClassName,\n buttonIconClassName,\n classButton,\n classLabel,\n addonBefore,\n addonAfter,\n // Additional content\n additionalContent,\n // Value renderer\n valueRenderer,\n isRequired,\n // SelectProps (spread the rest)\n ...selectProps\n}: SelectWithApiSearchProps) {\n const [allOptions, setAllOptions] = React.useState<Option[]>([]);\n const [isLoading, setIsLoading] = React.useState(false);\n const [isSearching, setIsSearching] = React.useState(false);\n const [hasMore, setHasMore] = React.useState(true);\n const [currentPage, setCurrentPage] = React.useState(1);\n const [currentQuery, setCurrentQuery] = React.useState('');\n const [isLoadingMore, setIsLoadingMore] = React.useState(false);\n const [shouldResetSearch, setShouldResetSearch] = React.useState(false);\n const [hasInitiallyLoaded, setHasInitiallyLoaded] = React.useState(false);\n\n // Type guard to check if API supports pagination\n const isPaginatedApi = (api: any): api is ApiSearchPaginatedFunction<Option> => {\n // Check if infinite scroll is enabled and the function has at least 2 parameters (query, page)\n // The pageSize parameter might have a default value, so length could be 2 or 3\n return enableInfiniteScroll && typeof api === 'function' && api.length >= 2;\n };\n\n // Function to load data (initial or search)\n const loadData = React.useCallback(\n async (query: string, page: number = 1, resetData = false) => {\n try {\n if (page === 1) {\n setIsSearching(true);\n } else {\n setIsLoadingMore(true);\n }\n\n if (isPaginatedApi(searchApi)) {\n // Use paginated API\n const paginatedResult = await searchApi(query, page, pageSize);\n\n if (resetData || page === 1) {\n setAllOptions(paginatedResult.data);\n } else {\n setAllOptions((prev) => [...prev, ...paginatedResult.data]);\n }\n\n setHasMore(paginatedResult.hasMore);\n setCurrentPage(page);\n setCurrentQuery(query);\n } else {\n // Use simple API (backward compatibility)\n const simpleResult = await (searchApi as ApiSearchFunction<Option>)(query);\n setAllOptions(simpleResult);\n setHasMore(false); // No pagination for simple API\n setCurrentPage(1);\n setCurrentQuery(query);\n }\n } catch (error) {\n console.error('Failed to load data:', error);\n if (resetData || page === 1) {\n setAllOptions([]);\n }\n setHasMore(false);\n } finally {\n setIsSearching(false);\n setIsLoadingMore(false);\n }\n },\n [searchApi, pageSize, enableInfiniteScroll],\n );\n\n // Load initial data - only once\n React.useEffect(() => {\n if (!hasInitiallyLoaded) {\n setIsLoading(true);\n setHasInitiallyLoaded(true);\n loadData('', 1, true).finally(() => setIsLoading(false));\n }\n }, [hasInitiallyLoaded]); // Remove loadData from dependencies\n\n // Debounced search handler\n const debouncedSearch = React.useMemo(() => {\n return debounce((query: string) => {\n setCurrentPage(1);\n setHasMore(true);\n loadData(query, 1, true);\n }, debounceMs);\n }, [loadData, debounceMs]);\n\n // Load more data for infinite scroll\n const loadMore = React.useCallback(() => {\n if (!isLoadingMore && hasMore && isPaginatedApi(searchApi)) {\n logInfiniteScrollAction('Single Options - Loading more data', {\n currentQuery,\n nextPage: currentPage + 1,\n hasMore,\n totalItems: allOptions.length,\n });\n\n setTimeout(() => {\n loadData(currentQuery, currentPage + 1, false);\n }, 100);\n }\n }, [loadData, currentQuery, currentPage, isLoadingMore, hasMore, allOptions.length, searchApi]);\n\n // Do NOT reset search when:\n // - Single select: item is selected\n // - Multiple select: items are selected/deselected\n // - Clear value button is clicked\n //\n // Only reset search when:\n // - Popover closes\n // - Apply button is clicked (for multiple select)\n\n // Handle clear value without resetting search\n const originalOnClearValue = selectProps.onClearValue;\n const handleClearValue = React.useCallback(() => {\n // Do NOT reset search when clear - keep the current search state\n originalOnClearValue?.();\n }, [originalOnClearValue]);\n\n // Reset search when popover closes\n const originalOnOpenChange = selectProps.onOpenChange;\n const handleOpenChange = React.useCallback(\n (open: boolean) => {\n if (!open) {\n // Always reset search when popover closes\n setShouldResetSearch(true);\n setTimeout(() => {\n setCurrentQuery('');\n setCurrentPage(1);\n setHasMore(true);\n loadData('', 1, true);\n setShouldResetSearch(false);\n }, 150); // Small delay to let popover close animation complete\n }\n originalOnOpenChange?.(open);\n },\n [\n loadData,\n originalOnOpenChange,\n setShouldResetSearch,\n setCurrentQuery,\n setCurrentPage,\n setHasMore,\n ],\n );\n\n // Handle apply button for multiple select - reset search when applied\n const originalOnApply = selectProps.onApply;\n const handleApply = React.useCallback(\n (value: any) => {\n // Reset search when apply is clicked for multiple select\n if (multiple) {\n setShouldResetSearch(true);\n setCurrentQuery('');\n loadData('', 1, true);\n // Reset the flag after a brief delay to allow child components to process\n setTimeout(() => setShouldResetSearch(false), 100);\n }\n originalOnApply?.(value);\n },\n [loadData, originalOnApply, multiple],\n );\n\n if (enableInfiniteScroll && isPaginatedApi(searchApi)) {\n // Render with infinite scroll using proper auto-layout structure\n return (\n <div className=\"space-y-2\">\n <Select\n {...selectProps}\n onClearValue={handleClearValue}\n onOpenChange={handleOpenChange}\n onApply={handleApply}\n >\n <SelectTrigger\n isError={isError}\n errorText={errorText}\n helpText={helpText}\n errorTextClassName={errorTextClassName}\n helpTextClassName={helpTextClassName}\n asChild={asChild}\n icon={icon}\n hasRemoveIcon={hasRemoveIcon}\n className={className}\n size={size}\n placeholder={placeholder}\n inputClassName={inputClassName}\n buttonIconClassName={buttonIconClassName}\n classButton={classButton}\n classLabel={classLabel}\n addonBefore={addonBefore}\n addonAfter={addonAfter}\n isRequired={isRequired}\n >\n <SelectValue>{valueRenderer}</SelectValue>\n </SelectTrigger>\n <SelectBody>\n <SelectContentAutoLayoutInfinite\n options={allOptions}\n isLoading={isLoading || isSearching}\n hasSearch\n searchPlaceholder={searchPlaceholder || 'Tìm kiếm...'}\n multiple={multiple}\n trackingSearchName={trackingSearchName}\n trackingSearchData={trackingSearchData}\n onSearchChange={debouncedSearch}\n // Infinite scroll specific props\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n onLoadMore={loadMore}\n currentQuery={currentQuery}\n resetSearchKeyword={shouldResetSearch}\n additionalContent={additionalContent}\n />\n </SelectBody>\n </Select>\n </div>\n );\n }\n\n // Render with SelectContentAutoLayout (backward compatibility)\n return (\n <div className=\"space-y-2\">\n <Select\n {...selectProps}\n onClearValue={handleClearValue}\n onOpenChange={handleOpenChange}\n onApply={handleApply}\n >\n <SelectTrigger\n isError={isError}\n errorText={errorText}\n helpText={helpText}\n errorTextClassName={errorTextClassName}\n helpTextClassName={helpTextClassName}\n asChild={asChild}\n icon={icon}\n hasRemoveIcon={hasRemoveIcon}\n className={className}\n size={size}\n placeholder={placeholder}\n inputClassName={inputClassName}\n buttonIconClassName={buttonIconClassName}\n classButton={classButton}\n classLabel={classLabel}\n addonBefore={addonBefore}\n addonAfter={addonAfter}\n isRequired={isRequired}\n >\n <SelectValue>{valueRenderer}</SelectValue>\n </SelectTrigger>\n <SelectBody>\n <SelectContentAutoLayoutInfinite\n options={allOptions}\n isLoading={isLoading || isSearching}\n hasSearch\n searchPlaceholder={searchPlaceholder || 'Tìm kiếm...'}\n multiple={multiple}\n trackingSearchName={trackingSearchName}\n trackingSearchData={trackingSearchData}\n onSearchChange={debouncedSearch}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n onLoadMore={loadMore}\n currentQuery={currentQuery}\n resetSearchKeyword={shouldResetSearch}\n additionalContent={additionalContent}\n />\n </SelectBody>\n </Select>\n </div>\n );\n}\n\nexport function SelectWithApiSearchGroup({\n // API-specific props\n multiple,\n searchApi,\n searchPlaceholder,\n debounceMs = 300,\n trackingSearchName,\n trackingSearchData,\n pageSize = 20,\n enableInfiniteScroll = false,\n // SelectTrigger props\n isError,\n errorText,\n helpText,\n errorTextClassName,\n helpTextClassName,\n asChild,\n icon,\n hasRemoveIcon = false,\n className,\n size,\n inputClassName,\n buttonIconClassName,\n classButton,\n classLabel,\n addonBefore,\n addonAfter,\n // Additional content\n additionalContent,\n // Value renderer\n valueRenderer,\n isRequired,\n // SelectProps (spread the rest)\n ...selectProps\n}: SelectWithApiSearchGroupProps) {\n const [allGroups, setAllGroups] = React.useState<OptionGroup<Option>[]>([]);\n const [isLoading, setIsLoading] = React.useState(false);\n const [isSearching, setIsSearching] = React.useState(false);\n const [hasMore, setHasMore] = React.useState(true);\n const [currentPage, setCurrentPage] = React.useState(1);\n const [currentQuery, setCurrentQuery] = React.useState('');\n const [isLoadingMore, setIsLoadingMore] = React.useState(false);\n const [shouldResetSearch, setShouldResetSearch] = React.useState(false);\n const [hasInitiallyLoaded, setHasInitiallyLoaded] = React.useState(false);\n\n // Type guard to check if API supports pagination\n const isPaginatedApi = (api: any): api is ApiSearchPaginatedFunction<OptionGroup<Option>> => {\n // Check if infinite scroll is enabled and the function has at least 2 parameters (queryquery, page)\n // The pageSize parameter might have a default value, so length could be 2 or 3\n return enableInfiniteScroll && typeof api === 'function' && api.length >= 2;\n };\n\n // Function to load data (initial or search)\n const loadData = React.useCallback(\n async (query: string, page: number = 1, resetData = false) => {\n try {\n if (page === 1) {\n setIsSearching(true);\n } else {\n setIsLoadingMore(true);\n }\n\n if (isPaginatedApi(searchApi)) {\n // Use paginated API\n const paginatedResult = await searchApi(query, page, pageSize);\n\n if (resetData || page === 1) {\n setAllGroups(paginatedResult.data);\n } else {\n setAllGroups((prev) => [...prev, ...paginatedResult.data]);\n }\n\n setHasMore(paginatedResult.hasMore);\n setCurrentPage(page);\n setCurrentQuery(query);\n } else {\n // Use simple API (backward compatibility)\n const simpleResult = await (searchApi as ApiSearchGroupFunction)(query);\n setAllGroups(simpleResult);\n setHasMore(false); // No pagination for simple API\n setCurrentPage(1);\n setCurrentQuery(query);\n }\n } catch (error) {\n console.error('Failed to load data:', error);\n if (resetData || page === 1) {\n setAllGroups([]);\n }\n setHasMore(false);\n } finally {\n setIsSearching(false);\n setIsLoadingMore(false);\n }\n },\n [searchApi, pageSize, enableInfiniteScroll],\n );\n\n // Load initial data - only once\n React.useEffect(() => {\n if (!hasInitiallyLoaded) {\n setIsLoading(true);\n setHasInitiallyLoaded(true);\n loadData('', 1, true).finally(() => setIsLoading(false));\n }\n }, [hasInitiallyLoaded]); // Remove loadData from dependencies\n // Debounced search handler\n const debouncedGroupSearch = React.useMemo(() => {\n return debounce((query: string) => {\n setCurrentPage(1);\n setHasMore(true);\n loadData(query, 1, true);\n }, debounceMs);\n }, [loadData, debounceMs]);\n\n // Load more data for infinite scroll\n const loadMore = React.useCallback(() => {\n if (!isLoadingMore && hasMore && isPaginatedApi(searchApi)) {\n logInfiniteScrollAction('Grouped Options - Loading more data', {\n currentQuery,\n nextPage: currentPage + 1,\n hasMore,\n totalGroups: allGroups.length,\n });\n\n setTimeout(() => {\n loadData(currentQuery, currentPage + 1, false);\n }, 100);\n }\n }, [loadData, currentQuery, currentPage, isLoadingMore, hasMore, allGroups.length, searchApi]);\n\n // Do NOT reset search when:\n // - Single select: item is selected\n // - Multiple select: items are selected/deselected\n // - Clear value button is clicked\n //\n // Only reset search when:\n // - Popover closes\n // - Apply button is clicked (for multiple select)\n\n // Handle clear value without resetting search\n const originalOnClearValue = selectProps.onClearValue;\n const handleClearValue = React.useCallback(() => {\n // Do NOT reset search when clear - keep the current search state\n originalOnClearValue?.();\n }, [originalOnClearValue]);\n\n // Reset search when popover closes\n const originalOnOpenChange = selectProps.onOpenChange;\n const handleOpenChange = React.useCallback(\n (open: boolean) => {\n if (!open) {\n // Always reset search when popover closes\n setShouldResetSearch(true);\n setTimeout(() => {\n setCurrentQuery('');\n setCurrentPage(1);\n setHasMore(true);\n loadData('', 1, true);\n setShouldResetSearch(false);\n }, 150); // Small delay to let popover close animation complete\n }\n originalOnOpenChange?.(open);\n },\n [\n loadData,\n originalOnOpenChange,\n setShouldResetSearch,\n setCurrentQuery,\n setCurrentPage,\n setHasMore,\n ],\n );\n\n // Handle apply button for multiple select - reset search when applied\n const originalOnApply = selectProps.onApply;\n const handleApply = React.useCallback(\n (value: any) => {\n // Reset search when apply is clicked for multiple select\n if (multiple) {\n setShouldResetSearch(true);\n setCurrentQuery('');\n loadData('', 1, true);\n // Reset the flag after a brief delay to allow child components to process\n setTimeout(() => setShouldResetSearch(false), 100);\n }\n originalOnApply?.(value);\n },\n [loadData, originalOnApply, multiple],\n );\n\n if (enableInfiniteScroll && isPaginatedApi(searchApi)) {\n // Render with infinite scroll using proper auto-layout structure\n return (\n <div className=\"space-y-2\">\n <Select\n {...selectProps}\n onClearValue={handleClearValue}\n onOpenChange={handleOpenChange}\n onApply={handleApply}\n >\n <SelectTrigger\n isError={isError}\n errorText={errorText}\n helpText={helpText}\n errorTextClassName={errorTextClassName}\n helpTextClassName={helpTextClassName}\n asChild={asChild}\n icon={icon}\n hasRemoveIcon={hasRemoveIcon}\n className={className}\n size={size}\n inputClassName={inputClassName}\n buttonIconClassName={buttonIconClassName}\n classButton={classButton}\n classLabel={classLabel}\n addonBefore={addonBefore}\n addonAfter={addonAfter}\n isRequired={isRequired}\n >\n <SelectValue>{valueRenderer}</SelectValue>\n </SelectTrigger>\n <SelectBody>\n <SelectContentGroupAutoLayoutInfinite\n options={allGroups}\n isLoading={isLoading || isSearching}\n hasSearch\n searchPlaceholder={searchPlaceholder || 'Tìm kiếm...'}\n multiple={multiple}\n trackingSearchName={trackingSearchName || 'group_search_infinite'}\n trackingSearchData={trackingSearchData}\n onSearchChange={debouncedGroupSearch}\n // Infinite scroll specific props\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n onLoadMore={loadMore}\n currentQuery={currentQuery}\n resetSearchKeyword={shouldResetSearch}\n additionalContent={additionalContent}\n />\n </SelectBody>\n </Select>\n </div>\n );\n }\n\n // Render with SelectContentGroupAutoLayout (backward compatibility)\n return (\n <div className=\"space-y-2\">\n <Select\n {...selectProps}\n onClearValue={handleClearValue}\n onOpenChange={handleOpenChange}\n onApply={handleApply}\n >\n <SelectTrigger\n isError={isError}\n errorText={errorText}\n helpText={helpText}\n errorTextClassName={errorTextClassName}\n helpTextClassName={helpTextClassName}\n asChild={asChild}\n icon={icon}\n hasRemoveIcon={hasRemoveIcon}\n className={className}\n size={size}\n inputClassName={inputClassName}\n buttonIconClassName={buttonIconClassName}\n classButton={classButton}\n classLabel={classLabel}\n addonBefore={addonBefore}\n addonAfter={addonAfter}\n isRequired={isRequired}\n >\n <SelectValue></SelectValue>\n </SelectTrigger>\n <SelectBody>\n <SelectContentGroupAutoLayoutInfinite\n options={allGroups}\n isLoading={isLoading || isSearching}\n hasSearch\n searchPlaceholder={searchPlaceholder || 'Tìm kiếm...'}\n multiple={multiple}\n trackingSearchName={trackingSearchName || 'group_search'}\n trackingSearchData={trackingSearchData}\n onSearchChange={debouncedGroupSearch}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n onLoadMore={loadMore}\n currentQuery={currentQuery}\n resetSearchKeyword={shouldResetSearch}\n additionalContent={additionalContent}\n />\n </SelectBody>\n </Select>\n </div>\n );\n}\n\nexport function useApiSearch<T = Option>(\n searchApi: (query: string) => Promise<T[]>,\n debounceMs: number = 300,\n) {\n const [data, setData] = React.useState<T[]>([]);\n const [isLoading, setIsLoading] = React.useState(false);\n const [error, setError] = React.useState<Error | null>(null);\n\n const debouncedSearch = React.useMemo(() => {\n return debounce((query: string) => {\n setIsLoading(true);\n setError(null);\n searchApi(query)\n .then((result) => {\n setData(result);\n })\n .catch((err) => {\n setError(err instanceof Error ? err : new Error('Search failed'));\n setData([]);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, debounceMs);\n }, [searchApi, debounceMs]);\n\n // Load initial data\n React.useEffect(() => {\n debouncedSearch('');\n }, [debouncedSearch]);\n\n return {\n data,\n isLoading,\n error,\n search: debouncedSearch,\n };\n}\n\n// Utility function for enhanced logging\nconst logInfiniteScrollAction = (action: string, data: Record<string, any>) => {\n if (typeof window !== 'undefined' && window.location.pathname.includes('select-demo')) {\n // Debug logging removed\n }\n};\n\n// Types for pagination\nexport interface PaginatedSearchResult<T> {\n data: T[];\n hasMore: boolean;\n nextPage?: number;\n total?: number;\n}\n\n// Base props interface\nexport interface BaseSelectApiProps {\n label?: string;\n multiple?: boolean;\n searchPlaceholder?: string;\n className?: string;\n disabled?: boolean;\n debounceMs?: number;\n trackingSearchName?: string;\n trackingSearchData?: Record<string, any>;\n}\n\n// Extended props for infinite scroll content components\ninterface SelectContentAutoLayoutInfiniteProps\n extends Omit<SelectContentAutoLayoutProps<Option>, 'options'> {\n options: Option[];\n hasMore: boolean;\n isLoadingMore: boolean;\n onLoadMore: () => void;\n currentQuery: string;\n resetSearchKeyword?: boolean;\n}\n\ninterface SelectContentGroupAutoLayoutInfiniteProps\n extends Omit<SelectContentGroupAutoLayoutProps<Option>, 'options'> {\n options: OptionGroup<Option>[];\n hasMore: boolean;\n isLoadingMore: boolean;\n onLoadMore: () => void;\n currentQuery: string;\n resetSearchKeyword?: boolean;\n}\n\n// Infinite scroll version of SelectContentAutoLayout for single options\nconst SelectContentAutoLayoutInfinite = React.forwardRef<\n HTMLDivElement,\n SelectContentAutoLayoutInfiniteProps\n>(\n (\n {\n hasSearch: hasSearchProp,\n searchPlaceholder,\n multiple,\n options,\n isLoading,\n trackingSearchName,\n trackingSearchData,\n onSearchChange,\n hasMore,\n isLoadingMore,\n onLoadMore,\n currentQuery,\n resetSearchKeyword,\n ...props\n },\n ref,\n ) => {\n const { setAvailableOptions } = useSelectContext();\n const [searchKeyword, setSearchKeyword] = React.useState('');\n\n // Auto-populate available options for value normalization\n React.useEffect(() => {\n if (options && setAvailableOptions) {\n setAvailableOptions(options);\n }\n }, [options, setAvailableOptions]);\n\n // Only reset search keyword when explicitly requested\n React.useEffect(() => {\n if (resetSearchKeyword) {\n setSearchKeyword('');\n }\n }, [resetSearchKeyword]);\n\n const onSearchInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchKeyword(e.target.value);\n onSearchChange?.(e.target.value);\n },\n [onSearchChange],\n );\n\n // Calculate dynamic height based on number of items\n // Each item is approximately 48px tall\n // Max 5 items visible = 240px, less than 5 items = actual height\n // Empty state: 240px (same as max to maintain consistent size)\n const itemHeight = 48;\n const maxVisibleItems = 5;\n const minHeight = maxVisibleItems * itemHeight; // 240px minimum for empty state\n const actualItems = Math.min(options.length || 0, maxVisibleItems);\n const dynamicHeight = actualItems > 0 ? actualItems * itemHeight : minHeight;\n\n return (\n <SelectContent\n searchElm={\n hasSearchProp ? (\n <SelectSearch\n placeholder={searchPlaceholder}\n value={searchKeyword}\n onChange={onSearchInputChange}\n />\n ) : null\n }\n ref={ref}\n hasFooter={multiple && options.length > 0}\n loading={isLoading}\n {...props}\n >\n <div\n id=\"infinite-scroll-single\"\n className=\"custom-select-scroll\"\n style={{ height: `${dynamicHeight}px`, overflow: 'auto' }}\n >\n <InfiniteScroll\n dataLength={options.length}\n next={onLoadMore}\n hasMore={hasMore}\n loader={\n <div className=\"flex items-center justify-center py-2\">\n <Spinner size=\"sm\" className=\"text-primary\" />\n </div>\n }\n scrollableTarget=\"infinite-scroll-single\"\n scrollThreshold={0.9}\n >\n {isLoading ? (\n <div className=\"flex items-center justify-center p-2\">\n <Spinner size=\"md\" className=\"text-primary\" />\n </div>\n ) : options.length === 0 ? (\n <SelectEmptyState />\n ) : (\n options.map((option: Option) => (\n <SelectItem\n key={option.value}\n option={option}\n disabled={option?.disable}\n multiple={multiple}\n closeAfterClick={!multiple}\n >\n {option?.name || option.value}\n </SelectItem>\n ))\n )}\n </InfiniteScroll>\n </div>\n </SelectContent>\n );\n },\n);\n\nSelectContentAutoLayoutInfinite.displayName = 'SelectContentAutoLayoutInfinite';\n\n// Infinite scroll version of SelectContentGroupAutoLayout for grouped options\nconst SelectContentGroupAutoLayoutInfinite = React.forwardRef<\n HTMLDivElement,\n SelectContentGroupAutoLayoutInfiniteProps\n>(\n (\n {\n hasSearch: hasSearchProp,\n searchPlaceholder,\n multiple,\n options: groups,\n isLoading,\n trackingSearchName,\n trackingSearchData,\n onSearchChange,\n hasMore,\n isLoadingMore,\n onLoadMore,\n currentQuery,\n resetSearchKeyword,\n ...props\n },\n ref,\n ) => {\n const { setAvailableOptions } = useSelectContext();\n const [searchKeyword, setSearchKeyword] = React.useState('');\n\n // Auto-populate available options for value normalization\n const optionsPropFlat = React.useMemo(\n () =>\n (groups || [])\n .map((item) => {\n return item.options?.map((subItem) => ({\n ...subItem,\n groupName: item.name,\n }));\n })\n .flat(),\n [groups],\n );\n\n React.useEffect(() => {\n if (optionsPropFlat && setAvailableOptions) {\n setAvailableOptions(optionsPropFlat);\n }\n }, [optionsPropFlat, setAvailableOptions]);\n\n // Only reset search keyword when explicitly requested\n React.useEffect(() => {\n if (resetSearchKeyword) {\n setSearchKeyword('');\n }\n }, [resetSearchKeyword]);\n\n const onSearchInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchKeyword(e.target.value);\n onSearchChange?.(e.target.value);\n },\n [onSearchChange],\n );\n\n // Calculate dynamic height based on total number of items (including group headers)\n // Each item is approximately 48px tall, group header is ~32px\n // Empty state: 240px minimum to maintain consistent dropdown size\n const itemHeight = 48;\n const groupHeaderHeight = 32;\n const maxVisibleItems = 5;\n const minHeight = maxVisibleItems * itemHeight; // 240px minimum\n\n const totalItems = groups.reduce((sum, group) => sum + group.options.length, 0);\n const totalGroupHeaders = groups.length;\n\n // Calculate actual height needed\n const totalHeight = totalItems * itemHeight + totalGroupHeaders * groupHeaderHeight;\n // Max height for 5 items\n const maxHeight = maxVisibleItems * itemHeight;\n // Use the smaller of the two, or minHeight for empty state\n const dynamicHeight = totalItems > 0 ? Math.min(totalHeight, maxHeight) : minHeight;\n\n return (\n <SelectContent\n searchElm={\n hasSearchProp ? (\n <SelectSearch\n placeholder={searchPlaceholder}\n value={searchKeyword}\n onChange={onSearchInputChange}\n />\n ) : null\n }\n ref={ref}\n hasFooter={multiple && groups.length > 0}\n loading={isLoading}\n {...props}\n >\n <div\n id=\"infinite-scroll-grouped\"\n className=\"custom-select-scroll\"\n style={{ height: `${dynamicHeight}px`, overflow: 'auto' }}\n >\n <InfiniteScroll\n dataLength={groups.length}\n next={onLoadMore}\n hasMore={hasMore}\n loader={\n <div className=\"flex items-center justify-center py-2\">\n <Spinner size=\"sm\" className=\"text-primary\" />\n </div>\n }\n scrollableTarget=\"infinite-scroll-grouped\"\n scrollThreshold={0.9}\n >\n {isLoading ? (\n <div className=\"flex items-center justify-center p-2\">\n <Spinner size=\"md\" className=\"text-primary\" />\n </div>\n ) : groups.length === 0 ? (\n <SelectEmptyState />\n ) : (\n <>\n {groups.map((group: OptionGroup<Option>, groupIdx: number) => (\n <SelectGroup key={group.name + '-' + groupIdx} title={group.name}>\n {group.options.map((option: Option) => (\n <SelectItem\n key={option.value}\n option={option}\n disabled={option?.disable}\n multiple={multiple}\n closeAfterClick={!multiple}\n >\n {option?.name || option.value}\n </SelectItem>\n ))}\n </SelectGroup>\n ))}\n </>\n )}\n </InfiniteScroll>\n </div>\n </SelectContent>\n );\n },\n);\n\nSelectContentGroupAutoLayoutInfinite.displayName = 'SelectContentGroupAutoLayoutInfinite';\n"]}
|