2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 03:29:00 +00:00

Merge pull request #720 from frappe/espresso-colors

chore: use Espresso (Frappe design system) colors + few fixes
This commit is contained in:
Alan 2023-09-12 02:39:54 -07:00 committed by GitHub
commit 3da066cd87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 189 additions and 121 deletions

View File

@ -1,83 +1,89 @@
{
"black": "#1E293B",
"gray": {
"25": "#fcfcfd",
"50": "#f8f9fc",
"100": "#f2f4f8",
"200": "#ebeff5",
"300": "#e2e8f0",
"400": "#cad5e2",
"500": "#9aa8bc",
"600": "#8493a9",
"700": "#64748b",
"800": "#475569",
"900": "#334155"
"25": "#FBFBFB",
"50": "#F8F8F8",
"100": "#F3F3F3",
"200": "#EDEDED",
"300": "#E2E2E2",
"400": "#C7C7C7",
"500": "#999999",
"600": "#7C7C7C",
"700": "#525252",
"800": "#383838",
"900": "#171717"
},
"red": {
"100": "#fff5f5",
"200": "#fed7d7",
"300": "#feb2b2",
"400": "#fc8181",
"500": "#f56565",
"600": "#e53e3e",
"700": "#c53030",
"800": "#9b2c2c",
"900": "#742a2a"
"50": "#FFF7F7",
"100": "#FFF0F0",
"200": "#FCD7D7",
"300": "#F9C6C6",
"400": "#EB9091",
"500": "#E03636",
"600": "#CC2929",
"700": "#B52A2A",
"800": "#941F1F",
"900": "#6B1515"
},
"orange": {
"100": "#fffaf0",
"200": "#feebc8",
"300": "#fbd38d",
"400": "#f6ad55",
"500": "#ed8936",
"600": "#dd6b20",
"700": "#c05621",
"800": "#9c4221",
"900": "#7b341e"
"50": "#FFF9F5",
"100": "#FFF1E7",
"200": "#FCE6D5",
"300": "#F7D6BD",
"400": "#F0B58B",
"500": "#E86C13",
"600": "#D45A08",
"700": "#BD3E0C",
"800": "#9E3513",
"900": "#6B2711"
},
"yellow": {
"100": "#fffff0",
"200": "#fefcbf",
"300": "#faf089",
"400": "#f6e05e",
"500": "#ecc94b",
"600": "#d69e2e",
"700": "#b7791f",
"800": "#975a16",
"900": "#744210"
"50": "#FFFCEF",
"100": "#FFF7D3",
"200": "#F7E9A8",
"300": "#F5E171",
"400": "#F2D14B",
"500": "#EDBA13",
"600": "#D1930D",
"700": "#AB6E05",
"800": "#8C5600",
"900": "#733F12"
},
"green": {
"100": "#f0fff4",
"200": "#c6f6d5",
"300": "#9ae6b4",
"400": "#68d391",
"500": "#48bb78",
"600": "#38a169",
"700": "#2f855a",
"800": "#276749",
"900": "#22543d"
"50": "#F3FCF5",
"100": "#E4F5E9",
"200": "#DAF0E1",
"300": "#CAE5D4",
"400": "#B6DEC5",
"500": "#59BA8B",
"600": "#30A66D",
"700": "#278F5E",
"800": "#16794C",
"900": "#173B2C"
},
"teal": {
"100": "#e6fffa",
"200": "#b2f5ea",
"300": "#81e6d9",
"400": "#4fd1c5",
"500": "#38b2ac",
"600": "#319795",
"700": "#2c7a7b",
"800": "#285e61",
"900": "#234e52"
"50": "#F0FDFA",
"100": "#E6F7F4",
"200": "#BAE8E1",
"300": "#97DED4",
"400": "#73D1C4",
"500": "#36BAAD",
"600": "#0B9E92",
"700": "#0F736B",
"800": "#115C57",
"900": "#114541"
},
"blue": {
"100": "#e5f3ff",
"200": "#cce7ff",
"300": "#99d0ff",
"400": "#66b8ff",
"500": "#33a1ff",
"600": "#2490ef",
"700": "#006ecc",
"800": "#005299",
"900": "#003766"
"50": "#F7FBFD",
"100": "#EDF6FD",
"200": "#E3F1FD",
"300": "#C9E7FC",
"400": "#70B6F0",
"500": "#33A1FF",
"600": "#007BE0",
"700": "#0070CC",
"800": "#005CA3",
"900": "#004880"
},
"indigo": {
"100": "#ebf4ff",
@ -91,25 +97,63 @@
"900": "#3c366b"
},
"purple": {
"100": "#faf5ff",
"200": "#e9d8fd",
"300": "#d6bcfa",
"400": "#b794f4",
"500": "#9f7aea",
"600": "#805ad5",
"700": "#6b46c1",
"800": "#553c9a",
"900": "#44337a"
"50": "#FDFAFF",
"100": "#F9F0FF",
"200": "#F1E5FA",
"300": "#E9D6F5",
"400": "#D6C1E6",
"500": "#9C45E3",
"600": "#8642C2",
"700": "#6E399D",
"800": "#5C2F83",
"900": "#401863"
},
"pink": {
"100": "#fdf7f8",
"200": "#fbeef1",
"300": "#f7dee5",
"400": "#eec3d2",
"500": "#df9eb8",
"600": "#cf82a7",
"700": "#ac688b",
"800": "#8f5b79",
"900": "#70485f"
"50": "#FFF7FC",
"100": "#FEEEF8",
"200": "#F8E2F0",
"300": "#F2D4E6",
"400": "#E9C4DA",
"500": "#DF9EB8",
"600": "#CF3A96",
"700": "#9C2671",
"800": "#801458",
"900": "#570F3E"
},
"violet": {
"50": "#FBFAFF",
"100": "#F5F2FF",
"200": "#E5E1FA",
"300": "#DAD2F7",
"400": "#BDB1F0",
"500": "#6846E3",
"600": "#5F46C7",
"700": "#4F3DA1",
"800": "#392980",
"900": "#251959"
},
"cyan": {
"50": "#F5FBFC",
"100": "#E0F8FF",
"200": "#B3ECFC",
"300": "#94E6FF",
"400": "#6BD3F2",
"500": "#34BAE3",
"600": "#32A4C7",
"700": "#267A94",
"800": "#125C73",
"900": "#164759"
},
"amber": {
"50": "#FDFAED",
"100": "#FCF3CF",
"200": "#F7E28D",
"300": "#F5D261",
"400": "#F2BE3A",
"500": "#E79913",
"600": "#DB7706",
"700": "#B35309",
"800": "#91400D",
"900": "#763813"
}
}

