@yamada-ui/react 2.0.10-dev-20260301101758 → 2.1.0-dev-20260302125757
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/cjs/components/accordion/accordion.cjs +8 -9
- package/dist/cjs/components/accordion/accordion.cjs.map +1 -1
- package/dist/cjs/components/accordion/accordion.style.cjs +11 -37
- package/dist/cjs/components/accordion/accordion.style.cjs.map +1 -1
- package/dist/cjs/components/accordion/use-accordion.cjs +7 -2
- package/dist/cjs/components/accordion/use-accordion.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete.cjs +2 -2
- package/dist/cjs/components/button/button-group.cjs +1 -1
- package/dist/cjs/components/chart/area-chart.cjs +41 -0
- package/dist/cjs/components/chart/area-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/area-chart.namespace.cjs +31 -0
- package/dist/cjs/components/chart/area-chart.namespace.cjs.map +1 -0
- package/dist/cjs/components/chart/area-chart.style.cjs +12 -0
- package/dist/cjs/components/chart/area-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/bar-chart.cjs +41 -0
- package/dist/cjs/components/chart/bar-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/bar-chart.namespace.cjs +30 -0
- package/dist/cjs/components/chart/bar-chart.namespace.cjs.map +1 -0
- package/dist/cjs/components/chart/bar-chart.style.cjs +14 -0
- package/dist/cjs/components/chart/bar-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/cartesian-chart.cjs +637 -0
- package/dist/cjs/components/chart/cartesian-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/cartesian-chart.style.cjs +123 -0
- package/dist/cjs/components/chart/cartesian-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/chart.cjs +233 -0
- package/dist/cjs/components/chart/chart.cjs.map +1 -0
- package/dist/cjs/components/chart/chart.style.cjs +119 -0
- package/dist/cjs/components/chart/chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/donut-chart.cjs +45 -0
- package/dist/cjs/components/chart/donut-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/donut-chart.namespace.cjs +27 -0
- package/dist/cjs/components/chart/donut-chart.namespace.cjs.map +1 -0
- package/dist/cjs/components/chart/donut-chart.style.cjs +10 -0
- package/dist/cjs/components/chart/donut-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/index.cjs +134 -0
- package/dist/cjs/components/chart/line-chart.cjs +41 -0
- package/dist/cjs/components/chart/line-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/line-chart.namespace.cjs +30 -0
- package/dist/cjs/components/chart/line-chart.namespace.cjs.map +1 -0
- package/dist/cjs/components/chart/line-chart.style.cjs +12 -0
- package/dist/cjs/components/chart/line-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/pie-chart.cjs +45 -0
- package/dist/cjs/components/chart/pie-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/pie-chart.namespace.cjs +27 -0
- package/dist/cjs/components/chart/pie-chart.namespace.cjs.map +1 -0
- package/dist/cjs/components/chart/pie-chart.style.cjs +12 -0
- package/dist/cjs/components/chart/pie-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/polar-chart.cjs +659 -0
- package/dist/cjs/components/chart/polar-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/polar-chart.style.cjs +150 -0
- package/dist/cjs/components/chart/polar-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/radar-chart.cjs +44 -0
- package/dist/cjs/components/chart/radar-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/radar-chart.namespace.cjs +30 -0
- package/dist/cjs/components/chart/radar-chart.namespace.cjs.map +1 -0
- package/dist/cjs/components/chart/radar-chart.style.cjs +12 -0
- package/dist/cjs/components/chart/radar-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/radial-chart.cjs +57 -0
- package/dist/cjs/components/chart/radial-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/radial-chart.namespace.cjs +30 -0
- package/dist/cjs/components/chart/radial-chart.namespace.cjs.map +1 -0
- package/dist/cjs/components/chart/radial-chart.style.cjs +15 -0
- package/dist/cjs/components/chart/radial-chart.style.cjs.map +1 -0
- package/dist/cjs/components/chart/use-area-chart.cjs +41 -0
- package/dist/cjs/components/chart/use-area-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-bar-chart.cjs +41 -0
- package/dist/cjs/components/chart/use-bar-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-cartesian-chart.cjs +592 -0
- package/dist/cjs/components/chart/use-cartesian-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-chart.cjs +253 -0
- package/dist/cjs/components/chart/use-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-line-chart.cjs +41 -0
- package/dist/cjs/components/chart/use-line-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-pie-chart.cjs +43 -0
- package/dist/cjs/components/chart/use-pie-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-polar-chart.cjs +716 -0
- package/dist/cjs/components/chart/use-polar-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-radar-chart.cjs +45 -0
- package/dist/cjs/components/chart/use-radar-chart.cjs.map +1 -0
- package/dist/cjs/components/chart/use-radial-chart.cjs +63 -0
- package/dist/cjs/components/chart/use-radial-chart.cjs.map +1 -0
- package/dist/cjs/components/checkbox/checkbox.style.cjs +18 -0
- package/dist/cjs/components/checkbox/checkbox.style.cjs.map +1 -1
- package/dist/cjs/components/checkbox-card/checkbox-card.style.cjs +18 -0
- package/dist/cjs/components/checkbox-card/checkbox-card.style.cjs.map +1 -1
- package/dist/cjs/components/color-picker/color-picker.cjs +2 -2
- package/dist/cjs/components/date-picker/date-picker.cjs +2 -2
- package/dist/cjs/components/dropzone/dropzone.style.cjs +18 -0
- package/dist/cjs/components/dropzone/dropzone.style.cjs.map +1 -1
- package/dist/cjs/components/editable/editable.style.cjs +36 -0
- package/dist/cjs/components/editable/editable.style.cjs.map +1 -1
- package/dist/cjs/components/field/field.cjs +28 -15
- package/dist/cjs/components/field/field.cjs.map +1 -1
- package/dist/cjs/components/field/use-field-props.cjs +12 -1
- package/dist/cjs/components/field/use-field-props.cjs.map +1 -1
- package/dist/cjs/components/fieldset/fieldset.cjs +12 -2
- package/dist/cjs/components/fieldset/fieldset.cjs.map +1 -1
- package/dist/cjs/components/fieldset/fieldset.style.cjs +1 -1
- package/dist/cjs/components/fieldset/fieldset.style.cjs.map +1 -1
- package/dist/cjs/components/file-button/file-button.cjs +2 -2
- package/dist/cjs/components/file-button/use-file-button.cjs +2 -5
- package/dist/cjs/components/file-button/use-file-button.cjs.map +1 -1
- package/dist/cjs/components/file-input/use-file-input.cjs +7 -2
- package/dist/cjs/components/file-input/use-file-input.cjs.map +1 -1
- package/dist/cjs/components/form/form.cjs +136 -0
- package/dist/cjs/components/form/form.cjs.map +1 -0
- package/dist/cjs/components/form/form.style.cjs +108 -0
- package/dist/cjs/components/form/form.style.cjs.map +1 -0
- package/dist/cjs/components/form/index.cjs +23 -0
- package/dist/cjs/components/form/namespace.cjs +25 -0
- package/dist/cjs/components/form/namespace.cjs.map +1 -0
- package/dist/cjs/components/input/input-group.cjs +2 -2
- package/dist/cjs/components/input/input.style.cjs +36 -0
- package/dist/cjs/components/input/input.style.cjs.map +1 -1
- package/dist/cjs/components/loading/oval.cjs +2 -3
- package/dist/cjs/components/loading/oval.cjs.map +1 -1
- package/dist/cjs/components/modal/modal.cjs +2 -2
- package/dist/cjs/components/native-accordion/index.cjs +23 -0
- package/dist/cjs/components/native-accordion/namespace.cjs +22 -0
- package/dist/cjs/components/native-accordion/namespace.cjs.map +1 -0
- package/dist/cjs/components/native-accordion/native-accordion.cjs +102 -0
- package/dist/cjs/components/native-accordion/native-accordion.cjs.map +1 -0
- package/dist/cjs/components/native-accordion/native-accordion.style.cjs +69 -0
- package/dist/cjs/components/native-accordion/native-accordion.style.cjs.map +1 -0
- package/dist/cjs/components/native-accordion/use-native-accordion.cjs +61 -0
- package/dist/cjs/components/native-accordion/use-native-accordion.cjs.map +1 -0
- package/dist/cjs/components/native-popover/index.cjs +23 -0
- package/dist/cjs/components/native-popover/namespace.cjs +25 -0
- package/dist/cjs/components/native-popover/namespace.cjs.map +1 -0
- package/dist/cjs/components/native-popover/native-popover.cjs +99 -0
- package/dist/cjs/components/native-popover/native-popover.cjs.map +1 -0
- package/dist/cjs/components/native-popover/native-popover.style.cjs +67 -0
- package/dist/cjs/components/native-popover/native-popover.style.cjs.map +1 -0
- package/dist/cjs/components/native-popover/use-native-popover.cjs +119 -0
- package/dist/cjs/components/native-popover/use-native-popover.cjs.map +1 -0
- package/dist/cjs/components/native-select/native-select.cjs +2 -2
- package/dist/cjs/components/number-input/number-input.cjs +2 -2
- package/dist/cjs/components/number-input/number-input.style.cjs +2 -2
- package/dist/cjs/components/password-input/password-input.cjs +2 -2
- package/dist/cjs/components/password-input/password-input.style.cjs +2 -2
- package/dist/cjs/components/pin-input/pin-input.cjs +2 -2
- package/dist/cjs/components/popover/index.cjs +1 -0
- package/dist/cjs/components/popover/namespace.cjs +1 -0
- package/dist/cjs/components/popover/namespace.cjs.map +1 -1
- package/dist/cjs/components/popover/popover.cjs +12 -4
- package/dist/cjs/components/popover/popover.cjs.map +1 -1
- package/dist/cjs/components/popover/popover.style.cjs +4 -54
- package/dist/cjs/components/popover/popover.style.cjs.map +1 -1
- package/dist/cjs/components/popover/use-popover.cjs +16 -9
- package/dist/cjs/components/popover/use-popover.cjs.map +1 -1
- package/dist/cjs/components/qr-code/index.cjs +19 -0
- package/dist/cjs/components/qr-code/namespace.cjs +21 -0
- package/dist/cjs/components/qr-code/namespace.cjs.map +1 -0
- package/dist/cjs/components/qr-code/qr-code.cjs +66 -0
- package/dist/cjs/components/qr-code/qr-code.cjs.map +1 -0
- package/dist/cjs/components/qr-code/qr-code.style.cjs +48 -0
- package/dist/cjs/components/qr-code/qr-code.style.cjs.map +1 -0
- package/dist/cjs/components/qr-code/use-qr-code.cjs +67 -0
- package/dist/cjs/components/qr-code/use-qr-code.cjs.map +1 -0
- package/dist/cjs/components/radio/radio.style.cjs +18 -0
- package/dist/cjs/components/radio/radio.style.cjs.map +1 -1
- package/dist/cjs/components/radio-card/radio-card.style.cjs +21 -1
- package/dist/cjs/components/radio-card/radio-card.style.cjs.map +1 -1
- package/dist/cjs/components/rating/rating.style.cjs +19 -1
- package/dist/cjs/components/rating/rating.style.cjs.map +1 -1
- package/dist/cjs/components/resizable/index.cjs +3 -0
- package/dist/cjs/components/resizable/namespace.cjs +2 -0
- package/dist/cjs/components/resizable/namespace.cjs.map +1 -1
- package/dist/cjs/components/resizable/resizable.cjs +12 -12
- package/dist/cjs/components/resizable/resizable.cjs.map +1 -1
- package/dist/cjs/components/resizable/resizable.style.cjs +1 -2
- package/dist/cjs/components/resizable/resizable.style.cjs.map +1 -1
- package/dist/cjs/components/resizable/use-resizable.cjs +56 -89
- package/dist/cjs/components/resizable/use-resizable.cjs.map +1 -1
- package/dist/cjs/components/select/select.cjs +2 -2
- package/dist/cjs/components/slider/slider.style.cjs +18 -0
- package/dist/cjs/components/slider/slider.style.cjs.map +1 -1
- package/dist/cjs/components/tip/index.cjs +3 -0
- package/dist/cjs/components/tip/tip.cjs +53 -0
- package/dist/cjs/components/tip/tip.cjs.map +1 -0
- package/dist/cjs/components/toggle/toggle.cjs +2 -2
- package/dist/cjs/components/tooltip/index.cjs +2 -0
- package/dist/cjs/components/tooltip/use-tooltip.cjs +23 -3
- package/dist/cjs/components/tooltip/use-tooltip.cjs.map +1 -1
- package/dist/cjs/core/components/create-component.cjs +8 -4
- package/dist/cjs/core/components/create-component.cjs.map +1 -1
- package/dist/cjs/core/components/use-component-style.cjs +54 -14
- package/dist/cjs/core/components/use-component-style.cjs.map +1 -1
- package/dist/cjs/core/css/at-rule.cjs +3 -2
- package/dist/cjs/core/css/at-rule.cjs.map +1 -1
- package/dist/cjs/core/css/color-mix.cjs +5 -2
- package/dist/cjs/core/css/color-mix.cjs.map +1 -1
- package/dist/cjs/core/css/conditions.cjs +6 -0
- package/dist/cjs/core/css/conditions.cjs.map +1 -1
- package/dist/cjs/core/css/styles.cjs +13 -3
- package/dist/cjs/core/css/styles.cjs.map +1 -1
- package/dist/cjs/core/css/use-css.cjs +5 -4
- package/dist/cjs/core/css/use-css.cjs.map +1 -1
- package/dist/cjs/core/system/styled.cjs +4 -3
- package/dist/cjs/core/system/styled.cjs.map +1 -1
- package/dist/cjs/core/system/var.cjs +2 -1
- package/dist/cjs/core/system/var.cjs.map +1 -1
- package/dist/cjs/index.cjs +524 -171
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/theme/styles/reset-style.cjs +1 -0
- package/dist/cjs/theme/styles/reset-style.cjs.map +1 -1
- package/dist/cjs/utils/children.cjs +9 -1
- package/dist/cjs/utils/children.cjs.map +1 -1
- package/dist/esm/components/accordion/accordion.js +8 -9
- package/dist/esm/components/accordion/accordion.js.map +1 -1
- package/dist/esm/components/accordion/accordion.style.js +11 -37
- package/dist/esm/components/accordion/accordion.style.js.map +1 -1
- package/dist/esm/components/accordion/use-accordion.js +7 -2
- package/dist/esm/components/accordion/use-accordion.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete.js +2 -2
- package/dist/esm/components/button/button-group.js +1 -1
- package/dist/esm/components/chart/area-chart.js +38 -0
- package/dist/esm/components/chart/area-chart.js.map +1 -0
- package/dist/esm/components/chart/area-chart.namespace.js +26 -0
- package/dist/esm/components/chart/area-chart.namespace.js.map +1 -0
- package/dist/esm/components/chart/area-chart.style.js +12 -0
- package/dist/esm/components/chart/area-chart.style.js.map +1 -0
- package/dist/esm/components/chart/bar-chart.js +38 -0
- package/dist/esm/components/chart/bar-chart.js.map +1 -0
- package/dist/esm/components/chart/bar-chart.namespace.js +25 -0
- package/dist/esm/components/chart/bar-chart.namespace.js.map +1 -0
- package/dist/esm/components/chart/bar-chart.style.js +14 -0
- package/dist/esm/components/chart/bar-chart.style.js.map +1 -0
- package/dist/esm/components/chart/cartesian-chart.js +629 -0
- package/dist/esm/components/chart/cartesian-chart.js.map +1 -0
- package/dist/esm/components/chart/cartesian-chart.style.js +123 -0
- package/dist/esm/components/chart/cartesian-chart.style.js.map +1 -0
- package/dist/esm/components/chart/chart.js +222 -0
- package/dist/esm/components/chart/chart.js.map +1 -0
- package/dist/esm/components/chart/chart.style.js +119 -0
- package/dist/esm/components/chart/chart.style.js.map +1 -0
- package/dist/esm/components/chart/donut-chart.js +42 -0
- package/dist/esm/components/chart/donut-chart.js.map +1 -0
- package/dist/esm/components/chart/donut-chart.namespace.js +22 -0
- package/dist/esm/components/chart/donut-chart.namespace.js.map +1 -0
- package/dist/esm/components/chart/donut-chart.style.js +10 -0
- package/dist/esm/components/chart/donut-chart.style.js.map +1 -0
- package/dist/esm/components/chart/index.js +31 -0
- package/dist/esm/components/chart/line-chart.js +38 -0
- package/dist/esm/components/chart/line-chart.js.map +1 -0
- package/dist/esm/components/chart/line-chart.namespace.js +25 -0
- package/dist/esm/components/chart/line-chart.namespace.js.map +1 -0
- package/dist/esm/components/chart/line-chart.style.js +12 -0
- package/dist/esm/components/chart/line-chart.style.js.map +1 -0
- package/dist/esm/components/chart/pie-chart.js +42 -0
- package/dist/esm/components/chart/pie-chart.js.map +1 -0
- package/dist/esm/components/chart/pie-chart.namespace.js +22 -0
- package/dist/esm/components/chart/pie-chart.namespace.js.map +1 -0
- package/dist/esm/components/chart/pie-chart.style.js +12 -0
- package/dist/esm/components/chart/pie-chart.style.js.map +1 -0
- package/dist/esm/components/chart/polar-chart.js +651 -0
- package/dist/esm/components/chart/polar-chart.js.map +1 -0
- package/dist/esm/components/chart/polar-chart.style.js +150 -0
- package/dist/esm/components/chart/polar-chart.style.js.map +1 -0
- package/dist/esm/components/chart/radar-chart.js +41 -0
- package/dist/esm/components/chart/radar-chart.js.map +1 -0
- package/dist/esm/components/chart/radar-chart.namespace.js +25 -0
- package/dist/esm/components/chart/radar-chart.namespace.js.map +1 -0
- package/dist/esm/components/chart/radar-chart.style.js +12 -0
- package/dist/esm/components/chart/radar-chart.style.js.map +1 -0
- package/dist/esm/components/chart/radial-chart.js +54 -0
- package/dist/esm/components/chart/radial-chart.js.map +1 -0
- package/dist/esm/components/chart/radial-chart.namespace.js +25 -0
- package/dist/esm/components/chart/radial-chart.namespace.js.map +1 -0
- package/dist/esm/components/chart/radial-chart.style.js +15 -0
- package/dist/esm/components/chart/radial-chart.style.js.map +1 -0
- package/dist/esm/components/chart/use-area-chart.js +40 -0
- package/dist/esm/components/chart/use-area-chart.js.map +1 -0
- package/dist/esm/components/chart/use-bar-chart.js +40 -0
- package/dist/esm/components/chart/use-bar-chart.js.map +1 -0
- package/dist/esm/components/chart/use-cartesian-chart.js +585 -0
- package/dist/esm/components/chart/use-cartesian-chart.js.map +1 -0
- package/dist/esm/components/chart/use-chart.js +246 -0
- package/dist/esm/components/chart/use-chart.js.map +1 -0
- package/dist/esm/components/chart/use-line-chart.js +40 -0
- package/dist/esm/components/chart/use-line-chart.js.map +1 -0
- package/dist/esm/components/chart/use-pie-chart.js +42 -0
- package/dist/esm/components/chart/use-pie-chart.js.map +1 -0
- package/dist/esm/components/chart/use-polar-chart.js +707 -0
- package/dist/esm/components/chart/use-polar-chart.js.map +1 -0
- package/dist/esm/components/chart/use-radar-chart.js +44 -0
- package/dist/esm/components/chart/use-radar-chart.js.map +1 -0
- package/dist/esm/components/chart/use-radial-chart.js +62 -0
- package/dist/esm/components/chart/use-radial-chart.js.map +1 -0
- package/dist/esm/components/checkbox/checkbox.style.js +18 -0
- package/dist/esm/components/checkbox/checkbox.style.js.map +1 -1
- package/dist/esm/components/checkbox-card/checkbox-card.style.js +18 -0
- package/dist/esm/components/checkbox-card/checkbox-card.style.js.map +1 -1
- package/dist/esm/components/color-picker/color-picker.js +2 -2
- package/dist/esm/components/date-picker/date-picker.js +2 -2
- package/dist/esm/components/dropzone/dropzone.style.js +18 -0
- package/dist/esm/components/dropzone/dropzone.style.js.map +1 -1
- package/dist/esm/components/editable/editable.style.js +36 -0
- package/dist/esm/components/editable/editable.style.js.map +1 -1
- package/dist/esm/components/field/field.js +28 -15
- package/dist/esm/components/field/field.js.map +1 -1
- package/dist/esm/components/field/use-field-props.js +12 -1
- package/dist/esm/components/field/use-field-props.js.map +1 -1
- package/dist/esm/components/fieldset/fieldset.js +12 -2
- package/dist/esm/components/fieldset/fieldset.js.map +1 -1
- package/dist/esm/components/fieldset/fieldset.style.js +1 -1
- package/dist/esm/components/fieldset/fieldset.style.js.map +1 -1
- package/dist/esm/components/file-button/file-button.js +2 -2
- package/dist/esm/components/file-button/use-file-button.js +2 -5
- package/dist/esm/components/file-button/use-file-button.js.map +1 -1
- package/dist/esm/components/file-input/use-file-input.js +7 -2
- package/dist/esm/components/file-input/use-file-input.js.map +1 -1
- package/dist/esm/components/form/form.js +124 -0
- package/dist/esm/components/form/form.js.map +1 -0
- package/dist/esm/components/form/form.style.js +108 -0
- package/dist/esm/components/form/form.style.js.map +1 -0
- package/dist/esm/components/form/index.js +5 -0
- package/dist/esm/components/form/namespace.js +20 -0
- package/dist/esm/components/form/namespace.js.map +1 -0
- package/dist/esm/components/input/input-group.js +2 -2
- package/dist/esm/components/input/input.style.js +36 -0
- package/dist/esm/components/input/input.style.js.map +1 -1
- package/dist/esm/components/loading/oval.js +2 -3
- package/dist/esm/components/loading/oval.js.map +1 -1
- package/dist/esm/components/modal/modal.js +2 -2
- package/dist/esm/components/native-accordion/index.js +6 -0
- package/dist/esm/components/native-accordion/namespace.js +17 -0
- package/dist/esm/components/native-accordion/namespace.js.map +1 -0
- package/dist/esm/components/native-accordion/native-accordion.js +95 -0
- package/dist/esm/components/native-accordion/native-accordion.js.map +1 -0
- package/dist/esm/components/native-accordion/native-accordion.style.js +69 -0
- package/dist/esm/components/native-accordion/native-accordion.style.js.map +1 -0
- package/dist/esm/components/native-accordion/use-native-accordion.js +57 -0
- package/dist/esm/components/native-accordion/use-native-accordion.js.map +1 -0
- package/dist/esm/components/native-popover/index.js +6 -0
- package/dist/esm/components/native-popover/namespace.js +20 -0
- package/dist/esm/components/native-popover/namespace.js.map +1 -0
- package/dist/esm/components/native-popover/native-popover.js +89 -0
- package/dist/esm/components/native-popover/native-popover.js.map +1 -0
- package/dist/esm/components/native-popover/native-popover.style.js +67 -0
- package/dist/esm/components/native-popover/native-popover.style.js.map +1 -0
- package/dist/esm/components/native-popover/use-native-popover.js +118 -0
- package/dist/esm/components/native-popover/use-native-popover.js.map +1 -0
- package/dist/esm/components/native-select/native-select.js +2 -2
- package/dist/esm/components/number-input/number-input.js +2 -2
- package/dist/esm/components/number-input/number-input.style.js +2 -2
- package/dist/esm/components/password-input/password-input.js +2 -2
- package/dist/esm/components/password-input/password-input.style.js +2 -2
- package/dist/esm/components/pin-input/pin-input.js +2 -2
- package/dist/esm/components/popover/index.js +2 -2
- package/dist/esm/components/popover/namespace.js +2 -1
- package/dist/esm/components/popover/namespace.js.map +1 -1
- package/dist/esm/components/popover/popover.js +12 -5
- package/dist/esm/components/popover/popover.js.map +1 -1
- package/dist/esm/components/popover/popover.style.js +4 -54
- package/dist/esm/components/popover/popover.style.js.map +1 -1
- package/dist/esm/components/popover/use-popover.js +16 -9
- package/dist/esm/components/popover/use-popover.js.map +1 -1
- package/dist/esm/components/qr-code/index.js +6 -0
- package/dist/esm/components/qr-code/namespace.js +16 -0
- package/dist/esm/components/qr-code/namespace.js.map +1 -0
- package/dist/esm/components/qr-code/qr-code.js +60 -0
- package/dist/esm/components/qr-code/qr-code.js.map +1 -0
- package/dist/esm/components/qr-code/qr-code.style.js +48 -0
- package/dist/esm/components/qr-code/qr-code.style.js.map +1 -0
- package/dist/esm/components/qr-code/use-qr-code.js +66 -0
- package/dist/esm/components/qr-code/use-qr-code.js.map +1 -0
- package/dist/esm/components/radio/radio.style.js +18 -0
- package/dist/esm/components/radio/radio.style.js.map +1 -1
- package/dist/esm/components/radio-card/radio-card.style.js +21 -1
- package/dist/esm/components/radio-card/radio-card.style.js.map +1 -1
- package/dist/esm/components/rating/rating.style.js +19 -1
- package/dist/esm/components/rating/rating.style.js.map +1 -1
- package/dist/esm/components/resizable/index.js +2 -2
- package/dist/esm/components/resizable/namespace.js +2 -1
- package/dist/esm/components/resizable/namespace.js.map +1 -1
- package/dist/esm/components/resizable/resizable.js +13 -13
- package/dist/esm/components/resizable/resizable.js.map +1 -1
- package/dist/esm/components/resizable/resizable.style.js +1 -2
- package/dist/esm/components/resizable/resizable.style.js.map +1 -1
- package/dist/esm/components/resizable/use-resizable.js +60 -93
- package/dist/esm/components/resizable/use-resizable.js.map +1 -1
- package/dist/esm/components/select/select.js +2 -2
- package/dist/esm/components/slider/slider.style.js +18 -0
- package/dist/esm/components/slider/slider.style.js.map +1 -1
- package/dist/esm/components/tip/index.js +3 -0
- package/dist/esm/components/tip/tip.js +52 -0
- package/dist/esm/components/tip/tip.js.map +1 -0
- package/dist/esm/components/toggle/toggle.js +2 -2
- package/dist/esm/components/tooltip/index.js +2 -2
- package/dist/esm/components/tooltip/use-tooltip.js +22 -4
- package/dist/esm/components/tooltip/use-tooltip.js.map +1 -1
- package/dist/esm/core/components/create-component.js +8 -4
- package/dist/esm/core/components/create-component.js.map +1 -1
- package/dist/esm/core/components/use-component-style.js +54 -14
- package/dist/esm/core/components/use-component-style.js.map +1 -1
- package/dist/esm/core/css/at-rule.js +3 -2
- package/dist/esm/core/css/at-rule.js.map +1 -1
- package/dist/esm/core/css/color-mix.js +5 -2
- package/dist/esm/core/css/color-mix.js.map +1 -1
- package/dist/esm/core/css/conditions.js +6 -0
- package/dist/esm/core/css/conditions.js.map +1 -1
- package/dist/esm/core/css/styles.js +13 -3
- package/dist/esm/core/css/styles.js.map +1 -1
- package/dist/esm/core/css/use-css.js +5 -4
- package/dist/esm/core/css/use-css.js.map +1 -1
- package/dist/esm/core/system/styled.js +4 -3
- package/dist/esm/core/system/styled.js.map +1 -1
- package/dist/esm/core/system/var.js +2 -1
- package/dist/esm/core/system/var.js.map +1 -1
- package/dist/esm/index.js +258 -84
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/theme/styles/reset-style.js +1 -0
- package/dist/esm/theme/styles/reset-style.js.map +1 -1
- package/dist/esm/utils/children.js +9 -1
- package/dist/esm/utils/children.js.map +1 -1
- package/dist/types/components/accordion/accordion.d.ts +3 -6
- package/dist/types/components/accordion/use-accordion.d.ts +11 -11
- package/dist/types/components/airy/airy.d.ts +2 -2
- package/dist/types/components/alert/alert.d.ts +2 -2
- package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
- package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
- package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
- package/dist/types/components/autocomplete/autocomplete.style.d.ts +13 -1
- package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
- package/dist/types/components/avatar/avatar.d.ts +6 -6
- package/dist/types/components/avatar/avatar.style.d.ts +1 -1
- package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
- package/dist/types/components/badge/badge.d.ts +2 -2
- package/dist/types/components/bleed/bleed.d.ts +2 -2
- package/dist/types/components/blockquote/blockquote.d.ts +2 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
- package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
- package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button/icon-button.d.ts +2 -2
- package/dist/types/components/calendar/calendar.d.ts +2 -2
- package/dist/types/components/calendar/calendar.style.d.ts +2 -2
- package/dist/types/components/calendar/use-calendar.d.ts +8 -8
- package/dist/types/components/card/card.d.ts +2 -2
- package/dist/types/components/carousel/carousel.d.ts +2 -2
- package/dist/types/components/carousel/carousel.style.d.ts +2 -2
- package/dist/types/components/carousel/use-carousel.d.ts +3 -3
- package/dist/types/components/center/center.d.ts +2 -2
- package/dist/types/components/chart/area-chart.d.ts +34 -0
- package/dist/types/components/chart/area-chart.namespace.d.ts +11 -0
- package/dist/types/components/chart/area-chart.style.d.ts +10 -0
- package/dist/types/components/chart/bar-chart.d.ts +34 -0
- package/dist/types/components/chart/bar-chart.namespace.d.ts +11 -0
- package/dist/types/components/chart/bar-chart.style.d.ts +10 -0
- package/dist/types/components/chart/cartesian-chart.d.ts +311 -0
- package/dist/types/components/chart/cartesian-chart.style.d.ts +10 -0
- package/dist/types/components/chart/chart.d.ts +148 -0
- package/dist/types/components/chart/chart.style.d.ts +36 -0
- package/dist/types/components/chart/donut-chart.d.ts +34 -0
- package/dist/types/components/chart/donut-chart.namespace.d.ts +11 -0
- package/dist/types/components/chart/donut-chart.style.d.ts +10 -0
- package/dist/types/components/chart/index.d.ts +30 -0
- package/dist/types/components/chart/line-chart.d.ts +34 -0
- package/dist/types/components/chart/line-chart.namespace.d.ts +11 -0
- package/dist/types/components/chart/line-chart.style.d.ts +10 -0
- package/dist/types/components/chart/pie-chart.d.ts +34 -0
- package/dist/types/components/chart/pie-chart.namespace.d.ts +11 -0
- package/dist/types/components/chart/pie-chart.style.d.ts +10 -0
- package/dist/types/components/chart/polar-chart.d.ts +401 -0
- package/dist/types/components/chart/polar-chart.style.d.ts +10 -0
- package/dist/types/components/chart/radar-chart.d.ts +34 -0
- package/dist/types/components/chart/radar-chart.namespace.d.ts +11 -0
- package/dist/types/components/chart/radar-chart.style.d.ts +10 -0
- package/dist/types/components/chart/radial-chart.d.ts +34 -0
- package/dist/types/components/chart/radial-chart.namespace.d.ts +11 -0
- package/dist/types/components/chart/radial-chart.style.d.ts +10 -0
- package/dist/types/components/chart/use-area-chart.d.ts +29 -0
- package/dist/types/components/chart/use-bar-chart.d.ts +29 -0
- package/dist/types/components/chart/use-cartesian-chart.d.ts +238 -0
- package/dist/types/components/chart/use-chart.d.ts +117 -0
- package/dist/types/components/chart/use-line-chart.d.ts +29 -0
- package/dist/types/components/chart/use-pie-chart.d.ts +30 -0
- package/dist/types/components/chart/use-polar-chart.d.ts +330 -0
- package/dist/types/components/chart/use-radar-chart.d.ts +31 -0
- package/dist/types/components/chart/use-radial-chart.d.ts +40 -0
- package/dist/types/components/checkbox/checkbox.d.ts +5 -5
- package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
- package/dist/types/components/checkbox-card/checkbox-card.d.ts +23 -5
- package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +6 -0
- package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
- package/dist/types/components/close-button/close-button.d.ts +2 -2
- package/dist/types/components/code/code.d.ts +2 -2
- package/dist/types/components/collapse/collapse.d.ts +2 -2
- package/dist/types/components/color-picker/color-picker.d.ts +2 -2
- package/dist/types/components/color-picker/color-picker.style.d.ts +12 -0
- package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
- package/dist/types/components/color-selector/color-selector.d.ts +2 -2
- package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
- package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
- package/dist/types/components/container/container.d.ts +2 -2
- package/dist/types/components/data-list/data-list.d.ts +2 -2
- package/dist/types/components/date-picker/date-picker.d.ts +2 -2
- package/dist/types/components/date-picker/date-picker.style.d.ts +13 -1
- package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
- package/dist/types/components/drawer/drawer.d.ts +2 -2
- package/dist/types/components/drawer/drawer.style.d.ts +2 -2
- package/dist/types/components/dropzone/dropzone.d.ts +8 -2
- package/dist/types/components/dropzone/dropzone.style.d.ts +6 -0
- package/dist/types/components/editable/editable.d.ts +2 -2
- package/dist/types/components/editable/use-editable.d.ts +2 -2
- package/dist/types/components/em/em.d.ts +2 -2
- package/dist/types/components/empty-state/empty-state.d.ts +2 -2
- package/dist/types/components/fade/fade.d.ts +2 -2
- package/dist/types/components/field/field.d.ts +7 -3
- package/dist/types/components/field/field.style.d.ts +2 -2
- package/dist/types/components/field/use-field-props.d.ts +7 -4
- package/dist/types/components/fieldset/fieldset.d.ts +3 -3
- package/dist/types/components/fieldset/fieldset.style.d.ts +4 -2
- package/dist/types/components/file-button/file-button.d.ts +2 -2
- package/dist/types/components/file-button/use-file-button.d.ts +17 -17
- package/dist/types/components/file-input/file-input.d.ts +2 -2
- package/dist/types/components/file-input/file-input.style.d.ts +12 -0
- package/dist/types/components/file-input/use-file-input.d.ts +17 -17
- package/dist/types/components/flex/flex.d.ts +2 -2
- package/dist/types/components/flip/flip.d.ts +2 -2
- package/dist/types/components/float/float.d.ts +2 -2
- package/dist/types/components/form/form.d.ts +129 -0
- package/dist/types/components/form/form.style.d.ts +107 -0
- package/dist/types/components/form/index.d.ts +4 -0
- package/dist/types/components/form/namespace.d.ts +9 -0
- package/dist/types/components/format/format-byte.d.ts +2 -2
- package/dist/types/components/format/format-date-time.d.ts +2 -2
- package/dist/types/components/format/format-number.d.ts +2 -2
- package/dist/types/components/grid/grid-item.d.ts +2 -2
- package/dist/types/components/grid/grid.d.ts +2 -2
- package/dist/types/components/group/group.d.ts +2 -2
- package/dist/types/components/group/use-group.d.ts +2 -2
- package/dist/types/components/heading/heading.d.ts +2 -2
- package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
- package/dist/types/components/icon/icon.d.ts +4 -4
- package/dist/types/components/image/image.d.ts +2 -2
- package/dist/types/components/indicator/indicator.d.ts +2 -2
- package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
- package/dist/types/components/input/input-addon.d.ts +2 -2
- package/dist/types/components/input/input-element.d.ts +2 -2
- package/dist/types/components/input/input.d.ts +2 -2
- package/dist/types/components/input/input.style.d.ts +12 -0
- package/dist/types/components/kbd/kbd.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +2 -2
- package/dist/types/components/link-box/link-box.d.ts +2 -2
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/loading/loading-provider.d.ts +2 -2
- package/dist/types/components/loading/loading.d.ts +3 -3
- package/dist/types/components/mark/mark.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -2
- package/dist/types/components/menu/menu.style.d.ts +2 -2
- package/dist/types/components/menu/use-menu.d.ts +11 -11
- package/dist/types/components/modal/modal.d.ts +2 -2
- package/dist/types/components/modal/modal.style.d.ts +2 -2
- package/dist/types/components/native-accordion/index.d.ts +5 -0
- package/dist/types/components/native-accordion/namespace.d.ts +9 -0
- package/dist/types/components/native-accordion/native-accordion.d.ts +59 -0
- package/dist/types/components/native-accordion/native-accordion.style.d.ts +58 -0
- package/dist/types/components/native-accordion/use-native-accordion.d.ts +50 -0
- package/dist/types/components/native-popover/index.d.ts +5 -0
- package/dist/types/components/native-popover/namespace.d.ts +9 -0
- package/dist/types/components/native-popover/native-popover.d.ts +35 -0
- package/dist/types/components/native-popover/native-popover.style.d.ts +39 -0
- package/dist/types/components/native-popover/use-native-popover.d.ts +75 -0
- package/dist/types/components/native-select/native-select.d.ts +2 -2
- package/dist/types/components/native-select/native-select.style.d.ts +12 -0
- package/dist/types/components/native-table/native-table.d.ts +2 -2
- package/dist/types/components/notice/notice.style.d.ts +1 -1
- package/dist/types/components/number-input/number-input.d.ts +2 -2
- package/dist/types/components/number-input/number-input.style.d.ts +12 -0
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/pagination/use-pagination.d.ts +2 -2
- package/dist/types/components/password-input/password-input.d.ts +2 -2
- package/dist/types/components/password-input/password-input.style.d.ts +12 -0
- package/dist/types/components/password-input/strength-meter.d.ts +2 -2
- package/dist/types/components/password-input/use-password-input.d.ts +2 -2
- package/dist/types/components/pin-input/pin-input.d.ts +2 -2
- package/dist/types/components/pin-input/pin-input.style.d.ts +12 -0
- package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
- package/dist/types/components/popover/index.d.ts +2 -2
- package/dist/types/components/popover/namespace.d.ts +2 -2
- package/dist/types/components/popover/popover.d.ts +5 -9
- package/dist/types/components/popover/use-popover.d.ts +1 -0
- package/dist/types/components/progress/progress.d.ts +2 -2
- package/dist/types/components/progress/use-progress.d.ts +706 -706
- package/dist/types/components/qr-code/index.d.ts +5 -0
- package/dist/types/components/qr-code/namespace.d.ts +9 -0
- package/dist/types/components/qr-code/qr-code.d.ts +35 -0
- package/dist/types/components/qr-code/qr-code.style.d.ts +56 -0
- package/dist/types/components/qr-code/use-qr-code.d.ts +94 -0
- package/dist/types/components/radio/radio.d.ts +5 -5
- package/dist/types/components/radio/use-radio-group.d.ts +2 -2
- package/dist/types/components/radio-card/radio-card.d.ts +29 -5
- package/dist/types/components/radio-card/radio-card.style.d.ts +8 -0
- package/dist/types/components/rating/rating.style.d.ts +2 -2
- package/dist/types/components/rating/use-rating.d.ts +7 -7
- package/dist/types/components/reorder/reorder.d.ts +2 -2
- package/dist/types/components/reorder/use-reorder.d.ts +3 -3
- package/dist/types/components/resizable/index.d.ts +2 -2
- package/dist/types/components/resizable/namespace.d.ts +2 -2
- package/dist/types/components/resizable/resizable.d.ts +5 -10
- package/dist/types/components/resizable/resizable.style.d.ts +0 -3
- package/dist/types/components/resizable/use-resizable.d.ts +20 -146
- package/dist/types/components/ripple/ripple.d.ts +2 -2
- package/dist/types/components/ripple/use-ripple.d.ts +2 -2
- package/dist/types/components/rotate/rotate.d.ts +2 -2
- package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
- package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
- package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
- package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
- package/dist/types/components/select/select.d.ts +2 -2
- package/dist/types/components/select/select.style.d.ts +13 -1
- package/dist/types/components/select/use-select.d.ts +4 -4
- package/dist/types/components/separator/separator.d.ts +2 -2
- package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
- package/dist/types/components/skeleton/skeleton.d.ts +2 -2
- package/dist/types/components/slide/slide.d.ts +2 -2
- package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/slider/slider.style.d.ts +10 -0
- package/dist/types/components/slider/use-slider.d.ts +2 -2
- package/dist/types/components/stack/h-stack.d.ts +2 -2
- package/dist/types/components/stack/stack.d.ts +2 -2
- package/dist/types/components/stack/v-stack.d.ts +2 -2
- package/dist/types/components/stack/z-stack.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +2 -2
- package/dist/types/components/stat/stat.style.d.ts +2 -2
- package/dist/types/components/status/status.d.ts +2 -2
- package/dist/types/components/steps/steps.d.ts +2 -2
- package/dist/types/components/steps/steps.style.d.ts +1 -1
- package/dist/types/components/steps/use-steps.d.ts +10 -10
- package/dist/types/components/switch/switch.d.ts +2 -2
- package/dist/types/components/table/table.d.ts +2 -2
- package/dist/types/components/tabs/tabs.d.ts +2 -2
- package/dist/types/components/tabs/tabs.style.d.ts +1 -1
- package/dist/types/components/tabs/use-tabs.d.ts +16 -16
- package/dist/types/components/tag/tag.d.ts +2 -2
- package/dist/types/components/tag/tag.style.d.ts +1 -1
- package/dist/types/components/text/text.d.ts +2 -2
- package/dist/types/components/textarea/textarea.d.ts +2 -2
- package/dist/types/components/textarea/textarea.style.d.ts +12 -0
- package/dist/types/components/textarea/use-autosize.d.ts +2 -2
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/timeline/timeline.style.d.ts +2 -2
- package/dist/types/components/tip/index.d.ts +2 -0
- package/dist/types/components/tip/tip.d.ts +30 -0
- package/dist/types/components/toggle/toggle.d.ts +6 -6
- package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
- package/dist/types/components/toggle/use-toggle.d.ts +2 -2
- package/dist/types/components/tooltip/index.d.ts +2 -2
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/components/tooltip/use-tooltip.d.ts +4 -1
- package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
- package/dist/types/components/wrap/wrap.d.ts +2 -2
- package/dist/types/core/components/create-component.d.ts +9 -9
- package/dist/types/core/components/use-component-style.d.ts +1 -0
- package/dist/types/core/css/conditions.d.ts +53 -5
- package/dist/types/core/css/index.d.ts +2 -2
- package/dist/types/core/css/index.types.d.ts +78 -1
- package/dist/types/core/css/styles.d.ts +44 -111
- package/dist/types/core/css/use-css.d.ts +2 -2
- package/dist/types/core/index.d.ts +2 -2
- package/dist/types/core/system/color-mode-provider.d.ts +2 -2
- package/dist/types/core/system/styled.d.ts +3 -2
- package/dist/types/core/system/system-provider.d.ts +2 -2
- package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
- package/dist/types/hooks/use-clickable/index.d.ts +9 -9
- package/dist/types/hooks/use-clipboard/index.d.ts +2 -2
- package/dist/types/hooks/use-combobox/index.d.ts +12 -12
- package/dist/types/hooks/use-counter/index.d.ts +2 -2
- package/dist/types/hooks/use-descendants/index.d.ts +2 -2
- package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
- package/dist/types/hooks/use-hover/index.d.ts +2 -2
- package/dist/types/hooks/use-popper/index.d.ts +2 -2
- package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
- package/dist/types/index.d.ts +85 -34
- package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
- package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
- package/dist/types/utils/children.d.ts +4 -4
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","names":["createContext"],"sources":["../../../../src/components/field/field.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { FieldStyle } from \"./field.style\"\nimport { isValidElement, useId, useMemo, useState } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { createContext, dataAttr, useSplitChildren } from \"../../utils\"\nimport { useFieldsetContext } from \"../fieldset\"\nimport { fieldStyle } from \"./field.style\"\n\nexport interface FieldContext\n extends FieldProps, Pick<FieldRootProps, \"replace\"> {\n errorMessageId: string\n focused: boolean\n helperMessageId: string\n id: string\n labelId: string\n onBlur: () => void\n onFocus: () => void\n}\n\nconst [FieldContext, useFieldContext] = createContext<FieldContext>({\n name: \"FieldContext\",\n strict: false,\n})\n\nexport { FieldContext, useFieldContext }\n\nexport interface FieldProps {\n /**\n * If `true`, the field will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the field will be invalid.\n *\n * @default false\n */\n invalid?: boolean\n /**\n * If `true`, the field will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * If `true`, the field will be required.\n *\n * @default false\n */\n required?: boolean\n}\n\nexport interface FieldRootProps\n extends\n HTMLStyledProps,\n ThemeProps<FieldStyle>,\n Pick<FieldLabelProps, \"optionalIndicator\" | \"requiredIndicator\">,\n FieldProps {\n /**\n * The field error message to use.\n */\n errorMessage?: ReactNode\n /**\n * The field helper message to use.\n */\n helperMessage?: ReactNode\n /**\n * The field label to use.\n */\n label?: ReactNode\n /**\n * If `true`, switch between helper message and error message using invalid.\n *\n * @default true\n */\n replace?: boolean\n /**\n * Props the error message component.\n */\n errorMessageProps?: FieldErrorMessageProps\n /**\n * Props the helper message component.\n */\n helperMessageProps?: FieldHelperMessageProps\n /**\n * Props the label component.\n */\n labelProps?: FieldLabelProps\n}\n\nconst {\n PropsContext: FieldPropsContext,\n usePropsContext: useFieldPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<FieldRootProps, FieldStyle>(\"field\", fieldStyle)\n\nexport { FieldPropsContext, useFieldPropsContext }\n\n/**\n * `Field` is a component used to group form elements with label, helper message, error message, etc.\n *\n * @see https://yamada-ui.com/docs/components/field\n */\nexport const FieldRoot = withProvider<\"div\", FieldRootProps>(\n ({\n id,\n children,\n disabled,\n errorMessage,\n helperMessage,\n invalid,\n label,\n optionalIndicator,\n readOnly,\n replace = true,\n required,\n requiredIndicator,\n errorMessageProps,\n helperMessageProps,\n labelProps,\n ...rest\n }) => {\n const uuid = useId()\n const labelId = useId()\n const helperMessageId = useId()\n const errorMessageId = useId()\n const [focused, setFocused] = useState<boolean>(false)\n const [\n omittedChildren,\n customLabel,\n customHelperMessage,\n customErrorMessage,\n ] = useSplitChildren(\n children,\n FieldLabel,\n FieldHelperMessage,\n FieldErrorMessage,\n )\n\n id ??= uuid\n\n const context = useMemo(\n () => ({\n id,\n disabled,\n errorMessageId,\n focused,\n helperMessageId,\n invalid,\n labelId,\n readOnly,\n replace,\n required,\n onBlur: () => setFocused(false),\n onFocus: () => setFocused(true),\n }),\n [\n id,\n disabled,\n labelId,\n focused,\n invalid,\n helperMessageId,\n errorMessageId,\n readOnly,\n replace,\n required,\n ],\n )\n\n return (\n <FieldContext value={context}>\n <styled.div\n data-disabled={dataAttr(disabled)}\n data-focus={dataAttr(focused)}\n data-invalid={dataAttr(invalid)}\n data-readonly={dataAttr(readOnly)}\n {...rest}\n >\n {customLabel ||\n (label ? (\n <FieldLabel\n optionalIndicator={optionalIndicator}\n requiredIndicator={requiredIndicator}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n ) : null)}\n\n {omittedChildren}\n\n {customHelperMessage ||\n (helperMessage ? (\n <FieldHelperMessage {...helperMessageProps}>\n {helperMessage}\n </FieldHelperMessage>\n ) : null)}\n\n {customErrorMessage ||\n (errorMessage ? (\n <FieldErrorMessage {...errorMessageProps}>\n {errorMessage}\n </FieldErrorMessage>\n ) : null)}\n </styled.div>\n </FieldContext>\n )\n },\n \"root\",\n)()\n\nexport interface FieldLabelProps extends HTMLStyledProps<\"label\"> {\n /**\n * The optional indicator to use.\n */\n optionalIndicator?: ReactNode\n /**\n * If `true`, the field will be required.\n *\n * @default false\n */\n required?: boolean\n /**\n * The required indicator to use.\n */\n requiredIndicator?: ReactNode\n}\n\nexport const FieldLabel = withContext<\"label\", FieldLabelProps>(\n ({\n id,\n htmlFor,\n children,\n optionalIndicator = null,\n required,\n requiredIndicator = null,\n ...rest\n }) => {\n const fieldsetContext = useFieldsetContext()\n const fieldContext = useFieldContext()\n\n id ??= fieldContext?.labelId\n htmlFor ??= fieldContext?.id\n required ??= fieldContext?.required ?? fieldsetContext?.required\n\n const disabled = fieldContext?.disabled ?? fieldsetContext?.disabled\n const invalid = fieldContext?.invalid ?? fieldsetContext?.invalid\n const readOnly = fieldContext?.readOnly ?? fieldsetContext?.readOnly\n const focused = fieldContext?.focused\n\n return (\n <styled.label\n id={id}\n htmlFor={htmlFor}\n data-disabled={dataAttr(disabled)}\n data-focus={dataAttr(focused)}\n data-invalid={dataAttr(invalid)}\n data-readonly={dataAttr(readOnly)}\n {...rest}\n >\n {children}\n\n {required ? (\n requiredIndicator ? (\n <FieldRequiredIndicator>{requiredIndicator}</FieldRequiredIndicator>\n ) : (\n <FieldRequiredIndicator />\n )\n ) : (\n optionalIndicator\n )}\n </styled.label>\n )\n },\n \"label\",\n)()\n\ninterface FieldRequiredIndicatorProps extends HTMLStyledProps<\"span\"> {}\n\nconst FieldRequiredIndicator = withContext<\"span\", FieldRequiredIndicatorProps>(\n ({ children, ...rest }) => {\n if (!isValidElement(children)) {\n return (\n <styled.span aria-hidden role=\"presentation\" {...rest}>\n {children ?? <>*</>}\n </styled.span>\n )\n } else {\n return children\n }\n },\n \"requiredIndicator\",\n)()\n\nexport interface FieldHelperMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldHelperMessage = withContext<\"span\", FieldHelperMessageProps>(\n (props) => {\n const fieldsetContext = useFieldsetContext()\n const {\n helperMessageId,\n invalid = fieldsetContext?.invalid,\n replace,\n } = useFieldContext() ?? {}\n\n return (\n <styled.span\n id={helperMessageId}\n hidden={replace && invalid ? true : false}\n {...props}\n />\n )\n },\n \"helperMessage\",\n)()\n\nexport interface FieldErrorMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldErrorMessage = withContext<\"span\", FieldErrorMessageProps>(\n (props) => {\n const fieldsetContext = useFieldsetContext()\n const { errorMessageId, invalid = fieldsetContext?.invalid } =\n useFieldContext() ?? {}\n\n return (\n <styled.span\n id={errorMessageId}\n aria-live={invalid ? \"polite\" : undefined}\n hidden={!invalid}\n {...props}\n />\n )\n },\n \"errorMessage\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,MAAM,CAAC,cAAc,mBAAmBA,gBAA4B;CAClE,MAAM;CACN,QAAQ;CACT,CAAC;AAqEF,MAAM,EACJ,cAAc,mBACd,iBAAiB,sBACjB,aACA,iBACE,oBAAgD,SAAS,WAAW;;;;;;AASxE,MAAa,YAAY,cACtB,EACC,IACA,UACA,UACA,cACA,eACA,SACA,OACA,mBACA,UACA,UAAU,MACV,UACA,mBACA,mBACA,oBACA,YACA,GAAG,WACC;CACJ,MAAM,OAAO,OAAO;CACpB,MAAM,UAAU,OAAO;CACvB,MAAM,kBAAkB,OAAO;CAC/B,MAAM,iBAAiB,OAAO;CAC9B,MAAM,CAAC,SAAS,cAAc,SAAkB,MAAM;CACtD,MAAM,CACJ,iBACA,aACA,qBACA,sBACE,iBACF,UACA,YACA,oBACA,kBACD;AAED,QAAO;AA+BP,QACE,oBAAC;EAAa,OA9BA,eACP;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,cAAc,WAAW,MAAM;GAC/B,eAAe,WAAW,KAAK;GAChC,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;YAIG,qBAAC,OAAO;GACN,6CAAwB,SAAS;GACjC,0CAAqB,QAAQ;GAC7B,4CAAuB,QAAQ;GAC/B,6CAAwB,SAAS;GACjC,GAAI;;IAEH,gBACE,QACC,oBAAC;KACoB;KACA;KACnB,GAAI;eAEH;MACU,GACX;IAEL;IAEA,wBACE,gBACC,oBAAC;KAAmB,GAAI;eACrB;MACkB,GACnB;IAEL,uBACE,eACC,oBAAC;KAAkB,GAAI;eACpB;MACiB,GAClB;;IACK;GACA;GAGnB,OACD,EAAE;AAmBH,MAAa,aAAa,aACvB,EACC,IACA,SACA,UACA,oBAAoB,MACpB,UACA,oBAAoB,MACpB,GAAG,WACC;CACJ,MAAM,kBAAkB,oBAAoB;CAC5C,MAAM,eAAe,iBAAiB;AAEtC,QAAO,cAAc;AACrB,aAAY,cAAc;AAC1B,cAAa,cAAc,YAAY,iBAAiB;CAExD,MAAM,WAAW,cAAc,YAAY,iBAAiB;CAC5D,MAAM,UAAU,cAAc,WAAW,iBAAiB;CAC1D,MAAM,WAAW,cAAc,YAAY,iBAAiB;CAC5D,MAAM,UAAU,cAAc;AAE9B,QACE,qBAAC,OAAO;EACF;EACK;EACT,6CAAwB,SAAS;EACjC,0CAAqB,QAAQ;EAC7B,4CAAuB,QAAQ;EAC/B,6CAAwB,SAAS;EACjC,GAAI;aAEH,UAEA,WACC,oBACE,oBAAC,oCAAwB,oBAA2C,GAEpE,oBAAC,2BAAyB,GAG5B;GAEW;GAGnB,QACD,EAAE;AAIH,MAAM,yBAAyB,aAC5B,EAAE,UAAU,GAAG,WAAW;AACzB,KAAI,CAAC,eAAe,SAAS,CAC3B,QACE,oBAAC,OAAO;EAAK;EAAY,MAAK;EAAe,GAAI;YAC9C,YAAY,4CAAE,MAAI;GACP;KAGhB,QAAO;GAGX,oBACD,EAAE;AAIH,MAAa,qBAAqB,aAC/B,UAAU;CACT,MAAM,kBAAkB,oBAAoB;CAC5C,MAAM,EACJ,iBACA,UAAU,iBAAiB,SAC3B,YACE,iBAAiB,IAAI,EAAE;AAE3B,QACE,oBAAC,OAAO;EACN,IAAI;EACJ,QAAQ,WAAW,UAAU,OAAO;EACpC,GAAI;GACJ;GAGN,gBACD,EAAE;AAIH,MAAa,oBAAoB,aAC9B,UAAU;CACT,MAAM,kBAAkB,oBAAoB;CAC5C,MAAM,EAAE,gBAAgB,UAAU,iBAAiB,YACjD,iBAAiB,IAAI,EAAE;AAEzB,QACE,oBAAC,OAAO;EACN,IAAI;EACJ,aAAW,UAAU,WAAW;EAChC,QAAQ,CAAC;EACT,GAAI;GACJ;GAGN,eACD,EAAE"}
|
|
1
|
+
{"version":3,"file":"field.js","names":["createContext"],"sources":["../../../../src/components/field/field.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { FieldStyle } from \"./field.style\"\nimport { isValidElement, useId, useMemo, useState } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport {\n createContext,\n dataAttr,\n isObject,\n useSplitChildren,\n} from \"../../utils\"\nimport { useFieldsetContext } from \"../fieldset\"\nimport { useFormContext } from \"../form\"\nimport { fieldStyle } from \"./field.style\"\n\nexport interface FieldContext\n extends FieldProps, Pick<FieldRootProps, \"replace\"> {\n errorMessageId: string\n focused: boolean\n helperMessageId: string\n id: string\n labelId: string\n onBlur: () => void\n onFocus: () => void\n}\n\nconst [FieldContext, useFieldContext] = createContext<FieldContext>({\n name: \"FieldContext\",\n strict: false,\n})\n\nexport { FieldContext, useFieldContext }\n\nexport interface FieldProps {\n /**\n * If `true`, the field will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the field will be invalid.\n *\n * @default false\n */\n invalid?: boolean\n /**\n * If `true`, the field will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * If `true`, the field will be required.\n *\n * @default false\n */\n required?: boolean\n}\n\nexport interface FieldRootProps\n extends\n HTMLStyledProps,\n ThemeProps<FieldStyle>,\n Pick<FieldLabelProps, \"optionalIndicator\" | \"requiredIndicator\">,\n FieldProps {\n /**\n * The field error message to use.\n */\n errorMessage?: ReactNode\n /**\n * The field helper message to use.\n */\n helperMessage?: ReactNode\n /**\n * The field label to use.\n */\n label?: ReactNode\n /**\n * The name of the field.\n */\n name?: string\n /**\n * If `true`, switch between helper message and error message using invalid.\n *\n * @default true\n */\n replace?: boolean\n /**\n * Props the error message component.\n */\n errorMessageProps?: FieldErrorMessageProps\n /**\n * Props the helper message component.\n */\n helperMessageProps?: FieldHelperMessageProps\n /**\n * Props the label component.\n */\n labelProps?: FieldLabelProps\n}\n\nconst {\n PropsContext: FieldPropsContext,\n usePropsContext: useFieldPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<FieldRootProps, FieldStyle>(\"field\", fieldStyle)\n\nexport { FieldPropsContext, useFieldPropsContext }\n\n/**\n * `Field` is a component used to group form elements with label, helper message, error message, etc.\n *\n * @see https://yamada-ui.com/docs/components/field\n */\nexport const FieldRoot = withProvider<\"div\", FieldRootProps>(\n ({\n id,\n name,\n children,\n disabled,\n errorMessage,\n helperMessage,\n invalid,\n label,\n optionalIndicator,\n readOnly,\n replace,\n required,\n requiredIndicator,\n errorMessageProps,\n helperMessageProps,\n labelProps,\n ...rest\n }) => {\n const uuid = useId()\n const labelId = useId()\n const helperMessageId = useId()\n const errorMessageId = useId()\n const formContext = useFormContext()\n const fieldsetContext = useFieldsetContext()\n const [focused, setFocused] = useState<boolean>(false)\n const [\n omittedChildren,\n customLabel,\n customHelperMessage,\n customErrorMessage,\n ] = useSplitChildren(\n children,\n FieldLabel,\n FieldHelperMessage,\n FieldErrorMessage,\n )\n\n id ??= uuid\n optionalIndicator ??= formContext?.optionalIndicator\n requiredIndicator ??= formContext?.requiredIndicator\n\n disabled ??= fieldsetContext?.disabled\n invalid ??= fieldsetContext?.invalid\n readOnly ??= fieldsetContext?.readOnly\n required ??= fieldsetContext?.required\n\n if (name) {\n disabled ??= isObject(formContext?.disabled)\n ? formContext.disabled[name]\n : formContext?.disabled\n invalid ??= isObject(formContext?.invalid)\n ? formContext.invalid[name]\n : formContext?.invalid\n readOnly ??= isObject(formContext?.readOnly)\n ? formContext.readOnly[name]\n : formContext?.readOnly\n required ??= isObject(formContext?.required)\n ? formContext.required[name]\n : formContext?.required\n replace ??= isObject(formContext?.replace)\n ? (formContext.replace[name] ?? true)\n : (formContext?.replace ?? true)\n errorMessage ??= formContext?.errorMessage?.[name]\n helperMessage ??= formContext?.helperMessage?.[name]\n }\n\n const context = useMemo(\n () => ({\n id,\n disabled,\n errorMessageId,\n focused,\n helperMessageId,\n invalid,\n labelId,\n readOnly,\n replace,\n required,\n onBlur: () => setFocused(false),\n onFocus: () => setFocused(true),\n }),\n [\n id,\n disabled,\n labelId,\n focused,\n invalid,\n helperMessageId,\n errorMessageId,\n readOnly,\n replace,\n required,\n ],\n )\n\n return (\n <FieldContext value={context}>\n <styled.div\n data-disabled={dataAttr(disabled)}\n data-focus={dataAttr(focused)}\n data-invalid={dataAttr(invalid)}\n data-readonly={dataAttr(readOnly)}\n role=\"group\"\n {...rest}\n >\n {customLabel ||\n (label ? (\n <FieldLabel\n optionalIndicator={optionalIndicator}\n requiredIndicator={requiredIndicator}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n ) : null)}\n\n {omittedChildren}\n\n {customHelperMessage ||\n (helperMessage ? (\n <FieldHelperMessage {...helperMessageProps}>\n {helperMessage}\n </FieldHelperMessage>\n ) : null)}\n\n {customErrorMessage ||\n (errorMessage ? (\n <FieldErrorMessage {...errorMessageProps}>\n {errorMessage}\n </FieldErrorMessage>\n ) : null)}\n </styled.div>\n </FieldContext>\n )\n },\n \"root\",\n)()\n\nexport interface FieldLabelProps extends HTMLStyledProps<\"label\"> {\n /**\n * The optional indicator to use.\n */\n optionalIndicator?: ReactNode\n /**\n * If `true`, the field will be required.\n *\n * @default false\n */\n required?: boolean\n /**\n * The required indicator to use.\n */\n requiredIndicator?: ReactNode\n}\n\nexport const FieldLabel = withContext<\"label\", FieldLabelProps>(\n ({\n id,\n htmlFor,\n children,\n optionalIndicator = null,\n required,\n requiredIndicator = null,\n ...rest\n }) => {\n const fieldContext = useFieldContext()\n\n id ??= fieldContext?.labelId\n htmlFor ??= fieldContext?.id\n required ??= fieldContext?.required\n\n return (\n <styled.label\n id={id}\n htmlFor={htmlFor}\n data-disabled={dataAttr(fieldContext?.disabled)}\n data-focus={dataAttr(fieldContext?.focused)}\n data-invalid={dataAttr(fieldContext?.invalid)}\n data-readonly={dataAttr(fieldContext?.readOnly)}\n {...rest}\n >\n {children}\n\n {required ? (\n requiredIndicator ? (\n <FieldRequiredIndicator>{requiredIndicator}</FieldRequiredIndicator>\n ) : (\n <FieldRequiredIndicator />\n )\n ) : (\n optionalIndicator\n )}\n </styled.label>\n )\n },\n \"label\",\n)()\n\ninterface FieldRequiredIndicatorProps extends HTMLStyledProps<\"span\"> {}\n\nconst FieldRequiredIndicator = withContext<\"span\", FieldRequiredIndicatorProps>(\n ({ children, ...rest }) => {\n if (!isValidElement(children)) {\n return (\n <styled.span aria-hidden role=\"presentation\" {...rest}>\n {children ?? <>*</>}\n </styled.span>\n )\n } else {\n return children\n }\n },\n \"requiredIndicator\",\n)()\n\nexport interface FieldHelperMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldHelperMessage = withContext<\"span\", FieldHelperMessageProps>(\n (props) => {\n const { helperMessageId, invalid, replace } = useFieldContext() ?? {}\n\n return (\n <styled.span\n id={helperMessageId}\n hidden={replace && invalid ? true : false}\n {...props}\n />\n )\n },\n \"helperMessage\",\n)()\n\nexport interface FieldErrorMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldErrorMessage = withContext<\"span\", FieldErrorMessageProps>(\n (props) => {\n const { errorMessageId, invalid } = useFieldContext() ?? {}\n\n return (\n <styled.span\n id={errorMessageId}\n aria-live={invalid ? \"polite\" : undefined}\n hidden={!invalid}\n {...props}\n />\n )\n },\n \"errorMessage\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;;;AA4BA,MAAM,CAAC,cAAc,mBAAmBA,gBAA4B;CAClE,MAAM;CACN,QAAQ;CACT,CAAC;AAyEF,MAAM,EACJ,cAAc,mBACd,iBAAiB,sBACjB,aACA,iBACE,oBAAgD,SAAS,WAAW;;;;;;AASxE,MAAa,YAAY,cACtB,EACC,IACA,MACA,UACA,UACA,cACA,eACA,SACA,OACA,mBACA,UACA,SACA,UACA,mBACA,mBACA,oBACA,YACA,GAAG,WACC;CACJ,MAAM,OAAO,OAAO;CACpB,MAAM,UAAU,OAAO;CACvB,MAAM,kBAAkB,OAAO;CAC/B,MAAM,iBAAiB,OAAO;CAC9B,MAAM,cAAc,gBAAgB;CACpC,MAAM,kBAAkB,oBAAoB;CAC5C,MAAM,CAAC,SAAS,cAAc,SAAkB,MAAM;CACtD,MAAM,CACJ,iBACA,aACA,qBACA,sBACE,iBACF,UACA,YACA,oBACA,kBACD;AAED,QAAO;AACP,uBAAsB,aAAa;AACnC,uBAAsB,aAAa;AAEnC,cAAa,iBAAiB;AAC9B,aAAY,iBAAiB;AAC7B,cAAa,iBAAiB;AAC9B,cAAa,iBAAiB;AAE9B,KAAI,MAAM;AACR,2CAAsB,aAAa,SAAS,GACxC,YAAY,SAAS,QACrB,aAAa;AACjB,0CAAqB,aAAa,QAAQ,GACtC,YAAY,QAAQ,QACpB,aAAa;AACjB,2CAAsB,aAAa,SAAS,GACxC,YAAY,SAAS,QACrB,aAAa;AACjB,2CAAsB,aAAa,SAAS,GACxC,YAAY,SAAS,QACrB,aAAa;AACjB,0CAAqB,aAAa,QAAQ,GACrC,YAAY,QAAQ,SAAS,OAC7B,aAAa,WAAW;AAC7B,mBAAiB,aAAa,eAAe;AAC7C,oBAAkB,aAAa,gBAAgB;;AAgCjD,QACE,oBAAC;EAAa,OA9BA,eACP;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,cAAc,WAAW,MAAM;GAC/B,eAAe,WAAW,KAAK;GAChC,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;YAIG,qBAAC,OAAO;GACN,6CAAwB,SAAS;GACjC,0CAAqB,QAAQ;GAC7B,4CAAuB,QAAQ;GAC/B,6CAAwB,SAAS;GACjC,MAAK;GACL,GAAI;;IAEH,gBACE,QACC,oBAAC;KACoB;KACA;KACnB,GAAI;eAEH;MACU,GACX;IAEL;IAEA,wBACE,gBACC,oBAAC;KAAmB,GAAI;eACrB;MACkB,GACnB;IAEL,uBACE,eACC,oBAAC;KAAkB,GAAI;eACpB;MACiB,GAClB;;IACK;GACA;GAGnB,OACD,EAAE;AAmBH,MAAa,aAAa,aACvB,EACC,IACA,SACA,UACA,oBAAoB,MACpB,UACA,oBAAoB,MACpB,GAAG,WACC;CACJ,MAAM,eAAe,iBAAiB;AAEtC,QAAO,cAAc;AACrB,aAAY,cAAc;AAC1B,cAAa,cAAc;AAE3B,QACE,qBAAC,OAAO;EACF;EACK;EACT,6CAAwB,cAAc,SAAS;EAC/C,0CAAqB,cAAc,QAAQ;EAC3C,4CAAuB,cAAc,QAAQ;EAC7C,6CAAwB,cAAc,SAAS;EAC/C,GAAI;aAEH,UAEA,WACC,oBACE,oBAAC,oCAAwB,oBAA2C,GAEpE,oBAAC,2BAAyB,GAG5B;GAEW;GAGnB,QACD,EAAE;AAIH,MAAM,yBAAyB,aAC5B,EAAE,UAAU,GAAG,WAAW;AACzB,KAAI,CAAC,eAAe,SAAS,CAC3B,QACE,oBAAC,OAAO;EAAK;EAAY,MAAK;EAAe,GAAI;YAC9C,YAAY,4CAAE,MAAI;GACP;KAGhB,QAAO;GAGX,oBACD,EAAE;AAIH,MAAa,qBAAqB,aAC/B,UAAU;CACT,MAAM,EAAE,iBAAiB,SAAS,YAAY,iBAAiB,IAAI,EAAE;AAErE,QACE,oBAAC,OAAO;EACN,IAAI;EACJ,QAAQ,WAAW,UAAU,OAAO;EACpC,GAAI;GACJ;GAGN,gBACD,EAAE;AAIH,MAAa,oBAAoB,aAC9B,UAAU;CACT,MAAM,EAAE,gBAAgB,YAAY,iBAAiB,IAAI,EAAE;AAE3D,QACE,oBAAC,OAAO;EACN,IAAI;EACJ,aAAW,UAAU,WAAW;EAChC,QAAQ,CAAC;EACT,GAAI;GACJ;GAGN,eACD,EAAE"}
|
|
@@ -4,14 +4,17 @@ import { useSafeLayoutEffect } from "../../utils/effect.js";
|
|
|
4
4
|
import { utils_exports } from "../../utils/index.js";
|
|
5
5
|
import { useEnvironment } from "../../core/system/environment-provider.js";
|
|
6
6
|
import "../../core/index.js";
|
|
7
|
+
import { useFormContext } from "../form/form.js";
|
|
8
|
+
import "../form/index.js";
|
|
7
9
|
import { useFieldsetContext } from "../fieldset/fieldset.js";
|
|
8
10
|
import "../fieldset/index.js";
|
|
9
11
|
import { useFieldContext } from "./field.js";
|
|
10
12
|
import { useMemo, useState } from "react";
|
|
11
13
|
|
|
12
14
|
//#region src/components/field/use-field-props.ts
|
|
13
|
-
const useFieldProps = ({ id, "aria-describedby": ariaDescribedby, disabled, invalid, notSupportReadOnly, readOnly, required, onBlur, onFocus, ...rest } = {}) => {
|
|
15
|
+
const useFieldProps = ({ id, name, "aria-describedby": ariaDescribedby, disabled, invalid, notSupportReadOnly, readOnly, required, onBlur, onFocus, ...rest } = {}) => {
|
|
14
16
|
const { getDocument } = useEnvironment();
|
|
17
|
+
const formContext = useFormContext();
|
|
15
18
|
const fieldsetContext = useFieldsetContext();
|
|
16
19
|
const fieldContext = useFieldContext();
|
|
17
20
|
const [errorMessageId, setErrorMessageId] = useState(void 0);
|
|
@@ -21,6 +24,12 @@ const useFieldProps = ({ id, "aria-describedby": ariaDescribedby, disabled, inva
|
|
|
21
24
|
required ??= fieldContext?.required ?? fieldsetContext?.required;
|
|
22
25
|
readOnly ??= fieldContext?.readOnly ?? fieldsetContext?.readOnly;
|
|
23
26
|
invalid ??= fieldContext?.invalid ?? fieldsetContext?.invalid;
|
|
27
|
+
if (name) {
|
|
28
|
+
disabled ??= (0, utils_exports.isObject)(formContext?.disabled) ? formContext.disabled[name] : formContext?.disabled;
|
|
29
|
+
required ??= (0, utils_exports.isObject)(formContext?.required) ? formContext.required[name] : formContext?.required;
|
|
30
|
+
readOnly ??= (0, utils_exports.isObject)(formContext?.readOnly) ? formContext.readOnly[name] : formContext?.readOnly;
|
|
31
|
+
invalid ??= (0, utils_exports.isObject)(formContext?.invalid) ? formContext.invalid[name] : formContext?.invalid;
|
|
32
|
+
}
|
|
24
33
|
useSafeLayoutEffect(() => {
|
|
25
34
|
const hasErrorMessage = !!fieldContext?.errorMessageId && !!getDocument()?.getElementById(fieldContext.errorMessageId);
|
|
26
35
|
const hasHelperMessage = !!fieldContext?.helperMessageId && !!getDocument()?.getElementById(fieldContext.helperMessageId);
|
|
@@ -34,12 +43,14 @@ const useFieldProps = ({ id, "aria-describedby": ariaDescribedby, disabled, inva
|
|
|
34
43
|
]);
|
|
35
44
|
const props = useMemo(() => ({
|
|
36
45
|
id,
|
|
46
|
+
name,
|
|
37
47
|
disabled,
|
|
38
48
|
readOnly,
|
|
39
49
|
required,
|
|
40
50
|
...rest
|
|
41
51
|
}), [
|
|
42
52
|
id,
|
|
53
|
+
name,
|
|
43
54
|
disabled,
|
|
44
55
|
readOnly,
|
|
45
56
|
required,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-field-props.js","names":[],"sources":["../../../../src/components/field/use-field-props.ts"],"sourcesContent":["\"use client\"\n\nimport type { FocusEventHandler } from \"react\"\nimport type { Dict } from \"../../utils\"\nimport type { FieldProps } from \"./field\"\nimport { useMemo, useState } from \"react\"\nimport { useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n cx,\n dataAttr,\n handlerAll,\n useSafeLayoutEffect,\n} from \"../../utils\"\nimport { useFieldsetContext } from \"../fieldset\"\nimport { useFieldContext } from \"./field\"\n\nexport interface UseFieldProps<Y extends HTMLElement> extends FieldProps {\n id?: string\n notSupportReadOnly?: boolean\n onBlur?: FocusEventHandler<Y>\n onFocus?: FocusEventHandler<Y>\n}\n\nexport const useFieldProps = <Y extends HTMLElement, M extends Dict>(\n {\n id,\n \"aria-describedby\": ariaDescribedby,\n disabled,\n invalid,\n notSupportReadOnly,\n readOnly,\n required,\n onBlur,\n onFocus,\n ...rest\n }: M & UseFieldProps<Y> = {} as M & UseFieldProps<Y>,\n) => {\n const { getDocument } = useEnvironment()\n const fieldsetContext = useFieldsetContext()\n const fieldContext = useFieldContext()\n const [errorMessageId, setErrorMessageId] = useState<string | undefined>(\n undefined,\n )\n const [helperMessageId, setHelperMessageId] = useState<string | undefined>(\n undefined,\n )\n\n id ??= fieldContext?.id\n disabled ??= fieldContext?.disabled ?? fieldsetContext?.disabled\n required ??= fieldContext?.required ?? fieldsetContext?.required\n readOnly ??= fieldContext?.readOnly ?? fieldsetContext?.readOnly\n invalid ??= fieldContext?.invalid ?? fieldsetContext?.invalid\n\n useSafeLayoutEffect(() => {\n const hasErrorMessage =\n !!fieldContext?.errorMessageId &&\n !!getDocument()?.getElementById(fieldContext.errorMessageId)\n const hasHelperMessage =\n !!fieldContext?.helperMessageId &&\n !!getDocument()?.getElementById(fieldContext.helperMessageId)\n\n setErrorMessageId(\n invalid && hasErrorMessage ? fieldContext.errorMessageId : undefined,\n )\n setHelperMessageId(\n (!fieldContext?.replace || !invalid) && hasHelperMessage\n ? fieldContext.helperMessageId\n : undefined,\n )\n }, [\n fieldContext?.errorMessageId,\n fieldContext?.helperMessageId,\n fieldContext?.replace,\n invalid,\n ])\n\n const props = useMemo(\n () => ({\n id,\n disabled,\n readOnly,\n required,\n ...rest,\n }),\n [id, disabled, readOnly, required, rest],\n )\n const dataProps = useMemo(\n () => ({\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n \"data-required\": dataAttr(required),\n }),\n [disabled, invalid, readOnly, required],\n )\n const ariaProps = useMemo(\n () => ({\n \"aria-describedby\":\n ariaDescribedby ?? cx(errorMessageId, helperMessageId),\n \"aria-disabled\": ariaAttr(\n notSupportReadOnly ? readOnly || disabled : disabled,\n ),\n \"aria-invalid\": ariaAttr(invalid),\n \"aria-readonly\": notSupportReadOnly ? undefined : ariaAttr(readOnly),\n \"aria-required\": ariaAttr(required),\n }),\n [\n errorMessageId,\n helperMessageId,\n ariaDescribedby,\n notSupportReadOnly,\n readOnly,\n disabled,\n invalid,\n required,\n ],\n )\n const eventProps = useMemo(\n () => ({\n onBlur: handlerAll(fieldContext?.onBlur, onBlur),\n onFocus: handlerAll(fieldContext?.onFocus, onFocus),\n }),\n [fieldContext?.onBlur, fieldContext?.onFocus, onBlur, onFocus],\n )\n\n return {\n context: fieldContext,\n props,\n ariaProps,\n dataProps,\n eventProps,\n }\n}\n\nexport const resetFieldProps = {\n disabled: false,\n invalid: false,\n readOnly: false,\n required: false,\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-field-props.js","names":[],"sources":["../../../../src/components/field/use-field-props.ts"],"sourcesContent":["\"use client\"\n\nimport type { FocusEventHandler } from \"react\"\nimport type { Dict } from \"../../utils\"\nimport type { FieldProps } from \"./field\"\nimport { useMemo, useState } from \"react\"\nimport { useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n cx,\n dataAttr,\n handlerAll,\n isObject,\n useSafeLayoutEffect,\n} from \"../../utils\"\nimport { useFieldsetContext } from \"../fieldset\"\nimport { useFormContext } from \"../form\"\nimport { useFieldContext } from \"./field\"\n\nexport interface UseFieldProps<Y extends HTMLElement> extends FieldProps {\n id?: string\n name?: string\n notSupportReadOnly?: boolean\n onBlur?: FocusEventHandler<Y>\n onFocus?: FocusEventHandler<Y>\n}\n\nexport const useFieldProps = <Y extends HTMLElement, M extends Dict>(\n {\n id,\n name,\n \"aria-describedby\": ariaDescribedby,\n disabled,\n invalid,\n notSupportReadOnly,\n readOnly,\n required,\n onBlur,\n onFocus,\n ...rest\n }: M & UseFieldProps<Y> = {} as M & UseFieldProps<Y>,\n) => {\n const { getDocument } = useEnvironment()\n const formContext = useFormContext()\n const fieldsetContext = useFieldsetContext()\n const fieldContext = useFieldContext()\n const [errorMessageId, setErrorMessageId] = useState<string | undefined>(\n undefined,\n )\n const [helperMessageId, setHelperMessageId] = useState<string | undefined>(\n undefined,\n )\n\n id ??= fieldContext?.id\n disabled ??= fieldContext?.disabled ?? fieldsetContext?.disabled\n required ??= fieldContext?.required ?? fieldsetContext?.required\n readOnly ??= fieldContext?.readOnly ?? fieldsetContext?.readOnly\n invalid ??= fieldContext?.invalid ?? fieldsetContext?.invalid\n\n if (name) {\n disabled ??= isObject(formContext?.disabled)\n ? formContext.disabled[name]\n : formContext?.disabled\n required ??= isObject(formContext?.required)\n ? formContext.required[name]\n : formContext?.required\n readOnly ??= isObject(formContext?.readOnly)\n ? formContext.readOnly[name]\n : formContext?.readOnly\n invalid ??= isObject(formContext?.invalid)\n ? formContext.invalid[name]\n : formContext?.invalid\n }\n\n useSafeLayoutEffect(() => {\n const hasErrorMessage =\n !!fieldContext?.errorMessageId &&\n !!getDocument()?.getElementById(fieldContext.errorMessageId)\n const hasHelperMessage =\n !!fieldContext?.helperMessageId &&\n !!getDocument()?.getElementById(fieldContext.helperMessageId)\n\n setErrorMessageId(\n invalid && hasErrorMessage ? fieldContext.errorMessageId : undefined,\n )\n setHelperMessageId(\n (!fieldContext?.replace || !invalid) && hasHelperMessage\n ? fieldContext.helperMessageId\n : undefined,\n )\n }, [\n fieldContext?.errorMessageId,\n fieldContext?.helperMessageId,\n fieldContext?.replace,\n invalid,\n ])\n\n const props = useMemo(\n () => ({\n id,\n name,\n disabled,\n readOnly,\n required,\n ...rest,\n }),\n [id, name, disabled, readOnly, required, rest],\n )\n const dataProps = useMemo(\n () => ({\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n \"data-required\": dataAttr(required),\n }),\n [disabled, invalid, readOnly, required],\n )\n const ariaProps = useMemo(\n () => ({\n \"aria-describedby\":\n ariaDescribedby ?? cx(errorMessageId, helperMessageId),\n \"aria-disabled\": ariaAttr(\n notSupportReadOnly ? readOnly || disabled : disabled,\n ),\n \"aria-invalid\": ariaAttr(invalid),\n \"aria-readonly\": notSupportReadOnly ? undefined : ariaAttr(readOnly),\n \"aria-required\": ariaAttr(required),\n }),\n [\n errorMessageId,\n helperMessageId,\n ariaDescribedby,\n notSupportReadOnly,\n readOnly,\n disabled,\n invalid,\n required,\n ],\n )\n const eventProps = useMemo(\n () => ({\n onBlur: handlerAll(fieldContext?.onBlur, onBlur),\n onFocus: handlerAll(fieldContext?.onFocus, onFocus),\n }),\n [fieldContext?.onBlur, fieldContext?.onFocus, onBlur, onFocus],\n )\n\n return {\n context: fieldContext,\n props,\n ariaProps,\n dataProps,\n eventProps,\n }\n}\n\nexport const resetFieldProps = {\n disabled: false,\n invalid: false,\n readOnly: false,\n required: false,\n}\n"],"mappings":";;;;;;;;;;;;;;AA2BA,MAAa,iBACX,EACE,IACA,MACA,oBAAoB,iBACpB,UACA,SACA,oBACA,UACA,UACA,QACA,SACA,GAAG,SACqB,EAAE,KACzB;CACH,MAAM,EAAE,gBAAgB,gBAAgB;CACxC,MAAM,cAAc,gBAAgB;CACpC,MAAM,kBAAkB,oBAAoB;CAC5C,MAAM,eAAe,iBAAiB;CACtC,MAAM,CAAC,gBAAgB,qBAAqB,SAC1C,OACD;CACD,MAAM,CAAC,iBAAiB,sBAAsB,SAC5C,OACD;AAED,QAAO,cAAc;AACrB,cAAa,cAAc,YAAY,iBAAiB;AACxD,cAAa,cAAc,YAAY,iBAAiB;AACxD,cAAa,cAAc,YAAY,iBAAiB;AACxD,aAAY,cAAc,WAAW,iBAAiB;AAEtD,KAAI,MAAM;AACR,2CAAsB,aAAa,SAAS,GACxC,YAAY,SAAS,QACrB,aAAa;AACjB,2CAAsB,aAAa,SAAS,GACxC,YAAY,SAAS,QACrB,aAAa;AACjB,2CAAsB,aAAa,SAAS,GACxC,YAAY,SAAS,QACrB,aAAa;AACjB,0CAAqB,aAAa,QAAQ,GACtC,YAAY,QAAQ,QACpB,aAAa;;AAGnB,2BAA0B;EACxB,MAAM,kBACJ,CAAC,CAAC,cAAc,kBAChB,CAAC,CAAC,aAAa,EAAE,eAAe,aAAa,eAAe;EAC9D,MAAM,mBACJ,CAAC,CAAC,cAAc,mBAChB,CAAC,CAAC,aAAa,EAAE,eAAe,aAAa,gBAAgB;AAE/D,oBACE,WAAW,kBAAkB,aAAa,iBAAiB,OAC5D;AACD,sBACG,CAAC,cAAc,WAAW,CAAC,YAAY,mBACpC,aAAa,kBACb,OACL;IACA;EACD,cAAc;EACd,cAAc;EACd,cAAc;EACd;EACD,CAAC;CAEF,MAAM,QAAQ,eACL;EACL;EACA;EACA;EACA;EACA;EACA,GAAG;EACJ,GACD;EAAC;EAAI;EAAM;EAAU;EAAU;EAAU;EAAK,CAC/C;CACD,MAAM,YAAY,eACT;EACL,6CAA0B,SAAS;EACnC,4CAAyB,QAAQ;EACjC,6CAA0B,SAAS;EACnC,6CAA0B,SAAS;EACpC,GACD;EAAC;EAAU;EAAS;EAAU;EAAS,CACxC;AA+BD,QAAO;EACL,SAAS;EACT;EACA,WAjCgB,eACT;GACL,oBACE,yCAAsB,gBAAgB,gBAAgB;GACxD,6CACE,qBAAqB,YAAY,WAAW,SAC7C;GACD,4CAAyB,QAAQ;GACjC,iBAAiB,qBAAqB,qCAAqB,SAAS;GACpE,6CAA0B,SAAS;GACpC,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAaC;EACA,YAbiB,eACV;GACL,sCAAmB,cAAc,QAAQ,OAAO;GAChD,uCAAoB,cAAc,SAAS,QAAQ;GACpD,GACD;GAAC,cAAc;GAAQ,cAAc;GAAS;GAAQ;GAAQ,CAC/D;EAQA;;AAGH,MAAa,kBAAkB;CAC7B,UAAU;CACV,SAAS;CACT,UAAU;CACV,UAAU;CACX"}
|
|
@@ -7,6 +7,8 @@ import { styled } from "../../core/system/factory.js";
|
|
|
7
7
|
import { createSlotComponent } from "../../core/components/create-component.js";
|
|
8
8
|
import "../../core/index.js";
|
|
9
9
|
import { fieldsetStyle } from "./fieldset.style.js";
|
|
10
|
+
import { useFormContext } from "../form/form.js";
|
|
11
|
+
import "../form/index.js";
|
|
10
12
|
import { useId, useMemo } from "react";
|
|
11
13
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
14
|
|
|
@@ -21,7 +23,7 @@ const { PropsContext: FieldsetPropsContext, usePropsContext: useFieldsetPropsCon
|
|
|
21
23
|
*
|
|
22
24
|
* @see https://yamada-ui.com/docs/components/fieldset
|
|
23
25
|
*/
|
|
24
|
-
const FieldsetRoot = withProvider(({ id, children, disabled, errorMessage, helperMessage, invalid, legend, readOnly, required, contentProps, errorMessageProps, headerProps, helperMessageProps, legendProps, ...rest }) => {
|
|
26
|
+
const FieldsetRoot = withProvider(({ id, "aria-labelledby": ariaLabelledBy, children, disabled, errorMessage, helperMessage, invalid, legend, readOnly, required, contentProps, errorMessageProps, headerProps, helperMessageProps, legendProps, ...rest }) => {
|
|
25
27
|
const uuid = useId();
|
|
26
28
|
const [omittedChildren, customLegend, customHeader, customContent, customHelperMessage, customErrorMessage] = useSplitChildren(children, FieldsetLegend, FieldsetHeader, FieldsetContent, FieldsetHelperMessage, FieldsetErrorMessage);
|
|
27
29
|
id ??= uuid;
|
|
@@ -40,6 +42,7 @@ const FieldsetRoot = withProvider(({ id, children, disabled, errorMessage, helpe
|
|
|
40
42
|
required
|
|
41
43
|
]),
|
|
42
44
|
children: /* @__PURE__ */ jsxs(styled.fieldset, {
|
|
45
|
+
"aria-labelledby": (0, utils_exports.cx)(id, ariaLabelledBy),
|
|
43
46
|
...rest,
|
|
44
47
|
children: [
|
|
45
48
|
customHeader || /* @__PURE__ */ jsxs(FieldsetHeader, {
|
|
@@ -63,7 +66,14 @@ const FieldsetRoot = withProvider(({ id, children, disabled, errorMessage, helpe
|
|
|
63
66
|
]
|
|
64
67
|
})
|
|
65
68
|
});
|
|
66
|
-
}, "root")()
|
|
69
|
+
}, "root")((props) => {
|
|
70
|
+
const { size, variant } = useFormContext() ?? {};
|
|
71
|
+
return {
|
|
72
|
+
size,
|
|
73
|
+
variant,
|
|
74
|
+
...props
|
|
75
|
+
};
|
|
76
|
+
});
|
|
67
77
|
const FieldsetLegend = withContext("legend", "legend")(void 0, (props) => {
|
|
68
78
|
const { id, disabled, invalid } = useFieldsetContext() ?? {};
|
|
69
79
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldset.js","names":["createContext"],"sources":["../../../../src/components/fieldset/fieldset.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport type { FieldsetStyle } from \"./fieldset.style\"\nimport { useId, useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { createContext, dataAttr, useSplitChildren } from \"../../utils\"\nimport { fieldsetStyle } from \"./fieldset.style\"\n\ninterface FieldsetContext extends Pick<\n FieldsetRootProps,\n \"disabled\" | \"invalid\" | \"readOnly\" | \"required\"\n> {\n id?: string\n}\n\nconst [FieldsetContext, useFieldsetContext] = createContext<FieldsetContext>({\n name: \"FieldsetContext\",\n strict: false,\n})\n\nexport { FieldsetContext, useFieldsetContext }\n\nexport interface FieldsetRootProps\n extends HTMLStyledProps<\"fieldset\">, ThemeProps<FieldsetStyle>, FieldProps {\n /**\n * The fieldset error message to use.\n */\n errorMessage?: ReactNode\n /**\n * The fieldset helper message to use.\n */\n helperMessage?: ReactNode\n /**\n * The fieldset legend to use.\n */\n legend?: ReactNode\n /**\n * Props the content component.\n */\n contentProps?: FieldsetContentProps\n /**\n * Props the error message component.\n */\n errorMessageProps?: FieldsetErrorMessageProps\n /**\n * Props the header component.\n */\n headerProps?: FieldsetHeaderProps\n /**\n * Props the helper message component.\n */\n helperMessageProps?: FieldsetHelperMessageProps\n /**\n * Props the legend component.\n */\n legendProps?: FieldsetLegendProps\n}\n\nconst {\n PropsContext: FieldsetPropsContext,\n usePropsContext: useFieldsetPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<FieldsetRootProps, FieldsetStyle, FieldsetContext>(\n \"fieldset\",\n fieldsetStyle,\n)\n\nexport { FieldsetPropsContext, useFieldsetPropsContext }\n\n/**\n * `Fieldset` is a component used to group multiple controls.\n *\n * @see https://yamada-ui.com/docs/components/fieldset\n */\nexport const FieldsetRoot = withProvider<\"fieldset\", FieldsetRootProps>(\n ({\n id,\n children,\n disabled,\n errorMessage,\n helperMessage,\n invalid,\n legend,\n readOnly,\n required,\n contentProps,\n errorMessageProps,\n headerProps,\n helperMessageProps,\n legendProps,\n ...rest\n }) => {\n const uuid = useId()\n const [\n omittedChildren,\n customLegend,\n customHeader,\n customContent,\n customHelperMessage,\n customErrorMessage,\n ] = useSplitChildren(\n children,\n FieldsetLegend,\n FieldsetHeader,\n FieldsetContent,\n FieldsetHelperMessage,\n FieldsetErrorMessage,\n )\n\n id ??= uuid\n\n const context = useMemo(\n () => ({\n id,\n disabled,\n invalid,\n readOnly,\n required,\n }),\n [id, disabled, invalid, readOnly, required],\n )\n\n return (\n <FieldsetContext value={context}>\n <styled.fieldset {...rest}>\n {customHeader || (\n <FieldsetHeader {...headerProps}>\n {customLegend ||\n (legend ? (\n <FieldsetLegend {...legendProps}>{legend}</FieldsetLegend>\n ) : null)}\n\n {customHelperMessage ||\n (helperMessage ? (\n <FieldsetHelperMessage {...helperMessageProps}>\n {helperMessage}\n </FieldsetHelperMessage>\n ) : null)}\n </FieldsetHeader>\n )}\n\n {customContent || (\n <FieldsetContent {...contentProps}>\n {omittedChildren}\n </FieldsetContent>\n )}\n\n {customErrorMessage ||\n (errorMessage ? (\n <FieldsetErrorMessage {...errorMessageProps}>\n {errorMessage}\n </FieldsetErrorMessage>\n ) : null)}\n </styled.fieldset>\n </FieldsetContext>\n )\n },\n \"root\",\n)()\n\nexport interface FieldsetLegendProps extends HTMLStyledProps<\"legend\"> {}\n\nexport const FieldsetLegend = withContext<\"legend\", FieldsetLegendProps>(\n \"legend\",\n \"legend\",\n)(undefined, (props) => {\n const { id, disabled, invalid } = useFieldsetContext() ?? {}\n\n return {\n id,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n ...props,\n }\n})\n\nexport interface FieldsetHeaderProps extends HTMLStyledProps {}\n\nexport const FieldsetHeader = withContext<\"div\", FieldsetHeaderProps>(\n \"div\",\n \"header\",\n)()\n\nexport interface FieldsetContentProps extends HTMLStyledProps {}\n\nexport const FieldsetContent = withContext<\"div\", FieldsetContentProps>(\n \"div\",\n \"content\",\n)()\n\nexport interface FieldsetHelperMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldsetHelperMessage = withContext<\n \"span\",\n FieldsetHelperMessageProps\n>(\"span\", \"helperMessage\")(undefined, (props) => {\n const { id } = useFieldsetContext() ?? {}\n\n return { \"aria-describedby\": id, ...props }\n})\n\nexport interface FieldsetErrorMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldsetErrorMessage = withContext<\n \"span\",\n FieldsetErrorMessageProps\n>((props) => {\n const { invalid } = useFieldsetContext() ?? {}\n\n return (\n <styled.span\n aria-live={invalid ? \"polite\" : undefined}\n hidden={!invalid}\n {...props}\n />\n )\n}, \"errorMessage\")()\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"fieldset.js","names":["createContext"],"sources":["../../../../src/components/fieldset/fieldset.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport type { FieldsetStyle } from \"./fieldset.style\"\nimport { useId, useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { createContext, cx, dataAttr, useSplitChildren } from \"../../utils\"\nimport { useFormContext } from \"../form\"\nimport { fieldsetStyle } from \"./fieldset.style\"\n\ninterface FieldsetContext extends Pick<\n FieldsetRootProps,\n \"disabled\" | \"invalid\" | \"readOnly\" | \"required\"\n> {\n id?: string\n}\n\nconst [FieldsetContext, useFieldsetContext] = createContext<FieldsetContext>({\n name: \"FieldsetContext\",\n strict: false,\n})\n\nexport { FieldsetContext, useFieldsetContext }\n\nexport interface FieldsetRootProps\n extends HTMLStyledProps<\"fieldset\">, ThemeProps<FieldsetStyle>, FieldProps {\n /**\n * The fieldset error message to use.\n */\n errorMessage?: ReactNode\n /**\n * The fieldset helper message to use.\n */\n helperMessage?: ReactNode\n /**\n * The fieldset legend to use.\n */\n legend?: ReactNode\n /**\n * Props the content component.\n */\n contentProps?: FieldsetContentProps\n /**\n * Props the error message component.\n */\n errorMessageProps?: FieldsetErrorMessageProps\n /**\n * Props the header component.\n */\n headerProps?: FieldsetHeaderProps\n /**\n * Props the helper message component.\n */\n helperMessageProps?: FieldsetHelperMessageProps\n /**\n * Props the legend component.\n */\n legendProps?: FieldsetLegendProps\n}\n\nconst {\n PropsContext: FieldsetPropsContext,\n usePropsContext: useFieldsetPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<FieldsetRootProps, FieldsetStyle, FieldsetContext>(\n \"fieldset\",\n fieldsetStyle,\n)\n\nexport { FieldsetPropsContext, useFieldsetPropsContext }\n\n/**\n * `Fieldset` is a component used to group multiple controls.\n *\n * @see https://yamada-ui.com/docs/components/fieldset\n */\nexport const FieldsetRoot = withProvider<\"fieldset\", FieldsetRootProps>(\n ({\n id,\n \"aria-labelledby\": ariaLabelledBy,\n children,\n disabled,\n errorMessage,\n helperMessage,\n invalid,\n legend,\n readOnly,\n required,\n contentProps,\n errorMessageProps,\n headerProps,\n helperMessageProps,\n legendProps,\n ...rest\n }) => {\n const uuid = useId()\n const [\n omittedChildren,\n customLegend,\n customHeader,\n customContent,\n customHelperMessage,\n customErrorMessage,\n ] = useSplitChildren(\n children,\n FieldsetLegend,\n FieldsetHeader,\n FieldsetContent,\n FieldsetHelperMessage,\n FieldsetErrorMessage,\n )\n\n id ??= uuid\n\n const context = useMemo(\n () => ({\n id,\n disabled,\n invalid,\n readOnly,\n required,\n }),\n [id, disabled, invalid, readOnly, required],\n )\n\n return (\n <FieldsetContext value={context}>\n <styled.fieldset aria-labelledby={cx(id, ariaLabelledBy)} {...rest}>\n {customHeader || (\n <FieldsetHeader {...headerProps}>\n {customLegend ||\n (legend ? (\n <FieldsetLegend {...legendProps}>{legend}</FieldsetLegend>\n ) : null)}\n\n {customHelperMessage ||\n (helperMessage ? (\n <FieldsetHelperMessage {...helperMessageProps}>\n {helperMessage}\n </FieldsetHelperMessage>\n ) : null)}\n </FieldsetHeader>\n )}\n\n {customContent || (\n <FieldsetContent {...contentProps}>\n {omittedChildren}\n </FieldsetContent>\n )}\n\n {customErrorMessage ||\n (errorMessage ? (\n <FieldsetErrorMessage {...errorMessageProps}>\n {errorMessage}\n </FieldsetErrorMessage>\n ) : null)}\n </styled.fieldset>\n </FieldsetContext>\n )\n },\n \"root\",\n)((props) => {\n const { size, variant } = useFormContext() ?? {}\n\n return { size, variant, ...props }\n})\n\nexport interface FieldsetLegendProps extends HTMLStyledProps<\"legend\"> {}\n\nexport const FieldsetLegend = withContext<\"legend\", FieldsetLegendProps>(\n \"legend\",\n \"legend\",\n)(undefined, (props) => {\n const { id, disabled, invalid } = useFieldsetContext() ?? {}\n\n return {\n id,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n ...props,\n }\n})\n\nexport interface FieldsetHeaderProps extends HTMLStyledProps {}\n\nexport const FieldsetHeader = withContext<\"div\", FieldsetHeaderProps>(\n \"div\",\n \"header\",\n)()\n\nexport interface FieldsetContentProps extends HTMLStyledProps {}\n\nexport const FieldsetContent = withContext<\"div\", FieldsetContentProps>(\n \"div\",\n \"content\",\n)()\n\nexport interface FieldsetHelperMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldsetHelperMessage = withContext<\n \"span\",\n FieldsetHelperMessageProps\n>(\"span\", \"helperMessage\")(undefined, (props) => {\n const { id } = useFieldsetContext() ?? {}\n\n return { \"aria-describedby\": id, ...props }\n})\n\nexport interface FieldsetErrorMessageProps extends HTMLStyledProps<\"span\"> {}\n\nexport const FieldsetErrorMessage = withContext<\n \"span\",\n FieldsetErrorMessageProps\n>((props) => {\n const { invalid } = useFieldsetContext() ?? {}\n\n return (\n <styled.span\n aria-live={invalid ? \"polite\" : undefined}\n hidden={!invalid}\n {...props}\n />\n )\n}, \"errorMessage\")()\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,MAAM,CAAC,iBAAiB,sBAAsBA,gBAA+B;CAC3E,MAAM;CACN,QAAQ;CACT,CAAC;AAwCF,MAAM,EACJ,cAAc,sBACd,iBAAiB,yBACjB,aACA,iBACE,oBACF,YACA,cACD;;;;;;AASD,MAAa,eAAe,cACzB,EACC,IACA,mBAAmB,gBACnB,UACA,UACA,cACA,eACA,SACA,QACA,UACA,UACA,cACA,mBACA,aACA,oBACA,aACA,GAAG,WACC;CACJ,MAAM,OAAO,OAAO;CACpB,MAAM,CACJ,iBACA,cACA,cACA,eACA,qBACA,sBACE,iBACF,UACA,gBACA,gBACA,iBACA,uBACA,qBACD;AAED,QAAO;AAaP,QACE,oBAAC;EAAgB,OAZH,eACP;GACL;GACA;GACA;GACA;GACA;GACD,GACD;GAAC;GAAI;GAAU;GAAS;GAAU;GAAS,CAC5C;YAIG,qBAAC,OAAO;GAAS,yCAAoB,IAAI,eAAe;GAAE,GAAI;;IAC3D,gBACC,qBAAC;KAAe,GAAI;gBACjB,iBACE,SACC,oBAAC;MAAe,GAAI;gBAAc;OAAwB,GACxD,OAEL,wBACE,gBACC,oBAAC;MAAsB,GAAI;gBACxB;OACqB,GACtB;MACS;IAGlB,iBACC,oBAAC;KAAgB,GAAI;eAClB;MACe;IAGnB,uBACE,eACC,oBAAC;KAAqB,GAAI;eACvB;MACoB,GACrB;;IACU;GACF;GAGtB,OACD,EAAE,UAAU;CACX,MAAM,EAAE,MAAM,YAAY,gBAAgB,IAAI,EAAE;AAEhD,QAAO;EAAE;EAAM;EAAS,GAAG;EAAO;EAClC;AAIF,MAAa,iBAAiB,YAC5B,UACA,SACD,CAAC,SAAY,UAAU;CACtB,MAAM,EAAE,IAAI,UAAU,YAAY,oBAAoB,IAAI,EAAE;AAE5D,QAAO;EACL;EACA,6CAA0B,SAAS;EACnC,4CAAyB,QAAQ;EACjC,GAAG;EACJ;EACD;AAIF,MAAa,iBAAiB,YAC5B,OACA,SACD,EAAE;AAIH,MAAa,kBAAkB,YAC7B,OACA,UACD,EAAE;AAIH,MAAa,wBAAwB,YAGnC,QAAQ,gBAAgB,CAAC,SAAY,UAAU;CAC/C,MAAM,EAAE,OAAO,oBAAoB,IAAI,EAAE;AAEzC,QAAO;EAAE,oBAAoB;EAAI,GAAG;EAAO;EAC3C;AAIF,MAAa,uBAAuB,aAGjC,UAAU;CACX,MAAM,EAAE,YAAY,oBAAoB,IAAI,EAAE;AAE9C,QACE,oBAAC,OAAO;EACN,aAAW,UAAU,WAAW;EAChC,QAAQ,CAAC;EACT,GAAI;GACJ;GAEH,eAAe,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldset.style.js","names":[],"sources":["../../../../src/components/fieldset/fieldset.style.ts"],"sourcesContent":["import { defineComponentSlotStyle } from \"../../core\"\n\nexport const fieldsetStyle = defineComponentSlotStyle({\n base: {\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n w: \"full\",\n },\n errorMessage: {\n alignItems: \"center\",\n color: \"fg.error\",\n display: \"inline-flex\",\n gap: \"1\",\n },\n header: {\n display: \"flex\",\n flexDirection: \"column\",\n w: \"full\",\n },\n helperMessage: {\n alignItems: \"center\",\n color: \"fg.muted\",\n display: \"inline-flex\",\n gap: \"1\",\n },\n legend: {\n fontWeight: \"medium\",\n _disabled: {
|
|
1
|
+
{"version":3,"file":"fieldset.style.js","names":[],"sources":["../../../../src/components/fieldset/fieldset.style.ts"],"sourcesContent":["import { defineComponentSlotStyle } from \"../../core\"\n\nexport const fieldsetStyle = defineComponentSlotStyle({\n base: {\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n w: \"full\",\n },\n errorMessage: {\n alignItems: \"center\",\n color: \"fg.error\",\n display: \"inline-flex\",\n gap: \"1\",\n },\n header: {\n display: \"flex\",\n flexDirection: \"column\",\n w: \"full\",\n },\n helperMessage: {\n alignItems: \"center\",\n color: \"fg.muted\",\n display: \"inline-flex\",\n gap: \"1\",\n },\n legend: {\n fontWeight: \"medium\",\n _disabled: { opacity: 0.4 },\n },\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n w: \"full\",\n },\n },\n\n variants: {\n elevated: { root: { bg: \"bg.panel\", boxShadow: \"md\" } },\n outline: { root: { borderWidth: \"1px\" } },\n panel: { root: { layerStyle: \"panel\" } },\n plain: { root: {} },\n },\n\n sizes: {\n sm: {\n content: { gap: \"3\" },\n errorMessage: { fontSize: \"sm\" },\n header: { gap: \"1\" },\n helperMessage: { fontSize: \"sm\" },\n legend: { fontSize: \"md\" },\n root: { gap: \"3\" },\n },\n md: {\n content: { gap: \"4\" },\n errorMessage: { fontSize: \"sm\" },\n header: { gap: \"1\" },\n helperMessage: { fontSize: \"sm\" },\n legend: { fontSize: \"md\" },\n root: { gap: \"4\" },\n },\n lg: {\n content: { gap: \"6\" },\n errorMessage: { fontSize: \"md\" },\n header: { gap: \"1\" },\n helperMessage: { fontSize: \"md\" },\n legend: { fontSize: \"lg\" },\n root: { gap: \"6\" },\n },\n },\n\n compounds: [\n {\n css: { root: { p: \"3\", rounded: \"l2\" } },\n size: \"sm\",\n variant: [\"elevated\", \"outline\", \"panel\"],\n },\n {\n css: { root: { p: \"4\", rounded: \"l2\" } },\n size: \"md\",\n variant: [\"elevated\", \"outline\", \"panel\"],\n },\n {\n css: { root: { p: \"6\", rounded: \"l2\" } },\n size: \"lg\",\n variant: [\"elevated\", \"outline\", \"panel\"],\n },\n ],\n\n defaultProps: {\n size: \"md\",\n variant: \"plain\",\n },\n})\n\nexport type FieldsetStyle = typeof fieldsetStyle\n"],"mappings":";;;;AAEA,MAAa,gBAAgB,yBAAyB;CACpD,MAAM;EACJ,SAAS;GACP,SAAS;GACT,eAAe;GACf,GAAG;GACJ;EACD,cAAc;GACZ,YAAY;GACZ,OAAO;GACP,SAAS;GACT,KAAK;GACN;EACD,QAAQ;GACN,SAAS;GACT,eAAe;GACf,GAAG;GACJ;EACD,eAAe;GACb,YAAY;GACZ,OAAO;GACP,SAAS;GACT,KAAK;GACN;EACD,QAAQ;GACN,YAAY;GACZ,WAAW,EAAE,SAAS,IAAK;GAC5B;EACD,MAAM;GACJ,SAAS;GACT,eAAe;GACf,GAAG;GACJ;EACF;CAED,UAAU;EACR,UAAU,EAAE,MAAM;GAAE,IAAI;GAAY,WAAW;GAAM,EAAE;EACvD,SAAS,EAAE,MAAM,EAAE,aAAa,OAAO,EAAE;EACzC,OAAO,EAAE,MAAM,EAAE,YAAY,SAAS,EAAE;EACxC,OAAO,EAAE,MAAM,EAAE,EAAE;EACpB;CAED,OAAO;EACL,IAAI;GACF,SAAS,EAAE,KAAK,KAAK;GACrB,cAAc,EAAE,UAAU,MAAM;GAChC,QAAQ,EAAE,KAAK,KAAK;GACpB,eAAe,EAAE,UAAU,MAAM;GACjC,QAAQ,EAAE,UAAU,MAAM;GAC1B,MAAM,EAAE,KAAK,KAAK;GACnB;EACD,IAAI;GACF,SAAS,EAAE,KAAK,KAAK;GACrB,cAAc,EAAE,UAAU,MAAM;GAChC,QAAQ,EAAE,KAAK,KAAK;GACpB,eAAe,EAAE,UAAU,MAAM;GACjC,QAAQ,EAAE,UAAU,MAAM;GAC1B,MAAM,EAAE,KAAK,KAAK;GACnB;EACD,IAAI;GACF,SAAS,EAAE,KAAK,KAAK;GACrB,cAAc,EAAE,UAAU,MAAM;GAChC,QAAQ,EAAE,KAAK,KAAK;GACpB,eAAe,EAAE,UAAU,MAAM;GACjC,QAAQ,EAAE,UAAU,MAAM;GAC1B,MAAM,EAAE,KAAK,KAAK;GACnB;EACF;CAED,WAAW;EACT;GACE,KAAK,EAAE,MAAM;IAAE,GAAG;IAAK,SAAS;IAAM,EAAE;GACxC,MAAM;GACN,SAAS;IAAC;IAAY;IAAW;IAAQ;GAC1C;EACD;GACE,KAAK,EAAE,MAAM;IAAE,GAAG;IAAK,SAAS;IAAM,EAAE;GACxC,MAAM;GACN,SAAS;IAAC;IAAY;IAAW;IAAQ;GAC1C;EACD;GACE,KAAK,EAAE,MAAM;IAAE,GAAG;IAAK,SAAS;IAAM,EAAE;GACxC,MAAM;GACN,SAAS;IAAC;IAAY;IAAW;IAAQ;GAC1C;EACF;CAED,cAAc;EACZ,MAAM;EACN,SAAS;EACV;CACF,CAAC"}
|
|
@@ -5,10 +5,10 @@ import { createComponent } from "../../core/components/create-component.js";
|
|
|
5
5
|
import "../../core/index.js";
|
|
6
6
|
import { Portal } from "../portal/portal.js";
|
|
7
7
|
import "../portal/index.js";
|
|
8
|
-
import { useInputBorder } from "../input/use-input-border.js";
|
|
9
|
-
import "../input/index.js";
|
|
10
8
|
import { Button } from "../button/button.js";
|
|
11
9
|
import "../button/index.js";
|
|
10
|
+
import { useInputBorder } from "../input/use-input-border.js";
|
|
11
|
+
import "../input/index.js";
|
|
12
12
|
import { fileButtonStyle } from "./file-button.style.js";
|
|
13
13
|
import { useFileButton } from "./use-file-button.js";
|
|
14
14
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { utils_exports } from "../../utils/index.js";
|
|
4
3
|
import { useFileInput } from "../file-input/use-file-input.js";
|
|
5
4
|
import "../file-input/index.js";
|
|
6
5
|
import { useCallback } from "react";
|
|
7
6
|
|
|
8
7
|
//#region src/components/file-button/use-file-button.ts
|
|
9
8
|
const useFileButton = (props = {}) => {
|
|
10
|
-
const {
|
|
9
|
+
const { clickableProps, getInputProps } = useFileInput(props);
|
|
11
10
|
return {
|
|
12
11
|
clickableProps,
|
|
13
12
|
getButtonProps: useCallback((props$1) => ({
|
|
14
13
|
...clickableProps,
|
|
15
|
-
"aria-disabled": (0, utils_exports.ariaAttr)(!interactive),
|
|
16
|
-
tabIndex: interactive ? clickableProps.tabIndex : -1,
|
|
17
14
|
...props$1
|
|
18
|
-
}), [clickableProps
|
|
15
|
+
}), [clickableProps]),
|
|
19
16
|
getInputProps
|
|
20
17
|
};
|
|
21
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-file-button.js","names":["props"],"sources":["../../../../src/components/file-button/use-file-button.ts"],"sourcesContent":["\"use client\"\n\nimport type { PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport type { UseFileInputProps } from \"../file-input\"\nimport { useCallback } from \"react\"\nimport {
|
|
1
|
+
{"version":3,"file":"use-file-button.js","names":["props"],"sources":["../../../../src/components/file-button/use-file-button.ts"],"sourcesContent":["\"use client\"\n\nimport type { PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport type { UseFileInputProps } from \"../file-input\"\nimport { useCallback } from \"react\"\nimport { useFileInput } from \"../file-input\"\n\nexport interface UseFileButtonProps\n extends UseFileInputProps<\"button\">, FieldProps {}\n\nexport const useFileButton = (props: UseFileButtonProps = {}) => {\n const { clickableProps, getInputProps } = useFileInput<\"button\">(props)\n\n const getButtonProps: PropGetter<\"button\"> = useCallback(\n (props) => ({\n ...clickableProps,\n ...props,\n }),\n [clickableProps],\n )\n\n return {\n clickableProps,\n getButtonProps,\n getInputProps,\n }\n}\n\nexport type UseFileButtonReturn = ReturnType<typeof useFileButton>\n"],"mappings":";;;;;;;AAWA,MAAa,iBAAiB,QAA4B,EAAE,KAAK;CAC/D,MAAM,EAAE,gBAAgB,kBAAkB,aAAuB,MAAM;AAUvE,QAAO;EACL;EACA,gBAV2C,aAC1C,aAAW;GACV,GAAG;GACH,GAAGA;GACJ,GACD,CAAC,eAAe,CACjB;EAKC;EACD"}
|
|
@@ -11,7 +11,10 @@ import { useCallback, useRef } from "react";
|
|
|
11
11
|
|
|
12
12
|
//#region src/components/file-input/use-file-input.ts
|
|
13
13
|
const useFileInput = (props) => {
|
|
14
|
-
const { props: { id, ref, form, name, accept, defaultValue, disabled, multiple, readOnly, required, resetRef, value, onChange: onChangeProp, onClick: onClickProp, ...rest }, ariaProps, dataProps, eventProps } = useFieldProps(
|
|
14
|
+
const { props: { id, ref, form, name, accept, defaultValue, disabled, multiple, readOnly, required, resetRef, value, onChange: onChangeProp, onClick: onClickProp, ...rest }, ariaProps, dataProps, eventProps } = useFieldProps({
|
|
15
|
+
...props,
|
|
16
|
+
notSupportReadOnly: true
|
|
17
|
+
});
|
|
15
18
|
const interactive = !(readOnly || disabled);
|
|
16
19
|
const inputRef = useRef(null);
|
|
17
20
|
const [values, setValues] = useControllableState({
|
|
@@ -33,10 +36,12 @@ const useFileInput = (props) => {
|
|
|
33
36
|
setValues(files?.length ? files : void 0);
|
|
34
37
|
}, [setValues]);
|
|
35
38
|
const clickableProps = useClickable({
|
|
39
|
+
...ariaProps,
|
|
36
40
|
...dataProps,
|
|
37
41
|
...eventProps,
|
|
38
42
|
...rest,
|
|
39
|
-
disabled,
|
|
43
|
+
disabled: !interactive,
|
|
44
|
+
focusable: readOnly && !disabled,
|
|
40
45
|
focusOnClick: interactive,
|
|
41
46
|
onClick: (0, utils_exports.handlerAll)(onClickProp, onClick)
|
|
42
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-file-input.js","names":["getInputProps: PropGetter<\"input\">","props"],"sources":["../../../../src/components/file-input/use-file-input.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent, RefObject } from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { Dict } from \"../../utils\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useRef } from \"react\"\nimport { useClickable } from \"../../hooks/use-clickable\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport {\n assignRef,\n dataAttr,\n handlerAll,\n isNull,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\nimport { useFieldProps } from \"../field\"\n\nexport type UseFileInputProps<Y extends \"button\" | \"input\" = \"input\"> =\n FieldProps &\n Omit<HTMLProps<Y>, \"defaultValue\" | \"onChange\" | \"ref\" | \"value\"> &\n Pick<HTMLProps<\"input\">, \"accept\" | \"multiple\" | \"ref\"> & {\n /**\n * The initial value of the file input.\n */\n defaultValue?: File[]\n /**\n * Ref to a reset function.\n */\n resetRef?: RefObject<(() => void) | null>\n /**\n * The value of the file input.\n */\n value?: File[]\n /**\n * Function to be called when a file change event occurs.\n */\n onChange?: (files: File[] | undefined) => void\n }\n\nexport const useFileInput = <Y extends \"button\" | \"input\" = \"input\">(\n props: UseFileInputProps<Y>,\n) => {\n const {\n props: {\n id,\n ref,\n form,\n name,\n accept,\n defaultValue,\n disabled,\n multiple,\n readOnly,\n required,\n resetRef,\n value,\n onChange: onChangeProp,\n onClick: onClickProp,\n ...rest\n },\n ariaProps,\n dataProps,\n eventProps,\n } = useFieldProps<HTMLElement, UseFileInputProps<Y>>(props)\n const interactive = !(readOnly || disabled)\n const inputRef = useRef<HTMLInputElement>(null)\n const [values, setValues] = useControllableState<File[] | undefined>({\n defaultValue,\n value,\n onChange: onChangeProp,\n })\n const count = values?.length ?? 0\n\n const onClick = useCallback(() => {\n if (!interactive) return\n\n inputRef.current?.click()\n }, [interactive])\n\n const onReset = useCallback(() => {\n if (inputRef.current) inputRef.current.value = \"\"\n\n setValues(undefined)\n }, [setValues])\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n const files = !isNull(ev.currentTarget.files)\n ? Array.from(ev.currentTarget.files)\n : undefined\n\n setValues(files?.length ? files : undefined)\n },\n [setValues],\n )\n\n const clickableProps = useClickable<HTMLElement, Dict>({\n ...dataProps,\n ...eventProps,\n ...rest,\n disabled,\n focusOnClick: interactive,\n onClick: handlerAll(onClickProp, onClick),\n })\n\n assignRef(resetRef, onReset)\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n (props = {}) => ({\n ...visuallyHiddenAttributes,\n ...ariaProps,\n ...dataProps,\n id,\n form,\n type: \"file\",\n name,\n accept,\n disabled,\n multiple,\n readOnly,\n required,\n ...props,\n ref: mergeRefs(inputRef, props.ref, ref),\n onChange: handlerAll(props.onChange, onChange),\n }),\n [\n required,\n ariaProps,\n dataProps,\n id,\n form,\n name,\n accept,\n disabled,\n multiple,\n readOnly,\n ref,\n onChange,\n ],\n )\n\n const getFieldProps: PropGetter = useCallback(\n (props = {}) => ({\n \"data-placeholder\": dataAttr(!count),\n ...clickableProps,\n tabIndex: interactive ? 0 : clickableProps.tabIndex,\n ...props,\n }),\n [clickableProps, count, interactive],\n )\n\n return {\n disabled,\n interactive,\n readOnly,\n required,\n values,\n clickableProps,\n getFieldProps,\n getInputProps,\n }\n}\n\nexport type UseFileInputReturn = ReturnType<typeof useFileInput>\n"],"mappings":";;;;;;;;;;;;AAyCA,MAAa,gBACX,UACG;CACH,MAAM,EACJ,OAAO,EACL,IACA,KACA,MACA,MACA,QACA,cACA,UACA,UACA,UACA,UACA,UACA,OACA,UAAU,cACV,SAAS,aACT,GAAG,QAEL,WACA,WACA,eACE,cAAiD,
|
|
1
|
+
{"version":3,"file":"use-file-input.js","names":["getInputProps: PropGetter<\"input\">","props"],"sources":["../../../../src/components/file-input/use-file-input.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent, RefObject } from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { Dict } from \"../../utils\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useRef } from \"react\"\nimport { useClickable } from \"../../hooks/use-clickable\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport {\n assignRef,\n dataAttr,\n handlerAll,\n isNull,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\nimport { useFieldProps } from \"../field\"\n\nexport type UseFileInputProps<Y extends \"button\" | \"input\" = \"input\"> =\n FieldProps &\n Omit<HTMLProps<Y>, \"defaultValue\" | \"onChange\" | \"ref\" | \"value\"> &\n Pick<HTMLProps<\"input\">, \"accept\" | \"multiple\" | \"ref\"> & {\n /**\n * The initial value of the file input.\n */\n defaultValue?: File[]\n /**\n * Ref to a reset function.\n */\n resetRef?: RefObject<(() => void) | null>\n /**\n * The value of the file input.\n */\n value?: File[]\n /**\n * Function to be called when a file change event occurs.\n */\n onChange?: (files: File[] | undefined) => void\n }\n\nexport const useFileInput = <Y extends \"button\" | \"input\" = \"input\">(\n props: UseFileInputProps<Y>,\n) => {\n const {\n props: {\n id,\n ref,\n form,\n name,\n accept,\n defaultValue,\n disabled,\n multiple,\n readOnly,\n required,\n resetRef,\n value,\n onChange: onChangeProp,\n onClick: onClickProp,\n ...rest\n },\n ariaProps,\n dataProps,\n eventProps,\n } = useFieldProps<HTMLElement, UseFileInputProps<Y>>({\n ...props,\n notSupportReadOnly: true,\n })\n const interactive = !(readOnly || disabled)\n const inputRef = useRef<HTMLInputElement>(null)\n const [values, setValues] = useControllableState<File[] | undefined>({\n defaultValue,\n value,\n onChange: onChangeProp,\n })\n const count = values?.length ?? 0\n\n const onClick = useCallback(() => {\n if (!interactive) return\n\n inputRef.current?.click()\n }, [interactive])\n\n const onReset = useCallback(() => {\n if (inputRef.current) inputRef.current.value = \"\"\n\n setValues(undefined)\n }, [setValues])\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n const files = !isNull(ev.currentTarget.files)\n ? Array.from(ev.currentTarget.files)\n : undefined\n\n setValues(files?.length ? files : undefined)\n },\n [setValues],\n )\n\n const clickableProps = useClickable<HTMLElement, Dict>({\n ...ariaProps,\n ...dataProps,\n ...eventProps,\n ...rest,\n disabled: !interactive,\n focusable: readOnly && !disabled,\n focusOnClick: interactive,\n onClick: handlerAll(onClickProp, onClick),\n })\n\n assignRef(resetRef, onReset)\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n (props = {}) => ({\n ...visuallyHiddenAttributes,\n ...ariaProps,\n ...dataProps,\n id,\n form,\n type: \"file\",\n name,\n accept,\n disabled,\n multiple,\n readOnly,\n required,\n ...props,\n ref: mergeRefs(inputRef, props.ref, ref),\n onChange: handlerAll(props.onChange, onChange),\n }),\n [\n required,\n ariaProps,\n dataProps,\n id,\n form,\n name,\n accept,\n disabled,\n multiple,\n readOnly,\n ref,\n onChange,\n ],\n )\n\n const getFieldProps: PropGetter = useCallback(\n (props = {}) => ({\n \"data-placeholder\": dataAttr(!count),\n ...clickableProps,\n tabIndex: interactive ? 0 : clickableProps.tabIndex,\n ...props,\n }),\n [clickableProps, count, interactive],\n )\n\n return {\n disabled,\n interactive,\n readOnly,\n required,\n values,\n clickableProps,\n getFieldProps,\n getInputProps,\n }\n}\n\nexport type UseFileInputReturn = ReturnType<typeof useFileInput>\n"],"mappings":";;;;;;;;;;;;AAyCA,MAAa,gBACX,UACG;CACH,MAAM,EACJ,OAAO,EACL,IACA,KACA,MACA,MACA,QACA,cACA,UACA,UACA,UACA,UACA,UACA,OACA,UAAU,cACV,SAAS,aACT,GAAG,QAEL,WACA,WACA,eACE,cAAiD;EACnD,GAAG;EACH,oBAAoB;EACrB,CAAC;CACF,MAAM,cAAc,EAAE,YAAY;CAClC,MAAM,WAAW,OAAyB,KAAK;CAC/C,MAAM,CAAC,QAAQ,aAAa,qBAAyC;EACnE;EACA;EACA,UAAU;EACX,CAAC;CACF,MAAM,QAAQ,QAAQ,UAAU;CAEhC,MAAM,UAAU,kBAAkB;AAChC,MAAI,CAAC,YAAa;AAElB,WAAS,SAAS,OAAO;IACxB,CAAC,YAAY,CAAC;CAEjB,MAAM,UAAU,kBAAkB;AAChC,MAAI,SAAS,QAAS,UAAS,QAAQ,QAAQ;AAE/C,YAAU,OAAU;IACnB,CAAC,UAAU,CAAC;CAEf,MAAM,WAAW,aACd,OAAsC;EACrC,MAAM,QAAQ,2BAAQ,GAAG,cAAc,MAAM,GACzC,MAAM,KAAK,GAAG,cAAc,MAAM,GAClC;AAEJ,YAAU,OAAO,SAAS,QAAQ,OAAU;IAE9C,CAAC,UAAU,CACZ;CAED,MAAM,iBAAiB,aAAgC;EACrD,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,UAAU,CAAC;EACX,WAAW,YAAY,CAAC;EACxB,cAAc;EACd,uCAAoB,aAAa,QAAQ;EAC1C,CAAC;AAEF,WAAU,UAAU,QAAQ;CAE5B,MAAMA,gBAAqC,aACxC,UAAQ,EAAE,MAAM;EACf,GAAG;EACH,GAAG;EACH,GAAG;EACH;EACA;EACA,MAAM;EACN;EACA;EACA;EACA;EACA;EACA;EACA,GAAGC;EACH,KAAK,UAAU,UAAUA,QAAM,KAAK,IAAI;EACxC,wCAAqBA,QAAM,UAAU,SAAS;EAC/C,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAYD,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA,eAjBgC,aAC/B,UAAQ,EAAE,MAAM;GACf,gDAA6B,CAAC,MAAM;GACpC,GAAG;GACH,UAAU,cAAc,IAAI,eAAe;GAC3C,GAAGA;GACJ,GACD;GAAC;GAAgB;GAAO;GAAY,CACrC;EAUC;EACD"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useSplitChildren } from "../../utils/children.js";
|
|
4
|
+
import { createContext as createContext$1 } from "../../utils/context.js";
|
|
5
|
+
import { utils_exports } from "../../utils/index.js";
|
|
6
|
+
import { styled } from "../../core/system/factory.js";
|
|
7
|
+
import { createSlotComponent } from "../../core/components/create-component.js";
|
|
8
|
+
import "../../core/index.js";
|
|
9
|
+
import { formStyle } from "./form.style.js";
|
|
10
|
+
import { Button } from "../button/button.js";
|
|
11
|
+
import "../button/index.js";
|
|
12
|
+
import { useId, useMemo } from "react";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
|
|
15
|
+
//#region src/components/form/form.tsx
|
|
16
|
+
const [FormContext, useFormContext] = createContext$1({
|
|
17
|
+
name: "FormContext",
|
|
18
|
+
strict: false
|
|
19
|
+
});
|
|
20
|
+
const { PropsContext: FormPropsContext, usePropsContext: useFormPropsContext, withContext, withProvider } = createSlotComponent("form", formStyle);
|
|
21
|
+
/**
|
|
22
|
+
* `Form` is a component used to group multiple form elements.
|
|
23
|
+
*
|
|
24
|
+
* @see https://yamada-ui.com/docs/components/form
|
|
25
|
+
*/
|
|
26
|
+
const FormRoot = withProvider(({ id, size, variant, "aria-labelledby": ariaLabelledBy, children, description, disabled, errorMessage, helperMessage, invalid, noValidate = true, optionalIndicator, readOnly, replace, required, requiredIndicator, submitButton, title, bodyProps, descriptionProps, footerProps, headerProps, submitButtonProps, titleProps, ...rest }) => {
|
|
27
|
+
const uuid = useId();
|
|
28
|
+
const titleId = useId();
|
|
29
|
+
const descriptionId = useId();
|
|
30
|
+
const [omittedChildren, customHeader, customBody, customFooter, customTitle, customDescription, customSubmitButton] = useSplitChildren(children, FormHeader, FormBody, FormFooter, FormTitle, FormDescription, FormSubmitButton);
|
|
31
|
+
id ??= uuid;
|
|
32
|
+
return /* @__PURE__ */ jsx(FormContext, {
|
|
33
|
+
value: useMemo(() => ({
|
|
34
|
+
id,
|
|
35
|
+
size,
|
|
36
|
+
variant,
|
|
37
|
+
descriptionId,
|
|
38
|
+
disabled,
|
|
39
|
+
errorMessage,
|
|
40
|
+
helperMessage,
|
|
41
|
+
invalid,
|
|
42
|
+
optionalIndicator,
|
|
43
|
+
readOnly,
|
|
44
|
+
replace,
|
|
45
|
+
required,
|
|
46
|
+
requiredIndicator,
|
|
47
|
+
titleId
|
|
48
|
+
}), [
|
|
49
|
+
id,
|
|
50
|
+
titleId,
|
|
51
|
+
descriptionId,
|
|
52
|
+
disabled,
|
|
53
|
+
size,
|
|
54
|
+
variant,
|
|
55
|
+
errorMessage,
|
|
56
|
+
helperMessage,
|
|
57
|
+
invalid,
|
|
58
|
+
readOnly,
|
|
59
|
+
replace,
|
|
60
|
+
required,
|
|
61
|
+
optionalIndicator,
|
|
62
|
+
requiredIndicator
|
|
63
|
+
]),
|
|
64
|
+
children: /* @__PURE__ */ jsxs(styled.form, {
|
|
65
|
+
id,
|
|
66
|
+
"aria-labelledby": (0, utils_exports.cx)(titleId, descriptionId, ariaLabelledBy),
|
|
67
|
+
noValidate,
|
|
68
|
+
...rest,
|
|
69
|
+
children: [
|
|
70
|
+
customHeader || (customTitle || title || customDescription || description ? /* @__PURE__ */ jsxs(FormHeader, {
|
|
71
|
+
...headerProps,
|
|
72
|
+
children: [customTitle || (title ? /* @__PURE__ */ jsx(FormTitle, {
|
|
73
|
+
...titleProps,
|
|
74
|
+
children: title
|
|
75
|
+
}) : null), customDescription || (description ? /* @__PURE__ */ jsx(FormDescription, {
|
|
76
|
+
...descriptionProps,
|
|
77
|
+
children: description
|
|
78
|
+
}) : null)]
|
|
79
|
+
}) : null),
|
|
80
|
+
customBody || /* @__PURE__ */ jsx(FormBody, {
|
|
81
|
+
...bodyProps,
|
|
82
|
+
children: omittedChildren
|
|
83
|
+
}),
|
|
84
|
+
customFooter || (customSubmitButton || submitButton ? /* @__PURE__ */ jsx(FormFooter, {
|
|
85
|
+
...footerProps,
|
|
86
|
+
children: customSubmitButton || (submitButton ? /* @__PURE__ */ jsx(FormSubmitButton, {
|
|
87
|
+
...submitButtonProps,
|
|
88
|
+
children: submitButton
|
|
89
|
+
}) : null)
|
|
90
|
+
}) : null)
|
|
91
|
+
]
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
}, "root", { transferProps: ["size", "variant"] })();
|
|
95
|
+
const FormHeader = withContext("div", "header")();
|
|
96
|
+
const FormTitle = withContext("h3", "title")(void 0, (props) => {
|
|
97
|
+
const { titleId } = useFormContext() ?? {};
|
|
98
|
+
return {
|
|
99
|
+
id: titleId,
|
|
100
|
+
...props
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
const FormDescription = withContext("p", "description")(void 0, (props) => {
|
|
104
|
+
const { descriptionId, titleId } = useFormContext() ?? {};
|
|
105
|
+
return {
|
|
106
|
+
id: descriptionId,
|
|
107
|
+
"aria-describedby": titleId,
|
|
108
|
+
...props
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
const FormBody = withContext("div", "body")();
|
|
112
|
+
const FormGroup = withContext("div", "group")();
|
|
113
|
+
const FormFooter = withContext("div", "footer")();
|
|
114
|
+
const FormSubmitButton = withContext(Button, "submitButton")({ type: "submit" }, (props) => {
|
|
115
|
+
const { id } = useFormContext() ?? {};
|
|
116
|
+
return {
|
|
117
|
+
form: id,
|
|
118
|
+
...props
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
//#endregion
|
|
123
|
+
export { FormBody, FormContext, FormDescription, FormFooter, FormGroup, FormHeader, FormPropsContext, FormRoot, FormSubmitButton, FormTitle, useFormContext, useFormPropsContext };
|
|
124
|
+
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","names":["createContext"],"sources":["../../../../src/components/form/form.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { ButtonProps } from \"../button\"\nimport type { FormStyle } from \"./form.style\"\nimport { useId, useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { createContext, cx, useSplitChildren } from \"../../utils\"\nimport { Button } from \"../button\"\nimport { formStyle } from \"./form.style\"\n\ninterface FormContext extends Pick<\n FormRootProps,\n | \"disabled\"\n | \"errorMessage\"\n | \"helperMessage\"\n | \"invalid\"\n | \"optionalIndicator\"\n | \"readOnly\"\n | \"replace\"\n | \"required\"\n | \"requiredIndicator\"\n | \"size\"\n | \"variant\"\n> {\n descriptionId: string\n id: string\n titleId: string\n}\n\nconst [FormContext, useFormContext] = createContext<FormContext>({\n name: \"FormContext\",\n strict: false,\n})\n\nexport { FormContext, useFormContext }\n\nexport interface FormRootProps\n extends Omit<HTMLStyledProps<\"form\">, \"title\">, ThemeProps<FormStyle> {\n /**\n * The form description to use.\n */\n description?: ReactNode\n /**\n * An object managing the disabled state of each field.\n */\n disabled?: boolean | { [key: string]: boolean | undefined }\n /**\n * An object managing the error message of each field.\n */\n errorMessage?: { [key: string]: ReactNode }\n /**\n * An object managing the helper message of each field.\n */\n helperMessage?: { [key: string]: ReactNode }\n /**\n * An object managing the invalid state of each field.\n */\n invalid?: boolean | { [key: string]: boolean | undefined }\n /**\n * The optional indicator to use for each field.\n */\n optionalIndicator?: ReactNode\n /**\n * An object managing the read only state of each field.\n */\n readOnly?: boolean | { [key: string]: boolean | undefined }\n /**\n * An object managing the replace state of each field.\n */\n replace?: boolean | { [key: string]: boolean | undefined }\n /**\n * An object managing the required state of each field.\n */\n required?: boolean | { [key: string]: boolean | undefined }\n /**\n * The required indicator to use for each field.\n */\n requiredIndicator?: ReactNode\n /**\n * The submit button to use.\n */\n submitButton?: ReactNode\n /**\n * The form title to use.\n */\n title?: ReactNode\n /**\n * Props the body component.\n */\n bodyProps?: FormBodyProps\n /**\n * Props the description component.\n */\n descriptionProps?: FormDescriptionProps\n /**\n * Props the footer component.\n */\n footerProps?: FormFooterProps\n /**\n * Props the header component.\n */\n headerProps?: FormHeaderProps\n /**\n * Props the submit button component.\n */\n submitButtonProps?: FormSubmitButtonProps\n /**\n * Props the title component.\n */\n titleProps?: FormTitleProps\n}\n\nconst {\n PropsContext: FormPropsContext,\n usePropsContext: useFormPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<FormRootProps, FormStyle, FormContext>(\n \"form\",\n formStyle,\n)\n\nexport { FormPropsContext, useFormPropsContext }\n\n/**\n * `Form` is a component used to group multiple form elements.\n *\n * @see https://yamada-ui.com/docs/components/form\n */\nexport const FormRoot = withProvider<\"form\", FormRootProps, \"size\" | \"variant\">(\n ({\n id,\n size,\n variant,\n \"aria-labelledby\": ariaLabelledBy,\n children,\n description,\n disabled,\n errorMessage,\n helperMessage,\n invalid,\n noValidate = true,\n optionalIndicator,\n readOnly,\n replace,\n required,\n requiredIndicator,\n submitButton,\n title,\n bodyProps,\n descriptionProps,\n footerProps,\n headerProps,\n submitButtonProps,\n titleProps,\n ...rest\n }) => {\n const uuid = useId()\n const titleId = useId()\n const descriptionId = useId()\n const [\n omittedChildren,\n customHeader,\n customBody,\n customFooter,\n customTitle,\n customDescription,\n customSubmitButton,\n ] = useSplitChildren(\n children,\n FormHeader,\n FormBody,\n FormFooter,\n FormTitle,\n FormDescription,\n FormSubmitButton,\n )\n\n id ??= uuid\n\n const context = useMemo(\n () => ({\n id,\n size,\n variant,\n descriptionId,\n disabled,\n errorMessage,\n helperMessage,\n invalid,\n optionalIndicator,\n readOnly,\n replace,\n required,\n requiredIndicator,\n titleId,\n }),\n [\n id,\n titleId,\n descriptionId,\n disabled,\n size,\n variant,\n errorMessage,\n helperMessage,\n invalid,\n readOnly,\n replace,\n required,\n optionalIndicator,\n requiredIndicator,\n ],\n )\n\n return (\n <FormContext value={context}>\n <styled.form\n id={id}\n aria-labelledby={cx(titleId, descriptionId, ariaLabelledBy)}\n noValidate={noValidate}\n {...rest}\n >\n {customHeader ||\n (customTitle || title || customDescription || description ? (\n <FormHeader {...headerProps}>\n {customTitle ||\n (title ? (\n <FormTitle {...titleProps}>{title}</FormTitle>\n ) : null)}\n\n {customDescription ||\n (description ? (\n <FormDescription {...descriptionProps}>\n {description}\n </FormDescription>\n ) : null)}\n </FormHeader>\n ) : null)}\n\n {customBody || <FormBody {...bodyProps}>{omittedChildren}</FormBody>}\n\n {customFooter ||\n (customSubmitButton || submitButton ? (\n <FormFooter {...footerProps}>\n {customSubmitButton ||\n (submitButton ? (\n <FormSubmitButton {...submitButtonProps}>\n {submitButton}\n </FormSubmitButton>\n ) : null)}\n </FormFooter>\n ) : null)}\n </styled.form>\n </FormContext>\n )\n },\n \"root\",\n { transferProps: [\"size\", \"variant\"] },\n)()\n\nexport interface FormHeaderProps extends HTMLStyledProps {}\n\nexport const FormHeader = withContext<\"div\", FormHeaderProps>(\"div\", \"header\")()\n\nexport interface FormTitleProps extends HTMLStyledProps<\"h3\"> {}\n\nexport const FormTitle = withContext<\"h3\", FormTitleProps>(\"h3\", \"title\")(\n undefined,\n (props) => {\n const { titleId } = useFormContext() ?? {}\n\n return { id: titleId, ...props }\n },\n)\n\nexport interface FormDescriptionProps extends HTMLStyledProps<\"p\"> {}\n\nexport const FormDescription = withContext<\"p\", FormDescriptionProps>(\n \"p\",\n \"description\",\n)(undefined, (props) => {\n const { descriptionId, titleId } = useFormContext() ?? {}\n\n return { id: descriptionId, \"aria-describedby\": titleId, ...props }\n})\n\nexport interface FormBodyProps extends HTMLStyledProps {}\n\nexport const FormBody = withContext<\"div\", FormBodyProps>(\"div\", \"body\")()\n\nexport interface FormGroupProps extends HTMLStyledProps {}\n\nexport const FormGroup = withContext<\"div\", FormGroupProps>(\"div\", \"group\")()\n\nexport interface FormFooterProps extends HTMLStyledProps {}\n\nexport const FormFooter = withContext<\"div\", FormFooterProps>(\"div\", \"footer\")()\n\nexport interface FormSubmitButtonProps extends ButtonProps {}\n\nexport const FormSubmitButton = withContext<\"button\", FormSubmitButtonProps>(\n Button,\n \"submitButton\",\n)({ type: \"submit\" }, (props) => {\n const { id } = useFormContext() ?? {}\n\n return { form: id, ...props }\n})\n"],"mappings":";;;;;;;;;;;;;;;AA+BA,MAAM,CAAC,aAAa,kBAAkBA,gBAA2B;CAC/D,MAAM;CACN,QAAQ;CACT,CAAC;AAgFF,MAAM,EACJ,cAAc,kBACd,iBAAiB,qBACjB,aACA,iBACE,oBACF,QACA,UACD;;;;;;AASD,MAAa,WAAW,cACrB,EACC,IACA,MACA,SACA,mBAAmB,gBACnB,UACA,aACA,UACA,cACA,eACA,SACA,aAAa,MACb,mBACA,UACA,SACA,UACA,mBACA,cACA,OACA,WACA,kBACA,aACA,aACA,mBACA,YACA,GAAG,WACC;CACJ,MAAM,OAAO,OAAO;CACpB,MAAM,UAAU,OAAO;CACvB,MAAM,gBAAgB,OAAO;CAC7B,MAAM,CACJ,iBACA,cACA,YACA,cACA,aACA,mBACA,sBACE,iBACF,UACA,YACA,UACA,YACA,WACA,iBACA,iBACD;AAED,QAAO;AAqCP,QACE,oBAAC;EAAY,OApCC,eACP;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;YAIG,qBAAC,OAAO;GACF;GACJ,yCAAoB,SAAS,eAAe,eAAe;GAC/C;GACZ,GAAI;;IAEH,iBACE,eAAe,SAAS,qBAAqB,cAC5C,qBAAC;KAAW,GAAI;gBACb,gBACE,QACC,oBAAC;MAAU,GAAI;gBAAa;OAAkB,GAC5C,OAEL,sBACE,cACC,oBAAC;MAAgB,GAAI;gBAClB;OACe,GAChB;MACK,GACX;IAEL,cAAc,oBAAC;KAAS,GAAI;eAAY;MAA2B;IAEnE,iBACE,sBAAsB,eACrB,oBAAC;KAAW,GAAI;eACb,uBACE,eACC,oBAAC;MAAiB,GAAI;gBACnB;OACgB,GACjB;MACK,GACX;;IACM;GACF;GAGlB,QACA,EAAE,eAAe,CAAC,QAAQ,UAAU,EAAE,CACvC,EAAE;AAIH,MAAa,aAAa,YAAoC,OAAO,SAAS,EAAE;AAIhF,MAAa,YAAY,YAAkC,MAAM,QAAQ,CACvE,SACC,UAAU;CACT,MAAM,EAAE,YAAY,gBAAgB,IAAI,EAAE;AAE1C,QAAO;EAAE,IAAI;EAAS,GAAG;EAAO;EAEnC;AAID,MAAa,kBAAkB,YAC7B,KACA,cACD,CAAC,SAAY,UAAU;CACtB,MAAM,EAAE,eAAe,YAAY,gBAAgB,IAAI,EAAE;AAEzD,QAAO;EAAE,IAAI;EAAe,oBAAoB;EAAS,GAAG;EAAO;EACnE;AAIF,MAAa,WAAW,YAAkC,OAAO,OAAO,EAAE;AAI1E,MAAa,YAAY,YAAmC,OAAO,QAAQ,EAAE;AAI7E,MAAa,aAAa,YAAoC,OAAO,SAAS,EAAE;AAIhF,MAAa,mBAAmB,YAC9B,QACA,eACD,CAAC,EAAE,MAAM,UAAU,GAAG,UAAU;CAC/B,MAAM,EAAE,OAAO,gBAAgB,IAAI,EAAE;AAErC,QAAO;EAAE,MAAM;EAAI,GAAG;EAAO;EAC7B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { defineComponentSlotStyle } from "../../core/system/config.js";
|
|
2
|
+
import "../../core/index.js";
|
|
3
|
+
import { fieldsetStyle } from "../fieldset/fieldset.style.js";
|
|
4
|
+
import "../fieldset/index.js";
|
|
5
|
+
|
|
6
|
+
//#region src/components/form/form.style.ts
|
|
7
|
+
const formStyle = defineComponentSlotStyle({
|
|
8
|
+
base: {
|
|
9
|
+
body: {
|
|
10
|
+
display: "flex",
|
|
11
|
+
flexDirection: "column",
|
|
12
|
+
w: "full"
|
|
13
|
+
},
|
|
14
|
+
description: {
|
|
15
|
+
alignItems: "center",
|
|
16
|
+
color: "fg.muted",
|
|
17
|
+
display: "inline-flex"
|
|
18
|
+
},
|
|
19
|
+
footer: {
|
|
20
|
+
display: "flex",
|
|
21
|
+
justifyContent: "flex-end"
|
|
22
|
+
},
|
|
23
|
+
group: {
|
|
24
|
+
display: "flex",
|
|
25
|
+
flexDirection: "column"
|
|
26
|
+
},
|
|
27
|
+
header: {
|
|
28
|
+
display: "flex",
|
|
29
|
+
flexDirection: "column",
|
|
30
|
+
w: "full"
|
|
31
|
+
},
|
|
32
|
+
root: {
|
|
33
|
+
display: "flex",
|
|
34
|
+
flexDirection: "column",
|
|
35
|
+
w: "full"
|
|
36
|
+
},
|
|
37
|
+
submitButton: {},
|
|
38
|
+
title: {
|
|
39
|
+
display: "flex",
|
|
40
|
+
fontWeight: "medium"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
variants: {
|
|
44
|
+
elevated: { group: fieldsetStyle.variants?.elevated.root },
|
|
45
|
+
outline: { group: fieldsetStyle.variants?.outline.root },
|
|
46
|
+
panel: { group: fieldsetStyle.variants?.panel.root },
|
|
47
|
+
plain: { group: fieldsetStyle.variants?.plain.root }
|
|
48
|
+
},
|
|
49
|
+
sizes: {
|
|
50
|
+
sm: {
|
|
51
|
+
body: { gap: "5" },
|
|
52
|
+
description: {
|
|
53
|
+
fontSize: "sm",
|
|
54
|
+
gap: "1"
|
|
55
|
+
},
|
|
56
|
+
footer: { gap: "3" },
|
|
57
|
+
group: { gap: fieldsetStyle.sizes?.sm.root.gap },
|
|
58
|
+
header: { gap: "1" },
|
|
59
|
+
root: { gap: "5" },
|
|
60
|
+
title: {
|
|
61
|
+
fontSize: "xl",
|
|
62
|
+
gap: "1"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
md: {
|
|
66
|
+
body: { gap: "6" },
|
|
67
|
+
description: {
|
|
68
|
+
fontSize: "sm",
|
|
69
|
+
gap: "1"
|
|
70
|
+
},
|
|
71
|
+
footer: { gap: "4" },
|
|
72
|
+
group: { gap: fieldsetStyle.sizes?.md.root.gap },
|
|
73
|
+
header: { gap: "1" },
|
|
74
|
+
root: { gap: "6" },
|
|
75
|
+
title: {
|
|
76
|
+
fontSize: "2xl",
|
|
77
|
+
gap: "1"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
lg: {
|
|
81
|
+
body: { gap: "8" },
|
|
82
|
+
description: {
|
|
83
|
+
fontSize: "md",
|
|
84
|
+
gap: "1"
|
|
85
|
+
},
|
|
86
|
+
footer: { gap: "6" },
|
|
87
|
+
group: { gap: fieldsetStyle.sizes?.lg.root.gap },
|
|
88
|
+
header: { gap: "1" },
|
|
89
|
+
root: { gap: "8" },
|
|
90
|
+
title: {
|
|
91
|
+
fontSize: "3xl",
|
|
92
|
+
gap: "1"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
compounds: fieldsetStyle.compounds?.map(({ css, ...rest }) => ({
|
|
97
|
+
css: { group: css.root },
|
|
98
|
+
...rest
|
|
99
|
+
})),
|
|
100
|
+
defaultProps: {
|
|
101
|
+
size: "md",
|
|
102
|
+
variant: "plain"
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
//#endregion
|
|
107
|
+
export { formStyle };
|
|
108
|
+
//# sourceMappingURL=form.style.js.map
|