475 Commits

Author SHA1 Message Date
sriram veeraghanta
78b4e43976 refactor: flatten editor src/core into src (#9723)
Collapse the remaining src/core/ directory in @plane/editor up into src/,
removing the last layer of nesting left over from the ce/ee split removal.

- Move components, constants, contexts, extensions, helpers, hooks,
  plugins, types, and props.ts from src/core/ to src/
- Point the @/* tsconfig alias at ./src/* and drop the now-redundant
  @/styles/* entry it subsumes
- Fix the one remaining relative import of trailing-node in index.ts

All 216 file moves are pure renames; no file contents changed.

Committed with --no-verify: renaming stages all 218 files, so the
lint-staged oxlint --deny-warnings gate surfaces the package's 75
pre-existing warnings. Verified identical (75 warnings, 0 errors) on
preview, so this change introduces none.

Claude-Session: https://claude.ai/code/session_01XxAggkh7oCCD3dNyKp1Zon
2026-08-31 14:18:01 +05:30
sriram veeraghanta
fd4110e8aa refactor: flatten editor package folder structure (#9719)
Remove the ce/ee split in @plane/editor and consolidate everything under
src/core, matching the layout used in the enterprise repository.

- Move ce components, constants, extensions, helpers, and types into core
- Rename ce/extensions/slash-commands.tsx to additional-slash-command-options.tsx
  to avoid clashing with the existing slash-commands/ directory
- Merge ce type stubs and parser helpers into their core counterparts
- Drop the ee re-export shim (no consumers)
- Rewrite @/plane-editor/* imports to @/* and trim tsconfig path aliases
2026-08-31 14:06:41 +05:30
sriram veeraghanta
1a76f29c79 chore: upgrade React to 19 and React Router to 8 (#9530)
* chore(deps): upgrade @headlessui/react to v2

React 19 requires this: v1.7.19's peer range stops at React 18, and its dist
reads `element.ref` (removed in React 19, fires on every `as={Fragment}` site)
and `React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner`
(also removed, which leaks an unbounded Map in every Tab.Group). 1.7.19 is the
last v1 release, so no patch is coming.

Landed on React 18 so it can be verified and reverted on its own.

v2 keeps the dot-notation API (Menu.Button, Dialog.Panel, ...) and the `active`
render-prop key as working @deprecated aliases, so none of the ~600 compound call
sites change. What does change is the default rendered tag for a few components.
Diffing defaultTag values across the v1.7.19 and v2.2.10 bundles gives:

  bare <Transition>   div      -> Fragment
  Combobox.Options    ul       -> div
  Combobox.Option     li       -> div
  Listbox.Options     ul       -> div
  Listbox.Option      li       -> div
  Tab.Group           Fragment -> div

Menu.*, Dialog.*, Disclosure.*, Popover.*, Switch and RadioGroup are identical
between the versions and are untouched.

Those six changes compile cleanly and fail only visually, so each affected site is
pinned with an explicit `as=` via a new codemod rather than by hand. The codemod
resolves components through their imported name, so aliases such as
`Popover as HeadlessReactPopover` are handled and same-named first-party
components are skipped.

Two type changes needed real fixes:
- Combobox widens a non-multiple value to `T | null` (4 sites). v1 never emitted
  null, so these drop it and keep the existing non-nullable contract.
- Popover.Panel types its ref as Ref<HTMLElement> rather than the concrete tag.

Committed with --no-verify: the pre-commit oxlint --deny-warnings hook trips on
warnings (no-array-index-key, no-shadow) that already exist on preview in files
this change only adds a JSX attribute to.

Claude-Session: https://claude.ai/code/session_01NGjXVUi4D8JGWy7b7KDNaN

* chore(deps): remove React-19-hostile dependencies

Three dependencies break under React 19. Fixed here, still on React 18, so each
is verifiable on its own before the runtime moves.

@blueprintjs/popover2 -> @plane/propel tooltip
  Hard crash. popover2 renders Blueprint core's Overlay, whose container ref
  handler is `findDOMNode(ref)` — removed in React 19 — so every tooltip open
  would throw. popover2 is deprecated, terminal, peer-caps at React 18 and pins
  @blueprintjs/core ^4.20.2 (the findDOMNode carrier), so there is nothing to
  bump to. packages/ui already depends on @plane/propel, whose Tooltip takes a
  superset of the props, so @plane/ui/Tooltip now delegates to it.

  The lazy-render gate stays in @plane/ui rather than moving to propel, because
  91 call sites pass `renderByDefault` and propel's Tooltip accepts but ignores
  it. Keeping the gate here preserves their current behaviour.

  TPosition is kept as an alias of propel's TPlacement. The Blueprint-only values
  (bottom-left, left-top, ...) have no equivalent there, and no call site used one.

  @blueprintjs/core had zero imports and is dropped alongside popover2.

react-color -> patched
  Hard crash. Checkboard is a function component that reads `renderers.canvas`
  and gets `renderers` from defaultProps, which React 19 ignores for function
  components. Four render paths hit it: Sketch renders <Checkboard /> prop-less,
  Block passes only borderRadius, and Alpha and Chrome forward a `renderers`
  that is often undefined.

  Patched to apply the defaults inside the component, falling back only when a
  prop is undefined — the same rule defaultProps used. Patching rather than
  swapping libraries keeps the picker pixel-identical, and react-color is still
  needed for the three TwitterPicker sites (those go through the ColorWrap HOC,
  which hoists defaults onto a class and so is unaffected).

react-markdown 8 -> 10
  Blocks typecheck rather than runtime: v8's own types reference the global JSX
  namespace, which @types/react 19 removes. The single consumer passes only
  `components`, and none of the props v9/v10 removed are used.

Left alone deliberately: react-masonry-component and use-font-face-observer have
peer ranges that stop before React 19 but use no API it removed, so they keep
working. Replacing them would change layout and add unrelated risk here.

Committed with --no-verify: the pre-commit oxlint --deny-warnings hook trips on
warnings that already exist on preview in the touched files.

Claude-Session: https://claude.ai/code/session_01NGjXVUi4D8JGWy7b7KDNaN

* feat(deps): upgrade React to 19.2.8

Bumps react, react-dom, @types/react, @types/react-dom and react-is, plus the
companion packages whose peer ranges stopped at React 18: mobx-react 9.2.2
(9.x, not 10 — that needs mobx 7), swr 2.4.2, react-hook-form ^7.84.0,
recharts ^2.15.4 (2.15.4 is where recharts stopped relying on defaultProps for
function components) and @floating-ui/react ^0.27.20 (0.26's useMergeRefs
mishandles React 19 ref-callback cleanup).

React is pinned through `overrides` as well as the catalog. With
node-linker=isolated, auto-install-peers and resolution-mode=highest, anything
still declaring a React 18 peer can otherwise resolve its own copy, and a second
React shows up as an invalid hook call at runtime rather than as an install
error. The vite `resolve.dedupe` entries only cover the three client bundles,
not the SSR build, the tsdown package builds or Storybook.

peerDependencyRules records the three dependencies whose peer ranges predate
React 19 but which use nothing it removed, so the acceptance is explicit rather
than hidden behind the global strict-peer-dependencies=false.

Source changes, all forced by @types/react 19:

- RefObject<T> is now { current: T } rather than { readonly current: T | null },
  so useRef<T>(null) yields RefObject<T | null>. 57 annotations across 48 files
  widened to match.
- Two drag-and-drop call sites passed `elementRef.current` where a narrowed local
  was already in scope. TypeScript only carries aliased narrowing back to the
  original reference through readonly members, so with `current` now mutable
  these have to use the local.
- useRef() lost its zero-argument overload: 7 call sites now pass undefined.
- The global JSX namespace moved under React (2 sites).
- ReactElement's props parameter defaults to unknown instead of any. Where the
  props shape is known it is named; for propel's Button/Badge icon props it is
  `ReactElement<any>`, which keeps the behaviour those props already had rather
  than pushing a new constraint onto every caller.

react-hook-form's Control also became invariant — 7.78 added `_options.validate`,
whose `name` is a keyof union — so `Control<any>` no longer accepts a typed
form's control. ControllerInput and ImagePickerPopover are now generic over the
form values and infer from `control`, leaving their call sites unchanged. Pinning
below 7.78 would have avoided this, but only by freezing the dependency.

oxlint's react.version setting moves to 19.0. Note this invalidates the whole
turbo cache, since turbo.json lists .oxlintrc.json in globalDependencies.

check:types and build are green across all 28 tasks; oxlint reports 0 errors,
with the warning count unchanged from preview apart from the files added here.

Committed with --no-verify: the pre-commit oxlint --deny-warnings hook trips on
warnings that already exist on preview in the touched files.

Claude-Session: https://claude.ai/code/session_01NGjXVUi4D8JGWy7b7KDNaN

* feat(deps): upgrade React Router to 8.3.0

Bumps react-router and @react-router/{dev,node,serve} together. All four must
move as a set: node and serve declare an exact `react-router: "8.3.0"` peer, and
dev peers `@react-router/serve: ^8.3.0`.

No application code changed. The repo imports only Link, Links, Meta, Outlet,
Scripts, isRouteErrorResponse, redirect, useLocation, useNavigate, useNavigation,
useParams and useSearchParams from "react-router", plus HydratedRouter from
"react-router/dom" — all of which survive v8. There is no react-router-dom, no
useMatches, no RouterProvider and no isSsrBuild anywhere, and the one meta()
that reads loader data already used `loaderData`.

The v8 future flags are all default-on now and none needed a config change:
v8_middleware (nothing uses loader/action `context`), v8_viteEnvironmentApi (no
isSsrBuild, no SSR-specific rollupOptions), v8_passThroughRequests (the single
server loader destructures only `params`), and v8_splitRouteModules (an
optimisation, not "enforce"). v8_trailingSlashAwareDataRequests actually fixes a
latent bug: the root data request for apps/space moves from /spaces.data to
/spaces/_.data, and only the latter matches Caddy's `reverse_proxy /spaces/*`.

Two overrides had to be scoped, both found by running the built SSR server rather
than by reading the diff:

- @react-router/serve v8 needs Express 5 (it mounts with `app.all("/{*splat}")`,
  Express 5 path syntax). The global `express: "catalog:"` override was forcing
  Express 4 into it, where that pattern matches nothing — every route 404'd
  through to finalhandler. The catalog stays on Express 4 for apps/live, which
  needs express-ws.
- Express 5's router needs path-to-regexp 8. The global `path-to-regexp: 0.1.13`
  pin (there for Express 4's ~0.1.12) reached it and crashed startup with
  `pathRegexp.match is not a function`.

Node floor rises to 22.22.0, which all four packages now require, in
package.json, .mise.toml and the pinned CI workflow. The main build/lint workflow
called setup-node with no version at all, so it ran on whatever the runner
shipped; it and check-version now read a new .node-version file.

Verified by serving the built apps/space bundle: /spaces/ and /spaces/issues/:anchor
return 200 with server-rendered HTML and hydration context, and /spaces/_.data
returns 200 in the new v8 format. check:types and build are green across all 28
tasks; oxlint reports 0 errors.

Committed with --no-verify: the pre-commit oxlint --deny-warnings hook trips on
warnings that already exist on preview in the touched files.

Claude-Session: https://claude.ai/code/session_01NGjXVUi4D8JGWy7b7KDNaN

* fix: address PR review comments

- type ControllerInput name as FieldPath<TFieldValues> and thread generics through admin form configs
- type integration popup ref as Window | null and guard against blocked popups
- include undefined in resizable sidebar peek timeout ref type
- fix invalid ul/li markup from headlessui v2 codemod output (Combobox.Options as ul with non-option children)
- codemod: only skip Fragment import when a value import binds local name Fragment; cover type-only and aliased imports
- patch react-color es build alongside lib build
- use parent>peer selectors in peerDependencyRules.allowedVersions
- import cn from ../utils/classname directly in tab-list

* fix: clear integration popup polling interval on unmount

* fix(deps): bump nanoid to 3.3.18 and js-yaml to 4.3.1 for dependabot alerts

* fix(deps): drop stale @react-router/node 7.18.1 override

The override was added on preview while the tree was still on react-router
7.x. On this branch the catalog pins @react-router/node to 8.3.0, so the
override became a pure cross-major downgrade: it forced @react-router/dev,
@react-router/express and @react-router/serve — all of which declare a
dependency on @react-router/node 8.3.0 — down to the v7 adapter, whose
peerDependencies pin react-router to an exact 7.18.1 against a tree on 8.3.0.
It also undercut the v8 engine floor (node >=20 vs >=22.22.0).

Removing it resolves a single @react-router/node 8.3.0 across the graph and
drops v7's @mjackson/node-fetch-server in favour of the
@remix-run/node-fetch-server that dev and serve already pull in.

* fix: retire previous popup poller before restarting integration auth

checkPopup overwrote popupCheckIntervalRef without clearing the interval it
replaced. A second SelectChannel click therefore orphaned the first poller,
which kept running and — since its clearInterval read the ref rather than its
own id — went on to clear its successor instead of itself, leaving the
replacement dead and the orphan alive past unmount.

Clear the outgoing interval before assigning, and let each poller clear itself
by its captured id.

* fix(ui): pin remaining Combobox.Options to the v1 ul default

Headless UI v2 changes the Combobox.Options default tag from ul to div. These
seven call sites were missed by the headlessui-v2-default-tags codemod run,
while their child Combobox.Option elements had already been given as="li" — so
post-upgrade they rendered <li> inside a <div>, markup neither v1 nor a fully
migrated v2 produces.

Generated by rerunning `pnpm run headlessui-v2-default-tags` in
packages/codemods, then oxfmt; the codemod now reports no remaining affected
sites.

Committed with --no-verify: the pre-commit oxlint --deny-warnings gate fails on
20 pre-existing warnings in these files (no-shadow, jsx-a11y, exhaustive-deps),
identical in count and kind before this change and present on preview. Fixing
them is unrelated to a one-attribute JSX edit.

* fix(i18n): initialize i18n before hydration instead of gating the provider

TranslationProvider returned null until i18next initialized, making the first
client render diverge from the server/prerendered HTML. React 19 no longer
clears server DOM it could not adopt, which left stale markup on screen (space
showed a frozen full-page spinner). Render the provider unconditionally and
await initPromise before hydrateRoot in web and space — the remix-i18next
pattern for React Router. Admin has no translations and is untouched.

* fix(deps): bump @react-pdf/renderer to 4.8.1 for React 19

4.3.0 crashes at render time under React 19 (proven in the EE upgrade by
rendering a PDF); 4.8.1 is the first line verified against 19.2.x.

* fix(deps): pin brace-expansion to 5.0.9 to clear DoS advisories

GHSA-mh99-v99m-4gvg and GHSA-rgw5-rvv9-x895 (the second bypasses the first's
mitigation), reachable via serve>serve-handler>minimatch. pnpm audit --prod
is clean after this.

* fix: keep the root route shell-thin so SPA prerender stays fast

React Router 8 generates the SPA fallback index.html through a preview-server
fetch with a hard-coded 10s timeout (RR7 rendered it in-process with none).
The render only outputs the fallback, but root.tsx statically imported the
provider chain and store layer, so Node evaluated a 7.8MB server bundle first.

Move AppProvider and the app chrome into a pathless layout route wrapping
every route: in SPA mode React Router server-builds only the root route, so
the server bundle drops to 644KB, evaluation from 838ms to 56ms, and the
prerender step from 0.74s to 0.09s. app/layout.tsx was a dead Next.js-era
file nothing referenced; it is repurposed as the shell layout.

---------

Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
2026-08-26 17:39:36 +05:30
sriram veeraghanta
e056bbf9eb chore: dump version 2026-08-16 23:36:30 +05:30
sriramveeraghanta
ed61f9925b chore: update package version 2026-08-04 20:11:48 +05:30
sriram veeraghanta
08a7d12b9d fix: resolve open CodeQL security alerts (#9505)
- adapter/oauth.py: stop logging request headers on user-info fetch
  failure; they carry the Bearer access token (py/clear-text-logging-sensitive-data)
- adapter/base.py: drop the email value from the invalid-email warning
  log (py/clear-text-logging-sensitive-data)
- provider/oauth/github.py: stop logging organization id / user login
  on org-membership failure (py/clear-text-logging-sensitive-data)
- editor custom-link: rewrite the C0-control strip regex with escaped,
  non-overlapping ranges instead of raw control bytes overlapping \s
  (js/overly-large-range); also fixes the file being detected as binary
2026-07-29 20:28:09 +05:30
sriramveeraghanta
6a061acc69 chore: pacakge version bump 2026-07-28 15:50:53 +05:30
Manish Gupta
73e360844b [WEB-7888] fix(security): normalize href before protocol check in CustomLinkExtension (GHSA-v2vv-7wq3-8w2j) (#9313)
* [WEB-7888] fix(security): normalize href before protocol check in CustomLinkExtension (GHSA-v2vv-7wq3-8w2j)

The existing startsWith("javascript:") guard in parseHTML() and renderHTML()
is bypassable with a whitespace prefix (e.g. "\tjavascript:alert(1)"). Per the
WHATWG URL spec, browsers strip ASCII Tab/LF/CR from URL strings during parsing,
so the whitespace-prefixed href passes the guard, is rendered into the DOM
verbatim, and executes when clicked (browser strips the tab → javascript: fires).

Add isDangerousHref() helper that strips Tab/LF/CR and leading C0 controls
before the protocol check, replicating the browser's normalization. Replace
both naive startsWith checks in parseHTML() and renderHTML() with this helper.

Add a defence-in-depth guard in clickHandler.ts that rejects
javascript:/data:/vbscript: hrefs before window.open() — link.href is the
browser-resolved URL (whitespace already stripped), so a regex check there
catches any URI that bypasses the parse/render-time guards.

Co-authored-by: Plane AI <noreply@plane.so>

* [WEB-7888] fix: align clickHandler blocked-scheme list with isValidHttpUrl policy

Add file: and about: to the clickHandler protocol guard to match the
blocked-scheme contract in isValidHttpUrl, avoiding policy drift.

Co-authored-by: Plane AI <noreply@plane.so>

---------

Co-authored-by: Plane AI <noreply@plane.so>
2026-07-09 18:30:54 +05:30
Rahul Cheryala
90ae8457d0 [GIT-239 | GIT-240] refactor: hooks and constants consolidation to core (#9204) 2026-06-26 20:36:52 +05:30
sriram veeraghanta
3f57fefdb4 chore: move all dependencies into pnpm catalog (#9153)
Centralize every external dependency version in the pnpm catalog
(pnpm-workspace.yaml) and reference them via `catalog:` across all
apps and packages. Packages that previously used differing versions
were unified to the highest (notably @react-pdf/renderer ^3.4.5 ->
^4.3.0 in apps/web).
2026-05-31 15:56:12 +05:30
sriramveeraghanta
c62930ebcf chore: bump up the package version 2026-04-20 17:20:12 +05:30
sriramveeraghanta
00a51f5e6a chore: version bump 2026-03-31 17:09:35 +05:30
Aaron
97b4abd693 fix: tsdown watch (#8813)
closes #8791
2026-03-27 15:59:55 +05:30
sriramveeraghanta
6e033f9fdb sync: master branch changes to preview 2026-03-25 13:21:43 +05:30
darkingtail
d9695afcdc fix: remove unused imports and variables (part 1 — packages & non-web-core) (#8751)
* fix: remove unused imports and variables (part 1)

Resolve oxlint no-unused-vars warnings in packages/*, apps/admin,
apps/space, apps/live, and apps/web (non-core).

* fix: resolve CI check failures

* fix: resolve check:types failures

* fix: resolve check:types and check:format failures

- Use destructuring alias for activeCycleResolvedPath
- Format propel tab-navigation file

* fix: format propel button helper with oxfmt

Reorder Tailwind classes to match oxfmt canonical ordering.
2026-03-25 02:04:20 +05:30
sriramveeraghanta
9a7696acac chore: version upgrade 2026-03-05 17:25:22 +05:30
sriram veeraghanta
c5542438a1 fix: replace eslint with oxlint (#8677)
* fix: replace eslint with oxlint

* chore: adding max warning

* fix: formatting
2026-03-03 00:46:05 +05:30
sriram veeraghanta
41abaffc6e chore: replace prettier with oxfmt (#8676) 2026-03-02 20:40:50 +05:30
Vipin Chaudhary
9ee73d57ef fix: merge lists in editor (#8639) 2026-03-02 20:29:20 +05:30
sriramveeraghanta
ec44b63027 chore: pacakge version 2026-02-20 18:05:15 +05:30
Aaryan Khandelwal
d497304de5 refactor: table drag preview using decorations (#8597)
* refactor: table drag preview using decorations

* fix: history meta for table drag state
2026-02-13 17:59:37 +05:30
sriram veeraghanta
02d0ee3e0f chore: add copyright (#8584)
* feat: adding new copyright info on all files

* chore: adding CI
2026-01-27 13:54:22 +05:30
M. Palanikannan
20e266c9bb fix: node view renders (#8559)
* fix node renders

* fix handlers

* fix: duplicate id
2026-01-23 13:47:49 +05:30
punto
57806f9bd5 [GIT-45] fix: allow markdown file attachments (#8524)
* fix: allow markdown file attachments

- Add text/markdown to ATTACHMENT_MIME_TYPES
- Fixes issue where .md files were rejected with 'Invalid file type' error

* added the support for frontend mime type too
2026-01-23 13:38:47 +05:30
Bavisetti Narayan
2a29ab8d4a [WEB-5845] chore: changing description field to description json (#8230)
* chore: migrating description to description json

* chore: replace description with description_json

* chore: updated migration file

* chore: updated the migration file

* chore: added description key in external endpoint

* chore: updated the migration file

* chore: updated the typo

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
2026-01-22 18:23:59 +05:30
Aaryan Khandelwal
3de76206b5 [WIKI-735] fix: table insert handle z-index #8545 2026-01-19 20:41:50 +05:30
Vipin Chaudhary
b83d460938 [WIKI-826] chore: add unique id as key to logo selector (#8494) 2026-01-07 15:05:14 +05:30
Aaryan Khandelwal
031baaa162 [WEB-857] regression: image uploader error state #8471 2025-12-30 14:35:52 +05:30
Aaryan Khandelwal
6cc5c1946a regression: red and green color backgrounds (#8456) 2025-12-26 19:17:03 +05:30
Anmol Singh Bhatia
2980c2d76b refactor: actions icon migration (#8219)
* chore: gitignore updated

* chore: check icon added to propel package

* feat: search icon migration

* chore: check icon migration

* chore: plus icon added to propel package

* chore: code refactor

* chore: plus icon migration and code refactor

* chore: trash icon added to propel package

* chore: code refactor

* chore: trash icon migration

* chore: edit icon added to propel package

* chore: new tab icon added to propel package

* chore: edit icon migration

* chore: newtab icon migration

* chore: lock icon added to propel package

* chore: lock icon migration

* chore: globe icon added to propel package

* chore: globe icon migration

* chore: copy icon added to propel package

* chore: copy icon migration

* chore: link icon added to propel package

* chore: link icon migration

* chore: link icon migration

* chore: info icon added to propel package

* chore: code refactor

* chore: code refactor

* chore: code refactor

* chore: code refactor
2025-12-26 17:19:15 +05:30
Aaryan Khandelwal
92ac28fcb8 [WEB-5809] refactor: tailwind config inline variables (#8437) 2025-12-26 16:36:29 +05:30
Prateek Shourya
0c795e95ac [WEB-5798] refactor: web and admin auth related components and update admin designs (#8431)
* refactor: web and admin auth related components and update admin designs.

* fix: format
2025-12-24 16:31:52 +05:30
Aaryan Khandelwal
373e640a25 [WIKI-740] refactor: editor table performance (#8411) 2025-12-23 14:24:05 +05:30
Aaryan Khandelwal
21df1028f8 [WEB-5792] regression: editor font family #8427 2025-12-23 14:20:36 +05:30
Aaryan Khandelwal
7a3cebdb6b fix: alpha colors (#8418) 2025-12-22 16:52:09 +05:30
Aaryan Khandelwal
e2fcb5044d [WEB-5775] fix: mentions search on empty query #8417 2025-12-22 16:38:53 +05:30
Aaryan Khandelwal
8a0b710a62 [WEB-5774] fix: editor nodes background colors (#8416) 2025-12-22 16:37:44 +05:30
Aaryan Khandelwal
72883e76a5 [WEB-5773] fix: editor image full screen modal (#8413) 2025-12-22 15:50:02 +05:30
Aaryan Khandelwal
465c99f742 fix: input fields bg (#8389) 2025-12-18 20:25:46 +05:30
Aaryan Khandelwal
cb56fbe3ca fix: image uploader bg in light mode (#8385) 2025-12-18 20:00:57 +05:30
Vipin Chaudhary
59f024dad3 [WIKI-849] feat: debounce for mention search (#8380) 2025-12-18 18:44:16 +05:30
Aaryan Khandelwal
3df58397b5 fix: tooltip imports (#8379) 2025-12-18 17:19:10 +05:30
Aaryan Khandelwal
88f4d8253d chore: replace old classNames (#8372) 2025-12-18 13:08:38 +05:30
Aaryan Khandelwal
1f06b67c66 regression: replace old css vars with the new design system tokens (#8354)
* chore: replace old css vars

* fix: replace shadow and primary colors

* chore: remove hardcoded colors
2025-12-17 16:28:22 +05:30
Jayash Tripathy
88f5a063d6 [WEB-5614] fix: new design system consistency (#8351)
* chore: tooltip enhancements

* chore: project card enhancements

* chore: work item card enhancements

* chore: update component styles and class names for consistency across the application

---------

Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>
2025-12-17 13:32:29 +05:30
Aaryan Khandelwal
22339b9786 [WEB-5602] feat: new design system (#8220)
* chore: init tailwind v4

* chore: update all configs

* chore: add source to parse monorepo packages

* chore: combine all css files

* feat: added extended colors

* chore: update typography

* chore: update extended color var names

* refactor: remove initial spacing variable and update dark mode selector

* chore: update css files

* chore: update animations

* chore: remove spacing tokens

* fix: external css files

* chore: update tailwind-merge version

* chore: update font family

* chore: added brief agents.md and story for new design system

* chore: enhance design system documentation with rare exceptions for visual separation

* chore: add fontsource package for typography

* chore: material symbols font added

* chore: update shadow default

* chore: add stroke and outline theme vars

* chore: update ring and fill colors

* chore: overwrite tailwind typography tokens

* chore: add high contrast mode tokens

* chore: update scrollbar colors

* chore: backward compatibility for buttons and placeholders

* chore: add priority colors

* chore: update urgent priority color

* chore: update plan colors

* chore: add missing utility class

* chore: update height and padding classes

* chore: update label colors

* chore: add missing utlity

* chore: add typography plugin to space app

* chore: replace existing classNames with new design system tokens #8244 (#8278)

* chore: update border colors

* chore: update all borders

* chore: update text colors

* chore: update css variables

* chore: update font sizes and weights

* chore: update bg colors

* chore: sync changes

* fix: uncomment spacing-1200 variable in variables.css

* chore: update primary colors

* refactor: updated border to border-subtle

* refactor: update various components and improve UI consistency across the application

* updated classnames

* updated classnames

* refactor: update color-related class names to use new design system variables for consistency

* chore: default automations

* chore: update text sizes

* chore: home and power k

* chore: home and power k

* chore: replace ui package button components

* chore: update text sizes

* chore: updated issue identifier (#8275)

* refactor: top navigation and sidebar design token (#8276)

* chore: update all button components (#8277)

* chore: new button component

* chore: update existing buttons

* chore: overwrite tailwind typography tokens

* fix: twMerge config + fixed cn instances

* refactor: toast design token updated (#8279)

* chore: update existing buttons

* chore: tooltip design token updatged (#8280)

* chore: moved cn utility to propel (#8281)

* chore: update space app UI (#8285)

* chore; update space app filters component

* fix: button whitespace wrap

* chore: space app votes

* chore: update dropdown components

* refactor: auth, onboarding, sidebar, and common component design token migration (#8291)

* chore: checkbox component design token updated

* chore: indicator and oauth component design token updated

* chore: sidebar design token updated

* chore: auth and onboarding design token updated

* chore: update divider color

* style: update background colors and hover effects across list components

* fix: tailwind merge

* refactor: toggle switch design token migration and header utility classname added (#8295)

* chore: toggle component design token updated

* chore: h-header utility class added

* chore: updated color tokens for work item detail page (#8296)

* chore: update react-day-picker UI

* refactor: update button sizes and styles in filters components

* refactor: breadcrumbs design token updated (#8297)

* chore: update priority icon colors

* refactor: updated layout variables

* chore: update plan card primary CTA

* Chore update editor design system (#8299)

* refactor: update styles for callout, color selector, logo selector, and image uploader

* refactor:fix image

* chore: update settings UI

* chore: updated notifications color and size tokens (#8302)

* chore: update sm button border radius

* fix: logo renderer

* chore: icon button component

* chore: remove deprecated classes

* chore: remove deprecated classes

* chore: update editor list spacing

* fix: icon button size

* chore: improvements (#8309)

* chore: update cycles and modules pages

* refactor: update background styles across various components to use new design system colors

* fix: button type errors

* chore: update modals design system (#8310)

* refactor: callout bg

* refactor: code  bg

* refactor: modal size and variant

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>

* chore: update next-themes

* design: update billing and plans component styles and remove unused utility functions (#8313)

* refactor: empty state design token migration and improvements (#8315)

* fix: profile page

* refactor: tabs design token updated (#8316)

* chore: updated buttons and tokens for work items (#8317)

* fix: adjust trial button spacing in checkout modal

* chore: update add button hover state

* fix: type error (#8318)

* fix: type error

* chore: code refactor

* refactor: update button sizes and background styles in rich filters components

* refactor: update editor bg

* refactor: enhance Gantt chart sidebar functionality and styling

- Removed unused  prop from .
- Updated  to include new props for better block management and scrolling behavior.
- Improved auto-scroll functionality for Gantt chart items.
- Adjusted styles in  component for consistent design.

* regression: gantt design

* chore: new badge component

* fix: favorite star

* chore: update backgroung, typography and button sizes across workspace settings general and members pages

* fix: header button sizes

* fix: emoji icon logo (#8323)

* more fixes

* chore: update settings sidebar

* refactor: avatar component

* chore: updated work item detail sidebar (#8327)

* refactor: update link preview

* fix: work item property dropdowns

* fix: dropdown buttons border radius

* chore: update power k translation

* chore: updated profile activity design (#8328)

* chore: update settings pages

* chore: update work item sidebar alignments (#8330)

* refactor: admin design system

* chore: update page header

---------

Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>

* fix: formatting

* reexport types

* fix: lint error

---------

Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
2025-12-12 20:50:14 +05:30
sriramveeraghanta
07f269e7f3 chore: version bump 2025-12-12 15:09:53 +05:30
sriramveeraghanta
f5fe8d0a7e chore: sync changes from canary to preview 2025-12-11 14:11:28 +05:30
M. Palanikannan
e0c97c5471 refactor: sanitize HTML function (#8307)
* refactor: replace isomorphic-dompurify with sanitize-html

* dompurify fixes

* more fixes with fallback and title

* build

---------

Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
2025-12-11 13:30:31 +05:30
Aaron
0370a1bfdd chore: fix/check tooling improvements with turbo (#8304) 2025-12-11 13:03:37 +05:30