@lifesg/react-design-system 4.0.0-alpha.5 → 4.0.0-alpha.6
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/accordion/types.d.ts +1 -1
- package/breadcrumb/breadcrumb.d.ts +7 -0
- package/breadcrumb/breadcrumb.js.map +1 -1
- package/breadcrumb/types.d.ts +31 -0
- package/button/button.d.ts +1 -0
- package/button/button.js.map +1 -1
- package/button/types.d.ts +42 -9
- package/calendar/calendar.d.ts +3 -0
- package/calendar/calendar.js.map +1 -1
- package/calendar/types.d.ts +43 -7
- package/card/card.d.ts +1 -0
- package/card/card.js.map +1 -1
- package/card/types.d.ts +1 -0
- package/checkbox/checkbox.d.ts +3 -0
- package/checkbox/checkbox.js.map +1 -1
- package/checkbox/types.d.ts +19 -3
- package/cjs/breadcrumb/breadcrumb.js.map +1 -1
- package/cjs/button/button.js.map +1 -1
- package/cjs/calendar/calendar.js.map +1 -1
- package/cjs/card/card.js.map +1 -1
- package/cjs/checkbox/checkbox.js.map +1 -1
- package/cjs/data-table/data-table.js +1 -1
- package/cjs/data-table/data-table.js.map +1 -1
- package/cjs/data-table/data-table.styles.js +1 -1
- package/cjs/data-table/data-table.styles.js.map +1 -1
- package/cjs/data-table/data-table.styles_rxganh.css +27 -0
- package/cjs/external/dompurify/dist/purify.es.js +2 -2
- package/cjs/external/dompurify/dist/purify.es.js.map +1 -1
- package/cjs/external/lodash/_setCacheHas.js.map +1 -1
- package/cjs/external/lodash/lodash.js +1 -1
- package/cjs/external/lodash/lodash.js.map +1 -1
- package/cjs/form/form-label-addon.js +1 -1
- package/cjs/form/form-label-addon.js.map +1 -1
- package/cjs/form/index.js +1 -1
- package/cjs/form/index.js.map +1 -1
- package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
- package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
- package/cjs/histogram-slider/histogram-slider.js.map +1 -1
- package/cjs/image-button/image-button.js.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/input/input.js.map +1 -1
- package/cjs/input-group/input-group.js.map +1 -1
- package/cjs/input-multi-select/input-multi-select.js.map +1 -1
- package/cjs/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
- package/cjs/input-nested-select/input-nested-select.js.map +1 -1
- package/cjs/input-range-select/input-range-select.js.map +1 -1
- package/cjs/input-range-slider/input-range-slider.js.map +1 -1
- package/cjs/input-select/input-select.js.map +1 -1
- package/cjs/input-slider/input-slider.js.map +1 -1
- package/cjs/input-textarea/textarea.js.map +1 -1
- package/cjs/language-switcher/language-switcher.js.map +1 -1
- package/cjs/layout/index.js +1 -1
- package/cjs/layout/index.js.map +1 -1
- package/cjs/link-list/link-list.js.map +1 -1
- package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
- package/cjs/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
- package/cjs/markup/markup.js.map +1 -1
- package/cjs/masked-input/masked-input.js.map +1 -1
- package/cjs/masthead/masthead.js.map +1 -1
- package/cjs/menu/menu.js +1 -1
- package/cjs/menu/menu.js.map +1 -1
- package/cjs/modal/index.js.map +1 -1
- package/cjs/modal/modal-box.js +1 -1
- package/cjs/modal/modal-box.js.map +1 -1
- package/cjs/modal-v2/index.js +1 -1
- package/cjs/modal-v2/index.js.map +1 -1
- package/cjs/modal-v2/modal-v2.js +1 -1
- package/cjs/modal-v2/modal-v2.js.map +1 -1
- package/cjs/modal-v2/slots/card.js +1 -1
- package/cjs/modal-v2/slots/card.js.map +1 -1
- package/cjs/navbar/navbar.js.map +1 -1
- package/cjs/notification-banner/notification-banner-hoc.js.map +1 -1
- package/cjs/notification-banner/notification-banner.js.map +1 -1
- package/cjs/otp-input/otp-input.js.map +1 -1
- package/cjs/otp-verification/otp-verification.js.map +1 -1
- package/cjs/overlay/overlay.js.map +1 -1
- package/cjs/pagination/pagination.js.map +1 -1
- package/cjs/phone-number-input/phone-number-input.js.map +1 -1
- package/cjs/pill/pill.js.map +1 -1
- package/cjs/popover/popover-inline/popover-inline.js.map +1 -1
- package/cjs/popover/popover-trigger.js.map +1 -1
- package/cjs/popover/popover.js +1 -1
- package/cjs/popover/popover.js.map +1 -1
- package/cjs/predictive-text-input/predictive-text-input.js.map +1 -1
- package/cjs/progress-indicator/progress-indicator.js.map +1 -1
- package/cjs/radio-button/radio-button.js.map +1 -1
- package/cjs/schedule/schedule.js.map +1 -1
- package/cjs/schedule/shared/with-optional-popover.js +1 -1
- package/cjs/schedule/shared/with-optional-popover.js.map +1 -1
- package/cjs/select-histogram/select-histogram.js.map +1 -1
- package/cjs/sidenav/sidenav.js.map +1 -1
- package/cjs/singpass-button/singpass-button.js.map +1 -1
- package/cjs/smart-app-banner/smart-app-banner.js.map +1 -1
- package/cjs/tab/tab.js.map +1 -1
- package/cjs/table/table.js.map +1 -1
- package/cjs/table/table.styles.js +1 -1
- package/cjs/table/table.styles.js.map +1 -1
- package/{table/table.styles_1af5ipv.css → cjs/table/table.styles_1vjx31g.css} +1 -1
- package/cjs/tag/tag.js.map +1 -1
- package/cjs/text-list/index.js.map +1 -1
- package/cjs/theme/theme-provider/breakpoint.js +1 -1
- package/cjs/theme/theme-provider/breakpoint.js.map +1 -1
- package/cjs/theme/theme-provider/hooks.js.map +1 -1
- package/cjs/theme/theme-provider/index.js.map +1 -1
- package/cjs/theme/tokens/border.js.map +1 -1
- package/cjs/theme/tokens/breakpoint.js.map +1 -1
- package/cjs/theme/tokens/colour.js.map +1 -1
- package/cjs/theme/tokens/component.js.map +1 -1
- package/cjs/theme/tokens/font.js.map +1 -1
- package/cjs/theme/tokens/media-query.js.map +1 -1
- package/cjs/theme/tokens/motion.js.map +1 -1
- package/cjs/theme/tokens/radius.js.map +1 -1
- package/cjs/theme/tokens/shadow.js.map +1 -1
- package/cjs/theme/tokens/spacing.js.map +1 -1
- package/cjs/theme/types.js.map +1 -1
- package/cjs/theme/utils/css-variable.js.map +1 -1
- package/cjs/theme/utils/font.js.map +1 -1
- package/cjs/theme/utils/use-apply-styles.js +1 -1
- package/cjs/theme/utils/use-apply-styles.js.map +1 -1
- package/cjs/theme/utils/use-design-token-override.js.map +1 -1
- package/cjs/theme/utils/use-design-token.js.map +1 -1
- package/cjs/theme/utils/use-media-query.js.map +1 -1
- package/cjs/time-range-picker/combobox-picker/combobox-picker.js +1 -1
- package/cjs/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
- package/cjs/time-range-picker/common.styles.js +1 -1
- package/cjs/time-range-picker/common.styles.js.map +1 -1
- package/{time-range-picker/common.styles_1qwp4xa.css → cjs/time-range-picker/common.styles_cnkkax.css} +2 -1
- package/cjs/time-range-picker/dial-picker/dial-picker.js +1 -1
- package/cjs/time-range-picker/dial-picker/dial-picker.js.map +1 -1
- package/cjs/time-range-picker/time-range-picker.js.map +1 -1
- package/cjs/time-slot-bar/time-slot-bar.js.map +1 -1
- package/cjs/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
- package/cjs/time-slot-week-view/time-slot-week-view.js.map +1 -1
- package/cjs/timeline/timeline.js.map +1 -1
- package/cjs/timepicker/timepicker.js +1 -1
- package/cjs/timepicker/timepicker.js.map +1 -1
- package/cjs/timepicker/timepicker.styles.js +1 -1
- package/cjs/timepicker/timepicker.styles.js.map +1 -1
- package/cjs/timepicker/timepicker.styles_lyizvq.css +2 -0
- package/cjs/timetable/timetable-row/with-optional-popover.js +1 -1
- package/cjs/timetable/timetable-row/with-optional-popover.js.map +1 -1
- package/cjs/timetable/timetable.js +1 -1
- package/cjs/timetable/timetable.js.map +1 -1
- package/cjs/toast/toast.js.map +1 -1
- package/cjs/toggle/toggle.js.map +1 -1
- package/cjs/typography/index.js.map +1 -1
- package/cjs/uneditable-section/index.js.map +1 -1
- package/cjs/unit-number/unit-number-input.js.map +1 -1
- package/cjs/util/merge-refs.js.map +1 -1
- package/cjs/util/use-throttle.js +2 -0
- package/cjs/util/use-throttle.js.map +1 -0
- package/countdown-timer/types.d.ts +3 -3
- package/data-table/data-table.js +1 -1
- package/data-table/data-table.js.map +1 -1
- package/data-table/data-table.styles.d.ts +2 -1
- package/data-table/data-table.styles.js +1 -1
- package/data-table/data-table.styles.js.map +1 -1
- package/data-table/data-table.styles_rxganh.css +27 -0
- package/date-range-input/types.d.ts +1 -1
- package/drawer/types.d.ts +1 -1
- package/e-signature/types.d.ts +1 -1
- package/external/dompurify/dist/purify.es.js +2 -2
- package/external/dompurify/dist/purify.es.js.map +1 -1
- package/external/lodash/_setCacheHas.js.map +1 -1
- package/external/lodash/lodash.js +1 -1
- package/external/lodash/lodash.js.map +1 -1
- package/file-upload/types.d.ts +0 -1
- package/filter/types.d.ts +6 -10
- package/form/form-label-addon.js +1 -1
- package/form/form-label-addon.js.map +1 -1
- package/form/index.d.ts +65 -8
- package/form/index.js +1 -1
- package/form/index.js.map +1 -1
- package/form/types.d.ts +155 -6
- package/fullscreen-image-carousel/fullscreen-image-carousel.d.ts +7 -0
- package/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
- package/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
- package/fullscreen-image-carousel/types.d.ts +91 -3
- package/histogram-slider/histogram-slider.d.ts +6 -0
- package/histogram-slider/histogram-slider.js.map +1 -1
- package/histogram-slider/types.d.ts +63 -3
- package/image-button/image-button.d.ts +6 -0
- package/image-button/image-button.js.map +1 -1
- package/image-button/types.d.ts +11 -1
- package/index.js +1 -1
- package/input/input.d.ts +6 -0
- package/input/input.js.map +1 -1
- package/input/types.d.ts +38 -2
- package/input-group/input-group.d.ts +7 -0
- package/input-group/input-group.js.map +1 -1
- package/input-group/types.d.ts +84 -8
- package/input-multi-select/input-multi-select.d.ts +6 -0
- package/input-multi-select/input-multi-select.js.map +1 -1
- package/input-multi-select/types.d.ts +46 -5
- package/input-nested-multi-select/input-nested-multi-select.d.ts +8 -0
- package/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
- package/input-nested-multi-select/types.d.ts +35 -5
- package/input-nested-select/input-nested-select.d.ts +9 -2
- package/input-nested-select/input-nested-select.js.map +1 -1
- package/input-nested-select/types.d.ts +77 -8
- package/input-range-select/input-range-select.d.ts +6 -0
- package/input-range-select/input-range-select.js.map +1 -1
- package/input-range-select/types.d.ts +68 -1
- package/input-range-slider/input-range-slider.d.ts +7 -0
- package/input-range-slider/input-range-slider.js.map +1 -1
- package/input-range-slider/types.d.ts +91 -6
- package/input-select/input-select.d.ts +5 -0
- package/input-select/input-select.js.map +1 -1
- package/input-select/types.d.ts +70 -14
- package/input-slider/input-slider.d.ts +6 -0
- package/input-slider/input-slider.js.map +1 -1
- package/input-slider/types.d.ts +21 -2
- package/input-textarea/textarea.d.ts +3 -0
- package/input-textarea/textarea.js.map +1 -1
- package/input-textarea/types.d.ts +24 -1
- package/language-switcher/language-switcher.d.ts +6 -0
- package/language-switcher/language-switcher.js.map +1 -1
- package/language-switcher/types.d.ts +23 -0
- package/layout/index.d.ts +16 -2
- package/layout/index.js +1 -1
- package/layout/index.js.map +1 -1
- package/layout/types.d.ts +61 -3
- package/link-list/internal-types.d.ts +57 -3
- package/link-list/link-list.d.ts +6 -0
- package/link-list/link-list.js.map +1 -1
- package/link-list/types.d.ts +3 -0
- package/local-nav/local-nav-dropdown/local-nav-dropdown.d.ts +11 -0
- package/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
- package/local-nav/local-nav-menu/local-nav-menu.d.ts +6 -0
- package/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
- package/local-nav/types.d.ts +51 -0
- package/markup/markup.d.ts +6 -0
- package/markup/markup.js.map +1 -1
- package/markup/types.d.ts +6 -2
- package/masked-input/masked-input.d.ts +6 -0
- package/masked-input/masked-input.js.map +1 -1
- package/masked-input/types.d.ts +83 -8
- package/masthead/masthead.d.ts +6 -0
- package/masthead/masthead.js.map +1 -1
- package/masthead/types.d.ts +9 -0
- package/menu/menu.d.ts +27 -4
- package/menu/menu.js +1 -1
- package/menu/menu.js.map +1 -1
- package/menu/types.d.ts +32 -0
- package/modal/index.d.ts +13 -0
- package/modal/index.js.map +1 -1
- package/modal/modal-box.js +1 -1
- package/modal/modal-box.js.map +1 -1
- package/modal/types.d.ts +54 -7
- package/modal-v2/index.d.ts +1 -15
- package/modal-v2/index.js +1 -1
- package/modal-v2/index.js.map +1 -1
- package/modal-v2/modal-v2.d.ts +32 -1
- package/modal-v2/modal-v2.js +1 -1
- package/modal-v2/modal-v2.js.map +1 -1
- package/modal-v2/slots/card.js +1 -1
- package/modal-v2/slots/card.js.map +1 -1
- package/modal-v2/types.d.ts +75 -8
- package/navbar/navbar.d.ts +7 -0
- package/navbar/navbar.js.map +1 -1
- package/navbar/types.d.ts +200 -13
- package/notification-banner/notification-banner-hoc.d.ts +6 -0
- package/notification-banner/notification-banner-hoc.js.map +1 -1
- package/notification-banner/notification-banner.d.ts +7 -0
- package/notification-banner/notification-banner.js.map +1 -1
- package/notification-banner/types.d.ts +57 -2
- package/otp-input/otp-input.d.ts +7 -0
- package/otp-input/otp-input.js.map +1 -1
- package/otp-input/types.d.ts +54 -11
- package/otp-verification/internal-types.d.ts +22 -5
- package/otp-verification/otp-verification.d.ts +6 -0
- package/otp-verification/otp-verification.js.map +1 -1
- package/otp-verification/types.d.ts +125 -6
- package/overlay/overlay.d.ts +7 -0
- package/overlay/overlay.js.map +1 -1
- package/overlay/types.d.ts +57 -2
- package/package.json +1 -1
- package/pagination/pagination.d.ts +5 -0
- package/pagination/pagination.js.map +1 -1
- package/pagination/types.d.ts +48 -0
- package/phone-number-input/phone-number-input.d.ts +7 -0
- package/phone-number-input/phone-number-input.js.map +1 -1
- package/phone-number-input/types.d.ts +78 -13
- package/pill/pill.d.ts +6 -0
- package/pill/pill.js.map +1 -1
- package/pill/types.d.ts +19 -0
- package/popover/popover-inline/popover-inline.d.ts +5 -0
- package/popover/popover-inline/popover-inline.js.map +1 -1
- package/popover/popover-trigger.d.ts +6 -0
- package/popover/popover-trigger.js.map +1 -1
- package/popover/popover.d.ts +6 -0
- package/popover/popover.js +1 -1
- package/popover/popover.js.map +1 -1
- package/popover/types.d.ts +150 -3
- package/predictive-text-input/predictive-text-input.d.ts +6 -0
- package/predictive-text-input/predictive-text-input.js.map +1 -1
- package/predictive-text-input/types.d.ts +65 -11
- package/progress-indicator/progress-indicator.d.ts +7 -0
- package/progress-indicator/progress-indicator.js.map +1 -1
- package/progress-indicator/types.d.ts +18 -0
- package/radio-button/radio-button.d.ts +5 -0
- package/radio-button/radio-button.js.map +1 -1
- package/radio-button/types.d.ts +11 -0
- package/schedule/internal-types.d.ts +18 -0
- package/schedule/schedule-day-view/types.d.ts +2 -1
- package/schedule/schedule-week-view/types.d.ts +2 -1
- package/schedule/schedule.d.ts +3 -0
- package/schedule/schedule.js.map +1 -1
- package/schedule/shared/with-optional-popover.js +1 -1
- package/schedule/shared/with-optional-popover.js.map +1 -1
- package/schedule/types.d.ts +129 -10
- package/select-histogram/select-histogram.d.ts +5 -0
- package/select-histogram/select-histogram.js.map +1 -1
- package/select-histogram/types.d.ts +57 -4
- package/shared/dropdown-list/types.d.ts +52 -19
- package/shared/dropdown-wrapper/types.d.ts +6 -0
- package/sidenav/sidenav.d.ts +10 -0
- package/sidenav/sidenav.js.map +1 -1
- package/sidenav/types.d.ts +70 -21
- package/singpass-button/singpass-button.d.ts +6 -0
- package/singpass-button/singpass-button.js.map +1 -1
- package/singpass-button/types.d.ts +29 -2
- package/smart-app-banner/smart-app-banner.d.ts +5 -0
- package/smart-app-banner/smart-app-banner.js.map +1 -1
- package/smart-app-banner/types.d.ts +54 -0
- package/tab/tab.d.ts +7 -0
- package/tab/tab.js.map +1 -1
- package/tab/types.d.ts +55 -6
- package/table/table.d.ts +21 -0
- package/table/table.js.map +1 -1
- package/table/table.styles.js +1 -1
- package/table/table.styles.js.map +1 -1
- package/{cjs/table/table.styles_1af5ipv.css → table/table.styles_1vjx31g.css} +1 -1
- package/tag/tag.d.ts +5 -0
- package/tag/tag.js.map +1 -1
- package/tag/types.d.ts +24 -0
- package/text-list/index.d.ts +17 -0
- package/text-list/index.js.map +1 -1
- package/text-list/types.d.ts +33 -4
- package/theme/theme-provider/breakpoint.d.ts +0 -1
- package/theme/theme-provider/breakpoint.js +1 -1
- package/theme/theme-provider/breakpoint.js.map +1 -1
- package/theme/theme-provider/hooks.d.ts +16 -0
- package/theme/theme-provider/hooks.js.map +1 -1
- package/theme/theme-provider/index.d.ts +7 -0
- package/theme/theme-provider/index.js.map +1 -1
- package/theme/theme-provider/types.d.ts +14 -0
- package/theme/tokens/border.d.ts +3 -0
- package/theme/tokens/border.js.map +1 -1
- package/theme/tokens/breakpoint.d.ts +3 -0
- package/theme/tokens/breakpoint.js.map +1 -1
- package/theme/tokens/colour.d.ts +3 -0
- package/theme/tokens/colour.js.map +1 -1
- package/theme/tokens/component.d.ts +1 -0
- package/theme/tokens/component.js.map +1 -1
- package/theme/tokens/font.d.ts +2 -0
- package/theme/tokens/font.js.map +1 -1
- package/theme/tokens/media-query.d.ts +1 -0
- package/theme/tokens/media-query.js.map +1 -1
- package/theme/tokens/motion.d.ts +1 -0
- package/theme/tokens/motion.js.map +1 -1
- package/theme/tokens/radius.d.ts +1 -0
- package/theme/tokens/radius.js.map +1 -1
- package/theme/tokens/shadow.d.ts +1 -0
- package/theme/tokens/shadow.js.map +1 -1
- package/theme/tokens/spacing.d.ts +1 -0
- package/theme/tokens/spacing.js.map +1 -1
- package/theme/types.d.ts +23 -3
- package/theme/types.js.map +1 -1
- package/theme/utils/css-variable.d.ts +10 -2
- package/theme/utils/css-variable.js.map +1 -1
- package/theme/utils/font.d.ts +2 -1
- package/theme/utils/font.js.map +1 -1
- package/theme/utils/use-apply-styles.d.ts +8 -2
- package/theme/utils/use-apply-styles.js +1 -1
- package/theme/utils/use-apply-styles.js.map +1 -1
- package/theme/utils/use-design-token-override.d.ts +9 -1
- package/theme/utils/use-design-token-override.js.map +1 -1
- package/theme/utils/use-design-token.d.ts +9 -0
- package/theme/utils/use-design-token.js.map +1 -1
- package/theme/utils/use-media-query.d.ts +41 -3
- package/theme/utils/use-media-query.js.map +1 -1
- package/time-range-picker/combobox-picker/combobox-picker.js +1 -1
- package/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
- package/time-range-picker/common.styles.d.ts +1 -0
- package/time-range-picker/common.styles.js +1 -1
- package/time-range-picker/common.styles.js.map +1 -1
- package/{cjs/time-range-picker/common.styles_1qwp4xa.css → time-range-picker/common.styles_cnkkax.css} +2 -1
- package/time-range-picker/dial-picker/dial-picker.js +1 -1
- package/time-range-picker/dial-picker/dial-picker.js.map +1 -1
- package/time-range-picker/time-range-picker.d.ts +5 -0
- package/time-range-picker/time-range-picker.js.map +1 -1
- package/time-range-picker/types.d.ts +85 -25
- package/time-slot-bar/internal-types.d.ts +1 -0
- package/time-slot-bar/time-slot-bar.d.ts +7 -0
- package/time-slot-bar/time-slot-bar.js.map +1 -1
- package/time-slot-bar/types.d.ts +112 -20
- package/time-slot-bar-week/time-slot-bar-week.d.ts +8 -0
- package/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
- package/time-slot-bar-week/types.d.ts +74 -13
- package/time-slot-week-view/time-slot-week-view.d.ts +7 -0
- package/time-slot-week-view/time-slot-week-view.js.map +1 -1
- package/time-slot-week-view/types.d.ts +53 -10
- package/timeline/timeline.d.ts +6 -0
- package/timeline/timeline.js.map +1 -1
- package/timeline/types.d.ts +58 -4
- package/timepicker/timepicker.d.ts +5 -0
- package/timepicker/timepicker.js +1 -1
- package/timepicker/timepicker.js.map +1 -1
- package/timepicker/timepicker.styles.d.ts +1 -0
- package/timepicker/timepicker.styles.js +1 -1
- package/timepicker/timepicker.styles.js.map +1 -1
- package/timepicker/timepicker.styles_lyizvq.css +2 -0
- package/timepicker/types.d.ts +49 -14
- package/timetable/timetable-row/with-optional-popover.js +1 -1
- package/timetable/timetable-row/with-optional-popover.js.map +1 -1
- package/timetable/timetable.d.ts +6 -0
- package/timetable/timetable.js +1 -1
- package/timetable/timetable.js.map +1 -1
- package/timetable/types.d.ts +175 -50
- package/toast/toast.d.ts +6 -0
- package/toast/toast.js.map +1 -1
- package/toast/types.d.ts +42 -8
- package/toggle/toggle.d.ts +6 -0
- package/toggle/toggle.js.map +1 -1
- package/toggle/types.d.ts +95 -17
- package/typography/index.d.ts +29 -0
- package/typography/index.js.map +1 -1
- package/typography/types.d.ts +51 -8
- package/uneditable-section/index.d.ts +15 -0
- package/uneditable-section/index.js.map +1 -1
- package/uneditable-section/types.d.ts +66 -23
- package/unit-number/types.d.ts +30 -4
- package/unit-number/unit-number-input.d.ts +6 -0
- package/unit-number/unit-number-input.js.map +1 -1
- package/util/index.d.ts +1 -0
- package/util/merge-refs.d.ts +1 -1
- package/util/merge-refs.js.map +1 -1
- package/util/use-throttle.d.ts +1 -0
- package/util/use-throttle.js +2 -0
- package/util/use-throttle.js.map +1 -0
- package/cjs/data-table/data-table.styles_1iqq1g7.css +0 -26
- package/cjs/timepicker/timepicker.styles_1jm33yw.css +0 -1
- package/data-table/data-table.styles_1iqq1g7.css +0 -26
- package/timepicker/timepicker.styles_1jm33yw.css +0 -1
package/file-upload/types.d.ts
CHANGED
|
@@ -136,7 +136,6 @@ export interface FileUploadProps extends FileInputProps {
|
|
|
136
136
|
readOnly?: boolean | undefined;
|
|
137
137
|
/**
|
|
138
138
|
* Overrides default label text for elements within the component.
|
|
139
|
-
* Currently supports `uploadButtonLabel` to replace the "Upload files" button text.
|
|
140
139
|
*/
|
|
141
140
|
customLabels?: {
|
|
142
141
|
uploadButtonLabel?: string | undefined;
|
package/filter/types.d.ts
CHANGED
|
@@ -60,14 +60,14 @@ export interface FilterBaseProps {
|
|
|
60
60
|
doneButtonLabel?: string | undefined;
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
|
-
* Props for the
|
|
63
|
+
* Props for the `Filter.Sidebar` sub-component.
|
|
64
64
|
*/
|
|
65
65
|
export interface FilterSidebarProps extends FilterBaseProps {
|
|
66
66
|
/** Overrides default labels used by the sidebar variant. */
|
|
67
67
|
customLabels?: FilterSidebarCustomLabelProps | undefined;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
|
-
* Props for the
|
|
70
|
+
* Props for the `Filter.Modal` sub-component.
|
|
71
71
|
*/
|
|
72
72
|
export interface FilterModalProps extends FilterBaseProps {
|
|
73
73
|
/** Called when the dismiss (close) button is pressed in the modal overlay. */
|
|
@@ -91,7 +91,7 @@ export interface FilterModalProps extends FilterBaseProps {
|
|
|
91
91
|
insets?: Insets | undefined;
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
|
-
* Props for the `Filter` component
|
|
94
|
+
* Props for the `Filter` component.
|
|
95
95
|
*/
|
|
96
96
|
export interface FilterProps extends Omit<FilterSidebarProps, "customLabels">, Omit<FilterModalProps, "customLabels"> {
|
|
97
97
|
/**
|
|
@@ -102,7 +102,7 @@ export interface FilterProps extends Omit<FilterSidebarProps, "customLabels">, O
|
|
|
102
102
|
customLabels?: FilterModalCustomLabelProps | FilterSidebarCustomLabelProps | undefined;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
|
-
* Props for
|
|
105
|
+
* Props for the `Filter.Item` sub-component.
|
|
106
106
|
*/
|
|
107
107
|
export interface FilterItemProps {
|
|
108
108
|
/**
|
|
@@ -171,10 +171,7 @@ export interface FilterItemProps {
|
|
|
171
171
|
style?: React.CSSProperties | undefined;
|
|
172
172
|
}
|
|
173
173
|
/**
|
|
174
|
-
* Props for
|
|
175
|
-
*
|
|
176
|
-
* `Filter.Page` provides a back-navigation header and a done button,
|
|
177
|
-
* intended for drill-down selection flows inside a filter item.
|
|
174
|
+
* Props for the `Filter.Page` sub-component.
|
|
178
175
|
*/
|
|
179
176
|
export interface FilterPageProps {
|
|
180
177
|
"data-testid"?: string | undefined;
|
|
@@ -197,8 +194,7 @@ export interface FilterItemCheckboxOptionProps {
|
|
|
197
194
|
options?: FilterItemCheckboxOptionProps[] | undefined;
|
|
198
195
|
}
|
|
199
196
|
/**
|
|
200
|
-
* Props for `Filter.Checkbox
|
|
201
|
-
* checkboxes (desktop) or toggle chips (mobile).
|
|
197
|
+
* Props for the `Filter.Checkbox` sub-component.
|
|
202
198
|
*
|
|
203
199
|
* Supply a generic type `T` to use a custom option shape together with
|
|
204
200
|
* `labelExtractor` and `valueExtractor`.
|
package/form/form-label-addon.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{ICircleFillIcon as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{ICircleFillIcon as o}from"@lifesg/react-icons/i-circle-fill";import"../_virtual/_tslib.js";import"clsx";import"react";import"../theme/theme-provider/context.js";import"../typography/typography.js";import"../card/card.styles_1gh9gs3.css";import"../markup/markup.js";import"../modal-v2/modal-v2.js";import"../theme/theme-provider/index.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import"../util/simple-id-generator.js";import"../util/string-helper.js";import"@react-aria/live-announcer";import"../theme/utils/use-media-query.js";import"../popover/popover.styles_ujnf0h.css";import{PopoverInline as e}from"../popover/popover-inline/popover-inline.js";import"@floating-ui/react";import"../overlay/use-floating-context.js";import"../popover/popover-trigger.styles_8zokig.css";import{addonWrapper as r}from"./form-label-addon.styles.js";const i=({addon:i,rootNode:p})=>{const{content:s,type:m,icon:a,id:n,zIndex:l,"data-testid":d}=i;return t("div",{className:r,children:t(e,{trigger:"click",id:n,"data-testid":d,popoverContent:s,rootNode:p,zIndex:l,icon:null!=a?a:t(o,{"data-testid":`${m}-icon`}),ariaLabel:"More info"})})};export{i as PopoverAddon};
|
|
2
2
|
//# sourceMappingURL=form-label-addon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-label-addon.js","sources":["../../src/form/form-label-addon.tsx"],"sourcesContent":["import { ICircleFillIcon } from \"@lifesg/react-icons/i-circle-fill\";\nimport type { RefObject } from \"react\";\n\nimport { PopoverInline } from \"../popover\";\nimport * as styles from \"./form-label-addon.styles\";\nimport type { FormLabelAddonProps } from \"./types\";\n\n// =============================================================================\n// POPOVER ADDON COMPONENT\n// Note: We need to re-construct as using with the HOC causes some rendering\n// issues\n// =============================================================================\ninterface PopoverAddonProps {\n addon: FormLabelAddonProps;\n rootNode?: RefObject<HTMLElement>;\n}\n\nexport const PopoverAddon = ({\n addon,\n rootNode,\n}: PopoverAddonProps): JSX.Element => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const { content, type, icon, id, zIndex, \"data-testid\": testId } = addon;\n\n // =========================================================================\n // RENDER FUNCTION\n // =========================================================================\n return (\n <div className={styles.addonWrapper}>\n <PopoverInline\n trigger=\"click\"\n id={id}\n data-testid={testId}\n popoverContent={content}\n rootNode={rootNode}\n zIndex={zIndex}\n icon={icon ?? <ICircleFillIcon data-testid={`${type}-icon`} />}\n ariaLabel=\"More info\"\n />\n </div>\n );\n};\n"],"names":["PopoverAddon","addon","rootNode","content","type","icon","id","zIndex","testId","_jsx","className","styles.addonWrapper","children","PopoverInline","trigger","popoverContent","ICircleFillIcon","ariaLabel"],"mappings":"
|
|
1
|
+
{"version":3,"file":"form-label-addon.js","sources":["../../src/form/form-label-addon.tsx"],"sourcesContent":["import { ICircleFillIcon } from \"@lifesg/react-icons/i-circle-fill\";\nimport type { RefObject } from \"react\";\n\nimport { PopoverInline } from \"../popover\";\nimport * as styles from \"./form-label-addon.styles\";\nimport type { FormLabelAddonProps } from \"./types\";\n\n// =============================================================================\n// POPOVER ADDON COMPONENT\n// Note: We need to re-construct as using with the HOC causes some rendering\n// issues\n// =============================================================================\ninterface PopoverAddonProps {\n addon: FormLabelAddonProps;\n rootNode?: RefObject<HTMLElement>;\n}\n\nexport const PopoverAddon = ({\n addon,\n rootNode,\n}: PopoverAddonProps): JSX.Element => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const { content, type, icon, id, zIndex, \"data-testid\": testId } = addon;\n\n // =========================================================================\n // RENDER FUNCTION\n // =========================================================================\n return (\n <div className={styles.addonWrapper}>\n <PopoverInline\n trigger=\"click\"\n id={id}\n data-testid={testId}\n popoverContent={content}\n rootNode={rootNode}\n zIndex={zIndex}\n icon={icon ?? <ICircleFillIcon data-testid={`${type}-icon`} />}\n ariaLabel=\"More info\"\n />\n </div>\n );\n};\n"],"names":["PopoverAddon","addon","rootNode","content","type","icon","id","zIndex","testId","_jsx","className","styles.addonWrapper","children","PopoverInline","trigger","popoverContent","ICircleFillIcon","ariaLabel"],"mappings":"qkCAiBO,MAAMA,EAAe,EACxBC,QACAC,eAKA,MAAMC,QAAEA,EAAOC,KAAEA,EAAIC,KAAEA,EAAIC,GAAEA,EAAEC,OAAEA,EAAQ,cAAeC,GAAWP,EAKnE,OACIQ,EAAA,MAAA,CAAKC,UAAWC,EAAmBC,SAC/BH,EAACI,EAAa,CACVC,QAAQ,QACRR,GAAIA,EAAE,cACOE,EACbO,eAAgBZ,EAChBD,SAAUA,EACVK,OAAQA,EACRF,KAAMA,QAAAA,EAAQI,EAACO,EAAe,CAAA,cAAc,GAAGZ,WAC/Ca,UAAU,eAEZ"}
|
package/form/index.d.ts
CHANGED
|
@@ -1,27 +1,84 @@
|
|
|
1
1
|
export * from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* A collection of form field components that each combine a label, input
|
|
4
|
+
* control, and inline error message with consistent ARIA wiring.
|
|
5
|
+
*
|
|
6
|
+
* Use `Form.*` sub-components to build accessible forms. Use `Form.CustomField` to wrap any
|
|
7
|
+
* bespoke input element in the same layout.
|
|
8
|
+
*
|
|
9
|
+
* Sub-components:
|
|
10
|
+
* - `Form.CustomField` — layout shell for wrapping custom input elements.
|
|
11
|
+
* - `Form.DateInput` — single date picker.
|
|
12
|
+
* - `Form.DateRangeInput` — date range picker.
|
|
13
|
+
* - `Form.ESignature` — e-signature capture field.
|
|
14
|
+
* - `Form.HistogramSlider` — range slider with histogram overlay.
|
|
15
|
+
* - `Form.Input` — single-line text input field.
|
|
16
|
+
* - `Form.InputGroup` — grouped inputs with shared label and error state.
|
|
17
|
+
* - `Form.Label` — standalone label for use outside a `Form.*` field.
|
|
18
|
+
* - `Form.MaskedInput` — text input with a character-level input mask.
|
|
19
|
+
* - `Form.MultiSelect` — multi-value dropdown select.
|
|
20
|
+
* - `Form.NestedMultiSelect` — hierarchical multi-value select.
|
|
21
|
+
* - `Form.NestedSelect` — hierarchical single-value select.
|
|
22
|
+
* - `Form.OtpVerification` — OTP send-and-verify flow.
|
|
23
|
+
* - `Form.PhoneNumberInput` — phone number input with country code selection.
|
|
24
|
+
* - `Form.PredictiveTextInput` — text input with predictive suggestions.
|
|
25
|
+
* - `Form.RangeSelect` — dual-value range dropdown select.
|
|
26
|
+
* - `Form.RangeSlider` — dual-handle range slider.
|
|
27
|
+
* - `Form.Select` — single-value dropdown select.
|
|
28
|
+
* - `Form.SelectHistogram` — select control with histogram.
|
|
29
|
+
* - `Form.Slider` — single-value range slider.
|
|
30
|
+
* - `Form.Textarea` — multi-line text area.
|
|
31
|
+
* - `Form.Timepicker` — time picker.
|
|
32
|
+
* - `Form.TimeRangePicker` — time range picker.
|
|
33
|
+
* - `Form.UnitNumberInput` — structured unit number input.
|
|
34
|
+
*/
|
|
2
35
|
export declare const Form: {
|
|
36
|
+
/** Layout shell that wraps any custom input element with label, subtitle, and error message. */
|
|
37
|
+
CustomField: ({ id, "data-error-testid": errorTestId, "data-testid": testId, children, ...otherProps }: import("./types").FormCustomFieldProps) => JSX.Element;
|
|
38
|
+
/** Single date picker with form layout. */
|
|
3
39
|
DateInput: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormDateInputProps) => JSX.Element;
|
|
40
|
+
/** Date range picker with form layout. */
|
|
4
41
|
DateRangeInput: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormDateRangeInputProps) => JSX.Element;
|
|
42
|
+
/** E-signature capture field with form layout. */
|
|
5
43
|
ESignature: (props: import("./types").FormESignatureProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
/** Range slider with histogram overlay and form layout. */
|
|
6
45
|
HistogramSlider: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormHistogramSliderProps) => JSX.Element;
|
|
46
|
+
/** Single-line text input field with form layout. */
|
|
7
47
|
Input: (props: import("./types").FormInputProps & import("react").RefAttributes<HTMLInputElement>) => React.ReactElement | null;
|
|
48
|
+
/** Grouped inputs with shared label, error state, and form layout. */
|
|
8
49
|
InputGroup: <T, V>(props: import("./types").FormInputGroupProps<T, V> & import("react").RefAttributes<HTMLInputElement>) => React.ReactElement | null;
|
|
9
|
-
|
|
50
|
+
/** Standalone label element for use outside a `Form.*` field with optional subtitle and addon icon. */
|
|
10
51
|
Label: ({ id, children, addon, subtitle, "data-testid": testId, className, style, ...otherProps }: import("./types").FormLabelProps) => JSX.Element;
|
|
52
|
+
/** Text input with a character-level input mask and form layout. */
|
|
53
|
+
MaskedInput: (props: import("./types").FormMaskedInputProps & import("react").RefAttributes<HTMLInputElement>) => React.ReactElement | null;
|
|
54
|
+
/** Multi-value dropdown select with form layout. */
|
|
11
55
|
MultiSelect: <T, V>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, enableSearch, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, variant, ...otherProps }: import("./types").FormMultiSelectProps<T, V>) => JSX.Element;
|
|
12
|
-
|
|
56
|
+
/** Hierarchical multi-value select with form layout. */
|
|
13
57
|
NestedMultiSelect: <V1, V2, V3>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormNestedMultiSelectProps<V1, V2, V3>) => JSX.Element;
|
|
58
|
+
/** Hierarchical single-value select with form layout. */
|
|
59
|
+
NestedSelect: <V1, V2, V3>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormNestedSelectProps<V1, V2, V3>) => JSX.Element;
|
|
60
|
+
/** OTP send-and-verify flow with form layout. */
|
|
61
|
+
OtpVerification: ({ label, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("../otp-verification").FormOtpVerificationProps) => JSX.Element;
|
|
62
|
+
/** Phone number input with country code selection and form layout. */
|
|
63
|
+
PhoneNumberInput: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormPhoneNumberInputProps) => JSX.Element;
|
|
64
|
+
/** Text input with predictive suggestions and form layout. */
|
|
65
|
+
PredictiveTextInput: <T, V>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormPredictiveTextInputProps<T, V>) => JSX.Element;
|
|
66
|
+
/** Dual-value range dropdown select with form layout. */
|
|
67
|
+
RangeSelect: <T, V>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, enableSearch, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormInputRangeSelectProps<T, V>) => JSX.Element;
|
|
68
|
+
/** Dual-handle range slider with form layout. */
|
|
69
|
+
RangeSlider: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormRangeSliderProps) => JSX.Element;
|
|
70
|
+
/** Single-value dropdown select with form layout. */
|
|
14
71
|
Select: <T, V>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, enableSearch, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, variant, ...otherProps }: import("./types").FormInputSelectProps<T, V>) => JSX.Element;
|
|
72
|
+
/** Select control with histogram and form layout. */
|
|
15
73
|
SelectHistogram: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, histogramSlider, ...otherProps }: import("./types").FormSelectHistogramProps) => JSX.Element;
|
|
74
|
+
/** Single-value range slider with form layout. */
|
|
16
75
|
Slider: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormSliderProps) => JSX.Element;
|
|
17
|
-
|
|
18
|
-
RangeSelect: <T, V>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, enableSearch, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormInputRangeSelectProps<T, V>) => JSX.Element;
|
|
76
|
+
/** Multi-line text area with form layout. */
|
|
19
77
|
Textarea: (props: import("./types").FormTextareaProps & import("react").RefAttributes<HTMLTextAreaElement>) => React.ReactElement | null;
|
|
78
|
+
/** Time picker with form layout. */
|
|
20
79
|
Timepicker: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormTimepickerProps) => JSX.Element;
|
|
80
|
+
/** Time range picker with form layout. */
|
|
21
81
|
TimeRangePicker: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormTimeRangePickerProps) => JSX.Element;
|
|
22
|
-
|
|
82
|
+
/** Structured unit number input with form layout. */
|
|
23
83
|
UnitNumberInput: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormUnitNumberInputProps) => JSX.Element;
|
|
24
|
-
PhoneNumberInput: ({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormPhoneNumberInputProps) => JSX.Element;
|
|
25
|
-
PredictiveTextInput: <T, V>({ label, errorMessage, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("./types").FormPredictiveTextInputProps<T, V>) => JSX.Element;
|
|
26
|
-
OtpVerification: ({ label, id, "data-error-testid": errorTestId, "data-testid": testId, layoutType, xxsCols, xsCols, smCols, mdCols, lgCols, xlCols, xxlCols, ...otherProps }: import("../otp-verification").FormOtpVerificationProps) => JSX.Element;
|
|
27
84
|
};
|
package/form/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{FormCustomField as r}from"./form-custom-field.js";import{FormDateInput as t}from"./form-date-input.js";import{FormDateRangeInput as m}from"./form-date-range-input.js";import{FormESignature as o}from"./form-e-signature.js";import{FormHistogramSlider as e}from"./form-histogram.js";import{FormInput as i}from"./form-input.js";import{FormInputGroup as f}from"./form-input-group.js";import{FormLabel as p}from"./form-label.js";import{FormMaskedInput as s}from"./form-masked-input.js";import{FormMultiSelect as n}from"./form-multi-select.js";import{FormNestedMultiSelect as u}from"./form-nested-multi-select.js";import{FormNestedSelect as a}from"./form-nested-select.js";import{FormOtpVerification as l}from"./form-otp-verification.js";import{FormPhoneNumberInput as j}from"./form-phone-number-input.js";import{FormPredictiveTextInput as c}from"./form-predictive-text-input.js";import{FormRangeSelect as d}from"./form-range-select.js";import{FormRangeSlider as g}from"./form-range-slider.js";import{FormSelect as S}from"./form-select.js";import{FormSelectHistogram as I}from"./form-select-histogram.js";import{FormSlider as b}from"./form-slider.js";import{FormTextarea as k}from"./form-textarea.js";import{FormTimeRangePicker as x}from"./form-time-range-picker.js";import{FormTimepicker as h}from"./form-timepicker.js";import{FormUnitNumberInput as N}from"./form-unit-number-input.js";const R={DateInput:t,DateRangeInput:m,ESignature:o,HistogramSlider:e,Input:i,InputGroup:f,MaskedInput:s,
|
|
1
|
+
import{FormCustomField as r}from"./form-custom-field.js";import{FormDateInput as t}from"./form-date-input.js";import{FormDateRangeInput as m}from"./form-date-range-input.js";import{FormESignature as o}from"./form-e-signature.js";import{FormHistogramSlider as e}from"./form-histogram.js";import{FormInput as i}from"./form-input.js";import{FormInputGroup as f}from"./form-input-group.js";import{FormLabel as p}from"./form-label.js";import{FormMaskedInput as s}from"./form-masked-input.js";import{FormMultiSelect as n}from"./form-multi-select.js";import{FormNestedMultiSelect as u}from"./form-nested-multi-select.js";import{FormNestedSelect as a}from"./form-nested-select.js";import{FormOtpVerification as l}from"./form-otp-verification.js";import{FormPhoneNumberInput as j}from"./form-phone-number-input.js";import{FormPredictiveTextInput as c}from"./form-predictive-text-input.js";import{FormRangeSelect as d}from"./form-range-select.js";import{FormRangeSlider as g}from"./form-range-slider.js";import{FormSelect as S}from"./form-select.js";import{FormSelectHistogram as I}from"./form-select-histogram.js";import{FormSlider as b}from"./form-slider.js";import{FormTextarea as k}from"./form-textarea.js";import{FormTimeRangePicker as x}from"./form-time-range-picker.js";import{FormTimepicker as h}from"./form-timepicker.js";import{FormUnitNumberInput as N}from"./form-unit-number-input.js";const R={CustomField:r,DateInput:t,DateRangeInput:m,ESignature:o,HistogramSlider:e,Input:i,InputGroup:f,Label:p,MaskedInput:s,MultiSelect:n,NestedMultiSelect:u,NestedSelect:a,OtpVerification:l,PhoneNumberInput:j,PredictiveTextInput:c,RangeSelect:d,RangeSlider:g,Select:S,SelectHistogram:I,Slider:b,Textarea:k,Timepicker:h,TimeRangePicker:x,UnitNumberInput:N};export{R as Form};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/form/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/form/index.ts"],"sourcesContent":["import { FormCustomField } from \"./form-custom-field\";\nimport { FormDateInput } from \"./form-date-input\";\nimport { FormDateRangeInput } from \"./form-date-range-input\";\nimport { FormESignature } from \"./form-e-signature\";\nimport { FormHistogramSlider } from \"./form-histogram\";\nimport { FormInput } from \"./form-input\";\nimport { FormInputGroup } from \"./form-input-group\";\nimport { FormLabel } from \"./form-label\";\nimport { FormMaskedInput } from \"./form-masked-input\";\nimport { FormMultiSelect } from \"./form-multi-select\";\nimport { FormNestedMultiSelect } from \"./form-nested-multi-select\";\nimport { FormNestedSelect } from \"./form-nested-select\";\nimport { FormOtpVerification } from \"./form-otp-verification\";\nimport { FormPhoneNumberInput } from \"./form-phone-number-input\";\nimport { FormPredictiveTextInput } from \"./form-predictive-text-input\";\nimport { FormRangeSelect } from \"./form-range-select\";\nimport { FormRangeSlider } from \"./form-range-slider\";\nimport { FormSelect } from \"./form-select\";\nimport { FormSelectHistogram } from \"./form-select-histogram\";\nimport { FormSlider } from \"./form-slider\";\nimport { FormTextarea } from \"./form-textarea\";\nimport { FormTimeRangePicker } from \"./form-time-range-picker\";\nimport { FormTimepicker } from \"./form-timepicker\";\nimport { FormUnitNumberInput } from \"./form-unit-number-input\";\n\nexport * from \"./types\";\n\nexport const Form = {\n DateInput: FormDateInput,\n DateRangeInput: FormDateRangeInput,\n ESignature: FormESignature,\n HistogramSlider: FormHistogramSlider,\n Input: FormInput,\n InputGroup: FormInputGroup,\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/form/index.ts"],"sourcesContent":["import { FormCustomField } from \"./form-custom-field\";\nimport { FormDateInput } from \"./form-date-input\";\nimport { FormDateRangeInput } from \"./form-date-range-input\";\nimport { FormESignature } from \"./form-e-signature\";\nimport { FormHistogramSlider } from \"./form-histogram\";\nimport { FormInput } from \"./form-input\";\nimport { FormInputGroup } from \"./form-input-group\";\nimport { FormLabel } from \"./form-label\";\nimport { FormMaskedInput } from \"./form-masked-input\";\nimport { FormMultiSelect } from \"./form-multi-select\";\nimport { FormNestedMultiSelect } from \"./form-nested-multi-select\";\nimport { FormNestedSelect } from \"./form-nested-select\";\nimport { FormOtpVerification } from \"./form-otp-verification\";\nimport { FormPhoneNumberInput } from \"./form-phone-number-input\";\nimport { FormPredictiveTextInput } from \"./form-predictive-text-input\";\nimport { FormRangeSelect } from \"./form-range-select\";\nimport { FormRangeSlider } from \"./form-range-slider\";\nimport { FormSelect } from \"./form-select\";\nimport { FormSelectHistogram } from \"./form-select-histogram\";\nimport { FormSlider } from \"./form-slider\";\nimport { FormTextarea } from \"./form-textarea\";\nimport { FormTimeRangePicker } from \"./form-time-range-picker\";\nimport { FormTimepicker } from \"./form-timepicker\";\nimport { FormUnitNumberInput } from \"./form-unit-number-input\";\n\nexport * from \"./types\";\n\n/**\n * A collection of form field components that each combine a label, input\n * control, and inline error message with consistent ARIA wiring.\n *\n * Use `Form.*` sub-components to build accessible forms. Use `Form.CustomField` to wrap any\n * bespoke input element in the same layout.\n *\n * Sub-components:\n * - `Form.CustomField` — layout shell for wrapping custom input elements.\n * - `Form.DateInput` — single date picker.\n * - `Form.DateRangeInput` — date range picker.\n * - `Form.ESignature` — e-signature capture field.\n * - `Form.HistogramSlider` — range slider with histogram overlay.\n * - `Form.Input` — single-line text input field.\n * - `Form.InputGroup` — grouped inputs with shared label and error state.\n * - `Form.Label` — standalone label for use outside a `Form.*` field.\n * - `Form.MaskedInput` — text input with a character-level input mask.\n * - `Form.MultiSelect` — multi-value dropdown select.\n * - `Form.NestedMultiSelect` — hierarchical multi-value select.\n * - `Form.NestedSelect` — hierarchical single-value select.\n * - `Form.OtpVerification` — OTP send-and-verify flow.\n * - `Form.PhoneNumberInput` — phone number input with country code selection.\n * - `Form.PredictiveTextInput` — text input with predictive suggestions.\n * - `Form.RangeSelect` — dual-value range dropdown select.\n * - `Form.RangeSlider` — dual-handle range slider.\n * - `Form.Select` — single-value dropdown select.\n * - `Form.SelectHistogram` — select control with histogram.\n * - `Form.Slider` — single-value range slider.\n * - `Form.Textarea` — multi-line text area.\n * - `Form.Timepicker` — time picker.\n * - `Form.TimeRangePicker` — time range picker.\n * - `Form.UnitNumberInput` — structured unit number input.\n */\nexport const Form = {\n /** Layout shell that wraps any custom input element with label, subtitle, and error message. */\n CustomField: FormCustomField,\n\n /** Single date picker with form layout. */\n DateInput: FormDateInput,\n\n /** Date range picker with form layout. */\n DateRangeInput: FormDateRangeInput,\n\n /** E-signature capture field with form layout. */\n ESignature: FormESignature,\n\n /** Range slider with histogram overlay and form layout. */\n HistogramSlider: FormHistogramSlider,\n\n /** Single-line text input field with form layout. */\n Input: FormInput,\n\n /** Grouped inputs with shared label, error state, and form layout. */\n InputGroup: FormInputGroup,\n\n /** Standalone label element for use outside a `Form.*` field with optional subtitle and addon icon. */\n Label: FormLabel,\n\n /** Text input with a character-level input mask and form layout. */\n MaskedInput: FormMaskedInput,\n\n /** Multi-value dropdown select with form layout. */\n MultiSelect: FormMultiSelect,\n\n /** Hierarchical multi-value select with form layout. */\n NestedMultiSelect: FormNestedMultiSelect,\n\n /** Hierarchical single-value select with form layout. */\n NestedSelect: FormNestedSelect,\n\n /** OTP send-and-verify flow with form layout. */\n OtpVerification: FormOtpVerification,\n\n /** Phone number input with country code selection and form layout. */\n PhoneNumberInput: FormPhoneNumberInput,\n\n /** Text input with predictive suggestions and form layout. */\n PredictiveTextInput: FormPredictiveTextInput,\n\n /** Dual-value range dropdown select with form layout. */\n RangeSelect: FormRangeSelect,\n\n /** Dual-handle range slider with form layout. */\n RangeSlider: FormRangeSlider,\n\n /** Single-value dropdown select with form layout. */\n Select: FormSelect,\n\n /** Select control with histogram and form layout. */\n SelectHistogram: FormSelectHistogram,\n\n /** Single-value range slider with form layout. */\n Slider: FormSlider,\n\n /** Multi-line text area with form layout. */\n Textarea: FormTextarea,\n\n /** Time picker with form layout. */\n Timepicker: FormTimepicker,\n\n /** Time range picker with form layout. */\n TimeRangePicker: FormTimeRangePicker,\n\n /** Structured unit number input with form layout. */\n UnitNumberInput: FormUnitNumberInput,\n};\n"],"names":["Form","CustomField","FormCustomField","DateInput","FormDateInput","DateRangeInput","FormDateRangeInput","ESignature","FormESignature","HistogramSlider","FormHistogramSlider","Input","FormInput","InputGroup","FormInputGroup","Label","FormLabel","MaskedInput","FormMaskedInput","MultiSelect","FormMultiSelect","NestedMultiSelect","FormNestedMultiSelect","NestedSelect","FormNestedSelect","OtpVerification","FormOtpVerification","PhoneNumberInput","FormPhoneNumberInput","PredictiveTextInput","FormPredictiveTextInput","RangeSelect","FormRangeSelect","RangeSlider","FormRangeSlider","Select","FormSelect","SelectHistogram","FormSelectHistogram","Slider","FormSlider","Textarea","FormTextarea","Timepicker","FormTimepicker","TimeRangePicker","FormTimeRangePicker","UnitNumberInput","FormUnitNumberInput"],"mappings":"22CA4DO,MAAMA,EAAO,CAEhBC,YAAaC,EAGbC,UAAWC,EAGXC,eAAgBC,EAGhBC,WAAYC,EAGZC,gBAAiBC,EAGjBC,MAAOC,EAGPC,WAAYC,EAGZC,MAAOC,EAGPC,YAAaC,EAGbC,YAAaC,EAGbC,kBAAmBC,EAGnBC,aAAcC,EAGdC,gBAAiBC,EAGjBC,iBAAkBC,EAGlBC,oBAAqBC,EAGrBC,YAAaC,EAGbC,YAAaC,EAGbC,OAAQC,EAGRC,gBAAiBC,EAGjBC,OAAQC,EAGRC,SAAUC,EAGVC,WAAYC,EAGZC,gBAAiBC,EAGjBC,gBAAiBC"}
|
package/form/types.d.ts
CHANGED
|
@@ -20,79 +20,228 @@ import type { SelectHistogramProps } from "../select-histogram";
|
|
|
20
20
|
import type { TimeRangePickerProps } from "../time-range-picker/types";
|
|
21
21
|
import type { TimepickerProps } from "../timepicker/types";
|
|
22
22
|
import type { UnitNumberInputProps } from "../unit-number/types";
|
|
23
|
+
/**
|
|
24
|
+
* Display mechanism for the form label addon.
|
|
25
|
+
*
|
|
26
|
+
* - `"popover"` renders an icon that triggers a popover.
|
|
27
|
+
* - `"tooltip"` is currently unsupported.
|
|
28
|
+
*/
|
|
23
29
|
export type FormLabelAddonType = "tooltip" | "popover";
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"data-testid"?: string | undefined;
|
|
28
|
-
}
|
|
30
|
+
/**
|
|
31
|
+
* Configuration for an informational icon rendered inline with a form label.
|
|
32
|
+
*/
|
|
29
33
|
export interface FormLabelAddonProps {
|
|
34
|
+
/** Text or element displayed inside the popover overlay. */
|
|
30
35
|
content: string | JSX.Element;
|
|
36
|
+
/**
|
|
37
|
+
* Display mechanism for the addon.
|
|
38
|
+
* Omit to render no addon icon.
|
|
39
|
+
*/
|
|
31
40
|
type?: FormLabelAddonType | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Custom icon element.
|
|
43
|
+
*
|
|
44
|
+
* @default <ICircleFillIcon />
|
|
45
|
+
*/
|
|
32
46
|
icon?: JSX.Element | undefined;
|
|
33
47
|
id?: string | undefined;
|
|
48
|
+
/** Stacking order of the popover overlay. */
|
|
34
49
|
zIndex?: number | undefined;
|
|
35
50
|
"data-testid"?: string | undefined;
|
|
36
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Props for a form field label or `Form.Label` component.
|
|
54
|
+
*/
|
|
37
55
|
export interface FormLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
|
|
56
|
+
/** Informational icon and popover rendered inline with the label text. */
|
|
38
57
|
addon?: FormLabelAddonProps | undefined;
|
|
58
|
+
/** Supporting description rendered below the label. */
|
|
39
59
|
subtitle?: string | JSX.Element | undefined;
|
|
40
60
|
"data-testid"?: string | undefined;
|
|
41
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Controls how a form field's outer container is rendered.
|
|
64
|
+
*
|
|
65
|
+
* - `"flex"` — plain `div` with no column constraints.
|
|
66
|
+
* - `"grid"` — `ColDiv` that accepts responsive column span props from `ColProps`.
|
|
67
|
+
*/
|
|
42
68
|
export type FormElementLayoutType = "flex" | "grid";
|
|
69
|
+
/**
|
|
70
|
+
* Common props shared by all `Form.*` field components.
|
|
71
|
+
*/
|
|
43
72
|
export interface BaseFormElementProps extends ColProps {
|
|
73
|
+
/**
|
|
74
|
+
* Label rendered above the input. Accepts a plain string or a
|
|
75
|
+
* `FormLabelProps` object to provide additional configuration.
|
|
76
|
+
*/
|
|
44
77
|
label?: FormLabelProps | string | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Inline error text rendered below the input.
|
|
80
|
+
*/
|
|
45
81
|
errorMessage?: string | React.ReactNode | undefined;
|
|
46
82
|
"data-testid"?: string | undefined;
|
|
47
83
|
"data-error-testid"?: string | undefined;
|
|
48
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* Controls whether the container uses flex layout or a responsive column grid.
|
|
86
|
+
*/
|
|
49
87
|
layoutType?: FormElementLayoutType | undefined;
|
|
50
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Props for the `FormWrapper` layout container.
|
|
91
|
+
*/
|
|
51
92
|
export interface FormWrapperProps extends BaseFormElementProps {
|
|
52
93
|
children: JSX.Element | JSX.Element[];
|
|
94
|
+
/**
|
|
95
|
+
* Base ID used to derive ARIA label, subtitle, and error-message element
|
|
96
|
+
* IDs. A generated ID is used when omitted.
|
|
97
|
+
*/
|
|
53
98
|
id?: string | undefined;
|
|
54
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Props for `Form.Input`, combining text input props with the shared form
|
|
102
|
+
* field layout.
|
|
103
|
+
*/
|
|
55
104
|
export interface FormInputProps extends InputPartialProps, BaseFormElementProps {
|
|
56
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Props for `Form.InputGroup`, combining input group props with the shared
|
|
108
|
+
* form field layout.
|
|
109
|
+
*
|
|
110
|
+
* `T` is the option item type. `V` is the selected value type.
|
|
111
|
+
*/
|
|
57
112
|
export interface FormInputGroupProps<T, V> extends InputGroupPartialProps<T, V>, BaseFormElementProps {
|
|
58
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Props for `Form.MaskedInput`, combining masked input props with the shared
|
|
116
|
+
* form field layout.
|
|
117
|
+
*/
|
|
59
118
|
export interface FormMaskedInputProps extends MaskedInputPartialProps, BaseFormElementProps {
|
|
60
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Props for `Form.Textarea`, combining textarea props with the shared form
|
|
122
|
+
* field layout.
|
|
123
|
+
*/
|
|
61
124
|
export interface FormTextareaProps extends TextareaPartialProps, BaseFormElementProps {
|
|
62
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Props for `Form.CustomField`, which wraps any custom input element with a
|
|
128
|
+
* shared label, subtitle, and inline error message layout.
|
|
129
|
+
*/
|
|
63
130
|
export interface FormCustomFieldProps extends FormWrapperProps, BaseFormElementProps {
|
|
64
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Props for `Form.Select`, combining single-select input props with the shared
|
|
134
|
+
* form field layout.
|
|
135
|
+
*
|
|
136
|
+
* `T` is the option item type. `V` is the selected value type.
|
|
137
|
+
*/
|
|
65
138
|
export interface FormInputSelectProps<T, V> extends InputSelectPartialProps<T, V>, BaseFormElementProps {
|
|
66
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Props for `Form.RangeSelect`, combining range-select input props with the
|
|
142
|
+
* shared form field layout.
|
|
143
|
+
*
|
|
144
|
+
* `T` is the option item type. `V` is the selected value type.
|
|
145
|
+
*/
|
|
67
146
|
export interface FormInputRangeSelectProps<T, V> extends InputRangeSelectPartialProps<T, V>, BaseFormElementProps {
|
|
68
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Props for `Form.MultiSelect`, combining multi-select input props with the
|
|
150
|
+
* shared form field layout.
|
|
151
|
+
*
|
|
152
|
+
* `T` is the option item type. `V` is the selected value type.
|
|
153
|
+
*/
|
|
69
154
|
export interface FormMultiSelectProps<T, V> extends InputMultiSelectPartialProps<T, V>, BaseFormElementProps {
|
|
70
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Props for `Form.NestedSelect`, combining nested single-select input props
|
|
158
|
+
* with the shared form field layout.
|
|
159
|
+
*
|
|
160
|
+
* `V1`, `V2`, and `V3` are the value types for the first, second, and third
|
|
161
|
+
* nesting levels respectively.
|
|
162
|
+
*/
|
|
71
163
|
export interface FormNestedSelectProps<V1, V2, V3> extends InputNestedSelectPartialProps<V1, V2, V3>, BaseFormElementProps {
|
|
72
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Props for `Form.NestedMultiSelect`, combining nested multi-select input
|
|
167
|
+
* props with the shared form field layout.
|
|
168
|
+
*
|
|
169
|
+
* `V1`, `V2`, and `V3` are the value types for the first, second, and third
|
|
170
|
+
* nesting levels respectively.
|
|
171
|
+
*/
|
|
73
172
|
export interface FormNestedMultiSelectProps<V1, V2, V3> extends InputNestedMultiSelectPartialProps<V1, V2, V3>, BaseFormElementProps {
|
|
74
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Props for `Form.DateInput`, combining date input props with the shared form
|
|
176
|
+
* field layout.
|
|
177
|
+
*/
|
|
75
178
|
export interface FormDateInputProps extends DateInputProps, BaseFormElementProps {
|
|
76
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Props for `Form.DateRangeInput`, combining date-range input props with the
|
|
182
|
+
* shared form field layout.
|
|
183
|
+
*/
|
|
77
184
|
export interface FormDateRangeInputProps extends DateRangeInputProps, BaseFormElementProps {
|
|
78
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Props for `Form.Timepicker`, combining time picker props with the shared
|
|
188
|
+
* form field layout.
|
|
189
|
+
*/
|
|
79
190
|
export interface FormTimepickerProps extends TimepickerProps, BaseFormElementProps {
|
|
80
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Props for `Form.UnitNumberInput`, combining unit-number input props with the
|
|
194
|
+
* shared form field layout.
|
|
195
|
+
*/
|
|
81
196
|
export interface FormUnitNumberInputProps extends UnitNumberInputProps, BaseFormElementProps {
|
|
82
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Props for `Form.PhoneNumberInput`, combining phone-number input props with
|
|
200
|
+
* the shared form field layout.
|
|
201
|
+
*/
|
|
83
202
|
export interface FormPhoneNumberInputProps extends PhoneNumberInputProps, BaseFormElementProps {
|
|
84
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Props for `Form.TimeRangePicker`, combining time-range picker props with the
|
|
206
|
+
* shared form field layout.
|
|
207
|
+
*/
|
|
85
208
|
export interface FormTimeRangePickerProps extends TimeRangePickerProps, BaseFormElementProps {
|
|
86
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Props for `Form.PredictiveTextInput`, combining predictive text input props
|
|
212
|
+
* with the shared form field layout.
|
|
213
|
+
*
|
|
214
|
+
* `T` is the suggestion item type. `V` is the selected value type.
|
|
215
|
+
*/
|
|
87
216
|
export interface FormPredictiveTextInputProps<T, V> extends PredictiveTextInputProps<T, V>, BaseFormElementProps {
|
|
88
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Props for `Form.Slider`, combining single-value slider props with the shared
|
|
220
|
+
* form field layout.
|
|
221
|
+
*/
|
|
89
222
|
export interface FormSliderProps extends InputSliderProps, BaseFormElementProps {
|
|
90
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Props for `Form.RangeSlider`, combining range slider props with the shared
|
|
226
|
+
* form field layout.
|
|
227
|
+
*/
|
|
91
228
|
export interface FormRangeSliderProps extends InputRangeSliderProps, BaseFormElementProps {
|
|
92
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Props for `Form.HistogramSlider`, combining histogram slider props with the
|
|
232
|
+
* shared form field layout.
|
|
233
|
+
*/
|
|
93
234
|
export interface FormHistogramSliderProps extends HistogramSliderProps, BaseFormElementProps {
|
|
94
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Props for `Form.ESignature`, combining e-signature props with the shared
|
|
238
|
+
* form field layout.
|
|
239
|
+
*/
|
|
95
240
|
export interface FormESignatureProps extends EsignatureProps, BaseFormElementProps {
|
|
96
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Props for `Form.SelectHistogram`, combining select-histogram props with the
|
|
244
|
+
* shared form field layout.
|
|
245
|
+
*/
|
|
97
246
|
export interface FormSelectHistogramProps extends SelectHistogramProps, BaseFormElementProps {
|
|
98
247
|
}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import type { FullscreenImageCarouselProps, FullscreenImageCarouselRef } from "./types";
|
|
2
2
|
export declare const Component: ({ items, initialActiveItemIndex, hideThumbnail, hideNavigation, hideCounter, hideMagnifier, onDelete, onClose, insets, show, ...otherProps }: FullscreenImageCarouselProps, ref: React.Ref<FullscreenImageCarouselRef>) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
/**
|
|
4
|
+
* A fullscreen modal carousel for browsing images and custom media items.
|
|
5
|
+
*
|
|
6
|
+
* Use to present a collection of images or custom content in an overlay with
|
|
7
|
+
* navigation controls, zoom support, and an optional thumbnail strip.
|
|
8
|
+
* The top info bar is rendered only when at least one item provides some file metadata.
|
|
9
|
+
*/
|
|
3
10
|
export declare const FullscreenImageCarousel: (props: FullscreenImageCarouselProps & import("react").RefAttributes<FullscreenImageCarouselRef>) => React.ReactElement | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../_virtual/_tslib.js";import{jsx as i,jsxs as t,Fragment as l}from"react/jsx-runtime";import{ChevronLeftIcon as r,ChevronRightIcon as o,MagnifierPlusIcon as
|
|
1
|
+
import{__rest as e}from"../_virtual/_tslib.js";import{jsx as i,jsxs as t,Fragment as l}from"react/jsx-runtime";import{ChevronLeftIcon as r,ChevronRightIcon as o,MagnifierPlusIcon as a,MagnifierMinusIcon as n,CrossIcon as s}from"@lifesg/react-icons";import{BinIcon as d}from"@lifesg/react-icons/bin";import{clearAnnouncer as c,announce as m}from"@react-aria/live-announcer";import u from"clsx";import{forwardRef as h,useState as v,useRef as p,useMemo as f,useCallback as g,useImperativeHandle as b,useEffect as N}from"react";import{TransformWrapper as j,TransformComponent as x}from"react-zoom-pan-pinch";import{ModalV2 as k}from"../modal-v2/modal-v2.js";import{ClickableIcon as y}from"../shared/clickable-icon/clickable-icon.js";import{useStateCallback as w}from"../shared/hooks/use-state-callback.js";import{ImagePlaceholder as C}from"../shared/image-placeholder/image-placeholder.js";import"../theme/theme-provider/index.js";import{formatUnitValue as I}from"../theme/utils/css-variable.js";import"../theme/theme-provider/context.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import{useApplyStyle as T}from"../theme/utils/use-apply-styles.js";import"../theme/utils/use-media-query.js";import{Typography as $}from"../typography/index.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import"../util/simple-id-generator.js";import"../util/string-helper.js";import{useEventListener as B}from"../util/use-event-listener.js";import{tokens as S,carouselModalContent as A,imageGalleryContainer as L,imageGalleryWrapper as D,imageGallerySwipe as M,iconButton as z,arrowButton as X,arrowButtonLeft as Z,arrowButtonRight as O,boxChip as R,chip as W,topActionButtons as q,iconButtonError as E,imageGallerySlides as P,imageGallerySlide as V,focusableImageRegion as _,slidePlaceholderImage as F,slideImage as H,thumbnailContainer as G,thumbnailWrapper as J,thumbnailItemContainer as K,thumbnailItem as Q,thumbnailImage as U,fileInfoFileName as Y,fileInfoFileSize as ee,fileInfoTextWrapper as ie,fileInfoTextWrapperCentered as te}from"./fullscreen-image-carousel.styles.js";import{StatefulImage as le}from"./stateful-image.js";const re=e=>!!e&&"custom"===e.type,oe=(h,oe)=>{var ae,{items:ne,initialActiveItemIndex:se,hideThumbnail:de=!1,hideNavigation:ce=!1,hideCounter:me=!1,hideMagnifier:ue=!1,onDelete:he,onClose:ve,insets:pe,show:fe}=h,ge=e(h,["items","initialActiveItemIndex","hideThumbnail","hideNavigation","hideCounter","hideMagnifier","onDelete","onClose","insets","show"]);const[be,Ne]=w(null!=se?se:0),[je,xe]=v({}),[ke,ye]=v(1),[we,Ce]=v(),[Ie,Te]=v(),$e=p(null),Be=p([]),Se=p([]),Ae=p(null),Le=p(null),De=p(null),Me=p(null),ze=p(null),Xe=we&&Ie?we-Ie:0,Ze=ne[be],Oe=ne.some((e=>{var i;return re(e)&&!!(null===(i=e.itemLabel)||void 0===i?void 0:i.trim())})),Re=Oe?"item":"image",We=f((()=>ne.some((e=>{var i,t;return(null===(i=e.fileName)||void 0===i?void 0:i.trim())||(null===(t=e.fileSize)||void 0===t?void 0:t.trim())}))),[ne]);T(Le,{[S.topActionButtons.insetTop]:I(null==pe?void 0:pe.top,"px"),[S.topActionButtons.insetLeft]:I(null==pe?void 0:pe.left,"px"),[S.topActionButtons.insetRight]:I(null==pe?void 0:pe.right,"px")}),T(De,{[S.arrowButton.insetLeft]:I(null==pe?void 0:pe.left,"px")}),T(Me,{[S.arrowButton.insetRight]:I(null==pe?void 0:pe.right,"px")}),T(ze,{[S.thumbnailContainer.insetBottom]:I(null==pe?void 0:pe.bottom,"px")});const qe=g((e=>{var i,t;const l=ne[e],r=Oe?"Item":"Image",o=re(l)?(null===(i=l.itemLabel)||void 0===i?void 0:i.trim())||"":(null===(t=l.alt)||void 0===t?void 0:t.trim())||"",a=`${r} ${e+1} of ${ne.length}.`;return o?`${o}. ${a}`:a}),[ne,Oe]);b(oe,(()=>({currentItemIndex:be,setCurrentItem:He,goToPrevItem:_e,goToNextItem:Fe}))),B("keydown",(function(e){"ArrowRight"===e.key?Fe():"ArrowLeft"===e.key?_e():"Escape"===e.key&&(null==ve||ve())}),"document"),N((()=>{var e;fe&&(null===(e=Ae.current)||void 0===e||e.focus())}),[fe]),N((()=>{0!==ne.length?be>ne.length-1&&Ne(ne.length-1):Ne(0)}),[be,ne.length,Ne]),N((()=>{var e,i;null===(i=null===(e=Be.current)||void 0===e?void 0:e[be])||void 0===i||i.scrollIntoView({behavior:"smooth",inline:"center"}),ye(1)}),[be]);const Ee=e=>{ye(e.state.scale)};const Pe=({src:e,height:i,width:t})=>{xe((l=>Object.assign(Object.assign({},l),{[e]:{height:i,width:t}})))},Ve=()=>{if(!Ze||re(Ze))return;const e=je[Ze.src];if($e.current&&e){const{clientHeight:i,clientWidth:t}=$e.current,{width:l,height:r}=e,o=r/l<i/t;return l<t&&r<i?o?t/l:i/r:o?i/(r/(l/t)):t/(l/(r/i))}},_e=()=>{var e,i;null===(i=null===(e=Se.current)||void 0===e?void 0:e[be])||void 0===i||i.resetTransform(),Ne((e=>0===e?ne.length-1:e-1),(e=>{c("polite"),m(qe(e),"polite")}))},Fe=()=>{var e,i;null===(i=null===(e=Se.current)||void 0===e?void 0:e[be])||void 0===i||i.resetTransform(),Ne((e=>e===ne.length-1?0:e+1),(e=>{c("polite"),m(qe(e),"polite")}))},He=e=>{var i,t;null===(t=null===(i=Se.current)||void 0===i?void 0:i[be])||void 0===t||t.resetTransform(),Ne(e)};return i(k,Object.assign({},ge,{"data-testid":"image-carousel-modal","aria-label":Oe?"Carousel":"Image carousel",show:fe,disableInitialFocus:!0,children:t("div",{className:A,children:[t("div",{className:L,children:[t("div",{className:D,children:[i("div",{className:M,ref:$e,onTouchStart:e=>{ke<=1&&Ce(e.touches[0].clientX)},onTouchMove:e=>{!we||ke>1||Te(e.touches[0].clientX)},onTouchEnd:()=>{$e.current&&(Math.abs(Xe)>$e.current.offsetWidth/3&&(Xe>0?Fe():_e()),Ce(void 0),Te(void 0))},children:i("div",{className:P,style:{transform:`translateX(calc(${100*-be}% - ${Xe}px))`},children:ne.map(((e,t)=>{const l=t===be,r=Math.abs(t-be)<=1||0===be&&t===ne.length-1||be===ne.length-1&&0===t;return i("div",{className:V,"data-testid":"slide-item",children:i("div",{className:_,ref:l?Ae:null,tabIndex:l?0:-1,children:re(e)?r?e.renderContent():i(C,{className:F}):i(j,{ref:e=>Se.current[t]=e,panning:{disabled:ke<=1},initialScale:1,onZoom:Ee,onZoomStop:Ee,onWheel:Ee,children:i(x,{children:i(le,{className:H,src:e.src,alt:qe(t),placeholder:i(C,{className:F}),fit:"scale-down",retrieveImageDimension:!0,setDimension:Pe})})})})},t)}))})}),!ce&&t(l,{children:[i(y,{className:u(z,X,Z),ref:De,"aria-label":`Previous ${Re}`,"data-testid":"prev-btn",onClick:_e,children:i(r,{"aria-hidden":!0})}),i(y,{className:u(z,X,O),ref:Me,"aria-label":`Next ${Re}`,"data-testid":"forward-btn",onClick:Fe,children:i(o,{"aria-hidden":!0})})]}),!me&&i("div",{className:R,"aria-hidden":"true",children:i($.BodyXS,{className:W,weight:"semibold","data-testid":"carousel-counter",children:`${be+1}/${ne.length}`})})]}),!de&&i("div",{className:G,ref:ze,"aria-hidden":"true","data-testid":"thumbnail-container",children:i("div",{className:J,children:ne.map(((e,t)=>{var l;const r=re(e)?e.thumbnailSrc:null!==(l=e.thumbnailSrc)&&void 0!==l?l:e.src;return i("div",{className:K,children:i("div",{className:Q,"data-active":t===be,"data-testid":"thumbnail-item",onClick:()=>He(t),ref:e=>Be.current[t]=e,children:r?i(le,{className:U,src:r,alt:`Thumbnail ${t+1}`,fit:"cover"}):i(C,{className:F})})},t)}))})})]}),t("div",{className:q,ref:Le,"data-has-file-info":We,children:[We&&(()=>{const{fileName:e,fileSize:l}=null!=Ze?Ze:{},r=null==e?void 0:e.trim(),o=null==l?void 0:l.trim();return t("div",{className:u(ie,!o&&te),"aria-live":"polite","aria-atomic":"true","data-testid":"file-info-bar",children:[r&&i($.BodyBL,{className:Y,weight:"semibold","data-testid":"file-info-name",children:r}),o&&i($.BodyMD,{className:ee,"data-testid":"file-info-size",children:o})]})})(),!ue&&!re(Ze)&&i(y,{className:z,"aria-label":1===ke?"Zoom in":"Zoom out",onClick:()=>{var e,i,t,l;if(1===ke){const t=Ve();null===(i=null===(e=Se.current)||void 0===e?void 0:e[be])||void 0===i||i.centerView(t),ye(null!=t?t:1)}else ye(1),null===(l=null===(t=Se.current)||void 0===t?void 0:t[be])||void 0===l||l.resetTransform()},children:i(1===ke?a:n,{"aria-hidden":!0})}),he&&i(y,{className:u(z,E),"aria-label":`Delete ${re(Ze)&&(null===(ae=Ze.itemLabel)||void 0===ae?void 0:ae.trim())||"image"}`,"data-testid":"delete-btn",onClick:()=>{Ze&&he&&he(Ze,be)},children:i(d,{"aria-hidden":!0})}),i(y,{className:z,"aria-label":Oe?"Close carousel":"Close image carousel",onClick:ve,children:i(s,{"aria-hidden":!0})})]})]})}))},ae=h(oe);export{oe as Component,ae as FullscreenImageCarousel};
|
|
2
2
|
//# sourceMappingURL=fullscreen-image-carousel.js.map
|