@panneau/ui 5.0.0-alpha.0 → 5.0.0-alpha.2
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/README.md +280 -6
- package/bin/check-theme.js +5 -0
- package/dist/alert/Alert.css +28 -42
- package/dist/alert/Alert.d.ts +18 -4
- package/dist/alert/Alert.d.ts.map +1 -1
- package/dist/alert/Alert.js +4 -3
- package/dist/alert/Alert.js.map +1 -1
- package/dist/alert/Alert.module.js +14 -16
- package/dist/alert/Alert.module.js.map +1 -1
- package/dist/alert/tokens.d.ts +3 -0
- package/dist/alert/tokens.d.ts.map +1 -0
- package/dist/alert/tokens.js +21 -0
- package/dist/alert/tokens.js.map +1 -0
- package/dist/badge/Badge.css +24 -36
- package/dist/badge/Badge.d.ts +18 -3
- package/dist/badge/Badge.d.ts.map +1 -1
- package/dist/badge/Badge.js +3 -2
- package/dist/badge/Badge.js.map +1 -1
- package/dist/badge/Badge.module.js +9 -13
- package/dist/badge/Badge.module.js.map +1 -1
- package/dist/badge/tokens.d.ts +3 -0
- package/dist/badge/tokens.d.ts.map +1 -0
- package/dist/badge/tokens.js +23 -0
- package/dist/badge/tokens.js.map +1 -0
- package/dist/button/Button.css +58 -42
- package/dist/button/Button.d.ts +30 -3
- package/dist/button/Button.d.ts.map +1 -1
- package/dist/button/Button.js +27 -2
- package/dist/button/Button.js.map +1 -1
- package/dist/button/Button.module.js +14 -14
- package/dist/button/Button.module.js.map +1 -1
- package/dist/button/tokens.d.ts +3 -0
- package/dist/button/tokens.d.ts.map +1 -0
- package/dist/button/tokens.js +25 -0
- package/dist/button/tokens.js.map +1 -0
- package/dist/card/Card.css +27 -20
- package/dist/card/Card.js +1 -1
- package/dist/card/Card.js.map +1 -1
- package/dist/card/Card.module.js +5 -5
- package/dist/card/Card.module.js.map +1 -1
- package/dist/card/tokens.d.ts +3 -0
- package/dist/card/tokens.d.ts.map +1 -0
- package/dist/card/tokens.js +31 -0
- package/dist/card/tokens.js.map +1 -0
- package/dist/checkbox/Checkbox.css +22 -21
- package/dist/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/checkbox/Checkbox.js +1 -0
- package/dist/checkbox/Checkbox.js.map +1 -1
- package/dist/checkbox/Checkbox.module.js +4 -4
- package/dist/checkbox/Checkbox.module.js.map +1 -1
- package/dist/checkbox/ChoiceChrome.d.ts +3 -1
- package/dist/checkbox/ChoiceChrome.d.ts.map +1 -1
- package/dist/checkbox/ChoiceChrome.js +2 -2
- package/dist/checkbox/ChoiceChrome.js.map +1 -1
- package/dist/checkbox/tokens.d.ts +3 -0
- package/dist/checkbox/tokens.d.ts.map +1 -0
- package/dist/checkbox/tokens.js +21 -0
- package/dist/checkbox/tokens.js.map +1 -0
- package/dist/combo-box/ComboBox.css +4 -4
- package/dist/combo-box/ComboBox.js +1 -1
- package/dist/combo-box/ComboBox.js.map +1 -1
- package/dist/combo-box/ComboBox.module.js +3 -3
- package/dist/container/Container.css +32 -0
- package/dist/container/Container.d.ts +15 -0
- package/dist/container/Container.d.ts.map +1 -0
- package/dist/container/Container.js +18 -0
- package/dist/container/Container.js.map +1 -0
- package/dist/container/Container.module.js +20 -0
- package/dist/container/Container.module.js.map +1 -0
- package/dist/container/tokens.d.ts +3 -0
- package/dist/container/tokens.d.ts.map +1 -0
- package/dist/container/tokens.js +19 -0
- package/dist/container/tokens.js.map +1 -0
- package/dist/date-picker/DatePicker.css +30 -30
- package/dist/date-picker/DatePicker.js +1 -1
- package/dist/date-picker/DatePicker.js.map +1 -1
- package/dist/date-picker/DatePicker.module.js +11 -11
- package/dist/date-picker/DatePicker.module.js.map +1 -1
- package/dist/date-picker/calendarTokens.d.ts +3 -0
- package/dist/date-picker/calendarTokens.d.ts.map +1 -0
- package/dist/date-picker/calendarTokens.js +17 -0
- package/dist/date-picker/calendarTokens.js.map +1 -0
- package/dist/dialog/Dialog.css +40 -36
- package/dist/dialog/Dialog.js +1 -1
- package/dist/dialog/Dialog.js.map +1 -1
- package/dist/dialog/Dialog.module.js +11 -11
- package/dist/dialog/Dialog.module.js.map +1 -1
- package/dist/dialog/tokens.d.ts +3 -0
- package/dist/dialog/tokens.d.ts.map +1 -0
- package/dist/dialog/tokens.js +29 -0
- package/dist/dialog/tokens.js.map +1 -0
- package/dist/disclosure/Disclosure.css +12 -12
- package/dist/disclosure/Disclosure.d.ts.map +1 -1
- package/dist/disclosure/Disclosure.js +1 -1
- package/dist/disclosure/Disclosure.js.map +1 -1
- package/dist/disclosure/Disclosure.module.js +7 -7
- package/dist/disclosure/Disclosure.module.js.map +1 -1
- package/dist/disclosure/tokens.d.ts +3 -0
- package/dist/disclosure/tokens.d.ts.map +1 -0
- package/dist/disclosure/tokens.js +15 -0
- package/dist/disclosure/tokens.js.map +1 -0
- package/dist/divider/Divider.css +17 -0
- package/dist/divider/Divider.d.ts +8 -0
- package/dist/divider/Divider.d.ts.map +1 -0
- package/dist/divider/Divider.js +21 -0
- package/dist/divider/Divider.js.map +1 -0
- package/dist/divider/Divider.module.js +12 -0
- package/dist/divider/Divider.module.js.map +1 -0
- package/dist/divider/tokens.d.ts +3 -0
- package/dist/divider/tokens.d.ts.map +1 -0
- package/dist/divider/tokens.js +13 -0
- package/dist/divider/tokens.js.map +1 -0
- package/dist/field/Field.css +40 -37
- package/dist/field/Field.module.js +11 -11
- package/dist/field/Field.module.js.map +1 -1
- package/dist/field/Fieldset.js +1 -1
- package/dist/field/Fieldset.js.map +1 -1
- package/dist/field/inputTokens.d.ts +3 -0
- package/dist/field/inputTokens.d.ts.map +1 -0
- package/dist/field/inputTokens.js +21 -0
- package/dist/field/inputTokens.js.map +1 -0
- package/dist/field/tokens.d.ts +3 -0
- package/dist/field/tokens.d.ts.map +1 -0
- package/dist/field/tokens.js +15 -0
- package/dist/field/tokens.js.map +1 -0
- package/dist/grid/Grid.css +174 -0
- package/dist/grid/Grid.d.ts +28 -0
- package/dist/grid/Grid.d.ts.map +1 -0
- package/dist/grid/Grid.js +31 -0
- package/dist/grid/Grid.js.map +1 -0
- package/dist/grid/Grid.module.js +12 -0
- package/dist/grid/Grid.module.js.map +1 -0
- package/dist/grid/GridItem.css +59 -0
- package/dist/grid/GridItem.module.js +7 -0
- package/dist/grid/GridItem.module.js.map +1 -0
- package/dist/grid/tokens.d.ts +3 -0
- package/dist/grid/tokens.d.ts.map +1 -0
- package/dist/grid/tokens.js +10 -0
- package/dist/grid/tokens.js.map +1 -0
- package/dist/heading/Heading.css +52 -0
- package/dist/heading/Heading.d.ts +17 -0
- package/dist/heading/Heading.d.ts.map +1 -0
- package/dist/heading/Heading.js +17 -0
- package/dist/heading/Heading.js.map +1 -0
- package/dist/heading/Heading.module.js +16 -0
- package/dist/heading/Heading.module.js.map +1 -0
- package/dist/heading/tokens.d.ts +6 -0
- package/dist/heading/tokens.d.ts.map +1 -0
- package/dist/heading/tokens.js +66 -0
- package/dist/heading/tokens.js.map +1 -0
- package/dist/icon/Icon.css +1 -1
- package/dist/icon/Icon.js +1 -1
- package/dist/icon/Icon.js.map +1 -1
- package/dist/icon/Icon.module.js +1 -1
- package/dist/icon/namedIcons.d.ts +16 -0
- package/dist/icon/namedIcons.d.ts.map +1 -0
- package/dist/icon/namedIcons.js +90 -0
- package/dist/icon/namedIcons.js.map +1 -0
- package/dist/icon-button/IconButton.css +2 -2
- package/dist/icon-button/IconButton.d.ts +1 -1
- package/dist/icon-button/IconButton.d.ts.map +1 -1
- package/dist/icon-button/IconButton.js +3 -3
- package/dist/icon-button/IconButton.js.map +1 -1
- package/dist/icon-button/IconButton.module.js +2 -2
- package/dist/index.d.ts +26 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- package/dist/inline/Inline.css +142 -0
- package/dist/inline/Inline.d.ts +17 -0
- package/dist/inline/Inline.d.ts.map +1 -0
- package/dist/inline/Inline.js +21 -0
- package/dist/inline/Inline.js.map +1 -0
- package/dist/inline/Inline.module.js +12 -0
- package/dist/inline/Inline.module.js.map +1 -0
- package/dist/inline/tokens.d.ts +3 -0
- package/dist/inline/tokens.d.ts.map +1 -0
- package/dist/inline/tokens.js +10 -0
- package/dist/inline/tokens.js.map +1 -0
- package/dist/layout/responsive.d.ts +38 -0
- package/dist/layout/responsive.d.ts.map +1 -0
- package/dist/layout/responsive.js +49 -0
- package/dist/layout/responsive.js.map +1 -0
- package/dist/menu/Menu.js +2 -2
- package/dist/menu/Menu.js.map +1 -1
- package/dist/number-input/NumberInput.css +12 -12
- package/dist/number-input/NumberInput.js +1 -1
- package/dist/number-input/NumberInput.js.map +1 -1
- package/dist/number-input/NumberInput.module.js +4 -4
- package/dist/number-input/NumberInput.module.js.map +1 -1
- package/dist/number-input/tokens.d.ts +3 -0
- package/dist/number-input/tokens.d.ts.map +1 -0
- package/dist/number-input/tokens.js +10 -0
- package/dist/number-input/tokens.js.map +1 -0
- package/dist/popover/Popover.css +13 -12
- package/dist/popover/Popover.js +2 -2
- package/dist/popover/Popover.js.map +1 -1
- package/dist/popover/Popover.module.js +3 -3
- package/dist/popover/Popover.module.js.map +1 -1
- package/dist/popover/tokens.d.ts +3 -0
- package/dist/popover/tokens.d.ts.map +1 -0
- package/dist/popover/tokens.js +19 -0
- package/dist/popover/tokens.js.map +1 -0
- package/dist/prose/Prose.css +141 -0
- package/dist/prose/Prose.d.ts +11 -0
- package/dist/prose/Prose.d.ts.map +1 -0
- package/dist/prose/Prose.js +18 -0
- package/dist/prose/Prose.js.map +1 -0
- package/dist/prose/Prose.module.js +8 -0
- package/dist/prose/Prose.module.js.map +1 -0
- package/dist/prose/tokens.d.ts +3 -0
- package/dist/prose/tokens.d.ts.map +1 -0
- package/dist/prose/tokens.js +33 -0
- package/dist/prose/tokens.js.map +1 -0
- package/dist/radio-group/RadioGroup.css +21 -20
- package/dist/radio-group/RadioGroup.d.ts.map +1 -1
- package/dist/radio-group/RadioGroup.js +2 -2
- package/dist/radio-group/RadioGroup.js.map +1 -1
- package/dist/radio-group/RadioGroup.module.js +6 -6
- package/dist/radio-group/RadioGroup.module.js.map +1 -1
- package/dist/radio-group/tokens.d.ts +3 -0
- package/dist/radio-group/tokens.d.ts.map +1 -0
- package/dist/radio-group/tokens.js +19 -0
- package/dist/radio-group/tokens.js.map +1 -0
- package/dist/root/PanneauRoot.css +243 -20
- package/dist/root/PanneauRoot.d.ts +28 -4
- package/dist/root/PanneauRoot.d.ts.map +1 -1
- package/dist/root/PanneauRoot.js +104 -21
- package/dist/root/PanneauRoot.js.map +1 -1
- package/dist/root/PanneauRoot.module.js +11 -3
- package/dist/root/PanneauRoot.module.js.map +1 -1
- package/dist/root/ThemeScope.d.ts +24 -0
- package/dist/root/ThemeScope.d.ts.map +1 -0
- package/dist/root/ThemeScope.js +49 -0
- package/dist/root/ThemeScope.js.map +1 -0
- package/dist/select/ListBox.css +23 -22
- package/dist/select/ListBox.module.js +12 -12
- package/dist/select/ListBox.module.js.map +1 -1
- package/dist/select/Select.js +1 -1
- package/dist/select/Select.js.map +1 -1
- package/dist/select/listBoxTokens.d.ts +3 -0
- package/dist/select/listBoxTokens.d.ts.map +1 -0
- package/dist/select/listBoxTokens.js +19 -0
- package/dist/select/listBoxTokens.js.map +1 -0
- package/dist/spinner/Spinner.css +8 -8
- package/dist/spinner/Spinner.js +1 -1
- package/dist/spinner/Spinner.js.map +1 -1
- package/dist/spinner/Spinner.module.js +5 -5
- package/dist/spinner/Spinner.module.js.map +1 -1
- package/dist/spinner/tokens.d.ts +3 -0
- package/dist/spinner/tokens.d.ts.map +1 -0
- package/dist/spinner/tokens.js +10 -0
- package/dist/spinner/tokens.js.map +1 -0
- package/dist/stack/Stack.css +135 -0
- package/dist/stack/Stack.d.ts +15 -0
- package/dist/stack/Stack.d.ts.map +1 -0
- package/dist/stack/Stack.js +21 -0
- package/dist/stack/Stack.js.map +1 -0
- package/dist/stack/Stack.module.js +8 -0
- package/dist/stack/Stack.module.js.map +1 -0
- package/dist/stack/tokens.d.ts +3 -0
- package/dist/stack/tokens.d.ts.map +1 -0
- package/dist/stack/tokens.js +10 -0
- package/dist/stack/tokens.js.map +1 -0
- package/dist/switch/Switch.css +34 -25
- package/dist/switch/Switch.d.ts.map +1 -1
- package/dist/switch/Switch.js +1 -0
- package/dist/switch/Switch.js.map +1 -1
- package/dist/switch/Switch.module.js +4 -4
- package/dist/switch/Switch.module.js.map +1 -1
- package/dist/switch/tokens.d.ts +3 -0
- package/dist/switch/tokens.d.ts.map +1 -0
- package/dist/switch/tokens.js +25 -0
- package/dist/switch/tokens.js.map +1 -0
- package/dist/tabs/Tabs.css +24 -23
- package/dist/tabs/Tabs.js +4 -4
- package/dist/tabs/Tabs.js.map +1 -1
- package/dist/tabs/Tabs.module.js +4 -4
- package/dist/tabs/Tabs.module.js.map +1 -1
- package/dist/tabs/tokens.d.ts +3 -0
- package/dist/tabs/tokens.d.ts.map +1 -0
- package/dist/tabs/tokens.js +25 -0
- package/dist/tabs/tokens.js.map +1 -0
- package/dist/text/Text.css +74 -0
- package/dist/text/Text.d.ts +27 -0
- package/dist/text/Text.d.ts.map +1 -0
- package/dist/text/Text.js +16 -0
- package/dist/text/Text.js.map +1 -0
- package/dist/text/Text.module.js +30 -0
- package/dist/text/Text.module.js.map +1 -0
- package/dist/text/tokens.d.ts +3 -0
- package/dist/text/tokens.d.ts.map +1 -0
- package/dist/text/tokens.js +10 -0
- package/dist/text/tokens.js.map +1 -0
- package/dist/text-area/TextArea.css +1 -1
- package/dist/text-area/TextArea.js +1 -1
- package/dist/text-area/TextArea.js.map +1 -1
- package/dist/text-area/TextArea.module.js +1 -1
- package/dist/text-input/TextInput.js +1 -1
- package/dist/text-input/TextInput.js.map +1 -1
- package/dist/theme/Tone.css +70 -0
- package/dist/theme/Tone.module.js +20 -0
- package/dist/theme/Tone.module.js.map +1 -0
- package/dist/theme/bootstrap.d.ts +10 -0
- package/dist/theme/bootstrap.d.ts.map +1 -1
- package/dist/theme/bootstrap.js +48 -5
- package/dist/theme/bootstrap.js.map +1 -1
- package/dist/theme/chartColors.d.ts +23 -0
- package/dist/theme/chartColors.d.ts.map +1 -0
- package/dist/theme/chartColors.js +27 -0
- package/dist/theme/chartColors.js.map +1 -0
- package/dist/theme/checkTheme.d.ts +39 -0
- package/dist/theme/checkTheme.d.ts.map +1 -0
- package/dist/theme/checkTheme.js +132 -0
- package/dist/theme/checkTheme.js.map +1 -0
- package/dist/theme/cli.d.ts +14 -0
- package/dist/theme/cli.d.ts.map +1 -0
- package/dist/theme/cli.js +61 -0
- package/dist/theme/cli.js.map +1 -0
- package/dist/theme/color.d.ts +30 -0
- package/dist/theme/color.d.ts.map +1 -0
- package/dist/theme/color.js +94 -0
- package/dist/theme/color.js.map +1 -0
- package/dist/theme/colorVision.d.ts +23 -0
- package/dist/theme/colorVision.d.ts.map +1 -0
- package/dist/theme/colorVision.js +140 -0
- package/dist/theme/colorVision.js.map +1 -0
- package/dist/theme/componentTokens.d.ts +24 -0
- package/dist/theme/componentTokens.d.ts.map +1 -0
- package/dist/theme/componentTokens.js +20 -0
- package/dist/theme/componentTokens.js.map +1 -0
- package/dist/theme/components.d.ts +38 -0
- package/dist/theme/components.d.ts.map +1 -0
- package/dist/theme/components.js +65 -0
- package/dist/theme/components.js.map +1 -0
- package/dist/theme/defineTheme.d.ts +85 -0
- package/dist/theme/defineTheme.d.ts.map +1 -0
- package/dist/theme/defineTheme.js +130 -0
- package/dist/theme/defineTheme.js.map +1 -0
- package/dist/theme/fonts.d.ts +32 -0
- package/dist/theme/fonts.d.ts.map +1 -0
- package/dist/theme/fonts.js +36 -0
- package/dist/theme/fonts.js.map +1 -0
- package/dist/theme/index.d.ts +13 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +10 -0
- package/dist/theme/semanticTokens.d.ts +9 -0
- package/dist/theme/semanticTokens.d.ts.map +1 -0
- package/dist/theme/semanticTokens.js +110 -0
- package/dist/theme/semanticTokens.js.map +1 -0
- package/dist/theme/theme.d.ts +61 -7
- package/dist/theme/theme.d.ts.map +1 -1
- package/dist/theme/theme.js +100 -10
- package/dist/theme/theme.js.map +1 -1
- package/dist/theme/toneClass.d.ts +8 -0
- package/dist/theme/toneClass.d.ts.map +1 -0
- package/dist/theme/toneClass.js +15 -0
- package/dist/theme/toneClass.js.map +1 -0
- package/dist/theme/tones.d.ts +89 -0
- package/dist/theme/tones.d.ts.map +1 -0
- package/dist/theme/tones.js +127 -0
- package/dist/theme/tones.js.map +1 -0
- package/dist/time-input/TimeInput.js +1 -1
- package/dist/time-input/TimeInput.js.map +1 -1
- package/dist/toast/Toast.css +22 -44
- package/dist/toast/Toast.d.ts +5 -3
- package/dist/toast/Toast.d.ts.map +1 -1
- package/dist/toast/Toast.js +4 -3
- package/dist/toast/Toast.js.map +1 -1
- package/dist/toast/Toast.module.js +10 -16
- package/dist/toast/Toast.module.js.map +1 -1
- package/dist/toast/tokens.d.ts +3 -0
- package/dist/toast/tokens.d.ts.map +1 -0
- package/dist/toast/tokens.js +21 -0
- package/dist/toast/tokens.js.map +1 -0
- package/dist/tooltip/Tooltip.css +12 -11
- package/dist/tooltip/Tooltip.js +1 -1
- package/dist/tooltip/Tooltip.js.map +1 -1
- package/dist/tooltip/Tooltip.module.js +2 -2
- package/dist/tooltip/Tooltip.module.js.map +1 -1
- package/dist/tooltip/tokens.d.ts +3 -0
- package/dist/tooltip/tokens.d.ts.map +1 -0
- package/dist/tooltip/tokens.js +21 -0
- package/dist/tooltip/tokens.js.map +1 -0
- package/dist/utils/cx.d.ts +1 -1
- package/dist/utils/cx.d.ts.map +1 -1
- package/dist/utils/cx.js +2 -2
- package/dist/utils/cx.js.map +1 -1
- package/package.json +15 -3
package/dist/toast/Toast.js
CHANGED
|
@@ -2,6 +2,7 @@ import { cx } from "../utils/cx.js";
|
|
|
2
2
|
import { Icon } from "../icon/Icon.js";
|
|
3
3
|
import { messages } from "../intl/messages.js";
|
|
4
4
|
import { usePanneauIntl } from "../intl/usePanneauIntl.js";
|
|
5
|
+
import { toneClass } from "../theme/toneClass.js";
|
|
5
6
|
import { Button as Button$1 } from "../button/Button.js";
|
|
6
7
|
import Toast_module_default from "./Toast.module.js";
|
|
7
8
|
import { IconButton } from "../icon-button/IconButton.js";
|
|
@@ -58,7 +59,7 @@ function ToastProvider(t0) {
|
|
|
58
59
|
} else t2 = $[3];
|
|
59
60
|
let t3;
|
|
60
61
|
if ($[4] !== regionClassName) {
|
|
61
|
-
t3 = cx(regionClassName, Toast_module_default.region);
|
|
62
|
+
t3 = cx("panneau-toast-region", regionClassName, Toast_module_default.region);
|
|
62
63
|
$[4] = regionClassName;
|
|
63
64
|
$[5] = t3;
|
|
64
65
|
} else t3 = $[5];
|
|
@@ -67,11 +68,11 @@ function ToastProvider(t0) {
|
|
|
67
68
|
t4 = (t5) => {
|
|
68
69
|
const { toast } = t5;
|
|
69
70
|
const tone = toast.content.tone ?? "neutral";
|
|
70
|
-
const icon = TONE_ICONS[tone];
|
|
71
|
+
const icon = TONE_ICONS[tone] ?? null;
|
|
71
72
|
const { action } = toast.content;
|
|
72
73
|
return /* @__PURE__ */ jsxs(UNSTABLE_Toast, {
|
|
73
74
|
toast,
|
|
74
|
-
className: cx(Toast_module_default.toast,
|
|
75
|
+
className: cx("panneau-toast", Toast_module_default.toast, toneClass(tone), tone !== "neutral" && Toast_module_default.toned),
|
|
75
76
|
children: [
|
|
76
77
|
icon !== null ? /* @__PURE__ */ jsx(Icon, {
|
|
77
78
|
icon,
|
package/dist/toast/Toast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","names":["toast","icon","X","queue","toasts","children","_c","styles","AriaToast","AriaToastContent","Button","AriaToastRegion","AriaToastQueue"],"sources":["../../src/toast/Toast.tsx"],"sourcesContent":["import { CircleAlert, CircleCheck, Info, TriangleAlert, X } from 'lucide-react';\nimport { type ReactNode, createContext, use, useState } from 'react';\nimport {\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as AriaToastContent,\n UNSTABLE_ToastQueue as AriaToastQueue,\n UNSTABLE_ToastRegion as AriaToastRegion,\n Text,\n} from 'react-aria-components';\n\nimport { Button } from '../button/Button';\nimport { IconButton } from '../icon-button/IconButton';\nimport { Icon, type IconComponent } from '../icon/Icon';\nimport { messages } from '../intl/messages';\nimport { usePanneauIntl } from '../intl/usePanneauIntl';\nimport { cx } from '../utils/cx';\nimport styles from './Toast.module.css';\n\nexport type ToastTone =
|
|
1
|
+
{"version":3,"file":"Toast.js","names":["toast","icon","X","queue","toasts","children","_c","styles","AriaToast","AriaToastContent","Button","AriaToastRegion","AriaToastQueue"],"sources":["../../src/toast/Toast.tsx"],"sourcesContent":["import { CircleAlert, CircleCheck, Info, TriangleAlert, X } from 'lucide-react';\nimport { type ReactNode, createContext, use, useState } from 'react';\nimport {\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as AriaToastContent,\n UNSTABLE_ToastQueue as AriaToastQueue,\n UNSTABLE_ToastRegion as AriaToastRegion,\n Text,\n} from 'react-aria-components';\n\nimport { Button } from '../button/Button';\nimport { IconButton } from '../icon-button/IconButton';\nimport { Icon, type IconComponent } from '../icon/Icon';\nimport { messages } from '../intl/messages';\nimport { usePanneauIntl } from '../intl/usePanneauIntl';\nimport { toneClass } from '../theme/toneClass';\nimport type { Tone } from '../theme/tones';\nimport { cx } from '../utils/cx';\nimport styles from './Toast.module.css';\n\n/** @deprecated Use `Tone`. */\nexport type ToastTone = Tone;\n\n/** What a toast says. */\nexport interface ToastContent {\n title: string;\n description?: string;\n /** Defaults to `neutral`. Any tone other than neutral colors the edge and the icon. */\n tone?: Tone;\n /** A button in the toast, such as \"Retry\" or \"Undo\". The toast closes when it is pressed. */\n action?: { label: string; onAction: () => void };\n}\n\nexport interface ToastOptions {\n /**\n * Milliseconds before the toast closes by itself. Defaults to 5000, and to no timeout for\n * toasts with an action, which users must have time to reach.\n */\n timeout?: number | null;\n onClose?: () => void;\n}\n\nexport interface Toasts {\n /** Shows a toast. Returns its key. */\n show(content: ToastContent, options?: ToastOptions): string;\n /** Closes a toast by key. */\n close(key: string): void;\n}\n\nconst TONE_ICONS: Partial<Record<Tone, IconComponent | null>> = {\n neutral: null,\n success: CircleCheck,\n danger: CircleAlert,\n warning: TriangleAlert,\n info: Info,\n};\n\nconst ToastContext = createContext<Toasts | null>(null);\n\n/** Shows toasts in the closest `PanneauRoot`. */\nexport function useToast(): Toasts {\n const toasts = use(ToastContext);\n if (toasts === null) {\n throw new Error('useToast() must be used inside <PanneauRoot>.');\n }\n return toasts;\n}\n\nexport interface ToastProviderProps {\n children?: ReactNode;\n /** Class names that give the region its tokens, since it renders in the body. */\n regionClassName?: string;\n regionProps?: Record<`data-${string}`, string | undefined>;\n}\n\n/** Holds the toasts of a `PanneauRoot` and renders them in an accessible region. */\nexport function ToastProvider({ children, regionClassName, regionProps }: ToastProviderProps) {\n const intl = usePanneauIntl();\n const [queue] = useState(() => new AriaToastQueue<ToastContent>({ maxVisibleToasts: 5 }));\n const [toasts] = useState<Toasts>(() => ({\n show(content, { timeout, onClose } = {}) {\n const delay = timeout === undefined ? (content.action ? null : 5000) : timeout;\n return queue.add(content, {\n ...(delay !== null ? { timeout: delay } : {}),\n ...(onClose !== undefined ? { onClose } : {}),\n });\n },\n close(key) {\n queue.close(key);\n },\n }));\n return (\n <ToastContext value={toasts}>\n {children}\n <AriaToastRegion\n queue={queue}\n aria-label={intl.formatMessage(messages.notifications)}\n className={cx('panneau-toast-region', regionClassName, styles.region)}\n {...regionProps}\n >\n {({ toast }) => {\n const tone = toast.content.tone ?? 'neutral';\n const icon = TONE_ICONS[tone] ?? null;\n const { action } = toast.content;\n return (\n <AriaToast\n toast={toast}\n className={cx(\n 'panneau-toast',\n styles.toast,\n toneClass(tone),\n tone !== 'neutral' && styles.toned,\n )}\n >\n {icon !== null ? (\n <Icon icon={icon} size=\"lg\" className={styles.icon} />\n ) : null}\n <AriaToastContent className={styles.content}>\n <Text slot=\"title\" className={styles.title}>\n {toast.content.title}\n </Text>\n {toast.content.description !== undefined ? (\n <Text slot=\"description\" className={styles.description}>\n {toast.content.description}\n </Text>\n ) : null}\n </AriaToastContent>\n <div className={styles.actions}>\n {action !== undefined ? (\n <Button\n size=\"sm\"\n onPress={() => {\n action.onAction();\n queue.close(toast.key);\n }}\n >\n {action.label}\n </Button>\n ) : null}\n <IconButton\n slot=\"close\"\n icon={X}\n size=\"sm\"\n label={intl.formatMessage(messages.close)}\n showTooltip={false}\n />\n </div>\n </AriaToast>\n );\n }}\n </AriaToastRegion>\n </ToastContext>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
import "./Toast.css";
|
|
2
2
|
//#region src/toast/Toast.module.css
|
|
3
|
-
var region = "panneau-region
|
|
4
|
-
var toast = "panneau-toast
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var title = "panneau-title-ZUmw4H";
|
|
12
|
-
var description = "panneau-description-bQFVpf";
|
|
13
|
-
var actions = "panneau-actions-4GKOfg";
|
|
3
|
+
var region = "panneau-toast-region";
|
|
4
|
+
var toast = "panneau-toast";
|
|
5
|
+
var icon = "panneau-toast-icon";
|
|
6
|
+
var toned = "panneau-toast-toned";
|
|
7
|
+
var content = "panneau-toast-content";
|
|
8
|
+
var title = "panneau-toast-title";
|
|
9
|
+
var description = "panneau-toast-description";
|
|
10
|
+
var actions = "panneau-toast-actions";
|
|
14
11
|
var Toast_module_default = {
|
|
15
12
|
region,
|
|
16
13
|
toast,
|
|
17
|
-
success,
|
|
18
|
-
danger,
|
|
19
|
-
warning,
|
|
20
|
-
info,
|
|
21
14
|
icon,
|
|
15
|
+
toned,
|
|
22
16
|
content,
|
|
23
17
|
title,
|
|
24
18
|
description,
|
|
25
19
|
actions
|
|
26
20
|
};
|
|
27
21
|
//#endregion
|
|
28
|
-
export { actions, content,
|
|
22
|
+
export { actions, content, Toast_module_default as default, description, icon, region, title, toast, toned };
|
|
29
23
|
|
|
30
24
|
//# sourceMappingURL=Toast.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.module.js","names":[],"sources":["../../src/toast/Toast.module.css"],"sourcesContent":["/* The region carries the root's class (tokens), since React Aria renders it in the body. */\n.region.region {\n position: fixed;\n inset-block-end: var(--panneau-space-4);\n inset-inline-end: var(--panneau-space-4);\n z-index: var(--panneau-z-toast);\n display: flex;\n flex-direction: column-reverse;\n gap: var(--panneau-space-2);\n width: min(24rem, calc(100vw - 2 * var(--panneau-space-4)));\n background: transparent;\n outline: none;\n}\n\n.region[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 4px;\n}\n\n@media (max-width: 30rem) {\n .region.region {\n inset-inline: var(--panneau-space-2);\n inset-block-end: var(--panneau-space-2);\n width: auto;\n }\n}\n\n.toast {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-3);\n padding: var(--panneau-space-3) var(--panneau-space-3) var(--panneau-space-3)\n var(--panneau-space-4);\n color: var(--panneau-color-text);\n background-color: var(--panneau-color-surface-raised);\n border: var(--panneau-border-width) solid var(--panneau-color-border);\n border-inline-start-width: 4px;\n border-radius: var(--panneau-radius-lg);\n box-shadow: var(--panneau-shadow-lg);\n outline: none;\n}\n\n.toast[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 2px;\n}\n\n.
|
|
1
|
+
{"version":3,"file":"Toast.module.js","names":[],"sources":["../../src/toast/Toast.module.css"],"sourcesContent":["/* The region carries the root's class (tokens), since React Aria renders it in the body. */\n.region.region {\n position: fixed;\n inset-block-end: var(--panneau-space-4);\n inset-inline-end: var(--panneau-space-4);\n z-index: var(--panneau-z-toast);\n display: flex;\n flex-direction: column-reverse;\n gap: var(--panneau-space-2);\n width: min(var(--panneau-toast-width, 24rem), calc(100vw - 2 * var(--panneau-space-4)));\n background: transparent;\n outline: none;\n}\n\n.region[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 4px;\n}\n\n@media (max-width: 30rem) {\n .region.region {\n inset-inline: var(--panneau-space-2);\n inset-block-end: var(--panneau-space-2);\n width: auto;\n }\n}\n\n.toast {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-3);\n padding: var(--panneau-space-3) var(--panneau-space-3) var(--panneau-space-3)\n var(--panneau-space-4);\n color: var(--panneau-color-text);\n background-color: var(--panneau-toast-bg, var(--panneau-color-surface-raised));\n border: var(--panneau-border-width) solid\n var(--panneau-toast-border-color, var(--panneau-color-border));\n border-inline-start-width: var(--panneau-toast-tone-width, 4px);\n border-radius: var(--panneau-toast-radius, var(--panneau-radius-lg));\n box-shadow: var(--panneau-toast-shadow, var(--panneau-shadow-lg));\n outline: none;\n}\n\n.toast[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 2px;\n}\n\n.icon {\n margin-top: 0.125rem;\n}\n\n/* A toast with a tone other than neutral: a colored edge and icon, from its tone class. */\n.toned {\n border-inline-start-color: var(--panneau-tone-text);\n}\n\n.toned .icon {\n color: var(--panneau-tone-text);\n}\n\n.content {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--panneau-space-1);\n min-width: 0;\n padding-top: 0.125rem;\n}\n\n.title {\n font-weight: var(--panneau-font-weight-medium);\n overflow-wrap: anywhere;\n}\n\n.description {\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-text-muted);\n overflow-wrap: anywhere;\n}\n\n.actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--panneau-space-1);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Tokens of Toast. */
|
|
2
|
+
export declare const toastTokens: import("..").ComponentTokens<"toast", "panneau-toast-width" | "panneau-toast-radius" | "panneau-toast-bg" | "panneau-toast-border-color" | "panneau-toast-shadow" | "panneau-toast-tone-width">;
|
|
3
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/toast/tokens.ts"],"names":[],"mappings":"AAEA,uBAAuB;AACvB,eAAO,MAAM,WAAW,iMAatB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineComponentTokens } from "../theme/componentTokens.js";
|
|
2
|
+
//#region src/toast/tokens.ts
|
|
3
|
+
/** Tokens of Toast. */
|
|
4
|
+
var toastTokens = defineComponentTokens("toast", {
|
|
5
|
+
/** Width of the toasts. */
|
|
6
|
+
width: "24rem",
|
|
7
|
+
/** Background. */
|
|
8
|
+
bg: "var(--panneau-color-surface-raised)",
|
|
9
|
+
/** Border color. */
|
|
10
|
+
"border-color": "var(--panneau-color-border)",
|
|
11
|
+
/** Width of the colored edge of a toast with a tone. */
|
|
12
|
+
"tone-width": "4px",
|
|
13
|
+
/** Corner radius. */
|
|
14
|
+
radius: "var(--panneau-radius-lg)",
|
|
15
|
+
/** Shadow. */
|
|
16
|
+
shadow: "var(--panneau-shadow-lg)"
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
export { toastTokens };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","names":[],"sources":["../../src/toast/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of Toast. */\nexport const toastTokens = defineComponentTokens('toast', {\n /** Width of the toasts. */\n width: '24rem',\n /** Background. */\n bg: 'var(--panneau-color-surface-raised)',\n /** Border color. */\n 'border-color': 'var(--panneau-color-border)',\n /** Width of the colored edge of a toast with a tone. */\n 'tone-width': '4px',\n /** Corner radius. */\n radius: 'var(--panneau-radius-lg)',\n /** Shadow. */\n shadow: 'var(--panneau-shadow-lg)',\n});\n"],"mappings":";;;AAGA,IAAa,cAAc,sBAAsB,SAAS;;CAEtD,OAAO;;CAEP,IAAI;;CAEJ,gBAAgB;;CAEhB,cAAc;;CAEd,QAAQ;;CAER,QAAQ;AACZ,CAAC"}
|
package/dist/tooltip/Tooltip.css
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
.panneau-tooltip
|
|
1
|
+
.panneau-tooltip {
|
|
2
2
|
max-width: min(20rem, calc(100vw - 2 * var(--panneau-space-4)));
|
|
3
|
-
padding: var(--panneau-
|
|
4
|
-
|
|
3
|
+
padding: var(--panneau-tooltip-padding-y, var(--panneau-space-1))
|
|
4
|
+
var(--panneau-tooltip-padding-x, var(--panneau-space-2));
|
|
5
|
+
font-size: var(--panneau-tooltip-font-size, var(--panneau-font-size-sm));
|
|
5
6
|
line-height: var(--panneau-line-height-tight);
|
|
6
|
-
color: var(--panneau-color-bg);
|
|
7
|
-
background-color: var(--panneau-color-text);
|
|
8
|
-
border-radius: var(--panneau-radius-sm);
|
|
7
|
+
color: var(--panneau-tooltip-color, var(--panneau-color-bg));
|
|
8
|
+
background-color: var(--panneau-tooltip-bg, var(--panneau-color-text));
|
|
9
|
+
border-radius: var(--panneau-tooltip-radius, var(--panneau-radius-sm));
|
|
9
10
|
box-shadow: var(--panneau-shadow-md);
|
|
10
11
|
z-index: var(--panneau-z-overlay);
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
.panneau-tooltip
|
|
14
|
-
animation: panneau-fade
|
|
14
|
+
.panneau-tooltip[data-entering] {
|
|
15
|
+
animation: panneau-tooltip-fade var(--panneau-duration);
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
.panneau-tooltip
|
|
18
|
-
animation: panneau-fade
|
|
18
|
+
.panneau-tooltip[data-exiting] {
|
|
19
|
+
animation: panneau-tooltip-fade var(--panneau-duration) reverse ease-in;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
@keyframes panneau-fade
|
|
22
|
+
@keyframes panneau-tooltip-fade {
|
|
22
23
|
from {
|
|
23
24
|
opacity: 0;
|
|
24
25
|
}
|
package/dist/tooltip/Tooltip.js
CHANGED
|
@@ -17,7 +17,7 @@ function Tooltip$1({ content, children, placement = "top", delay = 600, isDisabl
|
|
|
17
17
|
children: [children, /* @__PURE__ */ jsx(Tooltip, {
|
|
18
18
|
placement,
|
|
19
19
|
offset: 6,
|
|
20
|
-
className: cx(Tooltip_module_default.tooltip, className),
|
|
20
|
+
className: cx("panneau-tooltip", Tooltip_module_default.tooltip, className),
|
|
21
21
|
UNSTABLE_portalContainer: container,
|
|
22
22
|
children: content
|
|
23
23
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["Tooltip","AriaTooltip","styles"],"sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport {\n Tooltip as AriaTooltip,\n type TooltipProps as AriaTooltipProps,\n TooltipTrigger,\n} from 'react-aria-components';\n\nimport { usePortalContainer } from '../root/PanneauRoot';\nimport { cx } from '../utils/cx';\nimport styles from './Tooltip.module.css';\n\nexport interface TooltipProps {\n /** Content of the tooltip. */\n content: ReactNode;\n /** The element that shows the tooltip on hover and focus: a focusable React Aria element. */\n children: ReactElement;\n placement?: AriaTooltipProps['placement'];\n /** Delay before showing, in milliseconds. Defaults to 600. */\n delay?: number;\n isDisabled?: boolean;\n className?: string;\n}\n\n/**\n * A tooltip on hover and keyboard focus. It only adds a description: never put information or\n * actions in it that aren't available otherwise, since touch screens don't show it.\n */\nexport function Tooltip({\n content,\n children,\n placement = 'top',\n delay = 600,\n isDisabled = false,\n className,\n}: TooltipProps) {\n const container = usePortalContainer();\n if (container === null) {\n return children;\n }\n return (\n <TooltipTrigger delay={delay} isDisabled={isDisabled}>\n {children}\n <AriaTooltip\n placement={placement}\n offset={6}\n className={cx(styles.tooltip, className)}\n UNSTABLE_portalContainer={container}\n >\n {content}\n </AriaTooltip>\n </TooltipTrigger>\n );\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAgBA,UAAQ,EACpB,SACA,UACA,YAAY,OACZ,QAAQ,KACR,aAAa,OACb,aACa;CACb,MAAM,YAAY,mBAAmB;CACrC,IAAI,cAAc,MACd,OAAO;CAEX,OACI,qBAAC,gBAAD;EAAuB;EAAmB;EAA1C,UAAA,CACK,UACD,oBAACC,SAAD;GACe;GACX,QAAQ;GACR,WAAW,
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["Tooltip","AriaTooltip","styles"],"sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport {\n Tooltip as AriaTooltip,\n type TooltipProps as AriaTooltipProps,\n TooltipTrigger,\n} from 'react-aria-components';\n\nimport { usePortalContainer } from '../root/PanneauRoot';\nimport { cx } from '../utils/cx';\nimport styles from './Tooltip.module.css';\n\nexport interface TooltipProps {\n /** Content of the tooltip. */\n content: ReactNode;\n /** The element that shows the tooltip on hover and focus: a focusable React Aria element. */\n children: ReactElement;\n placement?: AriaTooltipProps['placement'];\n /** Delay before showing, in milliseconds. Defaults to 600. */\n delay?: number;\n isDisabled?: boolean;\n className?: string;\n}\n\n/**\n * A tooltip on hover and keyboard focus. It only adds a description: never put information or\n * actions in it that aren't available otherwise, since touch screens don't show it.\n */\nexport function Tooltip({\n content,\n children,\n placement = 'top',\n delay = 600,\n isDisabled = false,\n className,\n}: TooltipProps) {\n const container = usePortalContainer();\n if (container === null) {\n return children;\n }\n return (\n <TooltipTrigger delay={delay} isDisabled={isDisabled}>\n {children}\n <AriaTooltip\n placement={placement}\n offset={6}\n className={cx('panneau-tooltip', styles.tooltip, className)}\n UNSTABLE_portalContainer={container}\n >\n {content}\n </AriaTooltip>\n </TooltipTrigger>\n );\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAgBA,UAAQ,EACpB,SACA,UACA,YAAY,OACZ,QAAQ,KACR,aAAa,OACb,aACa;CACb,MAAM,YAAY,mBAAmB;CACrC,IAAI,cAAc,MACd,OAAO;CAEX,OACI,qBAAC,gBAAD;EAAuB;EAAmB;EAA1C,UAAA,CACK,UACD,oBAACC,SAAD;GACe;GACX,QAAQ;GACR,WAAW,GAAG,mBAAmBC,uBAAO,SAAS,SAAS;GAC1D,0BAA0B;GAEzB,UAAA;EACQ,CAAA,CACD;;AAExB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./Tooltip.css";
|
|
2
2
|
//#region src/tooltip/Tooltip.module.css
|
|
3
|
-
var tooltip = "panneau-tooltip
|
|
4
|
-
var fade = "panneau-fade
|
|
3
|
+
var tooltip = "panneau-tooltip";
|
|
4
|
+
var fade = "panneau-tooltip-fade";
|
|
5
5
|
var Tooltip_module_default = {
|
|
6
6
|
tooltip,
|
|
7
7
|
fade
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.module.js","names":[],"sources":["../../src/tooltip/Tooltip.module.css"],"sourcesContent":[".tooltip {\n max-width: min(20rem, calc(100vw - 2 * var(--panneau-space-4)));\n padding: var(--panneau-space-1) var(--panneau-space-2);\n font-size: var(--panneau-font-size-sm);\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-color-bg);\n background-color: var(--panneau-color-text);\n border-radius: var(--panneau-radius-sm);\n box-shadow: var(--panneau-shadow-md);\n z-index: var(--panneau-z-overlay);\n}\n\n.tooltip[data-entering] {\n animation: fade var(--panneau-duration);\n}\n\n.tooltip[data-exiting] {\n animation: fade var(--panneau-duration) reverse ease-in;\n}\n\n@keyframes fade {\n from {\n opacity: 0;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Tooltip.module.js","names":[],"sources":["../../src/tooltip/Tooltip.module.css"],"sourcesContent":[".tooltip {\n max-width: min(20rem, calc(100vw - 2 * var(--panneau-space-4)));\n padding: var(--panneau-tooltip-padding-y, var(--panneau-space-1))\n var(--panneau-tooltip-padding-x, var(--panneau-space-2));\n font-size: var(--panneau-tooltip-font-size, var(--panneau-font-size-sm));\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-tooltip-color, var(--panneau-color-bg));\n background-color: var(--panneau-tooltip-bg, var(--panneau-color-text));\n border-radius: var(--panneau-tooltip-radius, var(--panneau-radius-sm));\n box-shadow: var(--panneau-shadow-md);\n z-index: var(--panneau-z-overlay);\n}\n\n.tooltip[data-entering] {\n animation: fade var(--panneau-duration);\n}\n\n.tooltip[data-exiting] {\n animation: fade var(--panneau-duration) reverse ease-in;\n}\n\n@keyframes fade {\n from {\n opacity: 0;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Tokens of Tooltip. */
|
|
2
|
+
export declare const tooltipTokens: import("..").ComponentTokens<"tooltip", "panneau-tooltip-color" | "panneau-tooltip-radius" | "panneau-tooltip-padding-y" | "panneau-tooltip-padding-x" | "panneau-tooltip-font-size" | "panneau-tooltip-bg">;
|
|
3
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/tooltip/tokens.ts"],"names":[],"mappings":"AAEA,yBAAyB;AACzB,eAAO,MAAM,aAAa,8MAaxB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineComponentTokens } from "../theme/componentTokens.js";
|
|
2
|
+
//#region src/tooltip/tokens.ts
|
|
3
|
+
/** Tokens of Tooltip. */
|
|
4
|
+
var tooltipTokens = defineComponentTokens("tooltip", {
|
|
5
|
+
/** Vertical padding. */
|
|
6
|
+
"padding-y": "var(--panneau-space-1)",
|
|
7
|
+
/** Horizontal padding. */
|
|
8
|
+
"padding-x": "var(--panneau-space-2)",
|
|
9
|
+
/** Font size. */
|
|
10
|
+
"font-size": "var(--panneau-font-size-sm)",
|
|
11
|
+
/** Text color. */
|
|
12
|
+
color: "var(--panneau-color-bg)",
|
|
13
|
+
/** Background. */
|
|
14
|
+
bg: "var(--panneau-color-text)",
|
|
15
|
+
/** Corner radius. */
|
|
16
|
+
radius: "var(--panneau-radius-sm)"
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
export { tooltipTokens };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","names":[],"sources":["../../src/tooltip/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of Tooltip. */\nexport const tooltipTokens = defineComponentTokens('tooltip', {\n /** Vertical padding. */\n 'padding-y': 'var(--panneau-space-1)',\n /** Horizontal padding. */\n 'padding-x': 'var(--panneau-space-2)',\n /** Font size. */\n 'font-size': 'var(--panneau-font-size-sm)',\n /** Text color. */\n color: 'var(--panneau-color-bg)',\n /** Background. */\n bg: 'var(--panneau-color-text)',\n /** Corner radius. */\n radius: 'var(--panneau-radius-sm)',\n});\n"],"mappings":";;;AAGA,IAAa,gBAAgB,sBAAsB,WAAW;;CAE1D,aAAa;;CAEb,aAAa;;CAEb,aAAa;;CAEb,OAAO;;CAEP,IAAI;;CAEJ,QAAQ;AACZ,CAAC"}
|
package/dist/utils/cx.d.ts
CHANGED
package/dist/utils/cx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cx.d.ts","sourceRoot":"","sources":["../../src/utils/cx.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"cx.d.ts","sourceRoot":"","sources":["../../src/utils/cx.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAQ/E"}
|
package/dist/utils/cx.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/utils/cx.ts
|
|
2
|
-
/** Joins class names, skipping empty ones. */
|
|
2
|
+
/** Joins class names, skipping empty and repeated ones. */
|
|
3
3
|
function cx(...classNames) {
|
|
4
|
-
return classNames.filter(Boolean).join(" ");
|
|
4
|
+
return [...new Set(classNames.flatMap((className) => typeof className === "string" ? className.split(/\s+/).filter(Boolean) : []))].join(" ");
|
|
5
5
|
}
|
|
6
6
|
//#endregion
|
|
7
7
|
export { cx };
|
package/dist/utils/cx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cx.js","names":[],"sources":["../../src/utils/cx.ts"],"sourcesContent":["/** Joins class names, skipping empty ones. */\nexport function cx(...classNames: (string | false | null | undefined)[]): string {\n return classNames.filter(Boolean).join(' ');\n}\n"],"mappings":";;AACA,SAAgB,GAAG,GAAG,YAA2D;CAC7E,OAAO,WAAW,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;
|
|
1
|
+
{"version":3,"file":"cx.js","names":[],"sources":["../../src/utils/cx.ts"],"sourcesContent":["/** Joins class names, skipping empty and repeated ones. */\nexport function cx(...classNames: (string | false | null | undefined)[]): string {\n return [\n ...new Set(\n classNames.flatMap((className) =>\n typeof className === 'string' ? className.split(/\\s+/).filter(Boolean) : [],\n ),\n ),\n ].join(' ');\n}\n"],"mappings":";;AACA,SAAgB,GAAG,GAAG,YAA2D;CAC7E,OAAO,CACH,GAAG,IAAI,IACH,WAAW,SAAS,cAChB,OAAO,cAAc,WAAW,UAAU,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO,IAAI,CAAA,CAC7E,CACJ,CAAC,CACJ,CAAC,KAAK,GAAG;AACd"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/ui",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.2",
|
|
4
4
|
"description": "Design tokens, themes and accessible primitives of Panneau, built on React Aria Components.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,11 +23,20 @@
|
|
|
23
23
|
"types": "./dist/locales/index.d.ts",
|
|
24
24
|
"default": "./dist/locales/index.js"
|
|
25
25
|
},
|
|
26
|
+
"./theme": {
|
|
27
|
+
"@panneau/source": "./src/theme/index.ts",
|
|
28
|
+
"types": "./dist/theme/index.d.ts",
|
|
29
|
+
"default": "./dist/theme/index.js"
|
|
30
|
+
},
|
|
26
31
|
"./package.json": "./package.json"
|
|
27
32
|
},
|
|
28
33
|
"files": [
|
|
29
|
-
"dist"
|
|
34
|
+
"dist",
|
|
35
|
+
"bin"
|
|
30
36
|
],
|
|
37
|
+
"bin": {
|
|
38
|
+
"panneau-check-theme": "./bin/check-theme.js"
|
|
39
|
+
},
|
|
31
40
|
"scripts": {
|
|
32
41
|
"build": "vite build && tsc -p tsconfig.build.json",
|
|
33
42
|
"typecheck": "tsc --noEmit",
|
|
@@ -43,7 +52,10 @@
|
|
|
43
52
|
"react-intl": "^12.0.0"
|
|
44
53
|
},
|
|
45
54
|
"dependencies": {
|
|
46
|
-
"@panneau/intl": "5.0.0-alpha.
|
|
55
|
+
"@panneau/intl": "5.0.0-alpha.2",
|
|
47
56
|
"lucide-react": "^1.57.0"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@panneau/protocol": "5.0.0-alpha.2"
|
|
48
60
|
}
|
|
49
61
|
}
|