@panneau/ui 5.0.0-alpha.1 → 5.0.0-alpha.3
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 +276 -13
- 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 +2 -1
- package/dist/checkbox/Checkbox.js.map +1 -1
- package/dist/checkbox/Checkbox.module.js +6 -6
- 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/lucideIconLoader.d.ts +9 -0
- package/dist/icon/lucideIconLoader.d.ts.map +1 -0
- package/dist/icon/lucideIconLoader.js +22 -0
- package/dist/icon/lucideIconLoader.js.map +1 -0
- package/dist/icon/namedIcons.d.ts +15 -8
- package/dist/icon/namedIcons.d.ts.map +1 -1
- package/dist/icon/namedIcons.js +43 -29
- package/dist/icon/namedIcons.js.map +1 -1
- 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 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -3
- 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/named-icons/index.d.ts +2 -0
- package/dist/named-icons/index.d.ts.map +1 -0
- package/dist/named-icons/index.js +1 -0
- 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 +35 -4
- package/dist/root/PanneauRoot.d.ts.map +1 -1
- package/dist/root/PanneauRoot.js +107 -20
- 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 +2 -1
- package/dist/switch/Switch.js.map +1 -1
- package/dist/switch/Switch.module.js +6 -5
- 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 +2 -2
- package/dist/text-area/TextArea.js.map +1 -1
- package/dist/text-area/TextArea.module.js +3 -3
- package/dist/text-area/TextArea.module.js.map +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 +20 -3
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { NamedIconLoader } from './namedIcons';
|
|
2
|
+
/**
|
|
3
|
+
* Loads any Lucide icon by its name (the names of lucide.dev/icons). Each icon is its own chunk,
|
|
4
|
+
* and so is the list of names, loaded the first time an icon is named. Bundlers emit a chunk per
|
|
5
|
+
* Lucide icon for it, so it lives in its own entry point: only apps that pass it to `PanneauRoot`
|
|
6
|
+
* pay for it.
|
|
7
|
+
*/
|
|
8
|
+
export declare const lucideIconLoader: NamedIconLoader;
|
|
9
|
+
//# sourceMappingURL=lucideIconLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucideIconLoader.d.ts","sourceRoot":"","sources":["../../src/icon/lucideIconLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAMpD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAY9B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/icon/lucideIconLoader.ts
|
|
2
|
+
var imports = null;
|
|
3
|
+
/**
|
|
4
|
+
* Loads any Lucide icon by its name (the names of lucide.dev/icons). Each icon is its own chunk,
|
|
5
|
+
* and so is the list of names, loaded the first time an icon is named. Bundlers emit a chunk per
|
|
6
|
+
* Lucide icon for it, so it lives in its own entry point: only apps that pass it to `PanneauRoot`
|
|
7
|
+
* pay for it.
|
|
8
|
+
*/
|
|
9
|
+
var lucideIconLoader = (name) => {
|
|
10
|
+
imports ??= import("lucide-react/dynamicIconImports.mjs").then((module) => module.default, (error) => {
|
|
11
|
+
imports = null;
|
|
12
|
+
throw error;
|
|
13
|
+
});
|
|
14
|
+
return imports.then((all) => {
|
|
15
|
+
const load = Object.hasOwn(all, name) ? all[name] : void 0;
|
|
16
|
+
return load !== void 0 ? load().then((module) => module.default) : null;
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { lucideIconLoader };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=lucideIconLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucideIconLoader.js","names":[],"sources":["../../src/icon/lucideIconLoader.ts"],"sourcesContent":["import type { IconComponent } from './Icon';\nimport type { NamedIconLoader } from './namedIcons';\n\ntype IconImports = Readonly<Record<string, () => Promise<{ default: IconComponent }>>>;\n\nlet imports: Promise<IconImports> | null = null;\n\n/**\n * Loads any Lucide icon by its name (the names of lucide.dev/icons). Each icon is its own chunk,\n * and so is the list of names, loaded the first time an icon is named. Bundlers emit a chunk per\n * Lucide icon for it, so it lives in its own entry point: only apps that pass it to `PanneauRoot`\n * pay for it.\n */\nexport const lucideIconLoader: NamedIconLoader = (name) => {\n imports ??= import('lucide-react/dynamicIconImports.mjs').then(\n (module) => module.default as unknown as IconImports,\n (error: unknown) => {\n imports = null;\n throw error;\n },\n );\n return imports.then((all) => {\n const load = Object.hasOwn(all, name) ? all[name] : undefined;\n return load !== undefined ? load().then((module) => module.default) : null;\n });\n};\n"],"mappings":";AAKA,IAAI,UAAuC;;;;;;;AAQ3C,IAAa,oBAAqC,SAAS;CACvD,YAAY,OAAO,sCAAsC,CAAC,MACrD,WAAW,OAAO,UAClB,UAAmB;EAChB,UAAU;EACV,MAAM;CACV,CACJ;CACA,OAAO,QAAQ,MAAM,QAAQ;EACzB,MAAM,OAAO,OAAO,OAAO,KAAK,IAAI,IAAI,IAAI,QAAQ,KAAA;EACpD,OAAO,SAAS,KAAA,IAAY,KAAK,CAAC,CAAC,MAAM,WAAW,OAAO,OAAO,IAAI;CAC1E,CAAC;AACL"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import type { IconComponent } from './Icon';
|
|
2
2
|
/**
|
|
3
|
-
* Loads
|
|
4
|
-
* resolves with
|
|
5
|
-
*
|
|
3
|
+
* Loads an icon component from its name, as definitions name icons (`"icon": "send"`), or
|
|
4
|
+
* resolves with `null` for a name it doesn't know. `lucideIconLoader` of `@panneau/ui/named-icons`
|
|
5
|
+
* loads any Lucide icon; an app can load only the icons its definitions use.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export type NamedIconLoader = (name: string) => Promise<IconComponent | null>;
|
|
8
|
+
/** The loader of named icons, set by `PanneauRoot`'s `iconLoader`. */
|
|
9
|
+
export declare const NamedIconLoaderContext: import("react").Context<NamedIconLoader | null>;
|
|
8
10
|
/**
|
|
9
|
-
*
|
|
11
|
+
* Loads an icon by its name with a loader, once per loader and name, and resolves with its
|
|
12
|
+
* component, or with `null` for a name the loader doesn't know.
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadNamedIcon(name: string, loader: NamedIconLoader): Promise<IconComponent | null>;
|
|
15
|
+
/**
|
|
16
|
+
* An icon component for an icon name, as definitions name them (`"icon": "send"`). It goes
|
|
10
17
|
* wherever an icon component goes (`<Button icon={getNamedIcon('send')}>`), and is the same
|
|
11
|
-
* component for the same name. It loads the icon the
|
|
12
|
-
* and renders an empty space of the same size until then
|
|
13
|
-
* nothing.
|
|
18
|
+
* component for the same name. It loads the icon with the `iconLoader` of `PanneauRoot` the first
|
|
19
|
+
* time it renders, and renders an empty space of the same size until then, or without a loader. A
|
|
20
|
+
* name the loader doesn't know renders nothing.
|
|
14
21
|
*/
|
|
15
22
|
export declare function getNamedIcon(name: string): IconComponent;
|
|
16
23
|
//# sourceMappingURL=namedIcons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namedIcons.d.ts","sourceRoot":"","sources":["../../src/icon/namedIcons.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"namedIcons.d.ts","sourceRoot":"","sources":["../../src/icon/namedIcons.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;AAU9E,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,iDAA8C,CAAC;AA2BlF;;;GAGG;AACH,wBAAgB,aAAa,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA2B/B;AAID;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAkDxD"}
|
package/dist/icon/namedIcons.js
CHANGED
|
@@ -1,64 +1,78 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useSyncExternalStore } from "react";
|
|
2
|
+
import { createContext, use, useEffect, useSyncExternalStore } from "react";
|
|
3
3
|
//#region src/icon/namedIcons.tsx
|
|
4
|
-
|
|
4
|
+
/** Icons by name, for each loader. */
|
|
5
|
+
var caches = /* @__PURE__ */ new WeakMap();
|
|
5
6
|
var components = /* @__PURE__ */ new Map();
|
|
6
7
|
var listeners = /* @__PURE__ */ new Set();
|
|
7
|
-
|
|
8
|
+
/** The loader of named icons, set by `PanneauRoot`'s `iconLoader`. */
|
|
9
|
+
var NamedIconLoaderContext = createContext(null);
|
|
10
|
+
function cache(loader) {
|
|
11
|
+
let entries = caches.get(loader);
|
|
12
|
+
if (entries === void 0) {
|
|
13
|
+
entries = /* @__PURE__ */ new Map();
|
|
14
|
+
caches.set(loader, entries);
|
|
15
|
+
}
|
|
16
|
+
return entries;
|
|
17
|
+
}
|
|
8
18
|
function subscribe(listener) {
|
|
9
19
|
listeners.add(listener);
|
|
10
20
|
return () => {
|
|
11
21
|
listeners.delete(listener);
|
|
12
22
|
};
|
|
13
23
|
}
|
|
14
|
-
function setEntry(name, entry) {
|
|
15
|
-
|
|
24
|
+
function setEntry(loader, name, entry) {
|
|
25
|
+
if (entry === void 0) cache(loader).delete(name);
|
|
26
|
+
else cache(loader).set(name, entry);
|
|
16
27
|
listeners.forEach((listener) => listener());
|
|
17
28
|
}
|
|
18
29
|
/**
|
|
19
|
-
* Loads
|
|
20
|
-
*
|
|
21
|
-
* module, and so is the list of names: neither is in the bundle until a named icon is used.
|
|
30
|
+
* Loads an icon by its name with a loader, once per loader and name, and resolves with its
|
|
31
|
+
* component, or with `null` for a name the loader doesn't know.
|
|
22
32
|
*/
|
|
23
|
-
function loadNamedIcon(name) {
|
|
24
|
-
const entry =
|
|
33
|
+
function loadNamedIcon(name, loader) {
|
|
34
|
+
const entry = cache(loader).get(name);
|
|
25
35
|
if (entry?.status === "loaded") return Promise.resolve(entry.icon);
|
|
26
36
|
if (entry?.status === "missing") return Promise.resolve(null);
|
|
27
|
-
if (entry === void 0) setEntry(name, { status: "loading" });
|
|
28
|
-
|
|
29
|
-
return imports.then((all) => {
|
|
30
|
-
const load = Object.hasOwn(all, name) ? all[name] : void 0;
|
|
31
|
-
return load !== void 0 ? load().then((module) => module.default) : null;
|
|
32
|
-
}).then((icon) => {
|
|
37
|
+
if (entry === void 0) setEntry(loader, name, { status: "loading" });
|
|
38
|
+
return loader(name).then((icon) => {
|
|
33
39
|
if (icon === null) {
|
|
34
|
-
console.warn(`[panneau]
|
|
35
|
-
setEntry(name, { status: "missing" });
|
|
36
|
-
} else setEntry(name, {
|
|
40
|
+
console.warn(`[panneau] No icon named "${name}".`);
|
|
41
|
+
setEntry(loader, name, { status: "missing" });
|
|
42
|
+
} else setEntry(loader, name, {
|
|
37
43
|
status: "loaded",
|
|
38
44
|
icon
|
|
39
45
|
});
|
|
40
46
|
return icon;
|
|
41
47
|
}, (error) => {
|
|
42
|
-
|
|
43
|
-
imports = null;
|
|
48
|
+
setEntry(loader, name, void 0);
|
|
44
49
|
throw error;
|
|
45
50
|
});
|
|
46
51
|
}
|
|
52
|
+
var warnedWithoutLoader = false;
|
|
47
53
|
/**
|
|
48
|
-
* An icon component for
|
|
54
|
+
* An icon component for an icon name, as definitions name them (`"icon": "send"`). It goes
|
|
49
55
|
* wherever an icon component goes (`<Button icon={getNamedIcon('send')}>`), and is the same
|
|
50
|
-
* component for the same name. It loads the icon the
|
|
51
|
-
* and renders an empty space of the same size until then
|
|
52
|
-
* nothing.
|
|
56
|
+
* component for the same name. It loads the icon with the `iconLoader` of `PanneauRoot` the first
|
|
57
|
+
* time it renders, and renders an empty space of the same size until then, or without a loader. A
|
|
58
|
+
* name the loader doesn't know renders nothing.
|
|
53
59
|
*/
|
|
54
60
|
function getNamedIcon(name) {
|
|
55
61
|
const existing = components.get(name);
|
|
56
62
|
if (existing !== void 0) return existing;
|
|
57
63
|
const NamedIcon = ({ size = 24, className, ...props }) => {
|
|
58
|
-
const
|
|
64
|
+
const loader = use(NamedIconLoaderContext);
|
|
65
|
+
const entry = useSyncExternalStore(subscribe, () => loader !== null ? cache(loader).get(name) : void 0, () => loader !== null ? cache(loader).get(name) : void 0);
|
|
59
66
|
useEffect(() => {
|
|
60
|
-
if (
|
|
61
|
-
|
|
67
|
+
if (loader === null) {
|
|
68
|
+
if (!warnedWithoutLoader) {
|
|
69
|
+
warnedWithoutLoader = true;
|
|
70
|
+
console.warn(`[panneau] The icon "${name}" is named, but PanneauRoot has no iconLoader: pass lucideIconLoader from @panneau/ui/named-icons.`);
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (cache(loader).get(name) === void 0) loadNamedIcon(name, loader).catch(() => void 0);
|
|
75
|
+
}, [loader]);
|
|
62
76
|
if (entry?.status === "loaded") {
|
|
63
77
|
const Loaded = entry.icon;
|
|
64
78
|
return /* @__PURE__ */ jsx(Loaded, {
|
|
@@ -85,6 +99,6 @@ function getNamedIcon(name) {
|
|
|
85
99
|
return NamedIcon;
|
|
86
100
|
}
|
|
87
101
|
//#endregion
|
|
88
|
-
export { getNamedIcon, loadNamedIcon };
|
|
102
|
+
export { NamedIconLoaderContext, getNamedIcon, loadNamedIcon };
|
|
89
103
|
|
|
90
104
|
//# sourceMappingURL=namedIcons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namedIcons.js","names":[],"sources":["../../src/icon/namedIcons.tsx"],"sourcesContent":["import { useEffect, useSyncExternalStore } from 'react';\n\nimport type { IconComponent } from './Icon';\n\
|
|
1
|
+
{"version":3,"file":"namedIcons.js","names":[],"sources":["../../src/icon/namedIcons.tsx"],"sourcesContent":["import { createContext, use, useEffect, useSyncExternalStore } from 'react';\n\nimport type { IconComponent } from './Icon';\n\n/**\n * Loads an icon component from its name, as definitions name icons (`\"icon\": \"send\"`), or\n * resolves with `null` for a name it doesn't know. `lucideIconLoader` of `@panneau/ui/named-icons`\n * loads any Lucide icon; an app can load only the icons its definitions use.\n */\nexport type NamedIconLoader = (name: string) => Promise<IconComponent | null>;\n\ntype Entry =\n { status: 'loading' } | { status: 'loaded'; icon: IconComponent } | { status: 'missing' };\n\n/** Icons by name, for each loader. */\nconst caches = new WeakMap<NamedIconLoader, Map<string, Entry>>();\nconst components = new Map<string, IconComponent>();\nconst listeners = new Set<() => void>();\n\n/** The loader of named icons, set by `PanneauRoot`'s `iconLoader`. */\nexport const NamedIconLoaderContext = createContext<NamedIconLoader | null>(null);\n\nfunction cache(loader: NamedIconLoader): Map<string, Entry> {\n let entries = caches.get(loader);\n if (entries === undefined) {\n entries = new Map();\n caches.set(loader, entries);\n }\n return entries;\n}\n\nfunction subscribe(listener: () => void): () => void {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n}\n\nfunction setEntry(loader: NamedIconLoader, name: string, entry: Entry | undefined) {\n if (entry === undefined) {\n cache(loader).delete(name);\n } else {\n cache(loader).set(name, entry);\n }\n listeners.forEach((listener) => listener());\n}\n\n/**\n * Loads an icon by its name with a loader, once per loader and name, and resolves with its\n * component, or with `null` for a name the loader doesn't know.\n */\nexport function loadNamedIcon(\n name: string,\n loader: NamedIconLoader,\n): Promise<IconComponent | null> {\n const entry = cache(loader).get(name);\n if (entry?.status === 'loaded') {\n return Promise.resolve(entry.icon);\n }\n if (entry?.status === 'missing') {\n return Promise.resolve(null);\n }\n if (entry === undefined) {\n setEntry(loader, name, { status: 'loading' });\n }\n return loader(name).then(\n (icon) => {\n if (icon === null) {\n console.warn(`[panneau] No icon named \"${name}\".`);\n setEntry(loader, name, { status: 'missing' });\n } else {\n setEntry(loader, name, { status: 'loaded', icon });\n }\n return icon;\n },\n (error: unknown) => {\n // A chunk that failed to load (offline): the icon is loaded again when it mounts.\n setEntry(loader, name, undefined);\n throw error;\n },\n );\n}\n\nlet warnedWithoutLoader = false;\n\n/**\n * An icon component for an icon name, as definitions name them (`\"icon\": \"send\"`). It goes\n * wherever an icon component goes (`<Button icon={getNamedIcon('send')}>`), and is the same\n * component for the same name. It loads the icon with the `iconLoader` of `PanneauRoot` the first\n * time it renders, and renders an empty space of the same size until then, or without a loader. A\n * name the loader doesn't know renders nothing.\n */\nexport function getNamedIcon(name: string): IconComponent {\n const existing = components.get(name);\n if (existing !== undefined) {\n return existing;\n }\n const NamedIcon: IconComponent = ({ size = 24, className, ...props }) => {\n const loader = use(NamedIconLoaderContext);\n const entry = useSyncExternalStore(\n subscribe,\n () => (loader !== null ? cache(loader).get(name) : undefined),\n () => (loader !== null ? cache(loader).get(name) : undefined),\n );\n useEffect(() => {\n if (loader === null) {\n if (!warnedWithoutLoader) {\n warnedWithoutLoader = true;\n console.warn(\n `[panneau] The icon \"${name}\" is named, but PanneauRoot has no iconLoader: pass lucideIconLoader from @panneau/ui/named-icons.`,\n );\n }\n return;\n }\n if (cache(loader).get(name) === undefined) {\n loadNamedIcon(name, loader).catch(() => undefined);\n }\n }, [loader]);\n if (entry?.status === 'loaded') {\n const Loaded = entry.icon;\n return <Loaded size={size} className={className} {...props} />;\n }\n if (entry?.status === 'missing') {\n return null;\n }\n const { 'aria-hidden': hidden, 'aria-label': label, role } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n className={className}\n aria-hidden={hidden}\n aria-label={label}\n role={role}\n data-loading=\"\"\n />\n );\n };\n NamedIcon.displayName = `NamedIcon(${name})`;\n components.set(name, NamedIcon);\n return NamedIcon;\n}\n"],"mappings":";;;;AAeA,IAAM,yBAAS,IAAI,QAA6C;AAChE,IAAM,6BAAa,IAAI,IAA2B;AAClD,IAAM,4BAAY,IAAI,IAAgB;;AAGtC,IAAa,yBAAyB,cAAsC,IAAI;AAEhF,SAAS,MAAM,QAA6C;CACxD,IAAI,UAAU,OAAO,IAAI,MAAM;CAC/B,IAAI,YAAY,KAAA,GAAW;EACvB,0BAAU,IAAI,IAAI;EAClB,OAAO,IAAI,QAAQ,OAAO;CAC9B;CACA,OAAO;AACX;AAEA,SAAS,UAAU,UAAkC;CACjD,UAAU,IAAI,QAAQ;CACtB,aAAa;EACT,UAAU,OAAO,QAAQ;CAC7B;AACJ;AAEA,SAAS,SAAS,QAAyB,MAAc,OAA0B;CAC/E,IAAI,UAAU,KAAA,GACV,MAAM,MAAM,CAAC,CAAC,OAAO,IAAI;MAEzB,MAAM,MAAM,CAAC,CAAC,IAAI,MAAM,KAAK;CAEjC,UAAU,SAAS,aAAa,SAAS,CAAC;AAC9C;;;;;AAMA,SAAgB,cACZ,MACA,QAC6B;CAC7B,MAAM,QAAQ,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI;CACpC,IAAI,OAAO,WAAW,UAClB,OAAO,QAAQ,QAAQ,MAAM,IAAI;CAErC,IAAI,OAAO,WAAW,WAClB,OAAO,QAAQ,QAAQ,IAAI;CAE/B,IAAI,UAAU,KAAA,GACV,SAAS,QAAQ,MAAM,EAAE,QAAQ,UAAU,CAAC;CAEhD,OAAO,OAAO,IAAI,CAAC,CAAC,MACf,SAAS;EACN,IAAI,SAAS,MAAM;GACf,QAAQ,KAAK,4BAA4B,KAAI,GAAI;GACjD,SAAS,QAAQ,MAAM,EAAE,QAAQ,UAAU,CAAC;EAChD,OACI,SAAS,QAAQ,MAAM;GAAE,QAAQ;GAAU;EAAK,CAAC;EAErD,OAAO;CACX,IACC,UAAmB;EAEhB,SAAS,QAAQ,MAAM,KAAA,CAAS;EAChC,MAAM;CACV,CACJ;AACJ;AAEA,IAAI,sBAAsB;;;;;;;;AAS1B,SAAgB,aAAa,MAA6B;CACtD,MAAM,WAAW,WAAW,IAAI,IAAI;CACpC,IAAI,aAAa,KAAA,GACb,OAAO;CAEX,MAAM,aAA4B,EAAE,OAAO,IAAI,WAAW,GAAG,YAAY;EACrE,MAAM,SAAS,IAAI,sBAAsB;EACzC,MAAM,QAAQ,qBACV,iBACO,WAAW,OAAO,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,KAAA,SAC5C,WAAW,OAAO,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,KAAA,CACvD;EACA,gBAAgB;GACZ,IAAI,WAAW,MAAM;IACjB,IAAI,CAAC,qBAAqB;KACtB,sBAAsB;KACtB,QAAQ,KACJ,uBAAuB,KAAI,mGAC/B;IACJ;IACA;GACJ;GACA,IAAI,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,MAAM,KAAA,GAC5B,cAAc,MAAM,MAAM,CAAC,CAAC,YAAY,KAAA,CAAS;EAEzD,GAAG,CAAC,MAAM,CAAC;EACX,IAAI,OAAO,WAAW,UAAU;GAC5B,MAAM,SAAS,MAAM;GACrB,OAAO,oBAAC,QAAD;IAAc;IAAiB;IAAW,GAAI;GAAM,CAAA;EAC/D;EACA,IAAI,OAAO,WAAW,WAClB,OAAO;EAEX,MAAM,EAAE,eAAe,QAAQ,cAAc,OAAO,SAAS;EAC7D,OACI,oBAAC,OAAD;GACI,OAAO;GACP,QAAQ;GACR,SAAQ;GACG;GACX,eAAa;GACb,cAAY;GACN;GACN,gBAAa;EAAE,CAAA;CAG3B;CACA,UAAU,cAAc,aAAa,KAAI;CACzC,WAAW,IAAI,MAAM,SAAS;CAC9B,OAAO;AACX"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* Doubled classes: more specific than the button's own padding, whatever the CSS order. */
|
|
2
|
-
.panneau-
|
|
2
|
+
.panneau-icon-button.panneau-icon-button {
|
|
3
3
|
width: var(--panneau-control-height);
|
|
4
4
|
padding: 0;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.panneau-
|
|
7
|
+
.panneau-icon-button.panneau-icon-button-sm {
|
|
8
8
|
width: var(--panneau-control-height-sm);
|
|
9
9
|
}
|
|
@@ -11,5 +11,5 @@ export interface IconButtonProps extends Omit<ButtonProps, 'icon' | 'iconEnd' |
|
|
|
11
11
|
style?: CSSProperties;
|
|
12
12
|
}
|
|
13
13
|
/** A square button with only an icon. Its label is announced and shown as a tooltip. */
|
|
14
|
-
export declare function IconButton({ icon, label,
|
|
14
|
+
export declare function IconButton({ icon, label, appearance, size, showTooltip, className, ...props }: IconButtonProps): import("react").JSX.Element;
|
|
15
15
|
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/icon-button/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CACzC,WAAW,EACX,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,CAC/D;IACG,IAAI,EAAE,aAAa,CAAC;IACpB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/icon-button/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CACzC,WAAW,EACX,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,CAC/D;IACG,IAAI,EAAE,aAAa,CAAC;IACpB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,UAAoB,EACpB,IAAW,EACX,WAAkB,EAClB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,eAAe,+BAoBjB"}
|
|
@@ -5,14 +5,14 @@ import IconButton_module_default from "./IconButton.module.js";
|
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/icon-button/IconButton.tsx
|
|
7
7
|
/** A square button with only an icon. Its label is announced and shown as a tooltip. */
|
|
8
|
-
function IconButton({ icon, label,
|
|
8
|
+
function IconButton({ icon, label, appearance = "ghost", size = "md", showTooltip = true, className, ...props }) {
|
|
9
9
|
const button = /* @__PURE__ */ jsx(Button, {
|
|
10
10
|
...props,
|
|
11
|
-
|
|
11
|
+
appearance,
|
|
12
12
|
size,
|
|
13
13
|
icon,
|
|
14
14
|
"aria-label": label,
|
|
15
|
-
className: cx(IconButton_module_default.iconButton, size === "sm" && IconButton_module_default.sm, className)
|
|
15
|
+
className: cx("panneau-icon-button", IconButton_module_default.iconButton, size === "sm" && IconButton_module_default.sm, className)
|
|
16
16
|
});
|
|
17
17
|
if (!showTooltip) return button;
|
|
18
18
|
return /* @__PURE__ */ jsx(Tooltip, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.js","names":["styles"],"sources":["../../src/icon-button/IconButton.tsx"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport { Button, type ButtonProps } from '../button/Button';\nimport type { IconComponent } from '../icon/Icon';\nimport { Tooltip } from '../tooltip/Tooltip';\nimport { cx } from '../utils/cx';\nimport styles from './IconButton.module.css';\n\nexport interface IconButtonProps extends Omit<\n ButtonProps,\n 'icon' | 'iconEnd' | 'children' | 'fullWidth' | 'aria-label'\n> {\n icon: IconComponent;\n /** Accessible label, also shown as a tooltip. */\n label: string;\n /** Shows the label in a tooltip on hover and focus. Defaults to true. */\n showTooltip?: boolean;\n className?: string;\n style?: CSSProperties;\n}\n\n/** A square button with only an icon. Its label is announced and shown as a tooltip. */\nexport function IconButton({\n icon,\n label,\n
|
|
1
|
+
{"version":3,"file":"IconButton.js","names":["styles"],"sources":["../../src/icon-button/IconButton.tsx"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport { Button, type ButtonProps } from '../button/Button';\nimport type { IconComponent } from '../icon/Icon';\nimport { Tooltip } from '../tooltip/Tooltip';\nimport { cx } from '../utils/cx';\nimport styles from './IconButton.module.css';\n\nexport interface IconButtonProps extends Omit<\n ButtonProps,\n 'icon' | 'iconEnd' | 'children' | 'fullWidth' | 'aria-label'\n> {\n icon: IconComponent;\n /** Accessible label, also shown as a tooltip. */\n label: string;\n /** Shows the label in a tooltip on hover and focus. Defaults to true. */\n showTooltip?: boolean;\n className?: string;\n style?: CSSProperties;\n}\n\n/** A square button with only an icon. Its label is announced and shown as a tooltip. */\nexport function IconButton({\n icon,\n label,\n appearance = 'ghost',\n size = 'md',\n showTooltip = true,\n className,\n ...props\n}: IconButtonProps) {\n const button = (\n <Button\n {...props}\n appearance={appearance}\n size={size}\n icon={icon}\n aria-label={label}\n className={cx(\n 'panneau-icon-button',\n styles.iconButton,\n size === 'sm' && styles.sm,\n className,\n )}\n />\n );\n if (!showTooltip) {\n return button;\n }\n return <Tooltip content={label}>{button}</Tooltip>;\n}\n"],"mappings":";;;;;;;AAsBA,SAAgB,WAAW,EACvB,MACA,OACA,aAAa,SACb,OAAO,MACP,cAAc,MACd,WACA,GAAG,SACa;CAChB,MAAM,SACF,oBAAC,QAAD;EACI,GAAI;EACQ;EACN;EACA;EACN,cAAY;EACZ,WAAW,GACP,uBACAA,0BAAO,YACP,SAAS,QAAQA,0BAAO,IACxB,SACJ;CAAE,CAAA;CAGV,IAAI,CAAC,aACD,OAAO;CAEX,OAAO,oBAAC,SAAD;EAAS,SAAS;EAAQ,UAAA;CAAgB,CAAA;AACrD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./IconButton.css";
|
|
2
2
|
//#region src/icon-button/IconButton.module.css
|
|
3
|
-
var iconButton = "panneau-
|
|
4
|
-
var sm = "panneau-
|
|
3
|
+
var iconButton = "panneau-icon-button";
|
|
4
|
+
var sm = "panneau-icon-button-sm";
|
|
5
5
|
var IconButton_module_default = {
|
|
6
6
|
iconButton,
|
|
7
7
|
sm
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
export { Alert, type AlertProps, type AlertTone } from './alert/Alert';
|
|
2
|
-
export { Badge, type BadgeProps, type BadgeTone } from './badge/Badge';
|
|
3
|
-
export { Button, type ButtonProps, type ButtonVariant } from './button/Button';
|
|
1
|
+
export { Alert, type AlertAppearance, type AlertProps, type AlertTone, type AlertVariants, } from './alert/Alert';
|
|
2
|
+
export { Badge, type BadgeAppearance, type BadgeProps, type BadgeTone, type BadgeVariants, } from './badge/Badge';
|
|
3
|
+
export { Button, type ButtonAppearance, type ButtonProps, type ButtonVariant, type ButtonVariants, } from './button/Button';
|
|
4
4
|
export { Card, type CardProps } from './card/Card';
|
|
5
|
+
export { Container, type ContainerProps } from './container/Container';
|
|
6
|
+
export { Divider, type DividerProps } from './divider/Divider';
|
|
7
|
+
export { Grid, GridItem, type GridItemProps, type GridProps } from './grid/Grid';
|
|
8
|
+
export { Heading, type HeadingLevel, type HeadingProps, type HeadingSize } from './heading/Heading';
|
|
5
9
|
export { Checkbox, type CheckboxProps } from './checkbox/Checkbox';
|
|
6
10
|
export { type ChoiceChromeProps } from './checkbox/ChoiceChrome';
|
|
7
11
|
export { ComboBox, type ComboBoxItem, type ComboBoxProps } from './combo-box/ComboBox';
|
|
@@ -11,7 +15,7 @@ export { Disclosure, type DisclosureProps } from './disclosure/Disclosure';
|
|
|
11
15
|
export { type FieldChromeProps } from './field/FieldParts';
|
|
12
16
|
export { Fieldset, type FieldsetProps } from './field/Fieldset';
|
|
13
17
|
export { Icon, type IconComponent, type IconProps, type IconSize } from './icon/Icon';
|
|
14
|
-
export { getNamedIcon, loadNamedIcon } from './icon/namedIcons';
|
|
18
|
+
export { type NamedIconLoader, getNamedIcon, loadNamedIcon } from './icon/namedIcons';
|
|
15
19
|
export { IconButton, type IconButtonProps } from './icon-button/IconButton';
|
|
16
20
|
export { usePanneauIntl } from './intl/usePanneauIntl';
|
|
17
21
|
export { Menu, MenuItem, type MenuItemProps, type MenuProps, MenuSeparator, MenuTrigger, } from './menu/Menu';
|
|
@@ -19,14 +23,30 @@ export { NumberInput, type NumberInputProps } from './number-input/NumberInput';
|
|
|
19
23
|
export { Popover, type PopoverProps, PopoverTrigger } from './popover/Popover';
|
|
20
24
|
export { RadioGroup, type RadioGroupProps } from './radio-group/RadioGroup';
|
|
21
25
|
export { PanneauRoot, type PanneauRootProps, usePortalContainer } from './root/PanneauRoot';
|
|
26
|
+
export { ThemeScope, type ThemeScopeProps } from './root/ThemeScope';
|
|
22
27
|
export { type MultipleSelectProps, type OptionValue, Select, type SelectBaseProps, type SelectOption, type SelectProps, type SingleSelectProps, } from './select/Select';
|
|
28
|
+
export { Inline, type InlineProps } from './inline/Inline';
|
|
29
|
+
export { BREAKPOINTS, type Breakpoint, type Justification, type Responsive, type Space, } from './layout/responsive';
|
|
30
|
+
export { Prose, type ProseProps } from './prose/Prose';
|
|
23
31
|
export { Spinner, type SpinnerProps } from './spinner/Spinner';
|
|
32
|
+
export { Stack, type StackProps } from './stack/Stack';
|
|
24
33
|
export { Switch, type SwitchProps } from './switch/Switch';
|
|
25
34
|
export { Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Tabs, type TabsProps, } from './tabs/Tabs';
|
|
35
|
+
export { Text, type TextFamily, type TextProps, type TextSize } from './text/Text';
|
|
26
36
|
export { TextArea, type TextAreaProps } from './text-area/TextArea';
|
|
27
37
|
export { TextInput, type TextInputProps } from './text-input/TextInput';
|
|
28
|
-
export { bootstrapTheme } from './theme/bootstrap';
|
|
29
|
-
export {
|
|
38
|
+
export { bootstrapTheme, bootstrapTone } from './theme/bootstrap';
|
|
39
|
+
export { CHART_CATEGORICAL_COUNT, CHART_SEQUENTIAL_COUNT, chartColors } from './theme/chartColors';
|
|
40
|
+
export { type ThemeContrastCheck, type ThemeReport, checkTheme } from './theme/checkTheme';
|
|
41
|
+
export { type ColorDifferenceCheck, type ColorVisionDeficiency, checkColorDifferences, } from './theme/colorVision';
|
|
42
|
+
export { type Rgb } from './theme/color';
|
|
43
|
+
export { type ComponentTokens, defineComponentTokens } from './theme/componentTokens';
|
|
44
|
+
export { type ComponentTokenName, componentTokens } from './theme/components';
|
|
45
|
+
export { type PaletteTokenName, type PanneauTokens, type ThemeDefinition, type ThemeTokens, type TokenName, defineTheme, findUnknownTokens, mergeThemes, } from './theme/defineTheme';
|
|
46
|
+
export { SEMANTIC_TOKENS, type SemanticTokenName } from './theme/semanticTokens';
|
|
47
|
+
export { type ThemeFont, type ThemeFontFace, type ThemeFontStylesheet } from './theme/fonts';
|
|
48
|
+
export { type ColorScheme, type Density, type Theme } from './theme/theme';
|
|
49
|
+
export { BUILT_IN_TONES, type PanneauTones, type Tone, type ToneInput, type ToneSurfaces, type ToneValues, deriveTone, toneClassName, } from './theme/tones';
|
|
30
50
|
export { TimeInput, type TimeInputProps } from './time-input/TimeInput';
|
|
31
51
|
export { type ToastContent, type ToastOptions, type ToastTone, type Toasts, useToast, } from './toast/Toast';
|
|
32
52
|
export { Tooltip, type TooltipProps } from './tooltip/Tooltip';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Icon } from "./icon/Icon.js";
|
|
2
2
|
import { usePanneauIntl } from "./intl/usePanneauIntl.js";
|
|
3
3
|
import { Spinner } from "./spinner/Spinner.js";
|
|
4
|
+
import { BUILT_IN_TONES, deriveTone, toneClassName } from "./theme/tones.js";
|
|
4
5
|
import { Button } from "./button/Button.js";
|
|
6
|
+
import { getNamedIcon, loadNamedIcon } from "./icon/namedIcons.js";
|
|
5
7
|
import { useToast } from "./toast/Toast.js";
|
|
6
8
|
import { PanneauRoot, usePortalContainer } from "./root/PanneauRoot.js";
|
|
7
9
|
import { Tooltip } from "./tooltip/Tooltip.js";
|
|
@@ -9,6 +11,11 @@ import { IconButton } from "./icon-button/IconButton.js";
|
|
|
9
11
|
import { Alert } from "./alert/Alert.js";
|
|
10
12
|
import { Badge } from "./badge/Badge.js";
|
|
11
13
|
import { Card } from "./card/Card.js";
|
|
14
|
+
import { Container } from "./container/Container.js";
|
|
15
|
+
import { Divider } from "./divider/Divider.js";
|
|
16
|
+
import { BREAKPOINTS } from "./layout/responsive.js";
|
|
17
|
+
import { Grid, GridItem } from "./grid/Grid.js";
|
|
18
|
+
import { Heading } from "./heading/Heading.js";
|
|
12
19
|
import { Checkbox } from "./checkbox/Checkbox.js";
|
|
13
20
|
import { Popover, PopoverTrigger } from "./popover/Popover.js";
|
|
14
21
|
import { ComboBox } from "./combo-box/ComboBox.js";
|
|
@@ -16,15 +23,26 @@ import { DatePicker } from "./date-picker/DatePicker.js";
|
|
|
16
23
|
import { Dialog, DialogTrigger } from "./dialog/Dialog.js";
|
|
17
24
|
import { Disclosure } from "./disclosure/Disclosure.js";
|
|
18
25
|
import { Fieldset } from "./field/Fieldset.js";
|
|
19
|
-
import { getNamedIcon, loadNamedIcon } from "./icon/namedIcons.js";
|
|
20
26
|
import { Menu, MenuItem, MenuSeparator, MenuTrigger } from "./menu/Menu.js";
|
|
21
27
|
import { NumberInput } from "./number-input/NumberInput.js";
|
|
22
28
|
import { RadioGroup } from "./radio-group/RadioGroup.js";
|
|
29
|
+
import { ThemeScope } from "./root/ThemeScope.js";
|
|
23
30
|
import { Select } from "./select/Select.js";
|
|
31
|
+
import { Inline } from "./inline/Inline.js";
|
|
32
|
+
import { Prose } from "./prose/Prose.js";
|
|
33
|
+
import { Stack } from "./stack/Stack.js";
|
|
24
34
|
import { Switch } from "./switch/Switch.js";
|
|
25
35
|
import { Tab, TabList, TabPanel, Tabs } from "./tabs/Tabs.js";
|
|
36
|
+
import { Text } from "./text/Text.js";
|
|
26
37
|
import { TextArea } from "./text-area/TextArea.js";
|
|
27
38
|
import { TextInput } from "./text-input/TextInput.js";
|
|
28
|
-
import { bootstrapTheme } from "./theme/bootstrap.js";
|
|
39
|
+
import { bootstrapTheme, bootstrapTone } from "./theme/bootstrap.js";
|
|
40
|
+
import { CHART_CATEGORICAL_COUNT, CHART_SEQUENTIAL_COUNT, chartColors } from "./theme/chartColors.js";
|
|
41
|
+
import { checkColorDifferences } from "./theme/colorVision.js";
|
|
42
|
+
import { checkTheme } from "./theme/checkTheme.js";
|
|
43
|
+
import { defineComponentTokens } from "./theme/componentTokens.js";
|
|
44
|
+
import { componentTokens } from "./theme/components.js";
|
|
45
|
+
import { SEMANTIC_TOKENS } from "./theme/semanticTokens.js";
|
|
46
|
+
import { defineTheme, findUnknownTokens, mergeThemes } from "./theme/defineTheme.js";
|
|
29
47
|
import { TimeInput } from "./time-input/TimeInput.js";
|
|
30
|
-
export { Alert, Badge, Button, Card, Checkbox, ComboBox, DatePicker, Dialog, DialogTrigger, Disclosure, Fieldset, Icon, IconButton, Menu, MenuItem, MenuSeparator, MenuTrigger, NumberInput, PanneauRoot, Popover, PopoverTrigger, RadioGroup, Select, Spinner, Switch, Tab, TabList, TabPanel, Tabs, TextArea, TextInput, TimeInput, Tooltip, bootstrapTheme, getNamedIcon, loadNamedIcon, usePanneauIntl, usePortalContainer, useToast };
|
|
48
|
+
export { Alert, BREAKPOINTS, BUILT_IN_TONES, Badge, Button, CHART_CATEGORICAL_COUNT, CHART_SEQUENTIAL_COUNT, Card, Checkbox, ComboBox, Container, DatePicker, Dialog, DialogTrigger, Disclosure, Divider, Fieldset, Grid, GridItem, Heading, Icon, IconButton, Inline, Menu, MenuItem, MenuSeparator, MenuTrigger, NumberInput, PanneauRoot, Popover, PopoverTrigger, Prose, RadioGroup, SEMANTIC_TOKENS, Select, Spinner, Stack, Switch, Tab, TabList, TabPanel, Tabs, Text, TextArea, TextInput, ThemeScope, TimeInput, Tooltip, bootstrapTheme, bootstrapTone, chartColors, checkColorDifferences, checkTheme, componentTokens, defineComponentTokens, defineTheme, deriveTone, findUnknownTokens, getNamedIcon, loadNamedIcon, mergeThemes, toneClassName, usePanneauIntl, usePortalContainer, useToast };
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/* A horizontal row that wraps: each prop can change at the breakpoints of the nearest container. */
|
|
2
|
+
|
|
3
|
+
.panneau-inline {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-wrap: wrap;
|
|
6
|
+
min-width: 0;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.panneau-inline-nowrap {
|
|
10
|
+
flex-wrap: nowrap;
|
|
11
|
+
}
|
|
12
|
+
/* Responsive values are set inline; children reset them so that they aren't inherited. */
|
|
13
|
+
.panneau-inline > * {
|
|
14
|
+
--_panneau-inline-gap-base: initial;
|
|
15
|
+
--_panneau-inline-gap-sm: initial;
|
|
16
|
+
--_panneau-inline-gap-md: initial;
|
|
17
|
+
--_panneau-inline-gap-lg: initial;
|
|
18
|
+
--_panneau-inline-gap-xl: initial;
|
|
19
|
+
--_panneau-inline-align-base: initial;
|
|
20
|
+
--_panneau-inline-align-sm: initial;
|
|
21
|
+
--_panneau-inline-align-md: initial;
|
|
22
|
+
--_panneau-inline-align-lg: initial;
|
|
23
|
+
--_panneau-inline-align-xl: initial;
|
|
24
|
+
--_panneau-inline-justify-base: initial;
|
|
25
|
+
--_panneau-inline-justify-sm: initial;
|
|
26
|
+
--_panneau-inline-justify-md: initial;
|
|
27
|
+
--_panneau-inline-justify-lg: initial;
|
|
28
|
+
--_panneau-inline-justify-xl: initial;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.panneau-inline {
|
|
32
|
+
gap: var(--_panneau-inline-gap-base, var(--panneau-inline-gap, var(--panneau-space-2)));
|
|
33
|
+
align-items: var(--_panneau-inline-align-base, center);
|
|
34
|
+
justify-content: var(--_panneau-inline-justify-base, start);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@container (min-width: 40rem) {
|
|
38
|
+
.panneau-inline {
|
|
39
|
+
gap: var(
|
|
40
|
+
--_panneau-inline-gap-sm,
|
|
41
|
+
var(--_panneau-inline-gap-base, var(--panneau-inline-gap, var(--panneau-space-2)))
|
|
42
|
+
);
|
|
43
|
+
align-items: var(--_panneau-inline-align-sm, var(--_panneau-inline-align-base, center));
|
|
44
|
+
justify-content: var(
|
|
45
|
+
--_panneau-inline-justify-sm,
|
|
46
|
+
var(--_panneau-inline-justify-base, start)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@container (min-width: 48rem) {
|
|
52
|
+
.panneau-inline {
|
|
53
|
+
gap: var(
|
|
54
|
+
--_panneau-inline-gap-md,
|
|
55
|
+
var(
|
|
56
|
+
--_panneau-inline-gap-sm,
|
|
57
|
+
var(--_panneau-inline-gap-base, var(--panneau-inline-gap, var(--panneau-space-2)))
|
|
58
|
+
)
|
|
59
|
+
);
|
|
60
|
+
align-items: var(
|
|
61
|
+
--_panneau-inline-align-md,
|
|
62
|
+
var(--_panneau-inline-align-sm, var(--_panneau-inline-align-base, center))
|
|
63
|
+
);
|
|
64
|
+
justify-content: var(
|
|
65
|
+
--_panneau-inline-justify-md,
|
|
66
|
+
var(--_panneau-inline-justify-sm, var(--_panneau-inline-justify-base, start))
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@container (min-width: 64rem) {
|
|
72
|
+
.panneau-inline {
|
|
73
|
+
gap: var(
|
|
74
|
+
--_panneau-inline-gap-lg,
|
|
75
|
+
var(
|
|
76
|
+
--_panneau-inline-gap-md,
|
|
77
|
+
var(
|
|
78
|
+
--_panneau-inline-gap-sm,
|
|
79
|
+
var(
|
|
80
|
+
--_panneau-inline-gap-base,
|
|
81
|
+
var(--panneau-inline-gap, var(--panneau-space-2))
|
|
82
|
+
)
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
);
|
|
86
|
+
align-items: var(
|
|
87
|
+
--_panneau-inline-align-lg,
|
|
88
|
+
var(
|
|
89
|
+
--_panneau-inline-align-md,
|
|
90
|
+
var(--_panneau-inline-align-sm, var(--_panneau-inline-align-base, center))
|
|
91
|
+
)
|
|
92
|
+
);
|
|
93
|
+
justify-content: var(
|
|
94
|
+
--_panneau-inline-justify-lg,
|
|
95
|
+
var(
|
|
96
|
+
--_panneau-inline-justify-md,
|
|
97
|
+
var(--_panneau-inline-justify-sm, var(--_panneau-inline-justify-base, start))
|
|
98
|
+
)
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@container (min-width: 80rem) {
|
|
104
|
+
.panneau-inline {
|
|
105
|
+
gap: var(
|
|
106
|
+
--_panneau-inline-gap-xl,
|
|
107
|
+
var(
|
|
108
|
+
--_panneau-inline-gap-lg,
|
|
109
|
+
var(
|
|
110
|
+
--_panneau-inline-gap-md,
|
|
111
|
+
var(
|
|
112
|
+
--_panneau-inline-gap-sm,
|
|
113
|
+
var(
|
|
114
|
+
--_panneau-inline-gap-base,
|
|
115
|
+
var(--panneau-inline-gap, var(--panneau-space-2))
|
|
116
|
+
)
|
|
117
|
+
)
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
);
|
|
121
|
+
align-items: var(
|
|
122
|
+
--_panneau-inline-align-xl,
|
|
123
|
+
var(
|
|
124
|
+
--_panneau-inline-align-lg,
|
|
125
|
+
var(
|
|
126
|
+
--_panneau-inline-align-md,
|
|
127
|
+
var(--_panneau-inline-align-sm, var(--_panneau-inline-align-base, center))
|
|
128
|
+
)
|
|
129
|
+
)
|
|
130
|
+
);
|
|
131
|
+
justify-content: var(
|
|
132
|
+
--_panneau-inline-justify-xl,
|
|
133
|
+
var(
|
|
134
|
+
--_panneau-inline-justify-lg,
|
|
135
|
+
var(
|
|
136
|
+
--_panneau-inline-justify-md,
|
|
137
|
+
var(--_panneau-inline-justify-sm, var(--_panneau-inline-justify-base, start))
|
|
138
|
+
)
|
|
139
|
+
)
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
import { type Justification, type Responsive, type Space } from '../layout/responsive';
|
|
3
|
+
export interface InlineProps extends HTMLAttributes<HTMLElement> {
|
|
4
|
+
/** Element to render. Defaults to `div`. */
|
|
5
|
+
as?: 'div' | 'section' | 'header' | 'footer' | 'nav' | 'ul' | 'ol' | 'span';
|
|
6
|
+
/** Space between items, from the space scale. Defaults to the `--panneau-inline-gap` token. */
|
|
7
|
+
gap?: Responsive<Space>;
|
|
8
|
+
/** Vertical alignment of the items. Defaults to `center`. */
|
|
9
|
+
align?: Responsive<'start' | 'center' | 'end' | 'stretch' | 'baseline'>;
|
|
10
|
+
/** Horizontal distribution of the items. Defaults to `start`. */
|
|
11
|
+
justify?: Responsive<Justification>;
|
|
12
|
+
/** Items wrap to the next line when they don't fit. Defaults to `true`. */
|
|
13
|
+
wrap?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Items side by side, wrapping when they don't fit, like Bootstrap's `.hstack`. */
|
|
16
|
+
export declare function Inline({ as: Element, gap, align, justify, wrap, className, style, ...props }: InlineProps): import("react").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=Inline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Inline.d.ts","sourceRoot":"","sources":["../../src/inline/Inline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,KAAK,EAKb,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC5D,4CAA4C;IAC5C,EAAE,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC5E,+FAA+F;IAC/F,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACxB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;IACxE,iEAAiE;IACjE,OAAO,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IACpC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oFAAoF;AACpF,wBAAgB,MAAM,CAAC,EACnB,EAAE,EAAE,OAAe,EACnB,GAAG,EACH,KAAK,EACL,OAAO,EACP,IAAW,EACX,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACX,EAAE,WAAW,+BAeb"}
|