@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 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedControl.js","names":["styles","SegmentedControl_module_default","IconOnlyContext","createContext","SegmentedControlItem","forwardRef","rest","iconOnly","useContext","ToggleGroup","cx","className","icon","breakpointAttrs","value","name","toAttr","attrs","base","bp","BREAKPOINTS","v","childValues","values","Children","children","isValidElement","child","SegmentedControlRoot","valueProp","invalidProp","readOnlyProp","disabledProp","idProp","describedByProp","ariaInvalid","labelledByProp","field","useResolvedField","handleBlur","useFocusLeave","onBlur","options","o","uncontrolled","setUncontrolled","useState","defaultValue","handleChange","useCallback","next","onValueChange","index","vars","size","fullWidth","mergeStyles","style","SegmentedControl","markFieldAware"],"sources":["../../../../src/components/actions/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useState,\n type ComponentPropsWithoutRef,\n type CSSProperties,\n type ReactNode,\n} from 'react'\nimport { ToggleGroup } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport { BREAKPOINTS, mergeStyles, type Responsive } from '#utils/responsive'\nimport type { Size } from '#utils/tokens'\nimport { markFieldAware, useResolvedField } from '#components/inputs/internal/FieldContext'\nimport { useFocusLeave } from '#components/inputs/CheckboxGroup/choice'\nimport styles from './SegmentedControl.module.css'\n\nexport interface SegmentedControlOption {\n value: string\n label: string\n icon?: ReactNode\n disabled?: boolean\n}\n\ntype RootPrimitiveProps = Omit<\n ComponentPropsWithoutRef<typeof ToggleGroup.Root>,\n 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'children' | 'asChild'\n>\n\nexport interface SegmentedControlProps extends RootPrimitiveProps {\n /** Segments as data. Alternatively pass `SegmentedControl.Item` children. */\n options?: readonly SegmentedControlOption[]\n children?: ReactNode\n /** Controlled selected value. */\n value?: string\n /** Initial value when uncontrolled. Defaults to the first segment. */\n defaultValue?: string\n onValueChange?: (value: string) => void\n /** Control size. Responsive: `{ base: 'lg', md: 'md' }` for a bigger touch target on phones. */\n size?: Responsive<Size>\n /**\n * Stretch to the container's width. Segments are always equal widths. Responsive:\n * `{ base: true, md: false }` fills a phone screen and sits inline from `md` up.\n */\n fullWidth?: Responsive<boolean>\n /** Show only icons; labels become each segment's accessible name. */\n iconOnly?: boolean\n /** Emits a hidden input with the selected value, for native form submission. */\n name?: string\n /** Critical edge + `aria-invalid`. Inside a `<Field error>` this is set for you. */\n invalid?: boolean\n /** Focusable but not editable: sets `aria-readonly` and ignores selection changes. */\n readOnly?: boolean\n}\n\nexport interface SegmentedControlItemProps extends Omit<\n ComponentPropsWithoutRef<typeof ToggleGroup.Item>,\n 'children'\n> {\n value: string\n /** Visible label (or accessible name when the control is `iconOnly`). */\n children: ReactNode\n icon?: ReactNode\n}\n\nconst IconOnlyContext = createContext(false)\n\nconst SegmentedControlItem = forwardRef<HTMLButtonElement, SegmentedControlItemProps>(\n function SegmentedControlItem({ icon, className, children, ...rest }, ref) {\n const iconOnly = useContext(IconOnlyContext)\n return (\n <ToggleGroup.Item ref={ref} className={cx(styles.item, className)} {...rest}>\n {icon ? (\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <span className={iconOnly ? styles.srOnly : styles.label}>{children}</span>\n </ToggleGroup.Item>\n )\n },\n)\n\n/**\n * Per-breakpoint data attributes: the base value on `data-<name>`, and each explicitly\n * set larger breakpoint on `data-<name>-<bp>`. CSS applies them in mobile-first media\n * queries, so a later breakpoint overrides an earlier one.\n */\nfunction breakpointAttrs<T extends string | boolean>(\n name: string,\n value: Responsive<T>,\n toAttr: (v: T) => string | undefined,\n): Record<string, string | undefined> {\n if (typeof value !== 'object') return { [`data-${name}`]: toAttr(value) }\n const attrs: Record<string, string | undefined> = {}\n const base = value.base\n attrs[`data-${name}`] = base === undefined ? undefined : toAttr(base)\n for (const bp of BREAKPOINTS) {\n const v = value[bp]\n if (bp !== 'base' && v !== undefined) attrs[`data-${name}-${bp}`] = String(v)\n }\n return attrs\n}\n\nfunction childValues(children: ReactNode): string[] {\n const values: string[] = []\n Children.forEach(children, (child) => {\n if (isValidElement<{ value?: unknown }>(child) && typeof child.props.value === 'string') {\n values.push(child.props.value)\n }\n })\n return values\n}\n\n/**\n * Single-select segmented control: pick one of 2–5 peer views or periods\n * (Month / Quarter / Year · Board / Table / Timeline). One segment is always selected —\n * clicking the current one does nothing.\n *\n * Radix ToggleGroup underneath: segments are `role=\"radio\"` inside a `radiogroup`,\n * arrow keys move focus (roving tabindex), Space/Enter selects. Give the group a name\n * with `aria-label`.\n *\n * Segments are equal widths, so the selection indicator is pure CSS — it slides by\n * index with no measuring, and renders correctly on the server.\n *\n * Field-aware: inside a `<Field>` it is labelled by the Field's label and picks up its\n * description, error, `disabled`, `readOnly` and `validating` (see `SegmentedField`).\n * `onBlur` fires once, when focus leaves the whole control.\n */\nconst SegmentedControlRoot = forwardRef<HTMLDivElement, SegmentedControlProps>(\n function SegmentedControl(\n {\n options,\n children,\n value: valueProp,\n defaultValue,\n onValueChange,\n size = 'md',\n fullWidth = false,\n iconOnly = false,\n name,\n invalid: invalidProp,\n readOnly: readOnlyProp,\n disabled: disabledProp,\n id: idProp,\n onBlur,\n className,\n style,\n 'aria-describedby': describedByProp,\n 'aria-invalid': ariaInvalid,\n 'aria-labelledby': labelledByProp,\n ...rest\n },\n ref,\n ) {\n const field = useResolvedField({\n id: idProp,\n describedBy: describedByProp,\n invalid: invalidProp,\n ariaInvalid,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n })\n const handleBlur = useFocusLeave(onBlur)\n const values = options ? options.map((o) => o.value) : childValues(children)\n const [uncontrolled, setUncontrolled] = useState<string | undefined>(defaultValue ?? values[0])\n const value = valueProp ?? uncontrolled\n\n const handleChange = useCallback(\n (next: string) => {\n // ToggleGroup lets you deselect the pressed item; a segmented control can't.\n if (!next || field.readOnly) return\n if (valueProp === undefined) setUncontrolled(next)\n onValueChange?.(next)\n },\n [valueProp, onValueChange, field.readOnly],\n )\n\n const index = value === undefined ? -1 : values.indexOf(value)\n const vars = {\n '--_count': Math.max(values.length, 1),\n '--_index': Math.max(index, 0),\n } as CSSProperties\n\n return (\n <IconOnlyContext.Provider value={iconOnly}>\n <ToggleGroup.Root\n ref={ref}\n type=\"single\"\n role=\"radiogroup\"\n value={value ?? ''}\n onValueChange={handleChange}\n id={field.id}\n disabled={field.disabled}\n aria-labelledby={labelledByProp ?? (rest['aria-label'] ? undefined : field.labelId)}\n aria-describedby={field.describedBy}\n aria-invalid={field.invalid || undefined}\n aria-required={field.required || undefined}\n aria-readonly={field.readOnly || undefined}\n aria-busy={field.busy || undefined}\n data-invalid={field.invalid || undefined}\n data-readonly={field.readOnly || undefined}\n onBlur={handleBlur}\n className={cx(styles.root, className)}\n {...breakpointAttrs('size', size, String)}\n {...breakpointAttrs('full-width', fullWidth, (v) => (v ? '' : undefined))}\n data-icon-only={iconOnly || undefined}\n style={mergeStyles(vars, style)}\n {...rest}\n >\n {index >= 0 ? <span className={styles.indicator} aria-hidden=\"true\" /> : null}\n {options\n ? options.map((o) => (\n <SegmentedControlItem\n key={o.value}\n value={o.value}\n icon={o.icon}\n disabled={o.disabled}\n >\n {o.label}\n </SegmentedControlItem>\n ))\n : children}\n {name && value ? (\n <input type=\"hidden\" name={name} value={value} disabled={field.disabled || undefined} />\n ) : null}\n </ToggleGroup.Root>\n </IconOnlyContext.Provider>\n )\n },\n)\n\nexport const SegmentedControl = markFieldAware(\n Object.assign(SegmentedControlRoot, { Item: SegmentedControlItem }),\n)\n"],"mappings":";;;;;;;;;AAoEA,IAAME,IAAkBC,EAAc,EAAK,GAErCC,IAAuBC,EAC3B,SAA8B,EAAE,SAAM,cAAW,aAAU,GAAGC,KAAQ,GAAK;CACzE,IAAMC,IAAWC,EAAWN,CAAe;CAC3C,OACE,kBAACO,EAAY,MAAb;EAAuB;EAAK,WAAWC,EAAGV,EAAO,MAAMW,CAAS;EAAG,GAAIL;EAAvE,UAAA,CACGM,IACC,kBAAC,QAAD;GAAM,WAAWZ,EAAO;GAAM,eAAY;GACvC,UAAAY;EACG,CAAA,IACJ,MACJ,kBAAC,QAAD;GAAM,WAAWL,IAAWP,EAAO,SAASA,EAAO;GAAQ;EAAe,CAAA,CAC1D;;AAEtB,CACF;AAOA,SAASa,EACP,GACA,GACA,GACoC;CACpC,IAAI,OAAOC,KAAU,UAAU,OAAO,GAAG,QAAQC,MAASC,EAAOF,CAAK,EAAE;CACxE,IAAMG,IAA4C,CAAC,GAC7CC,IAAOJ,EAAM;CACnB,EAAM,QAAQC,OAAUG,MAAS,KAAA,IAAY,KAAA,IAAYF,EAAOE,CAAI;CACpE,KAAK,IAAMC,KAAMC,GAAa;EAC5B,IAAMC,IAAIP,EAAMK;EAChB,AAAIA,MAAO,UAAUE,MAAM,KAAA,MAAW,EAAM,QAAQN,EAAK,GAAGI,OAAQ,OAAOE,CAAC;CAC9E;CACA,OAAOJ;AACT;AAEA,SAASK,EAAY,GAA+B;CAClD,IAAMC,IAAmB,CAAC;CAM1B,OALAC,EAAS,QAAQC,IAAW,MAAU;EACpC,AAAIC,EAAoCC,CAAK,KAAK,OAAOA,EAAM,MAAM,SAAU,YAC7EJ,EAAO,KAAKI,EAAM,MAAM,KAAK;CAEjC,CAAC,GACMJ;AACT;AAkBA,IAAMK,IAAuBvB,EAC3B,SACE,EACE,YACA,aACA,OAAOwB,GACP,iBACA,kBACA,UAAO,MACP,eAAY,IACZ,cAAW,IACX,SACA,SAASC,GACT,UAAUC,GACV,UAAUC,GACV,IAAIC,GACJ,WACA,cACA,UACA,oBAAoBC,GACpB,gBAAgBC,GAChB,mBAAmBC,GACnB,GAAG9B,KAEL,GACA;CACA,IAAM+B,IAAQC,EAAiB;EAC7B,IAAIL;EACJ,aAAaC;EACb,SAASJ;EACT;EACA,UAAUE;EACV,UAAUD;CACZ,CAAC,GACKQ,IAAaC,EAAcC,CAAM,GACjClB,IAASmB,IAAUA,EAAQ,KAAK,MAAMC,EAAE,KAAK,IAAIrB,EAAYG,CAAQ,GACrE,CAACmB,GAAcC,KAAmBC,EAA6BC,KAAgBxB,EAAO,EAAE,GACxFT,IAAQe,KAAae,GAErBI,IAAeC,GAClB,MAAiB;EAEhB,AAAKC,KAAQ,GAAM,aACfrB,MAAc,KAAA,KAAWgB,EAAgBK,CAAI,GACjDC,IAAgBD,CAAI;CACtB,GACA;EAACrB;EAAWsB;EAAed,EAAM;CAAQ,CAC3C,GAEMe,IAAQtC,MAAU,KAAA,IAAY,KAAKS,EAAO,QAAQT,CAAK,GACvDuC,IAAO;EACX,YAAY,KAAK,IAAI9B,EAAO,QAAQ,CAAC;EACrC,YAAY,KAAK,IAAI6B,GAAO,CAAC;CAC/B;CAEA,OACE,kBAAClD,EAAgB,UAAjB;EAA0B,OAAOK;EAC/B,UAAA,kBAACE,EAAY,MAAb;GACO;GACL,MAAK;GACL,MAAK;GACL,OAAOK,KAAS;GAChB,eAAekC;GACf,IAAIX,EAAM;GACV,UAAUA,EAAM;GAChB,mBAAiBD,MAAmB9B,EAAK,gBAAgB,KAAA,IAAY+B,EAAM;GAC3E,oBAAkBA,EAAM;GACxB,gBAAcA,EAAM,WAAW,KAAA;GAC/B,iBAAeA,EAAM,YAAY,KAAA;GACjC,iBAAeA,EAAM,YAAY,KAAA;GACjC,aAAWA,EAAM,QAAQ,KAAA;GACzB,gBAAcA,EAAM,WAAW,KAAA;GAC/B,iBAAeA,EAAM,YAAY,KAAA;GACjC,QAAQE;GACR,WAAW7B,EAAGV,EAAO,MAAMW,CAAS;GACpC,GAAIE,EAAgB,QAAQyC,GAAM,MAAM;GACxC,GAAIzC,EAAgB,cAAc0C,IAAY,MAAOlC,IAAI,KAAK,KAAA,CAAU;GACxE,kBAAgBd,KAAY,KAAA;GAC5B,OAAOiD,EAAYH,GAAMI,CAAK;GAC9B,GAAInD;GAtBN,UAAA;IAwBG8C,KAAS,IAAI,kBAAC,QAAD;KAAM,WAAWpD,EAAO;KAAW,eAAY;IAAQ,CAAA,IAAI;IACxE0C,IACGA,EAAQ,KAAK,MACX,kBAACtC,GAAD;KAEE,OAAOuC,EAAE;KACT,MAAMA,EAAE;KACR,UAAUA,EAAE;KAEX,UAAAA,EAAE;IACiB,GANfA,EAAE,KAMa,CACvB,IACDlB;IACHV,KAAQD,IACP,kBAAC,SAAD;KAAO,MAAK;KAAe;KAAa;KAAO,UAAUuB,EAAM,YAAY,KAAA;IAAY,CAAA,IACrF;GACY;;CACM,CAAA;AAE9B,CACF,GAEaqB,IAAmBC,EAC9B,OAAO,OAAO/B,GAAsB,EAAE,MAAMxB,EAAqB,CAAC,CACpE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/components/actions/SegmentedControl/SegmentedControl.module.css
|
|
2
|
+
var e = "kiln-SegmentedControl__root", t = "kiln-SegmentedControl__item", n = "kiln-SegmentedControl__indicator", r = "kiln-SegmentedControl__icon", i = "kiln-SegmentedControl__label", a = "kiln-SegmentedControl__srOnly", o = {
|
|
3
|
+
root: e,
|
|
4
|
+
item: t,
|
|
5
|
+
indicator: n,
|
|
6
|
+
icon: r,
|
|
7
|
+
label: i,
|
|
8
|
+
srOnly: a
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { o as default, r as icon, n as indicator, t as item, i as label, e as root, a as srOnly };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=SegmentedControl.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedControl.module.js","names":["root","item","indicator","icon","label","srOnly","SegmentedControl_module_default"],"sources":["../../../../src/components/actions/SegmentedControl/SegmentedControl.module.css"],"sourcesContent":["/*\n * Component tokens:\n * --segmented-radius default var(--radius-action)\n * --segmented-track default var(--color-surface-sunken)\n * --segmented-indicator default var(--color-surface-raised)\n * --segmented-indicator-line default var(--color-line-strong)\n * --segmented-indicator-shadow default var(--shadow-active) (flat except Fiesta)\n * --segmented-line default var(--color-line) — the track's edge\n *\n * Invalid (inside a `<Field error>`) turns the track's edge critical — the only change.\n *\n * Geometry: every segment is 1fr of an inline grid, so the indicator is exactly\n * (track − padding) / count wide and slides by --_index × its own width. --_count and\n * --_index are written inline by the component on this element.\n */\n.root {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n --_pad: calc(var(--space-1) * 0.75);\n --_r: var(--segmented-radius, var(--radius-action));\n\n position: relative;\n isolation: isolate;\n display: inline-grid;\n grid-auto-flow: column;\n grid-auto-columns: 1fr;\n max-inline-size: 100%;\n min-block-size: var(--_h);\n padding: var(--_pad);\n border: var(--border-width) solid var(--segmented-line, var(--color-line));\n border-radius: var(--_r);\n background: var(--segmented-track, var(--color-surface-sunken));\n vertical-align: middle;\n}\n\n.root[data-size='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n}\n.root[data-size='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n}\n\n.root[data-invalid] {\n border-color: var(--tone-critical);\n}\n\n.root[data-readonly] .item {\n cursor: default;\n}\n\n.root[data-full-width] {\n display: grid;\n inline-size: 100%;\n}\n\n/*\n * Responsive size / fullWidth: `data-size-<bp>` and `data-full-width-<bp>` are only\n * written for breakpoints the consumer set; mobile-first order lets each override the last.\n */\n@media (min-width: 40em) {\n .root[data-size-sm='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-sm='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-sm='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-sm='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-sm='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n@media (min-width: 48em) {\n .root[data-size-md='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-md='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-md='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-md='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-md='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n@media (min-width: 64em) {\n .root[data-size-lg='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-lg='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-lg='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-lg='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-lg='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n@media (min-width: 80em) {\n .root[data-size-xl='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-xl='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-xl='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-xl='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-xl='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n\n/* Icon-only segments are square at every size (after the responsive sizes so it wins). */\n.root[data-icon-only] {\n --_px: 0px;\n}\n\n.indicator {\n position: absolute;\n z-index: -1;\n inset-block: var(--_pad);\n inset-inline-start: var(--_pad);\n inline-size: calc((100% - 2 * var(--_pad)) / var(--_count));\n border: var(--border-width) solid var(--segmented-indicator-line, var(--color-line-strong));\n border-radius: max(calc(var(--_r) - var(--_pad)), 2px);\n background: var(--segmented-indicator, var(--color-surface-raised));\n box-shadow: var(--segmented-indicator-shadow, var(--shadow-active));\n translate: calc(var(--_index) * 100%) 0;\n transition: translate var(--dur-3) var(--ease-spring);\n}\n[dir='rtl'] .indicator {\n translate: calc(var(--_index) * -100%) 0;\n}\n\n.item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.45em;\n min-inline-size: calc(var(--_h) - 2 * var(--_pad));\n padding-inline: var(--_px);\n padding-block: 0;\n border: 0;\n border-radius: max(calc(var(--_r) - var(--_pad)), 2px);\n background: transparent;\n color: var(--color-ink-muted);\n font-family: var(--font-text);\n font-size: var(--_fs);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n line-height: 1;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n transition: color var(--dur-2) var(--ease-out);\n}\n\n@media (hover: hover) {\n .item:hover:not(:disabled) {\n color: var(--color-ink);\n }\n}\n\n.item[data-state='on'] {\n color: var(--color-ink);\n cursor: default;\n}\n\n.item:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 1px;\n}\n\n.item:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n\n.icon {\n display: inline-flex;\n font-size: 1.2em;\n}\n.root[data-icon-only] .icon {\n font-size: var(--_icon);\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.srOnly {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .indicator {\n transition: none;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import { Toggle } from 'radix-ui';
|
|
3
|
+
export type ToggleChipSize = 'sm' | 'md';
|
|
4
|
+
export interface ToggleChipProps extends ComponentPropsWithoutRef<typeof Toggle.Root> {
|
|
5
|
+
size?: ToggleChipSize;
|
|
6
|
+
/** A leading glyph. Keep it meaningful — one icon per row at most. */
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
/** How many items the filter matches. Rendered in tabular figures after the label. */
|
|
9
|
+
count?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A pressable filter chip — an on/off switch that reads as a word ("Mine", "Overdue
|
|
13
|
+
* only"). Built on Radix Toggle, so it is a real `<button aria-pressed>`; use
|
|
14
|
+
* `pressed`/`onPressedChange` (controlled) or `defaultPressed`.
|
|
15
|
+
*
|
|
16
|
+
* Pressed chips take the accent's soft fill. Where the theme has a hard press shadow
|
|
17
|
+
* (Fiesta), resting chips stand proud and pressed chips sit flat — literally pushed in.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ToggleChip: import("react").ForwardRefExoticComponent<ToggleChipProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import t from "./chip.module.js";
|
|
3
|
+
import { forwardRef as n } from "react";
|
|
4
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
+
import { Toggle as a } from "radix-ui";
|
|
6
|
+
//#region src/components/actions/ToggleChip/ToggleChip.tsx
|
|
7
|
+
var o = n(function({ size: n = "md", icon: o, count: s, className: c, children: l, type: u, ...d }, f) {
|
|
8
|
+
return /* @__PURE__ */ i(a.Root, {
|
|
9
|
+
ref: f,
|
|
10
|
+
type: u ?? "button",
|
|
11
|
+
className: e(t.chip, c),
|
|
12
|
+
"data-size": n,
|
|
13
|
+
...d,
|
|
14
|
+
children: [
|
|
15
|
+
o ? /* @__PURE__ */ r("span", {
|
|
16
|
+
className: t.icon,
|
|
17
|
+
"aria-hidden": "true",
|
|
18
|
+
children: o
|
|
19
|
+
}) : null,
|
|
20
|
+
/* @__PURE__ */ r("span", {
|
|
21
|
+
className: t.label,
|
|
22
|
+
children: l
|
|
23
|
+
}),
|
|
24
|
+
s === void 0 ? null : /* @__PURE__ */ r("span", {
|
|
25
|
+
className: t.count,
|
|
26
|
+
children: s
|
|
27
|
+
})
|
|
28
|
+
]
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//#endregion
|
|
32
|
+
export { o as ToggleChip };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=ToggleChip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleChip.js","names":["styles","chip_module_default","ToggleChip","forwardRef","rest","Toggle","type","cx","className","size","icon","count"],"sources":["../../../../src/components/actions/ToggleChip/ToggleChip.tsx"],"sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react'\nimport { Toggle } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport styles from './chip.module.css'\n\nexport type ToggleChipSize = 'sm' | 'md'\n\nexport interface ToggleChipProps extends ComponentPropsWithoutRef<typeof Toggle.Root> {\n size?: ToggleChipSize\n /** A leading glyph. Keep it meaningful — one icon per row at most. */\n icon?: ReactNode\n /** How many items the filter matches. Rendered in tabular figures after the label. */\n count?: number\n}\n\n/**\n * A pressable filter chip — an on/off switch that reads as a word (\"Mine\", \"Overdue\n * only\"). Built on Radix Toggle, so it is a real `<button aria-pressed>`; use\n * `pressed`/`onPressedChange` (controlled) or `defaultPressed`.\n *\n * Pressed chips take the accent's soft fill. Where the theme has a hard press shadow\n * (Fiesta), resting chips stand proud and pressed chips sit flat — literally pushed in.\n */\nexport const ToggleChip = forwardRef<HTMLButtonElement, ToggleChipProps>(function ToggleChip(\n { size = 'md', icon, count, className, children, type, ...rest },\n ref,\n) {\n return (\n <Toggle.Root\n ref={ref}\n type={type ?? 'button'}\n className={cx(styles.chip, className)}\n data-size={size}\n {...rest}\n >\n {icon ? (\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <span className={styles.label}>{children}</span>\n {count !== undefined ? <span className={styles.count}>{count}</span> : null}\n </Toggle.Root>\n )\n})\n"],"mappings":";;;;;;AAuBA,IAAaE,IAAaC,EAA+C,SACvE,EAAE,UAAO,MAAM,SAAM,UAAO,cAAW,aAAU,SAAM,GAAGC,KAC1D,GACA;CACA,OACE,kBAACC,EAAO,MAAR;EACO;EACL,MAAMC,KAAQ;EACd,WAAWC,EAAGP,EAAO,MAAMQ,CAAS;EACpC,aAAWC;EACX,GAAIL;EALN,UAAA;GAOGM,IACC,kBAAC,QAAD;IAAM,WAAWV,EAAO;IAAM,eAAY;IACvC,UAAAU;GACG,CAAA,IACJ;GACJ,kBAAC,QAAD;IAAM,WAAWV,EAAO;IAAQ;GAAe,CAAA;GAC9CW,MAAU,KAAA,IAA4D,OAAhD,kBAAC,QAAD;IAAM,WAAWX,EAAO;IAAQ,UAAAW;GAAY,CAAA;EACxD;;AAEjB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/actions/ToggleChip/chip.module.css
|
|
2
|
+
var e = "kiln-chip__chip", t = "kiln-chip__icon", n = "kiln-chip__count", r = {
|
|
3
|
+
chip: e,
|
|
4
|
+
icon: t,
|
|
5
|
+
count: n
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { e as chip, n as count, r as default, t as icon };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=chip.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.module.js","names":["chip","icon","count","chip_module_default"],"sources":["../../../../src/components/actions/ToggleChip/chip.module.css"],"sourcesContent":["/*\n * The chip look, shared by ToggleChip (Radix Toggle) and ChipGroup's items (Radix\n * ToggleGroup items) — both expose `data-state=\"on|off\"`, so one module styles both.\n * Internal: import it only from those two components.\n *\n * Component tokens:\n * --chip-radius default var(--radius-chip)\n * --chip-shadow resting shadow; default var(--shadow-active) (flat except Fiesta)\n * --chip-pressed-bg default var(--color-accent-soft)\n * --chip-pressed-ink default var(--color-accent-text)\n * --chip-pressed-line default var(--color-accent)\n */\n.chip {\n --_h: var(--control-sm);\n --_px: var(--space-3);\n --_fs: var(--text-sm);\n --_bg: transparent;\n --_ink: var(--color-ink-muted);\n --_line: var(--color-line-strong);\n --_shadow: var(--chip-shadow, var(--shadow-active));\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n min-block-size: var(--_h);\n padding-inline: var(--_px);\n padding-block: 0;\n border: var(--border-width) solid var(--_line);\n border-radius: var(--chip-radius, var(--radius-chip));\n background: var(--_bg);\n color: var(--_ink);\n box-shadow: var(--_shadow);\n font-family: var(--font-text);\n font-size: var(--_fs);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n line-height: 1;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n transition:\n background-color var(--dur-1) var(--ease-out),\n border-color var(--dur-1) var(--ease-out),\n color var(--dur-1) var(--ease-out),\n box-shadow var(--dur-1) var(--ease-out),\n translate var(--dur-2) var(--ease-spring);\n}\n\n/* Grow the hit area to a comfortable touch target without changing the visual size. */\n.chip::after {\n content: '';\n position: absolute;\n inset-inline: 0;\n inset-block: min(0px, calc((var(--_h) - var(--control-lg)) / 2));\n}\n\n.chip[data-size='sm'] {\n --_h: calc(var(--control-sm) * 0.8125);\n --_px: var(--space-2);\n --_fs: var(--text-xs);\n}\n\n@media (hover: hover) {\n .chip:hover:not(:disabled) {\n --_ink: var(--color-ink);\n --_line: var(--color-ink-subtle);\n }\n}\n\n.chip[data-state='on'] {\n --_bg: var(--chip-pressed-bg, var(--color-accent-soft));\n --_ink: var(--chip-pressed-ink, var(--color-accent-text));\n --_line: var(--chip-pressed-line, var(--color-accent));\n --_shadow: none;\n\n translate: var(--active-shift) var(--active-shift);\n}\n@media (hover: hover) {\n .chip[data-state='on']:hover:not(:disabled) {\n --_ink: var(--chip-pressed-ink, var(--color-accent-text));\n --_line: var(--chip-pressed-line, var(--color-accent));\n }\n}\n\n/* In an invalid ChipGroup the resting chips take the critical edge; pressed ones keep theirs. */\n.chip[data-invalid]:not([data-state='on']) {\n --_line: var(--tone-critical);\n}\n\n.chip:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 2px;\n}\n\n.chip:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n box-shadow: none;\n}\n\n.icon {\n display: inline-flex;\n font-size: 1.15em;\n margin-inline-start: -0.15em;\n}\n\n.count {\n display: inline-grid;\n place-items: center;\n min-inline-size: 1.6em;\n padding-inline: 0.35em;\n margin-inline-end: -0.35em;\n block-size: 1.6em;\n border-radius: var(--chip-radius, var(--radius-chip));\n background: var(--color-surface-sunken);\n color: var(--color-ink-muted);\n font-family: var(--font-numeric);\n font-stretch: var(--numeric-stretch);\n font-variant-numeric: tabular-nums lining-nums;\n font-size: 0.85em;\n font-weight: var(--label-weight);\n letter-spacing: 0;\n transition:\n background-color var(--dur-1) var(--ease-out),\n color var(--dur-1) var(--ease-out);\n}\n.chip[data-state='on'] .count {\n background: var(--chip-pressed-line, var(--color-accent));\n color: var(--color-accent-ink);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import type { AvatarColor, AvatarSize } from './avatarUtils.js';
|
|
3
|
+
export interface AvatarProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
|
|
4
|
+
/** Image URL. While loading, or if it fails, the initials fallback shows. */
|
|
5
|
+
src?: string;
|
|
6
|
+
/** Accessible name. Defaults to `name`. Pass `""` when a visible label sits beside it. */
|
|
7
|
+
alt?: string;
|
|
8
|
+
/** Person or thing. Drives the initials and the fallback colour. */
|
|
9
|
+
name: string;
|
|
10
|
+
/** Default `md`, or the enclosing `AvatarGroup`'s size. */
|
|
11
|
+
size?: AvatarSize;
|
|
12
|
+
/** Override the name-derived fallback colour (e.g. a member's assigned colour). */
|
|
13
|
+
color?: AvatarColor;
|
|
14
|
+
/** A highlight ring — marks "you" in a leaderboard or roster. */
|
|
15
|
+
ring?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Replace the derived initials — a company's short code ("NWS"), a logo's letters. Up to three
|
|
18
|
+
* characters; three are set smaller so they fit the frame.
|
|
19
|
+
*/
|
|
20
|
+
initials?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A person or entity. Image with an initials fallback on a deterministic categorical
|
|
24
|
+
* colour. Shape comes from `--radius-avatar` (rounded square in Monograph/Ledger, round in
|
|
25
|
+
* Fiesta).
|
|
26
|
+
*/
|
|
27
|
+
export declare const Avatar: import("react").ForwardRefExoticComponent<AvatarProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { AvatarSizeContext as t } from "./AvatarContext.js";
|
|
3
|
+
import { avatarColor as n, getInitials as r } from "./avatarUtils.js";
|
|
4
|
+
import i from "./Avatar.module.js";
|
|
5
|
+
import { forwardRef as a, useContext as o } from "react";
|
|
6
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
|
+
import { Avatar as l } from "radix-ui";
|
|
8
|
+
//#region src/components/display/Avatar/Avatar.tsx
|
|
9
|
+
var u = a(function({ src: a, alt: u, name: d, size: f, color: p, ring: m = !1, initials: h, className: g, ..._ }, v) {
|
|
10
|
+
let y = o(t), b = u ?? d, x = b === "", S = h?.trim() ? h.trim().toLocaleUpperCase() : r(d), C = Array.from(S).length;
|
|
11
|
+
return /* @__PURE__ */ c(l.Root, {
|
|
12
|
+
ref: v,
|
|
13
|
+
className: e(i.avatar, g),
|
|
14
|
+
"data-size": f ?? y ?? "md",
|
|
15
|
+
"data-color": p ?? n(d),
|
|
16
|
+
"data-ring": m || void 0,
|
|
17
|
+
..._,
|
|
18
|
+
children: [a ? /* @__PURE__ */ s(l.Image, {
|
|
19
|
+
className: i.image,
|
|
20
|
+
src: a,
|
|
21
|
+
alt: b
|
|
22
|
+
}) : null, /* @__PURE__ */ s(l.Fallback, {
|
|
23
|
+
className: i.fallback,
|
|
24
|
+
role: x ? void 0 : "img",
|
|
25
|
+
"aria-label": x ? void 0 : b,
|
|
26
|
+
"aria-hidden": x || void 0,
|
|
27
|
+
delayMs: a ? 300 : void 0,
|
|
28
|
+
"data-glyphs": C > 2 ? "many" : void 0,
|
|
29
|
+
children: /* @__PURE__ */ s("span", {
|
|
30
|
+
"aria-hidden": "true",
|
|
31
|
+
children: S
|
|
32
|
+
})
|
|
33
|
+
})]
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//#endregion
|
|
37
|
+
export { u as Avatar };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=Avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.js","names":["Avatar","AvatarPrimitive","styles","Avatar_module_default","Avatar$1","forwardRef","rest","groupSize","useContext","AvatarSizeContext","label","alt","name","decorative","text","initials","getInitials","glyphs","Avatar","cx","className","size","color","avatarColor","ring","src"],"sources":["../../../../src/components/display/Avatar/Avatar.tsx"],"sourcesContent":["import { forwardRef, useContext, type HTMLAttributes } from 'react'\nimport { Avatar as AvatarPrimitive } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport { AvatarSizeContext } from './AvatarContext'\nimport { avatarColor, getInitials } from './avatarUtils'\nimport type { AvatarColor, AvatarSize } from './avatarUtils'\nimport styles from './Avatar.module.css'\n\nexport interface AvatarProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {\n /** Image URL. While loading, or if it fails, the initials fallback shows. */\n src?: string\n /** Accessible name. Defaults to `name`. Pass `\"\"` when a visible label sits beside it. */\n alt?: string\n /** Person or thing. Drives the initials and the fallback colour. */\n name: string\n /** Default `md`, or the enclosing `AvatarGroup`'s size. */\n size?: AvatarSize\n /** Override the name-derived fallback colour (e.g. a member's assigned colour). */\n color?: AvatarColor\n /** A highlight ring — marks \"you\" in a leaderboard or roster. */\n ring?: boolean\n /**\n * Replace the derived initials — a company's short code (\"NWS\"), a logo's letters. Up to three\n * characters; three are set smaller so they fit the frame.\n */\n initials?: string\n}\n\n/**\n * A person or entity. Image with an initials fallback on a deterministic categorical\n * colour. Shape comes from `--radius-avatar` (rounded square in Monograph/Ledger, round in\n * Fiesta).\n */\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(function Avatar(\n { src, alt, name, size, color, ring = false, initials, className, ...rest },\n ref,\n) {\n const groupSize = useContext(AvatarSizeContext)\n const label = alt ?? name\n const decorative = label === ''\n const text = initials?.trim() ? initials.trim().toLocaleUpperCase() : getInitials(name)\n const glyphs = Array.from(text).length\n return (\n <AvatarPrimitive.Root\n ref={ref}\n className={cx(styles.avatar, className)}\n data-size={size ?? groupSize ?? 'md'}\n data-color={color ?? avatarColor(name)}\n data-ring={ring || undefined}\n {...rest}\n >\n {src ? <AvatarPrimitive.Image className={styles.image} src={src} alt={label} /> : null}\n <AvatarPrimitive.Fallback\n className={styles.fallback}\n role={decorative ? undefined : 'img'}\n aria-label={decorative ? undefined : label}\n aria-hidden={decorative || undefined}\n delayMs={src ? 300 : undefined}\n data-glyphs={glyphs > 2 ? 'many' : undefined}\n >\n <span aria-hidden=\"true\">{text}</span>\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n )\n})\n"],"mappings":";;;;;;;;AAiCA,IAAaA,IAASK,EAAyC,SAC7D,EAAE,QAAK,QAAK,SAAM,SAAM,UAAO,UAAO,IAAO,aAAU,cAAW,GAAGC,KACrE,GACA;CACA,IAAMC,IAAYC,EAAWC,CAAiB,GACxCC,IAAQC,KAAOC,GACfC,IAAaH,MAAU,IACvBI,IAAOC,GAAU,KAAK,IAAIA,EAAS,KAAK,CAAC,CAAC,kBAAkB,IAAIC,EAAYJ,CAAI,GAChFK,IAAS,MAAM,KAAKH,CAAI,CAAC,CAAC;CAChC,OACE,kBAACb,EAAgB,MAAjB;EACO;EACL,WAAWkB,EAAGjB,EAAO,QAAQkB,CAAS;EACtC,aAAWC,KAAQd,KAAa;EAChC,cAAYe,KAASC,EAAYX,CAAI;EACrC,aAAWY,KAAQ,KAAA;EACnB,GAAIlB;EANN,UAAA,CAQGmB,IAAM,kBAACxB,EAAgB,OAAjB;GAAuB,WAAWC,EAAO;GAAY;GAAK,KAAKQ;EAAQ,CAAA,IAAI,MAClF,kBAACT,EAAgB,UAAjB;GACE,WAAWC,EAAO;GAClB,MAAMW,IAAa,KAAA,IAAY;GAC/B,cAAYA,IAAa,KAAA,IAAYH;GACrC,eAAaG,KAAc,KAAA;GAC3B,SAASY,IAAM,MAAM,KAAA;GACrB,eAAaR,IAAS,IAAI,SAAS,KAAA;GAEnC,UAAA,kBAAC,QAAD;IAAM,eAAY;IAAQ,UAAAH;GAAW,CAAA;EACb,CAAA,CACN;;AAE1B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/display/Avatar/Avatar.module.css
|
|
2
|
+
var e = "kiln-Avatar__avatar", t = "kiln-Avatar__image", n = "kiln-Avatar__fallback", r = {
|
|
3
|
+
avatar: e,
|
|
4
|
+
image: t,
|
|
5
|
+
fallback: n
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { e as avatar, r as default, n as fallback, t as image };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=Avatar.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.module.js","names":["avatar","image","fallback","Avatar_module_default"],"sources":["../../../../src/components/display/Avatar/Avatar.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --avatar-radius default var(--radius-avatar)\n * --avatar-edge default line-strong at 70% — inner keyline (ink in Fiesta)\n * --avatar-ring-color default var(--color-accent) — the \"you\" ring\n * --avatar-cutout default var(--color-canvas) — gap between ring/stack and avatar\n */\n.avatar {\n --_size: var(--control-md);\n --_bg: var(--color-cat-8);\n\n position: relative;\n display: inline-grid;\n flex: none;\n place-items: center;\n inline-size: var(--_size);\n block-size: var(--_size);\n border-radius: var(--avatar-radius, var(--radius-avatar));\n background: var(--_bg);\n color: var(--color-cat-ink);\n vertical-align: middle;\n user-select: none;\n}\n\n/* Inner keyline drawn over the image, so photos and fills share one edge. */\n.avatar::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 var(--border-width)\n var(--avatar-edge, color-mix(in oklch, var(--color-line-strong) 70%, transparent));\n pointer-events: none;\n}\n\n.avatar[data-size='xs'] {\n --_size: var(--space-5);\n}\n.avatar[data-size='sm'] {\n --_size: var(--control-sm);\n}\n.avatar[data-size='md'] {\n --_size: var(--control-md);\n}\n.avatar[data-size='lg'] {\n --_size: var(--control-lg);\n}\n.avatar[data-size='xl'] {\n --_size: var(--space-8);\n}\n\n.avatar[data-color='1'] {\n --_bg: var(--color-cat-1);\n}\n.avatar[data-color='2'] {\n --_bg: var(--color-cat-2);\n}\n.avatar[data-color='3'] {\n --_bg: var(--color-cat-3);\n}\n.avatar[data-color='4'] {\n --_bg: var(--color-cat-4);\n}\n.avatar[data-color='5'] {\n --_bg: var(--color-cat-5);\n}\n.avatar[data-color='6'] {\n --_bg: var(--color-cat-6);\n}\n.avatar[data-color='7'] {\n --_bg: var(--color-cat-7);\n}\n.avatar[data-color='8'] {\n --_bg: var(--color-cat-8);\n}\n\n/* \"You\": a cut-out gap, then the ring. */\n.avatar[data-ring] {\n box-shadow:\n 0 0 0 2px var(--avatar-cutout, var(--color-canvas)),\n 0 0 0 calc(2px + var(--border-width-strong) + 1px) var(--avatar-ring-color, var(--color-accent));\n}\n\n.image {\n grid-area: 1 / 1;\n inline-size: 100%;\n block-size: 100%;\n border-radius: inherit;\n object-fit: cover;\n}\n\n.fallback {\n grid-area: 1 / 1;\n display: grid;\n place-items: center;\n inline-size: 100%;\n block-size: 100%;\n border-radius: inherit;\n font-family: var(--heading-font);\n font-weight: var(--heading-weight);\n text-transform: var(--heading-transform);\n font-size: calc(var(--_size) * 0.38);\n letter-spacing: 0;\n line-height: 1;\n}\n.avatar[data-size='xs'] .fallback {\n font-size: calc(var(--_size) * 0.46);\n}\n/* Three-letter codes (\"NWS\", \"ACM\") shrink so they clear the frame and the keyline. */\n.fallback[data-glyphs='many'] {\n font-size: calc(var(--_size) * 0.3);\n letter-spacing: -0.02em;\n}\n.avatar[data-size='xs'] .fallback[data-glyphs='many'] {\n font-size: calc(var(--_size) * 0.34);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvatarContext.js","names":["AvatarSizeContext","createContext"],"sources":["../../../../src/components/display/Avatar/AvatarContext.ts"],"sourcesContent":["import { createContext } from 'react'\nimport type { AvatarSize } from './avatarUtils'\n\n/** Lets `AvatarGroup` size its children without repeating the prop. */\nexport const AvatarSizeContext = createContext<AvatarSize | undefined>(undefined)\n"],"mappings":";;AAIA,IAAaA,IAAoBC,EAAsC,KAAA,CAAS"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
2
|
+
/** Categorical colour slot → `--color-cat-N`. */
|
|
3
|
+
export type AvatarColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
|
4
|
+
/** Up to two initials: first + last word ("Ada Okafor" → "AO"), or one for a single name. */
|
|
5
|
+
export declare function getInitials(name: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Deterministic categorical colour for a name (FNV-1a + finaliser, case- and space-insensitive),
|
|
8
|
+
* so the same person gets the same colour on every screen and every render.
|
|
9
|
+
*/
|
|
10
|
+
export declare function avatarColor(name: string): AvatarColor;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/components/display/Avatar/avatarUtils.ts
|
|
2
|
+
function e(e) {
|
|
3
|
+
let t = e.trim().split(/[\s-]+/u).filter(Boolean);
|
|
4
|
+
return t.length === 0 ? "" : ((Array.from(t[0] ?? "")[0] ?? "") + (t.length > 1 ? Array.from(t[t.length - 1] ?? "")[0] ?? "" : "")).toLocaleUpperCase();
|
|
5
|
+
}
|
|
6
|
+
function t(e) {
|
|
7
|
+
let t = e.trim().toLocaleLowerCase(), n = 2166136261;
|
|
8
|
+
for (let e = 0; e < t.length; e++) n ^= t.charCodeAt(e), n = Math.imul(n, 16777619);
|
|
9
|
+
return n ^= n >>> 16, n = Math.imul(n, 2246822507), n ^= n >>> 13, (n >>> 0) % 8 + 1;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { t as avatarColor, e as getInitials };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=avatarUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatarUtils.js","names":["getInitials","words","name","avatarColor","key","hash","i"],"sources":["../../../../src/components/display/Avatar/avatarUtils.ts"],"sourcesContent":["export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n/** Categorical colour slot → `--color-cat-N`. */\nexport type AvatarColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8\n\n/** Up to two initials: first + last word (\"Ada Okafor\" → \"AO\"), or one for a single name. */\nexport function getInitials(name: string): string {\n const words = name\n .trim()\n .split(/[\\s-]+/u)\n .filter(Boolean)\n if (words.length === 0) return ''\n const first = Array.from(words[0] ?? '')[0] ?? ''\n const last = words.length > 1 ? (Array.from(words[words.length - 1] ?? '')[0] ?? '') : ''\n return (first + last).toLocaleUpperCase()\n}\n\n/**\n * Deterministic categorical colour for a name (FNV-1a + finaliser, case- and space-insensitive),\n * so the same person gets the same colour on every screen and every render.\n */\nexport function avatarColor(name: string): AvatarColor {\n const key = name.trim().toLocaleLowerCase()\n let hash = 0x811c9dc5\n for (let i = 0; i < key.length; i++) {\n hash ^= key.charCodeAt(i)\n hash = Math.imul(hash, 0x01000193)\n }\n // FNV's low bits barely mix, and `% 8` reads only those: 8 names landed on 3 colours.\n // A murmur3-style finaliser spreads the high bits down first.\n hash ^= hash >>> 16\n hash = Math.imul(hash, 0x85ebca6b)\n hash ^= hash >>> 13\n return (((hash >>> 0) % 8) + 1) as AvatarColor\n}\n"],"mappings":";AAKA,SAAgBA,EAAY,GAAsB;CAChD,IAAMC,IAAQC,EACX,KAAK,CAAC,CACN,MAAM,SAAS,CAAC,CAChB,OAAO,OAAO;CAIjB,OAHID,EAAM,WAAW,IAAU,OACjB,MAAM,KAAKA,EAAM,MAAM,EAAE,CAAC,CAAC,MAAM,OAClCA,EAAM,SAAS,IAAK,MAAM,KAAKA,EAAMA,EAAM,SAAS,MAAM,EAAE,CAAC,CAAC,MAAM,KAAM,IAAA,CACjE,kBAAkB;AAC1C;AAMA,SAAgBE,EAAY,GAA2B;CACrD,IAAMC,IAAMF,EAAK,KAAK,CAAC,CAAC,kBAAkB,GACtCG,IAAO;CACX,KAAK,IAAIC,IAAI,GAAGA,IAAIF,EAAI,QAAQ,KAE9B,AADA,KAAQA,EAAI,WAAWE,CAAC,GACxB,IAAO,KAAK,KAAKD,GAAM,QAAU;CAOnC,OAHA,KAAQA,MAAS,IACjB,IAAO,KAAK,KAAKA,GAAM,UAAU,GACjC,KAAQA,MAAS,KACPA,MAAS,KAAK,IAAK;AAC/B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Avatar } from './Avatar.js';
|
|
2
|
+
export type { AvatarProps } from './Avatar.js';
|
|
3
|
+
export { AvatarSizeContext } from './AvatarContext.js';
|
|
4
|
+
export { getInitials, avatarColor } from './avatarUtils.js';
|
|
5
|
+
export type { AvatarSize, AvatarColor } from './avatarUtils.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { type AvatarSize } from '../Avatar/index.js';
|
|
3
|
+
export interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Show at most this many avatars; the rest collapse into a "+N" count. */
|
|
5
|
+
max?: number;
|
|
6
|
+
/** Size for every avatar in the stack. Default `sm`. */
|
|
7
|
+
size?: AvatarSize;
|
|
8
|
+
/** Accessible name for the group, e.g. "Reacted: Noor, Kofi and 3 others". */
|
|
9
|
+
'aria-label'?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* An overlapping stack of `Avatar`s — who reacted, who owns a project, who's in a group.
|
|
13
|
+
*
|
|
14
|
+
* <AvatarGroup max={4} aria-label="Members"><Avatar name="Noor" />…</AvatarGroup>
|
|
15
|
+
*/
|
|
16
|
+
export declare const AvatarGroup: import("react").ForwardRefExoticComponent<AvatarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { AvatarSizeContext as t } from "../Avatar/AvatarContext.js";
|
|
3
|
+
import n from "./AvatarGroup.module.js";
|
|
4
|
+
import { Children as r, forwardRef as i, isValidElement as a } from "react";
|
|
5
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/display/AvatarGroup/AvatarGroup.tsx
|
|
7
|
+
var c = i(function({ max: i, size: c = "sm", className: l, children: u, ...d }, f) {
|
|
8
|
+
let p = r.toArray(u).filter(a), m = i !== void 0 && i >= 0 && p.length > i ? i : p.length, h = p.length - m;
|
|
9
|
+
return /* @__PURE__ */ o(t.Provider, {
|
|
10
|
+
value: c,
|
|
11
|
+
children: /* @__PURE__ */ s("div", {
|
|
12
|
+
ref: f,
|
|
13
|
+
role: "group",
|
|
14
|
+
className: e(n.group, l),
|
|
15
|
+
"data-size": c,
|
|
16
|
+
...d,
|
|
17
|
+
children: [p.slice(0, m), h > 0 ? /* @__PURE__ */ o("span", {
|
|
18
|
+
className: n.more,
|
|
19
|
+
"data-size": c,
|
|
20
|
+
role: "img",
|
|
21
|
+
"aria-label": `${String(h)} more`,
|
|
22
|
+
children: /* @__PURE__ */ s("span", {
|
|
23
|
+
"aria-hidden": "true",
|
|
24
|
+
children: ["+", h]
|
|
25
|
+
})
|
|
26
|
+
}) : null]
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
export { c as AvatarGroup };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=AvatarGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvatarGroup.js","names":["styles","AvatarGroup_module_default","AvatarGroup","forwardRef","rest","items","Children","children","isValidElement","limit","max","overflow","AvatarSizeContext","size","cx","className"],"sources":["../../../../src/components/display/AvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import { Children, forwardRef, isValidElement, type HTMLAttributes } from 'react'\nimport { cx } from '#utils/cx'\nimport { AvatarSizeContext, type AvatarSize } from '#components/display/Avatar'\nimport styles from './AvatarGroup.module.css'\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Show at most this many avatars; the rest collapse into a \"+N\" count. */\n max?: number\n /** Size for every avatar in the stack. Default `sm`. */\n size?: AvatarSize\n /** Accessible name for the group, e.g. \"Reacted: Noor, Kofi and 3 others\". */\n 'aria-label'?: string\n}\n\n/**\n * An overlapping stack of `Avatar`s — who reacted, who owns a project, who's in a group.\n *\n * <AvatarGroup max={4} aria-label=\"Members\"><Avatar name=\"Noor\" />…</AvatarGroup>\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(function AvatarGroup(\n { max, size = 'sm', className, children, ...rest },\n ref,\n) {\n const items = Children.toArray(children).filter(isValidElement)\n const limit = max !== undefined && max >= 0 && items.length > max ? max : items.length\n const overflow = items.length - limit\n return (\n <AvatarSizeContext.Provider value={size}>\n <div\n ref={ref}\n role=\"group\"\n className={cx(styles.group, className)}\n data-size={size}\n {...rest}\n >\n {items.slice(0, limit)}\n {overflow > 0 ? (\n <span\n className={styles.more}\n data-size={size}\n role=\"img\"\n aria-label={`${String(overflow)} more`}\n >\n <span aria-hidden=\"true\">+{overflow}</span>\n </span>\n ) : null}\n </div>\n </AvatarSizeContext.Provider>\n )\n})\n"],"mappings":";;;;;;AAmBA,IAAaE,IAAcC,EAA6C,SACtE,EAAE,QAAK,UAAO,MAAM,cAAW,aAAU,GAAGC,KAC5C,GACA;CACA,IAAMC,IAAQC,EAAS,QAAQC,CAAQ,CAAC,CAAC,OAAOC,CAAc,GACxDC,IAAQC,MAAQ,KAAA,KAAaA,KAAO,KAAKL,EAAM,SAASK,IAAMA,IAAML,EAAM,QAC1EM,IAAWN,EAAM,SAASI;CAChC,OACE,kBAACG,EAAkB,UAAnB;EAA4B,OAAOC;EACjC,UAAA,kBAAC,OAAD;GACO;GACL,MAAK;GACL,WAAWC,EAAGd,EAAO,OAAOe,CAAS;GACrC,aAAWF;GACX,GAAIT;GALN,UAAA,CAOGC,EAAM,MAAM,GAAGI,CAAK,GACpBE,IAAW,IACV,kBAAC,QAAD;IACE,WAAWX,EAAO;IAClB,aAAWa;IACX,MAAK;IACL,cAAY,GAAG,OAAOF,CAAQ,EAAE;IAEhC,UAAA,kBAAC,QAAD;KAAM,eAAY;KAAlB,UAAA,CAAyB,KAAEA,CAAe;;GACtC,CAAA,IACJ,IACD;;CACqB,CAAA;AAEhC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/components/display/AvatarGroup/AvatarGroup.module.css
|
|
2
|
+
var e = "kiln-AvatarGroup__group", t = "kiln-AvatarGroup__more", n = {
|
|
3
|
+
group: e,
|
|
4
|
+
more: t
|
|
5
|
+
};
|
|
6
|
+
//#endregion
|
|
7
|
+
export { n as default, e as group, t as more };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=AvatarGroup.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvatarGroup.module.js","names":["group","more","AvatarGroup_module_default"],"sources":["../../../../src/components/display/AvatarGroup/AvatarGroup.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --avatar-cutout default var(--color-canvas) — the gap drawn around each stacked avatar\n * --avatar-overlap default 0.14 (0.05 at xs/sm) — fraction of an avatar hidden under\n * its neighbour. Each avatar also loses the 2px cutout ring drawn by the\n * next one, so small stacks overlap less or their initials get clipped.\n *\n * Sizes mirror Avatar's so the \"+N\" chip matches the stack.\n */\n.group {\n --_size: var(--control-sm);\n --_overlap: var(--avatar-overlap, 0.14);\n\n display: inline-flex;\n align-items: center;\n isolation: isolate;\n vertical-align: middle;\n}\n.group[data-size='xs'] {\n --_size: var(--space-5);\n --_overlap: var(--avatar-overlap, 0.05);\n}\n.group[data-size='sm'] {\n --_size: var(--control-sm);\n --_overlap: var(--avatar-overlap, 0.05);\n}\n.group[data-size='md'] {\n --_size: var(--control-md);\n}\n.group[data-size='lg'] {\n --_size: var(--control-lg);\n}\n.group[data-size='xl'] {\n --_size: var(--space-8);\n}\n\n.group > * {\n box-shadow: 0 0 0 2px var(--avatar-cutout, var(--color-canvas));\n}\n.group > * + * {\n margin-inline-start: calc(var(--_size) * var(--_overlap) * -1);\n}\n\n.more {\n --_size: var(--control-sm);\n\n display: inline-grid;\n flex: none;\n place-items: center;\n inline-size: var(--_size);\n block-size: var(--_size);\n border-radius: var(--avatar-radius, var(--radius-avatar));\n background: var(--color-surface-sunken);\n color: var(--color-ink-muted);\n font-family: var(--font-numeric);\n font-stretch: var(--numeric-stretch);\n font-weight: var(--label-weight);\n font-variant-numeric: tabular-nums lining-nums;\n font-size: calc(var(--_size) * 0.36);\n line-height: 1;\n outline: var(--border-width) solid var(--color-line);\n outline-offset: calc(var(--border-width) * -1);\n}\n.more[data-size='xs'] {\n --_size: var(--space-5);\n}\n.more[data-size='md'] {\n --_size: var(--control-md);\n}\n.more[data-size='lg'] {\n --_size: var(--control-lg);\n}\n.more[data-size='xl'] {\n --_size: var(--space-8);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import type { Tone } from '../../../utils/tokens.js';
|
|
3
|
+
export type BadgeVariant = 'soft' | 'solid' | 'outline';
|
|
4
|
+
export type BadgeSize = 'sm' | 'md';
|
|
5
|
+
export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
6
|
+
/** Status colour. `neutral` for plain counts and labels. Default `neutral`. */
|
|
7
|
+
tone?: Tone;
|
|
8
|
+
/** `soft` (default) for most status; `solid` for the one that must be seen; `outline` for quiet. */
|
|
9
|
+
variant?: BadgeVariant;
|
|
10
|
+
size?: BadgeSize;
|
|
11
|
+
/** Leading status dot in the tone colour. Decorative — the label carries the meaning. */
|
|
12
|
+
dot?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A short status or count: "Live", "Over quota", "3 new", "Overdue".
|
|
16
|
+
* Metadata and categories are Tags; a Badge says what *state* something is in.
|
|
17
|
+
*/
|
|
18
|
+
export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import t from "./Badge.module.js";
|
|
3
|
+
import { forwardRef as n } from "react";
|
|
4
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/display/Badge/Badge.tsx
|
|
6
|
+
var a = n(function({ tone: n = "neutral", variant: a = "soft", size: o = "sm", dot: s = !1, className: c, children: l, ...u }, d) {
|
|
7
|
+
return /* @__PURE__ */ i("span", {
|
|
8
|
+
ref: d,
|
|
9
|
+
className: e(t.badge, c),
|
|
10
|
+
"data-tone": n,
|
|
11
|
+
"data-variant": a,
|
|
12
|
+
"data-size": o,
|
|
13
|
+
...u,
|
|
14
|
+
children: [s ? /* @__PURE__ */ r("span", {
|
|
15
|
+
className: t.dot,
|
|
16
|
+
"aria-hidden": "true"
|
|
17
|
+
}) : null, l]
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//#endregion
|
|
21
|
+
export { a as Badge };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.js","names":["styles","Badge_module_default","Badge","forwardRef","rest","cx","className","tone","variant","size","dot","children"],"sources":["../../../../src/components/display/Badge/Badge.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\nimport { cx } from '#utils/cx'\nimport type { Tone } from '#utils/tokens'\nimport styles from './Badge.module.css'\n\nexport type BadgeVariant = 'soft' | 'solid' | 'outline'\nexport type BadgeSize = 'sm' | 'md'\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n /** Status colour. `neutral` for plain counts and labels. Default `neutral`. */\n tone?: Tone\n /** `soft` (default) for most status; `solid` for the one that must be seen; `outline` for quiet. */\n variant?: BadgeVariant\n size?: BadgeSize\n /** Leading status dot in the tone colour. Decorative — the label carries the meaning. */\n dot?: boolean\n}\n\n/**\n * A short status or count: \"Live\", \"Over quota\", \"3 new\", \"Overdue\".\n * Metadata and categories are Tags; a Badge says what *state* something is in.\n */\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\n { tone = 'neutral', variant = 'soft', size = 'sm', dot = false, className, children, ...rest },\n ref,\n) {\n return (\n <span\n ref={ref}\n className={cx(styles.badge, className)}\n data-tone={tone}\n data-variant={variant}\n data-size={size}\n {...rest}\n >\n {dot ? <span className={styles.dot} aria-hidden=\"true\" /> : null}\n {children}\n </span>\n )\n})\n"],"mappings":";;;;;AAsBA,IAAaE,IAAQC,EAAwC,SAC3D,EAAE,UAAO,WAAW,aAAU,QAAQ,UAAO,MAAM,SAAM,IAAO,cAAW,aAAU,GAAGC,KACxF,GACA;CACA,OACE,kBAAC,QAAD;EACO;EACL,WAAWC,EAAGL,EAAO,OAAOM,CAAS;EACrC,aAAWC;EACX,gBAAcC;EACd,aAAWC;EACX,GAAIL;EANN,UAAA,CAQGM,IAAM,kBAAC,QAAD;GAAM,WAAWV,EAAO;GAAK,eAAY;EAAQ,CAAA,IAAI,MAC3DW,CACG;;AAEV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.module.js","names":["badge","dot","Badge_module_default"],"sources":["../../../../src/components/display/Badge/Badge.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --badge-radius default var(--radius-chip)\n * --badge-weight default var(--label-weight)\n */\n.badge {\n --_c: var(--color-surface-inverse);\n --_c-ink: var(--color-ink-inverse);\n --_c-text: var(--color-ink-muted);\n --_c-soft: var(--color-surface-sunken);\n --_bg: var(--_c-soft);\n --_ink: var(--_c-text);\n --_border: transparent;\n --_h: calc(var(--space-5) * 0.9);\n --_px: var(--space-2);\n --_fs: var(--text-xs);\n\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: 0.4em;\n min-block-size: var(--_h);\n padding-inline: var(--_px);\n border: var(--border-width) solid var(--_border);\n border-radius: var(--badge-radius, var(--radius-chip));\n background: var(--_bg);\n color: var(--_ink);\n font-family: var(--font-text);\n font-size: var(--_fs);\n font-weight: var(--badge-weight, var(--label-weight));\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n font-variant-numeric: tabular-nums lining-nums;\n line-height: 1;\n white-space: nowrap;\n vertical-align: middle;\n}\n\n.badge[data-size='md'] {\n --_h: calc(var(--space-5) * 1.1);\n --_px: calc(var(--space-2) * 1.25);\n --_fs: var(--text-sm);\n}\n\n.badge[data-tone='accent'] {\n --_c: var(--color-accent);\n --_c-ink: var(--color-accent-ink);\n --_c-text: var(--color-accent-text);\n --_c-soft: var(--color-accent-soft);\n}\n.badge[data-tone='positive'] {\n --_c: var(--tone-positive);\n --_c-ink: var(--tone-positive-ink);\n --_c-text: var(--tone-positive-text);\n --_c-soft: var(--tone-positive-soft);\n}\n.badge[data-tone='caution'] {\n --_c: var(--tone-caution);\n --_c-ink: var(--tone-caution-ink);\n --_c-text: var(--tone-caution-text);\n --_c-soft: var(--tone-caution-soft);\n}\n.badge[data-tone='critical'] {\n --_c: var(--tone-critical);\n --_c-ink: var(--tone-critical-ink);\n --_c-text: var(--tone-critical-text);\n --_c-soft: var(--tone-critical-soft);\n}\n.badge[data-tone='info'] {\n --_c: var(--tone-info);\n --_c-ink: var(--tone-info-ink);\n --_c-text: var(--tone-info-text);\n --_c-soft: var(--tone-info-soft);\n}\n\n.badge[data-variant='solid'] {\n --_bg: var(--_c);\n --_ink: var(--_c-ink);\n --_border: var(--badge-solid-border, var(--_c));\n}\n.badge[data-variant='outline'] {\n --_bg: transparent;\n --_ink: var(--_c-text);\n --_border: currentColor;\n}\n.badge[data-tone='neutral'][data-variant='outline'] {\n --_border: var(--color-line-strong);\n}\n\n.dot {\n --_dot: 0.5em;\n\n flex: none;\n inline-size: var(--_dot);\n block-size: var(--_dot);\n border-radius: 50%;\n background: var(--_c);\n}\n.badge[data-tone='neutral'] .dot {\n background: var(--color-ink-subtle);\n}\n.badge[data-variant='solid'] .dot {\n background: currentColor;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { type Responsive } from '../../../utils/responsive.js';
|
|
3
|
+
import { type Space } from '../../../utils/tokens.js';
|
|
4
|
+
export type CardVariant = 'plain' | 'outline' | 'raised';
|
|
5
|
+
export type CardTitleLevel = 2 | 3 | 4 | 5 | 6;
|
|
6
|
+
export type CardMediaRatio = '1/1' | '4/3' | '3/2' | '16/9' | '21/9';
|
|
7
|
+
export interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Edge treatment. `outline` (default) is a hairline; `plain` is a fill with no edge;
|
|
10
|
+
* `raised` stands on `--shadow-surface` (nothing extra in Monograph/Ledger, the print
|
|
11
|
+
* offset in Fiesta).
|
|
12
|
+
*/
|
|
13
|
+
variant?: CardVariant;
|
|
14
|
+
/** Inner padding as a space step. Responsive. Default `5`. */
|
|
15
|
+
padding?: Responsive<Space>;
|
|
16
|
+
/** Hover/press affordance for cards that *are* the action. Implied by `asChild`. */
|
|
17
|
+
interactive?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Render the single child element as the card — usually a link, so the whole card is
|
|
20
|
+
* one target: `<Card asChild><a href="/projects/atlas">…</a></Card>`. Don't nest other
|
|
21
|
+
* links or buttons inside a linked card.
|
|
22
|
+
*/
|
|
23
|
+
asChild?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface CardMediaProps extends HTMLAttributes<HTMLDivElement> {
|
|
26
|
+
/** Crop the media to a fixed ratio (the child img/video is fitted with `cover`). */
|
|
27
|
+
ratio?: CardMediaRatio;
|
|
28
|
+
/**
|
|
29
|
+
* Sit inside the padding instead of bleeding to the edges. The corner radius is then
|
|
30
|
+
* the nested radius (outer − padding).
|
|
31
|
+
*/
|
|
32
|
+
inset?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {
|
|
35
|
+
/** Heading element, to fit the page outline. Visual size doesn't change. Default `3`. */
|
|
36
|
+
level?: CardTitleLevel;
|
|
37
|
+
}
|
|
38
|
+
export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLDivElement>> & {
|
|
39
|
+
Media: import("react").ForwardRefExoticComponent<CardMediaProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
40
|
+
Header: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
41
|
+
Title: import("react").ForwardRefExoticComponent<CardTitleProps & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
42
|
+
Description: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & import("react").RefAttributes<HTMLParagraphElement>>;
|
|
43
|
+
Body: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
44
|
+
Footer: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
45
|
+
Meta: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
46
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { mergeStyles as t, responsiveVars as n } from "../../../utils/responsive.js";
|
|
3
|
+
import { space as r } from "../../../utils/tokens.js";
|
|
4
|
+
import { headingTag as i } from "../../../utils/heading.js";
|
|
5
|
+
import a from "./Card.module.js";
|
|
6
|
+
import { forwardRef as o } from "react";
|
|
7
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
8
|
+
import { Slot as c } from "radix-ui";
|
|
9
|
+
//#region src/components/display/Card/Card.tsx
|
|
10
|
+
var l = o(function({ variant: i = "outline", padding: o, interactive: l = !1, asChild: u = !1, className: d, style: f, ...p }, m) {
|
|
11
|
+
let h = u ? c.Root : "div";
|
|
12
|
+
return /* @__PURE__ */ s(h, {
|
|
13
|
+
ref: m,
|
|
14
|
+
className: e(a.card, d),
|
|
15
|
+
"data-kiln-component": "",
|
|
16
|
+
"data-variant": i,
|
|
17
|
+
"data-interactive": l || u || void 0,
|
|
18
|
+
style: t(n("card-padding", o, r), f),
|
|
19
|
+
...p
|
|
20
|
+
});
|
|
21
|
+
}), u = o(function({ ratio: t, inset: n = !1, className: r, ...i }, o) {
|
|
22
|
+
return /* @__PURE__ */ s("div", {
|
|
23
|
+
ref: o,
|
|
24
|
+
className: e(a.media, r),
|
|
25
|
+
"data-ratio": t,
|
|
26
|
+
"data-inset": n || void 0,
|
|
27
|
+
...i
|
|
28
|
+
});
|
|
29
|
+
}), d = o(function({ className: t, ...n }, r) {
|
|
30
|
+
return /* @__PURE__ */ s("div", {
|
|
31
|
+
ref: r,
|
|
32
|
+
className: e(a.header, t),
|
|
33
|
+
...n
|
|
34
|
+
});
|
|
35
|
+
}), f = o(function({ level: t = 3, className: n, ...r }, o) {
|
|
36
|
+
let c = i(t);
|
|
37
|
+
return /* @__PURE__ */ s(c, {
|
|
38
|
+
ref: o,
|
|
39
|
+
className: e(a.title, n),
|
|
40
|
+
...r
|
|
41
|
+
});
|
|
42
|
+
}), p = o(function({ className: t, ...n }, r) {
|
|
43
|
+
return /* @__PURE__ */ s("p", {
|
|
44
|
+
ref: r,
|
|
45
|
+
className: e(a.description, t),
|
|
46
|
+
...n
|
|
47
|
+
});
|
|
48
|
+
}), m = o(function({ className: t, ...n }, r) {
|
|
49
|
+
return /* @__PURE__ */ s("div", {
|
|
50
|
+
ref: r,
|
|
51
|
+
className: e(a.body, t),
|
|
52
|
+
...n
|
|
53
|
+
});
|
|
54
|
+
}), h = o(function({ className: t, ...n }, r) {
|
|
55
|
+
return /* @__PURE__ */ s("div", {
|
|
56
|
+
ref: r,
|
|
57
|
+
className: e(a.footer, t),
|
|
58
|
+
...n
|
|
59
|
+
});
|
|
60
|
+
}), g = o(function({ className: t, ...n }, r) {
|
|
61
|
+
return /* @__PURE__ */ s("div", {
|
|
62
|
+
ref: r,
|
|
63
|
+
className: e(a.meta, t),
|
|
64
|
+
...n
|
|
65
|
+
});
|
|
66
|
+
}), _ = Object.assign(l, {
|
|
67
|
+
Media: u,
|
|
68
|
+
Header: d,
|
|
69
|
+
Title: f,
|
|
70
|
+
Description: p,
|
|
71
|
+
Body: m,
|
|
72
|
+
Footer: h,
|
|
73
|
+
Meta: g
|
|
74
|
+
});
|
|
75
|
+
//#endregion
|
|
76
|
+
export { _ as Card };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=Card.js.map
|