2020-10-03 08:24:05 +00:00
|
|
|
# <a href="https://yewprint.rm.rs"><img src="./yewprint-doc/src/logo.svg" height="32" /></a> <a href="https://yewprint.rm.rs">Yewprint</a> ![Rust](https://github.com/cecton/yewprint/workflows/Rust/badge.svg) [![Netlify Status](https://api.netlify.com/api/v1/badges/17f076ed-49e5-4185-921e-5c5759de2fdb/deploy-status)](https://app.netlify.com/sites/epic-poincare-f8adaa/deploys) [![Discord](https://img.shields.io/discord/701068342760570933)](https://discord.gg/NAFcwhp)
|
|
|
|
|
2020-09-13 20:21:47 +00:00
|
|
|
|
|
|
|
It's [Blueprint](https://blueprintjs.com), but for
|
|
|
|
[Yew](https://github.com/yewstack/yew) in [Rust](https://www.rust-lang.org/).
|
|
|
|
|
2020-09-28 20:16:56 +00:00
|
|
|
**Warning:** This is in early development and it is possible it won't be
|
|
|
|
finished if there is no interest. Don't use this in production! Please help or
|
|
|
|
leave a star to let me know you are interested in this project.
|
2020-09-13 20:21:47 +00:00
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
2020-09-21 11:40:32 +00:00
|
|
|
## Use as a library (in your project)
|
|
|
|
|
|
|
|
```toml
|
|
|
|
yewprint = { git = "https://github.com/cecton/yewprint.git", branch = "main" }
|
2020-10-03 08:24:05 +00:00
|
|
|
|
|
|
|
# right now you need a specific version of Yew to use Yewprint
|
|
|
|
yew = { git = "https://github.com/yewstack/yew.git", rev = "1507c21b" }
|
|
|
|
|
|
|
|
# other yew dependencies need to use this version
|
|
|
|
# yew-router = { git = "https://github.com/yewstack/yew.git", rev = "1507c21b" }
|
|
|
|
# yewtil = { git = "https://github.com/yewstack/yew.git", rev = "1507c21b", features = ["pure"] }
|
2020-09-21 11:40:32 +00:00
|
|
|
```
|
|
|
|
|
2020-09-28 20:16:56 +00:00
|
|
|
You will also need the CSS from blueprint. For that you can either include the
|
|
|
|
CSS file directly or you can look at the script [build.sh](./build.sh) and see
|
|
|
|
how it is downloaded automatically.
|
|
|
|
|
2020-09-20 17:59:47 +00:00
|
|
|
## Development
|
|
|
|
|
|
|
|
This section will walk you through setting up the environment required to modify
|
|
|
|
the source of `yewprint`.
|
|
|
|
|
2020-09-13 20:21:47 +00:00
|
|
|
### Prerequisites
|
|
|
|
|
2020-09-21 11:42:00 +00:00
|
|
|
* [Rust (stable)](https://rustup.rs/)
|
|
|
|
* [wasm-pack](https://github.com/rustwasm/wasm-pack)
|
|
|
|
* [simple-http-server](https://github.com/TheWaWaR/simple-http-server)
|
|
|
|
* [cargo-watch](https://github.com/passcod/cargo-watch)
|
2020-09-20 17:59:47 +00:00
|
|
|
|
2020-09-21 11:40:32 +00:00
|
|
|
### Troubleshooting
|
2020-09-21 11:24:52 +00:00
|
|
|
|
|
|
|
- I can't install `cargo-watch` on OSX.
|
|
|
|
|
|
|
|
This happens on some machines. Try installing the
|
|
|
|
[pre-compiled binary](https://github.com/passcod/cargo-watch/releases)
|
|
|
|
instead.
|
2020-09-13 20:21:47 +00:00
|
|
|
|
2020-09-21 11:40:32 +00:00
|
|
|
### Run the development server
|
2020-09-13 20:21:47 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
./dev.sh
|
|
|
|
```
|
2020-09-20 09:05:06 +00:00
|
|
|
|
|
|
|
Roadmap
|
|
|
|
-------
|
|
|
|
|
2020-09-20 10:26:29 +00:00
|
|
|
- [ ] Doc web-site designed with the library itself (like https://blueprintjs.com) including link to the Yew library
|
2020-09-20 09:05:06 +00:00
|
|
|
- [ ] [FocusStyleManager](https://blueprintjs.com/docs/#core/accessibility.focus-management)
|
|
|
|
- [ ] [Classes & Typography (and bp3- prefix)](https://blueprintjs.com/docs/#core/classes)
|
|
|
|
- [HTML elements](https://blueprintjs.com/docs/#core/components/html)
|
|
|
|
- [HTML table](https://blueprintjs.com/docs/#core/components/html-table)
|
|
|
|
- [Non-ideal state](https://blueprintjs.com/docs/#core/components/non-ideal-state)
|
|
|
|
- [HTML select](https://blueprintjs.com/docs/#core/components/html-select)
|
|
|
|
- [HTML input](https://blueprintjs.com/docs/#core/components/text-inputs.html-input)
|
|
|
|
- [Search field](https://blueprintjs.com/docs/#core/components/text-inputs.search-field)
|
|
|
|
- [ ] [Breadcrumbs](https://blueprintjs.com/docs/#core/components/breadcrumbs)
|
|
|
|
- [x] [Button](https://blueprintjs.com/docs/#core/components/button)
|
|
|
|
- [ ] Complete Button API
|
|
|
|
- [ ] AnchorButton
|
2020-09-30 03:57:12 +00:00
|
|
|
- [x] [ButtonGroup](https://blueprintjs.com/docs/#core/components/button-group)
|
2020-09-20 15:04:22 +00:00
|
|
|
- depends on: Button
|
2020-09-28 13:24:04 +00:00
|
|
|
- [x] [Callout](https://blueprintjs.com/docs/#core/components/callout)
|
2020-10-03 08:24:05 +00:00
|
|
|
- [x] [Card](https://blueprintjs.com/docs/#core/components/card)
|
2020-09-20 09:05:06 +00:00
|
|
|
- [x] [Collapse](https://blueprintjs.com/docs/#core/components/collapse)
|
|
|
|
- [ ] [CollapsibleList](https://blueprintjs.com/docs/#core/components/collapsible-list)
|
2020-09-30 03:57:12 +00:00
|
|
|
- [x] [Divider](https://blueprintjs.com/docs/#core/components/divider)
|
2020-09-20 15:04:22 +00:00
|
|
|
- depends on: ButtonGroup
|
2020-09-20 09:05:06 +00:00
|
|
|
- [ ] [EditableText](https://blueprintjs.com/docs/#core/components/editable-text)
|
|
|
|
- [ ] [Hotkeys](https://blueprintjs.com/docs/#core/components/hotkeys)
|
|
|
|
- [x] [Icon](https://blueprintjs.com/docs/#core/components/icon)
|
2020-10-03 08:24:05 +00:00
|
|
|
- [x] [Menu](https://blueprintjs.com/docs/#core/components/menu)
|
|
|
|
- [ ] Complete Menu API
|
|
|
|
- depends on: Popover
|
2020-09-20 09:05:06 +00:00
|
|
|
- [ ] [Popover](https://blueprintjs.com/docs/#core/components/menu.dropdowns) (dropdowns)
|
2020-10-03 08:24:05 +00:00
|
|
|
- depends on: Overlay
|
2020-09-20 09:05:06 +00:00
|
|
|
- [ ] [Navbar](https://blueprintjs.com/docs/#core/components/navbar)
|
|
|
|
- [ ] [OverflowList](https://blueprintjs.com/docs/#core/components/overflow-list)
|
|
|
|
- [ ] [PanelStack](https://blueprintjs.com/docs/#core/components/panel-stack)
|
2020-09-29 14:57:31 +00:00
|
|
|
- [x] [ProgressBar](https://blueprintjs.com/docs/#core/components/progress-bar)
|
2020-09-20 09:05:06 +00:00
|
|
|
- [ ] [ResizeSensor](https://blueprintjs.com/docs/#core/components/resize-sensor)
|
|
|
|
- [ ] [Skeleton](https://blueprintjs.com/docs/#core/components/skeleton)
|
|
|
|
- [ ] [Spinner](https://blueprintjs.com/docs/#core/components/spinner)
|
|
|
|
- [ ] [Tabs](https://blueprintjs.com/docs/#core/components/tabs)
|
|
|
|
- [ ] [Tag](https://blueprintjs.com/docs/#core/components/tag)
|
2020-09-30 18:04:41 +00:00
|
|
|
- depends on: Text
|
2020-10-03 08:24:05 +00:00
|
|
|
- [x] [Text](https://blueprintjs.com/docs/#core/components/text)
|
2020-09-20 09:05:06 +00:00
|
|
|
- [x] [Tree](https://blueprintjs.com/docs/#core/components/tree)
|
|
|
|
- depends on: Collapse, Icon
|
|
|
|
- [ ] [FormGroup](https://blueprintjs.com/docs/#core/components/form-group)
|
|
|
|
- [ ] [ControlGroup](https://blueprintjs.com/docs/#core/components/control-group)
|
|
|
|
- [ ] [Label](https://blueprintjs.com/docs/#core/components/label)
|
|
|
|
- [ ] [Checkbox](https://blueprintjs.com/docs/#core/components/checkbox)
|
|
|
|
- [ ] [RadioGroup](https://blueprintjs.com/docs/#core/components/radio)
|
|
|
|
- [ ] [Sliders](https://blueprintjs.com/docs/#core/components/sliders)
|
|
|
|
- [ ] [RangeSlider](https://blueprintjs.com/docs/#core/components/sliders.range-slider)
|
|
|
|
- [ ] [MultiSlider](https://blueprintjs.com/docs/#core/components/sliders.multi-slider)
|
|
|
|
- [x] [Switch](https://blueprintjs.com/docs/#core/components/switch)
|
2020-09-20 15:04:22 +00:00
|
|
|
- [ ] Complete Switch API
|
2020-09-20 09:05:06 +00:00
|
|
|
- [ ] [FileInput](https://blueprintjs.com/docs/#core/components/file-input)
|
|
|
|
- [ ] [NumericInput](https://blueprintjs.com/docs/#core/components/numeric-input)
|
|
|
|
- [ ] [InputGroup](https://blueprintjs.com/docs/#core/components/text-inputs.input-group)
|
|
|
|
- [ ] [TextArea](https://blueprintjs.com/docs/#core/components/text-inputs.text-area)
|
|
|
|
- [ ] [TagInput](https://blueprintjs.com/docs/#core/components/tag-input)
|
|
|
|
- [ ] [Overlay](https://blueprintjs.com/docs/#core/components/overlay)
|
|
|
|
- depends on: Portal
|
|
|
|
- [ ] [Portal](https://blueprintjs.com/docs/#core/components/portal)
|
|
|
|
- [ ] [Alert](https://blueprintjs.com/docs/#core/components/alert)
|
|
|
|
- depends on: Button, Dialog
|
|
|
|
- [ ] [Context menu](https://blueprintjs.com/docs/#core/components/context-menu)
|
|
|
|
- depends on: Popover
|
|
|
|
- [ ] [Dialog](https://blueprintjs.com/docs/#core/components/dialog)
|
|
|
|
- depends on: Icon, Overlay, Button
|
|
|
|
- [ ] [Drawer](https://blueprintjs.com/docs/#core/components/drawer)
|
|
|
|
- depends on: Icon, Overlay, Button
|
|
|
|
- [ ] [Popover](https://blueprintjs.com/docs/#core/components/popover)
|
|
|
|
- depends on: ResizeSensor, Tooltip, Overlay
|
|
|
|
- [ ] [Toast](https://blueprintjs.com/docs/#core/components/toast)
|
|
|
|
- depends on: Button, ButtonGroup, Icon, AnchorButton
|
|
|
|
- [ ] [Tooltip](https://blueprintjs.com/docs/#core/components/tooltip)
|
|
|
|
- depends on: Popover
|
|
|
|
- [ ] [DatePicker](https://blueprintjs.com/docs/#datetime/datepicker)
|
|
|
|
- [ ] [DateRangePicker](https://blueprintjs.com/docs/#datetime/daterangepicker)
|
|
|
|
- [ ] [TimePicker](https://blueprintjs.com/docs/#datetime/timepicker)
|
|
|
|
- [ ] [DateTimePicker](https://blueprintjs.com/docs/#datetime/datetimepicker)
|
|
|
|
- [ ] [DateInput](https://blueprintjs.com/docs/#datetime/dateinput)
|
|
|
|
- [ ] [DateRangeInput](https://blueprintjs.com/docs/#datetime/daterangeinput)
|
|
|
|
- [ ] [Select](https://blueprintjs.com/docs/#select/select-component)
|
|
|
|
- [ ] [Suggest](https://blueprintjs.com/docs/#select/suggest)
|
|
|
|
- [ ] [MultiSelect](https://blueprintjs.com/docs/#select/multi-select)
|
|
|
|
- [ ] [Omnibar](https://blueprintjs.com/docs/#select/omnibar)
|
|
|
|
- [ ] [QueryList](https://blueprintjs.com/docs/#select/query-list)
|
2020-09-29 14:57:31 +00:00
|
|
|
- [ ] [Table](https://blueprintjs.com/docs/#table)
|
2020-09-20 09:05:06 +00:00
|
|
|
- [ ] [TimezonePicker](https://blueprintjs.com/docs/#timezone)
|