@mitcsutt/kiln-ui 0.1.0
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/LICENSE +21 -0
- package/README.md +73 -0
- package/dist/assets/fonts/big-shoulders-latin-ext-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/big-shoulders-latin-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/bricolage-grotesque-latin-ext-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/bricolage-grotesque-latin-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/licenses/big-shoulders.txt +93 -0
- package/dist/assets/fonts/licenses/bricolage-grotesque.txt +93 -0
- package/dist/assets/fonts/licenses/martian-mono.txt +93 -0
- package/dist/assets/fonts/licenses/newsreader.txt +93 -0
- package/dist/assets/fonts/licenses/schibsted-grotesk.txt +93 -0
- package/dist/assets/fonts/martian-mono-latin-ext-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/martian-mono-latin-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/newsreader-latin-ext-standard-italic.woff2 +0 -0
- package/dist/assets/fonts/newsreader-latin-ext-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/newsreader-latin-standard-italic.woff2 +0 -0
- package/dist/assets/fonts/newsreader-latin-standard-normal.woff2 +0 -0
- package/dist/assets/fonts/schibsted-grotesk-latin-ext-wght-italic.woff2 +0 -0
- package/dist/assets/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2 +0 -0
- package/dist/assets/fonts/schibsted-grotesk-latin-wght-italic.woff2 +0 -0
- package/dist/assets/fonts/schibsted-grotesk-latin-wght-normal.woff2 +0 -0
- package/dist/components/actions/Button/Button.d.ts +26 -0
- package/dist/components/actions/Button/Button.js +47 -0
- package/dist/components/actions/Button/Button.js.map +1 -0
- package/dist/components/actions/Button/Button.module.js +10 -0
- package/dist/components/actions/Button/Button.module.js.map +1 -0
- package/dist/components/actions/Button/index.d.ts +2 -0
- package/dist/components/actions/ChipGroup/ChipGroup.d.ts +50 -0
- package/dist/components/actions/ChipGroup/ChipGroup.js +104 -0
- package/dist/components/actions/ChipGroup/ChipGroup.js.map +1 -0
- package/dist/components/actions/ChipGroup/ChipGroup.module.js +6 -0
- package/dist/components/actions/ChipGroup/ChipGroup.module.js.map +1 -0
- package/dist/components/actions/ChipGroup/index.d.ts +2 -0
- package/dist/components/actions/IconButton/IconButton.d.ts +28 -0
- package/dist/components/actions/IconButton/IconButton.js +28 -0
- package/dist/components/actions/IconButton/IconButton.js.map +1 -0
- package/dist/components/actions/IconButton/IconButton.module.js +9 -0
- package/dist/components/actions/IconButton/IconButton.module.js.map +1 -0
- package/dist/components/actions/IconButton/index.d.ts +2 -0
- package/dist/components/actions/ModeToggle/ModeToggle.d.ts +28 -0
- package/dist/components/actions/ModeToggle/ModeToggle.js +63 -0
- package/dist/components/actions/ModeToggle/ModeToggle.js.map +1 -0
- package/dist/components/actions/ModeToggle/index.d.ts +2 -0
- package/dist/components/actions/SegmentedControl/SegmentedControl.d.ts +46 -0
- package/dist/components/actions/SegmentedControl/SegmentedControl.js +109 -0
- package/dist/components/actions/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/components/actions/SegmentedControl/SegmentedControl.module.js +13 -0
- package/dist/components/actions/SegmentedControl/SegmentedControl.module.js.map +1 -0
- package/dist/components/actions/SegmentedControl/index.d.ts +2 -0
- package/dist/components/actions/ToggleChip/ToggleChip.d.ts +19 -0
- package/dist/components/actions/ToggleChip/ToggleChip.js +34 -0
- package/dist/components/actions/ToggleChip/ToggleChip.js.map +1 -0
- package/dist/components/actions/ToggleChip/chip.module.js +10 -0
- package/dist/components/actions/ToggleChip/chip.module.js.map +1 -0
- package/dist/components/actions/ToggleChip/index.d.ts +2 -0
- package/dist/components/display/Avatar/Avatar.d.ts +27 -0
- package/dist/components/display/Avatar/Avatar.js +39 -0
- package/dist/components/display/Avatar/Avatar.js.map +1 -0
- package/dist/components/display/Avatar/Avatar.module.js +10 -0
- package/dist/components/display/Avatar/Avatar.module.js.map +1 -0
- package/dist/components/display/Avatar/AvatarContext.d.ts +3 -0
- package/dist/components/display/Avatar/AvatarContext.js +7 -0
- package/dist/components/display/Avatar/AvatarContext.js.map +1 -0
- package/dist/components/display/Avatar/avatarUtils.d.ts +10 -0
- package/dist/components/display/Avatar/avatarUtils.js +14 -0
- package/dist/components/display/Avatar/avatarUtils.js.map +1 -0
- package/dist/components/display/Avatar/index.d.ts +5 -0
- package/dist/components/display/AvatarGroup/AvatarGroup.d.ts +16 -0
- package/dist/components/display/AvatarGroup/AvatarGroup.js +33 -0
- package/dist/components/display/AvatarGroup/AvatarGroup.js.map +1 -0
- package/dist/components/display/AvatarGroup/AvatarGroup.module.js +9 -0
- package/dist/components/display/AvatarGroup/AvatarGroup.module.js.map +1 -0
- package/dist/components/display/AvatarGroup/index.d.ts +2 -0
- package/dist/components/display/Badge/Badge.d.ts +18 -0
- package/dist/components/display/Badge/Badge.js +23 -0
- package/dist/components/display/Badge/Badge.js.map +1 -0
- package/dist/components/display/Badge/Badge.module.js +9 -0
- package/dist/components/display/Badge/Badge.module.js.map +1 -0
- package/dist/components/display/Badge/index.d.ts +2 -0
- package/dist/components/display/Card/Card.d.ts +46 -0
- package/dist/components/display/Card/Card.js +78 -0
- package/dist/components/display/Card/Card.js.map +1 -0
- package/dist/components/display/Card/Card.module.js +15 -0
- package/dist/components/display/Card/Card.module.js.map +1 -0
- package/dist/components/display/Card/index.d.ts +2 -0
- package/dist/components/display/CodeBlock/CodeBlock.d.ts +26 -0
- package/dist/components/display/CodeBlock/CodeBlock.js +85 -0
- package/dist/components/display/CodeBlock/CodeBlock.js.map +1 -0
- package/dist/components/display/CodeBlock/CodeBlock.module.js +16 -0
- package/dist/components/display/CodeBlock/CodeBlock.module.js.map +1 -0
- package/dist/components/display/CodeBlock/index.d.ts +2 -0
- package/dist/components/display/DataList/DataList.d.ts +19 -0
- package/dist/components/display/DataList/DataList.js +31 -0
- package/dist/components/display/DataList/DataList.js.map +1 -0
- package/dist/components/display/DataList/DataList.module.js +11 -0
- package/dist/components/display/DataList/DataList.module.js.map +1 -0
- package/dist/components/display/DataList/index.d.ts +2 -0
- package/dist/components/display/Delta/Delta.d.ts +23 -0
- package/dist/components/display/Delta/Delta.js +42 -0
- package/dist/components/display/Delta/Delta.js.map +1 -0
- package/dist/components/display/Delta/Delta.module.js +9 -0
- package/dist/components/display/Delta/Delta.module.js.map +1 -0
- package/dist/components/display/Delta/index.d.ts +2 -0
- package/dist/components/display/EmptyState/EmptyState.d.ts +28 -0
- package/dist/components/display/EmptyState/EmptyState.js +42 -0
- package/dist/components/display/EmptyState/EmptyState.js.map +1 -0
- package/dist/components/display/EmptyState/EmptyState.module.js +14 -0
- package/dist/components/display/EmptyState/EmptyState.module.js.map +1 -0
- package/dist/components/display/EmptyState/index.d.ts +2 -0
- package/dist/components/display/List/List.d.ts +33 -0
- package/dist/components/display/List/List.js +64 -0
- package/dist/components/display/List/List.js.map +1 -0
- package/dist/components/display/List/List.module.js +14 -0
- package/dist/components/display/List/List.module.js.map +1 -0
- package/dist/components/display/List/index.d.ts +2 -0
- package/dist/components/display/Marquee/Marquee.d.ts +46 -0
- package/dist/components/display/Marquee/Marquee.js +95 -0
- package/dist/components/display/Marquee/Marquee.js.map +1 -0
- package/dist/components/display/Marquee/Marquee.module.js +19 -0
- package/dist/components/display/Marquee/Marquee.module.js.map +1 -0
- package/dist/components/display/Marquee/index.d.ts +2 -0
- package/dist/components/display/Media/Media.d.ts +30 -0
- package/dist/components/display/Media/Media.js +47 -0
- package/dist/components/display/Media/Media.js.map +1 -0
- package/dist/components/display/Media/Media.module.js +12 -0
- package/dist/components/display/Media/Media.module.js.map +1 -0
- package/dist/components/display/Media/index.d.ts +2 -0
- package/dist/components/display/Meter/Meter.d.ts +32 -0
- package/dist/components/display/Meter/Meter.js +56 -0
- package/dist/components/display/Meter/Meter.js.map +1 -0
- package/dist/components/display/Meter/Meter.module.js +14 -0
- package/dist/components/display/Meter/Meter.module.js.map +1 -0
- package/dist/components/display/Meter/index.d.ts +4 -0
- package/dist/components/display/Meter/meterTone.d.ts +15 -0
- package/dist/components/display/Meter/meterTone.js +9 -0
- package/dist/components/display/Meter/meterTone.js.map +1 -0
- package/dist/components/display/Progress/Progress.d.ts +27 -0
- package/dist/components/display/Progress/Progress.js +45 -0
- package/dist/components/display/Progress/Progress.js.map +1 -0
- package/dist/components/display/Progress/Progress.module.js +14 -0
- package/dist/components/display/Progress/Progress.module.js.map +1 -0
- package/dist/components/display/Progress/index.d.ts +2 -0
- package/dist/components/display/Skeleton/Skeleton.d.ts +31 -0
- package/dist/components/display/Skeleton/Skeleton.js +60 -0
- package/dist/components/display/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/display/Skeleton/Skeleton.module.js +12 -0
- package/dist/components/display/Skeleton/Skeleton.module.js.map +1 -0
- package/dist/components/display/Skeleton/index.d.ts +2 -0
- package/dist/components/display/Stamp/Stamp.d.ts +25 -0
- package/dist/components/display/Stamp/Stamp.js +21 -0
- package/dist/components/display/Stamp/Stamp.js.map +1 -0
- package/dist/components/display/Stamp/Stamp.module.js +6 -0
- package/dist/components/display/Stamp/Stamp.module.js.map +1 -0
- package/dist/components/display/Stamp/index.d.ts +2 -0
- package/dist/components/display/Stat/Stat.d.ts +40 -0
- package/dist/components/display/Stat/Stat.js +46 -0
- package/dist/components/display/Stat/Stat.js.map +1 -0
- package/dist/components/display/Stat/Stat.module.js +13 -0
- package/dist/components/display/Stat/Stat.module.js.map +1 -0
- package/dist/components/display/Stat/index.d.ts +2 -0
- package/dist/components/display/Table/Table.d.ts +64 -0
- package/dist/components/display/Table/Table.js +124 -0
- package/dist/components/display/Table/Table.js.map +1 -0
- package/dist/components/display/Table/Table.module.js +18 -0
- package/dist/components/display/Table/Table.module.js.map +1 -0
- package/dist/components/display/Table/index.d.ts +2 -0
- package/dist/components/display/Tag/Tag.d.ts +21 -0
- package/dist/components/display/Tag/Tag.js +36 -0
- package/dist/components/display/Tag/Tag.js.map +1 -0
- package/dist/components/display/Tag/Tag.module.js +10 -0
- package/dist/components/display/Tag/Tag.module.js.map +1 -0
- package/dist/components/display/Tag/index.d.ts +2 -0
- package/dist/components/feedback/Alert/Alert.d.ts +33 -0
- package/dist/components/feedback/Alert/Alert.js +62 -0
- package/dist/components/feedback/Alert/Alert.js.map +1 -0
- package/dist/components/feedback/Alert/Alert.module.js +14 -0
- package/dist/components/feedback/Alert/Alert.module.js.map +1 -0
- package/dist/components/feedback/Alert/index.d.ts +2 -0
- package/dist/components/feedback/LiveIndicator/LiveIndicator.d.ts +22 -0
- package/dist/components/feedback/LiveIndicator/LiveIndicator.js +27 -0
- package/dist/components/feedback/LiveIndicator/LiveIndicator.js.map +1 -0
- package/dist/components/feedback/LiveIndicator/LiveIndicator.module.js +10 -0
- package/dist/components/feedback/LiveIndicator/LiveIndicator.module.js.map +1 -0
- package/dist/components/feedback/LiveIndicator/index.d.ts +2 -0
- package/dist/components/feedback/RelativeTime/RelativeTime.d.ts +24 -0
- package/dist/components/feedback/RelativeTime/RelativeTime.js +38 -0
- package/dist/components/feedback/RelativeTime/RelativeTime.js.map +1 -0
- package/dist/components/feedback/RelativeTime/RelativeTime.module.js +6 -0
- package/dist/components/feedback/RelativeTime/RelativeTime.module.js.map +1 -0
- package/dist/components/feedback/RelativeTime/format.d.ts +10 -0
- package/dist/components/feedback/RelativeTime/format.js +57 -0
- package/dist/components/feedback/RelativeTime/format.js.map +1 -0
- package/dist/components/feedback/RelativeTime/index.d.ts +4 -0
- package/dist/components/feedback/Spinner/Spinner.d.ts +8 -0
- package/dist/components/feedback/Spinner/Spinner.js +25 -0
- package/dist/components/feedback/Spinner/Spinner.js.map +1 -0
- package/dist/components/feedback/Spinner/Spinner.module.js +10 -0
- package/dist/components/feedback/Spinner/Spinner.module.js.map +1 -0
- package/dist/components/feedback/Spinner/index.d.ts +2 -0
- package/dist/components/feedback/StatusDot/StatusDot.d.ts +13 -0
- package/dist/components/feedback/StatusDot/StatusDot.js +26 -0
- package/dist/components/feedback/StatusDot/StatusDot.js.map +1 -0
- package/dist/components/feedback/StatusDot/StatusDot.module.js +11 -0
- package/dist/components/feedback/StatusDot/StatusDot.module.js.map +1 -0
- package/dist/components/feedback/StatusDot/index.d.ts +2 -0
- package/dist/components/inputs/AmountField/AmountField.d.ts +11 -0
- package/dist/components/inputs/AmountField/AmountField.js +26 -0
- package/dist/components/inputs/AmountField/AmountField.js.map +1 -0
- package/dist/components/inputs/AmountField/index.d.ts +2 -0
- package/dist/components/inputs/AmountInput/AmountInput.d.ts +38 -0
- package/dist/components/inputs/AmountInput/AmountInput.js +99 -0
- package/dist/components/inputs/AmountInput/AmountInput.js.map +1 -0
- package/dist/components/inputs/AmountInput/amountFormat.d.ts +5 -0
- package/dist/components/inputs/AmountInput/amountFormat.js +15 -0
- package/dist/components/inputs/AmountInput/amountFormat.js.map +1 -0
- package/dist/components/inputs/AmountInput/index.d.ts +2 -0
- package/dist/components/inputs/Checkbox/Checkbox.d.ts +18 -0
- package/dist/components/inputs/Checkbox/Checkbox.js +42 -0
- package/dist/components/inputs/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/inputs/Checkbox/Checkbox.module.js +12 -0
- package/dist/components/inputs/Checkbox/Checkbox.module.js.map +1 -0
- package/dist/components/inputs/Checkbox/index.d.ts +2 -0
- package/dist/components/inputs/CheckboxField/CheckboxField.d.ts +19 -0
- package/dist/components/inputs/CheckboxField/CheckboxField.js +69 -0
- package/dist/components/inputs/CheckboxField/CheckboxField.js.map +1 -0
- package/dist/components/inputs/CheckboxField/CheckboxField.module.js +12 -0
- package/dist/components/inputs/CheckboxField/CheckboxField.module.js.map +1 -0
- package/dist/components/inputs/CheckboxField/index.d.ts +2 -0
- package/dist/components/inputs/CheckboxGroup/CheckboxGroup.d.ts +43 -0
- package/dist/components/inputs/CheckboxGroup/CheckboxGroup.js +159 -0
- package/dist/components/inputs/CheckboxGroup/CheckboxGroup.js.map +1 -0
- package/dist/components/inputs/CheckboxGroup/CheckboxGroup.module.js +13 -0
- package/dist/components/inputs/CheckboxGroup/CheckboxGroup.module.js.map +1 -0
- package/dist/components/inputs/CheckboxGroup/choice.d.ts +33 -0
- package/dist/components/inputs/CheckboxGroup/choice.js +41 -0
- package/dist/components/inputs/CheckboxGroup/choice.js.map +1 -0
- package/dist/components/inputs/CheckboxGroup/index.d.ts +2 -0
- package/dist/components/inputs/CheckboxGroupField/CheckboxGroupField.d.ts +12 -0
- package/dist/components/inputs/CheckboxGroupField/CheckboxGroupField.js +24 -0
- package/dist/components/inputs/CheckboxGroupField/CheckboxGroupField.js.map +1 -0
- package/dist/components/inputs/CheckboxGroupField/index.d.ts +2 -0
- package/dist/components/inputs/ChipGroupField/ChipGroupField.d.ts +12 -0
- package/dist/components/inputs/ChipGroupField/ChipGroupField.js +24 -0
- package/dist/components/inputs/ChipGroupField/ChipGroupField.js.map +1 -0
- package/dist/components/inputs/ChipGroupField/index.d.ts +2 -0
- package/dist/components/inputs/ChoiceCards/ChoiceCards.d.ts +50 -0
- package/dist/components/inputs/ChoiceCards/ChoiceCards.js +130 -0
- package/dist/components/inputs/ChoiceCards/ChoiceCards.js.map +1 -0
- package/dist/components/inputs/ChoiceCards/ChoiceCards.module.js +15 -0
- package/dist/components/inputs/ChoiceCards/ChoiceCards.module.js.map +1 -0
- package/dist/components/inputs/ChoiceCards/index.d.ts +2 -0
- package/dist/components/inputs/ChoiceCardsField/ChoiceCardsField.d.ts +12 -0
- package/dist/components/inputs/ChoiceCardsField/ChoiceCardsField.js +24 -0
- package/dist/components/inputs/ChoiceCardsField/ChoiceCardsField.js.map +1 -0
- package/dist/components/inputs/ChoiceCardsField/index.d.ts +2 -0
- package/dist/components/inputs/ColorField/ColorField.d.ts +12 -0
- package/dist/components/inputs/ColorField/ColorField.js +26 -0
- package/dist/components/inputs/ColorField/ColorField.js.map +1 -0
- package/dist/components/inputs/ColorField/index.d.ts +2 -0
- package/dist/components/inputs/ColorInput/ColorInput.d.ts +30 -0
- package/dist/components/inputs/ColorInput/ColorInput.js +149 -0
- package/dist/components/inputs/ColorInput/ColorInput.js.map +1 -0
- package/dist/components/inputs/ColorInput/ColorInput.module.js +13 -0
- package/dist/components/inputs/ColorInput/ColorInput.module.js.map +1 -0
- package/dist/components/inputs/ColorInput/colorFormat.d.ts +2 -0
- package/dist/components/inputs/ColorInput/colorFormat.js +10 -0
- package/dist/components/inputs/ColorInput/colorFormat.js.map +1 -0
- package/dist/components/inputs/ColorInput/index.d.ts +2 -0
- package/dist/components/inputs/Combobox/Combobox.d.ts +74 -0
- package/dist/components/inputs/Combobox/Combobox.js +394 -0
- package/dist/components/inputs/Combobox/Combobox.js.map +1 -0
- package/dist/components/inputs/Combobox/Combobox.module.js +28 -0
- package/dist/components/inputs/Combobox/Combobox.module.js.map +1 -0
- package/dist/components/inputs/Combobox/index.d.ts +2 -0
- package/dist/components/inputs/Combobox/storyData.d.ts +7 -0
- package/dist/components/inputs/Combobox/useControllableState.d.ts +8 -0
- package/dist/components/inputs/Combobox/useControllableState.js +13 -0
- package/dist/components/inputs/Combobox/useControllableState.js.map +1 -0
- package/dist/components/inputs/ComboboxField/ComboboxField.d.ts +17 -0
- package/dist/components/inputs/ComboboxField/ComboboxField.js +26 -0
- package/dist/components/inputs/ComboboxField/ComboboxField.js.map +1 -0
- package/dist/components/inputs/ComboboxField/index.d.ts +2 -0
- package/dist/components/inputs/DateRangeField/DateRangeField.d.ts +37 -0
- package/dist/components/inputs/DateRangeField/DateRangeField.js +87 -0
- package/dist/components/inputs/DateRangeField/DateRangeField.js.map +1 -0
- package/dist/components/inputs/DateRangeField/DateRangeField.module.js +10 -0
- package/dist/components/inputs/DateRangeField/DateRangeField.module.js.map +1 -0
- package/dist/components/inputs/DateRangeField/index.d.ts +2 -0
- package/dist/components/inputs/Field/Field.d.ts +79 -0
- package/dist/components/inputs/Field/Field.js +100 -0
- package/dist/components/inputs/Field/Field.js.map +1 -0
- package/dist/components/inputs/Field/Field.module.js +12 -0
- package/dist/components/inputs/Field/Field.module.js.map +1 -0
- package/dist/components/inputs/Field/index.d.ts +4 -0
- package/dist/components/inputs/Fieldset/Fieldset.d.ts +48 -0
- package/dist/components/inputs/Fieldset/Fieldset.js +83 -0
- package/dist/components/inputs/Fieldset/Fieldset.js.map +1 -0
- package/dist/components/inputs/Fieldset/Fieldset.module.js +12 -0
- package/dist/components/inputs/Fieldset/Fieldset.module.js.map +1 -0
- package/dist/components/inputs/Fieldset/index.d.ts +2 -0
- package/dist/components/inputs/FileDrop/FileDrop.d.ts +60 -0
- package/dist/components/inputs/FileDrop/FileDrop.js +189 -0
- package/dist/components/inputs/FileDrop/FileDrop.js.map +1 -0
- package/dist/components/inputs/FileDrop/FileDrop.module.js +21 -0
- package/dist/components/inputs/FileDrop/FileDrop.module.js.map +1 -0
- package/dist/components/inputs/FileDrop/fileUtils.d.ts +11 -0
- package/dist/components/inputs/FileDrop/fileUtils.js +38 -0
- package/dist/components/inputs/FileDrop/fileUtils.js.map +1 -0
- package/dist/components/inputs/FileDrop/index.d.ts +2 -0
- package/dist/components/inputs/FileField/FileField.d.ts +12 -0
- package/dist/components/inputs/FileField/FileField.js +26 -0
- package/dist/components/inputs/FileField/FileField.js.map +1 -0
- package/dist/components/inputs/FileField/index.d.ts +2 -0
- package/dist/components/inputs/Input/Input.d.ts +25 -0
- package/dist/components/inputs/Input/Input.js +62 -0
- package/dist/components/inputs/Input/Input.js.map +1 -0
- package/dist/components/inputs/Input/Input.module.js +10 -0
- package/dist/components/inputs/Input/Input.module.js.map +1 -0
- package/dist/components/inputs/Input/index.d.ts +2 -0
- package/dist/components/inputs/NumberField/NumberField.d.ts +11 -0
- package/dist/components/inputs/NumberField/NumberField.js +26 -0
- package/dist/components/inputs/NumberField/NumberField.js.map +1 -0
- package/dist/components/inputs/NumberField/index.d.ts +2 -0
- package/dist/components/inputs/NumberInput/NumberInput.d.ts +35 -0
- package/dist/components/inputs/NumberInput/NumberInput.js +139 -0
- package/dist/components/inputs/NumberInput/NumberInput.js.map +1 -0
- package/dist/components/inputs/NumberInput/NumberInput.module.js +6 -0
- package/dist/components/inputs/NumberInput/NumberInput.module.js.map +1 -0
- package/dist/components/inputs/NumberInput/index.d.ts +2 -0
- package/dist/components/inputs/NumberInput/numberFormat.d.ts +24 -0
- package/dist/components/inputs/NumberInput/numberFormat.js +48 -0
- package/dist/components/inputs/NumberInput/numberFormat.js.map +1 -0
- package/dist/components/inputs/OneTimeCodeField/OneTimeCodeField.d.ts +12 -0
- package/dist/components/inputs/OneTimeCodeField/OneTimeCodeField.js +26 -0
- package/dist/components/inputs/OneTimeCodeField/OneTimeCodeField.js.map +1 -0
- package/dist/components/inputs/OneTimeCodeField/index.d.ts +2 -0
- package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.d.ts +35 -0
- package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.js +56 -0
- package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.js.map +1 -0
- package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.module.js +9 -0
- package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.module.js.map +1 -0
- package/dist/components/inputs/OneTimeCodeInput/index.d.ts +2 -0
- package/dist/components/inputs/PasswordField/PasswordField.d.ts +13 -0
- package/dist/components/inputs/PasswordField/PasswordField.js +29 -0
- package/dist/components/inputs/PasswordField/PasswordField.js.map +1 -0
- package/dist/components/inputs/PasswordField/index.d.ts +2 -0
- package/dist/components/inputs/PasswordInput/PasswordInput.d.ts +22 -0
- package/dist/components/inputs/PasswordInput/PasswordInput.js +75 -0
- package/dist/components/inputs/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/components/inputs/PasswordInput/PasswordInput.module.js +6 -0
- package/dist/components/inputs/PasswordInput/PasswordInput.module.js.map +1 -0
- package/dist/components/inputs/PasswordInput/index.d.ts +2 -0
- package/dist/components/inputs/RadioGroup/RadioGroup.d.ts +19 -0
- package/dist/components/inputs/RadioGroup/RadioGroup.js +68 -0
- package/dist/components/inputs/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/components/inputs/RadioGroup/RadioGroup.module.js +15 -0
- package/dist/components/inputs/RadioGroup/RadioGroup.module.js.map +1 -0
- package/dist/components/inputs/RadioGroup/index.d.ts +2 -0
- package/dist/components/inputs/RadioGroupField/RadioGroupField.d.ts +16 -0
- package/dist/components/inputs/RadioGroupField/RadioGroupField.js +33 -0
- package/dist/components/inputs/RadioGroupField/RadioGroupField.js.map +1 -0
- package/dist/components/inputs/RadioGroupField/index.d.ts +2 -0
- package/dist/components/inputs/RangeSlider/RangeSlider.d.ts +23 -0
- package/dist/components/inputs/RangeSlider/RangeSlider.js +63 -0
- package/dist/components/inputs/RangeSlider/RangeSlider.js.map +1 -0
- package/dist/components/inputs/RangeSlider/index.d.ts +2 -0
- package/dist/components/inputs/RangeSliderField/RangeSliderField.d.ts +12 -0
- package/dist/components/inputs/RangeSliderField/RangeSliderField.js +24 -0
- package/dist/components/inputs/RangeSliderField/RangeSliderField.js.map +1 -0
- package/dist/components/inputs/RangeSliderField/index.d.ts +2 -0
- package/dist/components/inputs/Rating/Rating.d.ts +31 -0
- package/dist/components/inputs/Rating/Rating.js +66 -0
- package/dist/components/inputs/Rating/Rating.js.map +1 -0
- package/dist/components/inputs/Rating/Rating.module.js +10 -0
- package/dist/components/inputs/Rating/Rating.module.js.map +1 -0
- package/dist/components/inputs/Rating/index.d.ts +2 -0
- package/dist/components/inputs/RatingField/RatingField.d.ts +12 -0
- package/dist/components/inputs/RatingField/RatingField.js +24 -0
- package/dist/components/inputs/RatingField/RatingField.js.map +1 -0
- package/dist/components/inputs/RatingField/index.d.ts +2 -0
- package/dist/components/inputs/SegmentedField/SegmentedField.d.ts +12 -0
- package/dist/components/inputs/SegmentedField/SegmentedField.js +24 -0
- package/dist/components/inputs/SegmentedField/SegmentedField.js.map +1 -0
- package/dist/components/inputs/SegmentedField/index.d.ts +2 -0
- package/dist/components/inputs/Select/Select.d.ts +66 -0
- package/dist/components/inputs/Select/Select.js +165 -0
- package/dist/components/inputs/Select/Select.js.map +1 -0
- package/dist/components/inputs/Select/Select.module.js +19 -0
- package/dist/components/inputs/Select/Select.module.js.map +1 -0
- package/dist/components/inputs/Select/index.d.ts +2 -0
- package/dist/components/inputs/SelectField/SelectField.d.ts +13 -0
- package/dist/components/inputs/SelectField/SelectField.js +26 -0
- package/dist/components/inputs/SelectField/SelectField.js.map +1 -0
- package/dist/components/inputs/SelectField/index.d.ts +2 -0
- package/dist/components/inputs/Slider/Slider.d.ts +40 -0
- package/dist/components/inputs/Slider/Slider.js +51 -0
- package/dist/components/inputs/Slider/Slider.js.map +1 -0
- package/dist/components/inputs/Slider/Slider.module.js +15 -0
- package/dist/components/inputs/Slider/Slider.module.js.map +1 -0
- package/dist/components/inputs/Slider/SliderBase.d.ts +37 -0
- package/dist/components/inputs/Slider/SliderBase.js +85 -0
- package/dist/components/inputs/Slider/SliderBase.js.map +1 -0
- package/dist/components/inputs/Slider/index.d.ts +2 -0
- package/dist/components/inputs/SliderField/SliderField.d.ts +12 -0
- package/dist/components/inputs/SliderField/SliderField.js +24 -0
- package/dist/components/inputs/SliderField/SliderField.js.map +1 -0
- package/dist/components/inputs/SliderField/index.d.ts +2 -0
- package/dist/components/inputs/Switch/Switch.d.ts +18 -0
- package/dist/components/inputs/Switch/Switch.js +46 -0
- package/dist/components/inputs/Switch/Switch.js.map +1 -0
- package/dist/components/inputs/Switch/Switch.module.js +11 -0
- package/dist/components/inputs/Switch/Switch.module.js.map +1 -0
- package/dist/components/inputs/Switch/index.d.ts +2 -0
- package/dist/components/inputs/SwitchField/SwitchField.d.ts +13 -0
- package/dist/components/inputs/SwitchField/SwitchField.js +73 -0
- package/dist/components/inputs/SwitchField/SwitchField.js.map +1 -0
- package/dist/components/inputs/SwitchField/SwitchField.module.js +12 -0
- package/dist/components/inputs/SwitchField/SwitchField.module.js.map +1 -0
- package/dist/components/inputs/SwitchField/index.d.ts +2 -0
- package/dist/components/inputs/TagsField/TagsField.d.ts +12 -0
- package/dist/components/inputs/TagsField/TagsField.js +26 -0
- package/dist/components/inputs/TagsField/TagsField.js.map +1 -0
- package/dist/components/inputs/TagsField/index.d.ts +2 -0
- package/dist/components/inputs/TagsInput/TagsInput.d.ts +35 -0
- package/dist/components/inputs/TagsInput/TagsInput.js +155 -0
- package/dist/components/inputs/TagsInput/TagsInput.js.map +1 -0
- package/dist/components/inputs/TagsInput/TagsInput.module.js +13 -0
- package/dist/components/inputs/TagsInput/TagsInput.module.js.map +1 -0
- package/dist/components/inputs/TagsInput/index.d.ts +2 -0
- package/dist/components/inputs/TextField/TextField.d.ts +18 -0
- package/dist/components/inputs/TextField/TextField.js +40 -0
- package/dist/components/inputs/TextField/TextField.js.map +1 -0
- package/dist/components/inputs/TextField/index.d.ts +2 -0
- package/dist/components/inputs/Textarea/Textarea.d.ts +20 -0
- package/dist/components/inputs/Textarea/Textarea.js +61 -0
- package/dist/components/inputs/Textarea/Textarea.js.map +1 -0
- package/dist/components/inputs/Textarea/Textarea.module.js +6 -0
- package/dist/components/inputs/Textarea/Textarea.module.js.map +1 -0
- package/dist/components/inputs/Textarea/index.d.ts +2 -0
- package/dist/components/inputs/TextareaField/TextareaField.d.ts +18 -0
- package/dist/components/inputs/TextareaField/TextareaField.js +40 -0
- package/dist/components/inputs/TextareaField/TextareaField.js.map +1 -0
- package/dist/components/inputs/TextareaField/index.d.ts +2 -0
- package/dist/components/inputs/internal/FieldContext.d.ts +60 -0
- package/dist/components/inputs/internal/FieldContext.js +32 -0
- package/dist/components/inputs/internal/FieldContext.js.map +1 -0
- package/dist/components/inputs/internal/control.module.js +6 -0
- package/dist/components/inputs/internal/control.module.js.map +1 -0
- package/dist/components/inputs/internal/errors.d.ts +5 -0
- package/dist/components/inputs/internal/errors.js +11 -0
- package/dist/components/inputs/internal/errors.js.map +1 -0
- package/dist/components/inputs/internal/fieldProps.d.ts +12 -0
- package/dist/components/inputs/internal/fieldProps.js +25 -0
- package/dist/components/inputs/internal/fieldProps.js.map +1 -0
- package/dist/components/inputs/internal/filterOptions.d.ts +23 -0
- package/dist/components/inputs/internal/filterOptions.js +28 -0
- package/dist/components/inputs/internal/filterOptions.js.map +1 -0
- package/dist/components/inputs/internal/messages.d.ts +40 -0
- package/dist/components/inputs/internal/messages.js +58 -0
- package/dist/components/inputs/internal/messages.js.map +1 -0
- package/dist/components/inputs/internal/messages.module.js +18 -0
- package/dist/components/inputs/internal/messages.module.js.map +1 -0
- package/dist/components/inputs/internal/refs.d.ts +7 -0
- package/dist/components/inputs/internal/refs.js +19 -0
- package/dist/components/inputs/internal/refs.js.map +1 -0
- package/dist/components/inputs/internal/storyData.d.ts +4 -0
- package/dist/components/inputs/internal/useLatest.d.ts +7 -0
- package/dist/components/inputs/internal/useLatest.js +13 -0
- package/dist/components/inputs/internal/useLatest.js.map +1 -0
- package/dist/components/layout/ActionBar/ActionBar.d.ts +30 -0
- package/dist/components/layout/ActionBar/ActionBar.js +25 -0
- package/dist/components/layout/ActionBar/ActionBar.js.map +1 -0
- package/dist/components/layout/ActionBar/ActionBar.module.js +6 -0
- package/dist/components/layout/ActionBar/ActionBar.module.js.map +1 -0
- package/dist/components/layout/ActionBar/index.d.ts +2 -0
- package/dist/components/layout/AppShell/AppShell.d.ts +33 -0
- package/dist/components/layout/AppShell/AppShell.js +70 -0
- package/dist/components/layout/AppShell/AppShell.js.map +1 -0
- package/dist/components/layout/AppShell/AppShell.module.js +14 -0
- package/dist/components/layout/AppShell/AppShell.module.js.map +1 -0
- package/dist/components/layout/AppShell/index.d.ts +2 -0
- package/dist/components/layout/AspectRatio/AspectRatio.d.ts +14 -0
- package/dist/components/layout/AspectRatio/AspectRatio.js +18 -0
- package/dist/components/layout/AspectRatio/AspectRatio.js.map +1 -0
- package/dist/components/layout/AspectRatio/AspectRatio.module.js +6 -0
- package/dist/components/layout/AspectRatio/AspectRatio.module.js.map +1 -0
- package/dist/components/layout/AspectRatio/index.d.ts +2 -0
- package/dist/components/layout/Box/Box.d.ts +29 -0
- package/dist/components/layout/Box/Box.js +26 -0
- package/dist/components/layout/Box/Box.js.map +1 -0
- package/dist/components/layout/Box/Box.module.js +6 -0
- package/dist/components/layout/Box/Box.module.js.map +1 -0
- package/dist/components/layout/Box/index.d.ts +2 -0
- package/dist/components/layout/Container/Container.d.ts +21 -0
- package/dist/components/layout/Container/Container.js +22 -0
- package/dist/components/layout/Container/Container.js.map +1 -0
- package/dist/components/layout/Container/Container.module.js +6 -0
- package/dist/components/layout/Container/Container.module.js.map +1 -0
- package/dist/components/layout/Container/index.d.ts +2 -0
- package/dist/components/layout/Divider/Divider.d.ts +28 -0
- package/dist/components/layout/Divider/Divider.js +35 -0
- package/dist/components/layout/Divider/Divider.js.map +1 -0
- package/dist/components/layout/Divider/Divider.module.js +9 -0
- package/dist/components/layout/Divider/Divider.module.js.map +1 -0
- package/dist/components/layout/Divider/index.d.ts +2 -0
- package/dist/components/layout/Grid/Grid.d.ts +50 -0
- package/dist/components/layout/Grid/Grid.js +35 -0
- package/dist/components/layout/Grid/Grid.js.map +1 -0
- package/dist/components/layout/Grid/Grid.module.js +9 -0
- package/dist/components/layout/Grid/Grid.module.js.map +1 -0
- package/dist/components/layout/Grid/index.d.ts +2 -0
- package/dist/components/layout/Inline/Inline.d.ts +24 -0
- package/dist/components/layout/Inline/Inline.js +25 -0
- package/dist/components/layout/Inline/Inline.js.map +1 -0
- package/dist/components/layout/Inline/Inline.module.js +6 -0
- package/dist/components/layout/Inline/Inline.module.js.map +1 -0
- package/dist/components/layout/Inline/index.d.ts +2 -0
- package/dist/components/layout/Section/Section.d.ts +30 -0
- package/dist/components/layout/Section/Section.js +25 -0
- package/dist/components/layout/Section/Section.js.map +1 -0
- package/dist/components/layout/Section/Section.module.js +6 -0
- package/dist/components/layout/Section/Section.module.js.map +1 -0
- package/dist/components/layout/Section/index.d.ts +2 -0
- package/dist/components/layout/Split/Split.d.ts +32 -0
- package/dist/components/layout/Split/Split.js +26 -0
- package/dist/components/layout/Split/Split.js.map +1 -0
- package/dist/components/layout/Split/Split.module.js +6 -0
- package/dist/components/layout/Split/Split.module.js.map +1 -0
- package/dist/components/layout/Split/index.d.ts +2 -0
- package/dist/components/layout/Stack/Stack.d.ts +21 -0
- package/dist/components/layout/Stack/Stack.js +25 -0
- package/dist/components/layout/Stack/Stack.js.map +1 -0
- package/dist/components/layout/Stack/Stack.module.js +6 -0
- package/dist/components/layout/Stack/Stack.module.js.map +1 -0
- package/dist/components/layout/Stack/index.d.ts +2 -0
- package/dist/components/layout/VisuallyHidden/VisuallyHidden.d.ts +20 -0
- package/dist/components/layout/VisuallyHidden/VisuallyHidden.js +17 -0
- package/dist/components/layout/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/components/layout/VisuallyHidden/VisuallyHidden.module.js +6 -0
- package/dist/components/layout/VisuallyHidden/VisuallyHidden.module.js.map +1 -0
- package/dist/components/layout/VisuallyHidden/index.d.ts +2 -0
- package/dist/components/navigation/Accordion/Accordion.d.ts +35 -0
- package/dist/components/navigation/Accordion/Accordion.js +68 -0
- package/dist/components/navigation/Accordion/Accordion.js.map +1 -0
- package/dist/components/navigation/Accordion/Accordion.module.js +17 -0
- package/dist/components/navigation/Accordion/Accordion.module.js.map +1 -0
- package/dist/components/navigation/Accordion/index.d.ts +2 -0
- package/dist/components/navigation/BottomNav/BottomNav.d.ts +42 -0
- package/dist/components/navigation/BottomNav/BottomNav.js +67 -0
- package/dist/components/navigation/BottomNav/BottomNav.js.map +1 -0
- package/dist/components/navigation/BottomNav/BottomNav.module.js +16 -0
- package/dist/components/navigation/BottomNav/BottomNav.module.js.map +1 -0
- package/dist/components/navigation/BottomNav/index.d.ts +2 -0
- package/dist/components/navigation/NavLinks/NavLinks.d.ts +32 -0
- package/dist/components/navigation/NavLinks/NavLinks.js +57 -0
- package/dist/components/navigation/NavLinks/NavLinks.js.map +1 -0
- package/dist/components/navigation/NavLinks/NavLinks.module.js +11 -0
- package/dist/components/navigation/NavLinks/NavLinks.module.js.map +1 -0
- package/dist/components/navigation/NavLinks/index.d.ts +2 -0
- package/dist/components/navigation/Stepper/Stepper.d.ts +45 -0
- package/dist/components/navigation/Stepper/Stepper.js +93 -0
- package/dist/components/navigation/Stepper/Stepper.js.map +1 -0
- package/dist/components/navigation/Stepper/Stepper.module.js +19 -0
- package/dist/components/navigation/Stepper/Stepper.module.js.map +1 -0
- package/dist/components/navigation/Stepper/index.d.ts +2 -0
- package/dist/components/navigation/Tabs/Tabs.d.ts +31 -0
- package/dist/components/navigation/Tabs/Tabs.js +47 -0
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.module.js +11 -0
- package/dist/components/navigation/Tabs/Tabs.module.js.map +1 -0
- package/dist/components/navigation/Tabs/index.d.ts +2 -0
- package/dist/components/overlays/Dialog/Dialog.d.ts +49 -0
- package/dist/components/overlays/Dialog/Dialog.js +97 -0
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -0
- package/dist/components/overlays/Dialog/Dialog.module.js +17 -0
- package/dist/components/overlays/Dialog/Dialog.module.js.map +1 -0
- package/dist/components/overlays/Dialog/index.d.ts +2 -0
- package/dist/components/overlays/DropdownMenu/DropdownMenu.d.ts +62 -0
- package/dist/components/overlays/DropdownMenu/DropdownMenu.js +172 -0
- package/dist/components/overlays/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/overlays/DropdownMenu/DropdownMenu.module.js +19 -0
- package/dist/components/overlays/DropdownMenu/DropdownMenu.module.js.map +1 -0
- package/dist/components/overlays/DropdownMenu/index.d.ts +2 -0
- package/dist/components/overlays/OverlayClose.d.ts +7 -0
- package/dist/components/overlays/OverlayClose.js +20 -0
- package/dist/components/overlays/OverlayClose.js.map +1 -0
- package/dist/components/overlays/OverlayClose.module.js +6 -0
- package/dist/components/overlays/OverlayClose.module.js.map +1 -0
- package/dist/components/overlays/Popover/Popover.d.ts +31 -0
- package/dist/components/overlays/Popover/Popover.js +75 -0
- package/dist/components/overlays/Popover/Popover.js.map +1 -0
- package/dist/components/overlays/Popover/Popover.module.js +13 -0
- package/dist/components/overlays/Popover/Popover.module.js.map +1 -0
- package/dist/components/overlays/Popover/index.d.ts +2 -0
- package/dist/components/overlays/Sheet/Sheet.d.ts +56 -0
- package/dist/components/overlays/Sheet/Sheet.js +105 -0
- package/dist/components/overlays/Sheet/Sheet.js.map +1 -0
- package/dist/components/overlays/Sheet/Sheet.module.js +20 -0
- package/dist/components/overlays/Sheet/Sheet.module.js.map +1 -0
- package/dist/components/overlays/Sheet/index.d.ts +2 -0
- package/dist/components/overlays/Tooltip/Tooltip.d.ts +35 -0
- package/dist/components/overlays/Tooltip/Tooltip.js +64 -0
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.js +11 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.js.map +1 -0
- package/dist/components/overlays/Tooltip/index.d.ts +2 -0
- package/dist/components/overlays/usePortalTheme.d.ts +44 -0
- package/dist/components/overlays/usePortalTheme.js +62 -0
- package/dist/components/overlays/usePortalTheme.js.map +1 -0
- package/dist/components/typography/Amount/Amount.d.ts +27 -0
- package/dist/components/typography/Amount/Amount.js +67 -0
- package/dist/components/typography/Amount/Amount.js.map +1 -0
- package/dist/components/typography/Amount/Amount.module.js +6 -0
- package/dist/components/typography/Amount/Amount.module.js.map +1 -0
- package/dist/components/typography/Amount/index.d.ts +2 -0
- package/dist/components/typography/Code/Code.d.ts +13 -0
- package/dist/components/typography/Code/Code.js +18 -0
- package/dist/components/typography/Code/Code.js.map +1 -0
- package/dist/components/typography/Code/Code.module.js +6 -0
- package/dist/components/typography/Code/Code.module.js.map +1 -0
- package/dist/components/typography/Code/index.d.ts +2 -0
- package/dist/components/typography/Heading/Heading.d.ts +34 -0
- package/dist/components/typography/Heading/Heading.js +46 -0
- package/dist/components/typography/Heading/Heading.js.map +1 -0
- package/dist/components/typography/Heading/Heading.module.js +6 -0
- package/dist/components/typography/Heading/Heading.module.js.map +1 -0
- package/dist/components/typography/Heading/index.d.ts +4 -0
- package/dist/components/typography/Heading/sizes.d.ts +4 -0
- package/dist/components/typography/Heading/sizes.js +13 -0
- package/dist/components/typography/Heading/sizes.js.map +1 -0
- package/dist/components/typography/Kbd/Kbd.d.ts +11 -0
- package/dist/components/typography/Kbd/Kbd.js +18 -0
- package/dist/components/typography/Kbd/Kbd.js.map +1 -0
- package/dist/components/typography/Kbd/Kbd.module.js +6 -0
- package/dist/components/typography/Kbd/Kbd.module.js.map +1 -0
- package/dist/components/typography/Kbd/index.d.ts +2 -0
- package/dist/components/typography/Link/Link.d.ts +26 -0
- package/dist/components/typography/Link/Link.js +32 -0
- package/dist/components/typography/Link/Link.js.map +1 -0
- package/dist/components/typography/Link/Link.module.js +11 -0
- package/dist/components/typography/Link/Link.module.js.map +1 -0
- package/dist/components/typography/Link/index.d.ts +2 -0
- package/dist/components/typography/Numeral/Numeral.d.ts +29 -0
- package/dist/components/typography/Numeral/Numeral.js +41 -0
- package/dist/components/typography/Numeral/Numeral.js.map +1 -0
- package/dist/components/typography/Numeral/Numeral.module.js +9 -0
- package/dist/components/typography/Numeral/Numeral.module.js.map +1 -0
- package/dist/components/typography/Numeral/format.d.ts +16 -0
- package/dist/components/typography/Numeral/format.js +30 -0
- package/dist/components/typography/Numeral/format.js.map +1 -0
- package/dist/components/typography/Numeral/index.d.ts +4 -0
- package/dist/components/typography/Prose/Prose.d.ts +16 -0
- package/dist/components/typography/Prose/Prose.js +17 -0
- package/dist/components/typography/Prose/Prose.js.map +1 -0
- package/dist/components/typography/Prose/Prose.module.js +6 -0
- package/dist/components/typography/Prose/Prose.module.js.map +1 -0
- package/dist/components/typography/Prose/index.d.ts +2 -0
- package/dist/components/typography/Quote/Quote.d.ts +20 -0
- package/dist/components/typography/Quote/Quote.js +34 -0
- package/dist/components/typography/Quote/Quote.js.map +1 -0
- package/dist/components/typography/Quote/Quote.module.js +11 -0
- package/dist/components/typography/Quote/Quote.module.js.map +1 -0
- package/dist/components/typography/Quote/index.d.ts +2 -0
- package/dist/components/typography/SectionHeader/SectionHeader.d.ts +33 -0
- package/dist/components/typography/SectionHeader/SectionHeader.js +42 -0
- package/dist/components/typography/SectionHeader/SectionHeader.js.map +1 -0
- package/dist/components/typography/SectionHeader/SectionHeader.module.js +13 -0
- package/dist/components/typography/SectionHeader/SectionHeader.module.js.map +1 -0
- package/dist/components/typography/SectionHeader/index.d.ts +2 -0
- package/dist/components/typography/Text/Text.d.ts +35 -0
- package/dist/components/typography/Text/Text.js +27 -0
- package/dist/components/typography/Text/Text.js.map +1 -0
- package/dist/components/typography/Text/Text.module.js +6 -0
- package/dist/components/typography/Text/Text.module.js.map +1 -0
- package/dist/components/typography/Text/index.d.ts +2 -0
- package/dist/icons/Icon.d.ts +14 -0
- package/dist/icons/Icon.js +30 -0
- package/dist/icons/Icon.js.map +1 -0
- package/dist/icons/Icon.module.js +6 -0
- package/dist/icons/Icon.module.js.map +1 -0
- package/dist/icons/icons.d.ts +26 -0
- package/dist/icons/icons.js +63 -0
- package/dist/icons/icons.js.map +1 -0
- package/dist/icons/index.d.ts +3 -0
- package/dist/index.d.ts +225 -0
- package/dist/index.js +117 -0
- package/dist/styles.css +2 -0
- package/dist/stylesheets.d.ts +10 -0
- package/dist/theme/ThemeProvider.d.ts +52 -0
- package/dist/theme/ThemeProvider.js +86 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/context.d.ts +20 -0
- package/dist/theme/context.js +19 -0
- package/dist/theme/context.js.map +1 -0
- package/dist/theme/index.d.ts +6 -0
- package/dist/theme/themes.d.ts +31 -0
- package/dist/theme/themes.js +36 -0
- package/dist/theme/themes.js.map +1 -0
- package/dist/themes/fiesta.css +1 -0
- package/dist/themes/ledger.css +1 -0
- package/dist/themes/monograph.css +1 -0
- package/dist/utils/cx.d.ts +5 -0
- package/dist/utils/cx.js +8 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/heading.d.ts +13 -0
- package/dist/utils/heading.js +16 -0
- package/dist/utils/heading.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/responsive.d.ts +28 -0
- package/dist/utils/responsive.js +40 -0
- package/dist/utils/responsive.js.map +1 -0
- package/dist/utils/tokens.d.ts +18 -0
- package/dist/utils/tokens.js +6 -0
- package/dist/utils/tokens.js.map +1 -0
- package/dist/utils/visibility.d.ts +14 -0
- package/dist/utils/visibility.js +21 -0
- package/dist/utils/visibility.js.map +1 -0
- package/dist/utils/visibility.module.js +16 -0
- package/dist/utils/visibility.module.js.map +1 -0
- package/package.json +91 -0
- package/skills/custom-theme/SKILL.md +293 -0
- package/skills/custom-theme/references/colour.md +55 -0
- package/skills/custom-theme/references/motion.md +39 -0
- package/skills/custom-theme/references/tokens.md +199 -0
- package/skills/custom-theme/references/type.md +61 -0
- package/skills/design-rules/SKILL.md +74 -0
- package/skills/layout-composition/SKILL.md +498 -0
- package/skills/layout-composition/references/action-bar.md +59 -0
- package/skills/layout-composition/references/app-shell.md +141 -0
- package/skills/layout-composition/references/aspect-ratio.md +49 -0
- package/skills/layout-composition/references/box.md +49 -0
- package/skills/layout-composition/references/checkout.md +124 -0
- package/skills/layout-composition/references/container.md +59 -0
- package/skills/layout-composition/references/dashboard.md +163 -0
- package/skills/layout-composition/references/divider.md +59 -0
- package/skills/layout-composition/references/settings.md +134 -0
- package/skills/layout-composition/references/visually-hidden.md +41 -0
- package/skills/setup-and-theming/SKILL.md +197 -0
- package/skills/setup-and-theming/references/fiesta.md +32 -0
- package/skills/setup-and-theming/references/ledger.md +32 -0
- package/skills/setup-and-theming/references/monograph.md +39 -0
- package/skills/setup-and-theming/references/paper.md +35 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type FocusEventHandler, type HTMLAttributes } from 'react';
|
|
2
|
+
import type { Size } from '../../../utils/tokens.js';
|
|
3
|
+
import { type FieldLabelProps } from '../Field/index.js';
|
|
4
|
+
/** Two ISO dates (`YYYY-MM-DD`); `''` for an unset end. */
|
|
5
|
+
export interface DateRangeValue {
|
|
6
|
+
start: string;
|
|
7
|
+
end: string;
|
|
8
|
+
}
|
|
9
|
+
export interface DateRangeFieldProps extends FieldLabelProps, Omit<HTMLAttributes<HTMLFieldSetElement>, 'onChange' | 'defaultValue' | 'onBlur' | keyof FieldLabelProps> {
|
|
10
|
+
value?: DateRangeValue;
|
|
11
|
+
defaultValue?: DateRangeValue;
|
|
12
|
+
onValueChange?: (value: DateRangeValue) => void;
|
|
13
|
+
/** Earliest date either end may take (`YYYY-MM-DD`). */
|
|
14
|
+
min?: string;
|
|
15
|
+
/** Latest date either end may take (`YYYY-MM-DD`). */
|
|
16
|
+
max?: string;
|
|
17
|
+
/** Label of the first input. Default `'Start date'`. */
|
|
18
|
+
startLabel?: string;
|
|
19
|
+
/** Label of the second input. Default `'End date'`. */
|
|
20
|
+
endLabel?: string;
|
|
21
|
+
/** Submits `${name}.start` and `${name}.end`. */
|
|
22
|
+
name?: string;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
readOnly?: boolean;
|
|
25
|
+
/** Fires when focus leaves both inputs (not when it moves from start to end). */
|
|
26
|
+
onBlur?: FocusEventHandler;
|
|
27
|
+
size?: Size;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A date range as two native date inputs under one legend, side by side and wrapping
|
|
31
|
+
* when narrow. The start can't pass the end and the end can't come before the start
|
|
32
|
+
* (each input's `min`/`max` follows the other). `id` goes to the start input; the ref to
|
|
33
|
+
* the fieldset.
|
|
34
|
+
*
|
|
35
|
+
* <DateRangeField label="Trip dates" value={dates} onValueChange={setDates} />
|
|
36
|
+
*/
|
|
37
|
+
export declare const DateRangeField: import("react").ForwardRefExoticComponent<DateRangeFieldProps & import("react").RefAttributes<HTMLFieldSetElement>>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { hasError as t } from "../internal/errors.js";
|
|
3
|
+
import { Field as n } from "../Field/Field.js";
|
|
4
|
+
import { Input as r } from "../Input/Input.js";
|
|
5
|
+
import { Fieldset as i } from "../Fieldset/Fieldset.js";
|
|
6
|
+
import { splitFieldLabelProps as a } from "../internal/fieldProps.js";
|
|
7
|
+
import o from "./DateRangeField.module.js";
|
|
8
|
+
import { forwardRef as s, useState as c } from "react";
|
|
9
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/inputs/DateRangeField/DateRangeField.tsx
|
|
11
|
+
var d = {
|
|
12
|
+
start: "",
|
|
13
|
+
end: ""
|
|
14
|
+
}, f = s(function(s, f) {
|
|
15
|
+
let [p, m] = a(s), { label: h, labelHidden: g, hint: _, description: v, readOnly: y = !1, ...b } = p, { value: x, defaultValue: S, onValueChange: C, min: w, max: T, startLabel: E = "Start date", endLabel: D = "End date", name: O, disabled: k = !1, onBlur: A, size: j, id: M, className: N, ...P } = m, [F, I] = c(S ?? d), L = x ?? F, R = (e, t) => {
|
|
16
|
+
if (y) return;
|
|
17
|
+
let n = {
|
|
18
|
+
...L,
|
|
19
|
+
[e]: t
|
|
20
|
+
};
|
|
21
|
+
x === void 0 && I(n), C?.(n);
|
|
22
|
+
}, z = (e) => {
|
|
23
|
+
e.relatedTarget instanceof Node && e.currentTarget.contains(e.relatedTarget) || A?.(e);
|
|
24
|
+
}, B = t(b.error) || void 0, V = b.required, H = b.validating ? !0 : void 0;
|
|
25
|
+
return /* @__PURE__ */ l(i, {
|
|
26
|
+
ref: f,
|
|
27
|
+
...P,
|
|
28
|
+
...b,
|
|
29
|
+
legend: h,
|
|
30
|
+
legendHidden: g,
|
|
31
|
+
description: v ?? _,
|
|
32
|
+
disabled: k,
|
|
33
|
+
readOnly: y,
|
|
34
|
+
className: e(o.root, N),
|
|
35
|
+
onBlur: z,
|
|
36
|
+
children: /* @__PURE__ */ u("div", {
|
|
37
|
+
className: o.parts,
|
|
38
|
+
children: [/* @__PURE__ */ l(n, {
|
|
39
|
+
label: E,
|
|
40
|
+
htmlFor: M,
|
|
41
|
+
className: o.part,
|
|
42
|
+
error: B,
|
|
43
|
+
errorHidden: !0,
|
|
44
|
+
disabled: k,
|
|
45
|
+
readOnly: y,
|
|
46
|
+
children: /* @__PURE__ */ l(r, {
|
|
47
|
+
id: M,
|
|
48
|
+
type: "date",
|
|
49
|
+
size: j,
|
|
50
|
+
name: O == null ? void 0 : `${O}.start`,
|
|
51
|
+
value: L.start,
|
|
52
|
+
min: w,
|
|
53
|
+
max: L.end || T,
|
|
54
|
+
required: V,
|
|
55
|
+
"aria-busy": H,
|
|
56
|
+
onChange: (e) => {
|
|
57
|
+
R("start", e.target.value);
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
}), /* @__PURE__ */ l(n, {
|
|
61
|
+
label: D,
|
|
62
|
+
className: o.part,
|
|
63
|
+
error: B,
|
|
64
|
+
errorHidden: !0,
|
|
65
|
+
disabled: k,
|
|
66
|
+
readOnly: y,
|
|
67
|
+
children: /* @__PURE__ */ l(r, {
|
|
68
|
+
type: "date",
|
|
69
|
+
size: j,
|
|
70
|
+
name: O == null ? void 0 : `${O}.end`,
|
|
71
|
+
value: L.end,
|
|
72
|
+
min: L.start || w,
|
|
73
|
+
max: T,
|
|
74
|
+
required: V,
|
|
75
|
+
"aria-busy": H,
|
|
76
|
+
onChange: (e) => {
|
|
77
|
+
R("end", e.target.value);
|
|
78
|
+
}
|
|
79
|
+
})
|
|
80
|
+
})]
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//#endregion
|
|
85
|
+
export { f as DateRangeField };
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=DateRangeField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateRangeField.js","names":["styles","DateRangeField_module_default","EMPTY","DateRangeField","forwardRef","fieldProps","rest","splitFieldLabelProps","props","fieldsetProps","valueProp","restProps","internal","setInternal","useState","defaultValue","value","update","readOnly","nextValue","part","next","onValueChange","handleBlur","event","onBlur","invalid","hasError","required","busy","Fieldset","label","labelHidden","description","hint","cx","className","Field","startLabel","id","Input","name","max","endLabel","min"],"sources":["../../../../src/components/inputs/DateRangeField/DateRangeField.tsx"],"sourcesContent":["import {\n forwardRef,\n useState,\n type FocusEvent,\n type FocusEventHandler,\n type HTMLAttributes,\n} from 'react'\nimport { cx } from '#utils/cx'\nimport type { Size } from '#utils/tokens'\nimport { Field, type FieldLabelProps } from '#components/inputs/Field'\nimport { Fieldset } from '#components/inputs/Fieldset'\nimport { Input } from '#components/inputs/Input'\nimport { splitFieldLabelProps } from '#components/inputs/internal/fieldProps'\nimport { hasError } from '#components/inputs/internal/errors'\nimport styles from './DateRangeField.module.css'\n\n/** Two ISO dates (`YYYY-MM-DD`); `''` for an unset end. */\nexport interface DateRangeValue {\n start: string\n end: string\n}\n\nexport interface DateRangeFieldProps\n extends\n FieldLabelProps,\n Omit<\n HTMLAttributes<HTMLFieldSetElement>,\n 'onChange' | 'defaultValue' | 'onBlur' | keyof FieldLabelProps\n > {\n value?: DateRangeValue\n defaultValue?: DateRangeValue\n onValueChange?: (value: DateRangeValue) => void\n /** Earliest date either end may take (`YYYY-MM-DD`). */\n min?: string\n /** Latest date either end may take (`YYYY-MM-DD`). */\n max?: string\n /** Label of the first input. Default `'Start date'`. */\n startLabel?: string\n /** Label of the second input. Default `'End date'`. */\n endLabel?: string\n /** Submits `${name}.start` and `${name}.end`. */\n name?: string\n disabled?: boolean\n readOnly?: boolean\n /** Fires when focus leaves both inputs (not when it moves from start to end). */\n onBlur?: FocusEventHandler\n size?: Size\n}\n\nconst EMPTY: DateRangeValue = { start: '', end: '' }\n\n/**\n * A date range as two native date inputs under one legend, side by side and wrapping\n * when narrow. The start can't pass the end and the end can't come before the start\n * (each input's `min`/`max` follows the other). `id` goes to the start input; the ref to\n * the fieldset.\n *\n * <DateRangeField label=\"Trip dates\" value={dates} onValueChange={setDates} />\n */\nexport const DateRangeField = forwardRef<HTMLFieldSetElement, DateRangeFieldProps>(\n function DateRangeField(props, ref) {\n const [fieldProps, rest] = splitFieldLabelProps(props)\n // `layout` goes to the Fieldset (legend column for `horizontal`); the two inputs always\n // sit side by side.\n const { label, labelHidden, hint, description, readOnly = false, ...fieldsetProps } = fieldProps\n const {\n value: valueProp,\n defaultValue,\n onValueChange,\n min,\n max,\n startLabel = 'Start date',\n endLabel = 'End date',\n name,\n disabled = false,\n onBlur,\n size,\n id,\n className,\n ...restProps\n } = rest\n\n const [internal, setInternal] = useState<DateRangeValue>(defaultValue ?? EMPTY)\n const value = valueProp ?? internal\n\n const update = (part: keyof DateRangeValue, next: string) => {\n if (readOnly) return\n const nextValue = { ...value, [part]: next }\n if (valueProp === undefined) setInternal(nextValue)\n onValueChange?.(nextValue)\n }\n\n const handleBlur = (event: FocusEvent<HTMLFieldSetElement>) => {\n if (event.relatedTarget instanceof Node && event.currentTarget.contains(event.relatedTarget))\n return\n onBlur?.(event)\n }\n\n const invalid = hasError(fieldsetProps.error) || undefined\n const required = fieldsetProps.required\n const busy = fieldsetProps.validating ? true : undefined\n\n return (\n <Fieldset\n ref={ref}\n {...restProps}\n {...fieldsetProps}\n legend={label}\n legendHidden={labelHidden}\n description={description ?? hint}\n disabled={disabled}\n readOnly={readOnly}\n className={cx(styles.root, className)}\n onBlur={handleBlur}\n >\n <div className={styles.parts}>\n <Field\n label={startLabel}\n htmlFor={id}\n className={styles.part}\n error={invalid}\n errorHidden\n disabled={disabled}\n readOnly={readOnly}\n >\n <Input\n id={id}\n type=\"date\"\n size={size}\n name={name != null ? `${name}.start` : undefined}\n value={value.start}\n min={min}\n max={value.end || max}\n required={required}\n aria-busy={busy}\n onChange={(event) => {\n update('start', event.target.value)\n }}\n />\n </Field>\n <Field\n label={endLabel}\n className={styles.part}\n error={invalid}\n errorHidden\n disabled={disabled}\n readOnly={readOnly}\n >\n <Input\n type=\"date\"\n size={size}\n name={name != null ? `${name}.end` : undefined}\n value={value.end}\n min={value.start || min}\n max={max}\n required={required}\n aria-busy={busy}\n onChange={(event) => {\n update('end', event.target.value)\n }}\n />\n </Field>\n </div>\n </Fieldset>\n )\n },\n)\n"],"mappings":";;;;;;;;;;AAiDA,IAAME,IAAwB;CAAE,OAAO;CAAI,KAAK;AAAG,GAUtCC,IAAiBC,EAC5B,SAAwB,GAAO,GAAK;CAClC,IAAM,CAACC,GAAYC,KAAQC,EAAqBC,CAAK,GAG/C,EAAE,UAAO,gBAAa,SAAM,gBAAa,cAAW,IAAO,GAAGC,MAAkBJ,GAChF,EACJ,OAAOK,GACP,iBACA,kBACA,QACA,QACA,gBAAa,cACb,cAAW,YACX,SACA,cAAW,IACX,WACA,SACA,OACA,cACA,GAAGC,MACDL,GAEE,CAACM,GAAUC,KAAeC,EAAyBC,KAAgBb,CAAK,GACxEc,IAAQN,KAAaE,GAErBK,KAAU,GAA4B,MAAiB;EAC3D,IAAIC,GAAU;EACd,IAAMC,IAAY;GAAE,GAAGH;IAAQI,IAAOC;EAAK;EAE3C,AADIX,MAAc,KAAA,KAAWG,EAAYM,CAAS,GAClDG,IAAgBH,CAAS;CAC3B,GAEMI,KAAc,MAA2C;EAC7D,AAAIC,EAAM,yBAAyB,QAAQA,EAAM,cAAc,SAASA,EAAM,aAAa,KAE3FC,IAASD,CAAK;CAChB,GAEME,IAAUC,EAASlB,EAAc,KAAK,KAAK,KAAA,GAC3CmB,IAAWnB,EAAc,UACzBoB,IAAOpB,EAAc,aAAa,KAAO,KAAA;CAE/C,OACE,kBAACqB,GAAD;EACO;EACL,GAAInB;EACJ,GAAIF;EACJ,QAAQsB;EACR,cAAcC;EACd,aAAaC,KAAeC;EAClB;EACA;EACV,WAAWC,EAAGnC,EAAO,MAAMoC,CAAS;EACpC,QAAQb;EAER,UAAA,kBAAC,OAAD;GAAK,WAAWvB,EAAO;GAAvB,UAAA,CACE,kBAACqC,GAAD;IACE,OAAOC;IACP,SAASC;IACT,WAAWvC,EAAO;IAClB,OAAO0B;IACP,aAAA;IACU;IACA;IAEV,UAAA,kBAACc,GAAD;KACM;KACJ,MAAK;KACC;KACN,MAAMC,KAAQ,OAAyB,KAAA,IAAlB,GAAGA,EAAK;KAC7B,OAAOzB,EAAM;KACR;KACL,KAAKA,EAAM,OAAO0B;KACR;KACV,aAAWb;KACX,WAAW,MAAU;MACnB,EAAO,SAASL,EAAM,OAAO,KAAK;KACpC;IACD,CAAA;GACI,CAAA,GACP,kBAACa,GAAD;IACE,OAAOM;IACP,WAAW3C,EAAO;IAClB,OAAO0B;IACP,aAAA;IACU;IACA;IAEV,UAAA,kBAACc,GAAD;KACE,MAAK;KACC;KACN,MAAMC,KAAQ,OAAuB,KAAA,IAAhB,GAAGA,EAAK;KAC7B,OAAOzB,EAAM;KACb,KAAKA,EAAM,SAAS4B;KACf;KACK;KACV,aAAWf;KACX,WAAW,MAAU;MACnB,EAAO,OAAOL,EAAM,OAAO,KAAK;KAClC;IACD,CAAA;GACI,CAAA,CACJ;;CACG,CAAA;AAEd,CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/inputs/DateRangeField/DateRangeField.module.css
|
|
2
|
+
var e = "kiln-DateRangeField__root", t = "kiln-DateRangeField__parts", n = "kiln-DateRangeField__part", r = {
|
|
3
|
+
root: e,
|
|
4
|
+
parts: t,
|
|
5
|
+
part: n
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { r as default, n as part, t as parts, e as root };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=DateRangeField.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateRangeField.module.js","names":["root","parts","part","DateRangeField_module_default"],"sources":["../../../../src/components/inputs/DateRangeField/DateRangeField.module.css"],"sourcesContent":["/*\n * Start and end side by side, each at least --space-11 wide, wrapping to a stack when the\n * column is narrower than both.\n */\n.root {\n min-inline-size: 0;\n}\n\n.parts {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-3);\n}\n\n.part {\n flex: 1 1 var(--space-11);\n min-inline-size: 0;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
/** Props handed to a render-function child — spread them onto your control. */
|
|
3
|
+
export interface FieldRenderProps {
|
|
4
|
+
id: string;
|
|
5
|
+
'aria-describedby'?: string;
|
|
6
|
+
'aria-invalid'?: true;
|
|
7
|
+
'aria-required'?: true;
|
|
8
|
+
/** The Field's `required`. Spreading it onto a native input also turns on browser validation. */
|
|
9
|
+
required: boolean;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** `Field`'s (and `Fieldset`'s) `layout` values. */
|
|
13
|
+
export type FieldLayout = 'stack' | 'horizontal' | 'inline';
|
|
14
|
+
/** The label/description/error props every field shares (TextField, SelectField… extend these). */
|
|
15
|
+
export interface FieldLabelProps {
|
|
16
|
+
/** Visible label. Keep it short; put guidance in `description`. */
|
|
17
|
+
label: ReactNode;
|
|
18
|
+
/** Help text under the label, linked to the control with `aria-describedby`. */
|
|
19
|
+
description?: ReactNode;
|
|
20
|
+
/** Alias of `description` (the legacy name). */
|
|
21
|
+
hint?: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Validation message. When present the control gets `aria-invalid` and its border (only)
|
|
24
|
+
* turns critical. Pass `true` to mark invalid without a message.
|
|
25
|
+
*/
|
|
26
|
+
error?: ReactNode;
|
|
27
|
+
/** Shows a mark after the label and sets `aria-required` on the control. */
|
|
28
|
+
required?: boolean;
|
|
29
|
+
/** Shows "Optional" after the label (or your own word). Ignored when `required`. */
|
|
30
|
+
optional?: boolean | string;
|
|
31
|
+
/** Keep the label for assistive tech only — e.g. a search box beside a visible heading. */
|
|
32
|
+
labelHidden?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Non-blocking advice ("Usernames are case-sensitive"). Shown under the control in a
|
|
35
|
+
* caution tone, never `role="alert"`. Hidden while an error message is shown.
|
|
36
|
+
*/
|
|
37
|
+
warning?: ReactNode;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the error message is `role="alert"` (announced as soon as it appears).
|
|
40
|
+
* Default `true`. Pass `false` once a form-level `ErrorSummary` owns the announcement
|
|
41
|
+
* — the message stays in `aria-describedby` either way.
|
|
42
|
+
*/
|
|
43
|
+
errorLive?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Keeps the invalid state (border, `aria-invalid`) but doesn't render the error text —
|
|
46
|
+
* for layouts that show the message elsewhere (a sentence, a table cell).
|
|
47
|
+
*/
|
|
48
|
+
errorHidden?: boolean;
|
|
49
|
+
/** Shows a small spinner after the label and sets `aria-busy` on the control. */
|
|
50
|
+
validating?: boolean;
|
|
51
|
+
/** Focusable but not editable. Controls set native `readOnly`/`aria-readonly`. */
|
|
52
|
+
readOnly?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* `stack` (default) — label above the control.
|
|
55
|
+
* `horizontal` — label/description in one column, the control in another (collapses
|
|
56
|
+
* to a stack below `sm`).
|
|
57
|
+
* `inline` — the label is visually hidden and the control sits in text flow.
|
|
58
|
+
*/
|
|
59
|
+
layout?: FieldLayout;
|
|
60
|
+
}
|
|
61
|
+
export interface FieldProps extends FieldLabelProps, Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
62
|
+
/** Id for the control. Defaults to the child's own `id`, then a generated one. */
|
|
63
|
+
htmlFor?: string;
|
|
64
|
+
/** Disables the control inside and dims the label. */
|
|
65
|
+
disabled?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* The control. Library controls pick the wiring up from context; any other single element
|
|
68
|
+
* gets `id` / `aria-*` cloned in; or pass a function and spread its props yourself.
|
|
69
|
+
*/
|
|
70
|
+
children: ReactNode | ((props: FieldRenderProps) => ReactNode);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Wires a label, description and error to one control.
|
|
74
|
+
*
|
|
75
|
+
* <Field label="Amount" description="Include GST" error={errors.amount}>
|
|
76
|
+
* <Input numeric leading="$" />
|
|
77
|
+
* </Field>
|
|
78
|
+
*/
|
|
79
|
+
export declare const Field: import("react").ForwardRefExoticComponent<FieldProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { joinIds as t } from "../internal/refs.js";
|
|
3
|
+
import { FieldContext as n, isFieldAware as r } from "../internal/FieldContext.js";
|
|
4
|
+
import i from "../internal/messages.module.js";
|
|
5
|
+
import { FieldDescription as a, FieldError as o, FieldWarning as s, LabelContent as c } from "../internal/messages.js";
|
|
6
|
+
import { hasError as l, hasErrorMessage as u } from "../internal/errors.js";
|
|
7
|
+
import d from "./Field.module.js";
|
|
8
|
+
import { cloneElement as f, forwardRef as p, isValidElement as m, useId as h, useMemo as g } from "react";
|
|
9
|
+
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/inputs/Field/Field.tsx
|
|
11
|
+
var y = p(function({ label: p, description: y, hint: b, error: x, required: S = !1, optional: C, labelHidden: w = !1, warning: T, errorLive: E = !0, errorHidden: D = !1, validating: O = !1, readOnly: k = !1, layout: A = "stack", htmlFor: j, disabled: M = !1, className: N, children: P, ...F }, I) {
|
|
12
|
+
let L = h(), R = m(P) ? P.props : void 0, z = j ?? R?.id ?? `${L}control`, B = `${z}-label`, V = `${z}-description`, H = `${z}-warning`, U = `${z}-error`, W = y ?? b, G = l(x), K = u(x) && !D, q = T != null && !K, J = w || A === "inline", Y = t(W != null && V, q && H, K && U), X = g(() => ({
|
|
13
|
+
id: z,
|
|
14
|
+
labelId: B,
|
|
15
|
+
describedBy: Y,
|
|
16
|
+
invalid: G,
|
|
17
|
+
required: S,
|
|
18
|
+
disabled: M,
|
|
19
|
+
readOnly: k,
|
|
20
|
+
busy: O,
|
|
21
|
+
warningId: H
|
|
22
|
+
}), [
|
|
23
|
+
z,
|
|
24
|
+
B,
|
|
25
|
+
Y,
|
|
26
|
+
G,
|
|
27
|
+
S,
|
|
28
|
+
M,
|
|
29
|
+
k,
|
|
30
|
+
O,
|
|
31
|
+
H
|
|
32
|
+
]), Z;
|
|
33
|
+
return Z = typeof P == "function" ? P({
|
|
34
|
+
id: z,
|
|
35
|
+
"aria-describedby": Y,
|
|
36
|
+
"aria-invalid": G || void 0,
|
|
37
|
+
"aria-required": S || void 0,
|
|
38
|
+
required: S,
|
|
39
|
+
disabled: M || void 0
|
|
40
|
+
}) : m(P) && !r(P.type) ? f(P, {
|
|
41
|
+
id: z,
|
|
42
|
+
"aria-describedby": t(R?.["aria-describedby"], Y),
|
|
43
|
+
"aria-invalid": G ? !0 : R?.["aria-invalid"] === !1 ? void 0 : R?.["aria-invalid"],
|
|
44
|
+
"aria-required": S || void 0
|
|
45
|
+
}) : P, /* @__PURE__ */ v("div", {
|
|
46
|
+
ref: I,
|
|
47
|
+
className: e(d.field, N),
|
|
48
|
+
"data-invalid": G || void 0,
|
|
49
|
+
"data-disabled": M || void 0,
|
|
50
|
+
"data-readonly": k || void 0,
|
|
51
|
+
"data-label-hidden": J || void 0,
|
|
52
|
+
"data-layout": A,
|
|
53
|
+
...F,
|
|
54
|
+
children: [
|
|
55
|
+
/* @__PURE__ */ v("div", {
|
|
56
|
+
className: d.header,
|
|
57
|
+
children: [/* @__PURE__ */ _("label", {
|
|
58
|
+
id: B,
|
|
59
|
+
htmlFor: z,
|
|
60
|
+
className: e(i.label, J && i.visuallyHidden),
|
|
61
|
+
children: /* @__PURE__ */ _(c, {
|
|
62
|
+
required: S,
|
|
63
|
+
optional: C,
|
|
64
|
+
busy: O,
|
|
65
|
+
children: p
|
|
66
|
+
})
|
|
67
|
+
}), W == null ? null : /* @__PURE__ */ _(a, {
|
|
68
|
+
id: V,
|
|
69
|
+
children: W
|
|
70
|
+
})]
|
|
71
|
+
}),
|
|
72
|
+
/* @__PURE__ */ _("div", {
|
|
73
|
+
className: d.controlSlot,
|
|
74
|
+
children: /* @__PURE__ */ _(n.Provider, {
|
|
75
|
+
value: X,
|
|
76
|
+
children: Z
|
|
77
|
+
})
|
|
78
|
+
}),
|
|
79
|
+
q ? /* @__PURE__ */ _("div", {
|
|
80
|
+
className: d.warningSlot,
|
|
81
|
+
children: /* @__PURE__ */ _(s, {
|
|
82
|
+
id: H,
|
|
83
|
+
children: T
|
|
84
|
+
})
|
|
85
|
+
}) : null,
|
|
86
|
+
K ? /* @__PURE__ */ _("div", {
|
|
87
|
+
className: d.errorSlot,
|
|
88
|
+
children: /* @__PURE__ */ _(o, {
|
|
89
|
+
id: U,
|
|
90
|
+
live: E,
|
|
91
|
+
children: x
|
|
92
|
+
})
|
|
93
|
+
}) : null
|
|
94
|
+
]
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//#endregion
|
|
98
|
+
export { y as Field };
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=Field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.js","names":["styles","messageStyles","messages_module_default","Field_module_default","Field","forwardRef","rest","autoId","useId","childProps","isValidElement","children","id","htmlFor","labelId","descriptionId","warningId","errorId","help","description","hint","invalid","hasError","error","showErrorMessage","hasErrorMessage","errorHidden","showWarning","warning","effectiveLabelHidden","labelHidden","layout","describedBy","joinIds","context","useMemo","validating","required","disabled","readOnly","control","isFieldAware","cloneElement","cx","className","LabelContent","label","FieldDescription","FieldContext","FieldWarning","FieldError","errorLive"],"sources":["../../../../src/components/inputs/Field/Field.tsx"],"sourcesContent":["import {\n cloneElement,\n forwardRef,\n isValidElement,\n useId,\n useMemo,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { cx } from '#utils/cx'\nimport {\n FieldContext,\n isFieldAware,\n type FieldControlContext,\n} from '#components/inputs/internal/FieldContext'\nimport {\n FieldDescription,\n FieldError,\n FieldWarning,\n LabelContent,\n} from '#components/inputs/internal/messages'\nimport { hasError, hasErrorMessage } from '#components/inputs/internal/errors'\nimport messageStyles from '#components/inputs/internal/messages.module.css'\nimport { joinIds } from '#components/inputs/internal/refs'\nimport styles from './Field.module.css'\n\n/** Props handed to a render-function child — spread them onto your control. */\nexport interface FieldRenderProps {\n id: string\n 'aria-describedby'?: string\n 'aria-invalid'?: true\n 'aria-required'?: true\n /** The Field's `required`. Spreading it onto a native input also turns on browser validation. */\n required: boolean\n disabled?: boolean\n}\n\n/** `Field`'s (and `Fieldset`'s) `layout` values. */\nexport type FieldLayout = 'stack' | 'horizontal' | 'inline'\n\n/** The label/description/error props every field shares (TextField, SelectField… extend these). */\nexport interface FieldLabelProps {\n /** Visible label. Keep it short; put guidance in `description`. */\n label: ReactNode\n /** Help text under the label, linked to the control with `aria-describedby`. */\n description?: ReactNode\n /** Alias of `description` (the legacy name). */\n hint?: ReactNode\n /**\n * Validation message. When present the control gets `aria-invalid` and its border (only)\n * turns critical. Pass `true` to mark invalid without a message.\n */\n error?: ReactNode\n /** Shows a mark after the label and sets `aria-required` on the control. */\n required?: boolean\n /** Shows \"Optional\" after the label (or your own word). Ignored when `required`. */\n optional?: boolean | string\n /** Keep the label for assistive tech only — e.g. a search box beside a visible heading. */\n labelHidden?: boolean\n /**\n * Non-blocking advice (\"Usernames are case-sensitive\"). Shown under the control in a\n * caution tone, never `role=\"alert\"`. Hidden while an error message is shown.\n */\n warning?: ReactNode\n /**\n * Whether the error message is `role=\"alert\"` (announced as soon as it appears).\n * Default `true`. Pass `false` once a form-level `ErrorSummary` owns the announcement\n * — the message stays in `aria-describedby` either way.\n */\n errorLive?: boolean\n /**\n * Keeps the invalid state (border, `aria-invalid`) but doesn't render the error text —\n * for layouts that show the message elsewhere (a sentence, a table cell).\n */\n errorHidden?: boolean\n /** Shows a small spinner after the label and sets `aria-busy` on the control. */\n validating?: boolean\n /** Focusable but not editable. Controls set native `readOnly`/`aria-readonly`. */\n readOnly?: boolean\n /**\n * `stack` (default) — label above the control.\n * `horizontal` — label/description in one column, the control in another (collapses\n * to a stack below `sm`).\n * `inline` — the label is visually hidden and the control sits in text flow.\n */\n layout?: FieldLayout\n}\n\nexport interface FieldProps\n extends FieldLabelProps, Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Id for the control. Defaults to the child's own `id`, then a generated one. */\n htmlFor?: string\n /** Disables the control inside and dims the label. */\n disabled?: boolean\n /**\n * The control. Library controls pick the wiring up from context; any other single element\n * gets `id` / `aria-*` cloned in; or pass a function and spread its props yourself.\n */\n children: ReactNode | ((props: FieldRenderProps) => ReactNode)\n}\n\ninterface ControlElementProps {\n id?: string\n 'aria-describedby'?: string\n 'aria-invalid'?: unknown\n}\n\n/**\n * Wires a label, description and error to one control.\n *\n * <Field label=\"Amount\" description=\"Include GST\" error={errors.amount}>\n * <Input numeric leading=\"$\" />\n * </Field>\n */\nexport const Field = forwardRef<HTMLDivElement, FieldProps>(function Field(\n {\n label,\n description,\n hint,\n error,\n required = false,\n optional,\n labelHidden = false,\n warning,\n errorLive = true,\n errorHidden = false,\n validating = false,\n readOnly = false,\n layout = 'stack',\n htmlFor,\n disabled = false,\n className,\n children,\n ...rest\n },\n ref,\n) {\n const autoId = useId()\n const childProps = isValidElement(children) ? (children.props as ControlElementProps) : undefined\n const id = htmlFor ?? childProps?.id ?? `${autoId}control`\n const labelId = `${id}-label`\n const descriptionId = `${id}-description`\n const warningId = `${id}-warning`\n const errorId = `${id}-error`\n\n const help = description ?? hint\n const invalid = hasError(error)\n const showErrorMessage = hasErrorMessage(error) && !errorHidden\n const showWarning = warning != null && !showErrorMessage\n const effectiveLabelHidden = labelHidden || layout === 'inline'\n const describedBy = joinIds(\n help != null && descriptionId,\n showWarning && warningId,\n showErrorMessage && errorId,\n )\n\n const context = useMemo<FieldControlContext>(\n () => ({\n id,\n labelId,\n describedBy,\n invalid,\n required,\n disabled,\n readOnly,\n busy: validating,\n warningId,\n }),\n [id, labelId, describedBy, invalid, required, disabled, readOnly, validating, warningId],\n )\n\n let control: ReactNode\n if (typeof children === 'function') {\n control = children({\n id,\n 'aria-describedby': describedBy,\n 'aria-invalid': invalid || undefined,\n 'aria-required': required || undefined,\n required,\n disabled: disabled || undefined,\n })\n } else if (isValidElement(children) && !isFieldAware(children.type)) {\n control = cloneElement(\n children as ReactElement<ControlElementProps & Record<string, unknown>>,\n {\n id,\n 'aria-describedby': joinIds(childProps?.['aria-describedby'], describedBy),\n 'aria-invalid': invalid\n ? true\n : childProps?.['aria-invalid'] === false\n ? undefined\n : childProps?.['aria-invalid'],\n 'aria-required': required || undefined,\n },\n )\n } else {\n control = children\n }\n\n return (\n <div\n ref={ref}\n className={cx(styles.field, className)}\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n data-label-hidden={effectiveLabelHidden || undefined}\n data-layout={layout}\n {...rest}\n >\n <div className={styles.header}>\n <label\n id={labelId}\n htmlFor={id}\n className={cx(messageStyles.label, effectiveLabelHidden && messageStyles.visuallyHidden)}\n >\n <LabelContent required={required} optional={optional} busy={validating}>\n {label}\n </LabelContent>\n </label>\n {help != null ? <FieldDescription id={descriptionId}>{help}</FieldDescription> : null}\n </div>\n <div className={styles.controlSlot}>\n <FieldContext.Provider value={context}>{control}</FieldContext.Provider>\n </div>\n {showWarning ? (\n <div className={styles.warningSlot}>\n <FieldWarning id={warningId}>{warning}</FieldWarning>\n </div>\n ) : null}\n {showErrorMessage ? (\n <div className={styles.errorSlot}>\n <FieldError id={errorId} live={errorLive}>\n {error}\n </FieldError>\n </div>\n ) : null}\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;AAmHA,IAAaI,IAAQC,EAAuC,SAC1D,EACE,UACA,gBACA,SACA,UACA,cAAW,IACX,aACA,iBAAc,IACd,YACA,eAAY,IACZ,iBAAc,IACd,gBAAa,IACb,cAAW,IACX,YAAS,SACT,YACA,cAAW,IACX,cACA,aACA,GAAGC,KAEL,GACA;CACA,IAAMC,IAASC,EAAM,GACfC,IAAaC,EAAeC,CAAQ,IAAKA,EAAS,QAAgC,KAAA,GAClFC,IAAKC,KAAWJ,GAAY,MAAM,GAAGF,EAAO,UAC5CO,IAAU,GAAGF,EAAG,SAChBG,IAAgB,GAAGH,EAAG,eACtBI,IAAY,GAAGJ,EAAG,WAClBK,IAAU,GAAGL,EAAG,SAEhBM,IAAOC,KAAeC,GACtBC,IAAUC,EAASC,CAAK,GACxBC,IAAmBC,EAAgBF,CAAK,KAAK,CAACG,GAC9CC,IAAcC,KAAW,QAAQ,CAACJ,GAClCK,IAAuBC,KAAeC,MAAW,UACjDC,IAAcC,EAClBf,KAAQ,QAAQH,GAChBY,KAAeX,GACfQ,KAAoBP,CACtB,GAEMiB,IAAUC,SACP;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC;EACN;CACF,IACA;EAACxB;EAAIE;EAASkB;EAAaX;EAASgB;EAAUC;EAAUC;EAAUH;EAAYpB;CAAS,CACzF,GAEIwB;CA4BJ,OA3BA,AAwBEA,IAxBE,OAAO7B,KAAa,aACZA,EAAS;EACjB;EACA,oBAAoBqB;EACpB,gBAAgBX,KAAW,KAAA;EAC3B,iBAAiBgB,KAAY,KAAA;EAC7B;EACA,UAAUC,KAAY,KAAA;CACxB,CAAC,IACQ5B,EAAeC,CAAQ,KAAK,CAAC8B,EAAa9B,EAAS,IAAI,IACtD+B,EACR/B,GACA;EACE;EACA,oBAAoBsB,EAAQxB,IAAa,qBAAqBuB,CAAW;EACzE,gBAAgBX,IACZ,KACAZ,IAAa,oBAAoB,KAC/B,KAAA,IACAA,IAAa;EACnB,iBAAiB4B,KAAY,KAAA;CAC/B,CACF,IAEU1B,GAIV,kBAAC,OAAD;EACO;EACL,WAAWgC,EAAG3C,EAAO,OAAO4C,CAAS;EACrC,gBAAcvB,KAAW,KAAA;EACzB,iBAAeiB,KAAY,KAAA;EAC3B,iBAAeC,KAAY,KAAA;EAC3B,qBAAmBV,KAAwB,KAAA;EAC3C,eAAaE;EACb,GAAIzB;EARN,UAAA;GAUE,kBAAC,OAAD;IAAK,WAAWN,EAAO;IAAvB,UAAA,CACE,kBAAC,SAAD;KACE,IAAIc;KACJ,SAASF;KACT,WAAW+B,EAAG1C,EAAc,OAAO4B,KAAwB5B,EAAc,cAAc;KAEvF,UAAA,kBAAC4C,GAAD;MAAwB;MAAoB;MAAU,MAAMT;MACzD,UAAAU;KACW,CAAA;IACT,CAAA,GACN5B,KAAQ,OAAwE,OAAjE,kBAAC6B,GAAD;KAAkB,IAAIhC;KAAgB,UAAAG;IAAuB,CAAA,CAC1E;;GACL,kBAAC,OAAD;IAAK,WAAWlB,EAAO;IACrB,UAAA,kBAACgD,EAAa,UAAd;KAAuB,OAAOd;KAAU,UAAAM;IAA+B,CAAA;GACpE,CAAA;GACJb,IACC,kBAAC,OAAD;IAAK,WAAW3B,EAAO;IACrB,UAAA,kBAACiD,GAAD;KAAc,IAAIjC;KAAY,UAAAY;IAAsB,CAAA;GACjD,CAAA,IACH;GACHJ,IACC,kBAAC,OAAD;IAAK,WAAWxB,EAAO;IACrB,UAAA,kBAACkD,GAAD;KAAY,IAAIjC;KAAS,MAAMkC;KAC5B,UAAA5B;IACS,CAAA;GACT,CAAA,IACH;EACD;;AAET,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/components/inputs/Field/Field.module.css
|
|
2
|
+
var e = "kiln-Field__field", t = "kiln-Field__header", n = "kiln-Field__controlSlot", r = "kiln-Field__warningSlot", i = "kiln-Field__errorSlot", a = {
|
|
3
|
+
field: e,
|
|
4
|
+
header: t,
|
|
5
|
+
controlSlot: n,
|
|
6
|
+
warningSlot: r,
|
|
7
|
+
errorSlot: i
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { n as controlSlot, a as default, i as errorSlot, e as field, t as header, r as warningSlot };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=Field.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.module.js","names":["field","header","controlSlot","warningSlot","errorSlot","Field_module_default"],"sources":["../../../../src/components/inputs/Field/Field.module.css"],"sourcesContent":["/*\n * Label and help sit tight together; the control keeps a little more air above it so\n * the header reads as one unit. Error text sits directly under the control.\n *\n * Component tokens:\n * --field-gap default var(--space-2) — space around the control\n *\n * `data-layout='stack'` (default) keeps the plain flex column below: the slot wrappers\n * (.controlSlot/.warningSlot/.errorSlot) are `display: contents` so they don't add a box.\n * `data-layout='horizontal'` turns them into real grid cells (label column | control\n * column) at and above `sm`; below it, everything stacks in DOM order.\n * `data-layout='inline'` forces the label hidden (see Field.tsx) and lays the root out\n * as an inline-flex run, for a control sitting in a sentence or a table cell.\n */\n.field {\n display: flex;\n flex-direction: column;\n gap: var(--field-gap, var(--space-2));\n min-inline-size: 0;\n}\n\n.header {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n/* A hidden label leaves no visible header row — drop the wrapper from the flow. */\n.field[data-label-hidden] > .header {\n display: contents;\n}\n\n.controlSlot,\n.warningSlot,\n.errorSlot {\n display: contents;\n}\n\n.field[data-layout='inline'] {\n display: inline-flex;\n align-items: baseline;\n gap: var(--space-2);\n}\n\n.field[data-layout='horizontal'] {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n gap: var(--space-2);\n}\n\n@media (min-width: 40em) {\n .field[data-layout='horizontal'] {\n grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);\n column-gap: var(--space-4);\n row-gap: var(--space-1);\n align-items: start;\n }\n .field[data-layout='horizontal'] > .header {\n grid-column: 1;\n }\n .field[data-layout='horizontal'] > .controlSlot,\n .field[data-layout='horizontal'] > .warningSlot,\n .field[data-layout='horizontal'] > .errorSlot {\n display: block;\n grid-column: 2;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type FieldsetHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { FieldLayout } from '../Field/index.js';
|
|
3
|
+
export type FieldsetVariant = 'default' | 'section';
|
|
4
|
+
export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
|
|
5
|
+
/** The group's name — "Plan", "Notify me about". */
|
|
6
|
+
legend: ReactNode;
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
/** A message about the group as a whole ("Choose at least one"). */
|
|
9
|
+
error?: ReactNode;
|
|
10
|
+
/** Visual mark after the legend. Put `required` on the controls (or RadioGroup) too. */
|
|
11
|
+
required?: boolean;
|
|
12
|
+
optional?: boolean | string;
|
|
13
|
+
legendHidden?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* `default` — the legend reads like a field label (a radio group, a checkbox set).
|
|
16
|
+
* `section` — the legend is set as a small heading with a hairline under it, for a
|
|
17
|
+
* form broken into groups of fields ("Your details", "Payment"), so groups read as
|
|
18
|
+
* groups rather than as one more label.
|
|
19
|
+
*/
|
|
20
|
+
variant?: FieldsetVariant;
|
|
21
|
+
/** Non-blocking advice about the group as a whole. Hidden while an error message is shown. */
|
|
22
|
+
warning?: ReactNode;
|
|
23
|
+
/** Whether the error message is `role="alert"`. Default `true`. */
|
|
24
|
+
errorLive?: boolean;
|
|
25
|
+
/** Keeps the invalid state but doesn't render the error text. */
|
|
26
|
+
errorHidden?: boolean;
|
|
27
|
+
/** Shows a small spinner after the legend and sets `aria-busy` on every control inside. */
|
|
28
|
+
validating?: boolean;
|
|
29
|
+
/** Every control inside sets native `readOnly`/`aria-readonly` and ignores changes. */
|
|
30
|
+
readOnly?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Same values as `Field`'s `layout`. `stack` (default) puts the legend above the group;
|
|
33
|
+
* `horizontal` puts it in a label column beside the group from `sm` up (matching a
|
|
34
|
+
* horizontal `Field`), stacking below; `inline` hides the legend (like `legendHidden`).
|
|
35
|
+
*/
|
|
36
|
+
layout?: FieldLayout;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Groups related controls under a legend: a RadioGroup, a set of CheckboxFields, or an
|
|
40
|
+
* address block. `disabled` disables every control inside (native fieldset behaviour).
|
|
41
|
+
*
|
|
42
|
+
* <Fieldset legend="Plan" description="Pay by card or bank transfer">
|
|
43
|
+
* <RadioGroup …/>
|
|
44
|
+
* </Fieldset>
|
|
45
|
+
*
|
|
46
|
+
* <Fieldset variant="section" legend="Your details">…TextFields…</Fieldset>
|
|
47
|
+
*/
|
|
48
|
+
export declare const Fieldset: import("react").ForwardRefExoticComponent<FieldsetProps & import("react").RefAttributes<HTMLFieldSetElement>>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { joinIds as t } from "../internal/refs.js";
|
|
3
|
+
import { FieldContext as n } from "../internal/FieldContext.js";
|
|
4
|
+
import r from "../internal/messages.module.js";
|
|
5
|
+
import { FieldDescription as i, FieldError as a, FieldWarning as o, LabelContent as s } from "../internal/messages.js";
|
|
6
|
+
import { hasError as c, hasErrorMessage as l } from "../internal/errors.js";
|
|
7
|
+
import u from "./Fieldset.module.js";
|
|
8
|
+
import { forwardRef as d, useId as f, useMemo as p } from "react";
|
|
9
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/inputs/Fieldset/Fieldset.tsx
|
|
11
|
+
var g = d(function({ legend: d, description: g, error: _, required: v = !1, optional: y, legendHidden: b = !1, variant: x = "default", warning: S, errorLive: C = !0, errorHidden: w = !1, validating: T = !1, readOnly: E = !1, layout: D = "stack", className: O, children: k, "aria-describedby": A, ...j }, M) {
|
|
12
|
+
let N = f(), P = `${N}legend`, F = `${N}description`, I = `${N}warning`, L = `${N}error`, R = l(_) && !w, z = S != null && !R, B = c(_), V = j.disabled ?? !1, H = b || D === "inline", U = p(() => ({
|
|
13
|
+
id: N,
|
|
14
|
+
labelId: P,
|
|
15
|
+
invalid: B,
|
|
16
|
+
required: v,
|
|
17
|
+
disabled: V,
|
|
18
|
+
readOnly: E,
|
|
19
|
+
busy: T,
|
|
20
|
+
warningId: I,
|
|
21
|
+
fieldset: !0
|
|
22
|
+
}), [
|
|
23
|
+
N,
|
|
24
|
+
P,
|
|
25
|
+
B,
|
|
26
|
+
v,
|
|
27
|
+
V,
|
|
28
|
+
E,
|
|
29
|
+
T,
|
|
30
|
+
I
|
|
31
|
+
]);
|
|
32
|
+
return /* @__PURE__ */ h("fieldset", {
|
|
33
|
+
ref: M,
|
|
34
|
+
className: e(u.fieldset, O),
|
|
35
|
+
"data-variant": x,
|
|
36
|
+
"data-layout": D,
|
|
37
|
+
"data-invalid": B || void 0,
|
|
38
|
+
"data-disabled": V || void 0,
|
|
39
|
+
"data-readonly": E || void 0,
|
|
40
|
+
"aria-describedby": t(A, g != null && F, z && I, R && L),
|
|
41
|
+
...j,
|
|
42
|
+
children: [/* @__PURE__ */ m("legend", {
|
|
43
|
+
id: P,
|
|
44
|
+
className: e(r.label, u.legend, H && r.visuallyHidden),
|
|
45
|
+
"data-disabled": V || void 0,
|
|
46
|
+
children: /* @__PURE__ */ m(s, {
|
|
47
|
+
required: v,
|
|
48
|
+
optional: y,
|
|
49
|
+
busy: T,
|
|
50
|
+
children: d
|
|
51
|
+
})
|
|
52
|
+
}), /* @__PURE__ */ h("div", {
|
|
53
|
+
className: u.body,
|
|
54
|
+
children: [
|
|
55
|
+
g == null ? null : /* @__PURE__ */ m(i, {
|
|
56
|
+
id: F,
|
|
57
|
+
className: u.description,
|
|
58
|
+
children: g
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ m("div", {
|
|
61
|
+
className: u.controls,
|
|
62
|
+
children: /* @__PURE__ */ m(n.Provider, {
|
|
63
|
+
value: U,
|
|
64
|
+
children: k
|
|
65
|
+
})
|
|
66
|
+
}),
|
|
67
|
+
z ? /* @__PURE__ */ m(o, {
|
|
68
|
+
id: I,
|
|
69
|
+
children: S
|
|
70
|
+
}) : null,
|
|
71
|
+
R ? /* @__PURE__ */ m(a, {
|
|
72
|
+
id: L,
|
|
73
|
+
live: C,
|
|
74
|
+
children: _
|
|
75
|
+
}) : null
|
|
76
|
+
]
|
|
77
|
+
})]
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//#endregion
|
|
81
|
+
export { g as Fieldset };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=Fieldset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fieldset.js","names":["styles","messageStyles","messages_module_default","Fieldset_module_default","Fieldset","forwardRef","describedByProp","rest","id","useId","legendId","descriptionId","warningId","errorId","showErrorMessage","hasErrorMessage","error","errorHidden","showWarning","warning","invalid","hasError","disabled","effectiveLegendHidden","legendHidden","layout","context","useMemo","validating","required","readOnly","cx","className","variant","joinIds","description","LabelContent","legend","FieldDescription","FieldContext","FieldWarning","FieldError","errorLive"],"sources":["../../../../src/components/inputs/Fieldset/Fieldset.tsx"],"sourcesContent":["import { forwardRef, useId, useMemo, type FieldsetHTMLAttributes, type ReactNode } from 'react'\nimport { cx } from '#utils/cx'\nimport { FieldContext, type FieldControlContext } from '#components/inputs/internal/FieldContext'\nimport {\n FieldDescription,\n FieldError,\n FieldWarning,\n LabelContent,\n} from '#components/inputs/internal/messages'\nimport { hasError, hasErrorMessage } from '#components/inputs/internal/errors'\nimport messageStyles from '#components/inputs/internal/messages.module.css'\nimport { joinIds } from '#components/inputs/internal/refs'\nimport type { FieldLayout } from '#components/inputs/Field'\nimport styles from './Fieldset.module.css'\n\nexport type FieldsetVariant = 'default' | 'section'\n\nexport interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {\n /** The group's name — \"Plan\", \"Notify me about\". */\n legend: ReactNode\n description?: ReactNode\n /** A message about the group as a whole (\"Choose at least one\"). */\n error?: ReactNode\n /** Visual mark after the legend. Put `required` on the controls (or RadioGroup) too. */\n required?: boolean\n optional?: boolean | string\n legendHidden?: boolean\n /**\n * `default` — the legend reads like a field label (a radio group, a checkbox set).\n * `section` — the legend is set as a small heading with a hairline under it, for a\n * form broken into groups of fields (\"Your details\", \"Payment\"), so groups read as\n * groups rather than as one more label.\n */\n variant?: FieldsetVariant\n /** Non-blocking advice about the group as a whole. Hidden while an error message is shown. */\n warning?: ReactNode\n /** Whether the error message is `role=\"alert\"`. Default `true`. */\n errorLive?: boolean\n /** Keeps the invalid state but doesn't render the error text. */\n errorHidden?: boolean\n /** Shows a small spinner after the legend and sets `aria-busy` on every control inside. */\n validating?: boolean\n /** Every control inside sets native `readOnly`/`aria-readonly` and ignores changes. */\n readOnly?: boolean\n /**\n * Same values as `Field`'s `layout`. `stack` (default) puts the legend above the group;\n * `horizontal` puts it in a label column beside the group from `sm` up (matching a\n * horizontal `Field`), stacking below; `inline` hides the legend (like `legendHidden`).\n */\n layout?: FieldLayout\n}\n\n/**\n * Groups related controls under a legend: a RadioGroup, a set of CheckboxFields, or an\n * address block. `disabled` disables every control inside (native fieldset behaviour).\n *\n * <Fieldset legend=\"Plan\" description=\"Pay by card or bank transfer\">\n * <RadioGroup …/>\n * </Fieldset>\n *\n * <Fieldset variant=\"section\" legend=\"Your details\">…TextFields…</Fieldset>\n */\nexport const Fieldset = forwardRef<HTMLFieldSetElement, FieldsetProps>(function Fieldset(\n {\n legend,\n description,\n error,\n required = false,\n optional,\n legendHidden = false,\n variant = 'default',\n warning,\n errorLive = true,\n errorHidden = false,\n validating = false,\n readOnly = false,\n layout = 'stack',\n className,\n children,\n 'aria-describedby': describedByProp,\n ...rest\n },\n ref,\n) {\n const id = useId()\n const legendId = `${id}legend`\n const descriptionId = `${id}description`\n const warningId = `${id}warning`\n const errorId = `${id}error`\n const showErrorMessage = hasErrorMessage(error) && !errorHidden\n const showWarning = warning != null && !showErrorMessage\n const invalid = hasError(error)\n const disabled = rest.disabled ?? false\n const effectiveLegendHidden = legendHidden || layout === 'inline'\n\n const context = useMemo<FieldControlContext>(\n () => ({\n id,\n labelId: legendId,\n invalid,\n required,\n disabled,\n readOnly,\n busy: validating,\n warningId,\n fieldset: true,\n }),\n [id, legendId, invalid, required, disabled, readOnly, validating, warningId],\n )\n\n return (\n <fieldset\n ref={ref}\n className={cx(styles.fieldset, className)}\n data-variant={variant}\n data-layout={layout}\n data-invalid={invalid || undefined}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n aria-describedby={joinIds(\n describedByProp,\n description != null && descriptionId,\n showWarning && warningId,\n showErrorMessage && errorId,\n )}\n {...rest}\n >\n <legend\n id={legendId}\n className={cx(\n messageStyles.label,\n styles.legend,\n effectiveLegendHidden && messageStyles.visuallyHidden,\n )}\n data-disabled={disabled || undefined}\n >\n <LabelContent required={required} optional={optional} busy={validating}>\n {legend}\n </LabelContent>\n </legend>\n <div className={styles.body}>\n {description != null ? (\n <FieldDescription id={descriptionId} className={styles.description}>\n {description}\n </FieldDescription>\n ) : null}\n <div className={styles.controls}>\n <FieldContext.Provider value={context}>{children}</FieldContext.Provider>\n </div>\n {showWarning ? <FieldWarning id={warningId}>{warning}</FieldWarning> : null}\n {showErrorMessage ? (\n <FieldError id={errorId} live={errorLive}>\n {error}\n </FieldError>\n ) : null}\n </div>\n </fieldset>\n )\n})\n"],"mappings":";;;;;;;;;;AA8DA,IAAaI,IAAWC,EAA+C,SACrE,EACE,WACA,gBACA,UACA,cAAW,IACX,aACA,kBAAe,IACf,aAAU,WACV,YACA,eAAY,IACZ,iBAAc,IACd,gBAAa,IACb,cAAW,IACX,YAAS,SACT,cACA,aACA,oBAAoBC,GACpB,GAAGC,KAEL,GACA;CACA,IAAMC,IAAKC,EAAM,GACXC,IAAW,GAAGF,EAAG,SACjBG,IAAgB,GAAGH,EAAG,cACtBI,IAAY,GAAGJ,EAAG,UAClBK,IAAU,GAAGL,EAAG,QAChBM,IAAmBC,EAAgBC,CAAK,KAAK,CAACC,GAC9CC,IAAcC,KAAW,QAAQ,CAACL,GAClCM,IAAUC,EAASL,CAAK,GACxBM,IAAWf,EAAK,YAAY,IAC5BgB,IAAwBC,KAAgBC,MAAW,UAEnDC,IAAUC,SACP;EACL;EACA,SAASjB;EACT;EACA;EACA;EACA;EACA,MAAMkB;EACN;EACA,UAAU;CACZ,IACA;EAACpB;EAAIE;EAAUU;EAASS;EAAUP;EAAUQ;EAAUF;EAAYhB;CAAS,CAC7E;CAEA,OACE,kBAAC,YAAD;EACO;EACL,WAAWmB,EAAG/B,EAAO,UAAUgC,CAAS;EACxC,gBAAcC;EACd,eAAaR;EACb,gBAAcL,KAAW,KAAA;EACzB,iBAAeE,KAAY,KAAA;EAC3B,iBAAeQ,KAAY,KAAA;EAC3B,oBAAkBI,EAChB5B,GACA6B,KAAe,QAAQxB,GACvBO,KAAeN,GACfE,KAAoBD,CACtB;EACA,GAAIN;EAdN,UAAA,CAgBE,kBAAC,UAAD;GACE,IAAIG;GACJ,WAAWqB,EACT9B,EAAc,OACdD,EAAO,QACPuB,KAAyBtB,EAAc,cACzC;GACA,iBAAeqB,KAAY,KAAA;GAE3B,UAAA,kBAACc,GAAD;IAAwB;IAAoB;IAAU,MAAMR;IACzD,UAAAS;GACW,CAAA;EACR,CAAA,GACR,kBAAC,OAAD;GAAK,WAAWrC,EAAO;GAAvB,UAAA;IACGmC,KAAe,OAIZ,OAHF,kBAACG,GAAD;KAAkB,IAAI3B;KAAe,WAAWX,EAAO;KACpD,UAAAmC;IACe,CAAA;IAEpB,kBAAC,OAAD;KAAK,WAAWnC,EAAO;KACrB,UAAA,kBAACuC,EAAa,UAAd;MAAuB,OAAOb;MAAU;KAAgC,CAAA;IACrE,CAAA;IACJR,IAAc,kBAACsB,GAAD;KAAc,IAAI5B;KAAY,UAAAO;IAAsB,CAAA,IAAI;IACtEL,IACC,kBAAC2B,GAAD;KAAY,IAAI5B;KAAS,MAAM6B;KAC5B,UAAA1B;IACS,CAAA,IACV;GACD;EACG,CAAA,CAAA;;AAEd,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/components/inputs/Fieldset/Fieldset.module.css
|
|
2
|
+
var e = "kiln-Fieldset__fieldset", t = "kiln-Fieldset__legend", n = "kiln-Fieldset__body", r = "kiln-Fieldset__description", i = "kiln-Fieldset__controls", a = {
|
|
3
|
+
fieldset: e,
|
|
4
|
+
legend: t,
|
|
5
|
+
body: n,
|
|
6
|
+
description: r,
|
|
7
|
+
controls: i
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { n as body, i as controls, a as default, r as description, e as fieldset, t as legend };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=Fieldset.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fieldset.module.js","names":["fieldset","legend","body","description","controls","Fieldset_module_default"],"sources":["../../../../src/components/inputs/Fieldset/Fieldset.module.css"],"sourcesContent":["/*\n * No box: a fieldset is grouping, not a surface. The legend reads like a field label.\n *\n * `data-variant='section'` promotes the legend to a small heading (heading tokens,\n * text-lg) over a hairline, for forms split into groups of fields.\n *\n * `data-layout='horizontal'` matches a horizontal Field: at and above `sm` the legend takes\n * the label column and the body the control column; below it, everything stacks. (The\n * legend is floated, so it is an ordinary grid item, not the fieldset's rendered legend.)\n * `data-layout='inline'` only hides the legend (Fieldset.tsx).\n *\n * Component tokens:\n * --fieldset-gap default var(--space-3) — space between the grouped controls\n * (var(--space-5) for `section`: it groups whole fields)\n * --fieldset-section-rule rule under a section legend, default var(--color-line)\n */\n.fieldset {\n min-inline-size: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.legend {\n float: inline-start; /* makes the legend an ordinary block so the body can sit under it */\n inline-size: 100%;\n margin-block-end: var(--space-2);\n}\n.legend + * {\n clear: both;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: var(--space-3);\n}\n\n/* Help text hugs the legend (label → help is space-1 everywhere in a form). */\n.description {\n margin-block-start: calc(var(--space-1) - var(--space-2));\n}\n\n.controls {\n display: flex;\n flex-direction: column;\n gap: var(--fieldset-gap, var(--space-3));\n}\n\n/* Section: a heading, not a label. The rule sits under the legend, across the column. */\n.fieldset[data-variant='section'] > .legend {\n display: flex;\n margin-block-end: var(--space-4);\n padding-block-end: var(--space-2);\n border-block-end: var(--border-width) solid var(--fieldset-section-rule, var(--color-line));\n font-family: var(--heading-font);\n font-size: var(--text-lg);\n font-weight: var(--heading-weight);\n letter-spacing: var(--heading-tracking);\n text-transform: var(--heading-transform);\n line-height: var(--leading-tight);\n}\n.fieldset[data-variant='section'] > .body {\n gap: var(--space-4);\n}\n.fieldset[data-variant='section'] > .body > .description {\n margin-block-start: calc(-1 * var(--space-1));\n}\n.fieldset[data-variant='section'] > .body > .controls {\n gap: var(--fieldset-gap, var(--space-5));\n}\n\n/* Horizontal: legend column | body column, like Field's horizontal grid. */\n@media (min-width: 40em) {\n .fieldset[data-layout='horizontal'] {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);\n column-gap: var(--space-4);\n align-items: start;\n }\n .fieldset[data-layout='horizontal'] > .legend {\n grid-column: 1;\n margin-block-end: 0;\n }\n .fieldset[data-layout='horizontal'] > .body {\n grid-column: 2;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type FocusEventHandler, type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
/** A file that already lives somewhere (uploaded earlier): shown and removable, never re-sent. */
|
|
3
|
+
export interface StoredFile {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
/** Bytes. */
|
|
7
|
+
size?: number;
|
|
8
|
+
/** MIME type, e.g. `image/jpeg`. */
|
|
9
|
+
type?: string;
|
|
10
|
+
/** Where to preview it (thumbnails). */
|
|
11
|
+
url?: string;
|
|
12
|
+
}
|
|
13
|
+
export type FileValue = File | StoredFile;
|
|
14
|
+
export type FileRejectReason = 'type' | 'size' | 'count';
|
|
15
|
+
export interface FileRejection {
|
|
16
|
+
file: File;
|
|
17
|
+
reason: FileRejectReason;
|
|
18
|
+
}
|
|
19
|
+
export interface FileDropProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue' | 'onBlur'> {
|
|
20
|
+
value?: readonly FileValue[];
|
|
21
|
+
defaultValue?: readonly FileValue[];
|
|
22
|
+
onValueChange?: (files: FileValue[]) => void;
|
|
23
|
+
/** Native `accept`: extensions (`.pdf`), MIME types (`image/png`) or wildcards (`image/*`). Also checked on drop. */
|
|
24
|
+
accept?: string;
|
|
25
|
+
/** Several files (added to the list). Without it a new file replaces the current one. */
|
|
26
|
+
multiple?: boolean;
|
|
27
|
+
/** With `multiple`: the most files the list may hold. */
|
|
28
|
+
maxFiles?: number;
|
|
29
|
+
/** Largest file accepted, in bytes. */
|
|
30
|
+
maxSize?: number;
|
|
31
|
+
/** Files that weren't added, and why. One call per pick or drop. */
|
|
32
|
+
onReject?: (rejections: readonly FileRejection[]) => void;
|
|
33
|
+
/** `list` (default): name and size rows. `thumbnails`: a grid with image previews. */
|
|
34
|
+
preview?: 'list' | 'thumbnails';
|
|
35
|
+
/** Default "Drop files here or". */
|
|
36
|
+
dropLabel?: ReactNode;
|
|
37
|
+
/** Default "choose files". Also the input's name when nothing else labels it. */
|
|
38
|
+
browseLabel?: string;
|
|
39
|
+
/** Accessible name of a file's remove button. Default `Remove <name>`. */
|
|
40
|
+
removeLabel?: (name: string) => string;
|
|
41
|
+
name?: string;
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
readOnly?: boolean;
|
|
44
|
+
required?: boolean;
|
|
45
|
+
/** Critical border + `aria-invalid`. Inside a `<Field error>` this is set for you. */
|
|
46
|
+
invalid?: boolean;
|
|
47
|
+
/** Fires once focus leaves the whole control (the input and the remove buttons). */
|
|
48
|
+
onBlur?: FocusEventHandler<HTMLElement>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Pick or drop files. The real control is the native `<input type="file">` (visually
|
|
52
|
+
* hidden, labelled by the surrounding Field, focus ring on the zone); drag-and-drop is an
|
|
53
|
+
* enhancement. Files are held in state, not uploaded: `value` is `File`s plus any
|
|
54
|
+
* `StoredFile`s from an earlier upload. The input's `FileList` is kept in sync where the
|
|
55
|
+
* browser allows it, so a native form submit sends the current files.
|
|
56
|
+
* The ref goes to the file input; `className`/`style` and other props go to the wrapper.
|
|
57
|
+
*
|
|
58
|
+
* <FileDrop accept="image/*,.pdf" multiple maxFiles={5} maxSize={5_000_000} preview="thumbnails" />
|
|
59
|
+
*/
|
|
60
|
+
export declare const FileDrop: import("react").ForwardRefExoticComponent<FileDropProps & import("react").RefAttributes<HTMLInputElement>>;
|