From 4f7e23b67fef391b0a842e4b521ef90e0f2ea2cd Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Tue, 18 Apr 2023 00:03:36 +0330 Subject: [PATCH 01/37] feat(keep): base pwa --- tsconfig.json | 1 + uniquely/keep-pwa/README.md | 1 + uniquely/keep-pwa/esbuild.mjs | 2 + uniquely/keep-pwa/package.json | 57 +++++++++++++ uniquely/keep-pwa/res/config.js | 6 ++ uniquely/keep-pwa/res/index.html | 80 +++++++++++++++++++ uniquely/keep-pwa/res/manifest.webmanifest | 19 +++++ uniquely/keep-pwa/res/robots.txt | 2 + uniquely/keep-pwa/res/service-worker.js | 1 + uniquely/keep-pwa/src/alwatr-pwa.ts | 3 + uniquely/keep-pwa/src/config.ts | 15 ++++ uniquely/keep-pwa/src/content/home-page-fa.ts | 1 + uniquely/keep-pwa/src/content/l18e-fa.json | 11 +++ uniquely/keep-pwa/src/manager/buttons.ts | 1 + .../context-provider/home-page-content.ts | 14 ++++ .../src/manager/context-provider/l18e.ts | 13 +++ uniquely/keep-pwa/src/manager/context.ts | 1 + uniquely/keep-pwa/src/manager/index.ts | 2 + uniquely/keep-pwa/src/manager/logger.ts | 3 + uniquely/keep-pwa/src/type.ts | 0 uniquely/keep-pwa/src/ui/alwatr-pwa.ts | 41 ++++++++++ uniquely/keep-pwa/src/ui/page/404.ts | 62 ++++++++++++++ uniquely/keep-pwa/src/ui/page/home.ts | 38 +++++++++ uniquely/keep-pwa/src/ui/stuff/app-footer.ts | 42 ++++++++++ uniquely/keep-pwa/tsconfig.json | 34 ++++++++ uniquely/keep-pwa/web-dev-server.config.js | 2 + 26 files changed, 452 insertions(+) create mode 100644 uniquely/keep-pwa/README.md create mode 100755 uniquely/keep-pwa/esbuild.mjs create mode 100644 uniquely/keep-pwa/package.json create mode 100644 uniquely/keep-pwa/res/config.js create mode 100644 uniquely/keep-pwa/res/index.html create mode 100644 uniquely/keep-pwa/res/manifest.webmanifest create mode 100644 uniquely/keep-pwa/res/robots.txt create mode 100644 uniquely/keep-pwa/res/service-worker.js create mode 100644 uniquely/keep-pwa/src/alwatr-pwa.ts create mode 100644 uniquely/keep-pwa/src/config.ts create mode 100644 uniquely/keep-pwa/src/content/home-page-fa.ts create mode 100644 uniquely/keep-pwa/src/content/l18e-fa.json create mode 100644 uniquely/keep-pwa/src/manager/buttons.ts create mode 100644 uniquely/keep-pwa/src/manager/context-provider/home-page-content.ts create mode 100644 uniquely/keep-pwa/src/manager/context-provider/l18e.ts create mode 100644 uniquely/keep-pwa/src/manager/context.ts create mode 100644 uniquely/keep-pwa/src/manager/index.ts create mode 100644 uniquely/keep-pwa/src/manager/logger.ts create mode 100644 uniquely/keep-pwa/src/type.ts create mode 100644 uniquely/keep-pwa/src/ui/alwatr-pwa.ts create mode 100644 uniquely/keep-pwa/src/ui/page/404.ts create mode 100644 uniquely/keep-pwa/src/ui/page/home.ts create mode 100644 uniquely/keep-pwa/src/ui/stuff/app-footer.ts create mode 100644 uniquely/keep-pwa/tsconfig.json create mode 100644 uniquely/keep-pwa/web-dev-server.config.js diff --git a/tsconfig.json b/tsconfig.json index f84a3158a..c8f6c9467 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -52,6 +52,7 @@ {"path": "./uniquely/soffit-pwa"}, {"path": "./uniquely/com-api"}, {"path": "./uniquely/com-pwa"}, + {"path": "./uniquely/keep-pwa"}, // labs {"path": "./labs/zx-example"} diff --git a/uniquely/keep-pwa/README.md b/uniquely/keep-pwa/README.md new file mode 100644 index 000000000..c77822be8 --- /dev/null +++ b/uniquely/keep-pwa/README.md @@ -0,0 +1 @@ +# Keep PWA diff --git a/uniquely/keep-pwa/esbuild.mjs b/uniquely/keep-pwa/esbuild.mjs new file mode 100755 index 000000000..45cb0f24a --- /dev/null +++ b/uniquely/keep-pwa/esbuild.mjs @@ -0,0 +1,2 @@ +#!/usr/bin/env node +import '@alwatr/pwa-helper/esbuild.mjs'; diff --git a/uniquely/keep-pwa/package.json b/uniquely/keep-pwa/package.json new file mode 100644 index 000000000..9ce2a2ec1 --- /dev/null +++ b/uniquely/keep-pwa/package.json @@ -0,0 +1,57 @@ +{ + "name": "@alwatr/keep-pwa", + "version": "0.30.0", + "description": "Alwatr Keep PWA.", + "type": "module", + "author": "S. Ali Mihandoost (https://ali.mihandoost.com)", + "private": true, + "engines": { + "node": ">=18.13.0", + "npm": ">=8.0.0", + "yarn": ">=1.22.0" + }, + "browserslist": "> 0.1%, not dead", + "repository": { + "type": "git", + "url": "https://github.com/AliMD/alwatr", + "directory": "uniquely/keep-pwa" + }, + "scripts": { + "b": "yarn build-dev", + "cb": "run-s clean build-dev", + "s": "yarn start", + "w": "yarn watch", + "start": "NODE_OPTIONS=--enable-source-maps run-s clean build serve", + "clean": "rm -rf dist build .tsbuildinfo", + "build": "yarn build:es", + "build-dev": "run-s build:root build:tsc \"build:es --debug\"", + "build:es": "./esbuild.mjs", + "build:tsc": "tsc --build", + "build:root": "cd ../../ && yarn build:ts", + "serve": "wds", + "watch": "run-p watch:root watch:es serve", + "watch:es": "yarn build:es --clean --watch --debug", + "watch:root": "cd ../../ && yarn watch:ts" + }, + "devDependencies": { + "@alwatr/element": "^0.30.0", + "@alwatr/fetch": "^0.30.0", + "@alwatr/fsm": "^0.30.0", + "@alwatr/context": "^0.30.0", + "@alwatr/i18n": "^0.30.0", + "@alwatr/math": "^0.30.0", + "@alwatr/pwa-helper": "^0.30.0", + "@alwatr/router": "^0.30.0", + "@alwatr/signal": "^0.30.0", + "@alwatr/type": "^0.30.0", + "@alwatr/ui-kit": "^0.30.0", + "@web/dev-server": "^0.1.38", + "@webcomponents/webcomponentsjs": "^2.7.0", + "esbuild": "^0.17.16", + "lit-analyzer": "^1.2.1", + "npm-run-all": "^4.1.5", + "ts-lit-plugin": "^1.2.1", + "tslib": "^2.5.0", + "typescript": "^5.0.4" + } +} diff --git a/uniquely/keep-pwa/res/config.js b/uniquely/keep-pwa/res/config.js new file mode 100644 index 000000000..aa65279b5 --- /dev/null +++ b/uniquely/keep-pwa/res/config.js @@ -0,0 +1,6 @@ +window.appConfig = { + api: 'https://order.soffit.co/api/v0', + cdn: '/cdn/', + token: '3584fd6c82b5b76568a7f770846be94af9b7a879eb2274f2c0121ccc58d112ee', + productStorageList: ['tile'], +}; diff --git a/uniquely/keep-pwa/res/index.html b/uniquely/keep-pwa/res/index.html new file mode 100644 index 000000000..76a3f4da1 --- /dev/null +++ b/uniquely/keep-pwa/res/index.html @@ -0,0 +1,80 @@ + + + + + + + تولید‌کننده اسکوپ سنگ‌نما + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + درحال بارگذاری... + + + + + + + diff --git a/uniquely/keep-pwa/res/manifest.webmanifest b/uniquely/keep-pwa/res/manifest.webmanifest new file mode 100644 index 000000000..ab78e7d70 --- /dev/null +++ b/uniquely/keep-pwa/res/manifest.webmanifest @@ -0,0 +1,19 @@ +{ + "short_name": "تولید‌کننده اسکوپ سنگ‌نما", + "name": "تولید‌کننده اسکوپ سنگ‌نما", + "description": "نرم‌افزار یکپارچه اسکوپ سنگ‌نما", + "start_url": "/", + "display": "standalone", + "theme_color": "#2b4f9c", + "background_color": "#faf8ff", + "orientation": "portrait", + "default_locale": "fa", + "icons": [ + {"src": "/image/icon-192-maskable.png", "type": "image/png", "sizes": "192x192", "purpose": "maskable"}, + {"src": "/image/icon-512-maskable.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable"}, + {"src": "/image/favicon.ico", "type": "image/x-icon", "sizes": "32x32"}, + {"src": "/image/icon-192.png", "type": "image/png", "sizes": "192x192"}, + {"src": "/image/icon-512.png", "type": "image/png", "sizes": "512x512"} + ], + "screenshots": [] +} diff --git a/uniquely/keep-pwa/res/robots.txt b/uniquely/keep-pwa/res/robots.txt new file mode 100644 index 000000000..c2a49f4fb --- /dev/null +++ b/uniquely/keep-pwa/res/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / diff --git a/uniquely/keep-pwa/res/service-worker.js b/uniquely/keep-pwa/res/service-worker.js new file mode 100644 index 000000000..64a5d005d --- /dev/null +++ b/uniquely/keep-pwa/res/service-worker.js @@ -0,0 +1 @@ +console.log('Service worker not build in development mode.') diff --git a/uniquely/keep-pwa/src/alwatr-pwa.ts b/uniquely/keep-pwa/src/alwatr-pwa.ts new file mode 100644 index 000000000..2fa476453 --- /dev/null +++ b/uniquely/keep-pwa/src/alwatr-pwa.ts @@ -0,0 +1,3 @@ +// TODO: rename me to index +import './manager/index.js'; +import './ui/alwatr-pwa.js'; diff --git a/uniquely/keep-pwa/src/config.ts b/uniquely/keep-pwa/src/config.ts new file mode 100644 index 000000000..7e8181919 --- /dev/null +++ b/uniquely/keep-pwa/src/config.ts @@ -0,0 +1,15 @@ +import {FetchOptions} from '@alwatr/fetch'; +import {getConfKey} from '@alwatr/pwa-helper/config.js'; + +const token = getConfKey('token'); +export const config = { + cdn: getConfKey('cdn'), + token, + fetchContextOptions: > { + method: 'GET', + token, + removeDuplicate: 'auto', + retry: 2, + retryDelay: 2_000, + }, +} as const; diff --git a/uniquely/keep-pwa/src/content/home-page-fa.ts b/uniquely/keep-pwa/src/content/home-page-fa.ts new file mode 100644 index 000000000..917f2440f --- /dev/null +++ b/uniquely/keep-pwa/src/content/home-page-fa.ts @@ -0,0 +1 @@ +/* eslint-disable max-len */ diff --git a/uniquely/keep-pwa/src/content/l18e-fa.json b/uniquely/keep-pwa/src/content/l18e-fa.json new file mode 100644 index 000000000..c25c7110b --- /dev/null +++ b/uniquely/keep-pwa/src/content/l18e-fa.json @@ -0,0 +1,11 @@ +{ + "ok": true, + "meta": { + "code": "fa-IR", + "rev": 0 + }, + "data": { + "page_404_not_found": "صفحه مورد نظر یافت نشد!", + "page_404_not_found_description": "شاید بهتر باشه با استفاده از منو به صفحه مورد نظر بروید!" + } +} diff --git a/uniquely/keep-pwa/src/manager/buttons.ts b/uniquely/keep-pwa/src/manager/buttons.ts new file mode 100644 index 000000000..bf55ce07f --- /dev/null +++ b/uniquely/keep-pwa/src/manager/buttons.ts @@ -0,0 +1 @@ +export const buttons = {} as const; diff --git a/uniquely/keep-pwa/src/manager/context-provider/home-page-content.ts b/uniquely/keep-pwa/src/manager/context-provider/home-page-content.ts new file mode 100644 index 000000000..c7481951e --- /dev/null +++ b/uniquely/keep-pwa/src/manager/context-provider/home-page-content.ts @@ -0,0 +1,14 @@ +import {localeContextConsumer} from '@alwatr/i18n'; + +// import {homePageContent} from '../../content/home-page-fa.js'; // for perf +import {logger} from '../logger.js'; + +localeContextConsumer.subscribe(async () => { + const language = localeContextConsumer.getValue()?.language; + logger.logMethodArgs?.('contentProvider', {language}); + if (language == null) return; + // homePageContentContextProvider.setValue( + // homePageContent, + // (await import('../../content/home-page-fa.js')).homePageContent, + // ); +}); diff --git a/uniquely/keep-pwa/src/manager/context-provider/l18e.ts b/uniquely/keep-pwa/src/manager/context-provider/l18e.ts new file mode 100644 index 000000000..e7d8afa51 --- /dev/null +++ b/uniquely/keep-pwa/src/manager/context-provider/l18e.ts @@ -0,0 +1,13 @@ +import {setL18eLoader} from '@alwatr/i18n'; + +import l18eFa from '../../content/l18e-fa.json' assert {type: 'json'}; // for perf +import {logger} from '../logger.js'; + +import type {L18eContext} from '@alwatr/type'; + +setL18eLoader((locale) => { + const language = locale.language; + logger.logMethodArgs?.('l18eLoader', {language}); + return l18eFa as unknown as Promise; + // return import('../../content/l18e-fa.json', {assert: {type: 'json'}}) as unknown as Promise; +}); diff --git a/uniquely/keep-pwa/src/manager/context.ts b/uniquely/keep-pwa/src/manager/context.ts new file mode 100644 index 000000000..6bfc5e400 --- /dev/null +++ b/uniquely/keep-pwa/src/manager/context.ts @@ -0,0 +1 @@ +export * from '@alwatr/pwa-helper/context.js'; diff --git a/uniquely/keep-pwa/src/manager/index.ts b/uniquely/keep-pwa/src/manager/index.ts new file mode 100644 index 000000000..af86de8d2 --- /dev/null +++ b/uniquely/keep-pwa/src/manager/index.ts @@ -0,0 +1,2 @@ +import './context-provider/home-page-content.js'; +import './context-provider/l18e.js'; diff --git a/uniquely/keep-pwa/src/manager/logger.ts b/uniquely/keep-pwa/src/manager/logger.ts new file mode 100644 index 000000000..e15c6c8ce --- /dev/null +++ b/uniquely/keep-pwa/src/manager/logger.ts @@ -0,0 +1,3 @@ +import {createLogger} from '@alwatr/logger'; + +export const logger = createLogger('keep-manager'); diff --git a/uniquely/keep-pwa/src/type.ts b/uniquely/keep-pwa/src/type.ts new file mode 100644 index 000000000..e69de29bb diff --git a/uniquely/keep-pwa/src/ui/alwatr-pwa.ts b/uniquely/keep-pwa/src/ui/alwatr-pwa.ts new file mode 100644 index 000000000..b3b72af79 --- /dev/null +++ b/uniquely/keep-pwa/src/ui/alwatr-pwa.ts @@ -0,0 +1,41 @@ +import {html, customElement} from '@alwatr/element'; +import '@alwatr/font/vazirmatn.css'; +import {AlwatrPwaElement} from '@alwatr/pwa-helper/pwa-element.js'; +import '@alwatr/ui-kit/style/mobile-only.css'; +import '@alwatr/ui-kit/style/theme/color.css'; +import '@alwatr/ui-kit/style/theme/palette-270.css'; + +import './page/home.js'; // for perf +import './stuff/app-footer.js'; + +import type {RoutesConfig} from '@alwatr/router'; + +declare global { + interface HTMLElementTagNameMap { + 'alwatr-pwa': AlwatrPwa; + } +} + +/** + * Alwatr PWA Root Element + */ +@customElement('alwatr-pwa') +class AlwatrPwa extends AlwatrPwaElement { + protected override _routesConfig: RoutesConfig = { + routeId: (routeContext) => routeContext.sectionList[0]?.toString(), + templates: { + 'home': () => { + // import('./page/home.js'); + return html`...`; + }, + '_404': () => { + import('./page/404.js'); + return html`...`; + }, + }, + }; + + protected override _navigationBarTemplate(): unknown { + return html``; + } +} diff --git a/uniquely/keep-pwa/src/ui/page/404.ts b/uniquely/keep-pwa/src/ui/page/404.ts new file mode 100644 index 000000000..258a1f364 --- /dev/null +++ b/uniquely/keep-pwa/src/ui/page/404.ts @@ -0,0 +1,62 @@ +import { + customElement, + css, + html, + LocalizeMixin, + SignalMixin, + AlwatrBaseElement, + UnresolvedMixin, +} from '@alwatr/element'; +import {message} from '@alwatr/i18n'; +import '@alwatr/ui-kit/card/icon-box.js'; + +import {topAppBarContextProvider} from '../../manager/context.js'; + +import type {IconBoxContent} from '@alwatr/ui-kit/card/icon-box.js'; + +declare global { + interface HTMLElementTagNameMap { + 'alwatr-page-404': AlwatrPage404; + } +} + +/** + * Alwatr Demo Home Page + */ +@customElement('alwatr-page-404') +export class AlwatrPage404 extends UnresolvedMixin(LocalizeMixin(SignalMixin(AlwatrBaseElement))) { + static override styles = css` + :host { + display: block; + padding: calc(2 * var(--sys-spacing-track)); + box-sizing: border-box; + min-height: 100%; + } + `; + + override connectedCallback(): void { + super.connectedCallback(); + topAppBarContextProvider.setValue({ + type: 'small', + headline: message('page_404_not_found'), + startIcon: {icon: 'arrow-back-outline', flipRtl: true, clickSignalId: 'back_to_home_click_event'}, + tinted: 2, + }); + } + + override render(): unknown { + this._logger.logMethod?.('render'); + + const box: IconBoxContent = { + stated: true, + elevated: 1, + icon: 'construct-outline', + flipRtl: true, + headline: message('page_404_not_found'), + description: message('page_404_not_found_description'), + preLine: true, + }; + + return html``; + } +} diff --git a/uniquely/keep-pwa/src/ui/page/home.ts b/uniquely/keep-pwa/src/ui/page/home.ts new file mode 100644 index 000000000..b30297d09 --- /dev/null +++ b/uniquely/keep-pwa/src/ui/page/home.ts @@ -0,0 +1,38 @@ + +import { + customElement, + css, + nothing, + SignalMixin, + AlwatrBaseElement, + UnresolvedMixin, +} from '@alwatr/element'; +import '@alwatr/ui-kit/card/icon-box.js'; + +declare global { + interface HTMLElementTagNameMap { + 'alwatr-page-home': AlwatrPageHome; + } +} + +/** + * Alwatr Keep Home Page + */ +@customElement('alwatr-page-home') +export class AlwatrPageHome extends UnresolvedMixin(SignalMixin(AlwatrBaseElement)) { + static override styles = css` + :host { + box-sizing: border-box; + min-height: 100%; + display: flex; + flex-wrap: wrap; + padding: calc(2 * var(--sys-spacing-track)); + gap: var(--sys-spacing-track); + } + `; + + override render(): unknown { + this._logger.logMethod?.('render'); + return nothing; + } +} diff --git a/uniquely/keep-pwa/src/ui/stuff/app-footer.ts b/uniquely/keep-pwa/src/ui/stuff/app-footer.ts new file mode 100644 index 000000000..70aa2a223 --- /dev/null +++ b/uniquely/keep-pwa/src/ui/stuff/app-footer.ts @@ -0,0 +1,42 @@ +import {customElement, AlwatrBaseElement, css, html} from '@alwatr/element'; + +declare global { + interface HTMLElementTagNameMap { + 'alwatr-app-footer': AlwatrPageHome; + } +} + +/** + * Alwatr Keep App Footer + */ +@customElement('alwatr-app-footer') +export class AlwatrPageHome extends AlwatrBaseElement { + static override styles = css` + :host { + display: block; + flex-grow: 0; + flex-shrink: 0; + direction: ltr; + text-align: center; + color: var(--sys-color-on-secondary-container); + padding: calc(2 * var(--sys-spacing-track)) var(--sys-spacing-track) var(--sys-spacing-track); + background-color: var(--sys-color-secondary-container); + } + + .version { + font-size: var(--sys-typescale-label-small-font-size); + line-height: var(--sys-typescale-label-small-line-height); + letter-spacing: var(--sys-typescale-label-small-letter-spacing); + opacity: 0.6; + user-select: none; + -webkit-user-select: none; + } + `; + + override render(): unknown { + this._logger.logMethod?.('render'); + return html` +
Keep v${_ALWATR_VERSION_}
+ `; + } +} diff --git a/uniquely/keep-pwa/tsconfig.json b/uniquely/keep-pwa/tsconfig.json new file mode 100644 index 000000000..e87607747 --- /dev/null +++ b/uniquely/keep-pwa/tsconfig.json @@ -0,0 +1,34 @@ +{ + "extends": "../../tsconfig.base", + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": ".tsbuildinfo", + // "moduleResolution": "bundler", + "rootDir": "src", + "outDir": "build", + "noEmit": true, + "plugins": [ + { + "name": "ts-lit-plugin", + "strict": true + } + ], + }, + + "include": ["src/**/*.ts", "src/**/*.json"], + "exclude": [], + "references": [ + {"path": "../../core/router"}, + {"path": "../../core/fetch"}, + {"path": "../../core/i18n"}, + {"path": "../../core/type"}, + {"path": "../../core/validator"}, + {"path": "../../core/signal"}, + {"path": "../../core/util"}, + {"path": "../../core/fsm"}, + {"path": "../../core/context"}, + {"path": "../../ui/element"}, + {"path": "../../ui/ui-kit"}, + {"path": "../../ui/pwa-helper"}, + ] +} diff --git a/uniquely/keep-pwa/web-dev-server.config.js b/uniquely/keep-pwa/web-dev-server.config.js new file mode 100644 index 000000000..9c4e13e1e --- /dev/null +++ b/uniquely/keep-pwa/web-dev-server.config.js @@ -0,0 +1,2 @@ +import {config} from '@alwatr/pwa-helper/pwa-dev-server.config.js'; +export default config; From 41a86a24a77aa92799b88b3fec19e28b02b3d917 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Tue, 18 Apr 2023 23:42:55 +0330 Subject: [PATCH 02/37] feat(ui/theme): 20 palette --- ui/ui-kit/style/theme/palette-20.css | 111 +++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 ui/ui-kit/style/theme/palette-20.css diff --git a/ui/ui-kit/style/theme/palette-20.css b/ui/ui-kit/style/theme/palette-20.css new file mode 100644 index 000000000..81d8400d3 --- /dev/null +++ b/ui/ui-kit/style/theme/palette-20.css @@ -0,0 +1,111 @@ +:root { + /* HCT 20 */ + + /* primary */ + --ref-palette-primary0: 20, 48%, 0%; + --ref-palette-primary10: 20, 48%, 10%; + --ref-palette-primary20: 20, 48%, 20%; + --ref-palette-primary25: 20, 48%, 25%; + --ref-palette-primary30: 20, 48%, 30%; + --ref-palette-primary35: 20, 48%, 35%; + --ref-palette-primary40: 20, 48%, 40%; + --ref-palette-primary50: 20, 48%, 50%; + --ref-palette-primary60: 20, 48%, 60%; + --ref-palette-primary70: 20, 48%, 70%; + --ref-palette-primary80: 20, 48%, 80%; + --ref-palette-primary90: 20, 48%, 90%; + --ref-palette-primary95: 20, 48%, 95%; + --ref-palette-primary98: 20, 48%, 98%; + --ref-palette-primary99: 20, 48%, 99%; + --ref-palette-primary100: 20, 48%, 100%; + + /* secondary */ + --ref-palette-secondary0: 20, 16%, 0%; + --ref-palette-secondary10: 20, 16%, 10%; + --ref-palette-secondary20: 20, 16%, 20%; + --ref-palette-secondary25: 20, 16%, 25%; + --ref-palette-secondary30: 20, 16%, 30%; + --ref-palette-secondary35: 20, 16%, 35%; + --ref-palette-secondary40: 20, 16%, 40%; + --ref-palette-secondary50: 20, 16%, 50%; + --ref-palette-secondary60: 20, 16%, 60%; + --ref-palette-secondary70: 20, 16%, 70%; + --ref-palette-secondary80: 20, 16%, 80%; + --ref-palette-secondary90: 20, 16%, 90%; + --ref-palette-secondary95: 20, 16%, 95%; + --ref-palette-secondary98: 20, 16%, 98%; + --ref-palette-secondary99: 20, 16%, 99%; + --ref-palette-secondary100: 20, 16%, 100%; + + /* tertiary */ + --ref-palette-tertiary0: 80, 24%, 0%; + --ref-palette-tertiary10: 80, 24%, 10%; + --ref-palette-tertiary20: 80, 24%, 20%; + --ref-palette-tertiary25: 80, 24%, 25%; + --ref-palette-tertiary30: 80, 24%, 30%; + --ref-palette-tertiary35: 80, 24%, 35%; + --ref-palette-tertiary40: 80, 24%, 40%; + --ref-palette-tertiary50: 80, 24%, 50%; + --ref-palette-tertiary60: 80, 24%, 60%; + --ref-palette-tertiary70: 80, 24%, 70%; + --ref-palette-tertiary80: 80, 24%, 80%; + --ref-palette-tertiary90: 80, 24%, 90%; + --ref-palette-tertiary95: 80, 24%, 95%; + --ref-palette-tertiary98: 80, 24%, 98%; + --ref-palette-tertiary99: 80, 24%, 99%; + --ref-palette-tertiary100: 80, 24%, 100%; + + /* neutral */ + --ref-palette-neutral0: 20, 4%, 0%; + --ref-palette-neutral10: 20, 4%, 10%; + --ref-palette-neutral20: 20, 4%, 20%; + --ref-palette-neutral25: 20, 4%, 25%; + --ref-palette-neutral30: 20, 4%, 30%; + --ref-palette-neutral35: 20, 4%, 35%; + --ref-palette-neutral40: 20, 4%, 40%; + --ref-palette-neutral50: 20, 4%, 50%; + --ref-palette-neutral60: 20, 4%, 60%; + --ref-palette-neutral70: 20, 4%, 70%; + --ref-palette-neutral80: 20, 4%, 80%; + --ref-palette-neutral90: 20, 4%, 90%; + --ref-palette-neutral95: 20, 4%, 95%; + --ref-palette-neutral98: 20, 4%, 98%; + --ref-palette-neutral99: 20, 4%, 99%; + --ref-palette-neutral100: 20, 4%, 100%; + + /* neutral-variant */ + --ref-palette-neutral-variant0: 20, 8%, 0%; + --ref-palette-neutral-variant10: 20, 8%, 10%; + --ref-palette-neutral-variant20: 20, 8%, 20%; + --ref-palette-neutral-variant25: 20, 8%, 25%; + --ref-palette-neutral-variant30: 20, 8%, 30%; + --ref-palette-neutral-variant35: 20, 8%, 35%; + --ref-palette-neutral-variant40: 20, 8%, 40%; + --ref-palette-neutral-variant50: 20, 8%, 50%; + --ref-palette-neutral-variant60: 20, 8%, 60%; + --ref-palette-neutral-variant70: 20, 8%, 70%; + --ref-palette-neutral-variant80: 20, 8%, 80%; + --ref-palette-neutral-variant90: 20, 8%, 90%; + --ref-palette-neutral-variant95: 20, 8%, 95%; + --ref-palette-neutral-variant98: 20, 8%, 98%; + --ref-palette-neutral-variant99: 20, 8%, 99%; + --ref-palette-neutral-variant100: 20, 8%, 100%; + + /* error */ + --ref-palette-error0: 25, 84%, 0%; + --ref-palette-error10: 25, 84%, 10%; + --ref-palette-error20: 25, 84%, 20%; + --ref-palette-error25: 25, 84%, 25%; + --ref-palette-error30: 25, 84%, 30%; + --ref-palette-error35: 25, 84%, 35%; + --ref-palette-error40: 25, 84%, 40%; + --ref-palette-error50: 25, 84%, 50%; + --ref-palette-error60: 25, 84%, 60%; + --ref-palette-error70: 25, 84%, 70%; + --ref-palette-error80: 25, 84%, 80%; + --ref-palette-error90: 25, 84%, 90%; + --ref-palette-error95: 25, 84%, 95%; + --ref-palette-error98: 25, 84%, 98%; + --ref-palette-error99: 25, 84%, 99%; + --ref-palette-error100: 25, 84%, 100%; +} From 3f83c787a5564a7502ea39215ca88d797a49c092 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Tue, 18 Apr 2023 23:57:00 +0330 Subject: [PATCH 03/37] feat(keep): config --- uniquely/keep-pwa/res/config.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/uniquely/keep-pwa/res/config.js b/uniquely/keep-pwa/res/config.js index aa65279b5..0366cbeef 100644 --- a/uniquely/keep-pwa/res/config.js +++ b/uniquely/keep-pwa/res/config.js @@ -1,6 +1,3 @@ window.appConfig = { - api: 'https://order.soffit.co/api/v0', - cdn: '/cdn/', - token: '3584fd6c82b5b76568a7f770846be94af9b7a879eb2274f2c0121ccc58d112ee', - productStorageList: ['tile'], + cdn: 'https://keep.soffit.co/cdn/v0', }; From 7cf958a9c17aefde8ba52fb24c5db0b7d0243434 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Tue, 18 Apr 2023 23:57:13 +0330 Subject: [PATCH 04/37] feat(keep): theme --- uniquely/keep-pwa/res/index.html | 6 +++--- uniquely/keep-pwa/res/manifest.webmanifest | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/uniquely/keep-pwa/res/index.html b/uniquely/keep-pwa/res/index.html index 76a3f4da1..eb19e6672 100644 --- a/uniquely/keep-pwa/res/index.html +++ b/uniquely/keep-pwa/res/index.html @@ -16,8 +16,8 @@ /> - - + + - + diff --git a/uniquely/keep-pwa/res/manifest.webmanifest b/uniquely/keep-pwa/res/manifest.webmanifest index ab78e7d70..e3e61b5a6 100644 --- a/uniquely/keep-pwa/res/manifest.webmanifest +++ b/uniquely/keep-pwa/res/manifest.webmanifest @@ -4,8 +4,8 @@ "description": "نرم‌افزار یکپارچه اسکوپ سنگ‌نما", "start_url": "/", "display": "standalone", - "theme_color": "#2b4f9c", - "background_color": "#faf8ff", + "theme_color": "#c24000", + "background_color": "#fffcfa", "orientation": "portrait", "default_locale": "fa", "icons": [ From 377cca6aa9a236a4fc64a69c8f92e8820c7069fe Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Tue, 18 Apr 2023 23:57:27 +0330 Subject: [PATCH 05/37] feat(keep): manifest icon --- uniquely/keep-pwa/res/image/favicon.ico | Bin 0 -> 5238 bytes .../keep-pwa/res/image/icon-192-maskable.png | Bin 0 -> 1903 bytes uniquely/keep-pwa/res/image/icon-192.png | Bin 0 -> 2338 bytes .../keep-pwa/res/image/icon-512-maskable.png | Bin 0 -> 4155 bytes uniquely/keep-pwa/res/image/icon-512.png | Bin 0 -> 5486 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 uniquely/keep-pwa/res/image/favicon.ico create mode 100644 uniquely/keep-pwa/res/image/icon-192-maskable.png create mode 100644 uniquely/keep-pwa/res/image/icon-192.png create mode 100644 uniquely/keep-pwa/res/image/icon-512-maskable.png create mode 100644 uniquely/keep-pwa/res/image/icon-512.png diff --git a/uniquely/keep-pwa/res/image/favicon.ico b/uniquely/keep-pwa/res/image/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f7974d95585eb00697d2b6b999d81ea3e1c71ebc GIT binary patch literal 5238 zcmc&$TS!z<6upJ@7g#|c1^E?He)Sz;R6mjuS@!x!gXjT?)JJ9X&d8t_g@Hv8SVCY_ z3KAt#KE}~hGJK7Xe5YeNzDH+9U7dZr=W@J`Gv3i=29D?4z4zH`?S0O@E=5_UELTE9 z6*enMM2MnnVsm)7`poRH%of3HY^g9ai=)5n$L!vIPB*T*CSg(s*er&yncQwf>2r`x ziWPgj&9m}&!1K0O^AQg}u(kbCy_(Hv9p1R-mDy3zFp9yksrmAo#D4q8B&_WY*aqC_ zw!2`d8$m7Q|oc$c0CT?sz+Yg0DnH0 z-i%jyHf%fl6Q@{AYtO`-9Cd9DY&}uQVyf`^vyJaN`JfT^-*sZ&)mmK4XyLZFYqh9s z9G$bjv(JU&_Zsm1*AU+3_oBz{#;{`w4(Bx5dYm(}&58D27hkJ=*6KIdcY(j?{puYM z`3%kCUGSH?c#qUOOtmZ+Uto(I(z`%;#E|oG8`UfCq3=XE8&Pa%-wFC~82nLQG3LRa z!-e8#57pwS9$yqBJURDb*0a7#-tYrqPLMzOHF?@Ek?e!(21T zd2%gwyf5s-kgCUGFV`S4v4Uw87vDR^a>((%);T5pSh1^+=PYMDl&AunfA*Verj@&k zupzz_Vf!tpWt>RQt=n6|ZL4F<_*yxL$Jt$cPgtAd%7mV|PyYd0S&=en0- zNh3!lmh)ay&#CwAy-q}5sOC008|pp9Zah?qRnf&-|4FlY!_)hym+KE$n5K4OEjz=c zC(R%&PjRH*_3?CH#r>0gbccQ1Ka(6U*4FlMq<`$jgligfzcX@s(8hGO@GsF!*dFnh zD8DbhTqgzy%M+KN;s^WxpU~#P>c7Abk_OPUcrfrq?Lr3!n1fckz^6G-_dv$fuNjB` o_C2B=>+w82tD1Ppco6PFv1LBQgNAxHh>sYU=d8G2;4K969|>YGumAu6 literal 0 HcmV?d00001 diff --git a/uniquely/keep-pwa/res/image/icon-192-maskable.png b/uniquely/keep-pwa/res/image/icon-192-maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8ed01d954cda609ac375d1125702b1025cfb64 GIT binary patch literal 1903 zcmV-#2ax!QP)*L2y6v99N-K>_pF%I?Rr#6<_`xuN~_ z@y1ON@65UAwVcC31Ni0K-IH$Vx1Zjab;Cmh{PFDn`uF9kjmAt6)Okz8Lz3>bj%X zep20(aOSO%_~hH>u9DMqM)%{|({n`7X*b@NbK|Fp|NHslrijW~A^Yy<*o9izhF$yd z?Ed@s{q*p}M+xSzmDhk(?#Z>oLIU8Pe%OLo%2*%kz^cVa3&>L$_1)6oo_)$$Am5pG z&%W-)ve9il@5#2+drtAv!sV-v)OJYXpn%bCKK9?$*o9o&k!#RxJo41V-%OS#!K~YkXQWn2=l}o(K}keGRCodG!7%{<0003n`j-~MyDb0!00000 z0000000000w~pGndT(RNf&gCEwPp~7IcE9pUMXfvj#p-843jC$%*@OTf9YywPLHJV z*h`b|lYWm~FI^Aa=cG~m4I({*A~Op~FFS`K7a}j8q5#Ry<)$Iu1D!XI!nX`5U^&H# zmC&uqr&x_tu!dsoIz+ACK(TQ(Qo<&R&BmK9q#?fusiByn1W~1B6y-<_ekv6J(*LCR z`#)ge*I;q}za(CqKM)AQVOywF0#%#L`~QJN)vL;DqH62vVaL_5swSkxVQV0^_<_2b z#;u_y7aa9ZiWNYlnW80(IKkGo6;w92cleQ@v#Y6_rWRKaF+CK${=R-120GxNL5d+@ zc!Y-0F~l2R%Xkx$NHDdH@!Z?PFzukob?u}w6oz9WEfl-3n<8xs;*{>8Rc`>Mb$e;G zFAT+eQ~TYFIWP^URE<&;jkVYgu<#5QSUU^T92c5{m_JByD4#Ja8sL<}8!5(*Q0YL7 z_b3&g&$pK17!1?LZQ~O#oE)XCQ>WpOW!)4dG}R(zas|bivuCphC>qZ}civ60H~Z|_ z3luXF7x-wpc;+BYmmJ@OSVq&KX(+DP=L5}U8oIAQbBxN-O8q@koQLizm7FdBX;gN> zA!leKZ46@FHHwfQn(Gv6plPDmQwfdthI;1EHBjk^0Jurz794V$b}m3vbW@yxE`2oq zot_(_7>qzO{U^m8`J@%SV35jCE1YqVc8){br82lix5`a{sC#QEju`QMGkyTgLyCj= zJq6|&FNexJ43B6}Zdk-c^*}?V={FU)#5ki@sCZx)S-L>xzbSB%iKFEKmEr&#k;|Ap z%e*ZVkD+_O#hnDerTgImmFt!-;~<=|i!mOo&!Cv8{I>=09~5Y!NLvTZCMsv(h||S1 zJppinqWh_(K(ogxp};2FIQE9Gbs@@2lLwAy9innE0Ki3MyQRQ0SXkevo%GDa0>@~& z14m@8rqsY{+aMnk$cJy7# zsGH*UG&F(CSlrSw>Z3T-0nL7zHXhh;i>3iMBt)?f2Jdt8f;U<-8dF?VI9n-T@6nmi@ z->F=MsQ)rVW$R!CELQGliN(ENVLDHx5?@34)Eu1*!#M%3Vs{pS67jzO_9>tFZC}0y zB8V~LlV?7CB0qiU3-}RJM6s_G2+n``GPq;R8$rsLen|1X1F5KTf?{qu#S4@pCEeUe zaT&=WjQ`3HDnF4FD*C@-NkJqir*aZWA^q3PJuIQGv2T$AND}@zmShEC?=M$>2+1z} zqi^l67qH{no5S}=e&P35^BS1DGOmR`F1ZPSrL za?ky9ND&)CIkeh%d?ivx`h&}jjQ3`Bfgh=+Vt@PAg9i^DZ*Ts58vm1jwFd_R00000 pK>n|dpsK2>s;a80s;a80ssaMg^VOX>yfpv-002ovPDHLkV1iXK*9ZUr literal 0 HcmV?d00001 diff --git a/uniquely/keep-pwa/res/image/icon-192.png b/uniquely/keep-pwa/res/image/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e5990e24ad43864ed2ff4da2f2aeae93050a52 GIT binary patch literal 2338 zcmV+-3ElRIP)f*;w6v99N-j{Ry^6k}mOwD2~`|s)W+s(#H58|VQ-IH#@K>_sG z%I?Rr#6<_`xuN~`^4yVZ#!V6L%(>~dox?%{_~qQ`x1Zjab^P({|N8gks*S@$1^Vmb z$Ws{Jm2u2oC)0C7_TJOTR2kZdVDQeo&Sf$F`}qF&_5S$u{`vOu)WrDb-}>$4)Obtk zx}(>AQr(nr=B<+W_o_^SZSjt!*>%ptVNDKAd(%+eOvd(5R^xV(UZ9LR>O6Rkg^Vi7GYBlsN0TbITMM$00004bW%=J z06>7hqg34t000LyNklEA{Tm8(wx907M12y`b>$0E9fq9`t2cv=@$pyAq-lD zFlZgZ&9poIkp1zSEvg=c$I$NhL&@_)aae(0&0iZ5QDFXW$hmzkr&O2)qJ6zkk%)g;yKf7sc_P?6Prbgp?`n zF15S_cXxM(;#PP6w_hf6Ze*BJn=ZmG#lwI{-hW`l;Z1+&)5m`EK-59vqEvUrcQK^JQHQW@ik`e)jfTDsI|KSD27tjK8p?+esZV31fe}O*9b+WtctrgK zMVe!h%7EX#faWQRY0OZ>)gwaLEX{gq5t2Jcvw1(1DhjWYVGC|s0%X+`#lusU8<>BQ zmuO1}S>|QS5G$(`YZ(mFytW0br&9EdQRzU~#v&Du$D>hf!mzb%Io^R`w}_S=Z~aUF ze!`tDiamxrLfD8#v7eHX(nnEx3qe^EQrHf3p!#MbRmXv=R)gqcYHH zQ@|>%Y(wNz>CXvDcTynWK%*El#>JuWbLd`Btm5wktT0k4l@%CX(wcmS#r&>r=%~d1 zrGR5bC_1I$f???DfTSM;>@s?5c}}II#-4yQhRxn_w@~yzzTo%m0^rqsct)kwv}CNp zo`80SxsaC_UKD>AfS(A6r-;ji?mm@$djhsf81f3h4n@~%Q$Ul;EGpo>{7~D@N=HEm2fo3u^RC;Kk>j8q=Xe|?V1-vvL4y!*&2PZ4zJquJhjgsgn<&}3i~g38{;Y?2)zwbWe(s4Jg}_${EBz69ZHl`zv8`_w!VE z-1Eh1jcdRcUj}uHBYxNyP_rT22&vsrnxQmry#M?pgBfiTUuv6iNwa%*|H%{b$wY5$ z9>R(#=39Zfm5GV|iDCJyHU#{A?iUnE9SFNQ0SyBb%kJL`_+P99Oxy4Z%{914r8tR^ z06%`oS1N2HTkOUadVRg$35bn!BN=nIGyC;{pmE9qYQV;%8v6t z-ybU?XNwOJ>j5I)mrAqL?YlSVnYo1LC#8(EoPE0*Hzq(-dfOXUS68>&o9egzZSO3s z9e`mNDA<4I&&*i&THge^7kHFd`)>4Ifvmv3Uf&N8T)e-ShS{HdM?J5&z^YO6`(G^&QM1P50YWhdq!qN{cL}UFo zcKScrV;u}T{WFa=(G0fJADc9Zt)sx#^*5n*aa+07*qo IM6N<$f?hwOvH$=8 literal 0 HcmV?d00001 diff --git a/uniquely/keep-pwa/res/image/icon-512-maskable.png b/uniquely/keep-pwa/res/image/icon-512-maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..f28c0035b77e9877ab571485fa1f4ee4638df0bb GIT binary patch literal 4155 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 ZNd1(vsyX`r9{S&c7D7+`+atS>{{gNqzZn1k literal 0 HcmV?d00001 diff --git a/uniquely/keep-pwa/res/image/icon-512.png b/uniquely/keep-pwa/res/image/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d01867d0ff7cfac991759668adfc126612a84fc2 GIT binary patch literal 5486 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 literal 0 HcmV?d00001 From bff053dcbc00f2d5a1d46c9745987d06192e079b Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Tue, 18 Apr 2023 23:57:39 +0330 Subject: [PATCH 06/37] feat(keep): app footer --- uniquely/keep-pwa/src/content/l18e-fa.json | 4 ++++ uniquely/keep-pwa/src/ui/alwatr-pwa.ts | 3 +-- uniquely/keep-pwa/src/ui/stuff/app-footer.ts | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/uniquely/keep-pwa/src/content/l18e-fa.json b/uniquely/keep-pwa/src/content/l18e-fa.json index c25c7110b..9a764d226 100644 --- a/uniquely/keep-pwa/src/content/l18e-fa.json +++ b/uniquely/keep-pwa/src/content/l18e-fa.json @@ -5,6 +5,10 @@ "rev": 0 }, "data": { + "loading": "در حال بارگذاری ...", + + "app_footer_description": "بزرگترین تولید کننده اسکوپ سنگ در شرق کشور", + "page_404_not_found": "صفحه مورد نظر یافت نشد!", "page_404_not_found_description": "شاید بهتر باشه با استفاده از منو به صفحه مورد نظر بروید!" } diff --git a/uniquely/keep-pwa/src/ui/alwatr-pwa.ts b/uniquely/keep-pwa/src/ui/alwatr-pwa.ts index b3b72af79..00f1a7485 100644 --- a/uniquely/keep-pwa/src/ui/alwatr-pwa.ts +++ b/uniquely/keep-pwa/src/ui/alwatr-pwa.ts @@ -3,7 +3,7 @@ import '@alwatr/font/vazirmatn.css'; import {AlwatrPwaElement} from '@alwatr/pwa-helper/pwa-element.js'; import '@alwatr/ui-kit/style/mobile-only.css'; import '@alwatr/ui-kit/style/theme/color.css'; -import '@alwatr/ui-kit/style/theme/palette-270.css'; +import '@alwatr/ui-kit/style/theme/palette-20.css'; import './page/home.js'; // for perf import './stuff/app-footer.js'; @@ -25,7 +25,6 @@ class AlwatrPwa extends AlwatrPwaElement { routeId: (routeContext) => routeContext.sectionList[0]?.toString(), templates: { 'home': () => { - // import('./page/home.js'); return html`...`; }, '_404': () => { diff --git a/uniquely/keep-pwa/src/ui/stuff/app-footer.ts b/uniquely/keep-pwa/src/ui/stuff/app-footer.ts index 70aa2a223..e1ce889d1 100644 --- a/uniquely/keep-pwa/src/ui/stuff/app-footer.ts +++ b/uniquely/keep-pwa/src/ui/stuff/app-footer.ts @@ -1,4 +1,5 @@ import {customElement, AlwatrBaseElement, css, html} from '@alwatr/element'; +import {message} from '@alwatr/i18n'; declare global { interface HTMLElementTagNameMap { @@ -36,6 +37,7 @@ export class AlwatrPageHome extends AlwatrBaseElement { override render(): unknown { this._logger.logMethod?.('render'); return html` +
${message('app_footer_description')}
Keep v${_ALWATR_VERSION_}
`; } From e8f8d7edb0e7ffd1adb41d5ff8a6131ceb0e99a5 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Fri, 5 May 2023 13:33:03 +0330 Subject: [PATCH 07/37] fix(keep): config.js --- uniquely/keep-pwa/res/config.js | 2 +- uniquely/keep-pwa/res/index.html | 1 - uniquely/keep-pwa/src/config.ts | 3 --- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/uniquely/keep-pwa/res/config.js b/uniquely/keep-pwa/res/config.js index 0366cbeef..57c8f2434 100644 --- a/uniquely/keep-pwa/res/config.js +++ b/uniquely/keep-pwa/res/config.js @@ -1,3 +1,3 @@ window.appConfig = { - cdn: 'https://keep.soffit.co/cdn/v0', + cdn: '/cdn', }; diff --git a/uniquely/keep-pwa/res/index.html b/uniquely/keep-pwa/res/index.html index eb19e6672..5bb32e50d 100644 --- a/uniquely/keep-pwa/res/index.html +++ b/uniquely/keep-pwa/res/index.html @@ -67,7 +67,6 @@ درحال بارگذاری... -