This PR moves several components which rely on `next` out of the `ui`
package to the `ui-patterns` package.
`ui-patterns` package is intented to be imported with specific imports
so it's ok if there are components reliant on `next` in there.
The `SonnerToaster` component has removed its dependency by requiring a
prop for `theme`.
* fix(docs): multiple edits and enhancements
* fix: edited to remove typos and align with the linter
* fix: remove more typos and a bit more linter compliance
* fix: correct minor typos
* chore: add linter exclusion
* fix: exclude lint check for imgproxy
* fix: move disable lint to separate lines
* chore: make prettier happy
* chore: typos plus add linux docker desktop
* chore: fix typos and add link to postgres password guidelines
* chore: stress postgres password recommendation
* fix: use relative paths for docs references
* chore: add a note about all digits in dashboard password
* chore: add a note about no-telemetry and design partnerships if enterprise
* chore: initial import of a simpler jwt generator component
* fix: grammar, some sections reorg, use simpler generator
---------
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
strictNullChecks was off for docs, which lets errors slip through and
leads to incorrect required/optional typing on Zod-inferred types. This
PR enables strictNullChecks and fixes all the existing violations.
Fix a UI display issue for the JWT generator: when the dropdown is used
to switch between the anon and service role key, the displayed JWT
claims did not change. The actual state changes, and the keys generated
are correct, but they just don't display because the text area is
controlled andd oesn't sync with the state.
Changed the text are to take a key dependent on the state so the
displayed UI should change properly.
Does _not_ affect the actually generated API keys. Double-checked that
these are the same before and after.
The old JWT generator code provided the anon and authenticated claims as strings. The format of this string is different from the format determined by KJUR if an object is provided (I'm guessing probably a whitespace or quote character thing, but I didn't dive down this rabbit hole.) This leads to incompatibilities when the token is used.
To prevent this, the tokens are now defined as objects and KJUR's own serialization is used.