Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/workflows/submit-cran.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Submit to CRAN

on:
release:
types: [prereleased] # Only trigger on pre-releases

jobs:
cran-submission:
runs-on: ubuntu-latest
name: Submit package to CRAN
permissions:
contents: read
issues: write # Needed to create issues
steps:
- uses: actions/checkout@v4

- name: Submit R package to CRAN
uses: coatless-actions/cran-submission@v1
with:
pkg-directory: '.' # Directory containing the package
check-directory: 'check' # Directory for check outputs
error-on: 'warning' # Fail on warnings
create-issue: true # Create issues to track submissions
5 changes: 2 additions & 3 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: shiny.fluent
Title: Microsoft Fluent UI for Shiny Apps
Version: 0.4.0
Version: 0.4.1
Authors@R:
c(
person("Jakub", "Sobolewski", role = c("aut", "cre"), email = "opensource+jakub.sobolewski@appsilon.com"),
Expand All @@ -18,7 +18,7 @@ License: LGPL-3
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.1
RoxygenNote: 7.3.3
Depends:
R (>= 2.10)
Imports:
Expand All @@ -34,7 +34,6 @@ Suggests:
DT,
ggplot2,
glue,
imola,
knitr,
leaflet,
mockery,
Expand Down
7 changes: 7 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# shiny.fluent 0.4.1

1. Fixed an invalid link in the `Icon` documentation that failed CRAN's HTML validation.
2. Links to the Fluent UI docs and the Microsoft Writing Style Guide now point at their
current locations.
3. Removed the `imola` dependency from the dashboard example, which now uses plain CSS grid.

# shiny.fluent 0.4.0

1. Upgraded `@fluentui/react` to 8.118.2.
Expand Down
36 changes: 18 additions & 18 deletions R/documentation.R
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ NULL
#'
#' The Announced component currently has the following documented use cases:
#'
#' 1. [Quick Actions](#/controls/web/announced/quickactions): Operations such as editing text or deletion that are short enough that they do not require a status during progress.
#' 2. [Search Results](#/controls/web/announced/searchresults): Appearance of search results such as in contact fields or search boxes.
#' 3. [Lazy Loading](#/controls/web/announced/lazyloading): "Lazy loading" of page sections that do not appear all at once.
#' 4. [Bulk Operations](#/controls/web/announced/bulkoperations): Operations that require multiple sub operations, such as the moving of several files.
#' 1. [Quick Actions](https://developer.microsoft.com/en-us/fluentui#/controls/web/announced/quickactions): Operations such as editing text or deletion that are short enough that they do not require a status during progress.
#' 2. [Search Results](https://developer.microsoft.com/en-us/fluentui#/controls/web/announced/searchresults): Appearance of search results such as in contact fields or search boxes.
#' 3. [Lazy Loading](https://developer.microsoft.com/en-us/fluentui#/controls/web/announced/lazyloading): "Lazy loading" of page sections that do not appear all at once.
#' 4. [Bulk Operations](https://developer.microsoft.com/en-us/fluentui#/controls/web/announced/bulkoperations): Operations that require multiple sub operations, such as the moving of several files.
#'
#'
#' For more details and examples visit the [official docs](https://developer.microsoft.com/en-us/fluentui#/controls/web/Announced).
Expand Down Expand Up @@ -130,7 +130,7 @@ NULL
#'
#' ### Content
#'
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Make sure it's clear what will happen when people interact with the button. Be concise; usually a single verb is best. Include a noun if there is any room for interpretation about what the verb means. For example, "Delete folder" or "Create account".
#'
#' @details
Expand Down Expand Up @@ -346,7 +346,7 @@ NULL
#' ### Content
#'
#' - Separate two groups of check boxes with headings rather than positioning them one after the other.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Don't use end punctuation (unless the check box label absolutely requires multiple sentences).
#' - Use a sentence fragment for the label, rather than a full sentence.
#' - Make it easy for people to understand what will happen if they select or clear a check box.
Expand Down Expand Up @@ -871,7 +871,7 @@ NULL
#'
#' - Use sentence-style capitalization for column headers—only capitalize the first word. For more info, see `[Capitalization]` in the Microsoft Writing Style Guide.
#'
#' `[capitalization]`: https://docs.microsoft.com/style-guide/capitalization
#' `[capitalization]`: https://learn.microsoft.com/style-guide/capitalization
#'
#' ### FAQ
#'
Expand Down Expand Up @@ -1143,7 +1143,7 @@ NULL
#' - Don’t use periods at the end of titles.
#' - This mandatory content should explain the main information in a clear, concise, and specific statement or question. For example, “Delete this file?” instead of “Are you sure?”
#' - The title shouldn’t be a description of the body content. For example, don’t use “Error” as a title. Instead, use an informative statement like “Your session ended.”
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#'
#' #### Body copy (Optional)
#'
Expand Down Expand Up @@ -1324,7 +1324,7 @@ NULL
#'
#' ### Content
#'
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - The dropdown list label should describe what can be found in the menu.
#' - Use shortened statements or single words as list options.
#' - If there isn't a default option, use "Select an option" as placeholder text.
Expand Down Expand Up @@ -1666,9 +1666,9 @@ NULL
#' @description
#' In a user interface, an icon is an image that represents an application, a capability, or some other concept or specific entity with meaning for the user. An icon is usually selectable but can also be a nonselectable image, such as a company's logo.
#'
#' For a list of icons, visit our [icon documentation](#/styles/web/icons).
#' For a list of icons, visit our [icon documentation](https://developer.microsoft.com/en-us/fluentui#/styles/web/icons).
#'
#' Note that icons are not bundled by default and typically must be loaded by calling `initializeIcons` from the `@uifabric/icons` package at the root of your application. See the [icon documentation](#/styles/web/icons#fabric-react) for more details.
#' Note that icons are not bundled by default and typically must be loaded by calling `initializeIcons` from the `@uifabric/icons` package at the root of your application. See the [icon documentation](https://developer.microsoft.com/en-us/fluentui#/styles/web/icons) for more details.
#'
#'
#' For more details and examples visit the [official docs](https://developer.microsoft.com/en-us/fluentui#/controls/web/Icon).
Expand Down Expand Up @@ -1779,7 +1779,7 @@ NULL
#' ### Content
#'
#' - Labels should describe the purpose of the control.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Be short and concise.
#' - Use nouns or short noun phrases.
#' - Don't use labels as instructional text. For example, "Click to get started".
Expand Down Expand Up @@ -1850,7 +1850,7 @@ NULL
#' - Use descriptive, actionable link text when possible. Avoid using URLs as link text.
#' - Don't use if the action is destructive or irreversible. Links aren't appropriate for commands with significant consequences.
#' - Keep discrete links far enough apart that people can differentiate between them and easily select each one.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#'
#' @details
#'
Expand Down Expand Up @@ -1885,7 +1885,7 @@ NULL
#'
#' ### Content
#'
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#'
#' ### FAQ
#'
Expand Down Expand Up @@ -2086,7 +2086,7 @@ NULL
#'
#' ### Content
#'
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#'
#' @details
#'
Expand Down Expand Up @@ -2256,7 +2256,7 @@ NULL
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see `[Capitalization]` in the Microsoft Writing Style Guide.
#' - Don’t put a period at the end of the title.
#'
#' `[capitalization]`: https://docs.microsoft.com/style-guide/capitalization
#' `[capitalization]`: https://learn.microsoft.com/style-guide/capitalization
#'
#' #### Button labels
#'
Expand Down Expand Up @@ -2634,7 +2634,7 @@ NULL
#' ### Content
#'
#' - Use a five-star rating system.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#'
#' @details
#'
Expand Down Expand Up @@ -3270,7 +3270,7 @@ NULL
#'
#' - Include a short label above the text field to communicate what information should be entered. Don't use placeholder text instead of a label. Placeholder text poses a variety of accessibility issues (including possible problems with color/contrast, and people thinking the form input is already filled out).
#' - When part of a form, make it clear which fields are required vs. optional. If the input is required, add "(required)" to the label. Don't exclusively use "\*" to indicate required inputs as it is often not read by screen readers. For example, "First name (required)".
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://docs.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#' - Use sentence-style capitalization—only capitalize the first word. For more info, see [Capitalization](https://learn.microsoft.com/style-guide/capitalization) in the Microsoft Writing Style Guide.
#'
#' @details
#'
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,6 @@ Learn more at [appsilon.com](https://www.appsilon.com/).

Get in touch [opensource@appsilon.com](mailto:opensource@appsilon.com)

Explore the [Rhinoverse](https://rhinoverse.dev) - a family of R packages built around [Rhino](https://appsilon.github.io/rhino/)!
Explore the [Rhinoverse](https://www.appsilon.com/rhinoverse) - a family of R packages built around [Rhino](https://appsilon.github.io/rhino/)!

<a href = "https://www.appsilon.com/careers" target="_blank"><img src="https://raw.githubusercontent.com/Appsilon/website-cdn/gh-pages/WeAreHiring1.png" alt="We are hiring!"/></a>
13 changes: 11 additions & 2 deletions cran-comments.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
## Resubmission

This package was archived on 2026-06-01. The reported problem was an invalid `href` in the
HTML version of the manual (`#/styles/web/icons#fabric-react` in `Icon.Rd`, flagged by the
`vnu` HTML validator); all relative links of that form have been replaced with absolute
URLs. Redirecting URLs have been updated, and `imola` (no longer on CRAN) has been dropped
from `Suggests`.

## R CMD check results

0 errors | 0 warnings | 1 note
0 errors | 0 warnings | 0 notes

* This is a new release.
* "UI" flagged as possibly misspelled in the Title and Description is part of the product
name "Fluent UI".
1 change: 0 additions & 1 deletion inst/examples/dashboard/app.R
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
library(dplyr)
library(imola)
library(purrr)
library(sass)
library(shiny.fluent)
Expand Down
77 changes: 27 additions & 50 deletions inst/examples/dashboard/header.R
Original file line number Diff line number Diff line change
Expand Up @@ -51,63 +51,40 @@ command_bar <- CommandBar(
)


# The grid layout (including the responsive breakpoint) lives in `style.scss`
# under `.app_header`; the classes below name the grid areas.
header <- function() {
appsilon_breakpoints <- breakpointSystem(
"appsilon-breakpoints",
breakpoint("xs", min = 320),
breakpoint("s", min = 428),
breakpoint("m", min = 728),
breakpoint("l", min = 1024),
breakpoint("xl", min = 1200)
)

gridPanel(
div(
id = "app_header",
class = "mobile-collapsed",
breakpoint_system = appsilon_breakpoints,
areas = list(
default = c(
"logo . info mobile_controls",
"separator separator separator separator",
"title title title title",
"menu menu menu menu",
"cta cta cta cta"
),
l = "logo separator title mobile_controls . menu info cta"
),
columns = list(
default = "auto 1fr auto auto",
l = "auto 1px auto auto 1fr auto auto auto"
),
rows = list(
default = "auto auto auto auto auto",
l = "40px"
),
gap = list(
default = "0px",
l = "16px"
),
logo = img(src = "appsilon-logo.png", class = "logo"),
separator = div(class = "app_header_vertical_separator mobile-toggled"),
title = div(
class = "app_header mobile-collapsed",
img(src = "appsilon-logo.png", class = "logo"),
div(class = "app_header_vertical_separator mobile-toggled separator"),
div(
"shiny.fluent",
class = "app_header_title mobile-toggled"
class = "app_header_title mobile-toggled title"
),
command_bar,
info = IconButton.shinyInput(
"cta_info",
class = "cta-icon",
iconProps = list(iconName = "Info"),
href = "#!/about"
tagAppendAttributes(
Comment thread
jakubsob marked this conversation as resolved.
IconButton.shinyInput(
"cta_info",
class = "cta-icon",
iconProps = list(iconName = "Info"),
href = "#!/about"
),
class = "info"
),
cta = PrimaryButton.shinyInput(
inputId = "cta_talk",
text = "Let's Talk",
class = "btn-primary btn-cta mobile-toggled",
href = "https://appsilon.com/",
target = "_blank"
tagAppendAttributes(
PrimaryButton.shinyInput(
inputId = "cta_talk",
text = "Let's Talk",
class = "btn-primary btn-cta mobile-toggled",
href = "https://appsilon.com/",
target = "_blank"
),
class = "cta"
),
mobile_controls = div(
div(
class = "mobile_controls",
tags$script("
let header_expand = function() {
document.getElementById('app_header').classList
Expand Down
32 changes: 0 additions & 32 deletions inst/examples/dashboard/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -608,38 +608,6 @@
"Built": "R 4.1.1; x86_64-pc-linux-gnu; 2022-12-16 11:11:38 UTC; unix"
}
},
"imola": {
"Source": "RSPM",
"Repository": "https://packagemanager.rstudio.com/all/latest",
"GithubRepo": null,
"GithubUsername": null,
"GithubRef": null,
"GithubSha1": null,
"description": {
"Package": "imola",
"Type": "Package",
"Title": "CSS Layouts (Grid and Flexbox) Implementation for R/Shiny",
"Version": "0.5.0",
"Authors@R": "person(\"Pedro\", \"Silva\", email = \"pedrocoutinhosilva@gmail.com\",\n role = c(\"aut\", \"cre\"))",
"Description": "Allows easy creation of CSS layouts (grid and flexbox)\n directly from R without added CSS.",
"License": "MIT + file LICENSE",
"URL": "https://github.com/pedrocoutinhosilva/imola",
"Encoding": "UTF-8",
"VignetteBuilder": "knitr",
"Imports": "shiny, htmltools, magrittr, stringi, glue, yaml",
"Suggests": "testthat (>= 3.0.0), rvest, devtools, covr, rmarkdown, knitr",
"RoxygenNote": "7.1.2",
"Config/testthat/edition": "3",
"Language": "en-US",
"NeedsCompilation": "no",
"Packaged": "2022-04-10 17:12:00 UTC; spark",
"Author": "Pedro Silva [aut, cre]",
"Maintainer": "Pedro Silva <pedrocoutinhosilva@gmail.com>",
"Repository": "RSPM",
"Date/Publication": "2022-04-19 09:32:30 UTC",
"Built": "R 4.1.1; ; 2023-03-28 09:10:26 UTC; unix"
}
},
"jquerylib": {
"Source": "RSPM",
"Repository": "https://packagemanager.rstudio.com/all/latest",
Expand Down
33 changes: 33 additions & 0 deletions inst/examples/dashboard/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,39 @@ body {
margin: 10px 0;
}

.app_header {
width: 100%;
height: 100%;
display: grid;
grid-template-areas:
"logo . info mobile_controls"
"separator separator separator separator"
"title title title title"
"menu menu menu menu"
"cta cta cta cta";
grid-template-rows: auto auto auto auto auto;
grid-template-columns: auto 1fr auto auto;
gap: 0px;
align-items: stretch;
justify-items: stretch;

> .logo { grid-area: logo; }
> .separator { grid-area: separator; }
> .title { grid-area: title; }
> .info { grid-area: info; }
> .cta { grid-area: cta; }
> .mobile_controls { grid-area: mobile_controls; }
Comment thread
jakubsob marked this conversation as resolved.
}

@media (min-width: 1024px) {
.app_header {
grid-template-areas: "logo separator title mobile_controls . menu info cta";
grid-template-rows: 40px;
grid-template-columns: auto 1px auto auto 1fr auto auto auto;
gap: 16px;
}
}

#app_header {
padding: 12px 0;
justify-content: center;
Expand Down
Loading
Loading