@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,20 @@
|
|
|
1
|
+
//#region src/components/overlays/Sheet/Sheet.module.css
|
|
2
|
+
var e = "kiln-Sheet__overlay", t = "kiln-Sheet__content", n = "kiln-Sheet__handle", r = "kiln-Sheet__header", i = "kiln-Sheet__heading", a = "kiln-Sheet__title", o = "kiln-Sheet__description", s = "kiln-Sheet__body", c = "kiln-Sheet__footer", l = {
|
|
3
|
+
overlay: e,
|
|
4
|
+
"fade-in": "kiln-Sheet__fade-in",
|
|
5
|
+
"fade-out": "kiln-Sheet__fade-out",
|
|
6
|
+
content: t,
|
|
7
|
+
handle: n,
|
|
8
|
+
header: r,
|
|
9
|
+
"slide-in": "kiln-Sheet__slide-in",
|
|
10
|
+
"slide-out": "kiln-Sheet__slide-out",
|
|
11
|
+
heading: i,
|
|
12
|
+
title: a,
|
|
13
|
+
description: o,
|
|
14
|
+
body: s,
|
|
15
|
+
footer: c
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
export { s as body, t as content, l as default, o as description, c as footer, n as handle, r as header, i as heading, e as overlay, a as title };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=Sheet.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sheet.module.js","names":["overlay","content","handle","header","heading","title","description","body","footer","Sheet_module_default"],"sources":["../../../../src/components/overlays/Sheet/Sheet.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --sheet-radius default var(--radius-surface) (only the corners facing the page)\n * --sheet-shadow default var(--shadow-overlay)\n * --sheet-border default var(--color-line-strong)\n * --sheet-surface default var(--color-surface-raised)\n *\n * Slides in with --ease-out in every theme: a spring would overshoot past the screen edge.\n */\n\n.overlay {\n position: fixed;\n inset: 0;\n z-index: var(--z-overlay);\n background: var(--color-scrim);\n}\n.overlay[data-state='open'] {\n animation: fade-in var(--dur-3) var(--ease-out);\n}\n.overlay[data-state='closed'] {\n animation: fade-out var(--dur-2) var(--ease-in-out);\n}\n\n.content {\n --_radius: var(--sheet-radius, var(--radius-surface));\n --_edge: var(--border-width) solid var(--sheet-border, var(--color-line-strong));\n\n position: fixed;\n z-index: var(--z-overlay);\n display: flex;\n flex-direction: column;\n background: var(--sheet-surface, var(--color-surface-raised));\n box-shadow: var(--sheet-shadow, var(--shadow-overlay));\n color: var(--color-ink);\n font-family: var(--font-text);\n font-size: var(--text-md);\n line-height: var(--leading-body);\n}\n.content:focus {\n outline: none;\n}\n\n/*\n * Sizes: side sheets read --_side-size (width), bottom sheets --_bottom-size (max height),\n * so a sheet that changes side per breakpoint keeps its size.\n */\n.content[data-size='sm'] {\n --_side-size: calc(var(--width-narrow) * 0.75);\n --_bottom-size: 50%;\n}\n.content[data-size='md'] {\n --_side-size: var(--width-narrow);\n --_bottom-size: 75%;\n}\n.content[data-size='lg'] {\n --_side-size: var(--width-text);\n --_bottom-size: calc(100% - var(--space-7));\n}\n\n/*\n * Sides. Every side rule sets the same full set of properties, so a later breakpoint\n * (`data-side-md`, `data-side-lg`, written only when `side` is responsive) cleanly\n * replaces an earlier one — including --_from, which drives the slide animation.\n * right/left: full height, width by size, a gap of scrim always left to tap.\n * bottom: phone-width, capped to a readable column on large screens, grab handle.\n */\n.content[data-side='right'] {\n inset-block: 0;\n inset-inline: auto 0;\n inline-size: min(var(--_side-size), calc(100% - var(--space-7)));\n max-block-size: none;\n margin-inline: 0;\n border: 0;\n border-inline-start: var(--_edge);\n border-start-start-radius: var(--_radius);\n border-end-start-radius: var(--_radius);\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n --_from: 100% 0;\n}\n.content[data-side='right'] > .handle {\n display: none;\n}\n.content[data-side='right'] > .header {\n padding-block-start: var(--space-5);\n}\n.content[data-side='left'] {\n inset-block: 0;\n inset-inline: 0 auto;\n inline-size: min(var(--_side-size), calc(100% - var(--space-7)));\n max-block-size: none;\n margin-inline: 0;\n border: 0;\n border-inline-end: var(--_edge);\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: var(--_radius);\n border-end-end-radius: var(--_radius);\n --_from: -100% 0;\n}\n.content[data-side='left'] > .handle {\n display: none;\n}\n.content[data-side='left'] > .header {\n padding-block-start: var(--space-5);\n}\n.content[data-side='bottom'] {\n inset-block: auto 0;\n inset-inline: 0;\n inline-size: min(100%, var(--width-text));\n max-block-size: var(--_bottom-size);\n margin-inline: auto;\n border: var(--_edge);\n border-block-end: 0;\n border-start-start-radius: var(--_radius);\n border-start-end-radius: var(--_radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n --_from: 0 100%;\n}\n.content[data-side='bottom'] > .handle {\n display: block;\n}\n.content[data-side='bottom'] > .header {\n padding-block-start: var(--space-3);\n}\n\n@media (min-width: 48em) {\n .content[data-side-md='right'] {\n inset-block: 0;\n inset-inline: auto 0;\n inline-size: min(var(--_side-size), calc(100% - var(--space-7)));\n max-block-size: none;\n margin-inline: 0;\n border: 0;\n border-inline-start: var(--_edge);\n border-start-start-radius: var(--_radius);\n border-end-start-radius: var(--_radius);\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n --_from: 100% 0;\n }\n .content[data-side-md='right'] > .handle {\n display: none;\n }\n .content[data-side-md='right'] > .header {\n padding-block-start: var(--space-5);\n }\n .content[data-side-md='left'] {\n inset-block: 0;\n inset-inline: 0 auto;\n inline-size: min(var(--_side-size), calc(100% - var(--space-7)));\n max-block-size: none;\n margin-inline: 0;\n border: 0;\n border-inline-end: var(--_edge);\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: var(--_radius);\n border-end-end-radius: var(--_radius);\n --_from: -100% 0;\n }\n .content[data-side-md='left'] > .handle {\n display: none;\n }\n .content[data-side-md='left'] > .header {\n padding-block-start: var(--space-5);\n }\n .content[data-side-md='bottom'] {\n inset-block: auto 0;\n inset-inline: 0;\n inline-size: min(100%, var(--width-text));\n max-block-size: var(--_bottom-size);\n margin-inline: auto;\n border: var(--_edge);\n border-block-end: 0;\n border-start-start-radius: var(--_radius);\n border-start-end-radius: var(--_radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n --_from: 0 100%;\n }\n .content[data-side-md='bottom'] > .handle {\n display: block;\n }\n .content[data-side-md='bottom'] > .header {\n padding-block-start: var(--space-3);\n }\n}\n\n@media (min-width: 64em) {\n .content[data-side-lg='right'] {\n inset-block: 0;\n inset-inline: auto 0;\n inline-size: min(var(--_side-size), calc(100% - var(--space-7)));\n max-block-size: none;\n margin-inline: 0;\n border: 0;\n border-inline-start: var(--_edge);\n border-start-start-radius: var(--_radius);\n border-end-start-radius: var(--_radius);\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n --_from: 100% 0;\n }\n .content[data-side-lg='right'] > .handle {\n display: none;\n }\n .content[data-side-lg='right'] > .header {\n padding-block-start: var(--space-5);\n }\n .content[data-side-lg='left'] {\n inset-block: 0;\n inset-inline: 0 auto;\n inline-size: min(var(--_side-size), calc(100% - var(--space-7)));\n max-block-size: none;\n margin-inline: 0;\n border: 0;\n border-inline-end: var(--_edge);\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: var(--_radius);\n border-end-end-radius: var(--_radius);\n --_from: -100% 0;\n }\n .content[data-side-lg='left'] > .handle {\n display: none;\n }\n .content[data-side-lg='left'] > .header {\n padding-block-start: var(--space-5);\n }\n .content[data-side-lg='bottom'] {\n inset-block: auto 0;\n inset-inline: 0;\n inline-size: min(100%, var(--width-text));\n max-block-size: var(--_bottom-size);\n margin-inline: auto;\n border: var(--_edge);\n border-block-end: 0;\n border-start-start-radius: var(--_radius);\n border-start-end-radius: var(--_radius);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n --_from: 0 100%;\n }\n .content[data-side-lg='bottom'] > .handle {\n display: block;\n }\n .content[data-side-lg='bottom'] > .header {\n padding-block-start: var(--space-3);\n }\n}\n\n.content[data-state='open'] {\n animation: slide-in var(--dur-3) var(--ease-out);\n}\n.content[data-state='closed'] {\n animation: slide-out var(--dur-2) var(--ease-in-out);\n}\n\n.handle {\n display: none;\n flex: none;\n align-self: center;\n inline-size: var(--space-7);\n block-size: var(--space-1);\n margin-block-start: var(--space-3);\n border-radius: var(--radius-chip);\n background: var(--color-line-strong);\n}\n\n.header {\n flex: none;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--space-3);\n padding: var(--space-5) var(--space-5) var(--space-4);\n border-block-end: 1px solid var(--color-line);\n}\n/* The close button's hit area sits inside the padding, optically aligned to the title. */\n.header > :last-child:not(.heading) {\n margin-block-start: calc(-1 * var(--space-1));\n margin-inline-end: calc(-1 * var(--space-2));\n}\n\n.heading {\n display: grid;\n gap: var(--space-1);\n min-inline-size: 0;\n}\n\n.title {\n font-family: var(--heading-font);\n font-weight: var(--heading-weight);\n letter-spacing: var(--heading-tracking);\n text-transform: var(--heading-transform);\n font-size: var(--text-xl);\n line-height: var(--leading-snug);\n color: var(--color-ink);\n}\n\n.description {\n font-size: var(--text-sm);\n color: var(--color-ink-muted);\n}\n\n.body {\n --_pad: var(--space-5);\n\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n min-block-size: 0;\n padding: var(--space-4) var(--_pad) var(--_pad);\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.footer {\n --_pad: var(--space-5); /* matches .body padding */\n\n position: sticky;\n inset-block-end: calc(-1 * var(--_pad));\n display: flex;\n flex-wrap: wrap-reverse;\n justify-content: flex-end;\n gap: var(--space-3);\n margin-block: auto calc(-1 * var(--_pad));\n margin-inline: calc(-1 * var(--_pad));\n padding: var(--space-4) var(--_pad) var(--_pad);\n border-block-start: 1px solid var(--color-line);\n background: var(--sheet-surface, var(--color-surface-raised));\n}\n\n@keyframes slide-in {\n from {\n translate: var(--_from);\n }\n}\n@keyframes slide-out {\n to {\n translate: var(--_from);\n }\n}\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n}\n@keyframes fade-out {\n to {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .overlay[data-state],\n .content[data-state] {\n animation: none;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
import { Tooltip as TooltipPrimitive } from 'radix-ui';
|
|
3
|
+
export type TooltipProviderProps = ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>;
|
|
4
|
+
/**
|
|
5
|
+
* Shares open/skip delays between tooltips, so moving along a toolbar shows each hint
|
|
6
|
+
* instantly after the first. Put one near the app root. Tooltips work without it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function TooltipProvider({ delayDuration, skipDelayDuration, ...rest }: TooltipProviderProps): import("react").JSX.Element;
|
|
9
|
+
export type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
|
|
10
|
+
export type TooltipAlign = 'start' | 'center' | 'end';
|
|
11
|
+
export interface TooltipProps extends Omit<ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>, 'content' | 'side' | 'align' | 'children'> {
|
|
12
|
+
/** The hint. Short — a label or one sentence. It's announced as the trigger's description. */
|
|
13
|
+
content: ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* The trigger: a single focusable element (a button or link). It receives the ref and
|
|
16
|
+
* event handlers, so custom components must forward both.
|
|
17
|
+
*/
|
|
18
|
+
children: ReactElement;
|
|
19
|
+
side?: TooltipSide;
|
|
20
|
+
align?: TooltipAlign;
|
|
21
|
+
/** Hover delay before opening, in ms. Keyboard focus opens immediately. */
|
|
22
|
+
delay?: number;
|
|
23
|
+
open?: boolean;
|
|
24
|
+
defaultOpen?: boolean;
|
|
25
|
+
onOpenChange?: (open: boolean) => void;
|
|
26
|
+
/** Portal target. Defaults to `document.body`; its theme scope is also used. */
|
|
27
|
+
container?: HTMLElement | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A small label that appears on hover and on keyboard focus. Portalled, so it's never
|
|
31
|
+
* clipped by an `overflow: hidden` card. Not for anything interactive — use `Popover`.
|
|
32
|
+
*
|
|
33
|
+
* <Tooltip content="Copy link"><IconButton … /></Tooltip>
|
|
34
|
+
*/
|
|
35
|
+
export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { PortalAnchorContext as t, composeRefs as n, usePortalAnchorRef as r, usePortalTheme as i } from "../usePortalTheme.js";
|
|
3
|
+
import a from "./Tooltip.module.js";
|
|
4
|
+
import { createContext as o, forwardRef as s, useContext as c } from "react";
|
|
5
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
|
+
import { Tooltip as d } from "radix-ui";
|
|
7
|
+
//#region src/components/overlays/Tooltip/Tooltip.tsx
|
|
8
|
+
var f = o(!1);
|
|
9
|
+
function p({ delayDuration: e = 500, skipDelayDuration: t = 300, ...n }) {
|
|
10
|
+
return /* @__PURE__ */ l(f.Provider, {
|
|
11
|
+
value: !0,
|
|
12
|
+
children: /* @__PURE__ */ l(d.Provider, {
|
|
13
|
+
delayDuration: e,
|
|
14
|
+
skipDelayDuration: t,
|
|
15
|
+
...n
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
var m = s(function({ container: t, className: n, children: r, ...o }, s) {
|
|
20
|
+
let c = i(t);
|
|
21
|
+
return /* @__PURE__ */ u(d.Content, {
|
|
22
|
+
ref: s,
|
|
23
|
+
className: e(a.content, n),
|
|
24
|
+
collisionPadding: 8,
|
|
25
|
+
...c,
|
|
26
|
+
...o,
|
|
27
|
+
children: [r, /* @__PURE__ */ l(d.Arrow, {
|
|
28
|
+
className: a.arrow,
|
|
29
|
+
width: 10,
|
|
30
|
+
height: 5
|
|
31
|
+
})]
|
|
32
|
+
});
|
|
33
|
+
}), h = s(function({ content: e, children: i, side: a = "top", align: o = "center", delay: s, open: h, defaultOpen: g, onOpenChange: _, container: v, sideOffset: y = 6, ...b }, x) {
|
|
34
|
+
let S = c(f), C = r(), w = /* @__PURE__ */ l(t.Provider, {
|
|
35
|
+
value: C,
|
|
36
|
+
children: /* @__PURE__ */ u(d.Root, {
|
|
37
|
+
delayDuration: s,
|
|
38
|
+
open: h,
|
|
39
|
+
defaultOpen: g,
|
|
40
|
+
onOpenChange: _,
|
|
41
|
+
children: [/* @__PURE__ */ l(d.Trigger, {
|
|
42
|
+
asChild: !0,
|
|
43
|
+
ref: n(C),
|
|
44
|
+
children: i
|
|
45
|
+
}), /* @__PURE__ */ l(d.Portal, {
|
|
46
|
+
container: v,
|
|
47
|
+
children: /* @__PURE__ */ l(m, {
|
|
48
|
+
ref: x,
|
|
49
|
+
container: v,
|
|
50
|
+
side: a,
|
|
51
|
+
align: o,
|
|
52
|
+
sideOffset: y,
|
|
53
|
+
...b,
|
|
54
|
+
children: e
|
|
55
|
+
})
|
|
56
|
+
})]
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
return S ? w : /* @__PURE__ */ l(p, { children: w });
|
|
60
|
+
});
|
|
61
|
+
//#endregion
|
|
62
|
+
export { h as Tooltip, p as TooltipProvider };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["TooltipPrimitive","styles","Tooltip","Tooltip_module_default","HasProvider","createContext","TooltipProvider","rest","Tooltip","ContentInner","forwardRef","theme","usePortalTheme","container","cx","className","children","Tooltip$1","hasProvider","useContext","anchor","usePortalAnchorRef","tooltip","PortalAnchorContext","delay","composeRefs","content"],"sources":["../../../../src/components/overlays/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n createContext,\n forwardRef,\n useContext,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { Tooltip as TooltipPrimitive } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport {\n PortalAnchorContext,\n composeRefs,\n usePortalAnchorRef,\n usePortalTheme,\n} from '#components/overlays/usePortalTheme'\nimport styles from './Tooltip.module.css'\n\nconst HasProvider = createContext(false)\n\nexport type TooltipProviderProps = ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>\n\n/**\n * Shares open/skip delays between tooltips, so moving along a toolbar shows each hint\n * instantly after the first. Put one near the app root. Tooltips work without it.\n */\nexport function TooltipProvider({\n delayDuration = 500,\n skipDelayDuration = 300,\n ...rest\n}: TooltipProviderProps) {\n return (\n <HasProvider.Provider value>\n <TooltipPrimitive.Provider\n delayDuration={delayDuration}\n skipDelayDuration={skipDelayDuration}\n {...rest}\n />\n </HasProvider.Provider>\n )\n}\n\nexport type TooltipSide = 'top' | 'right' | 'bottom' | 'left'\nexport type TooltipAlign = 'start' | 'center' | 'end'\n\nexport interface TooltipProps extends Omit<\n ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>,\n 'content' | 'side' | 'align' | 'children'\n> {\n /** The hint. Short — a label or one sentence. It's announced as the trigger's description. */\n content: ReactNode\n /**\n * The trigger: a single focusable element (a button or link). It receives the ref and\n * event handlers, so custom components must forward both.\n */\n children: ReactElement\n side?: TooltipSide\n align?: TooltipAlign\n /** Hover delay before opening, in ms. Keyboard focus opens immediately. */\n delay?: number\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n /** Portal target. Defaults to `document.body`; its theme scope is also used. */\n container?: HTMLElement | null\n}\n\nconst ContentInner = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & { container?: HTMLElement | null }\n>(function ContentInner({ container, className, children, ...rest }, ref) {\n const theme = usePortalTheme(container)\n return (\n <TooltipPrimitive.Content\n ref={ref}\n className={cx(styles.content, className)}\n collisionPadding={8}\n {...theme}\n {...rest}\n >\n {children}\n <TooltipPrimitive.Arrow className={styles.arrow} width={10} height={5} />\n </TooltipPrimitive.Content>\n )\n})\n\n/**\n * A small label that appears on hover and on keyboard focus. Portalled, so it's never\n * clipped by an `overflow: hidden` card. Not for anything interactive — use `Popover`.\n *\n * <Tooltip content=\"Copy link\"><IconButton … /></Tooltip>\n */\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(function Tooltip(\n {\n content,\n children,\n side = 'top',\n align = 'center',\n delay,\n open,\n defaultOpen,\n onOpenChange,\n container,\n sideOffset = 6,\n ...rest\n },\n ref,\n) {\n const hasProvider = useContext(HasProvider)\n const anchor = usePortalAnchorRef()\n const tooltip = (\n <PortalAnchorContext.Provider value={anchor}>\n <TooltipPrimitive.Root\n delayDuration={delay}\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n <TooltipPrimitive.Trigger asChild ref={composeRefs(anchor)}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal container={container}>\n <ContentInner\n ref={ref}\n container={container}\n side={side}\n align={align}\n sideOffset={sideOffset}\n {...rest}\n >\n {content}\n </ContentInner>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </PortalAnchorContext.Provider>\n )\n return hasProvider ? tooltip : <TooltipProvider>{tooltip}</TooltipProvider>\n})\n"],"mappings":";;;;;;;AAkBA,IAAMI,IAAcC,EAAc,EAAK;AAQvC,SAAgBC,EAAgB,EAC9B,mBAAgB,KAChB,uBAAoB,KACpB,GAAGC,KACoB;CACvB,OACE,kBAACH,EAAY,UAAb;EAAsB,OAAA;EACpB,UAAA,kBAACJ,EAAiB,UAAlB;GACiB;GACI;GACnB,GAAIO;EACL,CAAA;CACmB,CAAA;AAE1B;AA2BA,IAAME,IAAeC,EAGnB,SAAsB,EAAE,cAAW,cAAW,aAAU,GAAGH,KAAQ,GAAK;CACxE,IAAMI,IAAQC,EAAeC,CAAS;CACtC,OACE,kBAACb,EAAiB,SAAlB;EACO;EACL,WAAWc,EAAGb,EAAO,SAASc,CAAS;EACvC,kBAAkB;EAClB,GAAIJ;EACJ,GAAIJ;EALN,UAAA,CAOGS,GACD,kBAAChB,EAAiB,OAAlB;GAAwB,WAAWC,EAAO;GAAO,OAAO;GAAI,QAAQ;EAAI,CAAA,CAChD;;AAE9B,CAAC,GAQYC,IAAUQ,EAAyC,SAC9D,EACE,YACA,aACA,UAAO,OACP,WAAQ,UACR,UACA,SACA,gBACA,iBACA,cACA,gBAAa,GACb,GAAGH,KAEL,GACA;CACA,IAAMW,IAAcC,EAAWf,CAAW,GACpCgB,IAASC,EAAmB,GAC5BC,IACJ,kBAACC,EAAoB,UAArB;EAA8B,OAAOH;EACnC,UAAA,kBAACpB,EAAiB,MAAlB;GACE,eAAewB;GACT;GACO;GACC;GAJhB,UAAA,CAME,kBAACxB,EAAiB,SAAlB;IAA0B,SAAA;IAAQ,KAAKyB,EAAYL,CAAM;IACtD;GACuB,CAAA,GAC1B,kBAACpB,EAAiB,QAAlB;IAAoC;IAClC,UAAA,kBAACS,GAAD;KACO;KACM;KACL;KACC;KACK;KACZ,GAAIF;KAEH,UAAAmB;IACW,CAAA;GACS,CAAA,CACJ;;CACK,CAAA;CAEhC,OAAOR,IAAcI,IAAU,kBAAChB,GAAD,EAAA,UAAkBgB,EAAyB,CAAA;AAC5E,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/components/overlays/Tooltip/Tooltip.module.css
|
|
2
|
+
var e = "kiln-Tooltip__content", t = "kiln-Tooltip__arrow", n = {
|
|
3
|
+
content: e,
|
|
4
|
+
"tip-in": "kiln-Tooltip__tip-in",
|
|
5
|
+
"tip-out": "kiln-Tooltip__tip-out",
|
|
6
|
+
arrow: t
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { t as arrow, e as content, n as default };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=Tooltip.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.module.js","names":["content","arrow","Tooltip_module_default"],"sources":["../../../../src/components/overlays/Tooltip/Tooltip.module.css"],"sourcesContent":["/*\n * An inverse chip: the one place the theme's ink becomes the surface.\n *\n * Component tokens (themes may set any of these on [data-theme]):\n * --tooltip-radius default min(var(--radius-field), var(--radius-chip))\n * --tooltip-surface default var(--color-surface-inverse)\n * --tooltip-ink default var(--color-ink-inverse)\n */\n.content {\n --_surface: var(--tooltip-surface, var(--color-surface-inverse));\n\n z-index: var(--z-popover);\n max-inline-size: min(\n calc(var(--width-narrow) * 0.5),\n var(--radix-tooltip-content-available-width, 100vw)\n );\n padding: calc(var(--space-1) * 1.5) var(--space-2);\n border-radius: var(--tooltip-radius, min(var(--radius-field), var(--radius-chip)));\n background: var(--_surface);\n color: var(--tooltip-ink, var(--color-ink-inverse));\n font-family: var(--font-text);\n font-size: var(--text-xs);\n font-weight: var(--label-weight);\n line-height: var(--leading-snug);\n text-wrap: pretty;\n transform-origin: var(--radix-tooltip-content-transform-origin);\n user-select: none;\n}\n\n.content[data-state='delayed-open'],\n.content[data-state='instant-open'] {\n animation: tip-in var(--dur-1) var(--ease-out);\n}\n.content[data-state='closed'] {\n animation: tip-out var(--dur-1) var(--ease-out);\n}\n/* Nudge in from the trigger's direction. */\n.content {\n --_from: 0 0;\n}\n.content[data-side='top'] {\n --_from: 0 calc(var(--space-1) * 0.5);\n}\n.content[data-side='bottom'] {\n --_from: 0 calc(var(--space-1) * -0.5);\n}\n.content[data-side='left'] {\n --_from: calc(var(--space-1) * 0.5) 0;\n}\n.content[data-side='right'] {\n --_from: calc(var(--space-1) * -0.5) 0;\n}\n\n.arrow {\n fill: var(--tooltip-surface, var(--color-surface-inverse));\n}\n\n@keyframes tip-in {\n from {\n opacity: 0;\n translate: var(--_from);\n }\n}\n@keyframes tip-out {\n to {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .content[data-state] {\n animation: none;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type RefObject, type Ref } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Portal theming.
|
|
4
|
+
*
|
|
5
|
+
* Radix portals render into `document.body`, outside any nested `<ThemeScope>`. Themes
|
|
6
|
+
* are plain CSS scoped to `[data-theme]`, so portalled content would otherwise fall back
|
|
7
|
+
* to the document's theme — a Fiesta dialog opened from a Fiesta card on a Monograph page
|
|
8
|
+
* would render in Monograph.
|
|
9
|
+
*
|
|
10
|
+
* The fix: each overlay's portalled element copies the theme axes (`data-theme`,
|
|
11
|
+
* `data-mode`, `data-density`) of the place it was opened from. Tokens then resolve on
|
|
12
|
+
* the portalled element exactly as they would have in place.
|
|
13
|
+
*
|
|
14
|
+
* Source element, in order: an explicit `container` → the overlay's trigger (registered
|
|
15
|
+
* through `PortalAnchorContext`) → the element focused when the overlay opened (covers
|
|
16
|
+
* controlled dialogs with no trigger) → `<html>`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PORTAL_THEME_ATTRIBUTES: readonly ["data-theme", "data-mode", "data-density"];
|
|
19
|
+
export interface PortalThemeAttributes {
|
|
20
|
+
'data-theme'?: string;
|
|
21
|
+
'data-mode'?: string;
|
|
22
|
+
'data-density'?: string;
|
|
23
|
+
}
|
|
24
|
+
type AnchorRef = RefObject<HTMLElement | null>;
|
|
25
|
+
/** Set by each overlay Root; its Trigger registers itself as the theme source. */
|
|
26
|
+
export declare const PortalAnchorContext: import("react").Context<AnchorRef | null>;
|
|
27
|
+
/** Creates the anchor ref an overlay Root provides via `PortalAnchorContext`. */
|
|
28
|
+
export declare function usePortalAnchorRef(): AnchorRef;
|
|
29
|
+
/** The nearest overlay Root's anchor ref, or `null` outside one. */
|
|
30
|
+
export declare function usePortalAnchor(): AnchorRef | null;
|
|
31
|
+
/** Merge refs (forwarded + internal) into one callback ref. */
|
|
32
|
+
export declare function composeRefs<T>(...refs: (Ref<T> | undefined)[]): (node: T | null) => void;
|
|
33
|
+
/** Reads the theme axes that apply at `source` (nearest ancestor per axis, then `<html>`). */
|
|
34
|
+
export declare function readPortalTheme(source: Element | null | undefined): PortalThemeAttributes;
|
|
35
|
+
/**
|
|
36
|
+
* Returns the `data-theme` / `data-mode` / `data-density` attributes to spread on a
|
|
37
|
+
* portalled overlay element. Call it in a component that mounts when the overlay opens
|
|
38
|
+
* (inside the Radix Portal), so the source is read at open time.
|
|
39
|
+
*
|
|
40
|
+
* Stays in sync while open: if any theme axis changes in the document (a mode toggle,
|
|
41
|
+
* a Storybook global) the attributes are re-read.
|
|
42
|
+
*/
|
|
43
|
+
export declare function usePortalTheme(container?: Element | null): PortalThemeAttributes;
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createContext as e, useContext as t, useEffect as n, useLayoutEffect as r, useRef as i, useState as a } from "react";
|
|
2
|
+
//#region src/components/overlays/usePortalTheme.ts
|
|
3
|
+
var o = [
|
|
4
|
+
"data-theme",
|
|
5
|
+
"data-mode",
|
|
6
|
+
"data-density"
|
|
7
|
+
], s = e(null);
|
|
8
|
+
function c() {
|
|
9
|
+
return i(null);
|
|
10
|
+
}
|
|
11
|
+
function l() {
|
|
12
|
+
return t(s);
|
|
13
|
+
}
|
|
14
|
+
function u(...e) {
|
|
15
|
+
return (t) => {
|
|
16
|
+
for (let n of e) typeof n == "function" ? n(t) : n && (n.current = t);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function d(e) {
|
|
20
|
+
let t = e?.ownerDocument ?? (typeof document > "u" ? void 0 : document);
|
|
21
|
+
if (!t) return {};
|
|
22
|
+
let n = {};
|
|
23
|
+
for (let r of o) {
|
|
24
|
+
let i = (e?.closest(`[${r}]`) ?? t.documentElement).getAttribute(r);
|
|
25
|
+
i !== null && (n[r] = i);
|
|
26
|
+
}
|
|
27
|
+
return n;
|
|
28
|
+
}
|
|
29
|
+
function f(e, t) {
|
|
30
|
+
if (t) return t;
|
|
31
|
+
if (e?.current?.isConnected) return e.current;
|
|
32
|
+
if (typeof document > "u") return null;
|
|
33
|
+
let n = document.activeElement;
|
|
34
|
+
return n && n !== document.body ? n : document.documentElement;
|
|
35
|
+
}
|
|
36
|
+
function p(e, t) {
|
|
37
|
+
return o.every((n) => e[n] === t[n]);
|
|
38
|
+
}
|
|
39
|
+
var m = typeof document > "u" ? n : r;
|
|
40
|
+
function h(e) {
|
|
41
|
+
let t = l(), [n, r] = a(() => typeof document > "u" ? {} : d(f(t, e))), s = i(null);
|
|
42
|
+
return m(() => {
|
|
43
|
+
s.current = f(t, e);
|
|
44
|
+
let n = () => {
|
|
45
|
+
let e = d(s.current);
|
|
46
|
+
r((t) => p(t, e) ? t : e);
|
|
47
|
+
};
|
|
48
|
+
if (n(), typeof MutationObserver > "u") return;
|
|
49
|
+
let i = new MutationObserver(n);
|
|
50
|
+
return i.observe(document.documentElement, {
|
|
51
|
+
subtree: !0,
|
|
52
|
+
attributes: !0,
|
|
53
|
+
attributeFilter: [...o]
|
|
54
|
+
}), () => {
|
|
55
|
+
i.disconnect();
|
|
56
|
+
};
|
|
57
|
+
}, [t, e]), n;
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { o as PORTAL_THEME_ATTRIBUTES, s as PortalAnchorContext, u as composeRefs, d as readPortalTheme, l as usePortalAnchor, c as usePortalAnchorRef, h as usePortalTheme };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=usePortalTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePortalTheme.js","names":["PORTAL_THEME_ATTRIBUTES","PortalAnchorContext","createContext","usePortalAnchorRef","useRef","usePortalAnchor","useContext","composeRefs","refs","ref","node","readPortalTheme","doc","source","attrs","name","value","resolveSource","container","anchor","active","sameAttributes","a","b","useIsomorphicLayoutEffect","useEffect","useLayoutEffect","usePortalTheme","setAttrs","useState","sourceRef","update","next","prev","observer"],"sources":["../../../src/components/overlays/usePortalTheme.ts"],"sourcesContent":["import {\n createContext,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type RefObject,\n type Ref,\n} from 'react'\n\n/**\n * Portal theming.\n *\n * Radix portals render into `document.body`, outside any nested `<ThemeScope>`. Themes\n * are plain CSS scoped to `[data-theme]`, so portalled content would otherwise fall back\n * to the document's theme — a Fiesta dialog opened from a Fiesta card on a Monograph page\n * would render in Monograph.\n *\n * The fix: each overlay's portalled element copies the theme axes (`data-theme`,\n * `data-mode`, `data-density`) of the place it was opened from. Tokens then resolve on\n * the portalled element exactly as they would have in place.\n *\n * Source element, in order: an explicit `container` → the overlay's trigger (registered\n * through `PortalAnchorContext`) → the element focused when the overlay opened (covers\n * controlled dialogs with no trigger) → `<html>`.\n */\n\nexport const PORTAL_THEME_ATTRIBUTES = ['data-theme', 'data-mode', 'data-density'] as const\n\nexport interface PortalThemeAttributes {\n 'data-theme'?: string\n 'data-mode'?: string\n 'data-density'?: string\n}\n\ntype AnchorRef = RefObject<HTMLElement | null>\n\n/** Set by each overlay Root; its Trigger registers itself as the theme source. */\nexport const PortalAnchorContext = createContext<AnchorRef | null>(null)\n\n/** Creates the anchor ref an overlay Root provides via `PortalAnchorContext`. */\nexport function usePortalAnchorRef(): AnchorRef {\n return useRef<HTMLElement | null>(null)\n}\n\n/** The nearest overlay Root's anchor ref, or `null` outside one. */\nexport function usePortalAnchor(): AnchorRef | null {\n return useContext(PortalAnchorContext)\n}\n\n/** Merge refs (forwarded + internal) into one callback ref. */\nexport function composeRefs<T>(...refs: (Ref<T> | undefined)[]): (node: T | null) => void {\n return (node) => {\n for (const ref of refs) {\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }\n }\n}\n\n/** Reads the theme axes that apply at `source` (nearest ancestor per axis, then `<html>`). */\nexport function readPortalTheme(source: Element | null | undefined): PortalThemeAttributes {\n const doc = source?.ownerDocument ?? (typeof document === 'undefined' ? undefined : document)\n if (!doc) return {}\n const attrs: PortalThemeAttributes = {}\n for (const name of PORTAL_THEME_ATTRIBUTES) {\n const scope = source?.closest(`[${name}]`) ?? doc.documentElement\n const value = scope.getAttribute(name)\n if (value !== null) attrs[name] = value\n }\n return attrs\n}\n\nfunction resolveSource(\n anchor: AnchorRef | null | undefined,\n container: Element | null | undefined,\n): Element | null {\n if (container) return container\n if (anchor?.current?.isConnected) return anchor.current\n if (typeof document === 'undefined') return null\n const active = document.activeElement\n return active && active !== document.body ? active : document.documentElement\n}\n\nfunction sameAttributes(a: PortalThemeAttributes, b: PortalThemeAttributes): boolean {\n return PORTAL_THEME_ATTRIBUTES.every((name) => a[name] === b[name])\n}\n\nconst useIsomorphicLayoutEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect\n\n/**\n * Returns the `data-theme` / `data-mode` / `data-density` attributes to spread on a\n * portalled overlay element. Call it in a component that mounts when the overlay opens\n * (inside the Radix Portal), so the source is read at open time.\n *\n * Stays in sync while open: if any theme axis changes in the document (a mode toggle,\n * a Storybook global) the attributes are re-read.\n */\nexport function usePortalTheme(container?: Element | null): PortalThemeAttributes {\n const anchor = usePortalAnchor()\n // Portalled content never renders on the server, but guard anyway: no DOM, no attributes.\n const [attrs, setAttrs] = useState<PortalThemeAttributes>(() =>\n typeof document === 'undefined' ? {} : readPortalTheme(resolveSource(anchor, container)),\n )\n // Remember the source chosen at open time; focus moves into the overlay afterwards.\n const sourceRef = useRef<Element | null>(null)\n\n useIsomorphicLayoutEffect(() => {\n sourceRef.current = resolveSource(anchor, container)\n const update = () => {\n const next = readPortalTheme(sourceRef.current)\n setAttrs((prev) => (sameAttributes(prev, next) ? prev : next))\n }\n update()\n if (typeof MutationObserver === 'undefined') return\n const observer = new MutationObserver(update)\n observer.observe(document.documentElement, {\n subtree: true,\n attributes: true,\n attributeFilter: [...PORTAL_THEME_ATTRIBUTES],\n })\n return () => {\n observer.disconnect()\n }\n }, [anchor, container])\n\n return attrs\n}\n"],"mappings":";;AA4BA,IAAaA,IAA0B;CAAC;CAAc;CAAa;AAAc,GAWpEC,IAAsBC,EAAgC,IAAI;AAGvE,SAAgBC,IAAgC;CAC9C,OAAOC,EAA2B,IAAI;AACxC;AAGA,SAAgBC,IAAoC;CAClD,OAAOC,EAAWL,CAAmB;AACvC;AAGA,SAAgBM,EAAe,GAAGC,GAAwD;CACxF,QAAQ,MAAS;EACf,KAAK,IAAMC,KAAOD,GAChB,AAAI,OAAOC,KAAQ,aAAYA,EAAIC,CAAI,IAC9BD,MAAK,EAAI,UAAUC;CAEhC;AACF;AAGA,SAAgBC,EAAgB,GAA2D;CACzF,IAAMC,IAAMC,GAAQ,kBAAkB,OAAO,WAAa,MAAc,KAAA,IAAY;CACpF,IAAI,CAACD,GAAK,OAAO,CAAC;CAClB,IAAME,IAA+B,CAAC;CACtC,KAAK,IAAMC,KAAQf,GAAyB;EAE1C,IAAMgB,KADQH,GAAQ,QAAQ,IAAIE,EAAK,EAAE,KAAKH,EAAI,gBAAA,CAC9B,aAAaG,CAAI;EACrC,AAAIC,MAAU,SAAM,EAAMD,KAAQC;CACpC;CACA,OAAOF;AACT;AAEA,SAASG,EACP,GACA,GACgB;CAChB,IAAIC,GAAW,OAAOA;CACtB,IAAIC,GAAQ,SAAS,aAAa,OAAOA,EAAO;CAChD,IAAI,OAAO,WAAa,KAAa,OAAO;CAC5C,IAAMC,IAAS,SAAS;CACxB,OAAOA,KAAUA,MAAW,SAAS,OAAOA,IAAS,SAAS;AAChE;AAEA,SAASC,EAAe,GAA0B,GAAmC;CACnF,OAAOrB,EAAwB,OAAO,MAASsB,EAAEP,OAAUQ,EAAER,EAAK;AACpE;AAEA,IAAMS,IAA4B,OAAO,WAAa,MAAcC,IAAYC;AAUhF,SAAgBC,EAAe,GAAmD;CAChF,IAAMR,IAASd,EAAgB,GAEzB,CAACS,GAAOc,KAAYC,QACxB,OAAO,WAAa,MAAc,CAAC,IAAIlB,EAAgBM,EAAcE,GAAQD,CAAS,CAAC,CACzF,GAEMY,IAAY1B,EAAuB,IAAI;CAqB7C,OAnBAoB,QAAgC;EAC9B,EAAU,UAAUP,EAAcE,GAAQD,CAAS;EACnD,IAAMa,UAAe;GACnB,IAAMC,IAAOrB,EAAgBmB,EAAU,OAAO;GAC9C,GAAU,MAAUT,EAAeY,GAAMD,CAAI,IAAIC,IAAOD,CAAK;EAC/D;EAEA,IADAD,EAAO,GACH,OAAO,mBAAqB,KAAa;EAC7C,IAAMG,IAAW,IAAI,iBAAiBH,CAAM;EAM5C,OALAG,EAAS,QAAQ,SAAS,iBAAiB;GACzC,SAAS;GACT,YAAY;GACZ,iBAAiB,CAAC,GAAGlC,CAAuB;EAC9C,CAAC,SACY;GACX,EAAS,WAAW;EACtB;CACF,GAAG,CAACmB,GAAQD,CAAS,CAAC,GAEfJ;AACT"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type NumeralProps } from '../Numeral/index.js';
|
|
2
|
+
export interface AmountProps extends Omit<NumeralProps, 'format' | 'signDisplay'> {
|
|
3
|
+
/** ISO 4217 code. Default `AUD`. */
|
|
4
|
+
currency?: string;
|
|
5
|
+
/** Fraction digits. Default 2 (0 for compact unless set). */
|
|
6
|
+
precision?: number;
|
|
7
|
+
/** Show `+` on positive amounts (and `−` on negatives, as always). */
|
|
8
|
+
showSign?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Accounting style: negatives in parentheses and in the critical tone. Non-negative
|
|
11
|
+
* amounts reserve the width of the ")" (invisibly), so decimals line up with the
|
|
12
|
+
* bracketed negatives in a right-aligned column.
|
|
13
|
+
*/
|
|
14
|
+
accounting?: boolean;
|
|
15
|
+
/** Short form for big figures: `$1.2M`. */
|
|
16
|
+
compact?: boolean;
|
|
17
|
+
/** Extra `Intl.NumberFormat` options (e.g. `currencyDisplay: 'code'`). Applied last. */
|
|
18
|
+
format?: Intl.NumberFormatOptions;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Money. Built on <Numeral>: tabular figures in the theme's numeric face, a true minus,
|
|
22
|
+
* en-AU / AUD by default. A currency the locale has no symbol for shows its narrow symbol
|
|
23
|
+
* when that is unambiguous (GBP → £ in en-AU) and its ISO code otherwise (USD in en-AU).
|
|
24
|
+
*
|
|
25
|
+
* <Amount value={-1234.5} accounting /> → ($1,234.50) in the critical tone
|
|
26
|
+
*/
|
|
27
|
+
export declare const Amount: import("react").ForwardRefExoticComponent<AmountProps & import("react").RefAttributes<HTMLDataElement>>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { signOf as t } from "../Numeral/format.js";
|
|
3
|
+
import { Numeral as n } from "../Numeral/Numeral.js";
|
|
4
|
+
import r from "./Amount.module.js";
|
|
5
|
+
import { forwardRef as i } from "react";
|
|
6
|
+
import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/typography/Amount/Amount.tsx
|
|
8
|
+
var c = /* @__PURE__ */ new Set([
|
|
9
|
+
"$",
|
|
10
|
+
"¥",
|
|
11
|
+
"kr",
|
|
12
|
+
"Kr",
|
|
13
|
+
"₩",
|
|
14
|
+
"₱",
|
|
15
|
+
"Rs"
|
|
16
|
+
]);
|
|
17
|
+
function l(e, t) {
|
|
18
|
+
try {
|
|
19
|
+
let n = (n) => new Intl.NumberFormat(e, {
|
|
20
|
+
style: "currency",
|
|
21
|
+
currency: t,
|
|
22
|
+
currencyDisplay: n
|
|
23
|
+
}).formatToParts(1).find((e) => e.type === "currency")?.value;
|
|
24
|
+
if (n("symbol") !== t.toUpperCase()) return "symbol";
|
|
25
|
+
let r = n("narrowSymbol");
|
|
26
|
+
return r !== void 0 && !c.has(r) ? "narrowSymbol" : "symbol";
|
|
27
|
+
} catch {
|
|
28
|
+
return "symbol";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
var u = i(function({ value: i, currency: c = "AUD", locale: u = "en-AU", precision: d, showSign: f = !1, accounting: p = !1, compact: m = !1, format: h, tone: g, suffix: _, className: v, ...y }, b) {
|
|
32
|
+
let x = d ?? (m ? void 0 : 2), S = {
|
|
33
|
+
style: "currency",
|
|
34
|
+
currency: c,
|
|
35
|
+
currencyDisplay: l(u, c),
|
|
36
|
+
...x === void 0 ? {} : {
|
|
37
|
+
minimumFractionDigits: x,
|
|
38
|
+
maximumFractionDigits: x
|
|
39
|
+
},
|
|
40
|
+
...m ? {
|
|
41
|
+
notation: "compact",
|
|
42
|
+
...x === void 0 ? { maximumFractionDigits: 1 } : {}
|
|
43
|
+
} : {},
|
|
44
|
+
...p ? { currencySign: "accounting" } : {},
|
|
45
|
+
...f ? { signDisplay: "exceptZero" } : {},
|
|
46
|
+
...h
|
|
47
|
+
}, C = p && t(i) !== "negative", w = p && t(i) === "negative" && (g === void 0 || g === "default") ? "critical" : g;
|
|
48
|
+
return /* @__PURE__ */ o(n, {
|
|
49
|
+
ref: b,
|
|
50
|
+
locale: u,
|
|
51
|
+
className: e(r.amount, v),
|
|
52
|
+
value: i,
|
|
53
|
+
format: S,
|
|
54
|
+
tone: w,
|
|
55
|
+
suffix: C ? /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o("span", {
|
|
56
|
+
className: r.pad,
|
|
57
|
+
"data-accounting-pad": "",
|
|
58
|
+
"aria-hidden": "true"
|
|
59
|
+
}), _] }) : _,
|
|
60
|
+
"data-accounting": p || void 0,
|
|
61
|
+
...y
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//#endregion
|
|
65
|
+
export { u as Amount };
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=Amount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Amount.js","names":["styles","_Fragment","Amount_module_default","Fragment$1","SHARED_NARROW_SYMBOLS","defaultCurrencyDisplay","symbolOf","locale","display","part","currency","narrow","Amount","forwardRef","rest","digits","precision","compact","options","accounting","showSign","format","pad","signOf","value","resolvedTone","tone","Numeral","cx","className","suffix"],"sources":["../../../../src/components/typography/Amount/Amount.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { cx } from '#utils/cx'\nimport { Numeral, signOf, type NumeralProps } from '#components/typography/Numeral'\nimport styles from './Amount.module.css'\n\n/** Narrow symbols several common currencies share: showing one alone would misstate the currency. */\nconst SHARED_NARROW_SYMBOLS = new Set(['$', '¥', 'kr', 'Kr', '₩', '₱', 'Rs'])\n\n/**\n * `symbol` when the locale has a symbol for the currency (AUD in en-AU → \"$\", GBP in en-GB\n * → \"£\"); otherwise `narrowSymbol` (GBP in en-AU → \"£\", not \"GBP\"), unless that narrow\n * symbol is shared (USD in en-AU stays \"USD\", never a bare \"$\" that reads as AUD).\n */\nfunction defaultCurrencyDisplay(\n locale: string,\n currency: string,\n): Intl.NumberFormatOptions['currencyDisplay'] {\n try {\n const symbolOf = (display: 'symbol' | 'narrowSymbol') =>\n new Intl.NumberFormat(locale, { style: 'currency', currency, currencyDisplay: display })\n .formatToParts(1)\n .find((part) => part.type === 'currency')?.value\n if (symbolOf('symbol') !== currency.toUpperCase()) return 'symbol'\n const narrow = symbolOf('narrowSymbol')\n return narrow !== undefined && !SHARED_NARROW_SYMBOLS.has(narrow) ? 'narrowSymbol' : 'symbol'\n } catch {\n return 'symbol'\n }\n}\n\nexport interface AmountProps extends Omit<NumeralProps, 'format' | 'signDisplay'> {\n /** ISO 4217 code. Default `AUD`. */\n currency?: string\n /** Fraction digits. Default 2 (0 for compact unless set). */\n precision?: number\n /** Show `+` on positive amounts (and `−` on negatives, as always). */\n showSign?: boolean\n /**\n * Accounting style: negatives in parentheses and in the critical tone. Non-negative\n * amounts reserve the width of the \")\" (invisibly), so decimals line up with the\n * bracketed negatives in a right-aligned column.\n */\n accounting?: boolean\n /** Short form for big figures: `$1.2M`. */\n compact?: boolean\n /** Extra `Intl.NumberFormat` options (e.g. `currencyDisplay: 'code'`). Applied last. */\n format?: Intl.NumberFormatOptions\n}\n\n/**\n * Money. Built on <Numeral>: tabular figures in the theme's numeric face, a true minus,\n * en-AU / AUD by default. A currency the locale has no symbol for shows its narrow symbol\n * when that is unambiguous (GBP → £ in en-AU) and its ISO code otherwise (USD in en-AU).\n *\n * <Amount value={-1234.5} accounting /> → ($1,234.50) in the critical tone\n */\nexport const Amount = forwardRef<HTMLDataElement, AmountProps>(function Amount(\n {\n value,\n currency = 'AUD',\n locale = 'en-AU',\n precision,\n showSign = false,\n accounting = false,\n compact = false,\n format,\n tone,\n suffix,\n className,\n ...rest\n },\n ref,\n) {\n const digits = precision ?? (compact ? undefined : 2)\n const options: Intl.NumberFormatOptions = {\n style: 'currency',\n currency,\n currencyDisplay: defaultCurrencyDisplay(locale, currency),\n ...(digits !== undefined\n ? { minimumFractionDigits: digits, maximumFractionDigits: digits }\n : {}),\n ...(compact\n ? { notation: 'compact', ...(digits === undefined ? { maximumFractionDigits: 1 } : {}) }\n : {}),\n ...(accounting ? { currencySign: 'accounting' } : {}),\n ...(showSign ? { signDisplay: 'exceptZero' } : {}),\n ...format,\n }\n // Reserve the \")\" of a negative so right-aligned decimals line up. An empty span whose\n // ::after draws a hidden \")\": it takes the width but never reaches copy/paste or AT.\n const pad = accounting && signOf(value) !== 'negative'\n const resolvedTone =\n accounting && signOf(value) === 'negative' && (tone === undefined || tone === 'default')\n ? 'critical'\n : tone\n return (\n <Numeral\n ref={ref}\n locale={locale}\n className={cx(styles.amount, className)}\n value={value}\n format={options}\n tone={resolvedTone}\n suffix={\n pad ? (\n <>\n <span className={styles.pad} data-accounting-pad=\"\" aria-hidden=\"true\" />\n {suffix}\n </>\n ) : (\n suffix\n )\n }\n data-accounting={accounting || undefined}\n {...rest}\n />\n )\n})\n"],"mappings":";;;;;;;AAMA,IAAMI,oBAAwB,IAAI,IAAI;CAAC;CAAK;CAAK;CAAM;CAAM;CAAK;CAAK;AAAI,CAAC;AAO5E,SAASC,EACP,GACA,GAC6C;CAC7C,IAAI;EACF,IAAMC,KAAY,MAChB,IAAI,KAAK,aAAaC,GAAQ;GAAE,OAAO;GAAY;GAAU,iBAAiBC;EAAQ,CAAC,CAAC,CACrF,cAAc,CAAC,CAAC,CAChB,MAAM,MAASC,EAAK,SAAS,UAAU,CAAC,EAAE;EAC/C,IAAIH,EAAS,QAAQ,MAAMI,EAAS,YAAY,GAAG,OAAO;EAC1D,IAAMC,IAASL,EAAS,cAAc;EACtC,OAAOK,MAAW,KAAA,KAAa,CAACP,EAAsB,IAAIO,CAAM,IAAI,iBAAiB;CACvF,QAAQ;EACN,OAAO;CACT;AACF;AA4BA,IAAaC,IAASC,EAAyC,SAC7D,EACE,UACA,cAAW,OACX,YAAS,SACT,cACA,cAAW,IACX,gBAAa,IACb,aAAU,IACV,WACA,SACA,WACA,cACA,GAAGC,KAEL,GACA;CACA,IAAMC,IAASC,MAAcC,IAAU,KAAA,IAAY,IAC7CC,IAAoC;EACxC,OAAO;EACP;EACA,iBAAiBb,EAAuBE,GAAQG,CAAQ;EACxD,GAAIK,MAAW,KAAA,IAEX,CAAC,IADD;GAAE,uBAAuBA;GAAQ,uBAAuBA;EAAO;EAEnE,GAAIE,IACA;GAAE,UAAU;GAAW,GAAIF,MAAW,KAAA,IAAY,EAAE,uBAAuB,EAAE,IAAI,CAAC;EAAG,IACrF,CAAC;EACL,GAAII,IAAa,EAAE,cAAc,aAAa,IAAI,CAAC;EACnD,GAAIC,IAAW,EAAE,aAAa,aAAa,IAAI,CAAC;EAChD,GAAGC;CACL,GAGMC,IAAMH,KAAcI,EAAOC,CAAK,MAAM,YACtCC,IACJN,KAAcI,EAAOC,CAAK,MAAM,eAAeE,MAAS,KAAA,KAAaA,MAAS,aAC1E,aACAA;CACN,OACE,kBAACC,GAAD;EACO;EACG;EACR,WAAWC,EAAG5B,EAAO,QAAQ6B,CAAS;EAC/B;EACP,QAAQX;EACR,MAAMO;EACN,QACEH,IACE,kBAAArB,GAAA,EAAA,UAAA,CACE,kBAAC,QAAD;GAAM,WAAWD,EAAO;GAAK,uBAAoB;GAAG,eAAY;EAAQ,CAAA,GACvE8B,CACD,EAAA,CAAA,IAEFA;EAGJ,mBAAiBX,KAAc,KAAA;EAC/B,GAAIL;CACL,CAAA;AAEL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Amount.module.js","names":["pad","Amount_module_default"],"sources":["../../../../src/components/typography/Amount/Amount.module.css"],"sourcesContent":["/*\n * Accounting columns: non-negative amounts end in an invisible \")\" (drawn by the pad's\n * ::after, so it never enters the text content) that keeps their decimals aligned with the\n * parenthesised negatives when right-aligned in a table. The pad sits inside Numeral's\n * proportional suffix run, the same setting as the real \")\".\n */\n.pad::after {\n content: ')';\n visibility: hidden;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
export type CodeTone = 'neutral' | 'accent';
|
|
3
|
+
export interface CodeProps extends HTMLAttributes<HTMLElement> {
|
|
4
|
+
/** `accent` only when the snippet is the thing being talked about. Default `neutral`. */
|
|
5
|
+
tone?: CodeTone;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Inline code: a token, a command, a file name. Sized relative to the surrounding
|
|
9
|
+
* text so it sits on the same line in a heading or a caption. For blocks, use CodeBlock.
|
|
10
|
+
*
|
|
11
|
+
* Run <Code>pnpm --filter @mitcsutt/kiln-ui test</Code> before pushing.
|
|
12
|
+
*/
|
|
13
|
+
export declare const Code: import("react").ForwardRefExoticComponent<CodeProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import t from "./Code.module.js";
|
|
3
|
+
import { forwardRef as n } from "react";
|
|
4
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/typography/Code/Code.tsx
|
|
6
|
+
var i = n(function({ tone: n = "neutral", className: i, ...a }, o) {
|
|
7
|
+
return /* @__PURE__ */ r("code", {
|
|
8
|
+
ref: o,
|
|
9
|
+
className: e(t.code, i),
|
|
10
|
+
"data-kiln-component": "",
|
|
11
|
+
"data-tone": n,
|
|
12
|
+
...a
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
export { i as Code };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=Code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Code.js","names":["styles","Code_module_default","Code","forwardRef","rest","cx","className","tone"],"sources":["../../../../src/components/typography/Code/Code.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\nimport { cx } from '#utils/cx'\nimport styles from './Code.module.css'\n\nexport type CodeTone = 'neutral' | 'accent'\n\nexport interface CodeProps extends HTMLAttributes<HTMLElement> {\n /** `accent` only when the snippet is the thing being talked about. Default `neutral`. */\n tone?: CodeTone\n}\n\n/**\n * Inline code: a token, a command, a file name. Sized relative to the surrounding\n * text so it sits on the same line in a heading or a caption. For blocks, use CodeBlock.\n *\n * Run <Code>pnpm --filter @mitcsutt/kiln-ui test</Code> before pushing.\n */\nexport const Code = forwardRef<HTMLElement, CodeProps>(function Code(\n { tone = 'neutral', className, ...rest },\n ref,\n) {\n return (\n <code\n ref={ref}\n className={cx(styles.code, className)}\n data-kiln-component=\"\"\n data-tone={tone}\n {...rest}\n />\n )\n})\n"],"mappings":";;;;;AAiBA,IAAaE,IAAOC,EAAmC,SACrD,EAAE,UAAO,WAAW,cAAW,GAAGC,KAClC,GACA;CACA,OACE,kBAAC,QAAD;EACO;EACL,WAAWC,EAAGL,EAAO,MAAMM,CAAS;EACpC,uBAAoB;EACpB,aAAWC;EACX,GAAIH;CACL,CAAA;AAEL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Code.module.js","names":["code","Code_module_default"],"sources":["../../../../src/components/typography/Code/Code.module.css"],"sourcesContent":["/*\n * Component tokens:\n * --code-radius default half of --radius-field\n * --code-bg default var(--color-surface-sunken)\n */\n.code {\n --_bg: var(--code-bg, var(--color-surface-sunken));\n --_ink: var(--color-ink);\n\n padding: 0.12em 0.36em;\n border-radius: var(--code-radius, calc(var(--radius-field) / 2));\n background: var(--_bg);\n color: var(--_ink);\n font-family: var(--font-mono);\n font-size: 0.84em;\n font-stretch: var(--mono-stretch);\n font-weight: 400;\n font-variant-ligatures: none;\n letter-spacing: 0;\n text-transform: none;\n overflow-wrap: anywhere;\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n\n.code[data-tone='accent'] {\n --_bg: var(--color-accent-soft);\n --_ink: var(--color-accent-text);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { type Responsive } from '../../../utils/responsive.js';
|
|
3
|
+
import type { HeadingLevel, HeadingSize } from './sizes.js';
|
|
4
|
+
export type { HeadingLevel, HeadingSize };
|
|
5
|
+
export type HeadingTone = 'default' | 'muted' | 'accent';
|
|
6
|
+
/** Line-length cap from the width tokens: `narrow` 32rem · `text` 42rem · `content` 68rem. */
|
|
7
|
+
export type HeadingMeasure = 'narrow' | 'text' | 'content';
|
|
8
|
+
export type HeadingElement = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span' | 'legend';
|
|
9
|
+
export interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {
|
|
10
|
+
/** Document outline level. Picks the element (`h1`–`h6`) and the default size. */
|
|
11
|
+
level?: HeadingLevel;
|
|
12
|
+
/**
|
|
13
|
+
* Visual size, independent of `level`. `display-*` steps use the theme's display role
|
|
14
|
+
* (Newsreader in Monograph, condensed caps in Fiesta, tight grotesk in Ledger); the rest
|
|
15
|
+
* use the heading role. Responsive.
|
|
16
|
+
*/
|
|
17
|
+
size?: Responsive<HeadingSize>;
|
|
18
|
+
tone?: HeadingTone;
|
|
19
|
+
/** `text-wrap: balance` — even line lengths. Default `true`. */
|
|
20
|
+
balance?: boolean;
|
|
21
|
+
/** Cap the line length with a `--width-*` token (`max-inline-size`). Default: none. */
|
|
22
|
+
measure?: HeadingMeasure;
|
|
23
|
+
/**
|
|
24
|
+
* Render a different element. When it isn't `h1`–`h6` the heading semantics are kept
|
|
25
|
+
* with `role="heading"` + `aria-level`.
|
|
26
|
+
*/
|
|
27
|
+
as?: HeadingElement;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A heading. `level` is the outline, `size` is the look — keep them independent.
|
|
31
|
+
*
|
|
32
|
+
* <Heading level={2} size={{ base: '2xl', md: 'display-sm' }}>Recent releases</Heading>
|
|
33
|
+
*/
|
|
34
|
+
export declare const Heading: import("react").ForwardRefExoticComponent<HeadingProps & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { BREAKPOINTS as t, baseValue as n, mergeStyles as r, responsiveVars as i } from "../../../utils/responsive.js";
|
|
3
|
+
import { DEFAULT_HEADING_SIZE as a } from "./sizes.js";
|
|
4
|
+
import o from "./Heading.module.js";
|
|
5
|
+
import { headingTag as s } from "../../../utils/heading.js";
|
|
6
|
+
import { forwardRef as c } from "react";
|
|
7
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/typography/Heading/Heading.tsx
|
|
9
|
+
var u = (e) => e.startsWith("display"), d = (e) => u(e) ? "display" : "heading", f = /* @__PURE__ */ new Set([
|
|
10
|
+
"h1",
|
|
11
|
+
"h2",
|
|
12
|
+
"h3",
|
|
13
|
+
"h4",
|
|
14
|
+
"h5",
|
|
15
|
+
"h6"
|
|
16
|
+
]);
|
|
17
|
+
function p(e) {
|
|
18
|
+
if (typeof e == "string") return {};
|
|
19
|
+
let n = {}, r;
|
|
20
|
+
for (let i of t) {
|
|
21
|
+
let t = e[i];
|
|
22
|
+
t !== void 0 && (r = d(t)), i !== "base" && r !== void 0 && (n[`data-role-${i}`] = r);
|
|
23
|
+
}
|
|
24
|
+
return n;
|
|
25
|
+
}
|
|
26
|
+
var m = c(function({ level: t = 2, size: c, tone: u = "default", balance: m = !0, measure: h, as: g, className: _, style: v, ...y }, b) {
|
|
27
|
+
let x = c ?? a[t], S = n(x) ?? a[t], C = g ?? s(t), w = !f.has(C);
|
|
28
|
+
return /* @__PURE__ */ l(C, {
|
|
29
|
+
ref: b,
|
|
30
|
+
className: e(o.heading, _),
|
|
31
|
+
"data-size": S,
|
|
32
|
+
"data-role": d(S),
|
|
33
|
+
"data-tone": u,
|
|
34
|
+
"data-balance": m ? void 0 : "false",
|
|
35
|
+
"data-measure": h,
|
|
36
|
+
role: w ? "heading" : void 0,
|
|
37
|
+
"aria-level": w ? t : void 0,
|
|
38
|
+
...p(x),
|
|
39
|
+
style: r(typeof x == "string" ? void 0 : i("heading-size", x, (e) => `var(--text-${e})`), v),
|
|
40
|
+
...y
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { m as Heading };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=Heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heading.js","names":["styles","Heading_module_default","isDisplay","s","roleOf","HEADING_TAGS","roleAttrs","size","attrs","current","bp","BREAKPOINTS","v","Heading","forwardRef","rest","resolved","DEFAULT_HEADING_SIZE","level","base","baseValue","Comp","as","headingTag","needsRole","cx","className","tone","balance","measure","mergeStyles","responsiveVars","style"],"sources":["../../../../src/components/typography/Heading/Heading.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\nimport { cx } from '#utils/cx'\nimport {\n BREAKPOINTS,\n baseValue,\n mergeStyles,\n responsiveVars,\n type Responsive,\n} from '#utils/responsive'\nimport { DEFAULT_HEADING_SIZE } from './sizes'\nimport styles from './Heading.module.css'\nimport type { HeadingLevel, HeadingSize } from './sizes'\nimport { headingTag } from '#utils/heading'\n\nexport type { HeadingLevel, HeadingSize }\nexport type HeadingTone = 'default' | 'muted' | 'accent'\n/** Line-length cap from the width tokens: `narrow` 32rem · `text` 42rem · `content` 68rem. */\nexport type HeadingMeasure = 'narrow' | 'text' | 'content'\nexport type HeadingElement =\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span' | 'legend'\n\nexport interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {\n /** Document outline level. Picks the element (`h1`–`h6`) and the default size. */\n level?: HeadingLevel\n /**\n * Visual size, independent of `level`. `display-*` steps use the theme's display role\n * (Newsreader in Monograph, condensed caps in Fiesta, tight grotesk in Ledger); the rest\n * use the heading role. Responsive.\n */\n size?: Responsive<HeadingSize>\n tone?: HeadingTone\n /** `text-wrap: balance` — even line lengths. Default `true`. */\n balance?: boolean\n /** Cap the line length with a `--width-*` token (`max-inline-size`). Default: none. */\n measure?: HeadingMeasure\n /**\n * Render a different element. When it isn't `h1`–`h6` the heading semantics are kept\n * with `role=\"heading\"` + `aria-level`.\n */\n as?: HeadingElement\n}\n\nconst isDisplay = (s: HeadingSize) => s.startsWith('display')\nconst roleOf = (s: HeadingSize) => (isDisplay(s) ? 'display' : 'heading')\nconst HEADING_TAGS = new Set(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])\n\n/**\n * Per-breakpoint role attributes (`data-role-md=\"display\"`), cascaded upward like\n * `responsiveVars`, so CSS can switch family/weight/tracking at each breakpoint.\n */\nfunction roleAttrs(size: Responsive<HeadingSize>): Record<string, string> {\n if (typeof size === 'string') return {}\n const attrs: Record<string, string> = {}\n let current: string | undefined\n for (const bp of BREAKPOINTS) {\n const v = size[bp]\n if (v !== undefined) current = roleOf(v)\n if (bp !== 'base' && current !== undefined) attrs[`data-role-${bp}`] = current\n }\n return attrs\n}\n\n/**\n * A heading. `level` is the outline, `size` is the look — keep them independent.\n *\n * <Heading level={2} size={{ base: '2xl', md: 'display-sm' }}>Recent releases</Heading>\n */\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(function Heading(\n { level = 2, size, tone = 'default', balance = true, measure, as, className, style, ...rest },\n ref,\n) {\n const resolved = size ?? DEFAULT_HEADING_SIZE[level]\n const base = baseValue(resolved) ?? DEFAULT_HEADING_SIZE[level]\n const Comp = as ?? headingTag(level)\n const needsRole = !HEADING_TAGS.has(Comp)\n return (\n <Comp\n // @ts-expect-error — polymorphic ref across a union of intrinsic elements is safe here\n ref={ref}\n className={cx(styles.heading, className)}\n data-size={base}\n data-role={roleOf(base)}\n data-tone={tone}\n data-balance={balance ? undefined : 'false'}\n data-measure={measure}\n role={needsRole ? 'heading' : undefined}\n aria-level={needsRole ? level : undefined}\n {...roleAttrs(resolved)}\n style={mergeStyles(\n typeof resolved === 'string'\n ? undefined\n : responsiveVars('heading-size', resolved, (s) => `var(--text-${s})`),\n style,\n )}\n {...rest}\n />\n )\n})\n"],"mappings":";;;;;;;;AA0CA,IAAME,KAAa,MAAmBC,EAAE,WAAW,SAAS,GACtDC,KAAU,MAAoBF,EAAUC,CAAC,IAAI,YAAY,WACzDE,oBAAe,IAAI,IAAI;CAAC;CAAM;CAAM;CAAM;CAAM;CAAM;AAAI,CAAC;AAMjE,SAASC,EAAU,GAAuD;CACxE,IAAI,OAAOC,KAAS,UAAU,OAAO,CAAC;CACtC,IAAMC,IAAgC,CAAC,GACnCC;CACJ,KAAK,IAAMC,KAAMC,GAAa;EAC5B,IAAMC,IAAIL,EAAKG;EAEf,AADIE,MAAM,KAAA,MAAW,IAAUR,EAAOQ,CAAC,IACnCF,MAAO,UAAUD,MAAY,KAAA,MAAW,EAAM,aAAaC,OAAQD;CACzE;CACA,OAAOD;AACT;AAOA,IAAaK,IAAUC,EAA6C,SAClE,EAAE,WAAQ,GAAG,SAAM,UAAO,WAAW,aAAU,IAAM,YAAS,OAAI,cAAW,UAAO,GAAGC,KACvF,GACA;CACA,IAAMC,IAAWT,KAAQU,EAAqBC,IACxCC,IAAOC,EAAUJ,CAAQ,KAAKC,EAAqBC,IACnDG,IAAOC,KAAMC,EAAWL,CAAK,GAC7BM,IAAY,CAACnB,EAAa,IAAIgB,CAAI;CACxC,OACE,kBAACA,GAAD;EAEO;EACL,WAAWI,EAAGzB,EAAO,SAAS0B,CAAS;EACvC,aAAWP;EACX,aAAWf,EAAOe,CAAI;EACtB,aAAWQ;EACX,gBAAcC,IAAU,KAAA,IAAY;EACpC,gBAAcC;EACd,MAAML,IAAY,YAAY,KAAA;EAC9B,cAAYA,IAAYN,IAAQ,KAAA;EAChC,GAAIZ,EAAUU,CAAQ;EACtB,OAAOc,EACL,OAAOd,KAAa,WAChB,KAAA,IACAe,EAAe,gBAAgBf,IAAW,MAAM,cAAcb,EAAE,EAAE,GACtE6B,CACF;EACA,GAAIjB;CACL,CAAA;AAEL,CAAC"}
|