Commit Graph

40 Commits

Author SHA1 Message Date
andrewwallacespeckle 7320d09a2e FE2 Viewer UX Improvements (#2079)
* WIP Sidebar

* Resizeable

* Sidebar WIP

* Sidebar Mobile

* Maximise

* Updates

* Responsive fixes

* Update

* Resizeable handle

* Tidy up Toasts

* Fix overflow in viewer

* Add space to table

* Merge embed into new sidebar

* Remove log

* Pagination. Unfold false when multiple objects

* Updates to sidebar

* Only unfold if 1 object seleted

* Reverting changes

* Only 1 item

* Hide new comment when measurements is enabled

* Delete all measurements

* Hide selection info in measure mode

* Add padding to selection info

* Add pointer-events-none

* Sidebar improvements

* Improve Resizing

* Updates pre CR

* Updates

* Remove value

* Use vueUse useEventListener
2024-02-27 12:26:00 +00:00
Kristaps Fabians Geikins 6af6c656a4 feat(fe2): app authorization workflow redesign [WBX-217] (#2044)
* WIP

* new permissions table

* permissions grouped

* updated scope descriptions

* more scope copy adjustments

* allow auth error handling

* manually closable toast notification

* fixed mentions rendering

* error view

* not you? feature

* cleanup

* minor styling changes

* WIP table

* finished authorized apps table

* minor cleanup

* cleaning up comment

* testing changes
2024-02-23 16:50:07 +02:00
andrewwallacespeckle f831c2d640 [WBX-110] Improvements to Measurement Mode (#2031)
* Added clearMeasurements functionality to the measurements extension

* Add tip & descriptions to measure mode

* Add clearMeasurements

* Clear measurements onMount

* onMount to onBeforeUnmount

* Small alignment fix

* Change from Alex

---------

Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
2024-02-12 15:07:43 +00:00
andrewwallacespeckle ff6433128a FE2 - Embedding (#1979)
* Add Dialog

* Add options to embed dialog

* Min Height of Clipboard Input multiline to 3 lines

* Check for visibility

* Link to change access of project

* Rename to guided mode

* Change icon when user clicks copy button

* Update Menu styles based on agi feedback

* Update graphql.ts

* Embed Options as hashState

* Auto grow Clipboard Input

* embed state and more options

* Tidyups

* Footer only shows when !embedOptions.isTransparent

* Add auto/manual Load

* Add Pre setup component

* WIP Button Group mobile

* Updates around manual load

* Viewer Share nav

* Add embed dialog to project page

* Minor fixes

* Check for federated

* Responsive Tidyups

* Responsive Fixes. Fix console issues

* Add Alert to Version Embed

* Disable Zoom

* GQL updates

* Comment Slideshow

* GraphQl changes

* Fix visibility

* Build fix

* Revert "Build fix"

This reverts commit 0e706cbd9fde78204032bb1ec4421b1742d023ac.

* remove unneeded change, revert yarn.lock

* Test Commit

* Remove commit test

* Fix build

* Update Tailwind. Add base url env

* fix for portal scope issue

* useLogger

* useLogger

* chore(fe2): include NUXT_PUBLIC_BASE_URL in deployment manifests

* lazy load optimization

* lint fixes

* Updates

* Re-add guided open Dialog sections

* Prevent login popup on embed

* Tidy up mobile combined button group

* Tidy up embed Dialogs

* Small styling issues

* Update scrolling in embed dialog

* Move selection info when embed

* Testing fixes

* Discuss in Speckle

* Responsive Dialog Changes

* Fix bug

* WIP Manual Load

* Fix nuxt errors

* Fix nuxt logger issue

* Fix embed dialog overflows

* New Dialog layout

* Responsive Breakpoint change

* Preview Image

* Fix bug with dialogSection

* Hide selection info on mobile when thread is open

* Footer Model Name

* Overflow on ClipboardInput

* Style fixes

* Tidy ups

* Responsive updates

* Responsive fixes

* Update button

* Changes from testing

* Fix embed height with footer

* Fix Dialog Section

* Fixes from testing

* Move "reset filters" on embed

* Small fixes

* Updates from CR 1

* CR Comments 2

* Updates from CR

* Add deserializeEmbedOptions helper

* DialogSection changes

* Revert changes in TextArea

* Updates from CR

* Only check for noscroll in watch

* Update useRoute

* Comment Slideshow mode

* Changes from testing

* Fix mobile share button

* onMounted warn fixes

* Updates from testing

* Remove nesting of ManualLoad

* Keep Speckle text on mobile

* minor cleanup & bugfixes

* Add target prop to Logo

* navbar flash fix + more cleanup

* Fix urls

* Footer Logo changes

* Remove viewer-transparent from layout

* Add Reply in Speckle

* Remove Anchored Points from embed

* Final changes pre CR

* Fix Anchored Points

* Update packages/frontend-2/components/project/model-page/dialog/embed/Embed.vue

Co-authored-by: Kristaps Fabians Geikins <fabians@speckle.systems>

* Fixes from CR

* Updates from cr

* Changes WIP

* Fix for dialog opening

* Changes from PR

* Updates to check embed in activity

* fix(fe2): project settings dialog error

* Make Team open section on click of "Manage"

* Fixes from merge

* Changes from cr

* Compare old to new in watch

* Fix logo in footer of embed

* Fixes from merge

* Fix build. Fix lazy load

* Updates from Benjamin

* Fix transparent bg

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: Kristaps Fabians Geikins <fabians@speckle.systems>
2024-02-06 10:38:22 +00:00
andrewwallacespeckle 2d184a0b59 FE2 - User Feedback Request - Menu item and Callout Banner (#1907)
* Add Feedback Banner & Dialog

* Add Menu Item for Feedback

* New Nav Style & tidy up

* Feedback improvements

* FE2 Fixes. WIP Description

* Reorder Options. Fix cookie expiry

* Cookie update

* New function to handle cookie expiry dates. Update feedback dates.

* Change getFutureDateByMonths to getFutureDateByDays

* Updates to Feedback

* Instructional Animation Component

* Add select-none

* Fix storybook issue

* Changes from CR

* Dynamic Slots in Animation Component

* Update FE2 to use modified animation component

* Fix typing issue

* Changes from CR
2024-01-04 14:18:39 +00:00
andrewwallacespeckle 77d760c07f FE2 UI minor improvements (#1905)
* FE2 Fixes. WIP Description

* Reorder Options. Fix cookie expiry

* added ability to edit model description in backend

* Add Description to "Add Model" WIP

* Update Radio component so icons are part of label

* Fix to disable measure mode when user navigates to another control

* Add Description WIP

* Fix description returning null

* Add Header to versions page

* Checks for PR

* Fix build error

* Changes from CR

* Use ProjectPageProjectHeaderFragment

* Remove description from handleSubmit

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2023-12-15 13:23:15 +00:00
andrewwallacespeckle c8bdf01cdd FE2 Viewer - Add Measure Mode (#1889)
* RadioGroup & Initial UI for Measure

* Add option to Panel to allow actions to move to bottom

* Typo

* Add count to precision

* Add enable, snap and type api integrations

* Update Units WIP

* Add precision update

* Update v-tippy name

* Updates

* New design

* Better darkmode radio. Keystrokes.

* Styling fixes. Fix select mount-menu-on-body

* Fix ts bug

* Show label in Select for units

* Update shortcut to D

* Small design changes

* Small tidy ups

* WIP New Measurements Helper State

* Fix build erros

* Remove viewer import from shared

* Delete WIP

* Fix delete

* Fix close button on measure mode

* Measurement nullable

* Updates from PR

* Seperate measurements into measurementsEnabled & measurementOptions

* Update state.ts

* Update ts bugs

* Updates to RadioGroup

* Use ctx.updateArgs

* Replace RadioGroup with Radio - More consistent with existing inputs

* Update FE2 to use new Radio

* Fix circleci fail

* Fix build

* Fix wrong initial state for vertexSnap

* Adjust type to measurement

* Use Lodash isEqual

* Fix bug where units don't update

* Remove double input

* Fix server error in data.ts

* Revert change around useEqual
2023-12-06 09:56:22 +00:00
Kristaps Fabians Geikins f80a7189a0 chore(fe2): upgrade to nuxt 3.8.2 (#1887)
* chore(fe2): upgrade to nuxt 3.8.2

* fix tailwind-theme build

* readme update

* removing storybook from fe2 :(

* fix(fe2): codegen schema url resolution
2023-11-29 10:22:17 +02:00
andrewwallacespeckle 601b517058 Various Android Responsive Fixes (#1872)
* Dialog - use 100dvh

* Add "There's more to Speckle - be sure to visit on a computer" to Dashboard

* Fix Breadcrumb logo skewing

* Lower mobile panel responsive fixes

* Tidy up "You have completed" message

* Remove info colour from Change Password

* Add desktop icons. Restyle Notifications

* Colour suggested by Agi

* Use dvh everywhere

* Small update

* Fix compostable warning
2023-11-16 15:07:44 +00:00
andrewwallacespeckle ee352e8ddb FE2 - Web Onboarding Enhancements (#1859)
* Change expiration of hasDismissedChecklistForever to 2 years from session

* Register Panel WIP

* Register Page

* Checklist Responsiveness

* Updates to checklist and onboarding

* Fix for viewer comments

* Automation Dialog updates

* feat(fe2): quick fixes

---------

Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
2023-11-08 11:37:59 +00:00
andrewwallacespeckle 9f4b0c99da Dialog Consistency Task (#1852)
* Fixing up "Manage Project" & "New Project" Dialogs

* Dialog Updates

* Updates from tickets

* Remove sidepanel

* Remove max-height prop from Dialog component

* Updates to Profile Dialog

* Props for Buttons in Dialog. Attachment Dialog

* Remove margin to show issue with dialogs

* Update to stories

* Responsive updates

* Fix overflow on MoveTo

* Use Dialog header prop

* Dialog updates

* Responsive Changes

* Responsive fixes

* Small responsive change

* Fixes

* Type based declaration

* Last fixes

* Small darkmode fixes

* Updated type

* Update

* Updates from PR comments

* Fix storybook issues

* Updates from PR

* Updates from PR

* Changes from Agi

* Turntable mode Toggle

* Fix dialog shadows on scroll

* Fix invite autocomplete

* Changes from PR Comments

* Small styling updates

* Responsive views

* Adjust Danger zones

* Fix typo

* New Webhook Icon. Swap icon prop to slot.

* Adjust Icon weights

* FE2-TASK-27

* FE2-TASK-26

* FE2-TASK-28
2023-11-07 11:18:25 +00:00
andrewwallacespeckle cde5dd355c Pre Specklecon polish - Various tasks (#1849)
* “Selection info” panel should remember the Fold/Unfold state of it

* Remove old naming terminology strings

* Rename “Share” To “Copy Link” - Difficult to find the model ID for a new model before data is uploaded

* Add & Rearrange new Viewer Buttons WIP

* Small enhancements to the registration form

* {mobile } The extra “new model” functionality in Model tree/list view just falls apart

* {mobile } Shorten the long Webhook buttons

* Revert "“Selection info” panel should remember the Fold/Unfold state of it"

This reverts commit d1b94036a596c3c995e65eae32ebe2f63580ea66.

* Revert Player controls default

* Responsive changes to Viewer

* Responsive Comments

* Responsive Viewer

* Small fix

* Small fix

* Design improvements

* Styling updates

* style fixes

* Profile pop-up stays opened after selecting “Server Management”

* Profile pop-up stays opened after selecting “Server Management”

* Change the Project Settings Icon to a gear

* Misleading text while uploading ifc/obj file

* Amends from polish list

* Viewer Buttons WIP

* Updates buttons in Viewer

* No backdrop blur

* Style updates

* New Colouring Icon

* New useBreakpoints

* Latest fixes pre PR

* Updates from PR Comments
2023-11-02 11:56:16 +00:00
Kristaps Fabians Geikins f3d6484d97 fix(fe): broken select box menu after SSR reload 2023-11-01 15:50:55 +02:00
Kristaps Fabians Geikins b10bbf0c72 feat(ui-components): ability to mount select box menu to body to avoid overflow issues (#1842) 2023-10-31 14:11:05 +02:00
andrewwallacespeckle 76cbcef4e6 Feature - FE2 - Developer Settings (#1822)
* WIP Developer Settings

* Access Tokens

* scopes load fix

* mapping to correct struct

* Updates to Application

* Update to apps.js to fix scopes error

* Application table done

* Token confirmation done.

* Application Success

* Fix ts

* Darkmode fixes

* Responsive fix

* Fixes for PR

* Pass size prop to Editable Avatar

* Updates from PR comments

* Section Header - TS Types

* Add Typeguard to Delete Dialog

* Add Description to scopes query

* minor type guard fix

* edit application cache update fix

* Fix Dialog Expansion

* Rename mutations to correct casing

* Remove unneeded import for defineProps

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2023-10-26 12:51:05 +01:00
Dimitrie Stefanescu 0f562ce19e Dim/fe2: Automate Results Dialog Revamp (#1832)
* feat(ui): adds link to all models from project dashboard card

* feat(ui): refactoring layout to focus on function runs

* chore(server): a bunch of comments regarding some unclear automate api parts

* feat(fe2/automate): cleans up automate results dialog summary

* feat(fe2/automate): adds automation status to model list view

* feat(fe2/automate): adds automation status to version card

* feat(fe2/automate): adds automation status to version card properly

* feat(fe2/automate): linting & adds id back to func name for refs

* fix(fe2): linting errs/fe2 tests

* fix(fe2): types

* fix(fe2): types...
2023-10-24 14:26:20 +01:00
Kristaps Fabians Geikins d8640bbdc9 feat(ui-components): tags input component (#1810)
* FormSelectBase converted to generic Vue component

* WIP tags w/ custom input box

* a11y works

* proper tags wrapping

* errors/validation/icon styling

* styling fixes

* autocomplete item resolution

* feat: configurable tags input

* various fixes

* moved avatar components to ui-components

* replaced avatar in frontend-2 w/ new ui-components exports

* new icon loader

* added validation support for avatar editor

* updated fe-2 to use new avatar editor api

* disabled support for avatar editor

* more fixes and improvements

* attempted preview-service fix

* attempted preview-service fix

* added story

* linting fix

* more fixes

* server test fix
2023-10-16 14:10:41 +03:00
andrewwallacespeckle 2007d95933 Revert removing of max-width breakpoint modifiers (#1815) 2023-10-13 13:30:03 +01:00
andrewwallacespeckle de77416ca6 Fixes to dialog Semantic Colours (#1811) 2023-10-09 11:34:11 +01:00
andrewwallacespeckle 76cef613cd Updates to Dialog - UI Components (#1809)
* Updates to Dialog after conversations with Agi

* Fix z-indexing

* Add throttle to onScroll
2023-10-05 17:03:00 +02:00
Kristaps Fabians Geikins 1fcd4fbe2a feat(ui-components): source apps improvements 2023-09-30 21:20:11 +03:00
Kristaps Fabians Geikins a89446a216 feat(ui-components): textarea styling improvements 2023-09-28 15:54:40 +03:00
andrewwallacespeckle 0045c353c6 Feature: FE2 - Project Webhooks Page (#1792)
* Layout Pages

* Add Multi Select with Badges

* Add MultiBadge

* Add prevent close on click outside

* Fix import issue

* Import Table

* Add Classnames to buttons

* Add Switch Component

* Update for webhooks

* skip precommit hooks

* Remove Infinite Load. Update Types

* Create Webhook Dialog

* Tidy Ups

* Edit Webhook dialog

* WIP Breadcurmbs

* Changes from calls with Fabians

* Breadcrumbs

* Reorders

* Fix Create Dialog

* Rename MultiBadge to BadgeSelected

* Fix and update Story file for Table

* Adjust Padding for Buttons in Table

* Add extra story, adjust padding for no buttons

* Fix bug with Edit Select

* fixed Webhook sorting + added Webhook.hasSecret and Webhook.projectId

* fixed hydration mismatch

* Changes from PR feedback

* Validation Rule for Select

* Reset Dialogs on Cancel. Conditionally render headers in Table

* stricter webhook gql types

* stricter webhook gql types

* Fix initial dialogs

* Quick Fixes

* Add projectWebhooksRoute

* Remove TableItemType

* Fixes from PR

* Fix broken Query

* Fixes from PR

* Fix based on PR

* Fix from PR

* Changes to index

* Fix in index

* Updates to Validation and Table

* Add "by" prop to FormSelectBadges and renamed component

* Use defineModel for Switch

* Revert "Use defineModel for Switch"

This reverts commit 6bc9e07a767cdc64f06c03b028150915e013ed4f.

* Replace breadcrumbs with projectWebhooksRoute

* Rename FormValues to WebhookFormValues

* Add target blank and simplify trigger mapping

* Fix casing of webhookFormValues

* Change webhookModel to prevent props mutation

* Remove unnecessary typecast

* Webhook deletion now uses fieldNameWhitelist.

* Use convertThrowIntoFetchResult and getFirstErrorMessage in Create

* Use defineModel for handling open state of Dialogs

* Optimise Switch component with defineModel

* Merge Create and Edit Dialogs

* Fix issue with Status Icons

* Remove console log

* WIP Merge of Edit and Create

* Add optional placeholder to SelectBase. Update Events placeholder.

* Add secret to Create webhook dialog

* Update Watch

* Rename Dialogs. Fix active select items

* Fix Select active items

* Simplify triggers, add secret to create call

* Remove $webhooksId: String

* fix: stale form state across edit/create webhook dialog sessions

* Fix from PR

* Swap t.text for t.id

* Use enum for historyStatus

* Use consistent story formatting

* More consistent create/edit mutations

* fix be linting errors

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2023-09-26 15:41:29 +02:00
Kristaps Fabians Geikins 7419189b6e feat(ui-components): more consistent FormSelectBase error/required state 2023-09-22 10:23:59 +03:00
Kristaps Fabians Geikins 696c09e807 feat(ui-components): new CommonAlert features 2023-09-21 14:20:11 +03:00
Kristaps Fabians Geikins 144819a2b6 fix(fe2): move versions not working 2023-09-21 11:14:47 +03:00
Kristaps Fabians Geikins 79d293e178 fix: preparing automation backend for use in FE (#1790)
* fix: preparing automation backend for use in FE

* minor migration adjustment

* modelId only

* more CR fixes

* improved validation

* WIP model automation status (#1791)

* additional run status insert validations

* model card dialog

* show view automation btn

* story mock fixes

* version card dialog

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2023-09-18 11:49:11 +03:00
Kristaps Fabians Geikins dd20c22a63 more layoutdialog improvements 2023-09-08 15:55:17 +03:00
Kristaps Fabians Geikins d95d03605e feat(ui-components): LayoutDialog form support 2023-09-08 11:51:50 +03:00
Kristaps Fabians Geikins 1ff33e7255 feat(fe2): admin panel guest role switching (#1781) 2023-09-05 08:35:25 +03:00
andrewwallacespeckle 671979e012 Feature - Frontend2 - Server Settings Pages (#1764)
* Add server management menu item

* Server Management Page & Settings Dialog

* escape from the precommits hooks

* Add Delete User Dialog

* Add invitations page

* Add Projects Page

* Pulling in GraphQL Data

* Settings Mutations

* Fix cardinfo type

* GraphQL in Active Users

* Add icons

* Infinite Load on Active Users

* Tidy Ups

* TS fixes

* Add Update button functionality

* Add Delete User

* Projects

* Home Done

* New query

* Delete User

* WIP User Roles

* Overflow fix

* Table Update

* Add Onclick to rows

* Fix bugs

* Fix console error

* Admin Middleware

* Role Update Dialog

* TS Fixes

* Latest updates

* Tidyups

* Tidy Up Nav Menu

* Tidy Up Card

* ChangeUserRoleDialog Tidyup

* Fix bubbling issue on Table

* Design fixes

* fix: speckle server version hydration mismatch

* Remove Dialog bg-white

* Rename Query, Fix Export

* fix: allowing FormSelectBase to reject updates

* feat: cache policies for new admin graph fields

* feat: cache updates so no refetch necessary

* PR Changes

* Fix Projects Page

* Updates to Roles

* Project Delete Mutation

* Add Resend & Delete Invite Mutation

* Fix console warnings

* Disable active user role select

* Linting fixes

* Reorder

* Linting fixes

* Changes from PR

* Fixes from PR

* Ui Fixes

* Update Settings Dialog Cache on Save

* Fix colours

* Delete Invitation Mutation Moved

* Delete Project Logic moved

* Delete Mutation moved to component

* Change User Role mutation moved to Dialog

* Reorder

* WIP - Checkbox Bug

* attempted checkbox fix

* Update Caching

* Rollback tsc

* Update to Resend Button

* Add new buttons

* Use defineModel

* Re-add emits

* Move mutation

* serverInfo cache update fix

* fixed delete invite cache update

* Updates to Project Delete Dialog Caching

* Remove unneeded props

* Fix caching in DeleteUserDialog

* Improved error handling in server info update

* Swap Invite modal to new style

* updated evictObjectFields details

* Update cache on successfull invite

* Add Invite dialog

* Add project Dialog Update

* defineModel

* Remove emits from Add Project and Invites

* Add missing Dialog

* Updates from PR

* Adjust query

* Remove need for items in admin data query

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2023-09-04 11:57:34 +01:00
Kristaps Fabians Geikins 74ad0999f2 chore: moving writableAsyncComputed to ui-components (#1778) 2023-09-04 11:03:28 +03:00
Kristaps Fabians Geikins 6b6c6b3bfa chore: updating various dependencies (#1774)
* chore: updating nuxt & apollo client

* global tsc update
2023-08-25 14:31:08 +03:00
Kristaps Fabians Geikins 1249d5115f fix: improvements not really related to "guest role" launch (#1773)
* fix: issues not really caused by guest role changes

* tippy types fix
2023-08-25 09:53:26 +03:00
Kristaps Fabians Geikins 069f64afc9 feat(fe1 & fe2): guest role (#1768)
* feat: user guest role switching in FE1

* removed stream create buttons

* fe1 done

* fe1 - specifying role in invite dialogs

* fe1 - bulk invites

* WIP FE2 changes

* fe1: allow role select condition fixes

* xtra limitations on createForOnboarding

* more invite creation validations

* no longer able to set guest as project owner in invite

* preparations for server role select in invite dialog

* team management dialog done

* server invite dialog updated

* hiding invite dialog

* fixed mocks
2023-08-24 09:30:09 +02:00
Kristaps Fabians Geikins 8d85829dad feat(ui-components): FormSelectBase exposed triggerSearch 2023-06-21 19:03:39 +03:00
Kristaps Fabians Geikins cf65cfd57b feat(ui-components): more new components (#1613) 2023-06-13 09:33:10 +03:00
Kristaps Fabians Geikins 2b08bd5452 feat: moved various LayoutXXX components to ui-components (#1607)
* fix(ui-components): use basic anchor if external=true

* moved layout components to ui-components

* integrated new components into fe-2
2023-06-08 09:12:09 +03:00
Kristaps Fabians Geikins 9427686d42 fix(fe2): various follow mode & thread viewer state sync fixes & improvements (#1595)
* fix(fe2): unfollow on camera move

* WIP new state hydration function

* WIP sync state

* minor cleanup

* fix coloring not being tracked

* fix for post thread close camera pos restore

* supporting duplicate users

* preventing guest commenting + state reset fixes

* fixed guests not receiving viewer comment updates

* post-thread creation opens new thread

* removing gap between 'X is typing' and bubble appearing

* reset filters will also reset colors now

* fixed thread full context

* camera reset fix

* thread reset fix

* fixed router concurrency issues

* followed user avatar fix

* TONS OF DEBUGGING FOR ROUTER QUEUING

* removing queued routing debugging stuff + disabling spotlight cancelation

* WIP async URL updates

* missing authLogger fixed

* fix for broken projection

* fix for bubbles positions not updating correctly

* queued routing cleanup

* fixed spotlight mode disabling unnecessarily

* added back stoplight stop on ctrl

* undid spotlight debugging
2023-05-29 15:20:32 +03:00
Kristaps Fabians Geikins 7d3be1d131 feat: tailwind theme & Vue base components extracted to own NPM packages (#1576) 2023-05-16 13:43:04 +03:00