diff --git a/packages/fluent/scss/index.scss b/packages/fluent/scss/index.scss index 5cf369f5111..016cfd22e6d 100644 --- a/packages/fluent/scss/index.scss +++ b/packages/fluent/scss/index.scss @@ -123,7 +123,7 @@ // Data management @use "grid"; @use "listview"; -// @use "spreadsheet"; +@use "spreadsheet"; @use "pivotgrid"; @use "treelist"; @use "filter"; @@ -282,7 +282,7 @@ // Data management @include grid.styles(); @include listview.styles(); - // @include spreadsheet.styles(); + @include spreadsheet.styles(); @include pivotgrid.styles(); @include treelist.styles(); @include filter.styles(); diff --git a/packages/fluent/scss/spreadsheet/_layout.scss b/packages/fluent/scss/spreadsheet/_layout.scss new file mode 100644 index 00000000000..83e540f6501 --- /dev/null +++ b/packages/fluent/scss/spreadsheet/_layout.scss @@ -0,0 +1,872 @@ +@use "../core/" as *; +@use "_variables.scss" as *; +@use "../menu/_variables.scss"as *; +@use "../toolbar/_variables.scss"as *; +@use "../forms/_variables.scss" as *; +@use "../input/_variables.scss" as *; +@use "../list/_variables.scss" as *; + +@mixin kendo-spreadsheet--layout() { + + // Spreadsheet + .k-spreadsheet { + width: 800px; + height: 600px; + border-width: var( --kendo-spreadsheet-border-width, #{$kendo-spreadsheet-border-width} ); + border-style: solid; + box-sizing: border-box; + outline: 0; + font-family: var( --kendo-spreadsheet-font-family, #{$kendo-spreadsheet-font-family} ); + font-size: var( --kendo-spreadsheet-font-size, #{$kendo-spreadsheet-font-size} ); + line-height: var( --kendo-spreadsheet-line-height, #{$kendo-spreadsheet-line-height} ); + display: flex; + flex-direction: column; + cursor: default; + position: relative; + -webkit-touch-callout: none; + -webkit-tap-highlight-color: $rgba-transparent; + + .k-vertical-align-center { + position: relative; + inset-block-start: 50%; + transform: translateY(-50%); + } + .k-vertical-align-bottom { + position: relative; + inset-block-start: 100%; + transform: translateY( -100% ); + } + + } + + + // Header + .k-spreadsheet .k-tabstrip-wrapper { + border-width: 0 0 1px; + border-style: solid; + border-color: inherit; + position: relative; + } + + + // Quick access toolbar + .k-spreadsheet-quick-access-toolbar { + padding: var( --kendo-toolbar-padding-y, #{$kendo-toolbar-padding-y} ); + display: inline-flex; + flex-direction: row; + position: absolute; + z-index: 2; + inset-block-start: 0; + inset-inline-start: 0; + } + + + // Tabstrip + .k-spreadsheet-tabstrip { + position: relative; + z-index: 1; + } + + .k-spreadsheet-tabstrip .k-tabstrip-items-wrapper { + margin: 0; + } + + .k-spreadsheet-tabstrip .k-loading { + // TODO: better name + display: none; + } + + .k-spreadsheet-tabstrip .k-content, + .k-spreadsheet-tabstrip .k-tabstrip-content { + @include border-radius( 0 ); + padding: 0; + border-width: 0; + overflow: hidden; + } + + + // Toolbar + .k-spreadsheet-toolbar { + border-width: 0; + + + // Tools + [data-tool="backgroundColor"], + [data-tool="textColor"], + [data-tool="borders"], + [data-tool="alignment"], + [data-tool="merge"], + [data-tool="freeze"] { + width: auto; + min-width: var( --kendo-form-line-height-em, #{$kendo-form-line-height-em} ); + } + + .k-color-picker { + width: min-content; + } + } + + + // Action bar + .k-spreadsheet-action-bar { + border-width: 0 0 1px; + border-style: solid; + border-color: inherit; + font-size: 12px; + font-family: Arial, Verdana, sans-serif; + position: relative; + display: flex; + flex-direction: row; + } + .k-spreadsheet-name-editor { + width: 10em; + border-width: 0 1px 0 0; + border-style: solid; + border-color: inherit; + } + .k-spreadsheet-formula-bar { + border-color: inherit; + display: flex; + flex-direction: row; + align-items: center; + flex: 1; + + > .k-i-formula-fx { + padding-inline: var( --kendo-padding-y, #{$kendo-padding-y} ); + padding-block: 0; + box-sizing: content-box; + border-width: 0 1px 0 0; + border-style: solid; + border-color: inherit; + flex-shrink: 0; + } + + .k-tooltip, + .k-group-header, + .k-list-scroller { + display: none; + } + + .k-spreadsheet-formula-input { + padding-inline: var( --kendo-input-padding-x-md, #{$kendo-input-padding-x-md} ); + padding-block: var( --kendo-input-padding-y-md, #{$kendo-input-padding-y-md} ); + line-height: var( --kendo-input-line-height-md, #{$kendo-input-line-height-md} ); + + &.k-spreadsheet-array-formula { + &::before { + content: "{"; + font-weight: 700; + } + &::after { + content: "}"; + font-weight: 700; + } + } + } + } + .k-spreadsheet-formula-input { + outline: 0; + white-space: pre; + flex: 1; + box-sizing: border-box; + + > .k-syntax-func.k-syntax-at-point, + > .k-syntax-bool.k-syntax-at-point, + > .k-syntax-ref.k-syntax-at-point, + > .k-syntax-str.k-syntax-at-point, + > .k-syntax-num.k-syntax-at-point { + text-decoration: underline; + } + + > .k-series-a, + > .k-series-b, + > .k-series-c, + > .k-series-d { + background-color: transparent; + } + } + .k-spreadsheet-formula-list { + min-width: 100px; + + .k-item { + padding-inline: var( --kendo-list-item-padding-x-md, #{$kendo-list-item-padding-x-md} ); + padding-block: var( --kendo-list-item-padding-y-md, #{$kendo-list-item-padding-y-md} ); + } + } + .k-syntax-func, + .k-syntax-startexp { + font-weight: bold; + } + + + // Cell editor + .k-spreadsheet-cell-editor { + padding: 0 3px; + line-height: var( --kendo-spreadsheet-line-height, $kendo-spreadsheet-line-height ); + display: none; + overflow: hidden; + position: absolute; + z-index: 2000; + } + + + // Sheets bar + .k-spreadsheet-sheets-bar { + padding-inline: var( --kendo-spreadsheet-sheets-bar-padding-x, #{$kendo-spreadsheet-sheets-bar-padding-x} ) 0; + padding-block: 0 var( --kendo-spreadsheet-sheets-bar-padding-y, #{$kendo-spreadsheet-sheets-bar-padding-y} ); + border-width: var( --kendo-spreadsheet-border-width, $kendo-spreadsheet-border-width ) 0 0; + border-style: solid; + border-color: inherit; + display: flex; + flex-direction: row; + align-items: flex-start; + position: relative; + } + .k-spreadsheet-sheets-bar-add { + align-self: center; + + &:not(:hover) { + border-color: transparent; + color: inherit; + background: none; + } + } + .k-spreadsheet-sheets-items { + flex: 1; + overflow: hidden; + + .k-tabstrip-items-wrapper { + margin: 0; + border-width: 0; + } + + .k-item { + .k-link { + display: inline-block; + } + + .k-spreadsheet-sheets-remove { + margin-inline-start: var( --kendo-spreadsheet-sheets-remove-inline-start, $kendo-spreadsheet-sheets-remove-inline-start ); + margin-inline-end: ( --kendo-spreadsheet-sheets-remove-inline-end, $kendo-spreadsheet-sheets-remove-inline-end ); + padding: 0; + line-height: 1; + display: inline-flex; + flex-direction: row; + vertical-align: middle; + align-self: center; + } + } + } + + + // Spreadsheet view + // sass-lint:disable no-important + .k-spreadsheet-view { + height: auto !important; + border-color: inherit; + font-size: 12px; + font-family: Arial, Verdana, Sans-serif; + flex: 1; + position: relative; + overflow: hidden; + + // disabled cells in the Spreadsheet should allow navigation if link is used + .k-disabled { + pointer-events: auto; + } + } + // sass-lint:enable no-important + .k-spreadsheet-fixed-container { + width: 100%; + height: 100%; + border-color: inherit; + box-sizing: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + position: absolute; + z-index: 2; + } + .k-spreadsheet-overflow { + position: absolute; + inset: 0; + overflow: hidden; + border-color: inherit; + } + .k-spreadsheet-pane { + padding: 0 1px 0 0; + border-width: 2px 0 0 2px; + border-style: solid; + border-color: inherit; + box-sizing: border-box; + position: absolute; + overflow: hidden; + + @each $side in (top, left) { + &.k-#{$side} { border-#{$side}-width: 0; } + } + + } + .k-spreadsheet-top-corner { + border-width: 0 1px 1px 0; + border-style: solid; + box-sizing: border-box; + position: absolute; + inset-block-start: 0; + inset-inline-start: 0; + z-index: 10000; + + &::after { + content: ""; + display: block; + width: 0; + height: 0; + overflow: hidden; + position: absolute; + inset-block-end: 0; + inset-inline-end: 0; + border: 6px solid transparent; + border-inline-end-color: inherit; + border-block-end-color: inherit; + } + } + .k-spreadsheet-scroller { + width: 100%; + height: 100%; + overflow: scroll; + -webkit-overflow-scrolling: touch; + position: absolute; + z-index: 1; + + @media (hover: none), (pointer: coarse) { + // on touch devices we want this to stay on top. + z-index: 3; + } + } + + + // Grid lines + .k-spreadsheet-haxis, + .k-spreadsheet-vaxis { + border: 0 solid; + border-color: inherit; + position: absolute; + } + .k-spreadsheet-haxis { + border-width: 1px 0 0; + inset-inline-start: 0; + } + .k-spreadsheet-vaxis { + border-width: 0 0 0 1px; + inset-block-start: 0; + } + + + // Row / Column headers + .k-spreadsheet-row-header, + .k-spreadsheet-column-header { + text-align: center; + z-index: 100; + + > div { + position: relative; + box-sizing: border-box; + border-width: 0; + border-style: solid; + border-color: inherit; + + &::after { + content: ""; + border-width: 0; + border-style: solid; + border-color: inherit; + display: none; + position: absolute; + inset: 0; + } + } + } + .k-spreadsheet-row-header { + position: relative; + } + .k-spreadsheet-column-header { + position: absolute; + } + .k-spreadsheet-row-header > div { + border-block-start-width: 1px; + + &:first-child { border-block-start-width: 0; } + } + .k-spreadsheet-row-header > .k-selection-partial, + .k-spreadsheet-row-header > .k-selection-full { + &::after { + border-inline-end-width: 2px; + display: block; + } + } + .k-spreadsheet-column-header > div { + border-inline-start-width: 1px; + + &:first-child { border-inline-start-width: 0; } + } + .k-spreadsheet-column-header > .k-selection-partial, + .k-spreadsheet-column-header > .k-selection-full { + &::after { + border-bottom-width: 2px; + display: block; + } + } + + + // Spreadsheet data + .k-spreadsheet-data { + border-color: inherit; + cursor: cell; + position: relative; + } + + + // Cells + .k-spreadsheet-cell { + padding: 1px; + box-sizing: border-box; + position: absolute; + line-height: normal; + white-space: pre; + overflow: hidden; + } + .k-spreadsheet-merged-cells-wrapers { + position: relative; + } + + + // Selection + .k-spreadsheet .k-selection-wrapper { + position: relative; + cursor: cell; + } + .k-spreadsheet .k-spreadsheet-selection { + border-width: 2px; + border-style: solid; + box-sizing: border-box; + position: absolute; + } + .k-spreadsheet .k-spreadsheet-selection-highlight { + border-width: 1px; + border-style: solid; + box-sizing: border-box; + position: absolute; + } + .k-spreadsheet .k-selection-wrapper .k-spreadsheet-editor-button { + position: absolute; + padding: 0; + z-index: 60; + } + .k-spreadsheet .k-selection-wrapper .k-spreadsheet-editor-button.k-spreadsheet-last-column { + transform: translateX(-100%); + } + + .k-spreadsheet-active-cell { + // sass-lint:disable-block no-important + // always show exact active cell border, regardless of inline cell styles + outline-color: transparent !important; + z-index: 10; + } + + .k-spreadsheet .k-auto-fill-wrapper { + position: relative; + } + .k-spreadsheet .k-auto-fill, + .k-spreadsheet .k-auto-fill-punch, + .k-spreadsheet .k-auto-fill-br-hint { + box-sizing: border-box; + position: absolute; + } + .k-spreadsheet .k-auto-fill { + border-width: 1px; + border-style: solid; + cursor: crosshair; + } + + .k-spreadsheet .k-single-selection {} + .k-spreadsheet .k-single-selection::after { + content: ""; + margin-bottom: -4px; + margin-inline-end: -4px; + width: 6px; + height: 6px; + border-width: 1px; + border-style: solid; + border-radius: 50%; + display: block; + position: absolute; + inset-block-end: 0; + inset-inline-end: 0; + z-index: 100; + cursor: crosshair; + } + + .k-spreadsheet .k-selection-full, + .k-spreadsheet .k-selection-partial { + &::after { + display: none; + } + } + + + // Autofill + .k-spreadsheet .k-autofill-wrapper { + position: relative; + cursor: cell; + } + + + // Border rendering + .k-spreadsheet-vborder { + position: absolute; + border-inline-start-style: solid; + border-inline-start-width: 1px; + } + + .k-spreadsheet-hborder { + position: absolute; + border-block-start-style: solid; + border-block-start-width: 1px; + } + + + // Comments + .k-spreadsheet-has-comment::after { + content: ""; + display: block; + position: absolute; + inset-block-start: 0; + inset-inline-start: auto; + inset-inline-end: 0; + border-width: 3px; + border-style: solid; + } + + // Validation + .k-dirty { + inset-inline-start: 0; + inset-inline-end: auto; + } + + // Filter button + .k-spreadsheet .k-filter-wrapper { + position: relative; + z-index: 50; + } + .k-spreadsheet .k-filter-range { + border-width: 1px; + border-style: solid; + position: absolute; + box-sizing: border-box; + } + .k-spreadsheet-filter { + @include border-radius( $kendo-border-radius ); + line-height: 1; + position: absolute; + cursor: pointer; + + .k-icon { vertical-align: middle; } + } + + + // Filter menu + .k-spreadsheet-filter-menu { + width: 280px; + + .k-animation-container { + position: relative; + } + + > .k-menu, + > .k-menu.k-menu-vertical { + border-width: 0; + + .k-item { + color: inherit; + } + .k-link { + padding-inline-start: var( --filter-menu-padding-left, #{$filter-menu-padding-left} ); + } + .k-icon { + margin-inline-start: calc(-1 * ( var( --kendo-icon-size, 1rem ) + #{$kendo-padding-y} ) ); + margin-inline-end: $kendo-padding-y; + } + + } + + .k-spreadsheet-value-treeview-wrapper { + height: 200px; + border-width: 1px; + border-style: solid; + overflow-y: scroll; + overflow-x: auto; + + .k-treeview { + padding: $kendo-padding-y; + overflow: visible; + } + } + + // Details + .k-details, + .k-expander { + padding: 0; + border-width: 1px 0 0; + border-style: solid; + border-color: inherit; + } + .k-expander { + border: 0; + background: inherit; + } + .k-details-summary, + .k-columnmenu-item { + padding-block: var( --kendo-menu-popup-item-padding-y-md, #{$kendo-menu-popup-item-padding-y-md} ); + padding-inline: var( --kendo-menu-popup-item-padding-x-md, #{$kendo-menu-popup-item-padding-x-md} ); + display: flex; + align-items: center; + cursor: pointer; + + > .k-icon { + margin-inline-end: $kendo-padding-y; + } + } + .k-details-content, + .k-columnmenu-item-content { + padding-inline: var( --kendo-spreadsheet-popup-menu-padding-x, #{$kendo-spreadsheet-popup-menu-padding-x} ); + padding-block: var( --kendo-spreadsheet-popup-menu-padding-y, #{$kendo-spreadsheet-popup-menu-padding-y} ); + display: flex; + flex-flow: column nowrap; + + .k-filter-and { + width: min-content; + align-self: flex-start; + } + + .k-actions { + margin-block-start: map-get( $kendo-spacing, 3 ); + } + } + + .k-actions { + margin: 0; + padding: 0; + } + } + + + .k-spreadsheet-popup { + padding: 0; + + .k-separator { + display: block; + } + + .k-reset-color, + .k-custom-color { + @include border-radius( 0 ); + width: 100%; + border-width: 0; + box-sizing: border-box; + display: flex; + } + .k-reset-color { border-block-end-width: 1px; } + .k-custom-color { border-block-start-width: 1px; } + .k-spreadsheet-border-type-palette { + width: 12.5rem; + height: 5rem; + display: flex; + flex-flow: row wrap; + align-content: space-around; + justify-content: space-around; + } + + } + + .k-spreadsheet-format-popup { + .k-item { justify-content: space-between; } + .k-spreadsheet-sample { order: 1; } + } + .k-spreadsheet-sample { + opacity: .7; + } + + .k-spreadsheet-clipboard, + .k-spreadsheet-clipboard-paste { + margin: 0; + padding: 0; + width: 1px; + height: 1px; + border: 0; + opacity: 0; + position: absolute; + inset-block-start: 0; + inset-inline-end: 0; + overflow: hidden; + } + + .k-spreadsheet-window {} + .k-spreadsheet-window .k-edit-form-container { + width: auto; + min-width: 0; + } + + // Format preview window + .k-spreadsheet-format-cells { + + .k-spreadsheet-preview { + margin-block-start: map-get( $kendo-spacing, 2 ); + text-align: center; + } + + .k-list-scroller { + margin-block-start: map-get( $kendo-spacing, 2 ); + height: 210px; + border-width: 1px; + border-style: solid; + border-color: inherit; + } + } + + + // Export dialog + .k-export-config { + clear: both; + position: relative; + + &::after { + content: ""; + clear: both; + display: block; + } + + + .k-edit-field { + margin-inline-start: 5%; + width: 45%; + float: inline-start; + } + + .k-page-orientation { + position: absolute; + inset-inline-end: 0; + inset-block-start: map-get( $kendo-spacing, 2 ); + + .k-icon { + font-size: 6em; + } + } + } + + // Insert comment dialog + .k-spreadsheet-insert-comment textarea { + height: auto; + } + + // Insert image dialog + .k-spreadsheet-insert-image-dialog { + @include border-radius( var( --kendo-spreadsheet-insert-image-dialog-preview-border-radius, #{$kendo-spreadsheet-insert-image-dialog-preview-border-radius} ) ); + border-style: var( --kendo-spreadsheet-insert-image-dialog-border-style, #{$kendo-spreadsheet-insert-image-dialog-border-style} ); + border-width: var( --kendo-spreadsheet-insert-image-dialog-border-width, #{$kendo-spreadsheet-insert-image-dialog-border-width} ); + + label { + display: flex; + justify-content: center; + min-width: 100%; + width: var( --kendo-spreadsheet-insert-image-dialog-preview-width, #{$kendo-spreadsheet-insert-image-dialog-preview-width} ); + height: var( --kendo-spreadsheet-insert-image-dialog-preview-height, #{$kendo-spreadsheet-insert-image-dialog-preview-height} ); + background-image: var( --kendo-spreadsheet-insert-image-dialog-img, #{$kendo-spreadsheet-insert-image-dialog-img} ); + background-size: auto 70%; + background-position: 50% 30%; + background-repeat: no-repeat; + + div { + display: flex; + align-self: flex-end; + margin-bottom: var( --kendo-spreadsheet-insert-image-dialog-text-margin-bottom, #{$kendo-spreadsheet-insert-image-dialog-text-margin-bottom} ); + pointer-events: none; + } + + input { + display: none; + } + } + + .k-spreadsheet-has-image { + background-size: auto 90%; + background-position: 50% 50%; + + &:hover div, + &.k-hover div { + margin: 0; + align-self: center; + opacity: 1; + } + + div { + opacity: 0; + } + } + } + + .k-spreadsheet-drawing { + position: absolute; + box-sizing: border-box; + z-index: 101; + + &.k-spreadsheet-active-drawing { + outline-style: var( --kendo-spreadsheet-drawing-outline-style, #{$kendo-spreadsheet-drawing-outline-style} ); + outline-width: var( --kendo-spreadsheet-drawing-outline-width, #{$kendo-spreadsheet-drawing-outline-width} ); + } + + .k-spreadsheet-drawing-image { + position: absolute; + inset-block-start: 0; + inset-inline-start: 0; + width: 100%; + height: 100%; + background-position: 50% 50%; + background-size: 100% 100%; + background-repeat: no-repeat; + cursor: move; + } + + .k-spreadsheet-drawing-handle { + width: var( --kendo-spreadsheet-drawing-handle-width, #{$kendo-spreadsheet-drawing-handle-width} ); + height: var( --kendo-spreadsheet-drawing-handle-height, #{$kendo-spreadsheet-drawing-handle-height} ); + border-style: var( --kendo-spreadsheet-drawing-handle-border-style, #{$kendo-spreadsheet-drawing-handle-border-style} ); + border-width: var( --kendo-spreadsheet-drawing-handle-border-width, #{$kendo-spreadsheet-drawing-handle-border-width} ); + border-radius: var( --kendo-spreadsheet-drawing-handle-border-radius, #{$kendo-spreadsheet-drawing-handle-border-radius} ); + position: absolute; + transform: translate(-50%, -50%); + + // sass-lint:disable class-name-format, one-declaration-per-line + &.N { inset-inline-start: 50%; inset-block-start: 0; cursor: ns-resize; } + &.NE { inset-inline-start: 100%; inset-block-start: 0; cursor: nesw-resize; } + &.E { inset-inline-start: 100%; inset-block-start: 50%; cursor: ew-resize; } + &.SE { inset-inline-start: 100%; inset-block-start: 100%; cursor: nwse-resize; } + &.S { inset-inline-start: 50%; inset-block-start: 100%; cursor: ns-resize; } + &.SW { inset-inline-start: 0; inset-block-start: 100%; cursor: nesw-resize; } + &.W { inset-inline-start: 0; inset-block-start: 50%; cursor: ew-resize; } + &.NW { inset-inline-start: 0; inset-block-start: 0; cursor: nwse-resize; } + // sass-lint:enable class-name-format, one-declaration-per-line + } + + .k-spreadsheet-insert-image-dialog { + .k-spreadsheet-has-image { + &:hover, + &.k-hover { + border-radius: var( --kendo-spreadsheet-insert-image-dialog-preview-overlay-border-radius, #{$kendo-spreadsheet-insert-image-dialog-preview-overlay-border-radius} ); + } + } + } + } +} + + diff --git a/packages/fluent/scss/spreadsheet/_theme.scss b/packages/fluent/scss/spreadsheet/_theme.scss new file mode 100644 index 00000000000..131792808c2 --- /dev/null +++ b/packages/fluent/scss/spreadsheet/_theme.scss @@ -0,0 +1,254 @@ +@use "../core/" as *; +@use "../core/mixins" as *; +@use "_variables.scss" as *; +@use "../list/_variables.scss"as *; + +@mixin kendo-spreadsheet--theme() { +// Spreadsheet +.k-spreadsheet { + @include fill( + var( --kendo-spreadsheet-text, #{$kendo-spreadsheet-text} ), + var( --kendo-spreadsheet-bg, #{$kendo-spreadsheet-bg} ), + var( --kendo-spreadsheet-border, #{$kendo-spreadsheet-border} ) + ); +} + + +// Header +.k-spreadsheet .k-tabstrip-wrapper {} + + +// Quick access toolbar +.k-spreadsheet-quick-access-toolbar {} + + +// Row / column headers +.k-spreadsheet-top-corner, +.k-spreadsheet-row-header, +.k-spreadsheet-column-header { + @include fill( + var( --kendo-spreadsheet-header-text, #{$kendo-spreadsheet-header-text} ), + var( --kendo-spreadsheet-header-bg, #{$kendo-spreadsheet-header-bg} ), + var( --kendo-spreadsheet-header-border, #{$kendo-spreadsheet-header-border} ) + ); +} + + +// Formula bar +.k-spreadsheet-formula-list {} +.k-syntax-ref { color: #ff8822; } +.k-syntax-num { color: #0099ff; } +.k-syntax-str { color: #38b714; } +.k-syntax-error { color: red; } +.k-syntax-bool { color: #a9169c; } +.k-syntax-paren-match { background-color: #caf200; } + + +// Cell editor +.k-spreadsheet-cell-editor { + color: var( --kendo-spreadsheet-text, #{$kendo-spreadsheet-text} ); + background-color: var( --kendo-spreadsheet-bg, #{$kendo-spreadsheet-bg} ); +} + + +// Cells +.k-spreadsheet-merged-cell { + background-color: var( --kendo-spreadsheet-bg, #{$kendo-spreadsheet-bg} ); +} + + +// Selection +.k-spreadsheet .k-selection-full, +.k-spreadsheet .k-selection-partial { + // TODO: consider extracting variables + background-color: var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); +} +.k-spreadsheet-selection { + border-color: var( --kendo-spreadsheet-selected-border, #{$kendo-spreadsheet-selected-border} ); + background-color: var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); + box-shadow: inset 0 0 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); +} +.k-spreadsheet .k-single-selection::after { + border-color: var( --kendo-spreadsheet-border, #{$kendo-spreadsheet-border} ); + background-color: var( --kendo-spreadsheet-selected-border, #{$kendo-spreadsheet-selected-border} ); +} +.k-spreadsheet-active-cell { + box-shadow: inset 0 0 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); + background-color: var( --kendo-spreadsheet-bg, #{$kendo-spreadsheet-bg} ); + + &.k-right { + box-shadow: inset 0 0 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ), inset -1px 0 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); + } + + &.k-bottom { + box-shadow: inset 0 0 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ), inset 0 -1px 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); + } + + &.k-bottom.k-right { + box-shadow: inset 0 0 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ), inset -1px -1px 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); + } +} + +.k-spreadsheet .k-auto-fill { + border-color: var( --kendo-spreadsheet-selected-border, #{$kendo-spreadsheet-selected-border} ); + background-color: var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); + box-shadow: inset 0 0 0 1px var( --kendo-spreadsheet-selected-bg, #{$kendo-spreadsheet-selected-bg} ); +} +.k-spreadsheet .k-auto-fill-punch { + background-color: var( --kendo-spreadsheet-bg, #{$kendo-spreadsheet-bg} ); +} + + +// Resize handle +.k-spreadsheet .k-resize-handle, +.k-spreadsheet .k-resize-hint-handle, +.k-spreadsheet .k-resize-hint-marker { + background-color: var( --kendo-spreadsheet-primary-bg, #{$kendo-spreadsheet-primary-bg} ); +} + +// Comments +.k-spreadsheet-has-comment::after { + border-color: var( --kendo-spreadsheet-primary-border, #{$kendo-spreadsheet-primary-border} ) var( --kendo-spreadsheet-primary-border, #{$kendo-spreadsheet-primary-border} ) transparent transparent; +} + +// Validation +.k-dirty { + border-color: var( --kendo-spreadsheet-error-border, #{$kendo-spreadsheet-error-border} ) transparent transparent var( --kendo-spreadsheet-error-border, #{$kendo-spreadsheet-error-border} ); +} + +} + + + + +// Filter button +.k-spreadsheet .k-filter-range { + border-color: var( --kendo-spreadsheet-primary-border, #{$kendo-spreadsheet-primary-border} ); +} +.k-spreadsheet-filter { + @include fill( + var( --kendo-spreadsheet-filter-button-text, #{$kendo-spreadsheet-filter-button-text} ), + var( --kendo-spreadsheet-filter-button-bg, #{$kendo-spreadsheet-filter-button-bg} ), + var( --kendo-spreadsheet-filter-button-border, #{$kendo-spreadsheet-filter-button-border} ) + ); + box-shadow: inset 0 0 0 1px var( --kendo-spreadsheet-filter-button-border, #{$kendo-spreadsheet-filter-button-border} ); + + &:hover { + @include fill( + var( --kendo-spreadsheet-filter-button-hover-text, #{$kendo-spreadsheet-filter-button-hover-text} ), + var( --kendo-spreadsheet-filter-button-hover-bg, #{$kendo-spreadsheet-filter-button-hover-bg} ), + var( --kendo-spreadsheet-filter-button-hover-border, #{$kendo-spreadsheet-filter-button-hover-border} ) + ); + } + + &.k-active { + @include fill( + var( --kendo-spreadsheet-filter-button-active-text, #{$kendo-spreadsheet-filter-button-active-text} ), + var( --kendo-spreadsheet-filter-button-active-bg, #{$kendo-spreadsheet-filter-button-active-bg} ), + var( --kendo-spreadsheet-filter-button-active-border, #{$kendo-spreadsheet-filter-button-active-border} ) + ); + } + +} + +.k-spreadsheet-value-treeview-wrapper { + @include fill( + var( --kendo-spreadsheet-text, #{$kendo-spreadsheet-text} ), + var( --kendo-spreadsheet-bg, #{$kendo-spreadsheet-bg} ), + var( --kendo-spreadsheet-border, #{$kendo-spreadsheet-border} ) + ); +} + +// Filter menu +.k-spreadsheet-filter-menu { + + > .k-menu, + > .k-menu:not(.k-context-menu) { + + .k-item:hover, + .k-item.k-hover { + @include fill( + var( --kendo-list-item-hover-text, #{$kendo-list-item-hover-text} ), + var( --kendo-list-item-hover-bg, #{$kendo-list-item-hover-bg} ) + ); + } + } + + .k-columnmenu-item > .k-icon:first-child { + color: var( --kendo-spreadsheet-filter-menu-icon-color, #{$kendo-spreadsheet-filter-menu-icon-color} ); + } +} + + + + +.k-spreadsheet-popup { + + // Buttons + .k-button {} + + .k-button:hover, + .k-button.k-hover { + @include fill( + var( --kendo-list-item-hover-text, #{$kendo-list-item-hover-text} ), + var( --kendo-list-item-hover-bg, #{$kendo-list-item-hover-bg} ) + ); + } + .k-button:active, + .k-button.k-active, + .k-button.k-selected { + @include fill( + var( --kendo-list-item-selected-text, #{$kendo-list-item-selected-text} ), + var( --kendo-list-item-selected-bg, #{$kendo-list-item-selected-bg} ) + ); + } + +} + + + +.k-spreadsheet-insert-image-dialog { + border-color: var( --kendo-spreadsheet-insert-image-dialog-preview-border, #{$kendo-spreadsheet-insert-image-dialog-preview-border} ); + + .k-spreadsheet-has-image { + &:hover, + &.k-hover { + box-shadow: var( --kendo-spreadsheet-insert-image-dialog-preview-overlay-shadow, #{$kendo-spreadsheet-insert-image-dialog-preview-overlay-shadow} ); + } + + &:hover div, + &.k-hover div { + color: var( --kendo-spreadsheet-insert-image-dialog-overlay-hovered-text, #{$kendo-spreadsheet-insert-image-dialog-overlay-hovered-text} ); + } + } +} + +.k-spreadsheet-drawing { + &.k-spreadsheet-active-drawing { + outline-color: var( --kendo-spreadsheet-drawing-handle-outline-color, #{$kendo-spreadsheet-drawing-handle-outline-color} ); + } + + .k-spreadsheet-drawing-handle { + border-color: var( --kendo-spreadsheet-drawing-handle-border-color, #{$kendo-spreadsheet-drawing-handle-border-color} ); + background-color: var( --kendo-spreadsheet-drawing-handle-bg, #{$kendo-spreadsheet-drawing-handle-bg} ); + } +} + +.k-spreadsheet-drawing-anchor-cell { + background: var( --kendo-spreadsheet-drawing-anchor-bg, #{$kendo-spreadsheet-drawing-anchor-bg} ); +} + + +.k-rtl .k-spreadsheet, +.k-spreadsheet[dir="rtl"], +[dir="rtl"] .k-spreadsheet { + + .k-spreadsheet-has-comment::after { + border-color: var( --kendo-spreadsheet-primary-border, #{$kendo-spreadsheet-primary-border} ) transparent transparent var( --kendo-spreadsheet-primary-border, #{$kendo-spreadsheet-primary-border} ); + } + + .k-dirty { + border-color: var( --kendo-spreadsheet-error-border, #{$kendo-spreadsheet-error-border} ) var( --kendo-spreadsheet-error-border, #{$kendo-spreadsheet-error-border} ) transparent transparent; + } + +} diff --git a/packages/fluent/scss/spreadsheet/_variables.scss b/packages/fluent/scss/spreadsheet/_variables.scss new file mode 100644 index 00000000000..5dd9c154eba --- /dev/null +++ b/packages/fluent/scss/spreadsheet/_variables.scss @@ -0,0 +1,191 @@ +@use "sass:map"; +@use "../core/" as *; +@use "../core/color-system" as *; +@use "../table/_variables.scss" as *; +@use "sass:color"; + +/// Width of the border around the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-border-width: map-get( $kendo-spacing, hair ) !default; +/// Font family of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-font-family: var( --kendo-font-family, initial ) !default; +/// Font size of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-font-size: var( --kendo-font-size, initial ) !default; +/// Line height of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-line-height: var( --kendo-line-height, initial ) !default; + +/// Horizontal padding of the spreadsheet popup menu. +/// @group spreadsheet +$kendo-spreadsheet-popup-menu-padding-x: map-get( $kendo-spacing, 3 ) !default; +/// Vertical padding of the spreadsheet popup menu. +/// @group spreadsheet +$kendo-spreadsheet-popup-menu-padding-y: $kendo-spreadsheet-popup-menu-padding-x !default; + +/// Horizontal padding of the spreadsheet sheets bar. +/// @group spreadsheet +$kendo-spreadsheet-sheets-bar-padding-x: map-get( $kendo-spacing, 1 ) !default; +/// Vertical padding of the spreadsheet sheets bar. +/// @group spreadsheet +$kendo-spreadsheet-sheets-bar-padding-y: 0 !default; + +/// Horizontal margin of the spreadsheet sheets remove. +/// @group spreadsheet +$kendo-spreadsheet-sheets-remove-inline-start: calc( map-get( $kendo-spacing, 2 ) * -1 ) !default; +/// Vertical margin of the spreadsheet sheets remove. +/// @group spreadsheet +$kendo-spreadsheet-sheets-remove-inline-end: map-get( $kendo-spacing, 2 ) !default; + +/// Left padding of the spreadsheet sheets menu. +/// @group spreadsheet +$filter-menu-padding-left: calc( var( --kendo-icon-size, 1rem ) + 2 * var( --kendo-padding-y, #{$kendo-padding-y} ) ); + +/// Background color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-bg: var( --kendo-component-bg, initial ) !default; +/// Text color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-text: var( --kendo-component-text, initial ) !default; +/// Border color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-border: var( --kendo-component-border, initial ) !default; +/// Primary border color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-primary-border: get-theme-color-var( primary-100 ) !default; +/// Primary background color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-primary-bg: get-theme-color-var( primary-100 ) !default; + +/// Text color of the spreadsheet header. +/// @group spreadsheet +$kendo-spreadsheet-header-text: $kendo-table-header-text !default; +/// Background color of the spreadsheet header. +/// @group spreadsheet +$kendo-spreadsheet-header-bg: $kendo-table-header-bg !default; +/// Border color of the spreadsheet header. +/// @group spreadsheet +$kendo-spreadsheet-header-border: $kendo-table-header-border !default; + +/// Selected text color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-selected-text: get-theme-color-var( primary-160 ) !default; +/// Selected background color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-selected-bg: get-theme-color-var( primary-30 ) !default; +/// Selected border color of the spreadsheet. +/// @group spreadsheet +$kendo-spreadsheet-selected-border: get-theme-color-var( primary-100 ) !default; + +/// Text color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-text: get-theme-color-var( neutral-160 ) !default; +/// Background color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-bg: $white; +/// Border color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-border: get-theme-color-var( neutral-110 ) !default; + +/// Hover text color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-hover-text: get-theme-color-var( neutral-190 ) !default; +/// Hover background color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-hover-bg: get-theme-color-var( neutral-20 ) !default; +/// Hover border color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-hover-border: get-theme-color-var( neutral-110 ) !default; + +/// Active text color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-active-text: get-theme-color-var( neutral-190 ) !default; +/// Active background color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-active-bg: get-theme-color-var( neutral-30 ) !default; +/// Active border color of the spreadsheet filter button. +/// @group spreadsheet +$kendo-spreadsheet-filter-button-active-border: get-theme-color-var( neutral-110 ) !default; + +/// Color of the spreadsheet menu icon. +/// @group spreadsheet +$kendo-spreadsheet-filter-menu-icon-color: get-theme-color-var( primary-100 ) !default; + +/// Border color of the spreadsheet error. +/// @group spreadsheet +$kendo-spreadsheet-error-border: get-theme-color-var( error-190 ) !default; + +/// Border style of the spreadsheet image dialog. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-border-style: dashed !default; +/// Border width of the spreadsheet image dialog. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-border-width: map-get( $kendo-spacing, thin ) !default; +/// Bottom margin of the spreadsheet image dialog. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-text-margin-bottom: 30px !default; +/// Width of the spreadsheet image dialog preview. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-preview-width: 355px !default; +/// Height of the spreadsheet image dialog preview. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-preview-height: 230px !default; +/// Image of the spreadsheet image dialog preview. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-preview-img: "image-fluent.png" !default; +/// Border of the spreadsheet image dialog preview. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-preview-border: var( --kendo-component-border, initial ) !default; +/// Border radius of the spreadsheet image dialog preview. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-preview-border-radius: var( --kendo-border-radius-md, initial ) !default; +/// Shadow of the spreadsheet image dialog preview. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-preview-overlay-shadow: inset 0 0 0 2000px rgba(0, 0, 0, .5) !default; +/// Border radius of the spreadsheet image dialog preview overlay. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-preview-overlay-border-radius: var( --kendo-border-radius-md, initial ) !default; +/// Hover text color of the spreadsheet image dialog preview. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-overlay-hovered-text: var( --kendo-component-bg, initial ) !default; + +/// Width of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-width: calc( map-get( $kendo-spacing, 1 ) + map-get( $kendo-spacing, thin ) ) !default; +/// Height of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-height: calc( map-get( $kendo-spacing, 1 ) + map-get( $kendo-spacing, thin ) ) !default; +/// Border style of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-border-style: solid !default; +/// Border width of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-border-width: map-get( $kendo-spacing, hair ) !default; +/// Border color of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-border-color: var( --kendo-selected-bg, initial ) !default; +/// Outline color of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-outline-color: get-theme-color-var( primary-100 ) !default; +/// Border color of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-bg: get-theme-color-var( primary-100 ) !default; +/// Border radius of the spreadsheet drawing handle. +/// @group spreadsheet +$kendo-spreadsheet-drawing-handle-border-radius: var( --kendo-border-radius-lg, initial ) !default; + +/// Outline style of the spreadsheet drawing. +/// @group spreadsheet +$kendo-spreadsheet-drawing-outline-style: solid !default; +/// Outline width of the spreadsheet drawing. +/// @group spreadsheet +$kendo-spreadsheet-drawing-outline-width: map-get( $kendo-spacing, thin ) !default; + +/// Bacground color of the spreadsheet drawing anchor. +/// @group spreadsheet +$kendo-spreadsheet-drawing-anchor-bg: $kendo-spreadsheet-selected-bg !default; + +/// Image of the spreadsheet insert image dialog. +/// @group spreadsheet +$kendo-spreadsheet-insert-image-dialog-img: url( "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcwAAAGQCAYAAAAjl1AKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphMGVmMzZmZi04YmI1LTRlN2YtOTcwMS04OTU5ZTg1N2ZhY2MiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDNDOTBDNUQ2OUJGMTFFOTkwMzY4RTI3NjZBQTdENkMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDNDOTBDNUM2OUJGMTFFOTkwMzY4RTI3NjZBQTdENkMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpjMmZmZjM0Mi05NjEyLTQwM2YtYWZhYS01MTE1ZjQ2NThmMWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDphYjlhMmUwMy1kNmIwLTY3NGMtODc4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" ); diff --git a/packages/fluent/scss/spreadsheet/index.scss b/packages/fluent/scss/spreadsheet/index.scss new file mode 100644 index 00000000000..e7d1befc445 --- /dev/null +++ b/packages/fluent/scss/spreadsheet/index.scss @@ -0,0 +1,41 @@ +// Module meta +$_kendo-module-meta: ( + name: "spreadsheet", + dependencies: ( + "button", + "checkbox", + "radio", + "colorpicker", + "combobox", + "datetimepicker", + "dropdownlist", + "toolbar", + "upload", + "menu", + "forms", + "input", + "window", + "tabstrip", + "treeview", + "icon", + "list" + ) +); + + +// Component +@forward "_variables.scss"; +@use "_layout.scss" as *; +@use "_theme.scss" as *; + +// Register +@use "../core/module-system/" as module; +@include module.register( $_kendo-module-meta... ); + +// Expose +@mixin styles() { + @include module.render( "spreadsheet" ) { + @include kendo-spreadsheet--layout(); + @include kendo-spreadsheet--theme(); + } +}