diff --git a/assets/css/admin/altadmintheme-v2/components/card/card.less b/assets/css/admin/altadmintheme-v2/components/card/card.less index 518813c..192abd3 100644 --- a/assets/css/admin/altadmintheme-v2/components/card/card.less +++ b/assets/css/admin/altadmintheme-v2/components/card/card.less @@ -18,10 +18,17 @@ .c-card__header-wrapper-one { display: flex; - gap: @spacing-2; + flex-direction: column; + gap: @spacing-1; min-width: 0; } +.c-card__header-icon-title { + align-items: center; + display: flex; + gap: @spacing-2; +} + .c-card__header-icon { .size(20); color: @icon-color-highlight; diff --git a/assets/css/admin/altadmintheme-v2/components/progress-bar/progress-bar.less b/assets/css/admin/altadmintheme-v2/components/progress-bar/progress-bar.less index 8fc3d01..3e8a9e5 100644 --- a/assets/css/admin/altadmintheme-v2/components/progress-bar/progress-bar.less +++ b/assets/css/admin/altadmintheme-v2/components/progress-bar/progress-bar.less @@ -3,6 +3,36 @@ .c-progress-bar { margin-bottom: @spacing-3; + + &--skin-primary { + .c-progress-bar__fill { + background: @color-primary-100; + } + } + + &--skin-secondary { + .c-progress-bar__fill { + background: @color-secondary-100; + } + } + + &--skin-tertiary { + .c-progress-bar__fill { + background: @color-tertiary-100; + } + } + + &--skin-warning { + .c-progress-bar__fill { + background: @color-warning-100; + } + } + + &--skin-danger { + .c-progress-bar__fill { + background: @color-error-100; + } + } } .c-progress-bar__track { @@ -18,18 +48,6 @@ transition: width @transition-normal ease; } -.c-progress-bar--skin-primary .c-progress-bar__fill { - background: @color-primary-100; -} - -.c-progress-bar--skin-secondary .c-progress-bar__fill { - background: @color-secondary-100; -} - -.c-progress-bar--skin-tertiary .c-progress-bar__fill { - background: @color-tertiary-100; -} - .c-progress-bar__footer { display: flex; justify-content: space-between; diff --git a/assets/css/admin/altadmintheme-v2/pages/onboarding-checklist/onboarding-checklist.less b/assets/css/admin/altadmintheme-v2/pages/onboarding-checklist/onboarding-checklist.less new file mode 100644 index 0000000..be0bfd5 --- /dev/null +++ b/assets/css/admin/altadmintheme-v2/pages/onboarding-checklist/onboarding-checklist.less @@ -0,0 +1,61 @@ +@import url("../../global/variables.less"); +@import url("../../global/mixins.less"); + +.p-onboarding-checklist { + display: flex; + flex-direction: column; + gap: @spacing-12; + margin: 0 auto; + max-width: @screen-md; + padding-top: @spacing-12; + width: 100%; +} + +.p-onboarding-checklist__header { + margin: 0 auto; + max-width: @screen-sm; + text-align: center; +} + +.p-onboarding-checklist__header-title { + color: @color-white !important; + font-family: @font-family-primary !important; + font-size: @font-size-5xl !important; + font-weight: @font-weight-bold !important; +} + +.p-onboarding-checklist__header-description { + color: @color-white; + font-size: @font-size-lg !important; + margin-top: @spacing-6; +} + +.p-onboarding-checklist__list { + margin: 0 auto; + max-width: @screen-md; + width: 100%; +} + +.p-onboarding-checklist__skip { + text-align: center; +} + +.p-onboarding-checklist__skip-link { + border-bottom: solid 1px @color-neutral-20; + color: @text-color !important; + display: inline-flex; + padding-bottom: @spacing-0-5; + transition: @transition-normal; + + &:hover { + text-decoration: none !important; + border-color: @color-secondary-100 !important; + } +} + +.p-onboarding-checklist__notice { + color: @text-color-muted; + font-size: @font-size-xs; + margin-top: @spacing-6; + text-align: center; +} diff --git a/assets/css/admin/altadmintheme-v2/structure/main.less b/assets/css/admin/altadmintheme-v2/structure/main.less index 0347773..d40f816 100644 --- a/assets/css/admin/altadmintheme-v2/structure/main.less +++ b/assets/css/admin/altadmintheme-v2/structure/main.less @@ -6,6 +6,18 @@ display: flex !important; flex-direction: column; flex: 1; + + .dashboard-onboardingChecklist && { + background: linear-gradient( + to bottom, + @color-primary-100 0%, + @color-primary-100 50%, + @color-white 50%, + @color-white 100% + ) !important; + border-top: solid 1px + ~"color-mix(in srgb, var(--body-background-color), white 12.5%)"; + } } .s-main__header { diff --git a/assets/css/admin/altadmintheme/pages/onboarding-checklist/onboarding-checklist.less b/assets/css/admin/altadmintheme/pages/onboarding-checklist/onboarding-checklist.less deleted file mode 100644 index f1dd0bc..0000000 --- a/assets/css/admin/altadmintheme/pages/onboarding-checklist/onboarding-checklist.less +++ /dev/null @@ -1,56 +0,0 @@ -.page-content { - &:has(.p-onboarding-checklist) { - background-image: linear-gradient( to bottom, var(--navbar-color) 0%, var(--navbar-color) 50%, var(--color-white) 50%, var(--color-white) 100%); - } -} - -.p-onboarding-checklist { - display : flex; - flex-direction: column; - gap : var(--spacing-12); - margin : 0 auto; - max-width : var(--screen-md); - padding-top : var(--spacing-12); - width : 100%; -} - -.p-onboarding-checklist__header { - margin : 0 auto; - max-width : var(--screen-sm); - text-align: center; -} - -.p-onboarding-checklist__header-title { - color : var(--color-white) !important; - font-size: var(--font-size-5xl) !important; -} - -.p-onboarding-checklist__header-description { - color : var(--color-white); - font-size : var(--font-size-lg) !important; - margin-top: var(--spacing-6); -} - -.p-onboarding-checklist__list { - margin : 0 auto; - max-width: var(--screen-md); - width : 100%; -} - -.p-onboarding-checklist__skip { - text-align: center; -} - -.p-onboarding-checklist__skip-link { - border-bottom : solid 1px var(--color-link); - color : var(--font-color-base) !important; - display : inline-flex; - padding-bottom: var(--spacing-0-5); -} - -.p-onboarding-checklist__notice { - color : var(--color-neutral-60); - font-size : var(--font-size-xs); - margin-top: var(--spacing-6); - text-align: center; -} \ No newline at end of file diff --git a/assets/icons/adminui/ban.svg b/assets/icons/adminui/ban.svg new file mode 100644 index 0000000..10b8356 --- /dev/null +++ b/assets/icons/adminui/ban.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/bookmark.svg b/assets/icons/adminui/bookmark.svg new file mode 100644 index 0000000..714d756 --- /dev/null +++ b/assets/icons/adminui/bookmark.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/circle-plus.svg b/assets/icons/adminui/circle-plus.svg new file mode 100644 index 0000000..47d22e4 --- /dev/null +++ b/assets/icons/adminui/circle-plus.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/circle-stop.svg b/assets/icons/adminui/circle-stop.svg new file mode 100644 index 0000000..74571a7 --- /dev/null +++ b/assets/icons/adminui/circle-stop.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/database.svg b/assets/icons/adminui/database.svg new file mode 100644 index 0000000..6cc38a1 --- /dev/null +++ b/assets/icons/adminui/database.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/dropbox.svg b/assets/icons/adminui/dropbox.svg new file mode 100644 index 0000000..00baefc --- /dev/null +++ b/assets/icons/adminui/dropbox.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/google.svg b/assets/icons/adminui/google.svg new file mode 100644 index 0000000..7fb6c7f --- /dev/null +++ b/assets/icons/adminui/google.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/hash.svg b/assets/icons/adminui/hash.svg new file mode 100644 index 0000000..b7737c7 --- /dev/null +++ b/assets/icons/adminui/hash.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/list.svg b/assets/icons/adminui/list.svg new file mode 100644 index 0000000..b9346bc --- /dev/null +++ b/assets/icons/adminui/list.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/microsoft.svg b/assets/icons/adminui/microsoft.svg new file mode 100644 index 0000000..9acc851 --- /dev/null +++ b/assets/icons/adminui/microsoft.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/paperclip.svg b/assets/icons/adminui/paperclip.svg new file mode 100644 index 0000000..acaf7bc --- /dev/null +++ b/assets/icons/adminui/paperclip.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/pilcrow.svg b/assets/icons/adminui/pilcrow.svg new file mode 100644 index 0000000..dbb2d69 --- /dev/null +++ b/assets/icons/adminui/pilcrow.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/play.svg b/assets/icons/adminui/play.svg new file mode 100644 index 0000000..28be2c8 --- /dev/null +++ b/assets/icons/adminui/play.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/plug.svg b/assets/icons/adminui/plug.svg new file mode 100644 index 0000000..e0aff32 --- /dev/null +++ b/assets/icons/adminui/plug.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/server.svg b/assets/icons/adminui/server.svg new file mode 100644 index 0000000..af4541c --- /dev/null +++ b/assets/icons/adminui/server.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/share-2.svg b/assets/icons/adminui/share-2.svg new file mode 100644 index 0000000..9468d8f --- /dev/null +++ b/assets/icons/adminui/share-2.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/tag.svg b/assets/icons/adminui/tag.svg new file mode 100644 index 0000000..1b6f7b0 --- /dev/null +++ b/assets/icons/adminui/tag.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/tags.svg b/assets/icons/adminui/tags.svg new file mode 100644 index 0000000..65959a8 --- /dev/null +++ b/assets/icons/adminui/tags.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/thumbs-down.svg b/assets/icons/adminui/thumbs-down.svg new file mode 100644 index 0000000..f77ecd3 --- /dev/null +++ b/assets/icons/adminui/thumbs-down.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/adminui/thumbs-up.svg b/assets/icons/adminui/thumbs-up.svg new file mode 100644 index 0000000..e08d9e0 --- /dev/null +++ b/assets/icons/adminui/thumbs-up.svg @@ -0,0 +1 @@ + diff --git a/config/Config.cfc b/config/Config.cfc index cb874f1..33f964e 100644 --- a/config/Config.cfc +++ b/config/Config.cfc @@ -68,7 +68,11 @@ component { , "fa-medkit" = { path = basePath & "/briefcase-medical.svg" } , "fa-pencil" = { path = basePath & "/pencil.svg" } , "fa-plus" = { path = basePath & "/plus.svg" } + , "fa-hdd" = { path = basePath & "/hard-drive.svg" } , "fa-google-drive" = { path = basePath & "/hard-drive.svg" } + , "fa-google" = { path = basePath & "/google.svg" } + , "fa-dropbox" = { path = basePath & "/dropbox.svg" } + , "fa-windows" = { path = basePath & "/microsoft.svg" } , "fa-vimeo" = { path = basePath & "/video.svg" } , "fa-lock" = { path = basePath & "/lock.svg" } , "fa-sign-in" = { path = basePath & "/log-in.svg" } @@ -80,9 +84,34 @@ component { , "fa-refresh" = { path = basePath & "/refresh-cw.svg" } , "fa-refresh-cw" = { path = basePath & "/refresh-cw.svg" } , "fa-tachometer" = { path = basePath & "/gauge.svg" } + , "fa-dashboard" = { path = basePath & "/layout-dashboard.svg" } , "fa-trash" = { path = basePath & "/trash.svg" } , "fa-trash-o" = { path = basePath & "/trash.svg" } , "fa-trash red" = { path = basePath & "/trash.svg" } + , "fa-ban" = { path = basePath & "/ban.svg" } + , "fa-ban red" = { path = basePath & "/ban.svg" } + , "fa-database" = { path = basePath & "/database.svg" } + , "fa-file-text" = { path = basePath & "/file-text.svg" } + , "fa-file-text-o" = { path = basePath & "/file-text.svg" } + , "fa-hashtag" = { path = basePath & "/hash.svg" } + , "fa-line-chart" = { path = basePath & "/chart-line.svg" } + , "fa-list-ul" = { path = basePath & "/list.svg" } + , "fa-paperclip" = { path = basePath & "/paperclip.svg" } + , "fa-paragraph" = { path = basePath & "/pilcrow.svg" } + , "fa-server" = { path = basePath & "/server.svg" } + , "fa-tag" = { path = basePath & "/tag.svg" } + , "fa-tags" = { path = basePath & "/tags.svg" } + , "fa-tools" = { path = basePath & "/toolbox.svg" } + , "fa-users" = { path = basePath & "/users.svg" } + , "fa-play" = { path = basePath & "/play.svg" } + , "fa-plug" = { path = basePath & "/plug.svg" } + , "fa-plus-circle" = { path = basePath & "/circle-plus.svg" } + , "fa-share-alt" = { path = basePath & "/share-2.svg" } + , "fa-share-square-o" = { path = basePath & "/square-arrow-out-up-right.svg" } + , "fa-stop" = { path = basePath & "/circle-stop.svg" } + , "fa-bookmark" = { path = basePath & "/bookmark.svg" } + , "fa-thumbs-down" = { path = basePath & "/thumbs-down.svg" } + , "fa-thumbs-up" = { path = basePath & "/thumbs-up.svg" } , "fa-user-tie" = { path = basePath & "/user.svg" } , "fa-user-times" = { path = basePath & "/user-x.svg" } , "fa-user" = { path = basePath & "/user.svg" } diff --git a/customtags/adminui_card.cfm b/customtags/adminui_card.cfm index 2047928..0ed0ab3 100644 --- a/customtags/adminui_card.cfm +++ b/customtags/adminui_card.cfm @@ -11,19 +11,21 @@
- - + +
- -
+ + + #encodeForHTML(attributes.title)# - - #encodeForHTML(attributes.description)# - -
-
+ +
+
+ + #encodeForHTML(attributes.description)# +
diff --git a/services/AdminThemeIconService.cfc b/services/AdminThemeIconService.cfc index c1de389..823d3b2 100644 --- a/services/AdminThemeIconService.cfc +++ b/services/AdminThemeIconService.cfc @@ -152,18 +152,29 @@ component { return _notFoundResult(); } - var mapping = _getIconMapping( arguments.requestedName ); + var lookupName = arguments.requestedName; + var mapping = _getIconMapping( lookupName ); + + // Icon classes are sometimes declared with trailing colour/modifier + // classes (e.g. "fa-trash red", "fa-thumbs-up green"). When the full + // string isn't mapped, fall back to the first token so the icon still + // resolves rather than rendering blank. + if ( !Len( Trim( mapping.path ?: "" ) ) && ListLen( lookupName, " " ) > 1 ) { + lookupName = ListFirst( lookupName, " " ); + mapping = _getIconMapping( lookupName ); + } + var filePath = Trim( mapping.path ?: "" ); var iconName = ""; if ( Len( filePath ) ) { iconName = ListFirst( ListLast( Replace( filePath, "\", "/", "all" ), "/" ), "." ); } else { - if ( !REFindNoCase( "^[a-zA-Z0-9\-_]+$", arguments.requestedName ) ) { + if ( !REFindNoCase( "^[a-zA-Z0-9\-_]+$", lookupName ) ) { return _notFoundResult(); } - iconName = arguments.requestedName; + iconName = lookupName; filePath = ( iconBasePath ?: "" ) & "/" & iconName & ".svg"; } diff --git a/views/admin/layout/pages/onboardingChecklist.cfm b/views/admin/layout/pages/onboardingChecklist.cfm index 84726eb..0701ec0 100644 --- a/views/admin/layout/pages/onboardingChecklist.cfm +++ b/views/admin/layout/pages/onboardingChecklist.cfm @@ -1,5 +1,5 @@ - event.include( "/css/admin/altadmintheme/pages/onboarding-checklist/" ); + event.include( "/css/admin/altadmintheme-v2/pages/onboarding-checklist/" );