Not at all. The only thing that they share is that they are built with Elm.
However, you can of course make stories of your elm-ui
views using elm-ui-explorer
like that:
stories : UIExplorer.UI a b {}
stories =
storiesOf
"MyViewDoneWithElmUI"
[ ( "Primary"
, \_ ->
MyViewDoneWithElmUI.viewPrimary |> toHtml
, {}
)
, ( "Secondary"
, \_ ->
MyViewDoneWithElmUI.viewSecondary |> toHtml
, {}
)
]
toHtml =
Element.layout []
See more detail here: examples/dsm/src/Components/Header/Stories.elm
In order to reduce breaking changes, it's a well known best practice to use Opaque Types. In order to create Stories, the developer must use the storiesOf function provided by the API.
The Stories type is parametrized by three values:
- a : Custom Model entry that can be used to store data related to Plugins
- b : Message Type emitted by the UIExporer main view
- c : Data related to Plugins and used by your Stories
When defining a story, elm-ui-explorer
allows us to define a lambda function that can help you to bring interactivity to your stories.
Let's say that you defined some locale in your model:
type Locale
= En
| Fr
| De
type alias Model =
{ locale : Locale }
Then you can use this value in your stories by accessing your customModel:
storiesOf
"Button"
[ ( "Primary", \m -> button (buttonLabel m.customModel.locale) "pink", {} )
, ( "Secondary", \m -> button (buttonLabel m.customModel.locale) "violet", {} )
]
See more detail here: examples/button/ExplorerWithLocale.elm