f7Progress
when value
is NULL
.window.Framework7 = Framework7
.f7MultiLayout()
:
supported by {brochure}
, this allows to have beautiful
transitions between pages to provide a more native like experience.f7Form()
: gather inputs in the same form to get a
nested list containing all input values. This allows to reduce the
number of inputs on the server side. updateF7Form()
makes
it possible to update input in batch or only selected ones.f7List()
which allows you to benefit from new
styling options such as outline, inset, strong, … Internally, we use a
function able to detect whether the input is inside a
f7List()
: if yes, you can style this list by passing
parameters like f7List(outline = TRUE, inset = TRUE, ...)
;
if not, the input is internally wrapped in a list to have correct
rendering (but no styling is possible). Besides, some input like
f7Text()
can have custom styling (add an icon, clear
button, outline style), which is independent from the external list
wrapper style. Hence, we don’t recommend doing
f7List(outline = TRUE, f7Text(outline = TRUE))
since it
won’t render very well (only use
f7List(outline = TRUE, f7Text())
). Please have a look at
the corresponding examples in the documentation.f7Treeview()
: display items in a
treeview. Used in combination with f7TreeviewItem()
and
f7TreeviewGroup()
.f7AddMessages()
is definitely removed. Deprecated from
previous releases.f7Appbar()
has been removed in Framework7. We have no
alternative to replace it.f7ShowNavbar()
and f7HideNavbar()
are
removed, as long time deprecated.f7checkBox()
and f7checkBoxGroup()
are
removed, as long time deprecated.f7InsertTab()
, f7RemoveTab()
as
long time deprecated.f7ValidateInput()
as long time deprecated.f7Popover()
and f7PopoverTarget()
as long time deprecated.f7ShowPreloader()
and
f7HidePreloader()
as long time deprecated.f7Menu()
, f7MenuItem()
,
f7MenuDropdown()
, f7MenuDropdownDivider()
and
updateF7MenuDropdown()
are totally removed from Framework7.
We have no alternative to replace it.f7Icon()
: remove deprecated parameter
old
.f7SmartSelect()
: maxlength
becomes
maxLength
. Typo from Framework7.value
from f7Password()
(accidental
copy and paste from f7Text()
).f7Toolbar()
default position
is now bottom
.httr
dependency from
app_container()
.f7PhotoBrowser()
:
id
param reintroduce (but not mandatory, default
NULL
) as needed by updateF7Entity()
to update
the widget on the server side.f7ListItem
: now, we don’t
allow footer
and header
whenever the parent
list container has mode media
(avoids cluttered layout).
When subtitle
is provided without the parent list being of
mode media
, an error is also raised (subtitle
is specific to the media list layout). right
can’t be
passed when title
is NULL.f7Accordion()
:
multiCollapse
has been removed in Framework7.f7Block()
:
hairlines
is deprecated since removed from
Framework7.f7Segment()
:
container
is deprecated, removed from Framework7.f7Navbar()
:
shadow
and subtitle
have been removed in
Framework7.f7SocialCard()
is deprecated as the same result can be
achieved with f7Card()
.f7AutoComplete()
: expandInput
is
deprecated, removed from Framework7.f7Row()
, f7Col()
and f7Flex()
are deprecated in favor of f7Grid()
, as specified by
Framework7 8.3.3f7Fabs()
: morph
is deprecated. Only
morphTarget
is used.f7Toolbar()
:
hairline
and shadow
are deprecated,
removed from Framework7.f7Shadow()
removed from Framework7. No replacement. Will
be removed in a future release.f7Swipeout
: deprecate side
parameter and
...
. Now use either left
/right
or
both.f7AutoComplete
: value
now defaults to
NULL
(instead of the first choice).updateF7Login()
: id
is deprecated.f7Messages()
: the corresponding input is now a list of
lists, each item being a single f7Message()
. The previous
setting was not optimal R,the JS binding was returning a array of
objects, which can’t be easily translated to R. We now return an object
of objects which becomes a list of lists.f7Block()
gains an outline
parameter (add
grey border).f7Button()
get a new tonal
style. It is
also possible to pass icon
as parameter and update the icon
with updateF7Button
.f7Card()
get a new raised
and
divider
parameters.f7CheckboxGroup()
has a new position
parameter to control the check icon position. Default to left.f7CheckboxChoice()
: new function to pass inside
choices
in a f7CheckboxGroup()
. Improved
choice with title, subtitle, …f7List()
has new outline
,
dividers
and strong
styles. mode
gains 2 new values: simple
and links
.f7ListItem()
has new routable
parameter
which allows navigation between pages in the new
f7MultiLayout()
.f7ListItem()
and f7VirtualListItem()
have
new optional argument id
, which allows for easy
targeting.f7ListIndex()
now gets applied to an specific element,
instead of the whole page. This makes it possible to add multiple lists
with list indexes to the same app.id
argument to f7List()
, which makes
it possible to use an id as target in f7ListIndex
.f7Panel()
has new “floating”/“push” effects as well as
a new options
parameter to pass in extra configuration. See
https://framework7.io/docs/panel#panel-parameters.f7VirtualList()
has new outline
,
dividers
and strong
styles. Additionally,
mode
was added with the following possible values:
simple
, links
, media
or
contacts
.f7Popup()
has a new push
effect (pushing
the main view behind on opening). There’s also a new argument called
page
that can control whether or not the popup behaves as a
page and can scroll- handy for popups with more content.f7Radio()
has a new position
parameter to
control the check icon position. Default to left (like
f7CheckboxGroup()
). Also, f7Radio()
inherits
from f7List()
styling parameters such as
inset
, outline
,dividers
,
strong
for more styling option.f7RadioChoice()
: new function to pass inside
choices
in a f7Radio()
. Improved choice with
title, subtitle, …f7Sheet()
gains new options
parameter to
allow passing more configuration. See
https://framework7.io/docs/sheet-modal#sheet-parameters.f7Picker()
has new ...
parameter to pass
custom options. Also f7Picker()
now can have NULL as
value
, allowing you to display a placeholder.f7DatePicker()
has new ...
parameter to
pass custom options. f7DatePicker()
now also supports usage
of the timePicker
, and returns a posixct object when this
is enabled. See https://framework7.io/docs/calendar#examples.tapHoldPreventClicks
,
touchClicksDistanceThreshold
, mdTouchRipple
to
f7Page()
touch options.dark
option in f7Page()
now also
supports "auto"
besides TRUE
and
FALSE
. If set to auto (the new default) it automatically
enables dark theme based on user system color scheme preference.showF7Preloader()
has new type
parameter
and a new modal dialog support (if type
is passed). New
id
parameter that has to be set when type
is
not NULL.hideF7Preloader()
has a new id
parameter.
This is to hide modals or progress from the server.updateF7Preloader()
to be able to update a progress
preloader from the server.f7PhotoBrowser()
fixed the
pageBackLinkText
to back
when type was set to
page
, but this has been removed. The Framework7 default is
now used, or the pageBackLinkText
can be set manually (iOS
only).f7ColorPicker()
has new ...
parameter to
pass custom options and now returns a list of values with hex, rgb, hsl,
hsb, alpha, hue, rgba, and hsla values.f7Slider()
has new ...
parameter to pass
extra options. New showLabel
parameter: fix an unfortunate
naming conflict between the input label (name) and the name Framework7
has given to the bubble component (label).f7AutoComplete()
and
updateF7AutoComplete()
have new ...
parameter
to pass extra options as well as a new style
parameter to
customize the input look and feel. f7AutoComplete()
has new
style
parameter to allow for custom styling only when
openIn
is dropdown
.f7SplitLayout()
has a new look and at a minimal app
width (1024 px) the sidebar becomes always visible. The sidebar will be
collapsed on smaller screens.f7Text()
, f7TextArea()
and
f7Password()
have new parameters: description
,
media
, floating
, outline
and
cleareable
for more styling options. label
can
also be NULL.f7Select()
has new description
,
media
and outline
parameters.f7Link()
has new routable
parameter which
allows to use the new experimental router layout in
f7MultiLayout()
.f7Navbar()
: both leftPanel
and
rightPanel
now accept shiny tags such as an icon or link.
This is useful to support the new router layout. Items must be wrapped
in a shiny::tagList()
.f7DefaultOptions()
: can be used in
f7Page()
to pass app options.f7Picker
, f7DatePicker
and
f7ColorPicker
now have an additional style
parameter to set the input style and inherit from f7List
options such as outline, inset, strong and dividers.f7Toggle()
and f7Stepper()
automatically
detect when they are called inside a f7List
and adjust
accordingly to the list style.f7TabLink()
: href
can now be different of
#
if passed in ...
(Default is still
#
when no custom href
is detected). This
allows to use tab links as routable links but with a better rendering in
the toolbar/tabbar than classic f7Link()
.updateF7App
can now also handle changes in app theme
(ios or md), dark mode, and color.f7Fabs()
has a new argument global
that
can be used to make FABs persistent across different tabs in
f7TabLayout()
.f7ExpandableCard()
has a new argument
buttonColor
that can be used to control the color of the
close button.f7Login()
has a new argument cancellable
that can, optionally, show a cancel button to close the login window.
f7LoginServer()
also return the cancel state so it can be
used to trigger actions on the server side, like changing tab.updateF7Login()
: new cancel
parameter to
close the login window.limit
to f7AutoComplete()
. Thanks
@bthieurmel.f7Card()
(Typo).skeletonsOnLoad
to f7Page()
options
(not compatible) with preloader
.preloader
is moved to f7Page()
options
list.loading_duration
from f7Page()
.
Now the preloader will automatically disappear when shiny is idle like
in {bs4Dash}
.f7SplitLayout()
for consistency reasons.f7Tab()
uses validate_tabName
so that
Tab 1
is not valid anymore but Tab1
yes. Tabs
will have to be manually renamed.f7Popup()
is now generated on the server side like
f7Notif()
. Remove updateF7Popup()
,
f7TogglePopup()
.f7listIndex()
: remove
f7ListIndexItem()
. f7ListIndex()
is generated
from the server side.f7Skeleton()
: triggered from server side. See
examples.f7Swiper()
: better CSS, pagination, navigation,
scrollbar, …f7PhotoBrowser()
example: wrong default
theme …f7CheckBox()
: better layout.f7FabMorphTarget()
example.f7PhotoBrowser()
just works with two or more
pictures. Fix issue in JSON conversion.updateF7Popup()
documentation (showed as
deprecated by mistake).f7Navbar()
: hard-coded css style causing
white text on white background.f7Tab()
so as to pass any name, as oposed to
tabName.f7SmartSelect()
with openIn
param (failed when not provided).f7Tab()
can create duplicate IDs which in
turn break the page. Now we use validate_tabName
internally
to check whether the tab is valid (avoid JS issues with jQuery
selectors)…updateF7AutoComplete()
accepts
choices.f7SmartSelect()
interfering NS for
server-side module.f7DatePicker()
and DST.f7Page()
does not accept anymore color by its name.
Now, and like in earlier versions, f7Page()
accepts either
hex code or color name.f7Slider()
code updated to work with the
fix for #215 above.This release only fixes an issue with Shiny 1.7.0 with a failing unit test. Thanks @schloerke
This release also fixes an issue with R CMD check and htmltools.
f7Link()
icon now expects
f7Icon()
. label is not mandatory
anymore.updateF7Radio()
. Fixes #135. Thanks @korterling.f7Dialog()
has a fixed height of 300px and vertical
overflow to avoid issues....
to f7SmartSelect()
.options
to f7SearchBar()
to provide
more configuration. Fixes #47: thanks @rodrigoheck.valueText
param for f7Gauge()
. Fixes
#84: thanks @tanho63.f7Gauge()
JS code (no user impact).f7SmartSelect()
.insertF7Tab()
are losing reactivity.f7DatePicker()
visibility issue. Thanks @styvens.f7Button()
with link not working. Thanks
@bwganblack.f7SmartSelect()
on selection. Thanks
@dewalex.This release is to addresses the following reverse dependency issue with shiny. Moreover, it also starts the road to v1.0.0 (later this year).
f7AddMessages()
will become
updateF7Messages()
in future releasef7HideNavbar()
and f7ShowNavbar()
will be
replaced by updateF7Navbar()
f7ShowPopup()
will become
updateF7Popup()
f7checkBox()
will become f7Checkbox()
f7checkBoxGroup()
will become
f7CheckboxGroup()
f7ValidateInput()
will become
validateF7Input()
f7InsertTab()
and f7RemoveTab()
will
becomes insertF7Tab()
and removeF7Tab()
,
respectivelyf7ShowPreloader()
and f7HidePreloader()
will become showF7Preloader()
and
hideF7Preloader()
, respectively.f7Popover()
and f7PopoverTarget()
replaced
by addF7Popover()
and toggleF7Popover()
create_manifest()
is going to be replaced by the
workflow described here:
https://unleash-shiny.rinterface.com/mobile-pwa.html#charpente-and-pwa-toolsupdateF7Fabs()
: inputId becomes
idf7Appbar()
: left_panel becomes
leftPanel and right_panel
rightPanelf7Init()
removed. Now pass it through the
f7Page()
optionsf7Navbar()
: left_panel becomes
leftPanel and right_panel
rightPanelf7Panel()
and updateF7Panel()
:
inputId becomes idf7InsertTab()
and f7RemoveTab()
:
inputId becomes idf7ExpandableCard()
and f7Card()
:
img becomes imagef7SocialCard()
: author_img becomes
imagef7ListItem()
: url becomes
hreff7VirtualListItem()
: url becomes
hrefupdateF7VirtualList()
: old_index and
new_index become oldIndex and
newIndex, respectivelyf7Toast()
,
updateF7Progress()
, … and has been swapped at the end of
the parameters for more conveniencef7Dialog()
: inputId becomes
idupdateF7Sheet()
: inputId becomes
idf7Link()
: external has been removed
from (much simpler), src becomes
hreff7Button()
: src becomes
hreff7Gauge()
and not mandatory. Default to
shiny::getDefaultReactiveDomain()
f7Chip()
: icon_status becomes
iconStatus, img becomes
imagef7Accordion()
and updateF7Accordion()
f7ProgressInf()
(useless)f7Swiper()
API. New options
parameterf7PhotoBrowser()
is now called from the shiny server
function. See help, id and label have
been removedf7Searchbar()
updateF7Entity()
updateF7ActionSheet()
addF7Tooltip()
and updateF7Tooltip()
to generate tooltips from the serverf7Page()
so
that we doesn’t oblige users to create a PWAf7Page()
has a new options parameter
as replacement of f7Init()
. Much simpler to handlef7Menu()
, f7MenuItem()
,
f7MenuDropdown()
, f7MenuDropdownDivider()
and
updateF7MenuDropdown()
: special buttons and dropdown
elements, behaving like action buttonsf7PhotoBrowser()
updateF7SmartSelect()
: thanks @Edireitoshiny:disconnect
occurs. Gives
ability to reload or reconnecthtmltools::attachDependencies()
in
create_app_ui
f7Searchbar()
since it messes up
with tabbar navigation. This does not have any impact on user
experience. In a future release of shinyMobile,
f7Searchbar()
will have input binding associated as well as
more parameters for configurationf7SmartSelect()
: type param becomes openIn to align
with other inputsf7Messages()
: messages are updated on the server
side with f7AddMessages()
. New f7MessageBar()
to send messages from the server side.f7ActionSheet()
: to access the currently selected
button, use input$[sheet_id]_button. This is to make action sheets
compatible with shiny modules. Moreover, the buttons provided must be
included in a list (not in a dataframe)f7Sheet()
is still inserted in the UI side but can be
triggered either on the server side in combination with
updateF7Sheet()
(see example) or on the UI side. Overall,
this improves flexibility since user may choose any trigger element. In
practice, any element having data-sheet
pointing to the
sheet id as well as the “sheet-open” css class may open it, instead of
having a default trigger contained in the sheet. A use case may be to
open a sheet in the tabbar (the trigger would be a
f7TabLink()
that is a special button styled for the
tabbar)session
is now
optional and has been moved to the last position in function callf7AutoComplete()
: type becomes openIn to align with the
framework7 documentationf7Icon()
(not used)f7Popup()
. It has now an input associated
giving the popup state (opened or closed) as well as new parameters:
backdrop, closeByBackdropClick, closeOnEscape, animate and swipeToClose.
label parameters has been removed. To create an f7Popup()
put the f7Popup()
tag in you UI. On the server side call
f7TogglePopup()
. See documentation for a detailed example.
Thanks @pasahef7NavbarHide()
renamed to f7HideNavbar()
for consistancyf7NavbarShow()
renamed to f7ShowNavbar()
for consistancyf7Gauge()
valueText was removed. It does not make
sense that the value can be accidentally different from the text
displayed. valueText is then an internal parameter.f7DatePicker()
: min becomes minDate, max becomes
maxDate and format becomes dateFormatf7Appbar()
input$shinyInfo
and
input$lastInputChanged
(see shinyMobile tools vignette for
more details)f7SmartSelect()
has input binding as well as an update
function updateF7SmartSelect()
f7VirtualList()
, f7VirtualListItem()
,
updateF7VirtualList()
: high performance list with caching
system -> faster rendering (up to 10x faster than
f7List()
). Ability to add item(s), remove item(s), move
item, filter items, …f7TabLayout()
. This allows
to use the f7Messagebar()
in a tabs layout
configuration.f7ValidateInput()
function to validate input from
the server side (similar to shinyFeedback but internal to shinyMobile
and without dependencies)f7Login()
and updateF7Login()
feature
to provide UI boilerplates for authenticationf7Tabs()
may be used as standalone components with the
style argument (segmented or strong). toolbar has the default
behavior.f7Icon()
and icons dependencies. thanks @pvictorupdateF7DatePicker()
: thanks @pvictorf7Fabs()
to get the status of the
containerupdateF7Button()
and
updateF7Fabs()
f7Init()
. Pull the
screen from top to bottom fires input$ptr
which becomes
TRUE. When the pull to refresh event is finished, input$ptr
is NULL. Useful to trigger events in an observeEventupdateF7Select()
: thanks @Seyphaton for the suggestionf7TogglePopup()
to close/open a
f7Popup()
. Thanks @pasahepreview_mobile()
: function that previews your app
in a seleted range of devices (iphone, samsung, htc, …)f7File()
for file upload. See shiny
fileInput
f7DownloadButton()
to work properly with the
shiny downloadHandler
function. Thanks @bwganblack for the
reportf7Init()
to control
the delay necessary to trigger a long press (default to 750 ms)f7ShowPreloader()
and
f7HidePreloader()
f7TextArea()
input and
updateF7TextArea()
on the server sidef7checkBoxGroup()
and
f7Radio()
f7TabLink()
(special link to insert in
f7Tabs()
that may open a f7Sheet()
)f7Button()
f7Segment()
f7Popup()
+
rewrite js binding. Thanks @pvictorf7DatePicker()
: direction,
openIn, scrollToInput, closeByOutsideClick, toolbar, toolbarCloseText,
header and headerPlaceholderupdateF7Gauge()
. Thanks @rodrigoheck for the
suggestionf7Slider()
to prevent wrong
behaviour when used in f7TabLayout()
f7Select()
does not rely anymore on the shiny
selectInput binding (does not have impact on user experience)f7Tab()
: allows to navigate
through hidden tabs without displaying them in the tab menu. Thanks
@rodrigoheckf7AutoComplete()
f7Picker()
and
updateF7Picker()
: rotateEffect, openIn, scrollToInput,
closeByOutsideClick, toolbar, toolbarCloseText and
sheetSwipeToClosef7Icon()
f7Select()
updateF7Slider()
f7Slider()
f7Slider()
labels (remove enableLabels param)updateF7Slider()
f7Slider()
updateF7Stepper()
f7Stepper()
: add 2 more parameters (decimalPoint
and buttonsEndInputMode)f7Init()
. This improves perfomances on old devicesf7SingleLayout()
example (replace sliderInput
by f7Slider)f7SplitLayout()
example (replace sliderInput by
f7Slider)f7TabLayout()
exampleupdateF7AutoComplete
: text input was not
updated. Thanks @sanchez5674 for the reportf7Page()
. Thanks @
pvictorf7Sheet()
wrong css style applied when
multiple sheets are in the same appf7Tabs()
: if one put f7Tabs()
inside a f7Tab()
in a parent f7Tabs()
, the
input binding was giving the wrong tab for the top level tabset (once we
clicked in the tab containing the sub-tabset).f7InsertTab()
and
f7RemoveTab()
when swipeable is TRUEf7Tabs()
on click. This allows
to use f7Tabs()
without swipeable and animatedf7Panel()
(need to provide the f7Panel()
inputId)f7Swipeout()
to make the current tab swipping
if in f7TabLayout()
f7Fab()
label white background color in dark
modef7Navbar()
would center
the body content on scroll, due to a css conflictf7Slider()
and
f7TabLayout()
: When setting value of a slider in a
swipeable f7TabLayout it cause the tab to be swip. This describe here :
framework7io/framework7#2603. Thanks @pvictorf7DatePicker()
format for months.
Thanks @kmaheshkulkarnif7DatePicker()
: the viewport does not
scroll to input by defaultf7AutoComplete()
examplef7Popup()
. Thanks
@pasahef7Popup()
. Now
f7Popup()
triggers shiny output rendering. Thanks @pasaheupdateF7Gauge()
-> wrong fraction for semi
circle gauges.f7Stepper()
: some options were not properly
initialized (max, min, …)f7Slider()
example 2: wrong argument in helpf7Icon()
example: wrong function namef7Row()
examplef7Sheet()
: hiddenItems is NULL by defaultf7Appbar()
NEWS.md
file to track changes to the
package.