@traefik-labs/faency 12.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +160 -0
- package/dist/colors/deepBlue.cjs +63 -0
- package/dist/colors/deepBlue.cjs.map +1 -0
- package/dist/colors/deepBlue.js +63 -0
- package/dist/colors/deepBlue.js.map +1 -0
- package/dist/colors/elevation.cjs +21 -0
- package/dist/colors/elevation.cjs.map +1 -0
- package/dist/colors/elevation.js +21 -0
- package/dist/colors/elevation.js.map +1 -0
- package/dist/colors/grayBlue.cjs +63 -0
- package/dist/colors/grayBlue.cjs.map +1 -0
- package/dist/colors/grayBlue.js +63 -0
- package/dist/colors/grayBlue.js.map +1 -0
- package/dist/colors/index.cjs +86 -0
- package/dist/colors/index.cjs.map +1 -0
- package/dist/colors/index.js +86 -0
- package/dist/colors/index.js.map +1 -0
- package/dist/colors/neon.cjs +63 -0
- package/dist/colors/neon.cjs.map +1 -0
- package/dist/colors/neon.js +63 -0
- package/dist/colors/neon.js.map +1 -0
- package/dist/colors/orange.cjs +63 -0
- package/dist/colors/orange.cjs.map +1 -0
- package/dist/colors/orange.js +63 -0
- package/dist/colors/orange.js.map +1 -0
- package/dist/colors/red.cjs +63 -0
- package/dist/colors/red.cjs.map +1 -0
- package/dist/colors/red.js +63 -0
- package/dist/colors/red.js.map +1 -0
- package/dist/components/AccessibleIcon/AccessibleIcon.cjs +23 -0
- package/dist/components/AccessibleIcon/AccessibleIcon.cjs.map +1 -0
- package/dist/components/AccessibleIcon/AccessibleIcon.js +6 -0
- package/dist/components/AccessibleIcon/AccessibleIcon.js.map +1 -0
- package/dist/components/Accordion/Accordion.cjs +160 -0
- package/dist/components/Accordion/Accordion.cjs.map +1 -0
- package/dist/components/Accordion/Accordion.js +143 -0
- package/dist/components/Accordion/Accordion.js.map +1 -0
- package/dist/components/Accordion/Accordion.themes.cjs +21 -0
- package/dist/components/Accordion/Accordion.themes.cjs.map +1 -0
- package/dist/components/Accordion/Accordion.themes.js +22 -0
- package/dist/components/Accordion/Accordion.themes.js.map +1 -0
- package/dist/components/Alert/Alert.cjs +40 -0
- package/dist/components/Alert/Alert.cjs.map +1 -0
- package/dist/components/Alert/Alert.js +40 -0
- package/dist/components/Alert/Alert.js.map +1 -0
- package/dist/components/AriaTable/AriaTable.cjs +196 -0
- package/dist/components/AriaTable/AriaTable.cjs.map +1 -0
- package/dist/components/AriaTable/AriaTable.js +196 -0
- package/dist/components/AriaTable/AriaTable.js.map +1 -0
- package/dist/components/Avatar/Avatar.cjs +174 -0
- package/dist/components/Avatar/Avatar.cjs.map +1 -0
- package/dist/components/Avatar/Avatar.js +157 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Badge/Badge.cjs +137 -0
- package/dist/components/Badge/Badge.cjs.map +1 -0
- package/dist/components/Badge/Badge.js +137 -0
- package/dist/components/Badge/Badge.js.map +1 -0
- package/dist/components/Badge/Badge.theme.cjs +13 -0
- package/dist/components/Badge/Badge.theme.cjs.map +1 -0
- package/dist/components/Badge/Badge.theme.js +13 -0
- package/dist/components/Badge/Badge.theme.js.map +1 -0
- package/dist/components/Badge/Badge.themes.cjs +15 -0
- package/dist/components/Badge/Badge.themes.cjs.map +1 -0
- package/dist/components/Badge/Badge.themes.js +16 -0
- package/dist/components/Badge/Badge.themes.js.map +1 -0
- package/dist/components/Badge/Badge.vanilla.cjs +48 -0
- package/dist/components/Badge/Badge.vanilla.cjs.map +1 -0
- package/dist/components/Badge/Badge.vanilla.css.cjs +9 -0
- package/dist/components/Badge/Badge.vanilla.css.cjs.map +1 -0
- package/dist/components/Badge/Badge.vanilla.css.js +9 -0
- package/dist/components/Badge/Badge.vanilla.css.js.map +1 -0
- package/dist/components/Badge/Badge.vanilla.js +48 -0
- package/dist/components/Badge/Badge.vanilla.js.map +1 -0
- package/dist/components/Blockquote/Blockquote.cjs +10 -0
- package/dist/components/Blockquote/Blockquote.cjs.map +1 -0
- package/dist/components/Blockquote/Blockquote.js +10 -0
- package/dist/components/Blockquote/Blockquote.js.map +1 -0
- package/dist/components/Blockquote/Blockquote.vanilla.cjs +46 -0
- package/dist/components/Blockquote/Blockquote.vanilla.cjs.map +1 -0
- package/dist/components/Blockquote/Blockquote.vanilla.css.cjs +7 -0
- package/dist/components/Blockquote/Blockquote.vanilla.css.cjs.map +1 -0
- package/dist/components/Blockquote/Blockquote.vanilla.css.js +7 -0
- package/dist/components/Blockquote/Blockquote.vanilla.css.js.map +1 -0
- package/dist/components/Blockquote/Blockquote.vanilla.js +46 -0
- package/dist/components/Blockquote/Blockquote.vanilla.js.map +1 -0
- package/dist/components/Box/Box.cjs +9 -0
- package/dist/components/Box/Box.cjs.map +1 -0
- package/dist/components/Box/Box.js +9 -0
- package/dist/components/Box/Box.js.map +1 -0
- package/dist/components/Box/Box.vanilla.cjs +33 -0
- package/dist/components/Box/Box.vanilla.cjs.map +1 -0
- package/dist/components/Box/Box.vanilla.css.cjs +6 -0
- package/dist/components/Box/Box.vanilla.css.cjs.map +1 -0
- package/dist/components/Box/Box.vanilla.css.js +6 -0
- package/dist/components/Box/Box.vanilla.css.js.map +1 -0
- package/dist/components/Box/Box.vanilla.js +33 -0
- package/dist/components/Box/Box.vanilla.js.map +1 -0
- package/dist/components/Bubble/Bubble.cjs +81 -0
- package/dist/components/Bubble/Bubble.cjs.map +1 -0
- package/dist/components/Bubble/Bubble.js +81 -0
- package/dist/components/Bubble/Bubble.js.map +1 -0
- package/dist/components/Button/Button.cjs +295 -0
- package/dist/components/Button/Button.cjs.map +1 -0
- package/dist/components/Button/Button.js +295 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/Button.themes.cjs +37 -0
- package/dist/components/Button/Button.themes.cjs.map +1 -0
- package/dist/components/Button/Button.themes.js +38 -0
- package/dist/components/Button/Button.themes.js.map +1 -0
- package/dist/components/Button/Button.vanilla.cjs +45 -0
- package/dist/components/Button/Button.vanilla.cjs.map +1 -0
- package/dist/components/Button/Button.vanilla.css.cjs +7 -0
- package/dist/components/Button/Button.vanilla.css.cjs.map +1 -0
- package/dist/components/Button/Button.vanilla.css.js +7 -0
- package/dist/components/Button/Button.vanilla.css.js.map +1 -0
- package/dist/components/Button/Button.vanilla.js +45 -0
- package/dist/components/Button/Button.vanilla.js.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.cjs +81 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.cjs.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.js +64 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.js.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.themes.cjs +20 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.themes.cjs.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.themes.js +21 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.themes.js.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.cjs +67 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.cjs.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.css.cjs +8 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.css.cjs.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.css.js +8 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.css.js.map +1 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.js +50 -0
- package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.js.map +1 -0
- package/dist/components/Card/Card.cjs +101 -0
- package/dist/components/Card/Card.cjs.map +1 -0
- package/dist/components/Card/Card.js +101 -0
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Card/Card.theme.cjs +26 -0
- package/dist/components/Card/Card.theme.cjs.map +1 -0
- package/dist/components/Card/Card.theme.js +26 -0
- package/dist/components/Card/Card.theme.js.map +1 -0
- package/dist/components/Card/Card.themes.cjs +29 -0
- package/dist/components/Card/Card.themes.cjs.map +1 -0
- package/dist/components/Card/Card.themes.js +30 -0
- package/dist/components/Card/Card.themes.js.map +1 -0
- package/dist/components/Card/Card.vanilla.cjs +41 -0
- package/dist/components/Card/Card.vanilla.cjs.map +1 -0
- package/dist/components/Card/Card.vanilla.css.cjs +10 -0
- package/dist/components/Card/Card.vanilla.css.cjs.map +1 -0
- package/dist/components/Card/Card.vanilla.css.js +10 -0
- package/dist/components/Card/Card.vanilla.css.js.map +1 -0
- package/dist/components/Card/Card.vanilla.js +41 -0
- package/dist/components/Card/Card.vanilla.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.cjs +115 -0
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +98 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.themes.cjs +35 -0
- package/dist/components/Checkbox/Checkbox.themes.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.themes.js +36 -0
- package/dist/components/Checkbox/Checkbox.themes.js.map +1 -0
- package/dist/components/Container/Container.cjs +38 -0
- package/dist/components/Container/Container.cjs.map +1 -0
- package/dist/components/Container/Container.js +38 -0
- package/dist/components/Container/Container.js.map +1 -0
- package/dist/components/Container/Container.vanilla.cjs +35 -0
- package/dist/components/Container/Container.vanilla.cjs.map +1 -0
- package/dist/components/Container/Container.vanilla.css.cjs +9 -0
- package/dist/components/Container/Container.vanilla.css.cjs.map +1 -0
- package/dist/components/Container/Container.vanilla.css.js +9 -0
- package/dist/components/Container/Container.vanilla.css.js.map +1 -0
- package/dist/components/Container/Container.vanilla.js +35 -0
- package/dist/components/Container/Container.vanilla.js.map +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.cjs +283 -0
- package/dist/components/DateTimePicker/DateTimePicker.cjs.map +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.js +283 -0
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -0
- package/dist/components/DateTimePickerInput/DateTimePickerInput.cjs +154 -0
- package/dist/components/DateTimePickerInput/DateTimePickerInput.cjs.map +1 -0
- package/dist/components/DateTimePickerInput/DateTimePickerInput.js +154 -0
- package/dist/components/DateTimePickerInput/DateTimePickerInput.js.map +1 -0
- package/dist/components/Dialog/Dialog.cjs +93 -0
- package/dist/components/Dialog/Dialog.cjs.map +1 -0
- package/dist/components/Dialog/Dialog.js +76 -0
- package/dist/components/Dialog/Dialog.js.map +1 -0
- package/dist/components/Dialog/Dialog.themes.cjs +12 -0
- package/dist/components/Dialog/Dialog.themes.cjs.map +1 -0
- package/dist/components/Dialog/Dialog.themes.js +13 -0
- package/dist/components/Dialog/Dialog.themes.js.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.cjs +69 -0
- package/dist/components/DropdownMenu/DropdownMenu.cjs.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +52 -0
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/DropdownMenu/styles.cjs +55 -0
- package/dist/components/DropdownMenu/styles.cjs.map +1 -0
- package/dist/components/DropdownMenu/styles.js +55 -0
- package/dist/components/DropdownMenu/styles.js.map +1 -0
- package/dist/components/Elevation/Elevation.cjs +40 -0
- package/dist/components/Elevation/Elevation.cjs.map +1 -0
- package/dist/components/Elevation/Elevation.js +40 -0
- package/dist/components/Elevation/Elevation.js.map +1 -0
- package/dist/components/Elevation/Elevation.vanilla.cjs +28 -0
- package/dist/components/Elevation/Elevation.vanilla.cjs.map +1 -0
- package/dist/components/Elevation/Elevation.vanilla.css.cjs +7 -0
- package/dist/components/Elevation/Elevation.vanilla.css.cjs.map +1 -0
- package/dist/components/Elevation/Elevation.vanilla.css.js +7 -0
- package/dist/components/Elevation/Elevation.vanilla.css.js.map +1 -0
- package/dist/components/Elevation/Elevation.vanilla.js +28 -0
- package/dist/components/Elevation/Elevation.vanilla.js.map +1 -0
- package/dist/components/FaencyProvider.cjs +7 -0
- package/dist/components/FaencyProvider.cjs.map +1 -0
- package/dist/components/FaencyProvider.js +7 -0
- package/dist/components/FaencyProvider.js.map +1 -0
- package/dist/components/Flex/Flex.cjs +120 -0
- package/dist/components/Flex/Flex.cjs.map +1 -0
- package/dist/components/Flex/Flex.js +120 -0
- package/dist/components/Flex/Flex.js.map +1 -0
- package/dist/components/Flex/Flex.vanilla.cjs +35 -0
- package/dist/components/Flex/Flex.vanilla.cjs.map +1 -0
- package/dist/components/Flex/Flex.vanilla.css.cjs +9 -0
- package/dist/components/Flex/Flex.vanilla.css.cjs.map +1 -0
- package/dist/components/Flex/Flex.vanilla.css.js +9 -0
- package/dist/components/Flex/Flex.vanilla.css.js.map +1 -0
- package/dist/components/Flex/Flex.vanilla.js +35 -0
- package/dist/components/Flex/Flex.vanilla.js.map +1 -0
- package/dist/components/Grid/Grid.cjs +160 -0
- package/dist/components/Grid/Grid.cjs.map +1 -0
- package/dist/components/Grid/Grid.js +160 -0
- package/dist/components/Grid/Grid.js.map +1 -0
- package/dist/components/Grid/Grid.vanilla.cjs +53 -0
- package/dist/components/Grid/Grid.vanilla.cjs.map +1 -0
- package/dist/components/Grid/Grid.vanilla.css.cjs +9 -0
- package/dist/components/Grid/Grid.vanilla.css.cjs.map +1 -0
- package/dist/components/Grid/Grid.vanilla.css.js +9 -0
- package/dist/components/Grid/Grid.vanilla.css.js.map +1 -0
- package/dist/components/Grid/Grid.vanilla.js +53 -0
- package/dist/components/Grid/Grid.vanilla.js.map +1 -0
- package/dist/components/Heading/Heading.cjs +61 -0
- package/dist/components/Heading/Heading.cjs.map +1 -0
- package/dist/components/Heading/Heading.js +61 -0
- package/dist/components/Heading/Heading.js.map +1 -0
- package/dist/components/Heading/Heading.themes.cjs +13 -0
- package/dist/components/Heading/Heading.themes.cjs.map +1 -0
- package/dist/components/Heading/Heading.themes.js +14 -0
- package/dist/components/Heading/Heading.themes.js.map +1 -0
- package/dist/components/IconButton/IconButton.cjs +109 -0
- package/dist/components/IconButton/IconButton.cjs.map +1 -0
- package/dist/components/IconButton/IconButton.js +109 -0
- package/dist/components/IconButton/IconButton.js.map +1 -0
- package/dist/components/IconButton/IconButton.themes.cjs +18 -0
- package/dist/components/IconButton/IconButton.themes.cjs.map +1 -0
- package/dist/components/IconButton/IconButton.themes.js +19 -0
- package/dist/components/IconButton/IconButton.themes.js.map +1 -0
- package/dist/components/IconButton/IconButton.vanilla.cjs +34 -0
- package/dist/components/IconButton/IconButton.vanilla.cjs.map +1 -0
- package/dist/components/IconButton/IconButton.vanilla.css.cjs +7 -0
- package/dist/components/IconButton/IconButton.vanilla.css.cjs.map +1 -0
- package/dist/components/IconButton/IconButton.vanilla.css.js +7 -0
- package/dist/components/IconButton/IconButton.vanilla.css.js.map +1 -0
- package/dist/components/IconButton/IconButton.vanilla.js +34 -0
- package/dist/components/IconButton/IconButton.vanilla.js.map +1 -0
- package/dist/components/Image/Image.cjs +10 -0
- package/dist/components/Image/Image.cjs.map +1 -0
- package/dist/components/Image/Image.js +10 -0
- package/dist/components/Image/Image.js.map +1 -0
- package/dist/components/Input/Input.cjs +379 -0
- package/dist/components/Input/Input.cjs.map +1 -0
- package/dist/components/Input/Input.js +379 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/Input.theme.cjs +40 -0
- package/dist/components/Input/Input.theme.cjs.map +1 -0
- package/dist/components/Input/Input.theme.js +40 -0
- package/dist/components/Input/Input.theme.js.map +1 -0
- package/dist/components/Input/Input.themes.cjs +29 -0
- package/dist/components/Input/Input.themes.cjs.map +1 -0
- package/dist/components/Input/Input.themes.js +30 -0
- package/dist/components/Input/Input.themes.js.map +1 -0
- package/dist/components/Input/Input.vanilla.cjs +56 -0
- package/dist/components/Input/Input.vanilla.cjs.map +1 -0
- package/dist/components/Input/Input.vanilla.css.cjs +11 -0
- package/dist/components/Input/Input.vanilla.css.cjs.map +1 -0
- package/dist/components/Input/Input.vanilla.css.js +11 -0
- package/dist/components/Input/Input.vanilla.css.js.map +1 -0
- package/dist/components/Input/Input.vanilla.js +56 -0
- package/dist/components/Input/Input.vanilla.js.map +1 -0
- package/dist/components/Label/Label.cjs +36 -0
- package/dist/components/Label/Label.cjs.map +1 -0
- package/dist/components/Label/Label.js +19 -0
- package/dist/components/Label/Label.js.map +1 -0
- package/dist/components/Label/Label.vanilla.cjs +50 -0
- package/dist/components/Label/Label.vanilla.cjs.map +1 -0
- package/dist/components/Label/Label.vanilla.css.cjs +7 -0
- package/dist/components/Label/Label.vanilla.css.cjs.map +1 -0
- package/dist/components/Label/Label.vanilla.css.js +7 -0
- package/dist/components/Label/Label.vanilla.css.js.map +1 -0
- package/dist/components/Label/Label.vanilla.js +33 -0
- package/dist/components/Label/Label.vanilla.js.map +1 -0
- package/dist/components/Link/Link.cjs +88 -0
- package/dist/components/Link/Link.cjs.map +1 -0
- package/dist/components/Link/Link.js +88 -0
- package/dist/components/Link/Link.js.map +1 -0
- package/dist/components/Link/Link.themes.cjs +43 -0
- package/dist/components/Link/Link.themes.cjs.map +1 -0
- package/dist/components/Link/Link.themes.js +44 -0
- package/dist/components/Link/Link.themes.js.map +1 -0
- package/dist/components/List/List.cjs +169 -0
- package/dist/components/List/List.cjs.map +1 -0
- package/dist/components/List/List.js +169 -0
- package/dist/components/List/List.js.map +1 -0
- package/dist/components/List/List.themes.cjs +16 -0
- package/dist/components/List/List.themes.cjs.map +1 -0
- package/dist/components/List/List.themes.js +17 -0
- package/dist/components/List/List.themes.js.map +1 -0
- package/dist/components/Navigation/Navigation.cjs +173 -0
- package/dist/components/Navigation/Navigation.cjs.map +1 -0
- package/dist/components/Navigation/Navigation.js +173 -0
- package/dist/components/Navigation/Navigation.js.map +1 -0
- package/dist/components/Navigation/Navigation.themes.cjs +35 -0
- package/dist/components/Navigation/Navigation.themes.cjs.map +1 -0
- package/dist/components/Navigation/Navigation.themes.js +36 -0
- package/dist/components/Navigation/Navigation.themes.js.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.cjs +73 -0
- package/dist/components/NavigationMenu/NavigationMenu.cjs.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.js +56 -0
- package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -0
- package/dist/components/NavigationTree/NavigationTreeContainer.cjs +24 -0
- package/dist/components/NavigationTree/NavigationTreeContainer.cjs.map +1 -0
- package/dist/components/NavigationTree/NavigationTreeContainer.js +24 -0
- package/dist/components/NavigationTree/NavigationTreeContainer.js.map +1 -0
- package/dist/components/NavigationTree/NavigationTreeDrawer.cjs +19 -0
- package/dist/components/NavigationTree/NavigationTreeDrawer.cjs.map +1 -0
- package/dist/components/NavigationTree/NavigationTreeDrawer.js +19 -0
- package/dist/components/NavigationTree/NavigationTreeDrawer.js.map +1 -0
- package/dist/components/NavigationTree/NavigationTreeItem.cjs +105 -0
- package/dist/components/NavigationTree/NavigationTreeItem.cjs.map +1 -0
- package/dist/components/NavigationTree/NavigationTreeItem.js +105 -0
- package/dist/components/NavigationTree/NavigationTreeItem.js.map +1 -0
- package/dist/components/Overlay.cjs +10 -0
- package/dist/components/Overlay.cjs.map +1 -0
- package/dist/components/Overlay.js +10 -0
- package/dist/components/Overlay.js.map +1 -0
- package/dist/components/Panel/Panel.cjs +12 -0
- package/dist/components/Panel/Panel.cjs.map +1 -0
- package/dist/components/Panel/Panel.js +12 -0
- package/dist/components/Panel/Panel.js.map +1 -0
- package/dist/components/Panel/Panel.theme.cjs +11 -0
- package/dist/components/Panel/Panel.theme.cjs.map +1 -0
- package/dist/components/Panel/Panel.theme.js +11 -0
- package/dist/components/Panel/Panel.theme.js.map +1 -0
- package/dist/components/Panel/Panel.vanilla.cjs +27 -0
- package/dist/components/Panel/Panel.vanilla.cjs.map +1 -0
- package/dist/components/Panel/Panel.vanilla.css.cjs +6 -0
- package/dist/components/Panel/Panel.vanilla.css.cjs.map +1 -0
- package/dist/components/Panel/Panel.vanilla.css.js +6 -0
- package/dist/components/Panel/Panel.vanilla.css.js.map +1 -0
- package/dist/components/Panel/Panel.vanilla.js +27 -0
- package/dist/components/Panel/Panel.vanilla.js.map +1 -0
- package/dist/components/Paragraph/Paragraph.cjs +34 -0
- package/dist/components/Paragraph/Paragraph.cjs.map +1 -0
- package/dist/components/Paragraph/Paragraph.js +34 -0
- package/dist/components/Paragraph/Paragraph.js.map +1 -0
- package/dist/components/Paragraph/Paragraph.vanilla.cjs +34 -0
- package/dist/components/Paragraph/Paragraph.vanilla.cjs.map +1 -0
- package/dist/components/Paragraph/Paragraph.vanilla.css.cjs +7 -0
- package/dist/components/Paragraph/Paragraph.vanilla.css.cjs.map +1 -0
- package/dist/components/Paragraph/Paragraph.vanilla.css.js +7 -0
- package/dist/components/Paragraph/Paragraph.vanilla.css.js.map +1 -0
- package/dist/components/Paragraph/Paragraph.vanilla.js +34 -0
- package/dist/components/Paragraph/Paragraph.vanilla.js.map +1 -0
- package/dist/components/Popover/Popover.cjs +87 -0
- package/dist/components/Popover/Popover.cjs.map +1 -0
- package/dist/components/Popover/Popover.js +70 -0
- package/dist/components/Popover/Popover.js.map +1 -0
- package/dist/components/Radio/Radio.cjs +126 -0
- package/dist/components/Radio/Radio.cjs.map +1 -0
- package/dist/components/Radio/Radio.js +109 -0
- package/dist/components/Radio/Radio.js.map +1 -0
- package/dist/components/Radio/Radio.themes.cjs +27 -0
- package/dist/components/Radio/Radio.themes.cjs.map +1 -0
- package/dist/components/Radio/Radio.themes.js +28 -0
- package/dist/components/Radio/Radio.themes.js.map +1 -0
- package/dist/components/RadioAccordion/RadioAccordion.cjs +50 -0
- package/dist/components/RadioAccordion/RadioAccordion.cjs.map +1 -0
- package/dist/components/RadioAccordion/RadioAccordion.js +50 -0
- package/dist/components/RadioAccordion/RadioAccordion.js.map +1 -0
- package/dist/components/Select/Select.cjs +239 -0
- package/dist/components/Select/Select.cjs.map +1 -0
- package/dist/components/Select/Select.js +239 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/Select.themes.cjs +24 -0
- package/dist/components/Select/Select.themes.cjs.map +1 -0
- package/dist/components/Select/Select.themes.js +25 -0
- package/dist/components/Select/Select.themes.js.map +1 -0
- package/dist/components/SidePanel/SidePanel.cjs +129 -0
- package/dist/components/SidePanel/SidePanel.cjs.map +1 -0
- package/dist/components/SidePanel/SidePanel.js +112 -0
- package/dist/components/SidePanel/SidePanel.js.map +1 -0
- package/dist/components/SidePanel/SidePanel.themes.cjs +12 -0
- package/dist/components/SidePanel/SidePanel.themes.cjs.map +1 -0
- package/dist/components/SidePanel/SidePanel.themes.js +13 -0
- package/dist/components/SidePanel/SidePanel.themes.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.cjs +66 -0
- package/dist/components/Skeleton/Skeleton.cjs.map +1 -0
- package/dist/components/Skeleton/Skeleton.js +66 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.themes.cjs +14 -0
- package/dist/components/Skeleton/Skeleton.themes.cjs.map +1 -0
- package/dist/components/Skeleton/Skeleton.themes.js +15 -0
- package/dist/components/Skeleton/Skeleton.themes.js.map +1 -0
- package/dist/components/Switch/Switch.cjs +116 -0
- package/dist/components/Switch/Switch.cjs.map +1 -0
- package/dist/components/Switch/Switch.js +99 -0
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Switch/Switch.themes.cjs +19 -0
- package/dist/components/Switch/Switch.themes.cjs.map +1 -0
- package/dist/components/Switch/Switch.themes.js +20 -0
- package/dist/components/Switch/Switch.themes.js.map +1 -0
- package/dist/components/Table/Table.cjs +290 -0
- package/dist/components/Table/Table.cjs.map +1 -0
- package/dist/components/Table/Table.js +290 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/Table.themes.cjs +33 -0
- package/dist/components/Table/Table.themes.cjs.map +1 -0
- package/dist/components/Table/Table.themes.js +34 -0
- package/dist/components/Table/Table.themes.js.map +1 -0
- package/dist/components/Tabs/Tabs.cjs +59 -0
- package/dist/components/Tabs/Tabs.cjs.map +1 -0
- package/dist/components/Tabs/Tabs.js +42 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Text/Text.cjs +129 -0
- package/dist/components/Text/Text.cjs.map +1 -0
- package/dist/components/Text/Text.js +129 -0
- package/dist/components/Text/Text.js.map +1 -0
- package/dist/components/Text/Text.themes.cjs +21 -0
- package/dist/components/Text/Text.themes.cjs.map +1 -0
- package/dist/components/Text/Text.themes.js +22 -0
- package/dist/components/Text/Text.themes.js.map +1 -0
- package/dist/components/TextField/TextField.cjs +167 -0
- package/dist/components/TextField/TextField.cjs.map +1 -0
- package/dist/components/TextField/TextField.js +167 -0
- package/dist/components/TextField/TextField.js.map +1 -0
- package/dist/components/TextField/TextField.vanilla.cjs +168 -0
- package/dist/components/TextField/TextField.vanilla.cjs.map +1 -0
- package/dist/components/TextField/TextField.vanilla.js +168 -0
- package/dist/components/TextField/TextField.vanilla.js.map +1 -0
- package/dist/components/Textarea/Textarea.cjs +280 -0
- package/dist/components/Textarea/Textarea.cjs.map +1 -0
- package/dist/components/Textarea/Textarea.js +280 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Textarea/Textarea.theme.cjs +40 -0
- package/dist/components/Textarea/Textarea.theme.cjs.map +1 -0
- package/dist/components/Textarea/Textarea.theme.js +40 -0
- package/dist/components/Textarea/Textarea.theme.js.map +1 -0
- package/dist/components/Textarea/Textarea.themes.cjs +29 -0
- package/dist/components/Textarea/Textarea.themes.cjs.map +1 -0
- package/dist/components/Textarea/Textarea.themes.js +30 -0
- package/dist/components/Textarea/Textarea.themes.js.map +1 -0
- package/dist/components/Textarea/Textarea.vanilla.cjs +97 -0
- package/dist/components/Textarea/Textarea.vanilla.cjs.map +1 -0
- package/dist/components/Textarea/Textarea.vanilla.css.cjs +11 -0
- package/dist/components/Textarea/Textarea.vanilla.css.cjs.map +1 -0
- package/dist/components/Textarea/Textarea.vanilla.css.js +11 -0
- package/dist/components/Textarea/Textarea.vanilla.css.js.map +1 -0
- package/dist/components/Textarea/Textarea.vanilla.js +97 -0
- package/dist/components/Textarea/Textarea.vanilla.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.cjs +104 -0
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +87 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.themes.cjs +14 -0
- package/dist/components/Tooltip/Tooltip.themes.cjs.map +1 -0
- package/dist/components/Tooltip/Tooltip.themes.js +15 -0
- package/dist/components/Tooltip/Tooltip.themes.js.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.cjs +23 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +6 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/faency.css +7643 -0
- package/dist/index.cjs +239 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +33642 -0
- package/dist/index.js +233 -0
- package/dist/index.js.map +1 -0
- package/dist/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.cjs +109 -0
- package/dist/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.cjs.map +1 -0
- package/dist/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js +109 -0
- package/dist/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -0
- package/dist/stitches.config.cjs +272 -0
- package/dist/stitches.config.cjs.map +1 -0
- package/dist/stitches.config.js +272 -0
- package/dist/stitches.config.js.map +1 -0
- package/dist/styles/cssProps.cjs +315 -0
- package/dist/styles/cssProps.cjs.map +1 -0
- package/dist/styles/cssProps.js +315 -0
- package/dist/styles/cssProps.js.map +1 -0
- package/dist/styles/themeContext.cjs +120 -0
- package/dist/styles/themeContext.cjs.map +1 -0
- package/dist/styles/themeContext.js +120 -0
- package/dist/styles/themeContext.js.map +1 -0
- package/dist/styles/themes.css.cjs +21 -0
- package/dist/styles/themes.css.cjs.map +1 -0
- package/dist/styles/themes.css.js +21 -0
- package/dist/styles/themes.css.js.map +1 -0
- package/dist/utils/getPrimaryColorInfo.cjs +11 -0
- package/dist/utils/getPrimaryColorInfo.cjs.map +1 -0
- package/dist/utils/getPrimaryColorInfo.js +12 -0
- package/dist/utils/getPrimaryColorInfo.js.map +1 -0
- package/package.json +184 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const reactIcons = require("@radix-ui/react-icons");
|
|
5
|
+
const React = require("react");
|
|
6
|
+
const stitches_config = require("../../stitches.config.cjs");
|
|
7
|
+
const Label_vanilla = require("../Label/Label.vanilla.cjs");
|
|
8
|
+
const Box_vanilla = require("../Box/Box.vanilla.cjs");
|
|
9
|
+
const Input_vanilla = require("../Input/Input.vanilla.cjs");
|
|
10
|
+
const Tooltip = require("../Tooltip/Tooltip.cjs");
|
|
11
|
+
const AdornmentGroup = stitches_config.styled("div", {
|
|
12
|
+
display: "flex",
|
|
13
|
+
flexDirection: "row",
|
|
14
|
+
alignItems: "center"
|
|
15
|
+
});
|
|
16
|
+
const StyledExclamationTriangleIcon = stitches_config.styled(reactIcons.ExclamationTriangleIcon, {
|
|
17
|
+
"& + *": {
|
|
18
|
+
marginLeft: "$1"
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const StyledEyeOpenIcon = stitches_config.styled(reactIcons.EyeOpenIcon, {
|
|
22
|
+
"@hover": {
|
|
23
|
+
"&:hover": {
|
|
24
|
+
cursor: "pointer"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const StyledEyeClosedIcon = stitches_config.styled(reactIcons.EyeClosedIcon, {
|
|
29
|
+
"@hover": {
|
|
30
|
+
"&:hover": {
|
|
31
|
+
cursor: "pointer"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const StyledCrossCircledIcon = stitches_config.styled(reactIcons.CrossCircledIcon, {
|
|
36
|
+
"@hover": {
|
|
37
|
+
"&:hover": {
|
|
38
|
+
cursor: "pointer"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const TextFieldVanilla = React.forwardRef(
|
|
43
|
+
({
|
|
44
|
+
state,
|
|
45
|
+
clearable,
|
|
46
|
+
label: LabelOrComponent,
|
|
47
|
+
id,
|
|
48
|
+
type,
|
|
49
|
+
disabled,
|
|
50
|
+
readOnly,
|
|
51
|
+
onBlur,
|
|
52
|
+
onFocus,
|
|
53
|
+
css,
|
|
54
|
+
...props
|
|
55
|
+
}, forwardedRef) => {
|
|
56
|
+
const inputRef = React.useRef(null);
|
|
57
|
+
React.useImperativeHandle(forwardedRef, () => inputRef.current);
|
|
58
|
+
const [inputHasFocus, setInputHasFocus] = React.useState(false);
|
|
59
|
+
const [innerType, setInnerType] = React.useState(type);
|
|
60
|
+
const isPasswordVisible = React.useMemo(() => innerType !== "password", [innerType]);
|
|
61
|
+
const invalid = React.useMemo(() => state === "invalid", [state]);
|
|
62
|
+
const labelVariant = React.useMemo(() => {
|
|
63
|
+
if (disabled) {
|
|
64
|
+
return "subtle";
|
|
65
|
+
}
|
|
66
|
+
if (invalid) {
|
|
67
|
+
return "invalid";
|
|
68
|
+
}
|
|
69
|
+
if (inputHasFocus) {
|
|
70
|
+
return "contrast";
|
|
71
|
+
}
|
|
72
|
+
return "default";
|
|
73
|
+
}, [invalid, disabled, inputHasFocus]);
|
|
74
|
+
const LabelNode = React.useMemo(() => {
|
|
75
|
+
if (LabelOrComponent === void 0 || LabelOrComponent === null) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
if (typeof LabelOrComponent === "string") {
|
|
79
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Label_vanilla.LabelVanilla, { variant: labelVariant, htmlFor: id, children: LabelOrComponent });
|
|
80
|
+
}
|
|
81
|
+
return /* @__PURE__ */ jsxRuntime.jsx(LabelOrComponent, { variant: labelVariant, htmlFor: id });
|
|
82
|
+
}, [LabelOrComponent, labelVariant, id]);
|
|
83
|
+
const isPasswordType = React.useMemo(() => type === "password", [type]);
|
|
84
|
+
const typeOrInnerType = React.useMemo(
|
|
85
|
+
() => isPasswordType ? innerType : type,
|
|
86
|
+
[isPasswordType, type, innerType]
|
|
87
|
+
);
|
|
88
|
+
const hasInnerAdornment = React.useMemo(
|
|
89
|
+
() => clearable || isPasswordType || invalid,
|
|
90
|
+
[clearable, isPasswordType, invalid]
|
|
91
|
+
);
|
|
92
|
+
const hasAdornmentGroup = React.useMemo(
|
|
93
|
+
() => clearable && invalid || clearable && isPasswordType || invalid && isPasswordType,
|
|
94
|
+
[clearable, invalid, isPasswordType]
|
|
95
|
+
);
|
|
96
|
+
const clearDisabled = React.useMemo(() => readOnly || disabled, [readOnly, disabled]);
|
|
97
|
+
const handleClear = React.useCallback(() => {
|
|
98
|
+
const { current } = inputRef;
|
|
99
|
+
if (current) {
|
|
100
|
+
current.clear();
|
|
101
|
+
}
|
|
102
|
+
}, [inputRef]);
|
|
103
|
+
const handleFocus = React.useCallback(
|
|
104
|
+
(e) => {
|
|
105
|
+
if (onFocus) {
|
|
106
|
+
onFocus(e);
|
|
107
|
+
}
|
|
108
|
+
setInputHasFocus(true);
|
|
109
|
+
},
|
|
110
|
+
[onFocus, setInputHasFocus]
|
|
111
|
+
);
|
|
112
|
+
const handleBlur = React.useCallback(
|
|
113
|
+
(e) => {
|
|
114
|
+
if (onBlur) {
|
|
115
|
+
onBlur(e);
|
|
116
|
+
}
|
|
117
|
+
setInputHasFocus(false);
|
|
118
|
+
},
|
|
119
|
+
[onBlur, setInputHasFocus]
|
|
120
|
+
);
|
|
121
|
+
const togglePasswordVisibility = React.useCallback(() => {
|
|
122
|
+
setInnerType((prevInnerType) => prevInnerType === "password" ? void 0 : "password");
|
|
123
|
+
}, [setInnerType]);
|
|
124
|
+
const EndAdornmentWrapper = React.useMemo(
|
|
125
|
+
() => hasAdornmentGroup ? AdornmentGroup : React.Fragment,
|
|
126
|
+
[hasAdornmentGroup]
|
|
127
|
+
);
|
|
128
|
+
const PasswordVisibilityToggleIcon = React.useMemo(
|
|
129
|
+
() => isPasswordVisible ? StyledEyeClosedIcon : StyledEyeOpenIcon,
|
|
130
|
+
[isPasswordVisible]
|
|
131
|
+
);
|
|
132
|
+
const passwordAction = React.useMemo(
|
|
133
|
+
() => isPasswordVisible ? "Hide password" : "Show password",
|
|
134
|
+
[isPasswordVisible]
|
|
135
|
+
);
|
|
136
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Box_vanilla.BoxVanilla, { css, children: [
|
|
137
|
+
LabelNode,
|
|
138
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
Input_vanilla.InputVanilla,
|
|
140
|
+
{
|
|
141
|
+
id,
|
|
142
|
+
ref: inputRef,
|
|
143
|
+
endAdornment: hasInnerAdornment && /* @__PURE__ */ jsxRuntime.jsxs(EndAdornmentWrapper, { children: [
|
|
144
|
+
invalid && /* @__PURE__ */ jsxRuntime.jsx(StyledExclamationTriangleIcon, { role: "alert", "aria-label": "Invalid" }),
|
|
145
|
+
isPasswordType && /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { content: passwordAction, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
146
|
+
PasswordVisibilityToggleIcon,
|
|
147
|
+
{
|
|
148
|
+
"aria-label": passwordAction,
|
|
149
|
+
onClick: togglePasswordVisibility
|
|
150
|
+
}
|
|
151
|
+
) }),
|
|
152
|
+
clearable && !clearDisabled && /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { content: "Clear", children: /* @__PURE__ */ jsxRuntime.jsx(StyledCrossCircledIcon, { "aria-label": "Clear", onClick: handleClear }) })
|
|
153
|
+
] }),
|
|
154
|
+
state,
|
|
155
|
+
type: typeOrInnerType,
|
|
156
|
+
disabled,
|
|
157
|
+
readOnly,
|
|
158
|
+
onFocus: handleFocus,
|
|
159
|
+
onBlur: handleBlur,
|
|
160
|
+
...props
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
] });
|
|
164
|
+
}
|
|
165
|
+
);
|
|
166
|
+
TextFieldVanilla.displayName = "TextFieldVanilla";
|
|
167
|
+
exports.TextFieldVanilla = TextFieldVanilla;
|
|
168
|
+
//# sourceMappingURL=TextField.vanilla.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextField.vanilla.cjs","sources":["../../../components/TextField/TextField.vanilla.tsx"],"sourcesContent":["import {\n CrossCircledIcon,\n ExclamationTriangleIcon,\n EyeClosedIcon,\n EyeOpenIcon,\n} from '@radix-ui/react-icons';\nimport React from 'react';\n\nimport { styled } from '../../stitches.config';\nimport { BoxVanilla } from '../Box';\nimport { InputVanilla, InputVanillaHandle, InputVanillaProps } from '../Input';\nimport { LabelVanilla } from '../Label';\nimport { Tooltip } from '../Tooltip';\n\n// TYPES\nexport interface TextFieldLabelProps {\n variant: 'invalid' | 'subtle' | 'contrast' | 'default';\n htmlFor?: string;\n}\n\nexport type TextFieldVanillaProps = InputVanillaProps & {\n type?: string;\n clearable?: boolean;\n label?: string | ((props: TextFieldLabelProps) => JSX.Element);\n};\n\n// COMPONENTS\nconst AdornmentGroup = styled('div', {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n});\n\nconst StyledExclamationTriangleIcon = styled(ExclamationTriangleIcon, {\n '& + *': {\n marginLeft: '$1',\n },\n});\n\nconst StyledEyeOpenIcon = styled(EyeOpenIcon, {\n '@hover': {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nconst StyledEyeClosedIcon = styled(EyeClosedIcon, {\n '@hover': {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nconst StyledCrossCircledIcon = styled(CrossCircledIcon, {\n '@hover': {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nexport const TextFieldVanilla = React.forwardRef<\n React.ElementRef<typeof InputVanilla>,\n TextFieldVanillaProps\n>(\n (\n {\n state,\n clearable,\n label: LabelOrComponent,\n id,\n type,\n disabled,\n readOnly,\n onBlur,\n onFocus,\n css,\n ...props\n },\n forwardedRef,\n ) => {\n const inputRef = React.useRef<InputVanillaHandle | null>(null);\n React.useImperativeHandle(forwardedRef, () => inputRef.current as InputVanillaHandle);\n\n const [inputHasFocus, setInputHasFocus] = React.useState(false);\n const [innerType, setInnerType] = React.useState(type);\n const isPasswordVisible = React.useMemo(() => innerType !== 'password', [innerType]);\n\n const invalid = React.useMemo(() => state === 'invalid', [state]);\n\n const labelVariant = React.useMemo(() => {\n if (disabled) {\n return 'subtle';\n }\n if (invalid) {\n return 'invalid';\n }\n if (inputHasFocus) {\n return 'contrast';\n }\n return 'default';\n }, [invalid, disabled, inputHasFocus]);\n\n const LabelNode = React.useMemo(() => {\n if (LabelOrComponent === undefined || LabelOrComponent === null) {\n return null;\n }\n if (typeof LabelOrComponent === 'string') {\n return (\n <LabelVanilla variant={labelVariant} htmlFor={id}>\n {LabelOrComponent}\n </LabelVanilla>\n );\n }\n return <LabelOrComponent variant={labelVariant} htmlFor={id} />;\n }, [LabelOrComponent, labelVariant, id]);\n\n const isPasswordType = React.useMemo(() => type === 'password', [type]);\n\n const typeOrInnerType = React.useMemo(\n () => (isPasswordType ? innerType : type),\n [isPasswordType, type, innerType],\n );\n\n const hasInnerAdornment = React.useMemo(\n () => clearable || isPasswordType || invalid,\n [clearable, isPasswordType, invalid],\n );\n\n const hasAdornmentGroup = React.useMemo(\n () => (clearable && invalid) || (clearable && isPasswordType) || (invalid && isPasswordType),\n [clearable, invalid, isPasswordType],\n );\n\n const clearDisabled = React.useMemo(() => readOnly || disabled, [readOnly, disabled]);\n\n const handleClear = React.useCallback(() => {\n const { current } = inputRef;\n if (current) {\n current.clear();\n }\n }, [inputRef]);\n\n const handleFocus = React.useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (onFocus) {\n onFocus(e);\n }\n setInputHasFocus(true);\n },\n [onFocus, setInputHasFocus],\n );\n\n const handleBlur = React.useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n onBlur(e);\n }\n setInputHasFocus(false);\n },\n [onBlur, setInputHasFocus],\n );\n\n const togglePasswordVisibility = React.useCallback(() => {\n setInnerType((prevInnerType) => (prevInnerType === 'password' ? undefined : 'password'));\n }, [setInnerType]);\n\n const EndAdornmentWrapper = React.useMemo(\n () => (hasAdornmentGroup ? AdornmentGroup : React.Fragment),\n [hasAdornmentGroup],\n );\n\n const PasswordVisibilityToggleIcon = React.useMemo(\n () => (isPasswordVisible ? StyledEyeClosedIcon : StyledEyeOpenIcon),\n [isPasswordVisible],\n );\n\n const passwordAction = React.useMemo(\n () => (isPasswordVisible ? 'Hide password' : 'Show password'),\n [isPasswordVisible],\n );\n\n return (\n <BoxVanilla css={css}>\n {LabelNode}\n <InputVanilla\n id={id}\n ref={inputRef}\n endAdornment={\n hasInnerAdornment && (\n <EndAdornmentWrapper>\n {invalid && <StyledExclamationTriangleIcon role=\"alert\" aria-label=\"Invalid\" />}\n {isPasswordType && (\n <Tooltip content={passwordAction}>\n <PasswordVisibilityToggleIcon\n aria-label={passwordAction}\n onClick={togglePasswordVisibility}\n />\n </Tooltip>\n )}\n {clearable && !clearDisabled && (\n <Tooltip content=\"Clear\">\n <StyledCrossCircledIcon aria-label=\"Clear\" onClick={handleClear} />\n </Tooltip>\n )}\n </EndAdornmentWrapper>\n )\n }\n state={state}\n type={typeOrInnerType}\n disabled={disabled}\n readOnly={readOnly}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...props}\n />\n </BoxVanilla>\n );\n },\n);\n\nTextFieldVanilla.displayName = 'TextFieldVanilla';\n"],"names":["styled","ExclamationTriangleIcon","EyeOpenIcon","EyeClosedIcon","CrossCircledIcon","LabelVanilla","jsx","jsxs","BoxVanilla","InputVanilla","Tooltip"],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EyeClosedIcon, EyeOpenIcon, ExclamationTriangleIcon, CrossCircledIcon } from "@radix-ui/react-icons";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { styled } from "../../stitches.config.js";
|
|
5
|
+
import { LabelVanilla } from "../Label/Label.vanilla.js";
|
|
6
|
+
import { BoxVanilla } from "../Box/Box.vanilla.js";
|
|
7
|
+
import { InputVanilla } from "../Input/Input.vanilla.js";
|
|
8
|
+
import { Tooltip } from "../Tooltip/Tooltip.js";
|
|
9
|
+
const AdornmentGroup = styled("div", {
|
|
10
|
+
display: "flex",
|
|
11
|
+
flexDirection: "row",
|
|
12
|
+
alignItems: "center"
|
|
13
|
+
});
|
|
14
|
+
const StyledExclamationTriangleIcon = styled(ExclamationTriangleIcon, {
|
|
15
|
+
"& + *": {
|
|
16
|
+
marginLeft: "$1"
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const StyledEyeOpenIcon = styled(EyeOpenIcon, {
|
|
20
|
+
"@hover": {
|
|
21
|
+
"&:hover": {
|
|
22
|
+
cursor: "pointer"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
const StyledEyeClosedIcon = styled(EyeClosedIcon, {
|
|
27
|
+
"@hover": {
|
|
28
|
+
"&:hover": {
|
|
29
|
+
cursor: "pointer"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const StyledCrossCircledIcon = styled(CrossCircledIcon, {
|
|
34
|
+
"@hover": {
|
|
35
|
+
"&:hover": {
|
|
36
|
+
cursor: "pointer"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const TextFieldVanilla = React.forwardRef(
|
|
41
|
+
({
|
|
42
|
+
state,
|
|
43
|
+
clearable,
|
|
44
|
+
label: LabelOrComponent,
|
|
45
|
+
id,
|
|
46
|
+
type,
|
|
47
|
+
disabled,
|
|
48
|
+
readOnly,
|
|
49
|
+
onBlur,
|
|
50
|
+
onFocus,
|
|
51
|
+
css,
|
|
52
|
+
...props
|
|
53
|
+
}, forwardedRef) => {
|
|
54
|
+
const inputRef = React.useRef(null);
|
|
55
|
+
React.useImperativeHandle(forwardedRef, () => inputRef.current);
|
|
56
|
+
const [inputHasFocus, setInputHasFocus] = React.useState(false);
|
|
57
|
+
const [innerType, setInnerType] = React.useState(type);
|
|
58
|
+
const isPasswordVisible = React.useMemo(() => innerType !== "password", [innerType]);
|
|
59
|
+
const invalid = React.useMemo(() => state === "invalid", [state]);
|
|
60
|
+
const labelVariant = React.useMemo(() => {
|
|
61
|
+
if (disabled) {
|
|
62
|
+
return "subtle";
|
|
63
|
+
}
|
|
64
|
+
if (invalid) {
|
|
65
|
+
return "invalid";
|
|
66
|
+
}
|
|
67
|
+
if (inputHasFocus) {
|
|
68
|
+
return "contrast";
|
|
69
|
+
}
|
|
70
|
+
return "default";
|
|
71
|
+
}, [invalid, disabled, inputHasFocus]);
|
|
72
|
+
const LabelNode = React.useMemo(() => {
|
|
73
|
+
if (LabelOrComponent === void 0 || LabelOrComponent === null) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
if (typeof LabelOrComponent === "string") {
|
|
77
|
+
return /* @__PURE__ */ jsx(LabelVanilla, { variant: labelVariant, htmlFor: id, children: LabelOrComponent });
|
|
78
|
+
}
|
|
79
|
+
return /* @__PURE__ */ jsx(LabelOrComponent, { variant: labelVariant, htmlFor: id });
|
|
80
|
+
}, [LabelOrComponent, labelVariant, id]);
|
|
81
|
+
const isPasswordType = React.useMemo(() => type === "password", [type]);
|
|
82
|
+
const typeOrInnerType = React.useMemo(
|
|
83
|
+
() => isPasswordType ? innerType : type,
|
|
84
|
+
[isPasswordType, type, innerType]
|
|
85
|
+
);
|
|
86
|
+
const hasInnerAdornment = React.useMemo(
|
|
87
|
+
() => clearable || isPasswordType || invalid,
|
|
88
|
+
[clearable, isPasswordType, invalid]
|
|
89
|
+
);
|
|
90
|
+
const hasAdornmentGroup = React.useMemo(
|
|
91
|
+
() => clearable && invalid || clearable && isPasswordType || invalid && isPasswordType,
|
|
92
|
+
[clearable, invalid, isPasswordType]
|
|
93
|
+
);
|
|
94
|
+
const clearDisabled = React.useMemo(() => readOnly || disabled, [readOnly, disabled]);
|
|
95
|
+
const handleClear = React.useCallback(() => {
|
|
96
|
+
const { current } = inputRef;
|
|
97
|
+
if (current) {
|
|
98
|
+
current.clear();
|
|
99
|
+
}
|
|
100
|
+
}, [inputRef]);
|
|
101
|
+
const handleFocus = React.useCallback(
|
|
102
|
+
(e) => {
|
|
103
|
+
if (onFocus) {
|
|
104
|
+
onFocus(e);
|
|
105
|
+
}
|
|
106
|
+
setInputHasFocus(true);
|
|
107
|
+
},
|
|
108
|
+
[onFocus, setInputHasFocus]
|
|
109
|
+
);
|
|
110
|
+
const handleBlur = React.useCallback(
|
|
111
|
+
(e) => {
|
|
112
|
+
if (onBlur) {
|
|
113
|
+
onBlur(e);
|
|
114
|
+
}
|
|
115
|
+
setInputHasFocus(false);
|
|
116
|
+
},
|
|
117
|
+
[onBlur, setInputHasFocus]
|
|
118
|
+
);
|
|
119
|
+
const togglePasswordVisibility = React.useCallback(() => {
|
|
120
|
+
setInnerType((prevInnerType) => prevInnerType === "password" ? void 0 : "password");
|
|
121
|
+
}, [setInnerType]);
|
|
122
|
+
const EndAdornmentWrapper = React.useMemo(
|
|
123
|
+
() => hasAdornmentGroup ? AdornmentGroup : React.Fragment,
|
|
124
|
+
[hasAdornmentGroup]
|
|
125
|
+
);
|
|
126
|
+
const PasswordVisibilityToggleIcon = React.useMemo(
|
|
127
|
+
() => isPasswordVisible ? StyledEyeClosedIcon : StyledEyeOpenIcon,
|
|
128
|
+
[isPasswordVisible]
|
|
129
|
+
);
|
|
130
|
+
const passwordAction = React.useMemo(
|
|
131
|
+
() => isPasswordVisible ? "Hide password" : "Show password",
|
|
132
|
+
[isPasswordVisible]
|
|
133
|
+
);
|
|
134
|
+
return /* @__PURE__ */ jsxs(BoxVanilla, { css, children: [
|
|
135
|
+
LabelNode,
|
|
136
|
+
/* @__PURE__ */ jsx(
|
|
137
|
+
InputVanilla,
|
|
138
|
+
{
|
|
139
|
+
id,
|
|
140
|
+
ref: inputRef,
|
|
141
|
+
endAdornment: hasInnerAdornment && /* @__PURE__ */ jsxs(EndAdornmentWrapper, { children: [
|
|
142
|
+
invalid && /* @__PURE__ */ jsx(StyledExclamationTriangleIcon, { role: "alert", "aria-label": "Invalid" }),
|
|
143
|
+
isPasswordType && /* @__PURE__ */ jsx(Tooltip, { content: passwordAction, children: /* @__PURE__ */ jsx(
|
|
144
|
+
PasswordVisibilityToggleIcon,
|
|
145
|
+
{
|
|
146
|
+
"aria-label": passwordAction,
|
|
147
|
+
onClick: togglePasswordVisibility
|
|
148
|
+
}
|
|
149
|
+
) }),
|
|
150
|
+
clearable && !clearDisabled && /* @__PURE__ */ jsx(Tooltip, { content: "Clear", children: /* @__PURE__ */ jsx(StyledCrossCircledIcon, { "aria-label": "Clear", onClick: handleClear }) })
|
|
151
|
+
] }),
|
|
152
|
+
state,
|
|
153
|
+
type: typeOrInnerType,
|
|
154
|
+
disabled,
|
|
155
|
+
readOnly,
|
|
156
|
+
onFocus: handleFocus,
|
|
157
|
+
onBlur: handleBlur,
|
|
158
|
+
...props
|
|
159
|
+
}
|
|
160
|
+
)
|
|
161
|
+
] });
|
|
162
|
+
}
|
|
163
|
+
);
|
|
164
|
+
TextFieldVanilla.displayName = "TextFieldVanilla";
|
|
165
|
+
export {
|
|
166
|
+
TextFieldVanilla
|
|
167
|
+
};
|
|
168
|
+
//# sourceMappingURL=TextField.vanilla.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextField.vanilla.js","sources":["../../../components/TextField/TextField.vanilla.tsx"],"sourcesContent":["import {\n CrossCircledIcon,\n ExclamationTriangleIcon,\n EyeClosedIcon,\n EyeOpenIcon,\n} from '@radix-ui/react-icons';\nimport React from 'react';\n\nimport { styled } from '../../stitches.config';\nimport { BoxVanilla } from '../Box';\nimport { InputVanilla, InputVanillaHandle, InputVanillaProps } from '../Input';\nimport { LabelVanilla } from '../Label';\nimport { Tooltip } from '../Tooltip';\n\n// TYPES\nexport interface TextFieldLabelProps {\n variant: 'invalid' | 'subtle' | 'contrast' | 'default';\n htmlFor?: string;\n}\n\nexport type TextFieldVanillaProps = InputVanillaProps & {\n type?: string;\n clearable?: boolean;\n label?: string | ((props: TextFieldLabelProps) => JSX.Element);\n};\n\n// COMPONENTS\nconst AdornmentGroup = styled('div', {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n});\n\nconst StyledExclamationTriangleIcon = styled(ExclamationTriangleIcon, {\n '& + *': {\n marginLeft: '$1',\n },\n});\n\nconst StyledEyeOpenIcon = styled(EyeOpenIcon, {\n '@hover': {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nconst StyledEyeClosedIcon = styled(EyeClosedIcon, {\n '@hover': {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nconst StyledCrossCircledIcon = styled(CrossCircledIcon, {\n '@hover': {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nexport const TextFieldVanilla = React.forwardRef<\n React.ElementRef<typeof InputVanilla>,\n TextFieldVanillaProps\n>(\n (\n {\n state,\n clearable,\n label: LabelOrComponent,\n id,\n type,\n disabled,\n readOnly,\n onBlur,\n onFocus,\n css,\n ...props\n },\n forwardedRef,\n ) => {\n const inputRef = React.useRef<InputVanillaHandle | null>(null);\n React.useImperativeHandle(forwardedRef, () => inputRef.current as InputVanillaHandle);\n\n const [inputHasFocus, setInputHasFocus] = React.useState(false);\n const [innerType, setInnerType] = React.useState(type);\n const isPasswordVisible = React.useMemo(() => innerType !== 'password', [innerType]);\n\n const invalid = React.useMemo(() => state === 'invalid', [state]);\n\n const labelVariant = React.useMemo(() => {\n if (disabled) {\n return 'subtle';\n }\n if (invalid) {\n return 'invalid';\n }\n if (inputHasFocus) {\n return 'contrast';\n }\n return 'default';\n }, [invalid, disabled, inputHasFocus]);\n\n const LabelNode = React.useMemo(() => {\n if (LabelOrComponent === undefined || LabelOrComponent === null) {\n return null;\n }\n if (typeof LabelOrComponent === 'string') {\n return (\n <LabelVanilla variant={labelVariant} htmlFor={id}>\n {LabelOrComponent}\n </LabelVanilla>\n );\n }\n return <LabelOrComponent variant={labelVariant} htmlFor={id} />;\n }, [LabelOrComponent, labelVariant, id]);\n\n const isPasswordType = React.useMemo(() => type === 'password', [type]);\n\n const typeOrInnerType = React.useMemo(\n () => (isPasswordType ? innerType : type),\n [isPasswordType, type, innerType],\n );\n\n const hasInnerAdornment = React.useMemo(\n () => clearable || isPasswordType || invalid,\n [clearable, isPasswordType, invalid],\n );\n\n const hasAdornmentGroup = React.useMemo(\n () => (clearable && invalid) || (clearable && isPasswordType) || (invalid && isPasswordType),\n [clearable, invalid, isPasswordType],\n );\n\n const clearDisabled = React.useMemo(() => readOnly || disabled, [readOnly, disabled]);\n\n const handleClear = React.useCallback(() => {\n const { current } = inputRef;\n if (current) {\n current.clear();\n }\n }, [inputRef]);\n\n const handleFocus = React.useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (onFocus) {\n onFocus(e);\n }\n setInputHasFocus(true);\n },\n [onFocus, setInputHasFocus],\n );\n\n const handleBlur = React.useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n onBlur(e);\n }\n setInputHasFocus(false);\n },\n [onBlur, setInputHasFocus],\n );\n\n const togglePasswordVisibility = React.useCallback(() => {\n setInnerType((prevInnerType) => (prevInnerType === 'password' ? undefined : 'password'));\n }, [setInnerType]);\n\n const EndAdornmentWrapper = React.useMemo(\n () => (hasAdornmentGroup ? AdornmentGroup : React.Fragment),\n [hasAdornmentGroup],\n );\n\n const PasswordVisibilityToggleIcon = React.useMemo(\n () => (isPasswordVisible ? StyledEyeClosedIcon : StyledEyeOpenIcon),\n [isPasswordVisible],\n );\n\n const passwordAction = React.useMemo(\n () => (isPasswordVisible ? 'Hide password' : 'Show password'),\n [isPasswordVisible],\n );\n\n return (\n <BoxVanilla css={css}>\n {LabelNode}\n <InputVanilla\n id={id}\n ref={inputRef}\n endAdornment={\n hasInnerAdornment && (\n <EndAdornmentWrapper>\n {invalid && <StyledExclamationTriangleIcon role=\"alert\" aria-label=\"Invalid\" />}\n {isPasswordType && (\n <Tooltip content={passwordAction}>\n <PasswordVisibilityToggleIcon\n aria-label={passwordAction}\n onClick={togglePasswordVisibility}\n />\n </Tooltip>\n )}\n {clearable && !clearDisabled && (\n <Tooltip content=\"Clear\">\n <StyledCrossCircledIcon aria-label=\"Clear\" onClick={handleClear} />\n </Tooltip>\n )}\n </EndAdornmentWrapper>\n )\n }\n state={state}\n type={typeOrInnerType}\n disabled={disabled}\n readOnly={readOnly}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...props}\n />\n </BoxVanilla>\n );\n },\n);\n\nTextFieldVanilla.displayName = 'TextFieldVanilla';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const stitches_config = require("../../stitches.config.cjs");
|
|
6
|
+
const Box = require("../Box/Box.cjs");
|
|
7
|
+
const Label = require("../Label/Label.cjs");
|
|
8
|
+
const Elevation = require("../Elevation/Elevation.cjs");
|
|
9
|
+
const FOCUS_SHADOW = Elevation.elevationVariants[1].boxShadow;
|
|
10
|
+
const StyledTextarea = stitches_config.styled("textarea", {
|
|
11
|
+
// Reset
|
|
12
|
+
appearance: "none",
|
|
13
|
+
overflow: "auto",
|
|
14
|
+
// force overflow auto behaviour cross-browser
|
|
15
|
+
borderWidth: "0",
|
|
16
|
+
boxSizing: "border-box",
|
|
17
|
+
fontFamily: "$rubik",
|
|
18
|
+
margin: "0",
|
|
19
|
+
outline: "none",
|
|
20
|
+
WebkitTapHighlightColor: "rgba(0,0,0,0)",
|
|
21
|
+
// Custom
|
|
22
|
+
p: "$3",
|
|
23
|
+
position: "relative",
|
|
24
|
+
flexGrow: 1,
|
|
25
|
+
// make sure to grow fully inside TextareaWrapper
|
|
26
|
+
backgroundColor: "transparent",
|
|
27
|
+
borderRadius: "inherit",
|
|
28
|
+
// inherit border radius from TextareaWrapper
|
|
29
|
+
boxShadow: "inset 0 0 0 1px $colors$textareaBorder",
|
|
30
|
+
color: "$textareaText",
|
|
31
|
+
fontVariantNumeric: "tabular-nums",
|
|
32
|
+
transition: "box-shadow .1s ease-in-out",
|
|
33
|
+
"&:-webkit-autofill,&:autofill": {
|
|
34
|
+
boxShadow: "inset 0 0 0 1px $colors$textareaBorder, inset 0 0 0 100px $colors$textareaBg"
|
|
35
|
+
},
|
|
36
|
+
"&:-webkit-autofill::first-line,&:autofill::first-line": {
|
|
37
|
+
fontFamily: "$rubik",
|
|
38
|
+
color: "$hiContrast"
|
|
39
|
+
},
|
|
40
|
+
"&:focus-visible": {
|
|
41
|
+
boxShadow: `inset 0 0 0 2px $colors$textareaFocusBorder, ${FOCUS_SHADOW}`
|
|
42
|
+
},
|
|
43
|
+
"&::placeholder": {
|
|
44
|
+
color: "$textareaPlaceholder"
|
|
45
|
+
},
|
|
46
|
+
"&:read-only:not(:disabled)": {
|
|
47
|
+
boxShadow: "none"
|
|
48
|
+
},
|
|
49
|
+
"&:disabled": {
|
|
50
|
+
pointerEvents: "none",
|
|
51
|
+
opacity: 0.7,
|
|
52
|
+
color: "$textareaDisabledText"
|
|
53
|
+
},
|
|
54
|
+
variants: {
|
|
55
|
+
variant: {
|
|
56
|
+
ghost: {
|
|
57
|
+
boxShadow: "none",
|
|
58
|
+
"&:disabled": {
|
|
59
|
+
boxShadow: "none"
|
|
60
|
+
},
|
|
61
|
+
backgroundColor: "transparent",
|
|
62
|
+
"&:focus-visible": {
|
|
63
|
+
backgroundColor: "$loContrast"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
state: {
|
|
68
|
+
invalid: {
|
|
69
|
+
boxShadow: "inset 0 0 0 1px $colors$textareaInvalidBorder",
|
|
70
|
+
"&:focus-visible": {
|
|
71
|
+
boxShadow: `inset 0 0 0 2px $colors$textareaInvalidBorder, ${FOCUS_SHADOW}`
|
|
72
|
+
},
|
|
73
|
+
"@hover": {
|
|
74
|
+
"&:hover": {
|
|
75
|
+
"&::after": {
|
|
76
|
+
backgroundColor: "$textareaInvalidBorder"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
cursor: {
|
|
83
|
+
default: {
|
|
84
|
+
cursor: "default",
|
|
85
|
+
"@hover": {
|
|
86
|
+
"&:hover:not(:read-only)": {
|
|
87
|
+
cursor: "text"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"&:focus-visible:not(:read-only)": {
|
|
91
|
+
cursor: "text"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
text: {
|
|
95
|
+
cursor: "text"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
resize: {
|
|
99
|
+
none: {
|
|
100
|
+
resize: "none"
|
|
101
|
+
},
|
|
102
|
+
both: {
|
|
103
|
+
resize: "both"
|
|
104
|
+
},
|
|
105
|
+
vertical: {
|
|
106
|
+
resize: "vertical"
|
|
107
|
+
},
|
|
108
|
+
horizontal: {
|
|
109
|
+
resize: "horizontal"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
endAdornment: {
|
|
113
|
+
true: {
|
|
114
|
+
paddingBottom: "$5",
|
|
115
|
+
paddingRight: "$5"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
defaultVariants: {
|
|
120
|
+
cursor: "default",
|
|
121
|
+
resize: "both"
|
|
122
|
+
},
|
|
123
|
+
compoundVariants: [
|
|
124
|
+
{
|
|
125
|
+
variant: "ghost",
|
|
126
|
+
state: "invalid",
|
|
127
|
+
css: {
|
|
128
|
+
boxShadow: "inset 0 0 0 1px $colors$textareaInvalidBorder"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
});
|
|
133
|
+
const TextareaWrapper = stitches_config.styled("div", {
|
|
134
|
+
// Reset
|
|
135
|
+
outline: "none",
|
|
136
|
+
lineHeight: 0,
|
|
137
|
+
position: "relative",
|
|
138
|
+
display: "inline-flex",
|
|
139
|
+
// helps matching resizable content size
|
|
140
|
+
backgroundColor: "$textareaBg",
|
|
141
|
+
color: "$textareaPlaceholder",
|
|
142
|
+
borderRadius: "$3",
|
|
143
|
+
"&::before": {
|
|
144
|
+
boxSizing: "border-box",
|
|
145
|
+
borderRadius: "inherit",
|
|
146
|
+
content: '""',
|
|
147
|
+
position: "absolute",
|
|
148
|
+
inset: 0,
|
|
149
|
+
pointerEvents: "none"
|
|
150
|
+
},
|
|
151
|
+
"&::after": {
|
|
152
|
+
boxSizing: "border-box",
|
|
153
|
+
borderRadius: "inherit",
|
|
154
|
+
content: '""',
|
|
155
|
+
position: "absolute",
|
|
156
|
+
inset: 0,
|
|
157
|
+
pointerEvents: "none"
|
|
158
|
+
},
|
|
159
|
+
"&:focus-visible": {
|
|
160
|
+
"&::before": {
|
|
161
|
+
backgroundColor: "$textareaFocusBg"
|
|
162
|
+
},
|
|
163
|
+
"&::after": {
|
|
164
|
+
backgroundColor: "$primary",
|
|
165
|
+
opacity: 0.15
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"@hover": {
|
|
169
|
+
"&:hover": {
|
|
170
|
+
"&::before": {
|
|
171
|
+
backgroundColor: "$textareaHoverBg"
|
|
172
|
+
},
|
|
173
|
+
"&::after": {
|
|
174
|
+
backgroundColor: "$primary",
|
|
175
|
+
opacity: 0.05
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
variants: {
|
|
180
|
+
disabled: {
|
|
181
|
+
true: {
|
|
182
|
+
opacity: 0.7,
|
|
183
|
+
color: "$textareaDisabledText",
|
|
184
|
+
"@hover": {
|
|
185
|
+
"&:hover": {
|
|
186
|
+
"&::before": {
|
|
187
|
+
backgroundColor: "inherit"
|
|
188
|
+
},
|
|
189
|
+
"&::after": {
|
|
190
|
+
backgroundColor: "inherit"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
state: {
|
|
197
|
+
invalid: {
|
|
198
|
+
"@hover": {
|
|
199
|
+
"&:hover": {
|
|
200
|
+
"&::after": {
|
|
201
|
+
backgroundColor: "$textareaInvalidBorder"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
defaultVariants: {
|
|
209
|
+
disabled: false
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
const AdornmentWrapperEnd = stitches_config.styled("div", {
|
|
213
|
+
position: "absolute",
|
|
214
|
+
bottom: "$2",
|
|
215
|
+
right: "$3",
|
|
216
|
+
minWidth: "$5",
|
|
217
|
+
minHeight: "$5",
|
|
218
|
+
display: "flex",
|
|
219
|
+
alignItems: "center",
|
|
220
|
+
justifyContent: "center"
|
|
221
|
+
});
|
|
222
|
+
const Textarea = React.forwardRef(
|
|
223
|
+
({ state, disabled, onFocus, onBlur, label, id, rootCss, css, endAdornment, ...props }, forwardedRef) => {
|
|
224
|
+
const [hasFocus, setHasFocus] = React.useState(false);
|
|
225
|
+
const invalid = React.useMemo(() => state === "invalid", [state]);
|
|
226
|
+
const hasEndAdornment = React.useMemo(() => Boolean(endAdornment), [endAdornment]);
|
|
227
|
+
const labelVariant = React.useMemo(() => {
|
|
228
|
+
if (disabled) {
|
|
229
|
+
return "subtle";
|
|
230
|
+
}
|
|
231
|
+
if (invalid) {
|
|
232
|
+
return "invalid";
|
|
233
|
+
}
|
|
234
|
+
if (hasFocus) {
|
|
235
|
+
return "contrast";
|
|
236
|
+
}
|
|
237
|
+
return "default";
|
|
238
|
+
}, [invalid, disabled, hasFocus]);
|
|
239
|
+
const handleFocus = React.useCallback(
|
|
240
|
+
(e) => {
|
|
241
|
+
if (onFocus) {
|
|
242
|
+
onFocus(e);
|
|
243
|
+
}
|
|
244
|
+
setHasFocus(true);
|
|
245
|
+
},
|
|
246
|
+
[onFocus, setHasFocus]
|
|
247
|
+
);
|
|
248
|
+
const handleBlur = React.useCallback(
|
|
249
|
+
(e) => {
|
|
250
|
+
if (onBlur) {
|
|
251
|
+
onBlur(e);
|
|
252
|
+
}
|
|
253
|
+
setHasFocus(false);
|
|
254
|
+
},
|
|
255
|
+
[onBlur, setHasFocus]
|
|
256
|
+
);
|
|
257
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Box.Box, { css: rootCss, children: [
|
|
258
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(Label.Label, { variant: labelVariant, htmlFor: id, css: { display: "block" }, children: label }),
|
|
259
|
+
/* @__PURE__ */ jsxRuntime.jsxs(TextareaWrapper, { state, disabled, children: [
|
|
260
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
261
|
+
StyledTextarea,
|
|
262
|
+
{
|
|
263
|
+
id,
|
|
264
|
+
ref: forwardedRef,
|
|
265
|
+
css,
|
|
266
|
+
disabled,
|
|
267
|
+
state,
|
|
268
|
+
onFocus: handleFocus,
|
|
269
|
+
onBlur: handleBlur,
|
|
270
|
+
endAdornment: hasEndAdornment,
|
|
271
|
+
...props
|
|
272
|
+
}
|
|
273
|
+
),
|
|
274
|
+
hasEndAdornment && /* @__PURE__ */ jsxRuntime.jsx(AdornmentWrapperEnd, { children: endAdornment })
|
|
275
|
+
] })
|
|
276
|
+
] });
|
|
277
|
+
}
|
|
278
|
+
);
|
|
279
|
+
exports.Textarea = Textarea;
|
|
280
|
+
//# sourceMappingURL=Textarea.cjs.map
|