diff --git a/.prettierignore b/.prettierignore index 6a2648517..b18b97505 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,16 +1,22 @@ -data/api/**/*.json - +!_shims.mjs +!public/_redirects .DS_Store -*.swp +.next/ +.react-router *.swo +*.swp +app/**/*.mjs +build +data/api/**/*.json +dist +index_data/*.json +node_modules/ +out/ +public/playground-bundles/ # Generated via update-index script public/blog/feed.xml -node_modules/ -.next/ -out/ -index_data/*.json # Generated via test examples script _tempFile.cmi @@ -19,6 +25,7 @@ _tempFile.cmt _tempFile.res temp + .bsb.lock .merlin lib/ @@ -34,16 +41,5 @@ public/llms/manual/**/llm*.txt public/llms/react/**/llm*.txt pages/docs/**/**/llms.mdx -public/playground-bundles/ -!public/_redirects - - -dist -build -.react-router - -app/**/*.mjs -!_shims.mjs - # prettier refuses to not mess up the installation table markdown-pages/docs/manual/installation.mdx \ No newline at end of file diff --git a/app/root.res b/app/root.res index 8d233625d..ecb0beea1 100644 --- a/app/root.res +++ b/app/root.res @@ -52,17 +52,13 @@ let default = () => { - - // Preload the fonts used for the above the fold on the homepage - - + - - - + + `#"/${route.path}"`).join(" |\n"); await fs.writeFile( "src/Path.res", `type t = [ +#"/" | ${paths} ] `, diff --git a/src/ApiDocs.res b/src/ApiDocs.res index be59b4897..0a50b5a24 100644 --- a/src/ApiDocs.res +++ b/src/ApiDocs.res @@ -46,7 +46,7 @@ type item = module RightSidebar = { @react.component - let make = (~items: array) => { + let make = (~items: array, ~onClick) => { items ->Array.map(item => { switch item { @@ -67,10 +67,11 @@ module RightSidebar = { let title = `${Option.isSome(deprecatedIcon) ? "Deprecated " : ""}` ++ name let result =
  • - onClick()} >
  • result } @@ -115,7 +116,7 @@ module SidebarTree = { | true =>
      - +
    | false => React.null @@ -286,9 +287,14 @@ module DocstringsStylize = { } let make = (props: props) => { + let (_, setScrollLock) = ScrollLockContext.useScrollLock() let (isSidebarOpen, setSidebarOpen) = React.useState(_ => true) - let toggleSidebar = () => setSidebarOpen(prev => !prev) + let toggleSidebar = () => + setSidebarOpen(prev => { + setScrollLock(_ => !prev) + !prev + }) let children = { open Markdown @@ -337,7 +343,7 @@ let make = (props: props) => { {"Types and values"->React.string}
      - +
    diff --git a/src/Path.res b/src/Path.res index 610b1c98a..8198fb62e 100644 --- a/src/Path.res +++ b/src/Path.res @@ -1,88 +1,224 @@ type t = [ + | #"/" | #"/undefined" | #"/packages" | #"/try" - | #"/community" - | #"/community/overview" | #"/syntax-lookup" | #"/blog" + | #"/blog/archived" + | #"/docs" | #"/docs/manual/api/stdlib" | #"/docs/manual/api/introduction" | #"/docs/manual/api/belt" | #"/docs/manual/api/dom" - | #"/blog/2025-04-11-introducing-unified-operators" - | #"/blog/2025-03-17-retreats" - | #"/blog/2025-03-05-what-can-i-do-with-rescript" - | #"/blog/2024-02-01-release-11-1-0" - | #"/blog/2024-01-11-release-11-0-0" - | #"/blog/2023-09-18-uncurried-mode" - | #"/blog/2023-06-05-first-class-dynamic-import-support" - | #"/blog/2023-05-17-enhanced-ergonomics-for-record-types" - | #"/blog/2023-04-17-improving-interop" - | #"/blog/2023-02-02-release-10-1" - | #"/blog/2022-08-25-release-10-0-0" - | #"/blog/2021-06-25-roadmap-2021-and-new-landing-page" - | #"/blog/2021-05-07-release-9-1" - | #"/blog/2021-03-03-rescript-association-rebranding" - | #"/blog/2021-02-09-release-9-0" - | #"/blog/2020-12-07-release-8-4" - | #"/blog/2020-11-26-editor-support-release-1-0" - | #"/blog/2020-11-17-editor-support-custom-operators-and-more" - | #"/blog/2020-09-25-release-8-3" - | #"/blog/2020-09-25-release-8-3-2" - | #"/blog/2020-08-28-new-rescript-logo" - | #"/blog/2020-08-10-bucklescript-is-rebranding" - | #"/blog/archive/2020-08-03-bucklescript-release-8-2" - | #"/blog/archive/2020-07-28-string-literal-types-in-reason" - | #"/blog/archive/2020-07-17-bucklescript-release-8-1-1" - | #"/blog/archive/2020-07-06-a-note-on-bucklescripts-future-commitments" - | #"/blog/archive/2020-07-01-bucklescript-8-1-new-syntax" - | #"/blog/archive/2020-06-22-overview-of-new_encoding" - | #"/blog/archive/2020-05-15-state-of-reasonml-org-2020-q2-pt4" - | #"/blog/archive/2020-05-15-a-story-of-lazy-encoding" - | #"/blog/archive/2020-05-12-state-of-reasonml-org-2020-q2-pt3" - | #"/blog/archive/2020-05-11-state-of-reasonml-org-2020-q2-pt2" - | #"/blog/archive/2020-05-06-state-of-reasonml-org-2020-q2-pt1" - | #"/blog/archive/2020-05-06-a-story-of-exception-encoding" - | #"/blog/archive/2020-04-13-bucklescript-release-7-3" - | #"/blog/archive/2020-03-26-generalize-uncurry" - | #"/blog/archive/2020-03-12-bucklescript-release-7-2" - | #"/blog/archive/2020-02-20-loading-stdlib-in-memory" - | #"/blog/archive/2020-02-07-union-types-in-bucklescript" - | #"/blog/archive/2020-02-04-bucklescript-release-7-1-0" - | #"/blog/archive/2019-12-20-bucklescript-release-7-0-2" - | #"/blog/archive/2019-11-28-whats-new-in-7-pt2" - | #"/blog/archive/2019-11-18-whats-new-in-7-pt1" - | #"/blog/archive/2019-10-16-another-encoding" - | #"/blog/archive/2019-09-23-bucklescript-release-5-2-0" - | #"/blog/archive/2019-08-12-bucklescript-release-5-1-0" - | #"/blog/archive/2019-06-26-bucklescript-release-5-0-5" - | #"/blog/archive/2019-05-21-ffi-overview" - | #"/blog/archive/2019-04-22-bucklescript-release-5-0-4" - | #"/blog/archive/2019-04-09-bucklescript-release-5-0-1" - | #"/blog/archive/2019-03-31-bucklescript-release-6-0" - | #"/blog/archive/2019-03-21-bucklescript-release-5-0" - | #"/blog/archive/2019-03-01-feature-preview-variadic" - | #"/blog/archive/2019-01-11-scalable" - | #"/blog/archive/2019-01-07-bucklescript-release-4-0-17" - | #"/blog/archive/2018-12-05-bucklescript-release-4-0-8" - | #"/blog/archive/2018-11-19-bucklescript-roadmap-q3-4-2018" - | #"/blog/archive/2018-11-13-arity-zero" - | #"/blog/archive/2018-07-17-bucklescript-release-4-0-0-pt2" - | #"/blog/archive/2018-07-17-bucklescript-release-4-0-0-pt1" - | #"/blog/archive/2018-05-23-bucklescript-release-3-1-4" - | #"/blog/archive/2018-05-21-bucklescript-release-3-1-0" - | #"/blog/archive/2018-04-16-bucklescript-release-3-0-0" - | #"/blog/archive/2018-03-13-a-small-step-for-bucklescript" - | #"/blog/archive/2017-10-09-bucklescript-release-1-7-5" - | #"/blog/archive/2017-10-08-bucklescript-release-1-7-4" - | #"/blog/archive/2017-10-07-bucklescript-release-1-7-0" - | #"/blog/archive/2017-10-06-bucklescript-release-1-5-2" - | #"/blog/archive/2017-10-05-bucklescript-release-1-5-1" - | #"/blog/archive/2017-10-04-bucklescript-release-1-5-0" - | #"/blog/archive/2017-10-03-bucklescript-release-1-4-3" - | #"/blog/archive/2017-10-02-bucklescript-release-1-4-2" - | #"/blog/archive/2017-10-01-bucklescript-release-1-0" + | #"/docs/manual/api/stdlib/intl/numberformat/grouping" + | #"/docs/manual/api/stdlib/biguint64array/constants" + | #"/docs/manual/api/stdlib/bigint64array/constants" + | #"/docs/manual/api/stdlib/uint8clampedarray/constants" + | #"/docs/manual/api/stdlib/uint32array/constants" + | #"/docs/manual/api/stdlib/uint16array/constants" + | #"/docs/manual/api/stdlib/uint8array/constants" + | #"/docs/manual/api/stdlib/int32array/constants" + | #"/docs/manual/api/stdlib/int16array/constants" + | #"/docs/manual/api/stdlib/int8array/constants" + | #"/docs/manual/api/stdlib/float64array/constants" + | #"/docs/manual/api/stdlib/float32array/constants" + | #"/docs/manual/api/stdlib/type/classify" + | #"/docs/manual/api/stdlib/regexp/result" + | #"/docs/manual/api/stdlib/math/int" + | #"/docs/manual/api/stdlib/math/constants" + | #"/docs/manual/api/stdlib/json/decode" + | #"/docs/manual/api/stdlib/json/encode" + | #"/docs/manual/api/stdlib/json/classify" + | #"/docs/manual/api/stdlib/jserror/urierror" + | #"/docs/manual/api/stdlib/jserror/typeerror" + | #"/docs/manual/api/stdlib/jserror/syntaxerror" + | #"/docs/manual/api/stdlib/jserror/referenceerror" + | #"/docs/manual/api/stdlib/jserror/rangeerror" + | #"/docs/manual/api/stdlib/jserror/evalerror" + | #"/docs/manual/api/stdlib/intl/segments" + | #"/docs/manual/api/stdlib/intl/segmenter" + | #"/docs/manual/api/stdlib/intl/relativetimeformat" + | #"/docs/manual/api/stdlib/intl/pluralrules" + | #"/docs/manual/api/stdlib/intl/numberformat" + | #"/docs/manual/api/stdlib/intl/locale" + | #"/docs/manual/api/stdlib/intl/listformat" + | #"/docs/manual/api/stdlib/intl/datetimeformat" + | #"/docs/manual/api/stdlib/intl/collator" + | #"/docs/manual/api/stdlib/intl/common" + | #"/docs/manual/api/stdlib/int/ref" + | #"/docs/manual/api/stdlib/int/bitwise" + | #"/docs/manual/api/stdlib/int/constants" + | #"/docs/manual/api/stdlib/float/constants" + | #"/docs/manual/api/stdlib/error/urierror" + | #"/docs/manual/api/stdlib/error/typeerror" + | #"/docs/manual/api/stdlib/error/syntaxerror" + | #"/docs/manual/api/stdlib/error/referenceerror" + | #"/docs/manual/api/stdlib/error/rangeerror" + | #"/docs/manual/api/stdlib/error/evalerror" + | #"/docs/manual/api/stdlib/date/utc" + | #"/docs/manual/api/stdlib/biguint64array" + | #"/docs/manual/api/stdlib/bigint64array" + | #"/docs/manual/api/stdlib/uint8clampedarray" + | #"/docs/manual/api/stdlib/uint32array" + | #"/docs/manual/api/stdlib/uint16array" + | #"/docs/manual/api/stdlib/uint8array" + | #"/docs/manual/api/stdlib/int32array" + | #"/docs/manual/api/stdlib/int16array" + | #"/docs/manual/api/stdlib/int8array" + | #"/docs/manual/api/stdlib/float64array" + | #"/docs/manual/api/stdlib/float32array" + | #"/docs/manual/api/stdlib/typedarray" + | #"/docs/manual/api/stdlib/arraybuffer" + | #"/docs/manual/api/stdlib/weakset" + | #"/docs/manual/api/stdlib/set" + | #"/docs/manual/api/stdlib/weakmap" + | #"/docs/manual/api/stdlib/map" + | #"/docs/manual/api/stdlib/asynciterator" + | #"/docs/manual/api/stdlib/iterator" + | #"/docs/manual/api/stdlib/type" + | #"/docs/manual/api/stdlib/symbol" + | #"/docs/manual/api/stdlib/string" + | #"/docs/manual/api/stdlib/result" + | #"/docs/manual/api/stdlib/regexp" + | #"/docs/manual/api/stdlib/promise" + | #"/docs/manual/api/stdlib/pair" + | #"/docs/manual/api/stdlib/ordering" + | #"/docs/manual/api/stdlib/option" + | #"/docs/manual/api/stdlib/object" + | #"/docs/manual/api/stdlib/nullable" + | #"/docs/manual/api/stdlib/null" + | #"/docs/manual/api/stdlib/math" + | #"/docs/manual/api/stdlib/list" + | #"/docs/manual/api/stdlib/lazy" + | #"/docs/manual/api/stdlib/json" + | #"/docs/manual/api/stdlib/jsexn" + | #"/docs/manual/api/stdlib/jserror" + | #"/docs/manual/api/stdlib/intl" + | #"/docs/manual/api/stdlib/int" + | #"/docs/manual/api/stdlib/float" + | #"/docs/manual/api/stdlib/error" + | #"/docs/manual/api/stdlib/exn" + | #"/docs/manual/api/stdlib/dict" + | #"/docs/manual/api/stdlib/date" + | #"/docs/manual/api/stdlib/dataview" + | #"/docs/manual/api/stdlib/console" + | #"/docs/manual/api/stdlib/bool" + | #"/docs/manual/api/stdlib/bigint" + | #"/docs/manual/api/stdlib/array" + | #"/docs/manual/api/stdlib/intervalid" + | #"/docs/manual/api/stdlib/timeoutid" + | #"/docs/manual/api/belt/hashmap/string" + | #"/docs/manual/api/belt/hashmap/int" + | #"/docs/manual/api/belt/hashset/string" + | #"/docs/manual/api/belt/hashset/int" + | #"/docs/manual/api/belt/mutablemap/string" + | #"/docs/manual/api/belt/mutablemap/int" + | #"/docs/manual/api/belt/mutableset/string" + | #"/docs/manual/api/belt/mutableset/int" + | #"/docs/manual/api/belt/map/dict" + | #"/docs/manual/api/belt/map/string" + | #"/docs/manual/api/belt/map/int" + | #"/docs/manual/api/belt/set/dict" + | #"/docs/manual/api/belt/set/string" + | #"/docs/manual/api/belt/set/int" + | #"/docs/manual/api/belt/sortarray/string" + | #"/docs/manual/api/belt/sortarray/int" + | #"/docs/manual/api/belt/id/makehashable" + | #"/docs/manual/api/belt/id/makehashableu" + | #"/docs/manual/api/belt/id/makecomparable" + | #"/docs/manual/api/belt/id/makecomparableu" + | #"/docs/manual/api/belt/float" + | #"/docs/manual/api/belt/int" + | #"/docs/manual/api/belt/result" + | #"/docs/manual/api/belt/option" + | #"/docs/manual/api/belt/hashmap" + | #"/docs/manual/api/belt/hashset" + | #"/docs/manual/api/belt/mutablemap" + | #"/docs/manual/api/belt/mutableset" + | #"/docs/manual/api/belt/map" + | #"/docs/manual/api/belt/set" + | #"/docs/manual/api/belt/range" + | #"/docs/manual/api/belt/list" + | #"/docs/manual/api/belt/mutablestack" + | #"/docs/manual/api/belt/mutablequeue" + | #"/docs/manual/api/belt/sortarray" + | #"/docs/manual/api/belt/array" + | #"/docs/manual/api/belt/id" + | #"/blog/what-can-i-do-with-rescript" + | #"/blog/uncurried-mode" + | #"/blog/roadmap-2021-and-new-landing-page" + | #"/blog/retreats" + | #"/blog/rescript-association-rebranding" + | #"/blog/release-9-1" + | #"/blog/release-9-0" + | #"/blog/release-8-4" + | #"/blog/release-8-3" + | #"/blog/release-8-3-2" + | #"/blog/release-11-1-0" + | #"/blog/release-11-0-0" + | #"/blog/release-10-1" + | #"/blog/release-10-0-0" + | #"/blog/reforging-build-system" + | #"/blog/new-rescript-logo" + | #"/blog/introducing-unified-operators" + | #"/blog/improving-interop" + | #"/blog/first-class-dynamic-import-support" + | #"/blog/enhanced-ergonomics-for-record-types" + | #"/blog/editor-support-release-1-0" + | #"/blog/editor-support-custom-operators-and-more" + | #"/blog/bucklescript-is-rebranding" + | #"/blog/archived/whats-new-in-7-pt2" + | #"/blog/archived/whats-new-in-7-pt1" + | #"/blog/archived/union-types-in-bucklescript" + | #"/blog/archived/string-literal-types-in-reason" + | #"/blog/archived/state-of-reasonml-org-2020-q2-pt4" + | #"/blog/archived/state-of-reasonml-org-2020-q2-pt3" + | #"/blog/archived/state-of-reasonml-org-2020-q2-pt2" + | #"/blog/archived/state-of-reasonml-org-2020-q2-pt1" + | #"/blog/archived/scalable" + | #"/blog/archived/overview-of-new_encoding" + | #"/blog/archived/loading-stdlib-in-memory" + | #"/blog/archived/generalize-uncurry" + | #"/blog/archived/ffi-overview" + | #"/blog/archived/feature-preview-variadic" + | #"/blog/archived/bucklescript-roadmap-q3-4-2018" + | #"/blog/archived/bucklescript-release-8-2" + | #"/blog/archived/bucklescript-release-8-1-1" + | #"/blog/archived/bucklescript-release-7-3" + | #"/blog/archived/bucklescript-release-7-2" + | #"/blog/archived/bucklescript-release-7-1-0" + | #"/blog/archived/bucklescript-release-7-0-2" + | #"/blog/archived/bucklescript-release-6-0" + | #"/blog/archived/bucklescript-release-5-2-0" + | #"/blog/archived/bucklescript-release-5-1-0" + | #"/blog/archived/bucklescript-release-5-0" + | #"/blog/archived/bucklescript-release-5-0-5" + | #"/blog/archived/bucklescript-release-5-0-4" + | #"/blog/archived/bucklescript-release-5-0-1" + | #"/blog/archived/bucklescript-release-4-0-8" + | #"/blog/archived/bucklescript-release-4-0-17" + | #"/blog/archived/bucklescript-release-4-0-0-pt2" + | #"/blog/archived/bucklescript-release-4-0-0-pt1" + | #"/blog/archived/bucklescript-release-3-1-4" + | #"/blog/archived/bucklescript-release-3-1-0" + | #"/blog/archived/bucklescript-release-3-0-0" + | #"/blog/archived/bucklescript-release-1-7-5" + | #"/blog/archived/bucklescript-release-1-7-4" + | #"/blog/archived/bucklescript-release-1-7-0" + | #"/blog/archived/bucklescript-release-1-5-2" + | #"/blog/archived/bucklescript-release-1-5-1" + | #"/blog/archived/bucklescript-release-1-5-0" + | #"/blog/archived/bucklescript-release-1-4-3" + | #"/blog/archived/bucklescript-release-1-4-2" + | #"/blog/archived/bucklescript-release-1-0" + | #"/blog/archived/bucklescript-8-1-new-syntax" + | #"/blog/archived/arity-zero" + | #"/blog/archived/another-encoding" + | #"/blog/archived/a-story-of-lazy-encoding" + | #"/blog/archived/a-story-of-exception-encoding" + | #"/blog/archived/a-small-step-for-bucklescript" + | #"/blog/archived/a-note-on-bucklescripts-future-commitments" | #"/docs/react/styling" | #"/docs/react/server-components" | #"/docs/react/router" @@ -134,6 +270,7 @@ type t = [ | #"/docs/manual/module" | #"/docs/manual/module-functions" | #"/docs/manual/migrate-to-v11" + | #"/docs/manual/llms" | #"/docs/manual/libraries" | #"/docs/manual/let-binding" | #"/docs/manual/lazy-values" @@ -174,4 +311,108 @@ type t = [ | #"/docs/manual/array-and-list" | #"/docs/manual/api" | #"/docs/guidelines/publishing-packages" + | #"/community/translations" + | #"/community/roadmap" + | #"/community/overview" + | #"/community/content" + | #"/community/code-of-conduct" + | #"/syntax-lookup/specialvalues_pos_of" + | #"/syntax-lookup/specialvalues_pos" + | #"/syntax-lookup/specialvalues_module" + | #"/syntax-lookup/specialvalues_loc_of" + | #"/syntax-lookup/specialvalues_loc" + | #"/syntax-lookup/specialvalues_line_of" + | #"/syntax-lookup/specialvalues_line" + | #"/syntax-lookup/specialvalues_file" + | #"/syntax-lookup/operators_type_coercion" + | #"/syntax-lookup/operators_triangle_pipe" + | #"/syntax-lookup/operators_string_concatenation" + | #"/syntax-lookup/operators_pipe" + | #"/syntax-lookup/operators_mod" + | #"/syntax-lookup/operators_integer_subtraction" + | #"/syntax-lookup/operators_integer_multiplication" + | #"/syntax-lookup/operators_integer_division" + | #"/syntax-lookup/operators_integer_addition" + | #"/syntax-lookup/operators_float_subtraction" + | #"/syntax-lookup/operators_float_multiplication" + | #"/syntax-lookup/operators_float_division" + | #"/syntax-lookup/operators_float_addition" + | #"/syntax-lookup/operator_ref_value_assignment" + | #"/syntax-lookup/language_while" + | #"/syntax-lookup/language_uncurried_function" + | #"/syntax-lookup/language_type_parameter" + | #"/syntax-lookup/language_type" + | #"/syntax-lookup/language_switch" + | #"/syntax-lookup/language_string_literal" + | #"/syntax-lookup/language_string_interpolation" + | #"/syntax-lookup/language_spreads" + | #"/syntax-lookup/language_scoped_polymorphic_type" + | #"/syntax-lookup/language_regular_expression" + | #"/syntax-lookup/language_polyvar" + | #"/syntax-lookup/language_placeholder" + | #"/syntax-lookup/language_optional_labeled_argument" + | #"/syntax-lookup/language_open" + | #"/syntax-lookup/language_module" + | #"/syntax-lookup/language_let" + | #"/syntax-lookup/language_labeled_argument" + | #"/syntax-lookup/language_include" + | #"/syntax-lookup/language_if_else" + | #"/syntax-lookup/language_function" + | #"/syntax-lookup/language_for" + | #"/syntax-lookup/language_external" + | #"/syntax-lookup/language_dict" + | #"/syntax-lookup/language_char_literal" + | #"/syntax-lookup/language_await" + | #"/syntax-lookup/language_async" + | #"/syntax-lookup/extension_todo" + | #"/syntax-lookup/extension_regular_expression" + | #"/syntax-lookup/extension_raw_top_level_expression" + | #"/syntax-lookup/extension_raw_expression" + | #"/syntax-lookup/extension_private_let" + | #"/syntax-lookup/extension_identity" + | #"/syntax-lookup/extension_debugger" + | #"/syntax-lookup/decorator_variadic" + | #"/syntax-lookup/decorator_val" + | #"/syntax-lookup/decorator_unwrap" + | #"/syntax-lookup/decorator_uncurry" + | #"/syntax-lookup/decorator_uncurried" + | #"/syntax-lookup/decorator_unboxed" + | #"/syntax-lookup/decorator_throws" + | #"/syntax-lookup/decorator_this" + | #"/syntax-lookup/decorator_taggedTemplate" + | #"/syntax-lookup/decorator_tag" + | #"/syntax-lookup/decorator_string" + | #"/syntax-lookup/decorator_set_index" + | #"/syntax-lookup/decorator_set" + | #"/syntax-lookup/decorator_send_pipe" + | #"/syntax-lookup/decorator_send" + | #"/syntax-lookup/decorator_scope" + | #"/syntax-lookup/decorator_return" + | #"/syntax-lookup/decorator_react_component_with_props" + | #"/syntax-lookup/decorator_react_component" + | #"/syntax-lookup/decorator_raises" + | #"/syntax-lookup/decorator_obj" + | #"/syntax-lookup/decorator_new" + | #"/syntax-lookup/decorator_module_warning" + | #"/syntax-lookup/decorator_module_deprecated" + | #"/syntax-lookup/decorator_module" + | #"/syntax-lookup/decorator_meth" + | #"/syntax-lookup/decorator_live" + | #"/syntax-lookup/decorator_jsx_component" + | #"/syntax-lookup/decorator_int" + | #"/syntax-lookup/decorator_inline" + | #"/syntax-lookup/decorator_ignore" + | #"/syntax-lookup/decorator_get_index" + | #"/syntax-lookup/decorator_get" + | #"/syntax-lookup/decorator_gentype" + | #"/syntax-lookup/decorator_expression_warning" + | #"/syntax-lookup/decorator_expression_deprecated" + | #"/syntax-lookup/decorator_does_not_throw" + | #"/syntax-lookup/decorator_does_not_raise" + | #"/syntax-lookup/decorator_directive" + | #"/syntax-lookup/decorator_deriving" + | #"/syntax-lookup/decorator_dead" + | #"/syntax-lookup/decorator_as" + | #"/syntax-lookup/builtinfunctions_ignore" + | #"/*" ] diff --git a/src/bindings/ReactRouter.res b/src/bindings/ReactRouter.res index 51f533d47..6df145ca1 100644 --- a/src/bindings/ReactRouter.res +++ b/src/bindings/ReactRouter.res @@ -78,6 +78,7 @@ module Link = { module String = { @module("react-router") @react.component external make: ( + ~title: string=?, ~onClick: ReactEvent.Mouse.t => unit=?, ~children: React.element=?, ~className: string=?, diff --git a/src/components/Markdown.res b/src/components/Markdown.res index a932d4843..5aa400677 100644 --- a/src/components/Markdown.res +++ b/src/components/Markdown.res @@ -136,7 +136,7 @@ module H2 = { // Children may not be a string <> -

    +

    children diff --git a/src/layouts/ApiLayout.res b/src/layouts/ApiLayout.res index 84d61d4d9..79a09bff6 100644 --- a/src/layouts/ApiLayout.res +++ b/src/layouts/ApiLayout.res @@ -73,7 +73,12 @@ let make = ( let {pathname: route} = ReactRouter.useLocation() let (isSidebarOpen, setSidebarOpen) = React.useState(_ => false) - let toggleSidebar = () => setSidebarOpen(prev => !prev) + + let (isScrollLock, setScrollLock) = ScrollLockContext.useScrollLock() + + let toggleSidebar = () => { + setSidebarOpen(prev => !prev) + } let preludeSection =
    @@ -83,13 +88,7 @@ let make = ( let sidebar = - + children } diff --git a/src/layouts/SidebarLayout.res b/src/layouts/SidebarLayout.res index d7e99e902..301f62b41 100644 --- a/src/layouts/SidebarLayout.res +++ b/src/layouts/SidebarLayout.res @@ -22,7 +22,7 @@ module Toc = { }> @react.component - let make = (~entries: array) => + let make = (~entries: array, ~onClick) =>
      {Array.map(entries, ({header, href}) => {
    • @@ -30,11 +30,11 @@ module Toc = { prefetch={#intent} onClick={evt => { evt->ReactEvent.Mouse.preventDefault - Console.log(href) WebAPI.Document.getElementById( document, href->String.replace("#", ""), )->WebAPI.Element.scrollIntoView_alignToTop + onClick() }} to={"#" ++ href->Url.normalizeAnchor} className="font-normal block text-14 text-gray-40 leading-tight hover:text-gray-80" @@ -70,9 +70,10 @@ module Sidebar = { @react.component let make = ( ~getActiveToc: option option>=?, - ~isItemActive: t => bool=_nav => false, ~isHidden=false, + ~isItemActive: t => bool=_nav => false, ~items: array, + ~onClick, ) =>
        {Array.map(items, m => { @@ -100,7 +101,7 @@ module Sidebar = { if Array.length(entries) === 0 { React.null } else { - + } | None => React.null }} @@ -116,10 +117,15 @@ module Sidebar = { } @react.component - let make = (~getActiveToc=?, ~isItemActive: option bool>=?, ~category: t) => + let make = ( + ~category: t, + ~getActiveToc=?, + ~isItemActive: option bool>=?, + ~onClick, + ) =>
        {React.string(category.name)} - +
        } @@ -199,7 +205,7 @@ module Sidebar = { {categories ->Array.map(category => {
        - +
        }) ->React.array} diff --git a/src/layouts/SidebarLayout.resi b/src/layouts/SidebarLayout.resi index a25127abe..d5588c804 100644 --- a/src/layouts/SidebarLayout.resi +++ b/src/layouts/SidebarLayout.resi @@ -19,9 +19,10 @@ module Sidebar: { @react.component let make: ( ~getActiveToc: t => option=?, - ~isItemActive: t => bool=?, ~isHidden: bool=?, + ~isItemActive: t => bool=?, ~items: array, + ~onClick: unit => unit, ) => React.element } module Category: { @@ -32,9 +33,10 @@ module Sidebar: { @react.component let make: ( + ~category: t, ~getActiveToc: NavItem.t => option=?, ~isItemActive: NavItem.t => bool=?, - ~category: t, + ~onClick: unit => unit, ) => React.element }