View File

@ -1905,10 +1905,13 @@
},
"Suriname": {
"code": "sr",
"currency": "SRD",
"currency_fraction": "Cent",
"currency_fraction_units": 100,
"currency_name": "Surinamese Dollar",
"currency_symbol": "$",
"timezones": ["America/Paramaribo"]
"timezones": ["America/Paramaribo"],
"locale": "nl-SR"
},
"Svalbard and Jan Mayen": {
"code": "sj"

View File

@ -40,7 +40,7 @@ export default defineComponent({
return {
'opacity-50 cursor-not-allowed pointer-events-none': this.disabled,
'text-white': this.type === 'primary',
'bg-blue-500': this.type === 'primary' && this.background,
'bg-black': this.type === 'primary' && this.background,
'text-gray-700': this.type !== 'primary',
'bg-gray-200': this.type !== 'primary' && this.background,
'h-8': this.background,

View File

@ -5,7 +5,7 @@
<PageHeader
v-if="showHeader"
:title="title"
:border="useFullWidth"
:border="false"
:searchborder="searchborder"
>
<template #left>
@ -19,7 +19,7 @@
class="flex flex-col self-center h-full overflow-auto bg-white"
:class="
useFullWidth
? 'w-full'
? 'w-full border-t'
: 'w-form border rounded-lg shadow-lg mb-4 mx-4'
"
>

View File

@ -6,10 +6,10 @@ export default {
props: ['active'],
computed: {
lightColor() {
return this.active ? uicolors.blue['300'] : uicolors.gray['500'];
return this.active ? uicolors.gray['600'] : uicolors.gray['400'];
},
darkColor() {
return this.active ? uicolors.blue['500'] : uicolors.gray['700'];
return this.active ? uicolors.gray['800'] : uicolors.gray['600'];
},
},
};

View File

@ -7,6 +7,7 @@
<!-- Loading Continer -->
<div
class="
border
text-gray-900
shadow-lg
px-3
@ -33,7 +34,7 @@
<!-- Loading Bar -->
<div
v-if="percent >= 0"
class="h-3 rounded bg-blue-400"
class="h-3 rounded bg-gray-800"
:style="{ width: `${percent * 100}%` }"
></div>
</div>

View File

@ -41,13 +41,16 @@
<hr v-if="suggestions.length" />
<!-- Search List -->
<div :style="`max-height: ${49 * 6 - 1}px`" class="overflow-auto">
<div
:style="`max-height: ${49 * 6 - 1}px`"
class="overflow-auto custom-scroll"
>
<div
v-for="(si, i) in suggestions"
:key="`${i}-${si.label}`"
:data-index="`search-suggestion-${i}`"
class="hover:bg-gray-50 cursor-pointer"
:class="idx === i ? 'border-blue-500 bg-gray-50 border-s-4' : ''"
:class="idx === i ? 'border-gray-700 bg-gray-50 border-s-4' : ''"
@click="select(i)"
>
<!-- Search List Item -->
@ -57,7 +60,7 @@
>
<div class="flex items-center">
<p
:class="idx === i ? 'text-blue-600' : 'text-gray-900'"
:class="idx === i ? 'text-gray-900' : 'text-gray-700'"
:style="idx === i ? 'margin-left: -4px' : ''"
>
{{ si.label }}

View File

@ -33,7 +33,7 @@
class="px-4 flex items-center cursor-pointer hover:bg-gray-100 h-10"
:class="
isGroupActive(group) && !group.items
? 'bg-gray-100 border-s-4 border-blue-500'
? 'bg-gray-100 border-s-4 border-gray-800'
: ''
"
@click="routeToSidebarItem(group)"
@ -47,8 +47,8 @@
:class="isGroupActive(group) && !group.items ? '-ms-1' : ''"
/>
<div
class="ms-2 text-lg text-gray-900"
:class="isGroupActive(group) && !group.items && 'text-blue-600'"
class="ms-2 text-lg text-gray-700"
:class="isGroupActive(group) && !group.items && 'text-gray-900'"
>
{{ group.label }}
</div>
@ -60,7 +60,7 @@
v-for="item in group.items"
:key="item.label"
class="
text-base text-gray-800
text-base
h-10
ps-10
cursor-pointer
@ -70,8 +70,8 @@
"
:class="
isItemActive(item)
? 'bg-gray-100 text-blue-600 border-s-4 border-blue-500'
: ''
? 'bg-gray-100 text-gray-900 border-s-4 border-gray-800'
: 'text-gray-700'
"
@click="routeToSidebarItem(item)"
>

View File

@ -570,6 +570,16 @@ function getTemplateFields(
];
const fields: TemplateField[] = [];
const targetSchemaFieldMap =
fyo.schemaMap[importer.schemaName]?.fields.reduce((acc, f) => {
if (!(f as TargetField).target) {
return acc;
}
acc[f.fieldname] = f;
return acc;
}, {} as Record<string, Field>) ?? {};
while (schemas.length) {
const { schema, parentSchemaChildField } = schemas.pop() ?? {};
if (!schema) {
@ -608,6 +618,14 @@ function getTemplateFields(
tf.required = false;
}
if (
schema.isChild &&
tf.required &&
!targetSchemaFieldMap[tf.schemaName ?? '']?.required
) {
tf.required = false;
}
const schemaName = schema.name;
const schemaLabel = schema.label;
const fieldKey = `${schema.name}.${field.fieldname}`;

View File

@ -157,6 +157,7 @@ import { AccountRootType, AccountType } from 'models/baseModels/Account/types';
import { TreeViewSettings } from 'fyo/model/types';
import { Doc } from 'fyo/model/doc';
import { Component } from 'vue';
import { uicolors } from 'src/utils/colors';
type AccountItem = {
name: string;
@ -487,33 +488,33 @@ export default defineComponent({
let icons = {
'Application of Funds (Assets)': `<svg class="w-4 h-4" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<g fill="none" fill-rule="evenodd">
<path d="M15.333 5.333H.667A.667.667 0 000 6v9.333c0 .368.299.667.667.667h14.666a.667.667 0 00.667-.667V6a.667.667 0 00-.667-.667zM8 12.667a2 2 0 110-4 2 2 0 010 4z" fill="#415668" fill-rule="nonzero"/>
<path d="M14 2.667V4H2V2.667h12zM11.333 0v1.333H4.667V0h6.666z" fill="#A1ABB4"/>
<path d="M15.333 5.333H.667A.667.667 0 000 6v9.333c0 .368.299.667.667.667h14.666a.667.667 0 00.667-.667V6a.667.667 0 00-.667-.667zM8 12.667a2 2 0 110-4 2 2 0 010 4z" fill="${uicolors.gray[700]}" fill-rule="nonzero"/>
<path d="M14 2.667V4H2V2.667h12zM11.333 0v1.333H4.667V0h6.666z" fill="${uicolors.gray[400]}"/>
</g>
</svg>`,
Expenses: `<svg class="w-4 h-4" viewBox="0 0 14 16" xmlns="http://www.w3.org/2000/svg">
<path d="M13.668 0v15.333a.666.666 0 01-.666.667h-12a.666.666 0 01-.667-.667V0l2.667 2 2-2 2 2 2-2 2 2 2.666-2zM9.964 4.273H4.386l-.311 1.133h1.62c.933 0 1.474.362 1.67.963H4.373l-.298 1.053h3.324c-.175.673-.767 1.044-1.705 1.044H4.182l.008.83L7.241 13h1.556v-.072L6.01 9.514c1.751-.106 2.574-.942 2.748-2.092h.904l.298-1.053H8.75a2.375 2.375 0 00-.43-1.044l1.342.009.302-1.061z" fill="#415668" fill-rule="evenodd"/>
<path d="M13.668 0v15.333a.666.666 0 01-.666.667h-12a.666.666 0 01-.667-.667V0l2.667 2 2-2 2 2 2-2 2 2 2.666-2zM9.964 4.273H4.386l-.311 1.133h1.62c.933 0 1.474.362 1.67.963H4.373l-.298 1.053h3.324c-.175.673-.767 1.044-1.705 1.044H4.182l.008.83L7.241 13h1.556v-.072L6.01 9.514c1.751-.106 2.574-.942 2.748-2.092h.904l.298-1.053H8.75a2.375 2.375 0 00-.43-1.044l1.342.009.302-1.061z" fill="${uicolors.gray[700]}" fill-rule="evenodd"/>
</svg>`,
Income: `<svg class="w-4 h-4" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<g fill="none" fill-rule="evenodd">
<path d="M16 12.859V14c0 1.105-2.09 2-4.667 2-2.494 0-4.531-.839-4.66-1.894L6.667 14v-1.141C7.73 13.574 9.366 14 11.333 14c1.968 0 3.602-.426 4.667-1.141zm0-3.334v1.142c0 1.104-2.09 2-4.667 2-2.494 0-4.531-.839-4.66-1.894l-.006-.106V9.525c1.064.716 2.699 1.142 4.666 1.142 1.968 0 3.602-.426 4.667-1.142zm-4.667-4.192c2.578 0 4.667.896 4.667 2 0 1.105-2.09 2-4.667 2s-4.666-.895-4.666-2c0-1.104 2.089-2 4.666-2z" fill="#415668"/>
<path d="M0 10.859C1.065 11.574 2.7 12 4.667 12l.337-.005.33-.013v1.995c-.219.014-.44.023-.667.023-2.495 0-4.532-.839-4.66-1.894L0 12v-1.141zm0-2.192V7.525c1.065.716 2.7 1.142 4.667 1.142l.337-.005.33-.013v1.995c-.219.013-.44.023-.667.023-2.495 0-4.532-.839-4.66-1.894L0 8.667V7.525zm0-4.475c1.065.715 2.7 1.141 4.667 1.141.694 0 1.345-.056 1.946-.156-.806.56-1.27 1.292-1.278 2.134-.219.013-.441.022-.668.022-2.578 0-4.667-.895-4.667-2zM4.667 0c2.577 0 4.666.895 4.666 2S7.244 4 4.667 4C2.089 4 0 3.105 0 2s2.09-2 4.667-2z" fill="#A1ABB4"/>
<path d="M16 12.859V14c0 1.105-2.09 2-4.667 2-2.494 0-4.531-.839-4.66-1.894L6.667 14v-1.141C7.73 13.574 9.366 14 11.333 14c1.968 0 3.602-.426 4.667-1.141zm0-3.334v1.142c0 1.104-2.09 2-4.667 2-2.494 0-4.531-.839-4.66-1.894l-.006-.106V9.525c1.064.716 2.699 1.142 4.666 1.142 1.968 0 3.602-.426 4.667-1.142zm-4.667-4.192c2.578 0 4.667.896 4.667 2 0 1.105-2.09 2-4.667 2s-4.666-.895-4.666-2c0-1.104 2.089-2 4.666-2z" fill="${uicolors.gray[700]}"/>
<path d="M0 10.859C1.065 11.574 2.7 12 4.667 12l.337-.005.33-.013v1.995c-.219.014-.44.023-.667.023-2.495 0-4.532-.839-4.66-1.894L0 12v-1.141zm0-2.192V7.525c1.065.716 2.7 1.142 4.667 1.142l.337-.005.33-.013v1.995c-.219.013-.44.023-.667.023-2.495 0-4.532-.839-4.66-1.894L0 8.667V7.525zm0-4.475c1.065.715 2.7 1.141 4.667 1.141.694 0 1.345-.056 1.946-.156-.806.56-1.27 1.292-1.278 2.134-.219.013-.441.022-.668.022-2.578 0-4.667-.895-4.667-2zM4.667 0c2.577 0 4.666.895 4.666 2S7.244 4 4.667 4C2.089 4 0 3.105 0 2s2.09-2 4.667-2z" fill="${uicolors.gray[400]}"/>
</g>
</svg>`,
'Source of Funds (Liabilities)': `<svg class="w-4 h-4" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<g fill="none" fill-rule="evenodd">
<path d="M7.332 11.36l4.666-3.734 2 1.6V.666A.667.667 0 0013.332 0h-12a.667.667 0 00-.667.667v14.666c0 .369.298.667.667.667h6v-4.64zm-4-7.36H11.3v1.333H3.332V4zm2.666 8H3.332v-1.333h2.666V12zM3.332 8.667V7.333h5.333v1.334H3.332z" fill="#415668"/>
<path d="M15.332 12l-3.334-2.667L8.665 12v3.333c0 .369.298.667.667.667h2v-2h1.333v2h2a.667.667 0 00.667-.667V12z" fill="#A1ABB4"/>
<path d="M7.332 11.36l4.666-3.734 2 1.6V.666A.667.667 0 0013.332 0h-12a.667.667 0 00-.667.667v14.666c0 .369.298.667.667.667h6v-4.64zm-4-7.36H11.3v1.333H3.332V4zm2.666 8H3.332v-1.333h2.666V12zM3.332 8.667V7.333h5.333v1.334H3.332z" fill="${uicolors.gray[700]}"/>
<path d="M15.332 12l-3.334-2.667L8.665 12v3.333c0 .369.298.667.667.667h2v-2h1.333v2h2a.667.667 0 00.667-.667V12z" fill="${uicolors.gray[400]}"/>
</g>
</svg>`,
};
let leaf = `<svg class="w-2 h-2" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg">
<circle stroke="#415668" cx="4" cy="4" r="3.5" fill="none" fill-rule="evenodd"/>
<circle stroke="${uicolors.gray[700]}" cx="4" cy="4" r="3.5" fill="none" fill-rule="evenodd"/>
</svg>`;
let folder = `<svg class="w-3 h-3" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<path d="M8.333 3.367L6.333.7H.667A.667.667 0 000 1.367v12a2 2 0 002 2h12a2 2 0 002-2V4.033a.667.667 0 00-.667-.666h-7z" fill="#415668" fill-rule="evenodd"/>
<path d="M8.333 3.367L6.333.7H.667A.667.667 0 000 1.367v12a2 2 0 002 2h12a2 2 0 002-2V4.033a.667.667 0 00-.667-.666h-7z" fill="${uicolors.gray[700]}" fill-rule="evenodd"/>
</svg>`;
let icon = isGroup ? folder : leaf;

View File

@ -119,8 +119,8 @@
class="text-sm cursor-pointer"
:class="
key === activeTab
? 'text-blue-500 font-semibold border-t-2 border-blue-500'
: ''
? 'text-gray-900 font-semibold border-t-2 border-gray-800'
: 'text-gray-700'
"
:style="{
paddingTop: key === activeTab ? 'calc(1rem - 2px)' : '1rem',

View File

@ -10,7 +10,6 @@
h-row-largest
sticky
top-0
border-b
bg-white
"
style="z-index: 1"
@ -28,7 +27,7 @@
<!-- Linked Entry List -->
<div
v-if="sequence.length"
class="w-full overflow-y-auto custom-scroll"
class="w-full overflow-y-auto custom-scroll border-t"
style="height: calc(100vh - var(--h-row-largest) - 1px)"
>
<div v-for="sn of sequence" :key="sn" class="border-b p-4">

View File

@ -10,7 +10,6 @@
h-row-largest
sticky
top-0
border-b
bg-white
"
style="z-index: 1"
@ -44,7 +43,7 @@
<!-- Name and image -->
<div
v-if="doc && (titleField || imageField)"
class="items-center border-b"
class="items-center border-b border-t"
:class="imageField ? 'grid' : 'flex justify-center'"
:style="{
height: `calc(var(--h-row-mid) * ${!!imageField ? '2 + 1px' : '1'})`,

View File

@ -52,8 +52,8 @@
class="text-sm cursor-pointer"
:class="
key === activeTab
? 'text-blue-500 font-semibold border-t-2 border-blue-500'
: ''
? 'text-gray-900 font-semibold border-t-2 border-gray-800'
: 'text-gray-700'
"
:style="{
paddingTop: key === activeTab ? 'calc(1rem - 2px)' : '1rem',

View File

@ -21,8 +21,8 @@
v-else-if="Array.isArray(r.value)"
class="
text-blue-600
bg-blue-50
border-blue-200 border
bg-blue-100
border-white border
tracking-tighter
rounded
text-xs
@ -35,8 +35,8 @@
v-else
class="
text-pink-600
bg-pink-50
border-pink-200 border
bg-pink-100
border-white border
tracking-tighter
rounded
text-xs

View File

@ -195,7 +195,7 @@ function getListViewList(fyo: Fyo): SearchItem[] {
ModelNameEnum.PrintTemplate,
];
if (fyo.doc.singles.AccountingSettings?.enableInventory) {
if (fyo.doc.singles.AccountingSecuttings?.enableInventory) {
schemaNames.push(
ModelNameEnum.StockMovement,
ModelNameEnum.Shipment,