@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":"Table.module.js","names":["scroll","table","caption","headerCell","cell","body","row","foot","head","sortButton","sortGlyph","Table_module_default"],"sources":["../../../../src/components/display/Table/Table.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --table-head-font default var(--font-text) — Fiesta sets its display caps\n * --table-head-numeric-font numeric header cells, default var(--table-head-font, var(--font-text))\n * --table-head-size default var(--text-sm)\n * --table-head-weight default var(--label-weight)\n * --table-head-transform default var(--heading-transform)\n * --table-head-bg default var(--color-canvas) — only painted when stickyHeader\n * --table-max-height default 70vh — scroll height when stickyHeader\n * --table-foot-rule the rule over totals, default var(--border-width-strong) solid\n * var(--color-line-strong) — Ledger draws the accountant's double rule\n * --highlight-tone-{positive,caution,critical,info}-text, --highlight-accent-text\n * tone text inside a highlighted row (shared with List). Default:\n * the tone text mixed 25% toward --color-highlight-ink.\n *\n * Headers are labels, so they're set in the text face (monospace as decoration for small\n * labels is banned in DESIGN §2); figures below them carry the numeric face.\n */\n.scroll {\n inline-size: 100%;\n min-inline-size: 0;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n}\n.scroll[data-sticky-header] {\n overflow: auto;\n max-block-size: var(--table-max-height, 70vh);\n}\n.scroll:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 2px;\n}\n\n.table {\n --_py: var(--space-2);\n --_px: var(--space-3);\n\n inline-size: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--font-text);\n font-size: var(--text-sm);\n line-height: var(--leading-snug);\n color: var(--color-ink);\n}\n.table[data-density='compact'] {\n --_py: var(--space-1);\n --_px: var(--space-2);\n}\n\n.caption {\n caption-side: top;\n padding-block-end: var(--space-3);\n color: var(--color-ink-muted);\n font-size: var(--text-sm);\n text-align: start;\n}\n\n/* ── Cells ─────────────────────────────────────────────────────────────── */\n\n.headerCell,\n.cell {\n padding: var(--_py) var(--_px);\n text-align: start;\n vertical-align: baseline;\n}\n.headerCell:first-child,\n.cell:first-child {\n padding-inline-start: var(--space-2);\n}\n.headerCell:last-child,\n.cell:last-child {\n padding-inline-end: var(--space-2);\n}\n/* Figure columns are narrow; tighter gutters keep a 10-column figures table on a phone. */\n:is(.headerCell, .cell)[data-numeric] {\n padding-inline: var(--space-2);\n}\n.headerCell abbr {\n text-decoration: none;\n cursor: help;\n}\n:is(.headerCell, .cell)[data-align='center'] {\n text-align: center;\n}\n:is(.headerCell, .cell)[data-align='end'] {\n text-align: end;\n}\n\n.headerCell {\n padding-block: var(--_py);\n color: var(--color-ink-muted);\n font-family: var(--table-head-font, var(--font-text));\n font-size: var(--table-head-size, var(--text-sm));\n font-weight: var(--table-head-weight, var(--label-weight));\n letter-spacing: var(--label-tracking);\n text-transform: var(--table-head-transform, var(--heading-transform));\n white-space: nowrap;\n vertical-align: bottom;\n border-block-end: var(--border-width-strong) solid var(--color-line-strong);\n}\n\n.headerCell[data-numeric] {\n font-family: var(--table-head-numeric-font, var(--table-head-font, var(--font-text)));\n font-variant-numeric: tabular-nums lining-nums;\n}\n.headerCell[data-width='fill'] {\n inline-size: 100%;\n}\n.headerCell[data-width='min'] {\n inline-size: 1%;\n}\n\n.cell[data-numeric] {\n font-family: var(--font-numeric);\n font-stretch: var(--numeric-stretch);\n font-variant-numeric: tabular-nums lining-nums;\n white-space: nowrap;\n}\n.cell[data-row-header] {\n font-weight: var(--label-weight);\n}\n\n/* ── Rows ──────────────────────────────────────────────────────────────── */\n\n.table[data-variant='rules'] .body .cell {\n border-block-end: var(--border-width) solid var(--color-line);\n}\n.table[data-variant='rules'] .body > .row:last-child > .cell {\n border-block-end-color: var(--color-line-strong);\n}\n\n.table[data-striped] .body > .row:nth-child(even) > .cell {\n background: var(--color-surface-sunken);\n}\n\n/*\n * A highlighted row re-points the colour roles for its cells' content, so a muted date,\n * a tone-coloured Numeral or a LiveIndicator stays legible on the highlight fill (gold in\n * Fiesta night, where the ordinary tone texts are pale). Same approach as Section's\n * inverse band: the row publishes its fill/ink and tone texts under private names, and\n * the cells swap the roles — setting e.g. --tone-positive-text from itself on one element\n * would be a var() cycle.\n */\n.row[data-highlighted] {\n --_band-fill: var(--color-highlight);\n --_band-ink: var(--color-highlight-ink);\n --_band-positive: var(\n --highlight-tone-positive-text,\n color-mix(in oklab, var(--tone-positive-text) 75%, var(--color-highlight-ink))\n );\n --_band-caution: var(\n --highlight-tone-caution-text,\n color-mix(in oklab, var(--tone-caution-text) 75%, var(--color-highlight-ink))\n );\n --_band-critical: var(\n --highlight-tone-critical-text,\n color-mix(in oklab, var(--tone-critical-text) 75%, var(--color-highlight-ink))\n );\n --_band-info: var(\n --highlight-tone-info-text,\n color-mix(in oklab, var(--tone-info-text) 75%, var(--color-highlight-ink))\n );\n --_band-accent: var(\n --highlight-accent-text,\n color-mix(in oklab, var(--color-accent-text) 75%, var(--color-highlight-ink))\n );\n}\n.row[data-highlighted] > .cell {\n --color-ink: var(--_band-ink);\n --color-ink-muted: color-mix(in oklab, var(--_band-ink), var(--_band-fill) 25%);\n --color-ink-subtle: color-mix(in oklab, var(--_band-ink), var(--_band-fill) 35%);\n --tone-positive-text: var(--_band-positive);\n --tone-caution-text: var(--_band-caution);\n --tone-critical-text: var(--_band-critical);\n --tone-info-text: var(--_band-info);\n --color-accent-text: var(--_band-accent);\n\n background: var(--_band-fill);\n color: var(--_band-ink);\n}\n/* Round the ends of a highlighted row so the fill reads as a marker, not a stripe. */\n.row[data-highlighted] > .cell:first-child {\n border-start-start-radius: var(--radius-field);\n border-end-start-radius: var(--radius-field);\n}\n.row[data-highlighted] > .cell:last-child {\n border-start-end-radius: var(--radius-field);\n border-end-end-radius: var(--radius-field);\n}\n\n.row[data-interactive] {\n cursor: pointer;\n}\n.row > .cell {\n transition: background-color var(--dur-1) var(--ease-out);\n}\n@media (hover: hover) {\n .row[data-interactive]:not([data-highlighted]):hover > .cell {\n background: var(--color-surface-sunken);\n }\n}\n\n.foot > :first-child > .cell {\n border-block-start: var(\n --table-foot-rule,\n var(--border-width-strong) solid var(--color-line-strong)\n );\n}\n.foot .cell {\n font-weight: var(--label-weight);\n}\n/* The totals rule replaces the last row's hairline rather than stacking under it. */\n.table[data-variant='rules'] .body:has(+ .foot) > .row:last-child > .cell {\n border-block-end-width: 0;\n}\n\n/* ── Sticky header ─────────────────────────────────────────────────────── */\n\n.table[data-sticky-header] .head .headerCell {\n position: sticky;\n inset-block-start: 0;\n z-index: 1;\n background: var(--table-head-bg, var(--color-canvas));\n}\n\n/* ── Sort button ───────────────────────────────────────────────────────── */\n\n.sortButton {\n display: inline-flex;\n align-items: center;\n gap: 0.25em;\n margin: calc(var(--space-1) * -1);\n padding: var(--space-1);\n border: 0;\n border-radius: var(--radius-field);\n background: transparent;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n cursor: pointer;\n transition: color var(--dur-1) var(--ease-out);\n}\n.headerCell[data-align='end'] .sortButton {\n flex-direction: row-reverse;\n}\n@media (hover: hover) {\n .sortButton:hover {\n color: var(--color-ink);\n }\n}\n.sortButton:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 0;\n}\n.sortGlyph {\n display: inline-flex;\n font-size: 1.1em;\n opacity: 0;\n transition: opacity var(--dur-1) var(--ease-out);\n}\n.headerCell:is([data-sort='asc'], [data-sort='desc']) {\n color: var(--color-ink);\n}\n.headerCell:is([data-sort='asc'], [data-sort='desc']) .sortGlyph,\n.sortButton:hover .sortGlyph,\n.sortButton:focus-visible .sortGlyph {\n opacity: 1;\n}\n.headerCell[data-sort='none'] .sortButton:is(:hover, :focus-visible) .sortGlyph {\n opacity: 0.45;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type HTMLAttributes, type MouseEvent } from 'react';
|
|
2
|
+
/** Categorical colour slot → `--color-cat-N`. */
|
|
3
|
+
export type TagColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
|
4
|
+
export interface TagProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
|
|
5
|
+
/** A categorical colour (category, person, topic). Omit for a neutral tag. */
|
|
6
|
+
color?: TagColor;
|
|
7
|
+
/** Renders a remove button after the label. Not rendered when `asChild`. */
|
|
8
|
+
onRemove?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
9
|
+
/** Accessible name for the remove button. Default `Remove <label>` for text labels. */
|
|
10
|
+
removeLabel?: string;
|
|
11
|
+
/** Render the single child (e.g. a filter link) as the tag. Incompatible with `onRemove`. */
|
|
12
|
+
asChild?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Quiet metadata: a category, a stack item, a group. Quieter than `Badge`, which is
|
|
16
|
+
* for status. Group several in a `TagList`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const Tag: import("react").ForwardRefExoticComponent<TagProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
19
|
+
export type TagListProps = HTMLAttributes<HTMLUListElement>;
|
|
20
|
+
/** A wrapping list of tags. Each child is wrapped in an `<li>`. */
|
|
21
|
+
export declare const TagList: import("react").ForwardRefExoticComponent<TagListProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { CloseIcon as t } from "../../../icons/icons.js";
|
|
3
|
+
import n from "./Tag.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
|
+
import { Slot as c } from "radix-ui";
|
|
7
|
+
//#region src/components/display/Tag/Tag.tsx
|
|
8
|
+
var l = i(function({ color: r, onRemove: i, removeLabel: a, asChild: l = !1, className: u, children: d, ...f }, p) {
|
|
9
|
+
let m = l ? c.Root : "span", h = !!i && !l, g = a ?? (typeof d == "string" ? `Remove ${d}` : "Remove");
|
|
10
|
+
return /* @__PURE__ */ s(m, {
|
|
11
|
+
ref: p,
|
|
12
|
+
className: e(n.tag, u),
|
|
13
|
+
"data-color": r,
|
|
14
|
+
"data-removable": h || void 0,
|
|
15
|
+
...f,
|
|
16
|
+
children: [/* @__PURE__ */ o(c.Slottable, { children: d }), h ? /* @__PURE__ */ o("button", {
|
|
17
|
+
type: "button",
|
|
18
|
+
className: n.remove,
|
|
19
|
+
"aria-label": g,
|
|
20
|
+
onClick: i,
|
|
21
|
+
children: /* @__PURE__ */ o(t, {})
|
|
22
|
+
}) : null]
|
|
23
|
+
});
|
|
24
|
+
}), u = i(function({ className: t, children: i, ...s }, c) {
|
|
25
|
+
return /* @__PURE__ */ o("ul", {
|
|
26
|
+
ref: c,
|
|
27
|
+
role: "list",
|
|
28
|
+
className: e(n.list, t),
|
|
29
|
+
...s,
|
|
30
|
+
children: r.map(i, (e) => a(e) || typeof e == "string" || typeof e == "number" ? /* @__PURE__ */ o("li", { children: e }, a(e) ? e.key : void 0) : null)
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//#endregion
|
|
34
|
+
export { l as Tag, u as TagList };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=Tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tag.js","names":["styles","Tag_module_default","Tag","forwardRef","rest","Comp","asChild","Slot","canRemove","onRemove","label","removeLabel","children","cx","className","color","CloseIcon","TagList","Children","isValidElement","child"],"sources":["../../../../src/components/display/Tag/Tag.tsx"],"sourcesContent":["import { Children, forwardRef, isValidElement, type HTMLAttributes, type MouseEvent } from 'react'\nimport { Slot } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport { CloseIcon } from '#icons'\nimport styles from './Tag.module.css'\n\n/** Categorical colour slot → `--color-cat-N`. */\nexport type TagColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8\n\nexport interface TagProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {\n /** A categorical colour (category, person, topic). Omit for a neutral tag. */\n color?: TagColor\n /** Renders a remove button after the label. Not rendered when `asChild`. */\n onRemove?: (event: MouseEvent<HTMLButtonElement>) => void\n /** Accessible name for the remove button. Default `Remove <label>` for text labels. */\n removeLabel?: string\n /** Render the single child (e.g. a filter link) as the tag. Incompatible with `onRemove`. */\n asChild?: boolean\n}\n\n/**\n * Quiet metadata: a category, a stack item, a group. Quieter than `Badge`, which is\n * for status. Group several in a `TagList`.\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(function Tag(\n { color, onRemove, removeLabel, asChild = false, className, children, ...rest },\n ref,\n) {\n const Comp = asChild ? Slot.Root : 'span'\n const canRemove = Boolean(onRemove) && !asChild\n const label = removeLabel ?? (typeof children === 'string' ? `Remove ${children}` : 'Remove')\n return (\n <Comp\n ref={ref}\n className={cx(styles.tag, className)}\n data-color={color}\n data-removable={canRemove || undefined}\n {...rest}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {canRemove ? (\n <button type=\"button\" className={styles.remove} aria-label={label} onClick={onRemove}>\n <CloseIcon />\n </button>\n ) : null}\n </Comp>\n )\n})\n\nexport type TagListProps = HTMLAttributes<HTMLUListElement>\n\n/** A wrapping list of tags. Each child is wrapped in an `<li>`. */\nexport const TagList = forwardRef<HTMLUListElement, TagListProps>(function TagList(\n { className, children, ...rest },\n ref,\n) {\n return (\n <ul ref={ref} role=\"list\" className={cx(styles.list, className)} {...rest}>\n {Children.map(children, (child) =>\n isValidElement(child) || typeof child === 'string' || typeof child === 'number' ? (\n <li key={isValidElement(child) ? child.key : undefined}>{child}</li>\n ) : null,\n )}\n </ul>\n )\n})\n"],"mappings":";;;;;;;AAwBA,IAAaE,IAAMC,EAAsC,SACvD,EAAE,UAAO,aAAU,gBAAa,aAAU,IAAO,cAAW,aAAU,GAAGC,KACzE,GACA;CACA,IAAMC,IAAOC,IAAUC,EAAK,OAAO,QAC7BC,IAAY,EAAQC,KAAa,CAACH,GAClCI,IAAQC,MAAgB,OAAOC,KAAa,WAAW,UAAUA,MAAa;CACpF,OACE,kBAACP,GAAD;EACO;EACL,WAAWQ,EAAGb,EAAO,KAAKc,CAAS;EACnC,cAAYC;EACZ,kBAAgBP,KAAa,KAAA;EAC7B,GAAIJ;EALN,UAAA,CAOE,kBAACG,EAAK,WAAN,EAAiB,YAAyB,CAAA,GACzCC,IACC,kBAAC,UAAD;GAAQ,MAAK;GAAS,WAAWR,EAAO;GAAQ,cAAYU;GAAO,SAASD;GAC1E,UAAA,kBAACO,GAAD,CAAY,CAAA;EACN,CAAA,IACN,IACA;;AAEV,CAAC,GAKYC,IAAUd,EAA2C,SAChE,EAAE,cAAW,aAAU,GAAGC,KAC1B,GACA;CACA,OACE,kBAAC,MAAD;EAAS;EAAK,MAAK;EAAO,WAAWS,EAAGb,EAAO,MAAMc,CAAS;EAAG,GAAIV;EAClE,UAAAc,EAAS,IAAIN,IAAW,MACvBO,EAAeC,CAAK,KAAK,OAAOA,KAAU,YAAY,OAAOA,KAAU,WACrE,kBAAC,MAAD,EAAA,UAAyDA,EAAU,GAA1DD,EAAeC,CAAK,IAAIA,EAAM,MAAM,KAAA,CAAsB,IACjE,IACN;CACE,CAAA;AAER,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/display/Tag/Tag.module.css
|
|
2
|
+
var e = "kiln-Tag__tag", t = "kiln-Tag__remove", n = "kiln-Tag__list", r = {
|
|
3
|
+
tag: e,
|
|
4
|
+
remove: t,
|
|
5
|
+
list: n
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { r as default, n as list, t as remove, e as tag };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=Tag.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tag.module.js","names":["tag","remove","list","Tag_module_default"],"sources":["../../../../src/components/display/Tag/Tag.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --tag-radius default var(--radius-chip)\n *\n * Quieter than Badge: text weight, no status colour. Neutral tags are a hairline;\n * categorical tags are a flat fill of --color-cat-N with --color-cat-ink (AA on all 8).\n */\n.tag {\n --_bg: transparent;\n --_ink: var(--color-ink-muted);\n --_border: var(--color-line);\n\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: var(--space-1);\n min-block-size: calc(var(--space-5) * 0.9);\n padding-inline: var(--space-2);\n border: var(--border-width) solid var(--_border);\n border-radius: var(--tag-radius, var(--radius-chip));\n background: var(--_bg);\n color: var(--_ink);\n font-family: var(--font-text);\n font-size: var(--text-xs);\n font-weight: 450;\n line-height: 1;\n white-space: nowrap;\n text-decoration: none;\n vertical-align: middle;\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}\n\n.tag[data-removable] {\n padding-inline-end: calc(var(--space-1) / 2);\n}\n\n.tag[data-color] {\n --_ink: var(--color-cat-ink);\n --_border: var(--_bg);\n}\n.tag[data-color='1'] {\n --_bg: var(--color-cat-1);\n}\n.tag[data-color='2'] {\n --_bg: var(--color-cat-2);\n}\n.tag[data-color='3'] {\n --_bg: var(--color-cat-3);\n}\n.tag[data-color='4'] {\n --_bg: var(--color-cat-4);\n}\n.tag[data-color='5'] {\n --_bg: var(--color-cat-5);\n}\n.tag[data-color='6'] {\n --_bg: var(--color-cat-6);\n}\n.tag[data-color='7'] {\n --_bg: var(--color-cat-7);\n}\n.tag[data-color='8'] {\n --_bg: var(--color-cat-8);\n}\n\n/* As a link (asChild): the edge firms up on hover. */\n@media (hover: hover) {\n a.tag:hover {\n --_border: var(--color-line-strong);\n --_ink: var(--color-ink);\n }\n a.tag[data-color]:hover {\n --_border: var(--color-cat-ink);\n --_ink: var(--color-cat-ink);\n }\n}\n.tag:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 2px;\n}\n\n.remove {\n position: relative;\n display: inline-grid;\n place-items: center;\n flex: none;\n inline-size: 1.5em;\n block-size: 1.5em;\n padding: 0;\n border: 0;\n border-radius: var(--tag-radius, var(--radius-chip));\n background: transparent;\n color: inherit;\n font-size: inherit;\n opacity: 0.7;\n cursor: pointer;\n transition:\n opacity var(--dur-1) var(--ease-out),\n background-color var(--dur-1) var(--ease-out);\n}\n/* Larger hit target than the glyph, without growing the tag. */\n.remove::after {\n content: '';\n position: absolute;\n inset: -0.35em;\n}\n.remove > svg {\n inline-size: 1.1em;\n block-size: 1.1em;\n}\n@media (hover: hover) {\n .remove:hover {\n opacity: 1;\n background: color-mix(in oklch, currentColor 14%, transparent);\n }\n}\n.remove:focus-visible {\n opacity: 1;\n outline: 2px solid var(--color-focus);\n outline-offset: 1px;\n}\n\n.list {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.list > li {\n display: flex;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
export type AlertTone = 'info' | 'positive' | 'caution' | 'critical' | 'neutral';
|
|
3
|
+
export type AlertVariant = 'soft' | 'outline';
|
|
4
|
+
export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
5
|
+
/** Meaning. `critical` and `caution` interrupt (role="alert"); the rest are polite (role="status"). */
|
|
6
|
+
tone?: AlertTone;
|
|
7
|
+
/**
|
|
8
|
+
* `outline` (default): a neutral hairline frame on the surface — the tone shows only in
|
|
9
|
+
* the glyph and a short tab on the top edge. `soft`: the louder form, a tinted fill with a
|
|
10
|
+
* tone keyline, for notices that must not be missed.
|
|
11
|
+
*/
|
|
12
|
+
variant?: AlertVariant;
|
|
13
|
+
/** Short summary, read first. */
|
|
14
|
+
title?: ReactNode;
|
|
15
|
+
/** Replaces the tone glyph. Pass `null` to drop it. */
|
|
16
|
+
icon?: ReactNode;
|
|
17
|
+
/** A follow-up action, e.g. `<Button size="sm" variant="outline">Retry</Button>`. */
|
|
18
|
+
action?: ReactNode;
|
|
19
|
+
/** Shows a dismiss button that calls this. */
|
|
20
|
+
onDismiss?: () => void;
|
|
21
|
+
/** Accessible name of the dismiss button. Default "Dismiss". */
|
|
22
|
+
dismissLabel?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* An inline message about the thing next to it. A full hairline frame, the tone in the
|
|
26
|
+
* glyph and a short tab on the top edge, the title in the heading face — never a tinted
|
|
27
|
+
* box by default, never a coloured stripe down the left edge.
|
|
28
|
+
*
|
|
29
|
+
* <Alert tone="critical" title="Couldn't load invoices" action={<Button …>Retry</Button>}>
|
|
30
|
+
* The billing service didn't answer. We'll try again in 30 seconds.
|
|
31
|
+
* </Alert>
|
|
32
|
+
*/
|
|
33
|
+
export declare const Alert: import("react").ForwardRefExoticComponent<AlertProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import { CircleCheckIcon as t, CloseIcon as n, ErrorIcon as r, InfoIcon as i, WarningIcon as a } from "../../../icons/icons.js";
|
|
3
|
+
import o from "./Alert.module.js";
|
|
4
|
+
import { forwardRef as s, useId as c } from "react";
|
|
5
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/feedback/Alert/Alert.tsx
|
|
7
|
+
var d = {
|
|
8
|
+
info: /* @__PURE__ */ l(i, {}),
|
|
9
|
+
neutral: /* @__PURE__ */ l(i, {}),
|
|
10
|
+
positive: /* @__PURE__ */ l(t, {}),
|
|
11
|
+
caution: /* @__PURE__ */ l(a, {}),
|
|
12
|
+
critical: /* @__PURE__ */ l(r, {})
|
|
13
|
+
}, f = s(function({ tone: t = "info", variant: r = "outline", title: i, icon: a, action: s, onDismiss: f, dismissLabel: p = "Dismiss", role: m, className: h, children: g, ..._ }, v) {
|
|
14
|
+
let y = c(), b = a === void 0 ? d[t] : a;
|
|
15
|
+
return /* @__PURE__ */ u("div", {
|
|
16
|
+
ref: v,
|
|
17
|
+
role: m ?? (t === "critical" || t === "caution" ? "alert" : "status"),
|
|
18
|
+
"aria-labelledby": i ? y : void 0,
|
|
19
|
+
className: e(o.alert, h),
|
|
20
|
+
"data-kiln-component": "",
|
|
21
|
+
"data-tone": t,
|
|
22
|
+
"data-variant": r,
|
|
23
|
+
"data-dismissible": f ? "" : void 0,
|
|
24
|
+
..._,
|
|
25
|
+
children: [
|
|
26
|
+
b ? /* @__PURE__ */ l("span", {
|
|
27
|
+
className: o.glyph,
|
|
28
|
+
"aria-hidden": "true",
|
|
29
|
+
children: b
|
|
30
|
+
}) : null,
|
|
31
|
+
/* @__PURE__ */ u("div", {
|
|
32
|
+
className: o.body,
|
|
33
|
+
children: [
|
|
34
|
+
i ? /* @__PURE__ */ l("p", {
|
|
35
|
+
id: y,
|
|
36
|
+
className: o.title,
|
|
37
|
+
children: i
|
|
38
|
+
}) : null,
|
|
39
|
+
g ? /* @__PURE__ */ l("div", {
|
|
40
|
+
className: o.description,
|
|
41
|
+
children: g
|
|
42
|
+
}) : null,
|
|
43
|
+
s ? /* @__PURE__ */ l("div", {
|
|
44
|
+
className: o.action,
|
|
45
|
+
children: s
|
|
46
|
+
}) : null
|
|
47
|
+
]
|
|
48
|
+
}),
|
|
49
|
+
f ? /* @__PURE__ */ l("button", {
|
|
50
|
+
type: "button",
|
|
51
|
+
className: o.dismiss,
|
|
52
|
+
"aria-label": p,
|
|
53
|
+
onClick: f,
|
|
54
|
+
children: /* @__PURE__ */ l(n, {})
|
|
55
|
+
}) : null
|
|
56
|
+
]
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//#endregion
|
|
60
|
+
export { f as Alert };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=Alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.js","names":["styles","Alert_module_default","GLYPH","InfoIcon","CircleCheckIcon","WarningIcon","ErrorIcon","Alert","forwardRef","rest","titleId","useId","glyph","icon","tone","role","title","cx","className","variant","onDismiss","children","action","dismissLabel","CloseIcon"],"sources":["../../../../src/components/feedback/Alert/Alert.tsx"],"sourcesContent":["import { forwardRef, useId, type HTMLAttributes, type ReactNode } from 'react'\nimport { CircleCheckIcon, CloseIcon, ErrorIcon, InfoIcon, WarningIcon } from '#icons'\nimport { cx } from '#utils/cx'\nimport styles from './Alert.module.css'\n\nexport type AlertTone = 'info' | 'positive' | 'caution' | 'critical' | 'neutral'\nexport type AlertVariant = 'soft' | 'outline'\n\nexport interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Meaning. `critical` and `caution` interrupt (role=\"alert\"); the rest are polite (role=\"status\"). */\n tone?: AlertTone\n /**\n * `outline` (default): a neutral hairline frame on the surface — the tone shows only in\n * the glyph and a short tab on the top edge. `soft`: the louder form, a tinted fill with a\n * tone keyline, for notices that must not be missed.\n */\n variant?: AlertVariant\n /** Short summary, read first. */\n title?: ReactNode\n /** Replaces the tone glyph. Pass `null` to drop it. */\n icon?: ReactNode\n /** A follow-up action, e.g. `<Button size=\"sm\" variant=\"outline\">Retry</Button>`. */\n action?: ReactNode\n /** Shows a dismiss button that calls this. */\n onDismiss?: () => void\n /** Accessible name of the dismiss button. Default \"Dismiss\". */\n dismissLabel?: string\n}\n\nconst GLYPH: Record<AlertTone, ReactNode> = {\n info: <InfoIcon />,\n neutral: <InfoIcon />,\n positive: <CircleCheckIcon />,\n caution: <WarningIcon />,\n critical: <ErrorIcon />,\n}\n\n/**\n * An inline message about the thing next to it. A full hairline frame, the tone in the\n * glyph and a short tab on the top edge, the title in the heading face — never a tinted\n * box by default, never a coloured stripe down the left edge.\n *\n * <Alert tone=\"critical\" title=\"Couldn't load invoices\" action={<Button …>Retry</Button>}>\n * The billing service didn't answer. We'll try again in 30 seconds.\n * </Alert>\n */\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(function Alert(\n {\n tone = 'info',\n variant = 'outline',\n title,\n icon,\n action,\n onDismiss,\n dismissLabel = 'Dismiss',\n role,\n className,\n children,\n ...rest\n },\n ref,\n) {\n const titleId = useId()\n const glyph = icon === undefined ? GLYPH[tone] : icon\n return (\n <div\n ref={ref}\n role={role ?? (tone === 'critical' || tone === 'caution' ? 'alert' : 'status')}\n aria-labelledby={title ? titleId : undefined}\n className={cx(styles.alert, className)}\n data-kiln-component=\"\"\n data-tone={tone}\n data-variant={variant}\n data-dismissible={onDismiss ? '' : undefined}\n {...rest}\n >\n {glyph ? (\n <span className={styles.glyph} aria-hidden=\"true\">\n {glyph}\n </span>\n ) : null}\n <div className={styles.body}>\n {title ? (\n <p id={titleId} className={styles.title}>\n {title}\n </p>\n ) : null}\n {children ? <div className={styles.description}>{children}</div> : null}\n {action ? <div className={styles.action}>{action}</div> : null}\n </div>\n {onDismiss ? (\n <button\n type=\"button\"\n className={styles.dismiss}\n aria-label={dismissLabel}\n onClick={onDismiss}\n >\n <CloseIcon />\n </button>\n ) : null}\n </div>\n )\n})\n"],"mappings":";;;;;;AA6BA,IAAME,IAAsC;CAC1C,MAAM,kBAACC,GAAD,CAAW,CAAA;CACjB,SAAS,kBAACA,GAAD,CAAW,CAAA;CACpB,UAAU,kBAACC,GAAD,CAAkB,CAAA;CAC5B,SAAS,kBAACC,GAAD,CAAc,CAAA;CACvB,UAAU,kBAACC,GAAD,CAAY,CAAA;AACxB,GAWaC,IAAQC,EAAuC,SAC1D,EACE,UAAO,QACP,aAAU,WACV,UACA,SACA,WACA,cACA,kBAAe,WACf,SACA,cACA,aACA,GAAGC,KAEL,GACA;CACA,IAAMC,IAAUC,EAAM,GAChBC,IAAQC,MAAS,KAAA,IAAYX,EAAMY,KAAQD;CACjD,OACE,kBAAC,OAAD;EACO;EACL,MAAME,MAASD,MAAS,cAAcA,MAAS,YAAY,UAAU;EACrE,mBAAiBE,IAAQN,IAAU,KAAA;EACnC,WAAWO,EAAGjB,EAAO,OAAOkB,CAAS;EACrC,uBAAoB;EACpB,aAAWJ;EACX,gBAAcK;EACd,oBAAkBC,IAAY,KAAK,KAAA;EACnC,GAAIX;EATN,UAAA;GAWGG,IACC,kBAAC,QAAD;IAAM,WAAWZ,EAAO;IAAO,eAAY;IACxC,UAAAY;GACG,CAAA,IACJ;GACJ,kBAAC,OAAD;IAAK,WAAWZ,EAAO;IAAvB,UAAA;KACGgB,IACC,kBAAC,KAAD;MAAG,IAAIN;MAAS,WAAWV,EAAO;MAC/B,UAAAgB;KACA,CAAA,IACD;KACHK,IAAW,kBAAC,OAAD;MAAK,WAAWrB,EAAO;MAAc;KAAc,CAAA,IAAI;KAClEsB,IAAS,kBAAC,OAAD;MAAK,WAAWtB,EAAO;MAAS,UAAAsB;KAAY,CAAA,IAAI;IACvD;;GACJF,IACC,kBAAC,UAAD;IACE,MAAK;IACL,WAAWpB,EAAO;IAClB,cAAYuB;IACZ,SAASH;IAET,UAAA,kBAACI,GAAD,CAAY,CAAA;GACN,CAAA,IACN;EACD;;AAET,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/components/feedback/Alert/Alert.module.css
|
|
2
|
+
var e = "kiln-Alert__alert", t = "kiln-Alert__glyph", n = "kiln-Alert__body", r = "kiln-Alert__title", i = "kiln-Alert__description", a = "kiln-Alert__action", o = "kiln-Alert__dismiss", s = {
|
|
3
|
+
alert: e,
|
|
4
|
+
glyph: t,
|
|
5
|
+
body: n,
|
|
6
|
+
title: r,
|
|
7
|
+
description: i,
|
|
8
|
+
action: a,
|
|
9
|
+
dismiss: o
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { a as action, e as alert, n as body, s as default, i as description, o as dismiss, t as glyph, r as title };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=Alert.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.module.js","names":["alert","glyph","body","title","description","action","dismiss","Alert_module_default"],"sources":["../../../../src/components/feedback/Alert/Alert.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --alert-radius default var(--radius-field)\n * --alert-edge keyline of the default (outline) alert, default var(--color-line-strong)\n * --alert-rule-length the tone tab on the top edge, default var(--space-6)\n * --alert-rule-width its thickness, default calc(var(--border-width) + 2px)\n * --alert-border-mix soft variant: how much tone goes into the keyline, default 55%\n * (the rest is --color-line-strong, so Fiesta's keyline stays inky)\n *\n * Default (`outline`): a neutral hairline frame on the surface. The tone shows in two small\n * places only — the glyph, and a short tab of tone ink set into the top edge above it, like\n * an index tab on a file card. Title in the theme's heading role. No tinted box, no left\n * stripe, no shadow. `soft` keeps the tinted fill with a tone keyline for louder notices.\n */\n.alert {\n --_c: var(--tone-info);\n --_soft: var(--tone-info-soft);\n --_text: var(--tone-info-text);\n --_bg: var(--color-surface);\n --_edge: var(--alert-edge, var(--color-line-strong));\n\n position: relative;\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--space-3);\n padding-block: var(--space-3);\n padding-inline: var(--space-4);\n border: var(--border-width) solid var(--_edge);\n border-radius: var(--alert-radius, var(--radius-field));\n background: var(--_bg);\n color: var(--color-ink);\n font-family: var(--font-text);\n font-size: var(--text-sm);\n line-height: var(--leading-body);\n}\n\n/* The tone tab: set into the top edge, starting over the glyph column. */\n.alert[data-variant='outline']::before {\n content: '';\n position: absolute;\n inset-block-start: calc(var(--border-width) * -1);\n inset-inline-start: var(--space-4);\n inline-size: var(--alert-rule-length, var(--space-6));\n block-size: var(--alert-rule-width, calc(var(--border-width) + 2px));\n background: var(--_c);\n}\n\n.alert[data-tone='positive'] {\n --_c: var(--tone-positive);\n --_soft: var(--tone-positive-soft);\n --_text: var(--tone-positive-text);\n}\n.alert[data-tone='caution'] {\n --_c: var(--tone-caution);\n --_soft: var(--tone-caution-soft);\n --_text: var(--tone-caution-text);\n}\n.alert[data-tone='critical'] {\n --_c: var(--tone-critical);\n --_soft: var(--tone-critical-soft);\n --_text: var(--tone-critical-text);\n}\n.alert[data-tone='neutral'] {\n --_c: var(--color-ink-subtle);\n --_soft: var(--color-surface-sunken);\n --_text: var(--color-ink-muted);\n}\n\n.alert[data-variant='soft'] {\n --_bg: var(--_soft);\n --_edge: color-mix(in oklab, var(--_c) var(--alert-border-mix, 55%), var(--color-line-strong));\n}\n.alert[data-variant='soft'][data-tone='neutral'] {\n --_edge: var(--color-line-strong);\n}\n\n/* No glyph: body starts in the first column. */\n.alert:not(:has(> .glyph)) {\n grid-template-columns: minmax(0, 1fr) auto;\n}\n\n.glyph {\n /* Centred on the first line's box: the title's when there is one, else the body's. */\n --_line: calc(var(--text-sm) * var(--leading-body));\n\n display: inline-flex;\n block-size: var(--_line);\n align-items: center;\n color: var(--_text);\n font-size: var(--text-lg);\n}\n.alert:has(> .body > .title:first-child) > .glyph {\n --_line: calc(var(--text-md) * var(--leading-snug));\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n min-inline-size: 0;\n}\n\n.title {\n margin: 0;\n color: var(--color-ink);\n font-family: var(--heading-font);\n font-size: var(--text-md);\n font-weight: var(--heading-weight);\n letter-spacing: var(--heading-tracking);\n text-transform: var(--heading-transform);\n line-height: var(--leading-snug);\n text-wrap: balance;\n}\n\n.description {\n color: var(--color-ink-muted);\n text-wrap: pretty;\n}\n.body > .description:first-child {\n color: var(--color-ink);\n}\n\n.action {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-2);\n margin-block-start: var(--space-2);\n}\n\n.dismiss {\n display: grid;\n place-items: center;\n inline-size: var(--control-sm);\n block-size: var(--control-sm);\n margin-block: calc(var(--space-2) * -1);\n margin-inline-end: calc(var(--space-2) * -1);\n padding: 0;\n border: 0;\n border-radius: var(--radius-action);\n background: transparent;\n color: var(--color-ink-muted);\n font-size: var(--text-md);\n cursor: pointer;\n transition:\n background-color var(--dur-1) var(--ease-out),\n color var(--dur-1) var(--ease-out);\n}\n@media (hover: hover) {\n .dismiss:hover {\n background: color-mix(in oklch, var(--_c) 18%, var(--_bg));\n color: var(--color-ink);\n }\n}\n.dismiss:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 2px;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { Size, Tone } from '../../../utils/tokens.js';
|
|
3
|
+
export type LiveIndicatorVariant = 'inline' | 'pill';
|
|
4
|
+
export interface LiveIndicatorProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
/** What's live, or how far in: "Live", "72'", "Recording". Default "Live". */
|
|
6
|
+
label?: ReactNode;
|
|
7
|
+
/** Colour of the dot (and the label in `inline`). Default `accent` — live *is* the accent's job. */
|
|
8
|
+
tone?: Tone;
|
|
9
|
+
/** A ring that swells out of the dot. Stills under reduced motion. Default `true`. */
|
|
10
|
+
pulse?: boolean;
|
|
11
|
+
/** `inline` sits in running text; `pill` is a keylined chip for cards and list rows. */
|
|
12
|
+
variant?: LiveIndicatorVariant;
|
|
13
|
+
size?: Exclude<Size, 'lg'>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* "This is happening now." A dot with a slow ring and a short label — for a live call,
|
|
17
|
+
* an in-progress sync, a recording.
|
|
18
|
+
*
|
|
19
|
+
* Deliberately not a live region: a minute counter that announces itself every minute is
|
|
20
|
+
* noise. If the change matters, announce it where it happens.
|
|
21
|
+
*/
|
|
22
|
+
export declare const LiveIndicator: import("react").ForwardRefExoticComponent<LiveIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import t from "./LiveIndicator.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/feedback/LiveIndicator/LiveIndicator.tsx
|
|
6
|
+
var a = n(function({ label: n = "Live", tone: a = "accent", pulse: o = !0, variant: s = "inline", size: c = "md", className: l, ...u }, d) {
|
|
7
|
+
return /* @__PURE__ */ i("span", {
|
|
8
|
+
ref: d,
|
|
9
|
+
className: e(t.live, l),
|
|
10
|
+
"data-tone": a,
|
|
11
|
+
"data-variant": s,
|
|
12
|
+
"data-size": c,
|
|
13
|
+
"data-pulse": o || void 0,
|
|
14
|
+
...u,
|
|
15
|
+
children: [/* @__PURE__ */ r("span", {
|
|
16
|
+
className: t.dot,
|
|
17
|
+
"aria-hidden": "true"
|
|
18
|
+
}), /* @__PURE__ */ r("span", {
|
|
19
|
+
className: t.label,
|
|
20
|
+
children: n
|
|
21
|
+
})]
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//#endregion
|
|
25
|
+
export { a as LiveIndicator };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=LiveIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveIndicator.js","names":["styles","LiveIndicator_module_default","LiveIndicator","forwardRef","rest","cx","className","tone","variant","size","pulse","label"],"sources":["../../../../src/components/feedback/LiveIndicator/LiveIndicator.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from 'react'\nimport { cx } from '#utils/cx'\nimport type { Size, Tone } from '#utils/tokens'\nimport styles from './LiveIndicator.module.css'\n\nexport type LiveIndicatorVariant = 'inline' | 'pill'\n\nexport interface LiveIndicatorProps extends HTMLAttributes<HTMLSpanElement> {\n /** What's live, or how far in: \"Live\", \"72'\", \"Recording\". Default \"Live\". */\n label?: ReactNode\n /** Colour of the dot (and the label in `inline`). Default `accent` — live *is* the accent's job. */\n tone?: Tone\n /** A ring that swells out of the dot. Stills under reduced motion. Default `true`. */\n pulse?: boolean\n /** `inline` sits in running text; `pill` is a keylined chip for cards and list rows. */\n variant?: LiveIndicatorVariant\n size?: Exclude<Size, 'lg'>\n}\n\n/**\n * \"This is happening now.\" A dot with a slow ring and a short label — for a live call,\n * an in-progress sync, a recording.\n *\n * Deliberately not a live region: a minute counter that announces itself every minute is\n * noise. If the change matters, announce it where it happens.\n */\nexport const LiveIndicator = forwardRef<HTMLSpanElement, LiveIndicatorProps>(function LiveIndicator(\n {\n label = 'Live',\n tone = 'accent',\n pulse = true,\n variant = 'inline',\n size = 'md',\n className,\n ...rest\n },\n ref,\n) {\n return (\n <span\n ref={ref}\n className={cx(styles.live, className)}\n data-tone={tone}\n data-variant={variant}\n data-size={size}\n data-pulse={pulse || undefined}\n {...rest}\n >\n <span className={styles.dot} aria-hidden=\"true\" />\n <span className={styles.label}>{label}</span>\n </span>\n )\n})\n"],"mappings":";;;;;AA0BA,IAAaE,IAAgBC,EAAgD,SAC3E,EACE,WAAQ,QACR,UAAO,UACP,WAAQ,IACR,aAAU,UACV,UAAO,MACP,cACA,GAAGC,KAEL,GACA;CACA,OACE,kBAAC,QAAD;EACO;EACL,WAAWC,EAAGL,EAAO,MAAMM,CAAS;EACpC,aAAWC;EACX,gBAAcC;EACd,aAAWC;EACX,cAAYC,KAAS,KAAA;EACrB,GAAIN;EAPN,UAAA,CASE,kBAAC,QAAD;GAAM,WAAWJ,EAAO;GAAK,eAAY;EAAQ,CAAA,GACjD,kBAAC,QAAD;GAAM,WAAWA,EAAO;GAAQ,UAAAW;EAAY,CAAA,CACxC;;AAEV,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/feedback/LiveIndicator/LiveIndicator.module.css
|
|
2
|
+
var e = "kiln-LiveIndicator__live", t = "kiln-LiveIndicator__dot", n = "kiln-LiveIndicator__ring", r = {
|
|
3
|
+
live: e,
|
|
4
|
+
dot: t,
|
|
5
|
+
ring: n
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { r as default, t as dot, e as live, n as ring };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=LiveIndicator.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveIndicator.module.js","names":["live","dot","ring","LiveIndicator_module_default"],"sources":["../../../../src/components/feedback/LiveIndicator/LiveIndicator.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --live-dot-size default 0.5em\n * --live-dot-radius default 50%\n * --live-pulse-scale how far the ring swells, default 2.6\n * --live-pill-radius default var(--radius-chip)\n *\n * --live-label-color default var(--_t): the tone's text colour. Set to currentColor\n * to let the label follow its container (e.g. on a filled band).\n *\n * Tones map to a dot colour (--_c) and a text colour (--_t).\n * --live-dot-ring keyline around the dot, default calc(var(--border-width) - 1px)\n */\n.live {\n --_c: var(--color-accent);\n --_t: var(--color-accent-text);\n\n display: inline-flex;\n align-items: center;\n gap: 0.45em;\n font-family: var(--font-text);\n font-size: var(--text-sm);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n line-height: 1;\n font-variant-numeric: tabular-nums lining-nums;\n white-space: nowrap;\n color: var(--live-label-color, var(--_t));\n vertical-align: middle;\n}\n\n.live[data-size='sm'] {\n font-size: var(--text-xs);\n}\n\n.live[data-tone='neutral'] {\n --_c: var(--color-ink-muted);\n --_t: var(--color-ink-muted);\n}\n.live[data-tone='positive'] {\n --_c: var(--tone-positive);\n --_t: var(--tone-positive-text);\n}\n.live[data-tone='caution'] {\n --_c: var(--tone-caution);\n --_t: var(--tone-caution-text);\n}\n.live[data-tone='critical'] {\n --_c: var(--tone-critical);\n --_t: var(--tone-critical-text);\n}\n.live[data-tone='info'] {\n --_c: var(--tone-info);\n --_t: var(--tone-info-text);\n}\n\n/* Pill: a keylined chip. The label goes to ink so the dot carries the colour. */\n.live[data-variant='pill'] {\n padding-block: 0.4em;\n padding-inline: 0.6em 0.75em;\n border: var(--border-width) solid var(--color-line-strong);\n border-radius: var(--live-pill-radius, var(--radius-chip));\n background: var(--color-surface);\n color: var(--color-ink);\n}\n\n.dot {\n /* Keyline ring: 0 in hairline themes, 1px of ink where the theme draws 2px rules. */\n box-shadow: 0 0 0 var(--live-dot-ring, calc(var(--border-width) - 1px)) var(--color-line-strong);\n position: relative;\n flex: none;\n inline-size: var(--live-dot-size, 0.5em);\n block-size: var(--live-dot-size, 0.5em);\n border-radius: var(--live-dot-radius, 50%);\n background: var(--_c);\n}\n\n.live[data-pulse] .dot::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: var(--_c);\n animation: ring calc(var(--dur-3) * 5) var(--ease-out) infinite;\n}\n\n@keyframes ring {\n 0% {\n scale: 1;\n opacity: 0.55;\n }\n 70%,\n 100% {\n scale: var(--live-pulse-scale, 2.6);\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .live[data-pulse] .dot::after {\n animation: none;\n opacity: 0;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ReactNode, type TimeHTMLAttributes } from 'react';
|
|
2
|
+
import { type RelativeTimeStyle } from './format.js';
|
|
3
|
+
export interface RelativeTimeProps extends Omit<TimeHTMLAttributes<HTMLTimeElement>, 'dateTime' | 'children' | 'prefix'> {
|
|
4
|
+
/** The moment to describe. Anything `new Date()` accepts. */
|
|
5
|
+
date: Date | string | number;
|
|
6
|
+
/** BCP 47 locale. Default `en-AU`. */
|
|
7
|
+
locale?: string;
|
|
8
|
+
/** Wording length: "3 minutes ago" (`long`), "3 mins ago" (`short`, default), `narrow`. */
|
|
9
|
+
format?: RelativeTimeStyle;
|
|
10
|
+
/** Re-render every N ms so the text stays true. `0` disables. Default 30 000. */
|
|
11
|
+
updateInterval?: number;
|
|
12
|
+
/** Text before the time, e.g. "Updated". A space is added for you. */
|
|
13
|
+
prefix?: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A `<time>` that says how long ago (or until) something happened, and keeps itself current.
|
|
17
|
+
*
|
|
18
|
+
* SSR: the server and the first client render show the absolute date (no clock is read
|
|
19
|
+
* during render, so hydration can't disagree about "now"); the relative wording appears
|
|
20
|
+
* once mounted. The absolute date stays available as the `title`.
|
|
21
|
+
*
|
|
22
|
+
* <RelativeTime date={fetchedAt} prefix="Updated" />
|
|
23
|
+
*/
|
|
24
|
+
export declare const RelativeTime: import("react").ForwardRefExoticComponent<RelativeTimeProps & import("react").RefAttributes<HTMLTimeElement>>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { formatAbsoluteTime as e, formatRelativeTime as t, toDate as n } from "./format.js";
|
|
2
|
+
import r from "./RelativeTime.module.js";
|
|
3
|
+
import { forwardRef as i, useEffect as a, useState as o } from "react";
|
|
4
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/feedback/RelativeTime/RelativeTime.tsx
|
|
6
|
+
var l = i(function({ date: i, locale: l = "en-AU", format: u = "short", updateInterval: d = 3e4, prefix: f, title: p, className: m, ...h }, g) {
|
|
7
|
+
let [_, v] = o(null);
|
|
8
|
+
a(() => {
|
|
9
|
+
if (v(Date.now()), !d) return;
|
|
10
|
+
let e = setInterval(() => {
|
|
11
|
+
v(Date.now());
|
|
12
|
+
}, d);
|
|
13
|
+
return () => {
|
|
14
|
+
clearInterval(e);
|
|
15
|
+
};
|
|
16
|
+
}, [d]);
|
|
17
|
+
let y = n(i), b = !Number.isNaN(y.getTime()), x = b ? e(y, l) : "", S = b ? _ === null ? x : t(y, _, l, u) : "";
|
|
18
|
+
return /* @__PURE__ */ c("time", {
|
|
19
|
+
ref: g,
|
|
20
|
+
dateTime: b ? y.toISOString() : void 0,
|
|
21
|
+
title: p ?? x,
|
|
22
|
+
className: m,
|
|
23
|
+
suppressHydrationWarning: !0,
|
|
24
|
+
...h,
|
|
25
|
+
children: [f ? /* @__PURE__ */ c("span", {
|
|
26
|
+
className: r.prefix,
|
|
27
|
+
children: [f, " "]
|
|
28
|
+
}) : null, /* @__PURE__ */ s("span", {
|
|
29
|
+
className: r.value,
|
|
30
|
+
suppressHydrationWarning: !0,
|
|
31
|
+
children: S
|
|
32
|
+
})]
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//#endregion
|
|
36
|
+
export { l as RelativeTime };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=RelativeTime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelativeTime.js","names":["styles","RelativeTime_module_default","RelativeTime","forwardRef","rest","now","setNow","useState","updateInterval","id","d","toDate","date","valid","absolute","formatAbsoluteTime","locale","text","formatRelativeTime","format","title","prefix"],"sources":["../../../../src/components/feedback/RelativeTime/RelativeTime.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState, type ReactNode, type TimeHTMLAttributes } from 'react'\nimport { formatAbsoluteTime, formatRelativeTime, toDate, type RelativeTimeStyle } from './format'\nimport styles from './RelativeTime.module.css'\n\nexport interface RelativeTimeProps extends Omit<\n TimeHTMLAttributes<HTMLTimeElement>,\n 'dateTime' | 'children' | 'prefix'\n> {\n /** The moment to describe. Anything `new Date()` accepts. */\n date: Date | string | number\n /** BCP 47 locale. Default `en-AU`. */\n locale?: string\n /** Wording length: \"3 minutes ago\" (`long`), \"3 mins ago\" (`short`, default), `narrow`. */\n format?: RelativeTimeStyle\n /** Re-render every N ms so the text stays true. `0` disables. Default 30 000. */\n updateInterval?: number\n /** Text before the time, e.g. \"Updated\". A space is added for you. */\n prefix?: ReactNode\n}\n\n/**\n * A `<time>` that says how long ago (or until) something happened, and keeps itself current.\n *\n * SSR: the server and the first client render show the absolute date (no clock is read\n * during render, so hydration can't disagree about \"now\"); the relative wording appears\n * once mounted. The absolute date stays available as the `title`.\n *\n * <RelativeTime date={fetchedAt} prefix=\"Updated\" />\n */\nexport const RelativeTime = forwardRef<HTMLTimeElement, RelativeTimeProps>(function RelativeTime(\n {\n date,\n locale = 'en-AU',\n format = 'short',\n updateInterval = 30_000,\n prefix,\n title,\n className,\n ...rest\n },\n ref,\n) {\n const [now, setNow] = useState<number | null>(null)\n\n useEffect(() => {\n setNow(Date.now())\n if (!updateInterval) return\n const id = setInterval(() => {\n setNow(Date.now())\n }, updateInterval)\n return () => {\n clearInterval(id)\n }\n }, [updateInterval])\n\n const d = toDate(date)\n const valid = !Number.isNaN(d.getTime())\n const absolute = valid ? formatAbsoluteTime(d, locale) : ''\n const text = !valid ? '' : now === null ? absolute : formatRelativeTime(d, now, locale, format)\n\n return (\n <time\n ref={ref}\n dateTime={valid ? d.toISOString() : undefined}\n title={title ?? absolute}\n className={className}\n suppressHydrationWarning\n {...rest}\n >\n {prefix ? <span className={styles.prefix}>{prefix} </span> : null}\n {/* Server renders the absolute date in its timezone; the client re-renders relative text on mount. */}\n <span className={styles.value} suppressHydrationWarning>\n {text}\n </span>\n </time>\n )\n})\n"],"mappings":";;;;;AA6BA,IAAaE,IAAeC,EAA+C,SACzE,EACE,SACA,YAAS,SACT,YAAS,SACT,oBAAiB,KACjB,WACA,UACA,cACA,GAAGC,KAEL,GACA;CACA,IAAM,CAACC,GAAKC,KAAUC,EAAwB,IAAI;CAElD,QAAgB;EAEd,IADAD,EAAO,KAAK,IAAI,CAAC,GACb,CAACE,GAAgB;EACrB,IAAMC,IAAK,kBAAkB;GAC3B,EAAO,KAAK,IAAI,CAAC;EACnB,GAAGD,CAAc;EACjB,aAAa;GACX,cAAcC,CAAE;EAClB;CACF,GAAG,CAACD,CAAc,CAAC;CAEnB,IAAME,IAAIC,EAAOC,CAAI,GACfC,IAAQ,CAAC,OAAO,MAAMH,EAAE,QAAQ,CAAC,GACjCI,IAAWD,IAAQE,EAAmBL,GAAGM,CAAM,IAAI,IACnDC,IAAQJ,IAAaR,MAAQ,OAAOS,IAAWI,EAAmBR,GAAGL,GAAKW,GAAQG,CAAM,IAAxE;CAEtB,OACE,kBAAC,QAAD;EACO;EACL,UAAUN,IAAQH,EAAE,YAAY,IAAI,KAAA;EACpC,OAAOU,KAASN;EACL;EACX,0BAAA;EACA,GAAIV;EANN,UAAA,CAQGiB,IAAS,kBAAC,QAAD;GAAM,WAAWrB,EAAO;GAAxB,UAAA,CAAiCqB,GAAO,GAAO;EAAI,CAAA,IAAA,MAE7D,kBAAC,QAAD;GAAM,WAAWrB,EAAO;GAAO,0BAAA;GAC5B,UAAAiB;EACG,CAAA,CACF;;AAEV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelativeTime.module.js","names":["value","RelativeTime_module_default"],"sources":["../../../../src/components/feedback/RelativeTime/RelativeTime.module.css"],"sourcesContent":["/*\n * The time text updates in place, so its figures are tabular and don't shift the line.\n * The prefix (\"Updated\") is ordinary text: proportional figures, the surrounding face.\n */\n.value {\n font-variant-numeric: tabular-nums lining-nums;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type RelativeTimeStyle = 'long' | 'short' | 'narrow';
|
|
2
|
+
export declare function toDate(date: Date | string | number): Date;
|
|
3
|
+
/**
|
|
4
|
+
* "3 mins ago", "in 2 hours", "yesterday". Pure; exported for places that need the
|
|
5
|
+
* string without the element (a tooltip, a toast).
|
|
6
|
+
* Anything under 45 seconds reads as "now".
|
|
7
|
+
*/
|
|
8
|
+
export declare function formatRelativeTime(date: Date | string | number, now?: number, locale?: string, format?: RelativeTimeStyle): string;
|
|
9
|
+
/** "Monday 28 September 2026 at 2:05 pm" — used for the tooltip and the first render. */
|
|
10
|
+
export declare function formatAbsoluteTime(date: Date | string | number, locale?: string): string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
//#region src/components/feedback/RelativeTime/format.ts
|
|
2
|
+
var e = [
|
|
3
|
+
[
|
|
4
|
+
45,
|
|
5
|
+
"second",
|
|
6
|
+
1
|
|
7
|
+
],
|
|
8
|
+
[
|
|
9
|
+
2700,
|
|
10
|
+
"minute",
|
|
11
|
+
60
|
|
12
|
+
],
|
|
13
|
+
[
|
|
14
|
+
79200,
|
|
15
|
+
"hour",
|
|
16
|
+
3600
|
|
17
|
+
],
|
|
18
|
+
[
|
|
19
|
+
2246400,
|
|
20
|
+
"day",
|
|
21
|
+
86400
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
27648e3,
|
|
25
|
+
"month",
|
|
26
|
+
2630016
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
Infinity,
|
|
30
|
+
"year",
|
|
31
|
+
31557600
|
|
32
|
+
]
|
|
33
|
+
];
|
|
34
|
+
function t(e) {
|
|
35
|
+
return e instanceof Date ? e : new Date(e);
|
|
36
|
+
}
|
|
37
|
+
function n(n, r = Date.now(), i = "en-AU", a = "short") {
|
|
38
|
+
let o = (t(n).getTime() - r) / 1e3, s = Math.abs(o), c = new Intl.RelativeTimeFormat(i, {
|
|
39
|
+
numeric: "auto",
|
|
40
|
+
style: a
|
|
41
|
+
});
|
|
42
|
+
for (let [t, n, r] of e) if (s < t) {
|
|
43
|
+
let e = n === "second" ? 0 : Math.round(o / r);
|
|
44
|
+
return c.format(e, n);
|
|
45
|
+
}
|
|
46
|
+
return c.format(0, "second");
|
|
47
|
+
}
|
|
48
|
+
function r(e, n = "en-AU") {
|
|
49
|
+
return new Intl.DateTimeFormat(n, {
|
|
50
|
+
dateStyle: "full",
|
|
51
|
+
timeStyle: "short"
|
|
52
|
+
}).format(t(e));
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { r as formatAbsoluteTime, n as formatRelativeTime, t as toDate };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","names":["STEPS","toDate","date","formatRelativeTime","seconds","now","abs","rtf","locale","format","limit","unit","size","value","formatAbsoluteTime"],"sources":["../../../../src/components/feedback/RelativeTime/format.ts"],"sourcesContent":["export type RelativeTimeStyle = 'long' | 'short' | 'narrow'\n\ntype Unit = Intl.RelativeTimeFormatUnit\n\nconst STEPS: [limit: number, unit: Unit, size: number][] = [\n [45, 'second', 1],\n [45 * 60, 'minute', 60],\n [22 * 3600, 'hour', 3600],\n [26 * 86400, 'day', 86400],\n [320 * 86400, 'month', 30.44 * 86400],\n [Infinity, 'year', 365.25 * 86400],\n]\n\nexport function toDate(date: Date | string | number): Date {\n return date instanceof Date ? date : new Date(date)\n}\n\n/**\n * \"3 mins ago\", \"in 2 hours\", \"yesterday\". Pure; exported for places that need the\n * string without the element (a tooltip, a toast).\n * Anything under 45 seconds reads as \"now\".\n */\nexport function formatRelativeTime(\n date: Date | string | number,\n now: number = Date.now(),\n locale = 'en-AU',\n format: RelativeTimeStyle = 'short',\n): string {\n const seconds = (toDate(date).getTime() - now) / 1000\n const abs = Math.abs(seconds)\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto', style: format })\n for (const [limit, unit, size] of STEPS) {\n if (abs < limit) {\n const value = unit === 'second' ? 0 : Math.round(seconds / size)\n return rtf.format(value, unit)\n }\n }\n return rtf.format(0, 'second')\n}\n\n/** \"Monday 28 September 2026 at 2:05 pm\" — used for the tooltip and the first render. */\nexport function formatAbsoluteTime(date: Date | string | number, locale = 'en-AU'): string {\n return new Intl.DateTimeFormat(locale, { dateStyle: 'full', timeStyle: 'short' }).format(\n toDate(date),\n )\n}\n"],"mappings":";AAIA,IAAMA,IAAqD;CACzD;EAAC;EAAI;EAAU;CAAC;CAChB;EAAC;EAAS;EAAU;CAAE;CACtB;EAAC;EAAW;EAAQ;CAAI;CACxB;EAAC;EAAY;EAAO;CAAK;CACzB;EAAC;EAAa;EAAS;CAAa;CACpC;EAAC;EAAU;EAAQ;CAAc;AACnC;AAEA,SAAgBC,EAAO,GAAoC;CACzD,OAAOC,aAAgB,OAAOA,IAAO,IAAI,KAAKA,CAAI;AACpD;AAOA,SAAgBC,EACd,GACA,IAAc,KAAK,IAAI,GACvB,IAAS,SACT,IAA4B,SACpB;CACR,IAAMC,KAAWH,EAAOC,CAAI,CAAC,CAAC,QAAQ,IAAIG,KAAO,KAC3CC,IAAM,KAAK,IAAIF,CAAO,GACtBG,IAAM,IAAI,KAAK,mBAAmBC,GAAQ;EAAE,SAAS;EAAQ,OAAOC;CAAO,CAAC;CAClF,KAAK,IAAM,CAACC,GAAOC,GAAMC,MAASZ,GAChC,IAAIM,IAAMI,GAAO;EACf,IAAMG,IAAQF,MAAS,WAAW,IAAI,KAAK,MAAMP,IAAUQ,CAAI;EAC/D,OAAOL,EAAI,OAAOM,GAAOF,CAAI;CAC/B;CAEF,OAAOJ,EAAI,OAAO,GAAG,QAAQ;AAC/B;AAGA,SAAgBO,EAAmB,GAA8B,IAAS,SAAiB;CACzF,OAAO,IAAI,KAAK,eAAeN,GAAQ;EAAE,WAAW;EAAQ,WAAW;CAAQ,CAAC,CAAC,CAAC,OAChFP,EAAOC,CAAI,CACb;AACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
export interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
size?: 'sm' | 'md' | 'lg' | 'inherit';
|
|
4
|
+
/** Accessible label. Defaults to "Loading". Pass `null` when a parent already announces busy state. */
|
|
5
|
+
label?: string | null;
|
|
6
|
+
}
|
|
7
|
+
/** Indeterminate progress. Three bars that fill in turn — not the stock rotating ring. */
|
|
8
|
+
export declare const Spinner: import("react").ForwardRefExoticComponent<SpinnerProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { cx as e } from "../../../utils/cx.js";
|
|
2
|
+
import t from "./Spinner.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/feedback/Spinner/Spinner.tsx
|
|
6
|
+
var a = n(function({ size: n = "inherit", label: a = "Loading", className: o, ...s }, c) {
|
|
7
|
+
return /* @__PURE__ */ i("span", {
|
|
8
|
+
ref: c,
|
|
9
|
+
className: e(t.root, o),
|
|
10
|
+
"data-size": n,
|
|
11
|
+
role: a ? "status" : void 0,
|
|
12
|
+
"aria-label": a ?? void 0,
|
|
13
|
+
"aria-hidden": !a || void 0,
|
|
14
|
+
...s,
|
|
15
|
+
children: [
|
|
16
|
+
/* @__PURE__ */ r("span", { className: t.bar }),
|
|
17
|
+
/* @__PURE__ */ r("span", { className: t.bar }),
|
|
18
|
+
/* @__PURE__ */ r("span", { className: t.bar })
|
|
19
|
+
]
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
export { a as Spinner };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","names":["styles","Spinner_module_default","Spinner","forwardRef","rest","cx","className","size","label"],"sources":["../../../../src/components/feedback/Spinner/Spinner.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\nimport { cx } from '#utils/cx'\nimport styles from './Spinner.module.css'\n\nexport interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {\n size?: 'sm' | 'md' | 'lg' | 'inherit'\n /** Accessible label. Defaults to \"Loading\". Pass `null` when a parent already announces busy state. */\n label?: string | null\n}\n\n/** Indeterminate progress. Three bars that fill in turn — not the stock rotating ring. */\nexport const Spinner = forwardRef<HTMLSpanElement, SpinnerProps>(function Spinner(\n { size = 'inherit', label = 'Loading', className, ...rest },\n ref,\n) {\n return (\n <span\n ref={ref}\n className={cx(styles.root, className)}\n data-size={size}\n role={label ? 'status' : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n {...rest}\n >\n <span className={styles.bar} />\n <span className={styles.bar} />\n <span className={styles.bar} />\n </span>\n )\n})\n"],"mappings":";;;;;AAWA,IAAaE,IAAUC,EAA0C,SAC/D,EAAE,UAAO,WAAW,WAAQ,WAAW,cAAW,GAAGC,KACrD,GACA;CACA,OACE,kBAAC,QAAD;EACO;EACL,WAAWC,EAAGL,EAAO,MAAMM,CAAS;EACpC,aAAWC;EACX,MAAMC,IAAQ,WAAW,KAAA;EACzB,cAAYA,KAAS,KAAA;EACrB,eAAa,MAAQ,KAAA;EACrB,GAAIJ;EAPN,UAAA;GASE,kBAAC,QAAD,EAAM,WAAWJ,EAAO,IAAM,CAAA;GAC9B,kBAAC,QAAD,EAAM,WAAWA,EAAO,IAAM,CAAA;GAC9B,kBAAC,QAAD,EAAM,WAAWA,EAAO,IAAM,CAAA;EAC1B;;AAEV,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/feedback/Spinner/Spinner.module.css
|
|
2
|
+
var e = "kiln-Spinner__root", t = "kiln-Spinner__bar", n = "kiln-Spinner__fill", r = {
|
|
3
|
+
root: e,
|
|
4
|
+
bar: t,
|
|
5
|
+
fill: n
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { t as bar, r as default, n as fill, e as root };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=Spinner.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.module.js","names":["root","bar","fill","Spinner_module_default"],"sources":["../../../../src/components/feedback/Spinner/Spinner.module.css"],"sourcesContent":[".root {\n display: inline-flex;\n align-items: flex-end;\n gap: 0.14em;\n inline-size: 1em;\n block-size: 1em;\n color: var(--spinner-color, currentColor);\n}\n\n.root[data-size='sm'] {\n font-size: 0.875rem;\n}\n.root[data-size='md'] {\n font-size: 1.25rem;\n}\n.root[data-size='lg'] {\n font-size: 2rem;\n}\n\n.bar {\n flex: 1;\n block-size: 100%;\n background: currentColor;\n border-radius: 1px;\n transform-origin: bottom;\n animation: fill calc(var(--dur-3) * 3) var(--ease-in-out) infinite;\n}\n.bar:nth-child(2) {\n animation-delay: var(--dur-3);\n}\n.bar:nth-child(3) {\n animation-delay: calc(var(--dur-3) * 2);\n}\n\n@keyframes fill {\n 0%,\n 100% {\n transform: scaleY(0.25);\n opacity: 0.45;\n }\n 33% {\n transform: scaleY(1);\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .bar {\n animation: none;\n opacity: 0.6;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { Tone } from '../../../utils/tokens.js';
|
|
3
|
+
export interface StatusDotProps extends HTMLAttributes<HTMLSpanElement> {
|
|
4
|
+
/** State colour. Default `neutral`. */
|
|
5
|
+
tone?: Tone;
|
|
6
|
+
/** What the colour means: "Paid", "Through to the round of 32", "Deploying". Always required — colour alone is not information. */
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Keep the label for screen readers only (e.g. in a dense table with a legend). */
|
|
9
|
+
labelHidden?: boolean;
|
|
10
|
+
size?: 'sm' | 'md';
|
|
11
|
+
}
|
|
12
|
+
/** A small static dot plus a label. For states that sit still; for "happening now" use LiveIndicator. */
|
|
13
|
+
export declare const StatusDot: import("react").ForwardRefExoticComponent<StatusDotProps & import("react").RefAttributes<HTMLSpanElement>>;
|