summaryrefslogtreecommitdiffstats
path: root/intl/icu_capi/js/package/docs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /intl/icu_capi/js/package/docs
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'intl/icu_capi/js/package/docs')
-rw-r--r--intl/icu_capi/js/package/docs/.gitignore1
-rw-r--r--intl/icu_capi/js/package/docs/Makefile20
-rw-r--r--intl/icu_capi/js/package/docs/make.bat35
-rw-r--r--intl/icu_capi/js/package/docs/source/bidi_ffi.rst177
-rw-r--r--intl/icu_capi/js/package/docs/source/calendar_ffi.rst60
-rw-r--r--intl/icu_capi/js/package/docs/source/casemap_ffi.rst182
-rw-r--r--intl/icu_capi/js/package/docs/source/collator_ffi.rst97
-rw-r--r--intl/icu_capi/js/package/docs/source/collections_sets_ffi.rst143
-rw-r--r--intl/icu_capi/js/package/docs/source/common_ffi.rst7
-rw-r--r--intl/icu_capi/js/package/docs/source/conf.py60
-rw-r--r--intl/icu_capi/js/package/docs/source/data_struct_ffi.rst20
-rw-r--r--intl/icu_capi/js/package/docs/source/date_ffi.rst234
-rw-r--r--intl/icu_capi/js/package/docs/source/datetime_ffi.rst337
-rw-r--r--intl/icu_capi/js/package/docs/source/datetime_formatter_ffi.rst172
-rw-r--r--intl/icu_capi/js/package/docs/source/decimal_ffi.rst35
-rw-r--r--intl/icu_capi/js/package/docs/source/displaynames_ffi.rst75
-rw-r--r--intl/icu_capi/js/package/docs/source/errors_ffi.rst11
-rw-r--r--intl/icu_capi/js/package/docs/source/fallbacker_ffi.rst103
-rw-r--r--intl/icu_capi/js/package/docs/source/fixed_decimal_ffi.rst247
-rw-r--r--intl/icu_capi/js/package/docs/source/iana_bcp47_mapper_ffi.rst35
-rw-r--r--intl/icu_capi/js/package/docs/source/index.rst54
-rw-r--r--intl/icu_capi/js/package/docs/source/list_ffi.rst65
-rw-r--r--intl/icu_capi/js/package/docs/source/locale_directionality_ffi.rst41
-rw-r--r--intl/icu_capi/js/package/docs/source/locale_ffi.rst128
-rw-r--r--intl/icu_capi/js/package/docs/source/locid_transform_ffi.rst72
-rw-r--r--intl/icu_capi/js/package/docs/source/logging_ffi.rst21
-rw-r--r--intl/icu_capi/js/package/docs/source/metazone_calculator_ffi.rst16
-rw-r--r--intl/icu_capi/js/package/docs/source/normalizer_ffi.rst76
-rw-r--r--intl/icu_capi/js/package/docs/source/normalizer_properties_ffi.rst87
-rw-r--r--intl/icu_capi/js/package/docs/source/pluralrules_ffi.rst84
-rw-r--r--intl/icu_capi/js/package/docs/source/properties_iter_ffi.rst27
-rw-r--r--intl/icu_capi/js/package/docs/source/properties_maps_ffi.rst159
-rw-r--r--intl/icu_capi/js/package/docs/source/properties_names_ffi.rst102
-rw-r--r--intl/icu_capi/js/package/docs/source/properties_sets_ffi.rst380
-rw-r--r--intl/icu_capi/js/package/docs/source/properties_unisets_ffi.rst62
-rw-r--r--intl/icu_capi/js/package/docs/source/provider_ffi.rst86
-rw-r--r--intl/icu_capi/js/package/docs/source/script_ffi.rst105
-rw-r--r--intl/icu_capi/js/package/docs/source/segmenter_grapheme_ffi.rst77
-rw-r--r--intl/icu_capi/js/package/docs/source/segmenter_line_ffi.rst139
-rw-r--r--intl/icu_capi/js/package/docs/source/segmenter_sentence_ffi.rst77
-rw-r--r--intl/icu_capi/js/package/docs/source/segmenter_word_ffi.rst142
-rw-r--r--intl/icu_capi/js/package/docs/source/time_ffi.rst51
-rw-r--r--intl/icu_capi/js/package/docs/source/timezone_ffi.rst246
-rw-r--r--intl/icu_capi/js/package/docs/source/timezone_formatter_ffi.rst112
-rw-r--r--intl/icu_capi/js/package/docs/source/week_ffi.rst49
-rw-r--r--intl/icu_capi/js/package/docs/source/zoned_formatter_ffi.rst73
46 files changed, 4582 insertions, 0 deletions
diff --git a/intl/icu_capi/js/package/docs/.gitignore b/intl/icu_capi/js/package/docs/.gitignore
new file mode 100644
index 0000000000..c795b054e5
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/.gitignore
@@ -0,0 +1 @@
+build \ No newline at end of file
diff --git a/intl/icu_capi/js/package/docs/Makefile b/intl/icu_capi/js/package/docs/Makefile
new file mode 100644
index 0000000000..d0c3cbf102
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS ?=
+SPHINXBUILD ?= sphinx-build
+SOURCEDIR = source
+BUILDDIR = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/intl/icu_capi/js/package/docs/make.bat b/intl/icu_capi/js/package/docs/make.bat
new file mode 100644
index 0000000000..747ffb7b30
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=source
+set BUILDDIR=build
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.https://www.sphinx-doc.org/
+ exit /b 1
+)
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd
diff --git a/intl/icu_capi/js/package/docs/source/bidi_ffi.rst b/intl/icu_capi/js/package/docs/source/bidi_ffi.rst
new file mode 100644
index 0000000000..783fe70baa
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/bidi_ffi.rst
@@ -0,0 +1,177 @@
+``bidi::ffi``
+=============
+
+.. js:class:: ICU4XBidi
+
+ An ICU4X Bidi object, containing loaded bidi data
+
+ See the `Rust documentation for BidiClassAdapter <https://docs.rs/icu/latest/icu/properties/bidi/struct.BidiClassAdapter.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Creates a new :js:class:`ICU4XBidi` from locale data.
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/properties/bidi/struct.BidiClassAdapter.html#method.new>`__ for more information.
+
+
+ .. js:method:: for_text(text, default_level)
+
+ Use the data loaded in this object to process a string and calculate bidi information
+
+ Takes in a Level for the default level, if it is an invalid value it will default to LTR
+
+ See the `Rust documentation for new_with_data_source <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.BidiInfo.html#method.new_with_data_source>`__ for more information.
+
+
+ .. js:method:: reorder_visual(levels)
+
+ Utility function for producing reorderings given a list of levels
+
+ Produces a map saying which visual index maps to which source index.
+
+ The levels array must not have values greater than 126 (this is the Bidi maximum explicit depth plus one). Failure to follow this invariant may lead to incorrect results, but is still safe.
+
+ See the `Rust documentation for reorder_visual <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.BidiInfo.html#method.reorder_visual>`__ for more information.
+
+ - Note: ``levels`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+
+ .. js:function:: level_is_rtl(level)
+
+ Check if a Level returned by level_at is an RTL level.
+
+ Invalid levels (numbers greater than 125) will be assumed LTR
+
+ See the `Rust documentation for is_rtl <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.Level.html#method.is_rtl>`__ for more information.
+
+
+ .. js:function:: level_is_ltr(level)
+
+ Check if a Level returned by level_at is an LTR level.
+
+ Invalid levels (numbers greater than 125) will be assumed LTR
+
+ See the `Rust documentation for is_ltr <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.Level.html#method.is_ltr>`__ for more information.
+
+
+ .. js:function:: level_rtl()
+
+ Get a basic RTL Level value
+
+ See the `Rust documentation for rtl <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.Level.html#method.rtl>`__ for more information.
+
+
+ .. js:function:: level_ltr()
+
+ Get a simple LTR Level value
+
+ See the `Rust documentation for ltr <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.Level.html#method.ltr>`__ for more information.
+
+
+.. js:class:: ICU4XBidiDirection
+
+.. js:class:: ICU4XBidiInfo
+
+ An object containing bidi information for a given string, produced by ``for_text()`` on ``ICU4XBidi``
+
+ See the `Rust documentation for BidiInfo <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.BidiInfo.html>`__ for more information.
+
+
+ .. js:method:: paragraph_count()
+
+ The number of paragraphs contained here
+
+
+ .. js:method:: paragraph_at(n)
+
+ Get the nth paragraph, returning ``None`` if out of bounds
+
+
+ .. js:method:: size()
+
+ The number of bytes in this full text
+
+
+ .. js:method:: level_at(pos)
+
+ Get the BIDI level at a particular byte index in the full text. This integer is conceptually a ``unicode_bidi::Level``, and can be further inspected using the static methods on ICU4XBidi.
+
+ Returns 0 (equivalent to ``Level::ltr()``) on error
+
+
+.. js:class:: ICU4XBidiParagraph
+
+ Bidi information for a single processed paragraph
+
+
+ .. js:method:: set_paragraph_in_text(n)
+
+ Given a paragraph index ``n`` within the surrounding text, this sets this object to the paragraph at that index. Returns ``ICU4XError::OutOfBoundsError`` when out of bounds.
+
+ This is equivalent to calling ``paragraph_at()`` on ``ICU4XBidiInfo`` but doesn't create a new object
+
+
+ .. js:method:: direction()
+
+ The primary direction of this paragraph
+
+ See the `Rust documentation for level_at <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.Paragraph.html#method.level_at>`__ for more information.
+
+
+ .. js:method:: size()
+
+ The number of bytes in this paragraph
+
+ See the `Rust documentation for len <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.ParagraphInfo.html#method.len>`__ for more information.
+
+
+ .. js:method:: range_start()
+
+ The start index of this paragraph within the source text
+
+
+ .. js:method:: range_end()
+
+ The end index of this paragraph within the source text
+
+
+ .. js:method:: reorder_line(range_start, range_end)
+
+ Reorder a line based on display order. The ranges are specified relative to the source text and must be contained within this paragraph's range.
+
+ See the `Rust documentation for level_at <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.Paragraph.html#method.level_at>`__ for more information.
+
+
+ .. js:method:: level_at(pos)
+
+ Get the BIDI level at a particular byte index in this paragraph. This integer is conceptually a ``unicode_bidi::Level``, and can be further inspected using the static methods on ICU4XBidi.
+
+ Returns 0 (equivalent to ``Level::ltr()``) on error
+
+ See the `Rust documentation for level_at <https://docs.rs/unicode_bidi/latest/unicode_bidi/struct.Paragraph.html#method.level_at>`__ for more information.
+
+
+.. js:class:: ICU4XReorderedIndexMap
+
+ Thin wrapper around a vector that maps visual indices to source indices
+
+ ``map[visualIndex] = sourceIndex``
+
+ Produced by ``reorder_visual()`` on :js:class:`ICU4XBidi`.
+
+
+ .. js:method:: as_slice()
+
+ Get this as a slice/array of indices
+
+
+ .. js:method:: len()
+
+ The length of this map
+
+
+ .. js:method:: get(index)
+
+ Get element at ``index``. Returns 0 when out of bounds (note that 0 is also a valid in-bounds value, please use ``len()`` to avoid out-of-bounds)
+
diff --git a/intl/icu_capi/js/package/docs/source/calendar_ffi.rst b/intl/icu_capi/js/package/docs/source/calendar_ffi.rst
new file mode 100644
index 0000000000..7d787c0479
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/calendar_ffi.rst
@@ -0,0 +1,60 @@
+``calendar::ffi``
+=================
+
+.. js:class:: ICU4XAnyCalendarKind
+
+ The various calendar types currently supported by :js:class:`ICU4XCalendar`
+
+ See the `Rust documentation for AnyCalendarKind <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendarKind.html>`__ for more information.
+
+
+ .. js:function:: get_for_locale(locale)
+
+ Read the calendar type off of the -u-ca- extension on a locale.
+
+ Errors if there is no calendar on the locale or if the locale's calendar is not known or supported.
+
+ See the `Rust documentation for get_for_locale <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendarKind.html#method.get_for_locale>`__ for more information.
+
+
+ .. js:function:: get_for_bcp47(s)
+
+ Obtain the calendar type given a BCP-47 -u-ca- extension string.
+
+ Errors if the calendar is not known or supported.
+
+ See the `Rust documentation for get_for_bcp47_value <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendarKind.html#method.get_for_bcp47_value>`__ for more information.
+
+
+ .. js:method:: bcp47()
+
+ Obtain the string suitable for use in the -u-ca- extension in a BCP47 locale.
+
+ See the `Rust documentation for as_bcp47_string <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendarKind.html#method.as_bcp47_string>`__ for more information.
+
+
+.. js:class:: ICU4XCalendar
+
+ See the `Rust documentation for AnyCalendar <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendar.html>`__ for more information.
+
+
+ .. js:function:: create_for_locale(provider, locale)
+
+ Creates a new :js:class:`ICU4XCalendar` from the specified date and time.
+
+ See the `Rust documentation for new_for_locale <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendar.html#method.new_for_locale>`__ for more information.
+
+
+ .. js:function:: create_for_kind(provider, kind)
+
+ Creates a new :js:class:`ICU4XCalendar` from the specified date and time.
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendar.html#method.new>`__ for more information.
+
+
+ .. js:method:: kind()
+
+ Returns the kind of this calendar
+
+ See the `Rust documentation for kind <https://docs.rs/icu/latest/icu/calendar/enum.AnyCalendar.html#method.kind>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/casemap_ffi.rst b/intl/icu_capi/js/package/docs/source/casemap_ffi.rst
new file mode 100644
index 0000000000..7af7654d11
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/casemap_ffi.rst
@@ -0,0 +1,182 @@
+``casemap::ffi``
+================
+
+.. js:class:: ICU4XCaseMapCloser
+
+ See the `Rust documentation for CaseMapCloser <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapCloser.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct a new ICU4XCaseMapper instance
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapCloser.html#method.new>`__ for more information.
+
+
+ .. js:method:: add_case_closure_to(c, builder)
+
+ Adds all simple case mappings and the full case folding for ``c`` to ``builder``. Also adds special case closure mappings.
+
+ See the `Rust documentation for add_case_closure_to <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapCloser.html#method.add_case_closure_to>`__ for more information.
+
+
+ .. js:method:: add_string_case_closure_to(s, builder)
+
+ Finds all characters and strings which may casemap to ``s`` as their full case folding string and adds them to the set.
+
+ Returns true if the string was found
+
+ See the `Rust documentation for add_string_case_closure_to <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapCloser.html#method.add_string_case_closure_to>`__ for more information.
+
+
+.. js:class:: ICU4XCaseMapper
+
+ See the `Rust documentation for CaseMapper <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct a new ICU4XCaseMapper instance
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.new>`__ for more information.
+
+
+ .. js:method:: lowercase(s, locale)
+
+ Returns the full lowercase mapping of the given string
+
+ See the `Rust documentation for lowercase <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.lowercase>`__ for more information.
+
+
+ .. js:method:: uppercase(s, locale)
+
+ Returns the full uppercase mapping of the given string
+
+ See the `Rust documentation for uppercase <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.uppercase>`__ for more information.
+
+
+ .. js:method:: titlecase_segment_with_only_case_data_v1(s, locale, options)
+
+ Returns the full titlecase mapping of the given string, performing head adjustment without loading additional data. (if head adjustment is enabled in the options)
+
+ The ``v1`` refers to the version of the options struct, which may change as we add more options
+
+ See the `Rust documentation for titlecase_segment_with_only_case_data <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.titlecase_segment_with_only_case_data>`__ for more information.
+
+
+ .. js:method:: fold(s)
+
+ Case-folds the characters in the given string
+
+ See the `Rust documentation for fold <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.fold>`__ for more information.
+
+
+ .. js:method:: fold_turkic(s)
+
+ Case-folds the characters in the given string using Turkic (T) mappings for dotted/dotless I.
+
+ See the `Rust documentation for fold_turkic <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.fold_turkic>`__ for more information.
+
+
+ .. js:method:: add_case_closure_to(c, builder)
+
+ Adds all simple case mappings and the full case folding for ``c`` to ``builder``. Also adds special case closure mappings.
+
+ In other words, this adds all characters that this casemaps to, as well as all characters that may casemap to this one.
+
+ Note that since ICU4XCodePointSetBuilder does not contain strings, this will ignore string mappings.
+
+ Identical to the similarly named method on ``ICU4XCaseMapCloser``, use that if you plan on using string case closure mappings too.
+
+ See the `Rust documentation for add_case_closure_to <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.add_case_closure_to>`__ for more information.
+
+
+ .. js:method:: simple_lowercase(ch)
+
+ Returns the simple lowercase mapping of the given character.
+
+ This function only implements simple and common mappings. Full mappings, which can map one char to a string, are not included. For full mappings, use ``ICU4XCaseMapper::lowercase``.
+
+ See the `Rust documentation for simple_lowercase <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.simple_lowercase>`__ for more information.
+
+
+ .. js:method:: simple_uppercase(ch)
+
+ Returns the simple uppercase mapping of the given character.
+
+ This function only implements simple and common mappings. Full mappings, which can map one char to a string, are not included. For full mappings, use ``ICU4XCaseMapper::uppercase``.
+
+ See the `Rust documentation for simple_uppercase <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.simple_uppercase>`__ for more information.
+
+
+ .. js:method:: simple_titlecase(ch)
+
+ Returns the simple titlecase mapping of the given character.
+
+ This function only implements simple and common mappings. Full mappings, which can map one char to a string, are not included. For full mappings, use ``ICU4XCaseMapper::titlecase_segment``.
+
+ See the `Rust documentation for simple_titlecase <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.simple_titlecase>`__ for more information.
+
+
+ .. js:method:: simple_fold(ch)
+
+ Returns the simple casefolding of the given character.
+
+ This function only implements simple folding. For full folding, use ``ICU4XCaseMapper::fold``.
+
+ See the `Rust documentation for simple_fold <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.simple_fold>`__ for more information.
+
+
+ .. js:method:: simple_fold_turkic(ch)
+
+ Returns the simple casefolding of the given character in the Turkic locale
+
+ This function only implements simple folding. For full folding, use ``ICU4XCaseMapper::fold_turkic``.
+
+ See the `Rust documentation for simple_fold_turkic <https://docs.rs/icu/latest/icu/casemap/struct.CaseMapper.html#method.simple_fold_turkic>`__ for more information.
+
+
+.. js:class:: ICU4XLeadingAdjustment
+
+ See the `Rust documentation for LeadingAdjustment <https://docs.rs/icu/latest/icu/casemap/titlecase/enum.LeadingAdjustment.html>`__ for more information.
+
+
+.. js:class:: ICU4XTitlecaseMapper
+
+ See the `Rust documentation for TitlecaseMapper <https://docs.rs/icu/latest/icu/casemap/struct.TitlecaseMapper.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct a new ``ICU4XTitlecaseMapper`` instance
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/casemap/struct.TitlecaseMapper.html#method.new>`__ for more information.
+
+
+ .. js:method:: titlecase_segment_v1(s, locale, options)
+
+ Returns the full titlecase mapping of the given string
+
+ The ``v1`` refers to the version of the options struct, which may change as we add more options
+
+ See the `Rust documentation for titlecase_segment <https://docs.rs/icu/latest/icu/casemap/struct.TitlecaseMapper.html#method.titlecase_segment>`__ for more information.
+
+
+.. js:class:: ICU4XTitlecaseOptionsV1
+
+ See the `Rust documentation for TitlecaseOptions <https://docs.rs/icu/latest/icu/casemap/titlecase/struct.TitlecaseOptions.html>`__ for more information.
+
+
+ .. js:attribute:: leading_adjustment
+
+ .. js:attribute:: trailing_case
+
+ .. js:function:: default_options()
+
+ See the `Rust documentation for default <https://docs.rs/icu/latest/icu/casemap/titlecase/struct.TitlecaseOptions.html#method.default>`__ for more information.
+
+
+.. js:class:: ICU4XTrailingCase
+
+ See the `Rust documentation for TrailingCase <https://docs.rs/icu/latest/icu/casemap/titlecase/enum.TrailingCase.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/collator_ffi.rst b/intl/icu_capi/js/package/docs/source/collator_ffi.rst
new file mode 100644
index 0000000000..2127d2713d
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/collator_ffi.rst
@@ -0,0 +1,97 @@
+``collator::ffi``
+=================
+
+.. js:class:: ICU4XCollator
+
+ See the `Rust documentation for Collator <https://docs.rs/icu/latest/icu/collator/struct.Collator.html>`__ for more information.
+
+
+ .. js:function:: create_v1(provider, locale, options)
+
+ Construct a new Collator instance.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/collator/struct.Collator.html#method.try_new>`__ for more information.
+
+
+ .. js:method:: compare(left, right)
+
+ Compare potentially ill-formed UTF-8 strings.
+
+ Ill-formed input is compared as if errors had been replaced with REPLACEMENT CHARACTERs according to the WHATWG Encoding Standard.
+
+ See the `Rust documentation for compare_utf8 <https://docs.rs/icu/latest/icu/collator/struct.Collator.html#method.compare_utf8>`__ for more information.
+
+
+ .. js:method:: compare_valid_utf8(left, right)
+
+ Compare guaranteed well-formed UTF-8 strings.
+
+ Note: In C++, passing ill-formed UTF-8 strings is undefined behavior (and may be memory-unsafe to do so, too).
+
+ See the `Rust documentation for compare <https://docs.rs/icu/latest/icu/collator/struct.Collator.html#method.compare>`__ for more information.
+
+
+ .. js:method:: compare_utf16(left, right)
+
+ Compare potentially ill-formed UTF-16 strings, with unpaired surrogates compared as REPLACEMENT CHARACTER.
+
+ See the `Rust documentation for compare_utf16 <https://docs.rs/icu/latest/icu/collator/struct.Collator.html#method.compare_utf16>`__ for more information.
+
+ - Note: ``left`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+ - Note: ``right`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+
+.. js:class:: ICU4XCollatorAlternateHandling
+
+ See the `Rust documentation for AlternateHandling <https://docs.rs/icu/latest/icu/collator/enum.AlternateHandling.html>`__ for more information.
+
+
+.. js:class:: ICU4XCollatorBackwardSecondLevel
+
+ See the `Rust documentation for BackwardSecondLevel <https://docs.rs/icu/latest/icu/collator/enum.BackwardSecondLevel.html>`__ for more information.
+
+
+.. js:class:: ICU4XCollatorCaseFirst
+
+ See the `Rust documentation for CaseFirst <https://docs.rs/icu/latest/icu/collator/enum.CaseFirst.html>`__ for more information.
+
+
+.. js:class:: ICU4XCollatorCaseLevel
+
+ See the `Rust documentation for CaseLevel <https://docs.rs/icu/latest/icu/collator/enum.CaseLevel.html>`__ for more information.
+
+
+.. js:class:: ICU4XCollatorMaxVariable
+
+ See the `Rust documentation for MaxVariable <https://docs.rs/icu/latest/icu/collator/enum.MaxVariable.html>`__ for more information.
+
+
+.. js:class:: ICU4XCollatorNumeric
+
+ See the `Rust documentation for Numeric <https://docs.rs/icu/latest/icu/collator/enum.Numeric.html>`__ for more information.
+
+
+.. js:class:: ICU4XCollatorOptionsV1
+
+ See the `Rust documentation for CollatorOptions <https://docs.rs/icu/latest/icu/collator/struct.CollatorOptions.html>`__ for more information.
+
+
+ .. js:attribute:: strength
+
+ .. js:attribute:: alternate_handling
+
+ .. js:attribute:: case_first
+
+ .. js:attribute:: max_variable
+
+ .. js:attribute:: case_level
+
+ .. js:attribute:: numeric
+
+ .. js:attribute:: backward_second_level
+
+.. js:class:: ICU4XCollatorStrength
+
+ See the `Rust documentation for Strength <https://docs.rs/icu/latest/icu/collator/enum.Strength.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/collections_sets_ffi.rst b/intl/icu_capi/js/package/docs/source/collections_sets_ffi.rst
new file mode 100644
index 0000000000..464ffbd6f0
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/collections_sets_ffi.rst
@@ -0,0 +1,143 @@
+``collections_sets::ffi``
+=========================
+
+.. js:class:: ICU4XCodePointSetBuilder
+
+ See the `Rust documentation for CodePointInversionListBuilder <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html>`__ for more information.
+
+
+ .. js:function:: create()
+
+ Make a new set builder containing nothing
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.new>`__ for more information.
+
+
+ .. js:method:: build()
+
+ Build this into a set
+
+ This object is repopulated with an empty builder
+
+ See the `Rust documentation for build <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.build>`__ for more information.
+
+
+ .. js:method:: complement()
+
+ Complements this set
+
+ (Elements in this set are removed and vice versa)
+
+ See the `Rust documentation for complement <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.complement>`__ for more information.
+
+
+ .. js:method:: is_empty()
+
+ Returns whether this set is empty
+
+ See the `Rust documentation for is_empty <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.is_empty>`__ for more information.
+
+
+ .. js:method:: add_char(ch)
+
+ Add a single character to the set
+
+ See the `Rust documentation for add_char <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.add_char>`__ for more information.
+
+
+ .. js:method:: add_u32(ch)
+
+ Add a single u32 value to the set
+
+ See the `Rust documentation for add_u32 <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.add_u32>`__ for more information.
+
+
+ .. js:method:: add_inclusive_range(start, end)
+
+ Add an inclusive range of characters to the set
+
+ See the `Rust documentation for add_range <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.add_range>`__ for more information.
+
+
+ .. js:method:: add_inclusive_range_u32(start, end)
+
+ Add an inclusive range of u32s to the set
+
+ See the `Rust documentation for add_range_u32 <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.add_range_u32>`__ for more information.
+
+
+ .. js:method:: add_set(data)
+
+ Add all elements that belong to the provided set to the set
+
+ See the `Rust documentation for add_set <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.add_set>`__ for more information.
+
+
+ .. js:method:: remove_char(ch)
+
+ Remove a single character to the set
+
+ See the `Rust documentation for remove_char <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.remove_char>`__ for more information.
+
+
+ .. js:method:: remove_inclusive_range(start, end)
+
+ Remove an inclusive range of characters from the set
+
+ See the `Rust documentation for remove_range <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.remove_range>`__ for more information.
+
+
+ .. js:method:: remove_set(data)
+
+ Remove all elements that belong to the provided set from the set
+
+ See the `Rust documentation for remove_set <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.remove_set>`__ for more information.
+
+
+ .. js:method:: retain_char(ch)
+
+ Removes all elements from the set except a single character
+
+ See the `Rust documentation for retain_char <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.retain_char>`__ for more information.
+
+
+ .. js:method:: retain_inclusive_range(start, end)
+
+ Removes all elements from the set except an inclusive range of characters f
+
+ See the `Rust documentation for retain_range <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.retain_range>`__ for more information.
+
+
+ .. js:method:: retain_set(data)
+
+ Removes all elements from the set except all elements in the provided set
+
+ See the `Rust documentation for retain_set <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.retain_set>`__ for more information.
+
+
+ .. js:method:: complement_char(ch)
+
+ Complement a single character to the set
+
+ (Characters which are in this set are removed and vice versa)
+
+ See the `Rust documentation for complement_char <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.complement_char>`__ for more information.
+
+
+ .. js:method:: complement_inclusive_range(start, end)
+
+ Complement an inclusive range of characters from the set
+
+ (Characters which are in this set are removed and vice versa)
+
+ See the `Rust documentation for complement_range <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.complement_range>`__ for more information.
+
+
+ .. js:method:: complement_set(data)
+
+ Complement all elements that belong to the provided set from the set
+
+ (Characters which are in this set are removed and vice versa)
+
+ See the `Rust documentation for complement_set <https://docs.rs/icu/latest/icu/collections/codepointinvlist/struct.CodePointInversionListBuilder.html#method.complement_set>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/common_ffi.rst b/intl/icu_capi/js/package/docs/source/common_ffi.rst
new file mode 100644
index 0000000000..aa630c3c42
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/common_ffi.rst
@@ -0,0 +1,7 @@
+``common::ffi``
+===============
+
+.. js:class:: ICU4XOrdering
+
+ See the `Rust documentation for Ordering <https://docs.rs/core/latest/core/cmp/enum.Ordering.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/conf.py b/intl/icu_capi/js/package/docs/source/conf.py
new file mode 100644
index 0000000000..6571e77e46
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/conf.py
@@ -0,0 +1,60 @@
+# This file is part of ICU4X. For terms of use, please see the file
+# called LICENSE at the top level of the ICU4X source tree
+# (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
+
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'ICU4X'
+copyright = '2022, The ICU4X Developers'
+author = 'The ICU4X Developers'
+
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = []
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = []
+
+html_theme_options = {
+ 'navigation_depth': 4,
+}
diff --git a/intl/icu_capi/js/package/docs/source/data_struct_ffi.rst b/intl/icu_capi/js/package/docs/source/data_struct_ffi.rst
new file mode 100644
index 0000000000..ad9e71f821
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/data_struct_ffi.rst
@@ -0,0 +1,20 @@
+``data_struct::ffi``
+====================
+
+.. js:class:: ICU4XDataStruct
+
+ A generic data struct to be used by ICU4X
+
+ This can be used to construct a StructDataProvider.
+
+
+ .. js:function:: create_decimal_symbols_v1(plus_sign_prefix, plus_sign_suffix, minus_sign_prefix, minus_sign_suffix, decimal_separator, grouping_separator, primary_group_size, secondary_group_size, min_group_size, digits)
+
+ Construct a new DecimalSymbolsV1 data struct.
+
+ C++ users: All string arguments must be valid UTF8
+
+ See the `Rust documentation for DecimalSymbolsV1 <https://docs.rs/icu/latest/icu/decimal/provider/struct.DecimalSymbolsV1.html>`__ for more information.
+
+ - Note: ``digits`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
diff --git a/intl/icu_capi/js/package/docs/source/date_ffi.rst b/intl/icu_capi/js/package/docs/source/date_ffi.rst
new file mode 100644
index 0000000000..ef3936bdd9
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/date_ffi.rst
@@ -0,0 +1,234 @@
+``date::ffi``
+=============
+
+.. js:class:: ICU4XDate
+
+ An ICU4X Date object capable of containing a date and time for any calendar.
+
+ See the `Rust documentation for Date <https://docs.rs/icu/latest/icu/calendar/struct.Date.html>`__ for more information.
+
+
+ .. js:function:: create_from_iso_in_calendar(year, month, day, calendar)
+
+ Creates a new :js:class:`ICU4XDate` representing the ISO date and time given but in a given calendar
+
+ See the `Rust documentation for new_from_iso <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.new_from_iso>`__ for more information.
+
+
+ .. js:function:: create_from_codes_in_calendar(era_code, year, month_code, day, calendar)
+
+ Creates a new :js:class:`ICU4XDate` from the given codes, which are interpreted in the given calendar system
+
+ See the `Rust documentation for try_new_from_codes <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.try_new_from_codes>`__ for more information.
+
+
+ .. js:method:: to_calendar(calendar)
+
+ Convert this date to one in a different calendar
+
+ See the `Rust documentation for to_calendar <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.to_calendar>`__ for more information.
+
+
+ .. js:method:: to_iso()
+
+ Converts this date to ISO
+
+ See the `Rust documentation for to_iso <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.to_iso>`__ for more information.
+
+
+ .. js:method:: day_of_month()
+
+ Returns the 1-indexed day in the month for this date
+
+ See the `Rust documentation for day_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_month>`__ for more information.
+
+
+ .. js:method:: day_of_week()
+
+ Returns the day in the week for this day
+
+ See the `Rust documentation for day_of_week <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_week>`__ for more information.
+
+
+ .. js:method:: week_of_month(first_weekday)
+
+ Returns the week number in this month, 1-indexed, based on what is considered the first day of the week (often a locale preference).
+
+ ``first_weekday`` can be obtained via ``first_weekday()`` on :js:class:`ICU4XWeekCalculator`
+
+ See the `Rust documentation for week_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_month>`__ for more information.
+
+
+ .. js:method:: week_of_year(calculator)
+
+ Returns the week number in this year, using week data
+
+ See the `Rust documentation for week_of_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_year>`__ for more information.
+
+
+ .. js:method:: ordinal_month()
+
+ Returns 1-indexed number of the month of this date in its year
+
+ Note that for lunar calendars this may not lead to the same month having the same ordinal month across years; use month_code if you care about month identity.
+
+ See the `Rust documentation for month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.month>`__ for more information.
+
+
+ .. js:method:: month_code()
+
+ Returns the month code for this date. Typically something like "M01", "M02", but can be more complicated for lunar calendars.
+
+ See the `Rust documentation for month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.month>`__ for more information.
+
+
+ .. js:method:: year_in_era()
+
+ Returns the year number in the current era for this date
+
+ See the `Rust documentation for year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.year>`__ for more information.
+
+
+ .. js:method:: era()
+
+ Returns the era for this date,
+
+ See the `Rust documentation for year <https://docs.rs/icu/latest/icu/struct.Date.html#method.year>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/types/struct.Era.html>`__
+
+
+ .. js:method:: months_in_year()
+
+ Returns the number of months in the year represented by this date
+
+ See the `Rust documentation for months_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.months_in_year>`__ for more information.
+
+
+ .. js:method:: days_in_month()
+
+ Returns the number of days in the month represented by this date
+
+ See the `Rust documentation for days_in_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_month>`__ for more information.
+
+
+ .. js:method:: days_in_year()
+
+ Returns the number of days in the year represented by this date
+
+ See the `Rust documentation for days_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_year>`__ for more information.
+
+
+ .. js:method:: calendar()
+
+ Returns the :js:class:`ICU4XCalendar` object backing this date
+
+ See the `Rust documentation for calendar <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.calendar>`__ for more information.
+
+
+.. js:class:: ICU4XIsoDate
+
+ An ICU4X Date object capable of containing a ISO-8601 date
+
+ See the `Rust documentation for Date <https://docs.rs/icu/latest/icu/calendar/struct.Date.html>`__ for more information.
+
+
+ .. js:function:: create(year, month, day)
+
+ Creates a new :js:class:`ICU4XIsoDate` from the specified date and time.
+
+ See the `Rust documentation for try_new_iso_date <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.try_new_iso_date>`__ for more information.
+
+
+ .. js:function:: create_for_unix_epoch()
+
+ Creates a new :js:class:`ICU4XIsoDate` representing January 1, 1970.
+
+ See the `Rust documentation for unix_epoch <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.unix_epoch>`__ for more information.
+
+
+ .. js:method:: to_calendar(calendar)
+
+ Convert this date to one in a different calendar
+
+ See the `Rust documentation for to_calendar <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.to_calendar>`__ for more information.
+
+
+ .. js:method:: to_any()
+
+ See the `Rust documentation for to_any <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.to_any>`__ for more information.
+
+
+ .. js:method:: day_of_month()
+
+ Returns the 1-indexed day in the month for this date
+
+ See the `Rust documentation for day_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_month>`__ for more information.
+
+
+ .. js:method:: day_of_week()
+
+ Returns the day in the week for this day
+
+ See the `Rust documentation for day_of_week <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_week>`__ for more information.
+
+
+ .. js:method:: week_of_month(first_weekday)
+
+ Returns the week number in this month, 1-indexed, based on what is considered the first day of the week (often a locale preference).
+
+ ``first_weekday`` can be obtained via ``first_weekday()`` on :js:class:`ICU4XWeekCalculator`
+
+ See the `Rust documentation for week_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_month>`__ for more information.
+
+
+ .. js:method:: week_of_year(calculator)
+
+ Returns the week number in this year, using week data
+
+ See the `Rust documentation for week_of_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_year>`__ for more information.
+
+
+ .. js:method:: month()
+
+ Returns 1-indexed number of the month of this date in its year
+
+ See the `Rust documentation for month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.month>`__ for more information.
+
+
+ .. js:method:: year()
+
+ Returns the year number for this date
+
+ See the `Rust documentation for year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.year>`__ for more information.
+
+
+ .. js:method:: is_in_leap_year()
+
+ Returns if the year is a leap year for this date
+
+ See the `Rust documentation for is_in_leap_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.is_in_leap_year>`__ for more information.
+
+
+ .. js:method:: months_in_year()
+
+ Returns the number of months in the year represented by this date
+
+ See the `Rust documentation for months_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.months_in_year>`__ for more information.
+
+
+ .. js:method:: days_in_month()
+
+ Returns the number of days in the month represented by this date
+
+ See the `Rust documentation for days_in_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_month>`__ for more information.
+
+
+ .. js:method:: days_in_year()
+
+ Returns the number of days in the year represented by this date
+
+ See the `Rust documentation for days_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_year>`__ for more information.
+
+
+.. js:class:: ICU4XIsoWeekday
diff --git a/intl/icu_capi/js/package/docs/source/datetime_ffi.rst b/intl/icu_capi/js/package/docs/source/datetime_ffi.rst
new file mode 100644
index 0000000000..f1fc88d41b
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/datetime_ffi.rst
@@ -0,0 +1,337 @@
+``datetime::ffi``
+=================
+
+.. js:class:: ICU4XDateTime
+
+ An ICU4X DateTime object capable of containing a date and time for any calendar.
+
+ See the `Rust documentation for DateTime <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html>`__ for more information.
+
+
+ .. js:function:: create_from_iso_in_calendar(year, month, day, hour, minute, second, nanosecond, calendar)
+
+ Creates a new :js:class:`ICU4XDateTime` representing the ISO date and time given but in a given calendar
+
+ See the `Rust documentation for new_from_iso <https://docs.rs/icu/latest/icu/struct.DateTime.html#method.new_from_iso>`__ for more information.
+
+
+ .. js:function:: create_from_codes_in_calendar(era_code, year, month_code, day, hour, minute, second, nanosecond, calendar)
+
+ Creates a new :js:class:`ICU4XDateTime` from the given codes, which are interpreted in the given calendar system
+
+ See the `Rust documentation for try_new_from_codes <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.try_new_from_codes>`__ for more information.
+
+
+ .. js:function:: create_from_date_and_time(date, time)
+
+ Creates a new :js:class:`ICU4XDateTime` from an :js:class:`ICU4XDate` and :js:class:`ICU4XTime` object
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.new>`__ for more information.
+
+
+ .. js:method:: date()
+
+ Gets a copy of the date contained in this object
+
+ See the `Rust documentation for date <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#structfield.date>`__ for more information.
+
+
+ .. js:method:: time()
+
+ Gets the time contained in this object
+
+ See the `Rust documentation for time <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#structfield.time>`__ for more information.
+
+
+ .. js:method:: to_iso()
+
+ Converts this date to ISO
+
+ See the `Rust documentation for to_iso <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.to_iso>`__ for more information.
+
+
+ .. js:method:: to_calendar(calendar)
+
+ Convert this datetime to one in a different calendar
+
+ See the `Rust documentation for to_calendar <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.to_calendar>`__ for more information.
+
+
+ .. js:method:: hour()
+
+ Returns the hour in this time
+
+ See the `Rust documentation for hour <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.hour>`__ for more information.
+
+
+ .. js:method:: minute()
+
+ Returns the minute in this time
+
+ See the `Rust documentation for minute <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.minute>`__ for more information.
+
+
+ .. js:method:: second()
+
+ Returns the second in this time
+
+ See the `Rust documentation for second <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.second>`__ for more information.
+
+
+ .. js:method:: nanosecond()
+
+ Returns the nanosecond in this time
+
+ See the `Rust documentation for nanosecond <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.nanosecond>`__ for more information.
+
+
+ .. js:method:: day_of_month()
+
+ Returns the 1-indexed day in the month for this date
+
+ See the `Rust documentation for day_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_month>`__ for more information.
+
+
+ .. js:method:: day_of_week()
+
+ Returns the day in the week for this day
+
+ See the `Rust documentation for day_of_week <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_week>`__ for more information.
+
+
+ .. js:method:: week_of_month(first_weekday)
+
+ Returns the week number in this month, 1-indexed, based on what is considered the first day of the week (often a locale preference).
+
+ ``first_weekday`` can be obtained via ``first_weekday()`` on :js:class:`ICU4XWeekCalculator`
+
+ See the `Rust documentation for week_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_month>`__ for more information.
+
+
+ .. js:method:: week_of_year(calculator)
+
+ Returns the week number in this year, using week data
+
+ See the `Rust documentation for week_of_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_year>`__ for more information.
+
+
+ .. js:method:: ordinal_month()
+
+ Returns 1-indexed number of the month of this date in its year
+
+ Note that for lunar calendars this may not lead to the same month having the same ordinal month across years; use month_code if you care about month identity.
+
+ See the `Rust documentation for month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.month>`__ for more information.
+
+
+ .. js:method:: month_code()
+
+ Returns the month code for this date. Typically something like "M01", "M02", but can be more complicated for lunar calendars.
+
+ See the `Rust documentation for month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.month>`__ for more information.
+
+
+ .. js:method:: year_in_era()
+
+ Returns the year number in the current era for this date
+
+ See the `Rust documentation for year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.year>`__ for more information.
+
+
+ .. js:method:: era()
+
+ Returns the era for this date,
+
+ See the `Rust documentation for year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.year>`__ for more information.
+
+
+ .. js:method:: months_in_year()
+
+ Returns the number of months in the year represented by this date
+
+ See the `Rust documentation for months_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.months_in_year>`__ for more information.
+
+
+ .. js:method:: days_in_month()
+
+ Returns the number of days in the month represented by this date
+
+ See the `Rust documentation for days_in_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_month>`__ for more information.
+
+
+ .. js:method:: days_in_year()
+
+ Returns the number of days in the year represented by this date
+
+ See the `Rust documentation for days_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_year>`__ for more information.
+
+
+ .. js:method:: calendar()
+
+ Returns the :js:class:`ICU4XCalendar` object backing this date
+
+ See the `Rust documentation for calendar <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.calendar>`__ for more information.
+
+
+.. js:class:: ICU4XIsoDateTime
+
+ An ICU4X DateTime object capable of containing a ISO-8601 date and time.
+
+ See the `Rust documentation for DateTime <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html>`__ for more information.
+
+
+ .. js:function:: create(year, month, day, hour, minute, second, nanosecond)
+
+ Creates a new :js:class:`ICU4XIsoDateTime` from the specified date and time.
+
+ See the `Rust documentation for try_new_iso_datetime <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.try_new_iso_datetime>`__ for more information.
+
+
+ .. js:function:: crate_from_date_and_time(date, time)
+
+ Creates a new :js:class:`ICU4XIsoDateTime` from an :js:class:`ICU4XIsoDate` and :js:class:`ICU4XTime` object
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.new>`__ for more information.
+
+
+ .. js:function:: create_from_minutes_since_local_unix_epoch(minutes)
+
+ Construct from the minutes since the local unix epoch for this date (Jan 1 1970, 00:00)
+
+ See the `Rust documentation for from_minutes_since_local_unix_epoch <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.from_minutes_since_local_unix_epoch>`__ for more information.
+
+
+ .. js:method:: date()
+
+ Gets the date contained in this object
+
+ See the `Rust documentation for date <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#structfield.date>`__ for more information.
+
+
+ .. js:method:: time()
+
+ Gets the time contained in this object
+
+ See the `Rust documentation for time <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#structfield.time>`__ for more information.
+
+
+ .. js:method:: to_any()
+
+ Converts this to an :js:class:`ICU4XDateTime` capable of being mixed with dates of other calendars
+
+ See the `Rust documentation for to_any <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.to_any>`__ for more information.
+
+
+ .. js:method:: minutes_since_local_unix_epoch()
+
+ Gets the minutes since the local unix epoch for this date (Jan 1 1970, 00:00)
+
+ See the `Rust documentation for minutes_since_local_unix_epoch <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.minutes_since_local_unix_epoch>`__ for more information.
+
+
+ .. js:method:: to_calendar(calendar)
+
+ Convert this datetime to one in a different calendar
+
+ See the `Rust documentation for to_calendar <https://docs.rs/icu/latest/icu/calendar/struct.DateTime.html#method.to_calendar>`__ for more information.
+
+
+ .. js:method:: hour()
+
+ Returns the hour in this time
+
+ See the `Rust documentation for hour <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.hour>`__ for more information.
+
+
+ .. js:method:: minute()
+
+ Returns the minute in this time
+
+ See the `Rust documentation for minute <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.minute>`__ for more information.
+
+
+ .. js:method:: second()
+
+ Returns the second in this time
+
+ See the `Rust documentation for second <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.second>`__ for more information.
+
+
+ .. js:method:: nanosecond()
+
+ Returns the nanosecond in this time
+
+ See the `Rust documentation for nanosecond <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.nanosecond>`__ for more information.
+
+
+ .. js:method:: day_of_month()
+
+ Returns the 1-indexed day in the month for this date
+
+ See the `Rust documentation for day_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_month>`__ for more information.
+
+
+ .. js:method:: day_of_week()
+
+ Returns the day in the week for this day
+
+ See the `Rust documentation for day_of_week <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.day_of_week>`__ for more information.
+
+
+ .. js:method:: week_of_month(first_weekday)
+
+ Returns the week number in this month, 1-indexed, based on what is considered the first day of the week (often a locale preference).
+
+ ``first_weekday`` can be obtained via ``first_weekday()`` on :js:class:`ICU4XWeekCalculator`
+
+ See the `Rust documentation for week_of_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_month>`__ for more information.
+
+
+ .. js:method:: week_of_year(calculator)
+
+ Returns the week number in this year, using week data
+
+ See the `Rust documentation for week_of_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.week_of_year>`__ for more information.
+
+
+ .. js:method:: month()
+
+ Returns 1-indexed number of the month of this date in its year
+
+ See the `Rust documentation for month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.month>`__ for more information.
+
+
+ .. js:method:: year()
+
+ Returns the year number for this date
+
+ See the `Rust documentation for year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.year>`__ for more information.
+
+
+ .. js:method:: is_in_leap_year()
+
+ Returns whether this date is in a leap year
+
+ See the `Rust documentation for is_in_leap_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.is_in_leap_year>`__ for more information.
+
+
+ .. js:method:: months_in_year()
+
+ Returns the number of months in the year represented by this date
+
+ See the `Rust documentation for months_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.months_in_year>`__ for more information.
+
+
+ .. js:method:: days_in_month()
+
+ Returns the number of days in the month represented by this date
+
+ See the `Rust documentation for days_in_month <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_month>`__ for more information.
+
+
+ .. js:method:: days_in_year()
+
+ Returns the number of days in the year represented by this date
+
+ See the `Rust documentation for days_in_year <https://docs.rs/icu/latest/icu/calendar/struct.Date.html#method.days_in_year>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/datetime_formatter_ffi.rst b/intl/icu_capi/js/package/docs/source/datetime_formatter_ffi.rst
new file mode 100644
index 0000000000..d9c6dce10f
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/datetime_formatter_ffi.rst
@@ -0,0 +1,172 @@
+``datetime_formatter::ffi``
+===========================
+
+.. js:class:: ICU4XDateFormatter
+
+ An ICU4X DateFormatter object capable of formatting a :js:class:`ICU4XDate` as a string, using some calendar specified at runtime in the locale.
+
+ See the `Rust documentation for DateFormatter <https://docs.rs/icu/latest/icu/datetime/struct.DateFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_length(provider, locale, date_length)
+
+ Creates a new :js:class:`ICU4XDateFormatter` from locale data.
+
+ See the `Rust documentation for try_new_with_length <https://docs.rs/icu/latest/icu/datetime/struct.DateFormatter.html#method.try_new_with_length>`__ for more information.
+
+
+ .. js:method:: format_date(value)
+
+ Formats a :js:class:`ICU4XDate` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.DateFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_iso_date(value)
+
+ Formats a :js:class:`ICU4XIsoDate` to a string.
+
+ Will convert to this formatter's calendar first
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.DateFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_datetime(value)
+
+ Formats a :js:class:`ICU4XDateTime` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.DateFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_iso_datetime(value)
+
+ Formats a :js:class:`ICU4XIsoDateTime` to a string.
+
+ Will convert to this formatter's calendar first
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.DateFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XDateLength
+
+ See the `Rust documentation for Date <https://docs.rs/icu/latest/icu/datetime/options/length/enum.Date.html>`__ for more information.
+
+
+.. js:class:: ICU4XDateTimeFormatter
+
+ An ICU4X DateFormatter object capable of formatting a :js:class:`ICU4XDateTime` as a string, using some calendar specified at runtime in the locale.
+
+ See the `Rust documentation for DateTimeFormatter <https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_lengths(provider, locale, date_length, time_length)
+
+ Creates a new :js:class:`ICU4XDateTimeFormatter` from locale data.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:method:: format_datetime(value)
+
+ Formats a :js:class:`ICU4XDateTime` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_iso_datetime(value)
+
+ Formats a :js:class:`ICU4XIsoDateTime` to a string.
+
+ Will convert to this formatter's calendar first
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.DateTimeFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XGregorianDateFormatter
+
+ An ICU4X TypedDateFormatter object capable of formatting a :js:class:`ICU4XIsoDateTime` as a string, using the Gregorian Calendar.
+
+ See the `Rust documentation for TypedDateFormatter <https://docs.rs/icu/latest/icu/datetime/struct.TypedDateFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_length(provider, locale, length)
+
+ Creates a new :js:class:`ICU4XGregorianDateFormatter` from locale data.
+
+ See the `Rust documentation for try_new_with_length <https://docs.rs/icu/latest/icu/datetime/struct.TypedDateFormatter.html#method.try_new_with_length>`__ for more information.
+
+
+ .. js:method:: format_iso_date(value)
+
+ Formats a :js:class:`ICU4XIsoDate` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.TypedDateFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_iso_datetime(value)
+
+ Formats a :js:class:`ICU4XIsoDateTime` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.TypedDateFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XGregorianDateTimeFormatter
+
+ An ICU4X TypedDateTimeFormatter object capable of formatting a :js:class:`ICU4XIsoDateTime` as a string, using the Gregorian Calendar.
+
+ See the `Rust documentation for TypedDateTimeFormatter <https://docs.rs/icu/latest/icu/datetime/struct.TypedDateTimeFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_lengths(provider, locale, date_length, time_length)
+
+ Creates a new :js:class:`ICU4XGregorianDateFormatter` from locale data.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/struct.TypedDateTimeFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:method:: format_iso_datetime(value)
+
+ Formats a :js:class:`ICU4XIsoDateTime` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.TypedDateTimeFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XTimeFormatter
+
+ An ICU4X TimeFormatter object capable of formatting an :js:class:`ICU4XTime` type (and others) as a string
+
+ See the `Rust documentation for TimeFormatter <https://docs.rs/icu/latest/icu/datetime/struct.TimeFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_length(provider, locale, length)
+
+ Creates a new :js:class:`ICU4XTimeFormatter` from locale data.
+
+ See the `Rust documentation for try_new_with_length <https://docs.rs/icu/latest/icu/datetime/struct.TimeFormatter.html#method.try_new_with_length>`__ for more information.
+
+
+ .. js:method:: format_time(value)
+
+ Formats a :js:class:`ICU4XTime` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.TimeFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_datetime(value)
+
+ Formats a :js:class:`ICU4XDateTime` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.TimeFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_iso_datetime(value)
+
+ Formats a :js:class:`ICU4XIsoDateTime` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.TimeFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XTimeLength
+
+ See the `Rust documentation for Time <https://docs.rs/icu/latest/icu/datetime/options/length/enum.Time.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/decimal_ffi.rst b/intl/icu_capi/js/package/docs/source/decimal_ffi.rst
new file mode 100644
index 0000000000..98fef76f5a
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/decimal_ffi.rst
@@ -0,0 +1,35 @@
+``decimal::ffi``
+================
+
+.. js:class:: ICU4XFixedDecimalFormatter
+
+ An ICU4X Fixed Decimal Format object, capable of formatting a :js:class:`ICU4XFixedDecimal` as a string.
+
+ See the `Rust documentation for FixedDecimalFormatter <https://docs.rs/icu/latest/icu/decimal/struct.FixedDecimalFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_grouping_strategy(provider, locale, grouping_strategy)
+
+ Creates a new :js:class:`ICU4XFixedDecimalFormatter` from locale data.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/decimal/struct.FixedDecimalFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:function:: create_with_decimal_symbols_v1(data_struct, grouping_strategy)
+
+ Creates a new :js:class:`ICU4XFixedDecimalFormatter` from preconstructed locale data in the form of an :js:class:`ICU4XDataStruct` constructed from ``ICU4XDataStruct::create_decimal_symbols()``.
+
+ The contents of the data struct will be consumed: if you wish to use the struct again it will have to be reconstructed. Passing a consumed struct to this method will return an error.
+
+
+ .. js:method:: format(value)
+
+ Formats a :js:class:`ICU4XFixedDecimal` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/decimal/struct.FixedDecimalFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XFixedDecimalGroupingStrategy
+
+ See the `Rust documentation for GroupingStrategy <https://docs.rs/icu/latest/icu/decimal/options/enum.GroupingStrategy.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/displaynames_ffi.rst b/intl/icu_capi/js/package/docs/source/displaynames_ffi.rst
new file mode 100644
index 0000000000..97002eef7e
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/displaynames_ffi.rst
@@ -0,0 +1,75 @@
+``displaynames::ffi``
+=====================
+
+.. js:class:: ICU4XDisplayNamesFallback
+
+ See the `Rust documentation for Fallback <https://docs.rs/icu/latest/icu/displaynames/options/enum.Fallback.html>`__ for more information.
+
+
+.. js:class:: ICU4XDisplayNamesOptionsV1
+
+ See the `Rust documentation for DisplayNamesOptions <https://docs.rs/icu/latest/icu/displaynames/options/struct.DisplayNamesOptions.html>`__ for more information.
+
+
+ .. js:attribute:: style
+
+ The optional formatting style to use for display name.
+
+
+ .. js:attribute:: fallback
+
+ The fallback return when the system does not have the requested display name, defaults to "code".
+
+
+ .. js:attribute:: language_display
+
+ The language display kind, defaults to "dialect".
+
+
+.. js:class:: ICU4XDisplayNamesStyle
+
+ See the `Rust documentation for Style <https://docs.rs/icu/latest/icu/displaynames/options/enum.Style.html>`__ for more information.
+
+
+.. js:class:: ICU4XLanguageDisplay
+
+ See the `Rust documentation for LanguageDisplay <https://docs.rs/icu/latest/icu/displaynames/options/enum.LanguageDisplay.html>`__ for more information.
+
+
+.. js:class:: ICU4XLocaleDisplayNamesFormatter
+
+ See the `Rust documentation for LocaleDisplayNamesFormatter <https://docs.rs/icu/latest/icu/displaynames/struct.LocaleDisplayNamesFormatter.html>`__ for more information.
+
+
+ .. js:function:: create(provider, locale, options)
+
+ Creates a new ``LocaleDisplayNamesFormatter`` from locale data and an options bag.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/displaynames/struct.LocaleDisplayNamesFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:method:: of(locale)
+
+ Returns the locale-specific display name of a locale.
+
+ See the `Rust documentation for of <https://docs.rs/icu/latest/icu/displaynames/struct.LocaleDisplayNamesFormatter.html#method.of>`__ for more information.
+
+
+.. js:class:: ICU4XRegionDisplayNames
+
+ See the `Rust documentation for RegionDisplayNames <https://docs.rs/icu/latest/icu/displaynames/struct.RegionDisplayNames.html>`__ for more information.
+
+
+ .. js:function:: create(provider, locale)
+
+ Creates a new ``RegionDisplayNames`` from locale data and an options bag.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/displaynames/struct.RegionDisplayNames.html#method.try_new>`__ for more information.
+
+
+ .. js:method:: of(region)
+
+ Returns the locale specific display name of a region. Note that the funtion returns an empty string in case the display name for a given region code is not found.
+
+ See the `Rust documentation for of <https://docs.rs/icu/latest/icu/displaynames/struct.RegionDisplayNames.html#method.of>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/errors_ffi.rst b/intl/icu_capi/js/package/docs/source/errors_ffi.rst
new file mode 100644
index 0000000000..c05b848844
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/errors_ffi.rst
@@ -0,0 +1,11 @@
+``errors::ffi``
+===============
+
+.. js:class:: ICU4XError
+
+ A common enum for errors that ICU4X may return, organized by API
+
+ The error names are stable and can be checked against as strings in the JS API
+
+ Additional information: `1 <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.FixedDecimalError.html>`__, `2 <https://docs.rs/icu/latest/icu/calendar/enum.CalendarError.html>`__, `3 <https://docs.rs/icu/latest/icu/collator/enum.CollatorError.html>`__, `4 <https://docs.rs/icu/latest/icu/datetime/enum.DateTimeError.html>`__, `5 <https://docs.rs/icu/latest/icu/decimal/enum.DecimalError.html>`__, `6 <https://docs.rs/icu/latest/icu/list/enum.ListError.html>`__, `7 <https://docs.rs/icu/latest/icu/locid/enum.ParserError.html>`__, `8 <https://docs.rs/icu/latest/icu/locid_transform/enum.LocaleTransformError.html>`__, `9 <https://docs.rs/icu/latest/icu/normalizer/enum.NormalizerError.html>`__, `10 <https://docs.rs/icu/latest/icu/plurals/enum.PluralsError.html>`__, `11 <https://docs.rs/icu/latest/icu/properties/enum.PropertiesError.html>`__, `12 <https://docs.rs/icu/latest/icu/provider/struct.DataError.html>`__, `13 <https://docs.rs/icu/latest/icu/provider/enum.DataErrorKind.html>`__, `14 <https://docs.rs/icu/latest/icu/segmenter/enum.SegmenterError.html>`__, `15 <https://docs.rs/icu/latest/icu/timezone/enum.TimeZoneError.html>`__
+
diff --git a/intl/icu_capi/js/package/docs/source/fallbacker_ffi.rst b/intl/icu_capi/js/package/docs/source/fallbacker_ffi.rst
new file mode 100644
index 0000000000..e3bd0ae2bb
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/fallbacker_ffi.rst
@@ -0,0 +1,103 @@
+``fallbacker::ffi``
+===================
+
+.. js:class:: ICU4XLocaleFallbackConfig
+
+ Collection of configurations for the ICU4X fallback algorithm.
+
+ See the `Rust documentation for LocaleFallbackConfig <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbackConfig.html>`__ for more information.
+
+
+ .. js:attribute:: priority
+
+ Choice of priority mode.
+
+
+ .. js:attribute:: extension_key
+
+ An empty string is considered ``None``.
+
+
+ .. js:attribute:: fallback_supplement
+
+ Fallback supplement data key to customize fallback rules.
+
+
+.. js:class:: ICU4XLocaleFallbackIterator
+
+ An iterator over the locale under fallback.
+
+ See the `Rust documentation for LocaleFallbackIterator <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbackIterator.html>`__ for more information.
+
+
+ .. js:method:: get()
+
+ Gets a snapshot of the current state of the locale.
+
+ See the `Rust documentation for get <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbackIterator.html#method.get>`__ for more information.
+
+
+ .. js:method:: step()
+
+ Performs one step of the fallback algorithm, mutating the locale.
+
+ See the `Rust documentation for step <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbackIterator.html#method.step>`__ for more information.
+
+
+.. js:class:: ICU4XLocaleFallbackPriority
+
+ Priority mode for the ICU4X fallback algorithm.
+
+ See the `Rust documentation for LocaleFallbackPriority <https://docs.rs/icu/latest/icu/locid_transform/fallback/enum.LocaleFallbackPriority.html>`__ for more information.
+
+
+.. js:class:: ICU4XLocaleFallbackSupplement
+
+ What additional data is required to load when performing fallback.
+
+ See the `Rust documentation for LocaleFallbackSupplement <https://docs.rs/icu/latest/icu/locid_transform/fallback/enum.LocaleFallbackSupplement.html>`__ for more information.
+
+
+.. js:class:: ICU4XLocaleFallbacker
+
+ An object that runs the ICU4X locale fallback algorithm.
+
+ See the `Rust documentation for LocaleFallbacker <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbacker.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Creates a new ``ICU4XLocaleFallbacker`` from a data provider.
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbacker.html#method.new>`__ for more information.
+
+
+ .. js:function:: create_without_data()
+
+ Creates a new ``ICU4XLocaleFallbacker`` without data for limited functionality.
+
+ See the `Rust documentation for new_without_data <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbacker.html#method.new_without_data>`__ for more information.
+
+
+ .. js:method:: for_config(config)
+
+ Associates this ``ICU4XLocaleFallbacker`` with configuration options.
+
+ See the `Rust documentation for for_config <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbacker.html#method.for_config>`__ for more information.
+
+
+.. js:class:: ICU4XLocaleFallbackerWithConfig
+
+ An object that runs the ICU4X locale fallback algorithm with specific configurations.
+
+ See the `Rust documentation for LocaleFallbacker <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbacker.html>`__ for more information.
+
+ See the `Rust documentation for LocaleFallbackerWithConfig <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbackerWithConfig.html>`__ for more information.
+
+
+ .. js:method:: fallback_for_locale(locale)
+
+ Creates an iterator from a locale with each step of fallback.
+
+ See the `Rust documentation for fallback_for <https://docs.rs/icu/latest/icu/locid_transform/fallback/struct.LocaleFallbacker.html#method.fallback_for>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/fixed_decimal_ffi.rst b/intl/icu_capi/js/package/docs/source/fixed_decimal_ffi.rst
new file mode 100644
index 0000000000..354705dc5c
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/fixed_decimal_ffi.rst
@@ -0,0 +1,247 @@
+``fixed_decimal::ffi``
+======================
+
+.. js:class:: ICU4XFixedDecimal
+
+ See the `Rust documentation for FixedDecimal <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html>`__ for more information.
+
+
+ .. js:function:: create_from_i32(v)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an integer.
+
+ See the `Rust documentation for FixedDecimal <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html>`__ for more information.
+
+
+ .. js:function:: create_from_u32(v)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an integer.
+
+ See the `Rust documentation for FixedDecimal <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html>`__ for more information.
+
+
+ .. js:function:: create_from_i64(v)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an integer.
+
+ See the `Rust documentation for FixedDecimal <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html>`__ for more information.
+
+
+ .. js:function:: create_from_u64(v)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an integer.
+
+ See the `Rust documentation for FixedDecimal <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html>`__ for more information.
+
+
+ .. js:function:: create_from_f64_with_integer_precision(f)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an integer-valued float
+
+ See the `Rust documentation for try_from_f64 <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.try_from_f64>`__ for more information.
+
+ See the `Rust documentation for FloatPrecision <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.FloatPrecision.html>`__ for more information.
+
+
+ .. js:function:: create_from_f64_with_lower_magnitude(f, magnitude)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an float, with a given power of 10 for the lower magnitude
+
+ See the `Rust documentation for try_from_f64 <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.try_from_f64>`__ for more information.
+
+ See the `Rust documentation for FloatPrecision <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.FloatPrecision.html>`__ for more information.
+
+
+ .. js:function:: create_from_f64_with_significant_digits(f, digits)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an float, for a given number of significant digits
+
+ See the `Rust documentation for try_from_f64 <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.try_from_f64>`__ for more information.
+
+ See the `Rust documentation for FloatPrecision <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.FloatPrecision.html>`__ for more information.
+
+
+ .. js:function:: create_from_f64_with_floating_precision(f)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from an float, with enough digits to recover the original floating point in IEEE 754 without needing trailing zeros
+
+ See the `Rust documentation for try_from_f64 <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.try_from_f64>`__ for more information.
+
+ See the `Rust documentation for FloatPrecision <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.FloatPrecision.html>`__ for more information.
+
+
+ .. js:function:: create_from_string(v)
+
+ Construct an :js:class:`ICU4XFixedDecimal` from a string.
+
+ See the `Rust documentation for from_str <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.from_str>`__ for more information.
+
+
+ .. js:method:: digit_at(magnitude)
+
+ See the `Rust documentation for digit_at <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.digit_at>`__ for more information.
+
+
+ .. js:method:: magnitude_start()
+
+ See the `Rust documentation for magnitude_range <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.magnitude_range>`__ for more information.
+
+
+ .. js:method:: magnitude_end()
+
+ See the `Rust documentation for magnitude_range <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.magnitude_range>`__ for more information.
+
+
+ .. js:method:: nonzero_magnitude_start()
+
+ See the `Rust documentation for nonzero_magnitude_start <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.nonzero_magnitude_start>`__ for more information.
+
+
+ .. js:method:: nonzero_magnitude_end()
+
+ See the `Rust documentation for nonzero_magnitude_end <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.nonzero_magnitude_end>`__ for more information.
+
+
+ .. js:method:: is_zero()
+
+ See the `Rust documentation for is_zero <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.is_zero>`__ for more information.
+
+
+ .. js:method:: multiply_pow10(power)
+
+ Multiply the :js:class:`ICU4XFixedDecimal` by a given power of ten.
+
+ See the `Rust documentation for multiply_pow10 <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.multiply_pow10>`__ for more information.
+
+
+ .. js:method:: sign()
+
+ See the `Rust documentation for sign <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.sign>`__ for more information.
+
+
+ .. js:method:: set_sign(sign)
+
+ Set the sign of the :js:class:`ICU4XFixedDecimal`.
+
+ See the `Rust documentation for set_sign <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.set_sign>`__ for more information.
+
+
+ .. js:method:: apply_sign_display(sign_display)
+
+ See the `Rust documentation for apply_sign_display <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.apply_sign_display>`__ for more information.
+
+
+ .. js:method:: trim_start()
+
+ See the `Rust documentation for trim_start <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.trim_start>`__ for more information.
+
+
+ .. js:method:: trim_end()
+
+ See the `Rust documentation for trim_end <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.trim_end>`__ for more information.
+
+
+ .. js:method:: pad_start(position)
+
+ Zero-pad the :js:class:`ICU4XFixedDecimal` on the left to a particular position
+
+ See the `Rust documentation for pad_start <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.pad_start>`__ for more information.
+
+
+ .. js:method:: pad_end(position)
+
+ Zero-pad the :js:class:`ICU4XFixedDecimal` on the right to a particular position
+
+ See the `Rust documentation for pad_end <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.pad_end>`__ for more information.
+
+
+ .. js:method:: set_max_position(position)
+
+ Truncate the :js:class:`ICU4XFixedDecimal` on the left to a particular position, deleting digits if necessary. This is useful for, e.g. abbreviating years ("2022" -> "22")
+
+ See the `Rust documentation for set_max_position <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.set_max_position>`__ for more information.
+
+
+ .. js:method:: trunc(position)
+
+ See the `Rust documentation for trunc <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.trunc>`__ for more information.
+
+
+ .. js:method:: half_trunc(position)
+
+ See the `Rust documentation for half_trunc <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.half_trunc>`__ for more information.
+
+
+ .. js:method:: expand(position)
+
+ See the `Rust documentation for expand <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.expand>`__ for more information.
+
+
+ .. js:method:: half_expand(position)
+
+ See the `Rust documentation for half_expand <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.half_expand>`__ for more information.
+
+
+ .. js:method:: ceil(position)
+
+ See the `Rust documentation for ceil <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.ceil>`__ for more information.
+
+
+ .. js:method:: half_ceil(position)
+
+ See the `Rust documentation for half_ceil <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.half_ceil>`__ for more information.
+
+
+ .. js:method:: floor(position)
+
+ See the `Rust documentation for floor <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.floor>`__ for more information.
+
+
+ .. js:method:: half_floor(position)
+
+ See the `Rust documentation for half_floor <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.half_floor>`__ for more information.
+
+
+ .. js:method:: half_even(position)
+
+ See the `Rust documentation for half_even <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.half_even>`__ for more information.
+
+
+ .. js:method:: concatenate_end(other)
+
+ Concatenates ``other`` to the end of ``self``.
+
+ If successful, ``other`` will be set to 0 and a successful status is returned.
+
+ If not successful, ``other`` will be unchanged and an error is returned.
+
+ See the `Rust documentation for concatenate_end <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.concatenate_end>`__ for more information.
+
+
+ .. js:method:: to_string()
+
+ Format the :js:class:`ICU4XFixedDecimal` as a string.
+
+ See the `Rust documentation for write_to <https://docs.rs/fixed_decimal/latest/fixed_decimal/struct.FixedDecimal.html#method.write_to>`__ for more information.
+
+
+.. js:class:: ICU4XFixedDecimalSign
+
+ The sign of a FixedDecimal, as shown in formatting.
+
+ See the `Rust documentation for Sign <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.Sign.html>`__ for more information.
+
+
+.. js:class:: ICU4XFixedDecimalSignDisplay
+
+ ECMA-402 compatible sign display preference.
+
+ See the `Rust documentation for SignDisplay <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.SignDisplay.html>`__ for more information.
+
+
+.. js:class:: ICU4XRoundingIncrement
+
+ Increment used in a rounding operation.
+
+ See the `Rust documentation for RoundingIncrement <https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.RoundingIncrement.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/iana_bcp47_mapper_ffi.rst b/intl/icu_capi/js/package/docs/source/iana_bcp47_mapper_ffi.rst
new file mode 100644
index 0000000000..e9151aa50a
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/iana_bcp47_mapper_ffi.rst
@@ -0,0 +1,35 @@
+``iana_bcp47_mapper::ffi``
+==========================
+
+.. js:class:: ICU4XBcp47ToIanaMapper
+
+ An object capable of mapping from a BCP-47 time zone ID to an IANA ID.
+
+ See the `Rust documentation for IanaBcp47RoundTripMapper <https://docs.rs/icu/latest/icu/timezone/struct.IanaBcp47RoundTripMapper.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/timezone/struct.IanaBcp47RoundTripMapper.html#method.new>`__ for more information.
+
+
+ .. js:method:: get(value)
+
+ Writes out the canonical IANA time zone ID corresponding to the given BCP-47 ID.
+
+ See the `Rust documentation for bcp47_to_iana <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.IanaBcp47RoundTripMapper.html#method.bcp47_to_iana>`__ for more information.
+
+
+.. js:class:: ICU4XIanaToBcp47Mapper
+
+ An object capable of mapping from an IANA time zone ID to a BCP-47 ID.
+
+ This can be used via ``try_set_iana_time_zone_id()`` on ```ICU4XCustomTimeZone`` <crate::timezone::ffi::ICU4XCustomTimeZone>`__.
+
+ See the `Rust documentation for IanaToBcp47Mapper <https://docs.rs/icu/latest/icu/timezone/struct.IanaToBcp47Mapper.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/timezone/struct.IanaToBcp47Mapper.html#method.new>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/index.rst b/intl/icu_capi/js/package/docs/source/index.rst
new file mode 100644
index 0000000000..57e246325f
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/index.rst
@@ -0,0 +1,54 @@
+Documentation
+=============
+
+.. toctree::
+ :maxdepth: 3
+ :caption: Modules:
+
+ bidi_ffi
+ calendar_ffi
+ casemap_ffi
+ collator_ffi
+ collections_sets_ffi
+ common_ffi
+ data_struct_ffi
+ date_ffi
+ datetime_ffi
+ datetime_formatter_ffi
+ decimal_ffi
+ displaynames_ffi
+ errors_ffi
+ fallbacker_ffi
+ fixed_decimal_ffi
+ iana_bcp47_mapper_ffi
+ list_ffi
+ locale_ffi
+ locale_directionality_ffi
+ locid_transform_ffi
+ logging_ffi
+ metazone_calculator_ffi
+ normalizer_ffi
+ normalizer_properties_ffi
+ pluralrules_ffi
+ properties_iter_ffi
+ properties_maps_ffi
+ properties_names_ffi
+ properties_sets_ffi
+ properties_unisets_ffi
+ provider_ffi
+ script_ffi
+ segmenter_grapheme_ffi
+ segmenter_line_ffi
+ segmenter_sentence_ffi
+ segmenter_word_ffi
+ time_ffi
+ timezone_ffi
+ timezone_formatter_ffi
+ week_ffi
+ zoned_formatter_ffi
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/intl/icu_capi/js/package/docs/source/list_ffi.rst b/intl/icu_capi/js/package/docs/source/list_ffi.rst
new file mode 100644
index 0000000000..2d78d7ad52
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/list_ffi.rst
@@ -0,0 +1,65 @@
+``list::ffi``
+=============
+
+.. js:class:: ICU4XList
+
+ A list of strings
+
+
+ .. js:function:: create()
+
+ Create a new list of strings
+
+
+ .. js:function:: create_with_capacity(capacity)
+
+ Create a new list of strings with preallocated space to hold at least ``capacity`` elements
+
+
+ .. js:method:: push(val)
+
+ Push a string to the list
+
+ For C++ users, potentially invalid UTF8 will be handled via REPLACEMENT CHARACTERs
+
+
+ .. js:method:: len()
+
+ The number of elements in this list
+
+
+.. js:class:: ICU4XListFormatter
+
+ See the `Rust documentation for ListFormatter <https://docs.rs/icu/latest/icu/list/struct.ListFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_and_with_length(provider, locale, length)
+
+ Construct a new ICU4XListFormatter instance for And patterns
+
+ See the `Rust documentation for try_new_and_with_length <https://docs.rs/icu/latest/icu/list/struct.ListFormatter.html#method.try_new_and_with_length>`__ for more information.
+
+
+ .. js:function:: create_or_with_length(provider, locale, length)
+
+ Construct a new ICU4XListFormatter instance for And patterns
+
+ See the `Rust documentation for try_new_or_with_length <https://docs.rs/icu/latest/icu/list/struct.ListFormatter.html#method.try_new_or_with_length>`__ for more information.
+
+
+ .. js:function:: create_unit_with_length(provider, locale, length)
+
+ Construct a new ICU4XListFormatter instance for And patterns
+
+ See the `Rust documentation for try_new_unit_with_length <https://docs.rs/icu/latest/icu/list/struct.ListFormatter.html#method.try_new_unit_with_length>`__ for more information.
+
+
+ .. js:method:: format(list)
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/list/struct.ListFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XListLength
+
+ See the `Rust documentation for ListLength <https://docs.rs/icu/latest/icu/list/enum.ListLength.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/locale_directionality_ffi.rst b/intl/icu_capi/js/package/docs/source/locale_directionality_ffi.rst
new file mode 100644
index 0000000000..546a899102
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/locale_directionality_ffi.rst
@@ -0,0 +1,41 @@
+``locale_directionality::ffi``
+==============================
+
+.. js:class:: ICU4XLocaleDirection
+
+ See the `Rust documentation for Direction <https://docs.rs/icu/latest/icu/locid_transform/enum.Direction.html>`__ for more information.
+
+
+.. js:class:: ICU4XLocaleDirectionality
+
+ See the `Rust documentation for LocaleDirectionality <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleDirectionality.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct a new ICU4XLocaleDirectionality instance
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleDirectionality.html#method.new>`__ for more information.
+
+
+ .. js:function:: create_with_expander(provider, expander)
+
+ Construct a new ICU4XLocaleDirectionality instance with a custom expander
+
+ See the `Rust documentation for new_with_expander <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleDirectionality.html#method.new_with_expander>`__ for more information.
+
+
+ .. js:method:: get(locale)
+
+ See the `Rust documentation for get <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleDirectionality.html#method.get>`__ for more information.
+
+
+ .. js:method:: is_left_to_right(locale)
+
+ See the `Rust documentation for is_left_to_right <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleDirectionality.html#method.is_left_to_right>`__ for more information.
+
+
+ .. js:method:: is_right_to_left(locale)
+
+ See the `Rust documentation for is_right_to_left <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleDirectionality.html#method.is_right_to_left>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/locale_ffi.rst b/intl/icu_capi/js/package/docs/source/locale_ffi.rst
new file mode 100644
index 0000000000..8c78097946
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/locale_ffi.rst
@@ -0,0 +1,128 @@
+``locale::ffi``
+===============
+
+.. js:class:: ICU4XLocale
+
+ An ICU4X Locale, capable of representing strings like ``"en-US"``.
+
+ See the `Rust documentation for Locale <https://docs.rs/icu/latest/icu/locid/struct.Locale.html>`__ for more information.
+
+
+ .. js:function:: create_from_string(name)
+
+ Construct an :js:class:`ICU4XLocale` from an locale identifier.
+
+ This will run the complete locale parsing algorithm. If code size and performance are critical and the locale is of a known shape (such as ``aa-BB``) use ``create_und``, ``set_language``, ``set_script``, and ``set_region``.
+
+ See the `Rust documentation for try_from_bytes <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.try_from_bytes>`__ for more information.
+
+
+ .. js:function:: create_und()
+
+ Construct a default undefined :js:class:`ICU4XLocale` "und".
+
+ See the `Rust documentation for UND <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#associatedconstant.UND>`__ for more information.
+
+
+ .. js:method:: clone()
+
+ Clones the :js:class:`ICU4XLocale`.
+
+ See the `Rust documentation for Locale <https://docs.rs/icu/latest/icu/locid/struct.Locale.html>`__ for more information.
+
+
+ .. js:method:: basename()
+
+ Write a string representation of the ``LanguageIdentifier`` part of :js:class:`ICU4XLocale` to ``write``.
+
+ See the `Rust documentation for id <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#structfield.id>`__ for more information.
+
+
+ .. js:method:: get_unicode_extension(bytes)
+
+ Write a string representation of the unicode extension to ``write``
+
+ See the `Rust documentation for extensions <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#structfield.extensions>`__ for more information.
+
+
+ .. js:method:: language()
+
+ Write a string representation of :js:class:`ICU4XLocale` language to ``write``
+
+ See the `Rust documentation for id <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#structfield.id>`__ for more information.
+
+
+ .. js:method:: set_language(bytes)
+
+ Set the language part of the :js:class:`ICU4XLocale`.
+
+ See the `Rust documentation for try_from_bytes <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.try_from_bytes>`__ for more information.
+
+
+ .. js:method:: region()
+
+ Write a string representation of :js:class:`ICU4XLocale` region to ``write``
+
+ See the `Rust documentation for id <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#structfield.id>`__ for more information.
+
+
+ .. js:method:: set_region(bytes)
+
+ Set the region part of the :js:class:`ICU4XLocale`.
+
+ See the `Rust documentation for try_from_bytes <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.try_from_bytes>`__ for more information.
+
+
+ .. js:method:: script()
+
+ Write a string representation of :js:class:`ICU4XLocale` script to ``write``
+
+ See the `Rust documentation for id <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#structfield.id>`__ for more information.
+
+
+ .. js:method:: set_script(bytes)
+
+ Set the script part of the :js:class:`ICU4XLocale`. Pass an empty string to remove the script.
+
+ See the `Rust documentation for try_from_bytes <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.try_from_bytes>`__ for more information.
+
+
+ .. js:function:: canonicalize(bytes)
+
+ Best effort locale canonicalizer that doesn't need any data
+
+ Use ICU4XLocaleCanonicalizer for better control and functionality
+
+ See the `Rust documentation for canonicalize <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.canonicalize>`__ for more information.
+
+
+ .. js:method:: to_string()
+
+ Write a string representation of :js:class:`ICU4XLocale` to ``write``
+
+ See the `Rust documentation for write_to <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.write_to>`__ for more information.
+
+
+ .. js:method:: normalizing_eq(other)
+
+ See the `Rust documentation for normalizing_eq <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.normalizing_eq>`__ for more information.
+
+
+ .. js:method:: strict_cmp(other)
+
+ See the `Rust documentation for strict_cmp <https://docs.rs/icu/latest/icu/locid/struct.Locale.html#method.strict_cmp>`__ for more information.
+
+
+ .. js:function:: create_en()
+
+ Deprecated
+
+ Use `create_from_string("en").
+
+
+ .. js:function:: create_bn()
+
+ Deprecated
+
+ Use `create_from_string("bn").
+
diff --git a/intl/icu_capi/js/package/docs/source/locid_transform_ffi.rst b/intl/icu_capi/js/package/docs/source/locid_transform_ffi.rst
new file mode 100644
index 0000000000..27e3fff083
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/locid_transform_ffi.rst
@@ -0,0 +1,72 @@
+``locid_transform::ffi``
+========================
+
+.. js:class:: ICU4XLocaleCanonicalizer
+
+ A locale canonicalizer.
+
+ See the `Rust documentation for LocaleCanonicalizer <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleCanonicalizer.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Create a new :js:class:`ICU4XLocaleCanonicalizer`.
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleCanonicalizer.html#method.new>`__ for more information.
+
+
+ .. js:function:: create_extended(provider)
+
+ Create a new :js:class:`ICU4XLocaleCanonicalizer` with extended data.
+
+ See the `Rust documentation for new_with_expander <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleCanonicalizer.html#method.new_with_expander>`__ for more information.
+
+
+ .. js:method:: canonicalize(locale)
+
+ FFI version of ``LocaleCanonicalizer::canonicalize()``.
+
+ See the `Rust documentation for canonicalize <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleCanonicalizer.html#method.canonicalize>`__ for more information.
+
+
+.. js:class:: ICU4XLocaleExpander
+
+ A locale expander.
+
+ See the `Rust documentation for LocaleExpander <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleExpander.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Create a new :js:class:`ICU4XLocaleExpander`.
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleExpander.html#method.new>`__ for more information.
+
+
+ .. js:function:: create_extended(provider)
+
+ Create a new :js:class:`ICU4XLocaleExpander` with extended data.
+
+ See the `Rust documentation for new_extended <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleExpander.html#method.new_extended>`__ for more information.
+
+
+ .. js:method:: maximize(locale)
+
+ FFI version of ``LocaleExpander::maximize()``.
+
+ See the `Rust documentation for maximize <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleExpander.html#method.maximize>`__ for more information.
+
+
+ .. js:method:: minimize(locale)
+
+ FFI version of ``LocaleExpander::minimize()``.
+
+ See the `Rust documentation for minimize <https://docs.rs/icu/latest/icu/locid_transform/struct.LocaleExpander.html#method.minimize>`__ for more information.
+
+
+.. js:class:: ICU4XTransformResult
+
+ FFI version of ``TransformResult``.
+
+ See the `Rust documentation for TransformResult <https://docs.rs/icu/latest/icu/locid_transform/enum.TransformResult.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/logging_ffi.rst b/intl/icu_capi/js/package/docs/source/logging_ffi.rst
new file mode 100644
index 0000000000..450acc128b
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/logging_ffi.rst
@@ -0,0 +1,21 @@
+``logging::ffi``
+================
+
+.. js:class:: ICU4XLogger
+
+ An object allowing control over the logging used
+
+
+ .. js:function:: init_simple_logger()
+
+ Initialize the logger using ``simple_logger``
+
+ Requires the ``simple_logger`` Cargo feature.
+
+ Returns ``false`` if there was already a logger set.
+
+
+ .. js:function:: init_console_logger()
+
+ Deprecated: since ICU4X 1.4, this now happens automatically if the ``log`` feature is enabled.
+
diff --git a/intl/icu_capi/js/package/docs/source/metazone_calculator_ffi.rst b/intl/icu_capi/js/package/docs/source/metazone_calculator_ffi.rst
new file mode 100644
index 0000000000..e7704b8a85
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/metazone_calculator_ffi.rst
@@ -0,0 +1,16 @@
+``metazone_calculator::ffi``
+============================
+
+.. js:class:: ICU4XMetazoneCalculator
+
+ An object capable of computing the metazone from a timezone.
+
+ This can be used via ``maybe_calculate_metazone()`` on ```ICU4XCustomTimeZone`` <crate::timezone::ffi::ICU4XCustomTimeZone>`__.
+
+ See the `Rust documentation for MetazoneCalculator <https://docs.rs/icu/latest/icu/timezone/struct.MetazoneCalculator.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/timezone/struct.MetazoneCalculator.html#method.new>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/normalizer_ffi.rst b/intl/icu_capi/js/package/docs/source/normalizer_ffi.rst
new file mode 100644
index 0000000000..08e0889a0b
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/normalizer_ffi.rst
@@ -0,0 +1,76 @@
+``normalizer::ffi``
+===================
+
+.. js:class:: ICU4XComposingNormalizer
+
+ See the `Rust documentation for ComposingNormalizer <https://docs.rs/icu/latest/icu/normalizer/struct.ComposingNormalizer.html>`__ for more information.
+
+
+ .. js:function:: create_nfc(provider)
+
+ Construct a new ICU4XComposingNormalizer instance for NFC
+
+ See the `Rust documentation for new_nfc <https://docs.rs/icu/latest/icu/normalizer/struct.ComposingNormalizer.html#method.new_nfc>`__ for more information.
+
+
+ .. js:function:: create_nfkc(provider)
+
+ Construct a new ICU4XComposingNormalizer instance for NFKC
+
+ See the `Rust documentation for new_nfkc <https://docs.rs/icu/latest/icu/normalizer/struct.ComposingNormalizer.html#method.new_nfkc>`__ for more information.
+
+
+ .. js:method:: normalize(s)
+
+ Normalize a (potentially ill-formed) UTF8 string
+
+ Errors are mapped to REPLACEMENT CHARACTER
+
+ See the `Rust documentation for normalize_utf8 <https://docs.rs/icu/latest/icu/normalizer/struct.ComposingNormalizer.html#method.normalize_utf8>`__ for more information.
+
+
+ .. js:method:: is_normalized(s)
+
+ Check if a (potentially ill-formed) UTF8 string is normalized
+
+ Errors are mapped to REPLACEMENT CHARACTER
+
+ See the `Rust documentation for is_normalized_utf8 <https://docs.rs/icu/latest/icu/normalizer/struct.ComposingNormalizer.html#method.is_normalized_utf8>`__ for more information.
+
+
+.. js:class:: ICU4XDecomposingNormalizer
+
+ See the `Rust documentation for DecomposingNormalizer <https://docs.rs/icu/latest/icu/normalizer/struct.DecomposingNormalizer.html>`__ for more information.
+
+
+ .. js:function:: create_nfd(provider)
+
+ Construct a new ICU4XDecomposingNormalizer instance for NFC
+
+ See the `Rust documentation for new_nfd <https://docs.rs/icu/latest/icu/normalizer/struct.DecomposingNormalizer.html#method.new_nfd>`__ for more information.
+
+
+ .. js:function:: create_nfkd(provider)
+
+ Construct a new ICU4XDecomposingNormalizer instance for NFKC
+
+ See the `Rust documentation for new_nfkd <https://docs.rs/icu/latest/icu/normalizer/struct.DecomposingNormalizer.html#method.new_nfkd>`__ for more information.
+
+
+ .. js:method:: normalize(s)
+
+ Normalize a (potentially ill-formed) UTF8 string
+
+ Errors are mapped to REPLACEMENT CHARACTER
+
+ See the `Rust documentation for normalize_utf8 <https://docs.rs/icu/latest/icu/normalizer/struct.DecomposingNormalizer.html#method.normalize_utf8>`__ for more information.
+
+
+ .. js:method:: is_normalized(s)
+
+ Check if a (potentially ill-formed) UTF8 string is normalized
+
+ Errors are mapped to REPLACEMENT CHARACTER
+
+ See the `Rust documentation for is_normalized_utf8 <https://docs.rs/icu/latest/icu/normalizer/struct.DecomposingNormalizer.html#method.is_normalized_utf8>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/normalizer_properties_ffi.rst b/intl/icu_capi/js/package/docs/source/normalizer_properties_ffi.rst
new file mode 100644
index 0000000000..b8b0a0265f
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/normalizer_properties_ffi.rst
@@ -0,0 +1,87 @@
+``normalizer_properties::ffi``
+==============================
+
+.. js:class:: ICU4XCanonicalCombiningClassMap
+
+ Lookup of the Canonical_Combining_Class Unicode property
+
+ See the `Rust documentation for CanonicalCombiningClassMap <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalCombiningClassMap.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct a new ICU4XCanonicalCombiningClassMap instance for NFC
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalCombiningClassMap.html#method.new>`__ for more information.
+
+
+ .. js:method:: get(ch)
+
+ See the `Rust documentation for get <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalCombiningClassMap.html#method.get>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/properties/properties/struct.CanonicalCombiningClass.html>`__
+
+
+ .. js:method:: get32(ch)
+
+ See the `Rust documentation for get32 <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalCombiningClassMap.html#method.get32>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/properties/properties/struct.CanonicalCombiningClass.html>`__
+
+
+.. js:class:: ICU4XCanonicalComposition
+
+ The raw canonical composition operation.
+
+ Callers should generally use ICU4XComposingNormalizer unless they specifically need raw composition operations
+
+ See the `Rust documentation for CanonicalComposition <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct a new ICU4XCanonicalComposition instance for NFC
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html#method.new>`__ for more information.
+
+
+ .. js:method:: compose(starter, second)
+
+ Performs canonical composition (including Hangul) on a pair of characters or returns NUL if these characters don’t compose. Composition exclusions are taken into account.
+
+ See the `Rust documentation for compose <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html#method.compose>`__ for more information.
+
+
+.. js:class:: ICU4XCanonicalDecomposition
+
+ The raw (non-recursive) canonical decomposition operation.
+
+ Callers should generally use ICU4XDecomposingNormalizer unless they specifically need raw composition operations
+
+ See the `Rust documentation for CanonicalDecomposition <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalDecomposition.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct a new ICU4XCanonicalDecomposition instance for NFC
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalDecomposition.html#method.new>`__ for more information.
+
+
+ .. js:method:: decompose(c)
+
+ Performs non-recursive canonical decomposition (including for Hangul).
+
+ See the `Rust documentation for decompose <https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalDecomposition.html#method.decompose>`__ for more information.
+
+
+.. js:class:: ICU4XDecomposed
+
+ The outcome of non-recursive canonical decomposition of a character. ``second`` will be NUL when the decomposition expands to a single character (which may or may not be the original one)
+
+ See the `Rust documentation for Decomposed <https://docs.rs/icu/latest/icu/normalizer/properties/enum.Decomposed.html>`__ for more information.
+
+
+ .. js:attribute:: first
+
+ .. js:attribute:: second
diff --git a/intl/icu_capi/js/package/docs/source/pluralrules_ffi.rst b/intl/icu_capi/js/package/docs/source/pluralrules_ffi.rst
new file mode 100644
index 0000000000..ca29ec47e0
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/pluralrules_ffi.rst
@@ -0,0 +1,84 @@
+``pluralrules::ffi``
+====================
+
+.. js:class:: ICU4XPluralCategories
+
+ FFI version of ``PluralRules::categories()`` data.
+
+
+ .. js:attribute:: zero
+
+ .. js:attribute:: one
+
+ .. js:attribute:: two
+
+ .. js:attribute:: few
+
+ .. js:attribute:: many
+
+ .. js:attribute:: other
+
+.. js:class:: ICU4XPluralCategory
+
+ FFI version of ``PluralCategory``.
+
+ See the `Rust documentation for PluralCategory <https://docs.rs/icu/latest/icu/plurals/enum.PluralCategory.html>`__ for more information.
+
+
+ .. js:function:: get_for_cldr_string(s)
+
+ Construct from a string in the format `specified in TR35 <https://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules>`__
+
+ See the `Rust documentation for get_for_cldr_string <https://docs.rs/icu/latest/icu/plurals/enum.PluralCategory.html#method.get_for_cldr_string>`__ for more information.
+
+ See the `Rust documentation for get_for_cldr_bytes <https://docs.rs/icu/latest/icu/plurals/enum.PluralCategory.html#method.get_for_cldr_bytes>`__ for more information.
+
+
+.. js:class:: ICU4XPluralOperands
+
+ FFI version of ``PluralOperands``.
+
+ See the `Rust documentation for PluralOperands <https://docs.rs/icu/latest/icu/plurals/struct.PluralOperands.html>`__ for more information.
+
+
+ .. js:function:: create_from_string(s)
+
+ Construct for a given string representing a number
+
+ See the `Rust documentation for from_str <https://docs.rs/icu/latest/icu/plurals/struct.PluralOperands.html#method.from_str>`__ for more information.
+
+
+.. js:class:: ICU4XPluralRules
+
+ FFI version of ``PluralRules``.
+
+ See the `Rust documentation for PluralRules <https://docs.rs/icu/latest/icu/plurals/struct.PluralRules.html>`__ for more information.
+
+
+ .. js:function:: create_cardinal(provider, locale)
+
+ Construct an :js:class:`ICU4XPluralRules` for the given locale, for cardinal numbers
+
+ See the `Rust documentation for try_new_cardinal <https://docs.rs/icu/latest/icu/plurals/struct.PluralRules.html#method.try_new_cardinal>`__ for more information.
+
+
+ .. js:function:: create_ordinal(provider, locale)
+
+ Construct an :js:class:`ICU4XPluralRules` for the given locale, for ordinal numbers
+
+ See the `Rust documentation for try_new_ordinal <https://docs.rs/icu/latest/icu/plurals/struct.PluralRules.html#method.try_new_ordinal>`__ for more information.
+
+
+ .. js:method:: category_for(op)
+
+ Get the category for a given number represented as operands
+
+ See the `Rust documentation for category_for <https://docs.rs/icu/latest/icu/plurals/struct.PluralRules.html#method.category_for>`__ for more information.
+
+
+ .. js:method:: categories()
+
+ Get all of the categories needed in the current locale
+
+ See the `Rust documentation for categories <https://docs.rs/icu/latest/icu/plurals/struct.PluralRules.html#method.categories>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/properties_iter_ffi.rst b/intl/icu_capi/js/package/docs/source/properties_iter_ffi.rst
new file mode 100644
index 0000000000..ee195fdf47
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/properties_iter_ffi.rst
@@ -0,0 +1,27 @@
+``properties_iter::ffi``
+========================
+
+.. js:class:: CodePointRangeIterator
+
+ An iterator over code point ranges, produced by ``ICU4XCodePointSetData`` or one of the ``ICU4XCodePointMapData`` types
+
+
+ .. js:method:: next()
+
+ Advance the iterator by one and return the next range.
+
+ If the iterator is out of items, ``done`` will be true
+
+
+.. js:class:: CodePointRangeIteratorResult
+
+ Result of a single iteration of :js:class:`CodePointRangeIterator`. Logically can be considered to be an ``Option<RangeInclusive<u32>>``,
+
+ ``start`` and ``end`` represent an inclusive range of code points start, end, and ``done`` will be true if the iterator has already finished. The last contentful iteration will NOT produce a range done=true, in other words ``start`` and ``end`` are useful values if and only if ``done=false``.
+
+
+ .. js:attribute:: start
+
+ .. js:attribute:: end
+
+ .. js:attribute:: done
diff --git a/intl/icu_capi/js/package/docs/source/properties_maps_ffi.rst b/intl/icu_capi/js/package/docs/source/properties_maps_ffi.rst
new file mode 100644
index 0000000000..8fc7c1625b
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/properties_maps_ffi.rst
@@ -0,0 +1,159 @@
+``properties_maps::ffi``
+========================
+
+.. js:class:: ICU4XCodePointMapData16
+
+ An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
+
+ For properties whose values fit into 16 bits.
+
+ See the `Rust documentation for properties <https://docs.rs/icu/latest/icu/properties/index.html>`__ for more information.
+
+ See the `Rust documentation for CodePointMapData <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapData.html>`__ for more information.
+
+ See the `Rust documentation for CodePointMapDataBorrowed <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html>`__ for more information.
+
+
+ .. js:method:: get(cp)
+
+ Gets the value for a code point.
+
+ See the `Rust documentation for get <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.get>`__ for more information.
+
+
+ .. js:method:: get32(cp)
+
+ Gets the value for a code point (specified as a 32 bit integer, in UTF-32)
+
+
+ .. js:method:: iter_ranges_for_value(value)
+
+ Produces an iterator over ranges of code points that map to ``value``
+
+ See the `Rust documentation for iter_ranges_for_value <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.iter_ranges_for_value>`__ for more information.
+
+
+ .. js:method:: iter_ranges_for_value_complemented(value)
+
+ Produces an iterator over ranges of code points that do not map to ``value``
+
+ See the `Rust documentation for iter_ranges_for_value_complemented <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.iter_ranges_for_value_complemented>`__ for more information.
+
+
+ .. js:method:: get_set_for_value(value)
+
+ Gets a :js:class:`ICU4XCodePointSetData` representing all entries in this map that map to the given value
+
+ See the `Rust documentation for get_set_for_value <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.get_set_for_value>`__ for more information.
+
+
+ .. js:function:: load_script(provider)
+
+ See the `Rust documentation for script <https://docs.rs/icu/latest/icu/properties/maps/fn.script.html>`__ for more information.
+
+
+.. js:class:: ICU4XCodePointMapData8
+
+ An ICU4X Unicode Map Property object, capable of querying whether a code point (key) to obtain the Unicode property value, for a specific Unicode property.
+
+ For properties whose values fit into 8 bits.
+
+ See the `Rust documentation for properties <https://docs.rs/icu/latest/icu/properties/index.html>`__ for more information.
+
+ See the `Rust documentation for CodePointMapData <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapData.html>`__ for more information.
+
+ See the `Rust documentation for CodePointMapDataBorrowed <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html>`__ for more information.
+
+
+ .. js:method:: get(cp)
+
+ Gets the value for a code point.
+
+ See the `Rust documentation for get <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.get>`__ for more information.
+
+
+ .. js:method:: get32(cp)
+
+ Gets the value for a code point (specified as a 32 bit integer, in UTF-32)
+
+
+ .. js:function:: general_category_to_mask(gc)
+
+ Converts a general category to its corresponding mask value
+
+ Nonexistant general categories will map to the empty mask
+
+ See the `Rust documentation for GeneralCategoryGroup <https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html>`__ for more information.
+
+
+ .. js:method:: iter_ranges_for_value(value)
+
+ Produces an iterator over ranges of code points that map to ``value``
+
+ See the `Rust documentation for iter_ranges_for_value <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.iter_ranges_for_value>`__ for more information.
+
+
+ .. js:method:: iter_ranges_for_value_complemented(value)
+
+ Produces an iterator over ranges of code points that do not map to ``value``
+
+ See the `Rust documentation for iter_ranges_for_value_complemented <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.iter_ranges_for_value_complemented>`__ for more information.
+
+
+ .. js:method:: iter_ranges_for_mask(mask)
+
+ Given a mask value (the nth bit marks property value = n), produce an iterator over ranges of code points whose property values are contained in the mask.
+
+ The main mask property supported is that for General_Category, which can be obtained via ``general_category_to_mask()`` or by using ``ICU4XGeneralCategoryNameToMaskMapper``
+
+ Should only be used on maps for properties with values less than 32 (like Generak_Category), other maps will have unpredictable results
+
+ See the `Rust documentation for iter_ranges_for_group <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.iter_ranges_for_group>`__ for more information.
+
+
+ .. js:method:: get_set_for_value(value)
+
+ Gets a :js:class:`ICU4XCodePointSetData` representing all entries in this map that map to the given value
+
+ See the `Rust documentation for get_set_for_value <https://docs.rs/icu/latest/icu/properties/maps/struct.CodePointMapDataBorrowed.html#method.get_set_for_value>`__ for more information.
+
+
+ .. js:function:: load_general_category(provider)
+
+ See the `Rust documentation for general_category <https://docs.rs/icu/latest/icu/properties/maps/fn.general_category.html>`__ for more information.
+
+
+ .. js:function:: load_bidi_class(provider)
+
+ See the `Rust documentation for bidi_class <https://docs.rs/icu/latest/icu/properties/maps/fn.bidi_class.html>`__ for more information.
+
+
+ .. js:function:: load_east_asian_width(provider)
+
+ See the `Rust documentation for east_asian_width <https://docs.rs/icu/latest/icu/properties/maps/fn.east_asian_width.html>`__ for more information.
+
+
+ .. js:function:: load_indic_syllabic_category(provider)
+
+ See the `Rust documentation for indic_syllabic_category <https://docs.rs/icu/latest/icu/properties/maps/fn.indic_syllabic_category.html>`__ for more information.
+
+
+ .. js:function:: load_line_break(provider)
+
+ See the `Rust documentation for line_break <https://docs.rs/icu/latest/icu/properties/maps/fn.line_break.html>`__ for more information.
+
+
+ .. js:function:: try_grapheme_cluster_break(provider)
+
+ See the `Rust documentation for grapheme_cluster_break <https://docs.rs/icu/latest/icu/properties/maps/fn.grapheme_cluster_break.html>`__ for more information.
+
+
+ .. js:function:: load_word_break(provider)
+
+ See the `Rust documentation for word_break <https://docs.rs/icu/latest/icu/properties/maps/fn.word_break.html>`__ for more information.
+
+
+ .. js:function:: load_sentence_break(provider)
+
+ See the `Rust documentation for sentence_break <https://docs.rs/icu/latest/icu/properties/maps/fn.sentence_break.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/properties_names_ffi.rst b/intl/icu_capi/js/package/docs/source/properties_names_ffi.rst
new file mode 100644
index 0000000000..b500224c46
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/properties_names_ffi.rst
@@ -0,0 +1,102 @@
+``properties_names::ffi``
+=========================
+
+.. js:class:: ICU4XGeneralCategoryNameToMaskMapper
+
+ A type capable of looking up General Category mask values from a string name.
+
+ See the `Rust documentation for get_name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper>`__ for more information.
+
+ See the `Rust documentation for PropertyValueNameToEnumMapper <https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapper.html>`__ for more information.
+
+
+ .. js:method:: get_strict(name)
+
+ Get the mask value matching the given name, using strict matching
+
+ Returns 0 if the name is unknown for this property
+
+
+ .. js:method:: get_loose(name)
+
+ Get the mask value matching the given name, using loose matching
+
+ Returns 0 if the name is unknown for this property
+
+
+ .. js:function:: load(provider)
+
+ See the `Rust documentation for get_name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.GeneralCategoryGroup.html#method.get_name_to_enum_mapper>`__ for more information.
+
+
+.. js:class:: ICU4XPropertyValueNameToEnumMapper
+
+ A type capable of looking up a property value from a string name.
+
+ See the `Rust documentation for PropertyValueNameToEnumMapper <https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapper.html>`__ for more information.
+
+ See the `Rust documentation for PropertyValueNameToEnumMapperBorrowed <https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapperBorrowed.html>`__ for more information.
+
+
+ .. js:method:: get_strict(name)
+
+ Get the property value matching the given name, using strict matching
+
+ Returns -1 if the name is unknown for this property
+
+ See the `Rust documentation for get_strict <https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapperBorrowed.html#method.get_strict>`__ for more information.
+
+
+ .. js:method:: get_loose(name)
+
+ Get the property value matching the given name, using loose matching
+
+ Returns -1 if the name is unknown for this property
+
+ See the `Rust documentation for get_loose <https://docs.rs/icu/latest/icu/properties/names/struct.PropertyValueNameToEnumMapperBorrowed.html#method.get_loose>`__ for more information.
+
+
+ .. js:function:: load_general_category(provider)
+
+ See the `Rust documentation for get_name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.GeneralCategory.html#method.get_name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_bidi_class(provider)
+
+ See the `Rust documentation for name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.BidiClass.html#method.name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_east_asian_width(provider)
+
+ See the `Rust documentation for name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.EastAsianWidth.html#method.name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_indic_syllabic_category(provider)
+
+ See the `Rust documentation for name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.IndicSyllabicCategory.html#method.name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_line_break(provider)
+
+ See the `Rust documentation for name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.LineBreak.html#method.name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_grapheme_cluster_break(provider)
+
+ See the `Rust documentation for get_name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.GraphemeClusterBreak.html#method.get_name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_word_break(provider)
+
+ See the `Rust documentation for name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.WordBreak.html#method.name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_sentence_break(provider)
+
+ See the `Rust documentation for name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.SentenceBreak.html#method.name_to_enum_mapper>`__ for more information.
+
+
+ .. js:function:: load_script(provider)
+
+ See the `Rust documentation for name_to_enum_mapper <https://docs.rs/icu/latest/icu/properties/struct.Script.html#method.name_to_enum_mapper>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/properties_sets_ffi.rst b/intl/icu_capi/js/package/docs/source/properties_sets_ffi.rst
new file mode 100644
index 0000000000..5238ce0b41
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/properties_sets_ffi.rst
@@ -0,0 +1,380 @@
+``properties_sets::ffi``
+========================
+
+.. js:class:: ICU4XCodePointSetData
+
+ An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
+
+ See the `Rust documentation for properties <https://docs.rs/icu/latest/icu/properties/index.html>`__ for more information.
+
+ See the `Rust documentation for CodePointSetData <https://docs.rs/icu/latest/icu/properties/sets/struct.CodePointSetData.html>`__ for more information.
+
+ See the `Rust documentation for CodePointSetDataBorrowed <https://docs.rs/icu/latest/icu/properties/sets/struct.CodePointSetDataBorrowed.html>`__ for more information.
+
+
+ .. js:method:: contains(cp)
+
+ Checks whether the code point is in the set.
+
+ See the `Rust documentation for contains <https://docs.rs/icu/latest/icu/properties/sets/struct.CodePointSetDataBorrowed.html#method.contains>`__ for more information.
+
+
+ .. js:method:: contains32(cp)
+
+ Checks whether the code point (specified as a 32 bit integer, in UTF-32) is in the set.
+
+
+ .. js:method:: iter_ranges()
+
+ Produces an iterator over ranges of code points contained in this set
+
+ See the `Rust documentation for iter_ranges <https://docs.rs/icu/latest/icu/properties/sets/struct.CodePointSetDataBorrowed.html#method.iter_ranges>`__ for more information.
+
+
+ .. js:method:: iter_ranges_complemented()
+
+ Produces an iterator over ranges of code points not contained in this set
+
+ See the `Rust documentation for iter_ranges_complemented <https://docs.rs/icu/latest/icu/properties/sets/struct.CodePointSetDataBorrowed.html#method.iter_ranges_complemented>`__ for more information.
+
+
+ .. js:function:: load_for_general_category_group(provider, group)
+
+ which is a mask with the same format as the ``U_GC_XX_MASK`` mask in ICU4C
+
+ See the `Rust documentation for for_general_category_group <https://docs.rs/icu/latest/icu/properties/sets/fn.for_general_category_group.html>`__ for more information.
+
+
+ .. js:function:: load_ascii_hex_digit(provider)
+
+ See the `Rust documentation for ascii_hex_digit <https://docs.rs/icu/latest/icu/properties/sets/fn.ascii_hex_digit.html>`__ for more information.
+
+
+ .. js:function:: load_alnum(provider)
+
+ See the `Rust documentation for alnum <https://docs.rs/icu/latest/icu/properties/sets/fn.alnum.html>`__ for more information.
+
+
+ .. js:function:: load_alphabetic(provider)
+
+ See the `Rust documentation for alphabetic <https://docs.rs/icu/latest/icu/properties/sets/fn.alphabetic.html>`__ for more information.
+
+
+ .. js:function:: load_bidi_control(provider)
+
+ See the `Rust documentation for bidi_control <https://docs.rs/icu/latest/icu/properties/sets/fn.bidi_control.html>`__ for more information.
+
+
+ .. js:function:: load_bidi_mirrored(provider)
+
+ See the `Rust documentation for bidi_mirrored <https://docs.rs/icu/latest/icu/properties/sets/fn.bidi_mirrored.html>`__ for more information.
+
+
+ .. js:function:: load_blank(provider)
+
+ See the `Rust documentation for blank <https://docs.rs/icu/latest/icu/properties/sets/fn.blank.html>`__ for more information.
+
+
+ .. js:function:: load_cased(provider)
+
+ See the `Rust documentation for cased <https://docs.rs/icu/latest/icu/properties/sets/fn.cased.html>`__ for more information.
+
+
+ .. js:function:: load_case_ignorable(provider)
+
+ See the `Rust documentation for case_ignorable <https://docs.rs/icu/latest/icu/properties/sets/fn.case_ignorable.html>`__ for more information.
+
+
+ .. js:function:: load_full_composition_exclusion(provider)
+
+ See the `Rust documentation for full_composition_exclusion <https://docs.rs/icu/latest/icu/properties/sets/fn.full_composition_exclusion.html>`__ for more information.
+
+
+ .. js:function:: load_changes_when_casefolded(provider)
+
+ See the `Rust documentation for changes_when_casefolded <https://docs.rs/icu/latest/icu/properties/sets/fn.changes_when_casefolded.html>`__ for more information.
+
+
+ .. js:function:: load_changes_when_casemapped(provider)
+
+ See the `Rust documentation for changes_when_casemapped <https://docs.rs/icu/latest/icu/properties/sets/fn.changes_when_casemapped.html>`__ for more information.
+
+
+ .. js:function:: load_changes_when_nfkc_casefolded(provider)
+
+ See the `Rust documentation for changes_when_nfkc_casefolded <https://docs.rs/icu/latest/icu/properties/sets/fn.changes_when_nfkc_casefolded.html>`__ for more information.
+
+
+ .. js:function:: load_changes_when_lowercased(provider)
+
+ See the `Rust documentation for changes_when_lowercased <https://docs.rs/icu/latest/icu/properties/sets/fn.changes_when_lowercased.html>`__ for more information.
+
+
+ .. js:function:: load_changes_when_titlecased(provider)
+
+ See the `Rust documentation for changes_when_titlecased <https://docs.rs/icu/latest/icu/properties/sets/fn.changes_when_titlecased.html>`__ for more information.
+
+
+ .. js:function:: load_changes_when_uppercased(provider)
+
+ See the `Rust documentation for changes_when_uppercased <https://docs.rs/icu/latest/icu/properties/sets/fn.changes_when_uppercased.html>`__ for more information.
+
+
+ .. js:function:: load_dash(provider)
+
+ See the `Rust documentation for dash <https://docs.rs/icu/latest/icu/properties/sets/fn.dash.html>`__ for more information.
+
+
+ .. js:function:: load_deprecated(provider)
+
+ See the `Rust documentation for deprecated <https://docs.rs/icu/latest/icu/properties/sets/fn.deprecated.html>`__ for more information.
+
+
+ .. js:function:: load_default_ignorable_code_point(provider)
+
+ See the `Rust documentation for default_ignorable_code_point <https://docs.rs/icu/latest/icu/properties/sets/fn.default_ignorable_code_point.html>`__ for more information.
+
+
+ .. js:function:: load_diacritic(provider)
+
+ See the `Rust documentation for diacritic <https://docs.rs/icu/latest/icu/properties/sets/fn.diacritic.html>`__ for more information.
+
+
+ .. js:function:: load_emoji_modifier_base(provider)
+
+ See the `Rust documentation for emoji_modifier_base <https://docs.rs/icu/latest/icu/properties/sets/fn.emoji_modifier_base.html>`__ for more information.
+
+
+ .. js:function:: load_emoji_component(provider)
+
+ See the `Rust documentation for emoji_component <https://docs.rs/icu/latest/icu/properties/sets/fn.emoji_component.html>`__ for more information.
+
+
+ .. js:function:: load_emoji_modifier(provider)
+
+ See the `Rust documentation for emoji_modifier <https://docs.rs/icu/latest/icu/properties/sets/fn.emoji_modifier.html>`__ for more information.
+
+
+ .. js:function:: load_emoji(provider)
+
+ See the `Rust documentation for emoji <https://docs.rs/icu/latest/icu/properties/sets/fn.emoji.html>`__ for more information.
+
+
+ .. js:function:: load_emoji_presentation(provider)
+
+ See the `Rust documentation for emoji_presentation <https://docs.rs/icu/latest/icu/properties/sets/fn.emoji_presentation.html>`__ for more information.
+
+
+ .. js:function:: load_extender(provider)
+
+ See the `Rust documentation for extender <https://docs.rs/icu/latest/icu/properties/sets/fn.extender.html>`__ for more information.
+
+
+ .. js:function:: load_extended_pictographic(provider)
+
+ See the `Rust documentation for extended_pictographic <https://docs.rs/icu/latest/icu/properties/sets/fn.extended_pictographic.html>`__ for more information.
+
+
+ .. js:function:: load_graph(provider)
+
+ See the `Rust documentation for graph <https://docs.rs/icu/latest/icu/properties/sets/fn.graph.html>`__ for more information.
+
+
+ .. js:function:: load_grapheme_base(provider)
+
+ See the `Rust documentation for grapheme_base <https://docs.rs/icu/latest/icu/properties/sets/fn.grapheme_base.html>`__ for more information.
+
+
+ .. js:function:: load_grapheme_extend(provider)
+
+ See the `Rust documentation for grapheme_extend <https://docs.rs/icu/latest/icu/properties/sets/fn.grapheme_extend.html>`__ for more information.
+
+
+ .. js:function:: load_grapheme_link(provider)
+
+ See the `Rust documentation for grapheme_link <https://docs.rs/icu/latest/icu/properties/sets/fn.grapheme_link.html>`__ for more information.
+
+
+ .. js:function:: load_hex_digit(provider)
+
+ See the `Rust documentation for hex_digit <https://docs.rs/icu/latest/icu/properties/sets/fn.hex_digit.html>`__ for more information.
+
+
+ .. js:function:: load_hyphen(provider)
+
+ See the `Rust documentation for hyphen <https://docs.rs/icu/latest/icu/properties/sets/fn.hyphen.html>`__ for more information.
+
+
+ .. js:function:: load_id_continue(provider)
+
+ See the `Rust documentation for id_continue <https://docs.rs/icu/latest/icu/properties/sets/fn.id_continue.html>`__ for more information.
+
+
+ .. js:function:: load_ideographic(provider)
+
+ See the `Rust documentation for ideographic <https://docs.rs/icu/latest/icu/properties/sets/fn.ideographic.html>`__ for more information.
+
+
+ .. js:function:: load_id_start(provider)
+
+ See the `Rust documentation for id_start <https://docs.rs/icu/latest/icu/properties/sets/fn.id_start.html>`__ for more information.
+
+
+ .. js:function:: load_ids_binary_operator(provider)
+
+ See the `Rust documentation for ids_binary_operator <https://docs.rs/icu/latest/icu/properties/sets/fn.ids_binary_operator.html>`__ for more information.
+
+
+ .. js:function:: load_ids_trinary_operator(provider)
+
+ See the `Rust documentation for ids_trinary_operator <https://docs.rs/icu/latest/icu/properties/sets/fn.ids_trinary_operator.html>`__ for more information.
+
+
+ .. js:function:: load_join_control(provider)
+
+ See the `Rust documentation for join_control <https://docs.rs/icu/latest/icu/properties/sets/fn.join_control.html>`__ for more information.
+
+
+ .. js:function:: load_logical_order_exception(provider)
+
+ See the `Rust documentation for logical_order_exception <https://docs.rs/icu/latest/icu/properties/sets/fn.logical_order_exception.html>`__ for more information.
+
+
+ .. js:function:: load_lowercase(provider)
+
+ See the `Rust documentation for lowercase <https://docs.rs/icu/latest/icu/properties/sets/fn.lowercase.html>`__ for more information.
+
+
+ .. js:function:: load_math(provider)
+
+ See the `Rust documentation for math <https://docs.rs/icu/latest/icu/properties/sets/fn.math.html>`__ for more information.
+
+
+ .. js:function:: load_noncharacter_code_point(provider)
+
+ See the `Rust documentation for noncharacter_code_point <https://docs.rs/icu/latest/icu/properties/sets/fn.noncharacter_code_point.html>`__ for more information.
+
+
+ .. js:function:: load_nfc_inert(provider)
+
+ See the `Rust documentation for nfc_inert <https://docs.rs/icu/latest/icu/properties/sets/fn.nfc_inert.html>`__ for more information.
+
+
+ .. js:function:: load_nfd_inert(provider)
+
+ See the `Rust documentation for nfd_inert <https://docs.rs/icu/latest/icu/properties/sets/fn.nfd_inert.html>`__ for more information.
+
+
+ .. js:function:: load_nfkc_inert(provider)
+
+ See the `Rust documentation for nfkc_inert <https://docs.rs/icu/latest/icu/properties/sets/fn.nfkc_inert.html>`__ for more information.
+
+
+ .. js:function:: load_nfkd_inert(provider)
+
+ See the `Rust documentation for nfkd_inert <https://docs.rs/icu/latest/icu/properties/sets/fn.nfkd_inert.html>`__ for more information.
+
+
+ .. js:function:: load_pattern_syntax(provider)
+
+ See the `Rust documentation for pattern_syntax <https://docs.rs/icu/latest/icu/properties/sets/fn.pattern_syntax.html>`__ for more information.
+
+
+ .. js:function:: load_pattern_white_space(provider)
+
+ See the `Rust documentation for pattern_white_space <https://docs.rs/icu/latest/icu/properties/sets/fn.pattern_white_space.html>`__ for more information.
+
+
+ .. js:function:: load_prepended_concatenation_mark(provider)
+
+ See the `Rust documentation for prepended_concatenation_mark <https://docs.rs/icu/latest/icu/properties/sets/fn.prepended_concatenation_mark.html>`__ for more information.
+
+
+ .. js:function:: load_print(provider)
+
+ See the `Rust documentation for print <https://docs.rs/icu/latest/icu/properties/sets/fn.print.html>`__ for more information.
+
+
+ .. js:function:: load_quotation_mark(provider)
+
+ See the `Rust documentation for quotation_mark <https://docs.rs/icu/latest/icu/properties/sets/fn.quotation_mark.html>`__ for more information.
+
+
+ .. js:function:: load_radical(provider)
+
+ See the `Rust documentation for radical <https://docs.rs/icu/latest/icu/properties/sets/fn.radical.html>`__ for more information.
+
+
+ .. js:function:: load_regional_indicator(provider)
+
+ See the `Rust documentation for regional_indicator <https://docs.rs/icu/latest/icu/properties/sets/fn.regional_indicator.html>`__ for more information.
+
+
+ .. js:function:: load_soft_dotted(provider)
+
+ See the `Rust documentation for soft_dotted <https://docs.rs/icu/latest/icu/properties/sets/fn.soft_dotted.html>`__ for more information.
+
+
+ .. js:function:: load_segment_starter(provider)
+
+ See the `Rust documentation for segment_starter <https://docs.rs/icu/latest/icu/properties/sets/fn.segment_starter.html>`__ for more information.
+
+
+ .. js:function:: load_case_sensitive(provider)
+
+ See the `Rust documentation for case_sensitive <https://docs.rs/icu/latest/icu/properties/sets/fn.case_sensitive.html>`__ for more information.
+
+
+ .. js:function:: load_sentence_terminal(provider)
+
+ See the `Rust documentation for sentence_terminal <https://docs.rs/icu/latest/icu/properties/sets/fn.sentence_terminal.html>`__ for more information.
+
+
+ .. js:function:: load_terminal_punctuation(provider)
+
+ See the `Rust documentation for terminal_punctuation <https://docs.rs/icu/latest/icu/properties/sets/fn.terminal_punctuation.html>`__ for more information.
+
+
+ .. js:function:: load_unified_ideograph(provider)
+
+ See the `Rust documentation for unified_ideograph <https://docs.rs/icu/latest/icu/properties/sets/fn.unified_ideograph.html>`__ for more information.
+
+
+ .. js:function:: load_uppercase(provider)
+
+ See the `Rust documentation for uppercase <https://docs.rs/icu/latest/icu/properties/sets/fn.uppercase.html>`__ for more information.
+
+
+ .. js:function:: load_variation_selector(provider)
+
+ See the `Rust documentation for variation_selector <https://docs.rs/icu/latest/icu/properties/sets/fn.variation_selector.html>`__ for more information.
+
+
+ .. js:function:: load_white_space(provider)
+
+ See the `Rust documentation for white_space <https://docs.rs/icu/latest/icu/properties/sets/fn.white_space.html>`__ for more information.
+
+
+ .. js:function:: load_xdigit(provider)
+
+ See the `Rust documentation for xdigit <https://docs.rs/icu/latest/icu/properties/sets/fn.xdigit.html>`__ for more information.
+
+
+ .. js:function:: load_xid_continue(provider)
+
+ See the `Rust documentation for xid_continue <https://docs.rs/icu/latest/icu/properties/sets/fn.xid_continue.html>`__ for more information.
+
+
+ .. js:function:: load_xid_start(provider)
+
+ See the `Rust documentation for xid_start <https://docs.rs/icu/latest/icu/properties/sets/fn.xid_start.html>`__ for more information.
+
+
+ .. js:function:: load_for_ecma262(provider, property_name)
+
+ Loads data for a property specified as a string as long as it is one of the `ECMA-262 binary properties <https://tc39.es/ecma262/#table-binary-unicode-properties>`__ (not including Any, ASCII, and Assigned pseudoproperties).
+
+ Returns ``ICU4XError::PropertyUnexpectedPropertyNameError`` in case the string does not match any property in the list
+
+ See the `Rust documentation for for_ecma262 <https://docs.rs/icu/latest/icu/properties/sets/fn.for_ecma262.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/properties_unisets_ffi.rst b/intl/icu_capi/js/package/docs/source/properties_unisets_ffi.rst
new file mode 100644
index 0000000000..235ef21756
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/properties_unisets_ffi.rst
@@ -0,0 +1,62 @@
+``properties_unisets::ffi``
+===========================
+
+.. js:class:: ICU4XUnicodeSetData
+
+ An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
+
+ See the `Rust documentation for properties <https://docs.rs/icu/latest/icu/properties/index.html>`__ for more information.
+
+ See the `Rust documentation for UnicodeSetData <https://docs.rs/icu/latest/icu/properties/sets/struct.UnicodeSetData.html>`__ for more information.
+
+ See the `Rust documentation for UnicodeSetDataBorrowed <https://docs.rs/icu/latest/icu/properties/sets/struct.UnicodeSetDataBorrowed.html>`__ for more information.
+
+
+ .. js:method:: contains(s)
+
+ Checks whether the string is in the set.
+
+ See the `Rust documentation for contains <https://docs.rs/icu/latest/icu/properties/sets/struct.UnicodeSetDataBorrowed.html#method.contains>`__ for more information.
+
+
+ .. js:method:: contains_char(cp)
+
+ Checks whether the code point is in the set.
+
+ See the `Rust documentation for contains_char <https://docs.rs/icu/latest/icu/properties/sets/struct.UnicodeSetDataBorrowed.html#method.contains_char>`__ for more information.
+
+
+ .. js:method:: contains32(cp)
+
+ Checks whether the code point (specified as a 32 bit integer, in UTF-32) is in the set.
+
+
+ .. js:function:: load_basic_emoji(provider)
+
+ See the `Rust documentation for basic_emoji <https://docs.rs/icu/latest/icu/properties/sets/fn.basic_emoji.html>`__ for more information.
+
+
+ .. js:function:: load_exemplars_main(provider, locale)
+
+ See the `Rust documentation for exemplars_main <https://docs.rs/icu/latest/icu/properties/exemplar_chars/fn.exemplars_main.html>`__ for more information.
+
+
+ .. js:function:: load_exemplars_auxiliary(provider, locale)
+
+ See the `Rust documentation for exemplars_auxiliary <https://docs.rs/icu/latest/icu/properties/exemplar_chars/fn.exemplars_auxiliary.html>`__ for more information.
+
+
+ .. js:function:: load_exemplars_punctuation(provider, locale)
+
+ See the `Rust documentation for exemplars_punctuation <https://docs.rs/icu/latest/icu/properties/exemplar_chars/fn.exemplars_punctuation.html>`__ for more information.
+
+
+ .. js:function:: load_exemplars_numbers(provider, locale)
+
+ See the `Rust documentation for exemplars_numbers <https://docs.rs/icu/latest/icu/properties/exemplar_chars/fn.exemplars_numbers.html>`__ for more information.
+
+
+ .. js:function:: load_exemplars_index(provider, locale)
+
+ See the `Rust documentation for exemplars_index <https://docs.rs/icu/latest/icu/properties/exemplar_chars/fn.exemplars_index.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/provider_ffi.rst b/intl/icu_capi/js/package/docs/source/provider_ffi.rst
new file mode 100644
index 0000000000..50c7d5e717
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/provider_ffi.rst
@@ -0,0 +1,86 @@
+``provider::ffi``
+=================
+
+.. js:class:: ICU4XDataProvider
+
+ An ICU4X data provider, capable of loading ICU4X data keys from some source.
+
+ See the `Rust documentation for icu_provider <https://docs.rs/icu_provider/latest/icu_provider/index.html>`__ for more information.
+
+
+ .. js:function:: create_compiled()
+
+ Constructs an :js:class:`ICU4XDataProvider` that uses compiled data.
+
+ Requires the ``compiled_data`` feature.
+
+ This provider cannot be modified or combined with other providers, so ``enable_fallback``, ``enabled_fallback_with``, ``fork_by_locale``, and ``fork_by_key`` will return ``Err``s.
+
+
+ .. js:function:: create_fs(path)
+
+ Constructs an ``FsDataProvider`` and returns it as an :js:class:`ICU4XDataProvider`. Requires the ``provider_fs`` Cargo feature. Not supported in WASM.
+
+ See the `Rust documentation for FsDataProvider <https://docs.rs/icu_provider_fs/latest/icu_provider_fs/struct.FsDataProvider.html>`__ for more information.
+
+
+ .. js:function:: create_test()
+
+ Deprecated
+
+ Use ``create_compiled()``.
+
+
+ .. js:function:: create_from_byte_slice(blob)
+
+ Constructs a ``BlobDataProvider`` and returns it as an :js:class:`ICU4XDataProvider`.
+
+ See the `Rust documentation for BlobDataProvider <https://docs.rs/icu_provider_blob/latest/icu_provider_blob/struct.BlobDataProvider.html>`__ for more information.
+
+ - Note: ``blob`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+ - Warning: This method leaks memory. The parameter `blob` will not be freed as it is required to live for the duration of the program.
+
+
+ .. js:function:: create_empty()
+
+ Constructs an empty :js:class:`ICU4XDataProvider`.
+
+ See the `Rust documentation for EmptyDataProvider <https://docs.rs/icu_provider_adapters/latest/icu_provider_adapters/empty/struct.EmptyDataProvider.html>`__ for more information.
+
+
+ .. js:method:: fork_by_key(other)
+
+ Creates a provider that tries the current provider and then, if the current provider doesn't support the data key, another provider ``other``.
+
+ This takes ownership of the ``other`` provider, leaving an empty provider in its place.
+
+ The providers must be the same type (Any or Buffer). This condition is satisfied if both providers originate from the same constructor, such as ``create_from_byte_slice`` or ``create_fs``. If the condition is not upheld, a runtime error occurs.
+
+ See the `Rust documentation for ForkByKeyProvider <https://docs.rs/icu_provider_adapters/latest/icu_provider_adapters/fork/type.ForkByKeyProvider.html>`__ for more information.
+
+
+ .. js:method:: fork_by_locale(other)
+
+ Same as ``fork_by_key`` but forks by locale instead of key.
+
+ See the `Rust documentation for MissingLocalePredicate <https://docs.rs/icu_provider_adapters/latest/icu_provider_adapters/fork/predicates/struct.MissingLocalePredicate.html>`__ for more information.
+
+
+ .. js:method:: enable_locale_fallback()
+
+ Enables locale fallbacking for data requests made to this provider.
+
+ Note that the test provider (from ``create_test``) already has fallbacking enabled.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu_provider_adapters/latest/icu_provider_adapters/fallback/struct.LocaleFallbackProvider.html#method.try_new>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu_provider_adapters/latest/icu_provider_adapters/fallback/struct.LocaleFallbackProvider.html>`__
+
+
+ .. js:method:: enable_locale_fallback_with(fallbacker)
+
+ See the `Rust documentation for new_with_fallbacker <https://docs.rs/icu_provider_adapters/latest/icu_provider_adapters/fallback/struct.LocaleFallbackProvider.html#method.new_with_fallbacker>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu_provider_adapters/latest/icu_provider_adapters/fallback/struct.LocaleFallbackProvider.html>`__
+
diff --git a/intl/icu_capi/js/package/docs/source/script_ffi.rst b/intl/icu_capi/js/package/docs/source/script_ffi.rst
new file mode 100644
index 0000000000..23a94bdb19
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/script_ffi.rst
@@ -0,0 +1,105 @@
+``script::ffi``
+===============
+
+.. js:class:: ICU4XScriptExtensionsSet
+
+ An object that represents the Script_Extensions property for a single character
+
+ See the `Rust documentation for ScriptExtensionsSet <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptExtensionsSet.html>`__ for more information.
+
+
+ .. js:method:: contains(script)
+
+ Check if the Script_Extensions property of the given code point covers the given script
+
+ See the `Rust documentation for contains <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptExtensionsSet.html#method.contains>`__ for more information.
+
+
+ .. js:method:: count()
+
+ Get the number of scripts contained in here
+
+ See the `Rust documentation for iter <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptExtensionsSet.html#method.iter>`__ for more information.
+
+
+ .. js:method:: script_at(index)
+
+ Get script at index, returning an error if out of bounds
+
+ See the `Rust documentation for iter <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptExtensionsSet.html#method.iter>`__ for more information.
+
+
+.. js:class:: ICU4XScriptWithExtensions
+
+ An ICU4X ScriptWithExtensions map object, capable of holding a map of codepoints to scriptextensions values
+
+ See the `Rust documentation for ScriptWithExtensions <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ See the `Rust documentation for script_with_extensions <https://docs.rs/icu/latest/icu/properties/script/fn.script_with_extensions.html>`__ for more information.
+
+
+ .. js:method:: get_script_val(code_point)
+
+ Get the Script property value for a code point
+
+ See the `Rust documentation for get_script_val <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.get_script_val>`__ for more information.
+
+
+ .. js:method:: has_script(code_point, script)
+
+ Check if the Script_Extensions property of the given code point covers the given script
+
+ See the `Rust documentation for has_script <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.has_script>`__ for more information.
+
+
+ .. js:method:: as_borrowed()
+
+ Borrow this object for a slightly faster variant with more operations
+
+ See the `Rust documentation for as_borrowed <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html#method.as_borrowed>`__ for more information.
+
+
+ .. js:method:: iter_ranges_for_script(script)
+
+ Get a list of ranges of code points that contain this script in their Script_Extensions values
+
+ See the `Rust documentation for get_script_extensions_ranges <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.get_script_extensions_ranges>`__ for more information.
+
+
+.. js:class:: ICU4XScriptWithExtensionsBorrowed
+
+ A slightly faster ICU4XScriptWithExtensions object
+
+ See the `Rust documentation for ScriptWithExtensionsBorrowed <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html>`__ for more information.
+
+
+ .. js:method:: get_script_val(code_point)
+
+ Get the Script property value for a code point
+
+ See the `Rust documentation for get_script_val <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.get_script_val>`__ for more information.
+
+
+ .. js:method:: get_script_extensions_val(code_point)
+
+ Get the Script property value for a code point
+
+ See the `Rust documentation for get_script_extensions_val <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.get_script_extensions_val>`__ for more information.
+
+
+ .. js:method:: has_script(code_point, script)
+
+ Check if the Script_Extensions property of the given code point covers the given script
+
+ See the `Rust documentation for has_script <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.has_script>`__ for more information.
+
+
+ .. js:method:: get_script_extensions_set(script)
+
+ Build the CodePointSetData corresponding to a codepoints matching a particular script in their Script_Extensions
+
+ See the `Rust documentation for get_script_extensions_set <https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.get_script_extensions_set>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/segmenter_grapheme_ffi.rst b/intl/icu_capi/js/package/docs/source/segmenter_grapheme_ffi.rst
new file mode 100644
index 0000000000..be0fd9192e
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/segmenter_grapheme_ffi.rst
@@ -0,0 +1,77 @@
+``segmenter_grapheme::ffi``
+===========================
+
+.. js:class:: ICU4XGraphemeClusterBreakIteratorLatin1
+
+ See the `Rust documentation for GraphemeClusterBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XGraphemeClusterBreakIteratorUtf16
+
+ See the `Rust documentation for GraphemeClusterBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XGraphemeClusterBreakIteratorUtf8
+
+ See the `Rust documentation for GraphemeClusterBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XGraphemeClusterSegmenter
+
+ An ICU4X grapheme-cluster-break segmenter, capable of finding grapheme cluster breakpoints in strings.
+
+ See the `Rust documentation for GraphemeClusterSegmenter <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterSegmenter.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct an :js:class:`ICU4XGraphemeClusterSegmenter`.
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterSegmenter.html#method.new>`__ for more information.
+
+
+ .. js:method:: segment_utf8(input)
+
+ Segments a (potentially ill-formed) UTF-8 string.
+
+ See the `Rust documentation for segment_utf8 <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterSegmenter.html#method.segment_utf8>`__ for more information.
+
+
+ .. js:method:: segment_utf16(input)
+
+ Segments a UTF-16 string.
+
+ See the `Rust documentation for segment_utf16 <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterSegmenter.html#method.segment_utf16>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+
+ .. js:method:: segment_latin1(input)
+
+ Segments a Latin-1 string.
+
+ See the `Rust documentation for segment_latin1 <https://docs.rs/icu/latest/icu/segmenter/struct.GraphemeClusterSegmenter.html#method.segment_latin1>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
diff --git a/intl/icu_capi/js/package/docs/source/segmenter_line_ffi.rst b/intl/icu_capi/js/package/docs/source/segmenter_line_ffi.rst
new file mode 100644
index 0000000000..9a991deb83
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/segmenter_line_ffi.rst
@@ -0,0 +1,139 @@
+``segmenter_line::ffi``
+=======================
+
+.. js:class:: ICU4XLineBreakIteratorLatin1
+
+ See the `Rust documentation for LineBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorLatin1.html>`__
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XLineBreakIteratorUtf16
+
+ See the `Rust documentation for LineBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorUtf16.html>`__
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XLineBreakIteratorUtf8
+
+ See the `Rust documentation for LineBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/segmenter/type.LineBreakIteratorPotentiallyIllFormedUtf8.html>`__
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XLineBreakOptionsV1
+
+ See the `Rust documentation for LineBreakOptions <https://docs.rs/icu/latest/icu/segmenter/struct.LineBreakOptions.html>`__ for more information.
+
+
+ .. js:attribute:: strictness
+
+ .. js:attribute:: word_option
+
+ .. js:attribute:: ja_zh
+
+.. js:class:: ICU4XLineBreakStrictness
+
+ See the `Rust documentation for LineBreakStrictness <https://docs.rs/icu/latest/icu/segmenter/enum.LineBreakStrictness.html>`__ for more information.
+
+
+.. js:class:: ICU4XLineBreakWordOption
+
+ See the `Rust documentation for LineBreakWordOption <https://docs.rs/icu/latest/icu/segmenter/enum.LineBreakWordOption.html>`__ for more information.
+
+
+.. js:class:: ICU4XLineSegmenter
+
+ An ICU4X line-break segmenter, capable of finding breakpoints in strings.
+
+ See the `Rust documentation for LineSegmenter <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html>`__ for more information.
+
+
+ .. js:function:: create_auto(provider)
+
+ Construct a :js:class:`ICU4XLineSegmenter` with default options. It automatically loads the best available payload data for Burmese, Khmer, Lao, and Thai.
+
+ See the `Rust documentation for new_auto <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.new_auto>`__ for more information.
+
+
+ .. js:function:: create_lstm(provider)
+
+ Construct a :js:class:`ICU4XLineSegmenter` with default options and LSTM payload data for Burmese, Khmer, Lao, and Thai.
+
+ See the `Rust documentation for new_lstm <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.new_lstm>`__ for more information.
+
+
+ .. js:function:: create_dictionary(provider)
+
+ Construct a :js:class:`ICU4XLineSegmenter` with default options and dictionary payload data for Burmese, Khmer, Lao, and Thai..
+
+ See the `Rust documentation for new_dictionary <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.new_dictionary>`__ for more information.
+
+
+ .. js:function:: create_auto_with_options_v1(provider, options)
+
+ Construct a :js:class:`ICU4XLineSegmenter` with custom options. It automatically loads the best available payload data for Burmese, Khmer, Lao, and Thai.
+
+ See the `Rust documentation for new_auto_with_options <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.new_auto_with_options>`__ for more information.
+
+
+ .. js:function:: create_lstm_with_options_v1(provider, options)
+
+ Construct a :js:class:`ICU4XLineSegmenter` with custom options and LSTM payload data for Burmese, Khmer, Lao, and Thai.
+
+ See the `Rust documentation for new_lstm_with_options <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.new_lstm_with_options>`__ for more information.
+
+
+ .. js:function:: create_dictionary_with_options_v1(provider, options)
+
+ Construct a :js:class:`ICU4XLineSegmenter` with custom options and dictionary payload data for Burmese, Khmer, Lao, and Thai.
+
+ See the `Rust documentation for new_dictionary_with_options <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.new_dictionary_with_options>`__ for more information.
+
+
+ .. js:method:: segment_utf8(input)
+
+ Segments a (potentially ill-formed) UTF-8 string.
+
+ See the `Rust documentation for segment_utf8 <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.segment_utf8>`__ for more information.
+
+
+ .. js:method:: segment_utf16(input)
+
+ Segments a UTF-16 string.
+
+ See the `Rust documentation for segment_utf16 <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.segment_utf16>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+
+ .. js:method:: segment_latin1(input)
+
+ Segments a Latin-1 string.
+
+ See the `Rust documentation for segment_latin1 <https://docs.rs/icu/latest/icu/segmenter/struct.LineSegmenter.html#method.segment_latin1>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
diff --git a/intl/icu_capi/js/package/docs/source/segmenter_sentence_ffi.rst b/intl/icu_capi/js/package/docs/source/segmenter_sentence_ffi.rst
new file mode 100644
index 0000000000..b1f15a2868
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/segmenter_sentence_ffi.rst
@@ -0,0 +1,77 @@
+``segmenter_sentence::ffi``
+===========================
+
+.. js:class:: ICU4XSentenceBreakIteratorLatin1
+
+ See the `Rust documentation for SentenceBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XSentenceBreakIteratorUtf16
+
+ See the `Rust documentation for SentenceBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XSentenceBreakIteratorUtf8
+
+ See the `Rust documentation for SentenceBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceBreakIterator.html#method.next>`__ for more information.
+
+
+.. js:class:: ICU4XSentenceSegmenter
+
+ An ICU4X sentence-break segmenter, capable of finding sentence breakpoints in strings.
+
+ See the `Rust documentation for SentenceSegmenter <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceSegmenter.html>`__ for more information.
+
+
+ .. js:function:: create(provider)
+
+ Construct an :js:class:`ICU4XSentenceSegmenter`.
+
+ See the `Rust documentation for new <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceSegmenter.html#method.new>`__ for more information.
+
+
+ .. js:method:: segment_utf8(input)
+
+ Segments a (potentially ill-formed) UTF-8 string.
+
+ See the `Rust documentation for segment_utf8 <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceSegmenter.html#method.segment_utf8>`__ for more information.
+
+
+ .. js:method:: segment_utf16(input)
+
+ Segments a UTF-16 string.
+
+ See the `Rust documentation for segment_utf16 <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceSegmenter.html#method.segment_utf16>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+
+ .. js:method:: segment_latin1(input)
+
+ Segments a Latin-1 string.
+
+ See the `Rust documentation for segment_latin1 <https://docs.rs/icu/latest/icu/segmenter/struct.SentenceSegmenter.html#method.segment_latin1>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
diff --git a/intl/icu_capi/js/package/docs/source/segmenter_word_ffi.rst b/intl/icu_capi/js/package/docs/source/segmenter_word_ffi.rst
new file mode 100644
index 0000000000..913ef3479e
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/segmenter_word_ffi.rst
@@ -0,0 +1,142 @@
+``segmenter_word::ffi``
+=======================
+
+.. js:class:: ICU4XSegmenterWordType
+
+ See the `Rust documentation for WordType <https://docs.rs/icu/latest/icu/segmenter/enum.WordType.html>`__ for more information.
+
+
+.. js:class:: ICU4XWordBreakIteratorLatin1
+
+ See the `Rust documentation for WordBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.next>`__ for more information.
+
+
+ .. js:method:: word_type()
+
+ Return the status value of break boundary.
+
+ See the `Rust documentation for word_type <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.word_type>`__ for more information.
+
+
+ .. js:method:: is_word_like()
+
+ Return true when break boundary is word-like such as letter/number/CJK
+
+ See the `Rust documentation for is_word_like <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.is_word_like>`__ for more information.
+
+
+.. js:class:: ICU4XWordBreakIteratorUtf16
+
+ See the `Rust documentation for WordBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.next>`__ for more information.
+
+
+ .. js:method:: word_type()
+
+ Return the status value of break boundary.
+
+ See the `Rust documentation for word_type <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.word_type>`__ for more information.
+
+
+ .. js:method:: is_word_like()
+
+ Return true when break boundary is word-like such as letter/number/CJK
+
+ See the `Rust documentation for is_word_like <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.is_word_like>`__ for more information.
+
+
+.. js:class:: ICU4XWordBreakIteratorUtf8
+
+ See the `Rust documentation for WordBreakIterator <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html>`__ for more information.
+
+
+ .. js:method:: next()
+
+ Finds the next breakpoint. Returns -1 if at the end of the string or if the index is out of range of a 32-bit signed integer.
+
+ See the `Rust documentation for next <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.next>`__ for more information.
+
+
+ .. js:method:: word_type()
+
+ Return the status value of break boundary.
+
+ See the `Rust documentation for word_type <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.word_type>`__ for more information.
+
+
+ .. js:method:: is_word_like()
+
+ Return true when break boundary is word-like such as letter/number/CJK
+
+ See the `Rust documentation for is_word_like <https://docs.rs/icu/latest/icu/segmenter/struct.WordBreakIterator.html#method.is_word_like>`__ for more information.
+
+
+.. js:class:: ICU4XWordSegmenter
+
+ An ICU4X word-break segmenter, capable of finding word breakpoints in strings.
+
+ See the `Rust documentation for WordSegmenter <https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html>`__ for more information.
+
+
+ .. js:function:: create_auto(provider)
+
+ Construct an :js:class:`ICU4XWordSegmenter` with automatically selecting the best available LSTM or dictionary payload data.
+
+ Note: currently, it uses dictionary for Chinese and Japanese, and LSTM for Burmese, Khmer, Lao, and Thai.
+
+ See the `Rust documentation for new_auto <https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html#method.new_auto>`__ for more information.
+
+
+ .. js:function:: create_lstm(provider)
+
+ Construct an :js:class:`ICU4XWordSegmenter` with LSTM payload data for Burmese, Khmer, Lao, and Thai.
+
+ Warning: :js:class:`ICU4XWordSegmenter` created by this function doesn't handle Chinese or Japanese.
+
+ See the `Rust documentation for new_lstm <https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html#method.new_lstm>`__ for more information.
+
+
+ .. js:function:: create_dictionary(provider)
+
+ Construct an :js:class:`ICU4XWordSegmenter` with dictionary payload data for Chinese, Japanese, Burmese, Khmer, Lao, and Thai.
+
+ See the `Rust documentation for new_dictionary <https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html#method.new_dictionary>`__ for more information.
+
+
+ .. js:method:: segment_utf8(input)
+
+ Segments a (potentially ill-formed) UTF-8 string.
+
+ See the `Rust documentation for segment_utf8 <https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html#method.segment_utf8>`__ for more information.
+
+
+ .. js:method:: segment_utf16(input)
+
+ Segments a UTF-16 string.
+
+ See the `Rust documentation for segment_utf16 <https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html#method.segment_utf16>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
+
+ .. js:method:: segment_latin1(input)
+
+ Segments a Latin-1 string.
+
+ See the `Rust documentation for segment_latin1 <https://docs.rs/icu/latest/icu/segmenter/struct.WordSegmenter.html#method.segment_latin1>`__ for more information.
+
+ - Note: ``input`` should be an ArrayBuffer or TypedArray corresponding to the slice type expected by Rust.
+
diff --git a/intl/icu_capi/js/package/docs/source/time_ffi.rst b/intl/icu_capi/js/package/docs/source/time_ffi.rst
new file mode 100644
index 0000000000..dff1373031
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/time_ffi.rst
@@ -0,0 +1,51 @@
+``time::ffi``
+=============
+
+.. js:class:: ICU4XTime
+
+ An ICU4X Time object representing a time in terms of hour, minute, second, nanosecond
+
+ See the `Rust documentation for Time <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html>`__ for more information.
+
+
+ .. js:function:: create(hour, minute, second, nanosecond)
+
+ Creates a new :js:class:`ICU4XTime` given field values
+
+ See the `Rust documentation for Time <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html>`__ for more information.
+
+
+ .. js:function:: create_midnight()
+
+ Creates a new :js:class:`ICU4XTime` representing midnight (00:00.000).
+
+ See the `Rust documentation for Time <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html>`__ for more information.
+
+
+ .. js:method:: hour()
+
+ Returns the hour in this time
+
+ See the `Rust documentation for hour <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.hour>`__ for more information.
+
+
+ .. js:method:: minute()
+
+ Returns the minute in this time
+
+ See the `Rust documentation for minute <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.minute>`__ for more information.
+
+
+ .. js:method:: second()
+
+ Returns the second in this time
+
+ See the `Rust documentation for second <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.second>`__ for more information.
+
+
+ .. js:method:: nanosecond()
+
+ Returns the nanosecond in this time
+
+ See the `Rust documentation for nanosecond <https://docs.rs/icu/latest/icu/calendar/types/struct.Time.html#structfield.nanosecond>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/timezone_ffi.rst b/intl/icu_capi/js/package/docs/source/timezone_ffi.rst
new file mode 100644
index 0000000000..aaad8de786
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/timezone_ffi.rst
@@ -0,0 +1,246 @@
+``timezone::ffi``
+=================
+
+.. js:class:: ICU4XCustomTimeZone
+
+ See the `Rust documentation for CustomTimeZone <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html>`__ for more information.
+
+
+ .. js:function:: create_from_string(s)
+
+ Creates a time zone from an offset string.
+
+ See the `Rust documentation for from_str <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#method.from_str>`__ for more information.
+
+
+ .. js:function:: create_empty()
+
+ Creates a time zone with no information.
+
+ See the `Rust documentation for new_empty <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#method.new_empty>`__ for more information.
+
+
+ .. js:function:: create_utc()
+
+ Creates a time zone for UTC.
+
+ See the `Rust documentation for utc <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#method.utc>`__ for more information.
+
+
+ .. js:method:: try_set_gmt_offset_seconds(offset_seconds)
+
+ Sets the ``gmt_offset`` field from offset seconds.
+
+ Errors if the offset seconds are out of range.
+
+ See the `Rust documentation for try_from_offset_seconds <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html#method.try_from_offset_seconds>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html>`__
+
+
+ .. js:method:: clear_gmt_offset()
+
+ Clears the ``gmt_offset`` field.
+
+ See the `Rust documentation for offset_seconds <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html#method.offset_seconds>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html>`__
+
+
+ .. js:method:: gmt_offset_seconds()
+
+ Returns the value of the ``gmt_offset`` field as offset seconds.
+
+ Errors if the ``gmt_offset`` field is empty.
+
+ See the `Rust documentation for offset_seconds <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html#method.offset_seconds>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html>`__
+
+
+ .. js:method:: is_gmt_offset_positive()
+
+ Returns whether the ``gmt_offset`` field is positive.
+
+ Errors if the ``gmt_offset`` field is empty.
+
+ See the `Rust documentation for is_positive <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html#method.is_positive>`__ for more information.
+
+
+ .. js:method:: is_gmt_offset_zero()
+
+ Returns whether the ``gmt_offset`` field is zero.
+
+ Errors if the ``gmt_offset`` field is empty (which is not the same as zero).
+
+ See the `Rust documentation for is_zero <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html#method.is_zero>`__ for more information.
+
+
+ .. js:method:: gmt_offset_has_minutes()
+
+ Returns whether the ``gmt_offset`` field has nonzero minutes.
+
+ Errors if the ``gmt_offset`` field is empty.
+
+ See the `Rust documentation for has_minutes <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html#method.has_minutes>`__ for more information.
+
+
+ .. js:method:: gmt_offset_has_seconds()
+
+ Returns whether the ``gmt_offset`` field has nonzero seconds.
+
+ Errors if the ``gmt_offset`` field is empty.
+
+ See the `Rust documentation for has_seconds <https://docs.rs/icu/latest/icu/timezone/struct.GmtOffset.html#method.has_seconds>`__ for more information.
+
+
+ .. js:method:: try_set_time_zone_id(id)
+
+ Sets the ``time_zone_id`` field from a BCP-47 string.
+
+ Errors if the string is not a valid BCP-47 time zone ID.
+
+ See the `Rust documentation for time_zone_id <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.time_zone_id>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.TimeZoneBcp47Id.html>`__
+
+
+ .. js:method:: try_set_iana_time_zone_id(mapper, id)
+
+ Sets the ``time_zone_id`` field from an IANA string by looking up the corresponding BCP-47 string.
+
+ Errors if the string is not a valid BCP-47 time zone ID.
+
+ See the `Rust documentation for get <https://docs.rs/icu/latest/icu/timezone/struct.IanaToBcp47MapperBorrowed.html#method.get>`__ for more information.
+
+
+ .. js:method:: clear_time_zone_id()
+
+ Clears the ``time_zone_id`` field.
+
+ See the `Rust documentation for time_zone_id <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.time_zone_id>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.TimeZoneBcp47Id.html>`__
+
+
+ .. js:method:: time_zone_id()
+
+ Writes the value of the ``time_zone_id`` field as a string.
+
+ Errors if the ``time_zone_id`` field is empty.
+
+ See the `Rust documentation for time_zone_id <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.time_zone_id>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.TimeZoneBcp47Id.html>`__
+
+
+ .. js:method:: try_set_metazone_id(id)
+
+ Sets the ``metazone_id`` field from a string.
+
+ Errors if the string is not a valid BCP-47 metazone ID.
+
+ See the `Rust documentation for metazone_id <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.metazone_id>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.MetazoneId.html>`__
+
+
+ .. js:method:: clear_metazone_id()
+
+ Clears the ``metazone_id`` field.
+
+ See the `Rust documentation for metazone_id <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.metazone_id>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.MetazoneId.html>`__
+
+
+ .. js:method:: metazone_id()
+
+ Writes the value of the ``metazone_id`` field as a string.
+
+ Errors if the ``metazone_id`` field is empty.
+
+ See the `Rust documentation for metazone_id <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.metazone_id>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.MetazoneId.html>`__
+
+
+ .. js:method:: try_set_zone_variant(id)
+
+ Sets the ``zone_variant`` field from a string.
+
+ Errors if the string is not a valid zone variant.
+
+ See the `Rust documentation for zone_variant <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.zone_variant>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.ZoneVariant.html>`__
+
+
+ .. js:method:: clear_zone_variant()
+
+ Clears the ``zone_variant`` field.
+
+ See the `Rust documentation for zone_variant <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.zone_variant>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.ZoneVariant.html>`__
+
+
+ .. js:method:: zone_variant()
+
+ Writes the value of the ``zone_variant`` field as a string.
+
+ Errors if the ``zone_variant`` field is empty.
+
+ See the `Rust documentation for zone_variant <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.zone_variant>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.ZoneVariant.html>`__
+
+
+ .. js:method:: set_standard_time()
+
+ Sets the ``zone_variant`` field to standard time.
+
+ See the `Rust documentation for standard <https://docs.rs/icu/latest/icu/timezone/struct.ZoneVariant.html#method.standard>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.zone_variant>`__
+
+
+ .. js:method:: set_daylight_time()
+
+ Sets the ``zone_variant`` field to daylight time.
+
+ See the `Rust documentation for daylight <https://docs.rs/icu/latest/icu/timezone/struct.ZoneVariant.html#method.daylight>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.zone_variant>`__
+
+
+ .. js:method:: is_standard_time()
+
+ Returns whether the ``zone_variant`` field is standard time.
+
+ Errors if the ``zone_variant`` field is empty.
+
+ See the `Rust documentation for standard <https://docs.rs/icu/latest/icu/timezone/struct.ZoneVariant.html#method.standard>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.zone_variant>`__
+
+
+ .. js:method:: is_daylight_time()
+
+ Returns whether the ``zone_variant`` field is daylight time.
+
+ Errors if the ``zone_variant`` field is empty.
+
+ See the `Rust documentation for daylight <https://docs.rs/icu/latest/icu/timezone/struct.ZoneVariant.html#method.daylight>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#structfield.zone_variant>`__
+
+
+ .. js:method:: maybe_calculate_metazone(metazone_calculator, local_datetime)
+
+ Sets the metazone based on the time zone and the local timestamp.
+
+ See the `Rust documentation for maybe_calculate_metazone <https://docs.rs/icu/latest/icu/timezone/struct.CustomTimeZone.html#method.maybe_calculate_metazone>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/timezone/struct.MetazoneCalculator.html#method.compute_metazone_from_time_zone>`__
+
diff --git a/intl/icu_capi/js/package/docs/source/timezone_formatter_ffi.rst b/intl/icu_capi/js/package/docs/source/timezone_formatter_ffi.rst
new file mode 100644
index 0000000000..434cf7c162
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/timezone_formatter_ffi.rst
@@ -0,0 +1,112 @@
+``timezone_formatter::ffi``
+===========================
+
+.. js:class:: ICU4XIsoTimeZoneFormat
+
+ See the `Rust documentation for IsoFormat <https://docs.rs/icu/latest/icu/datetime/time_zone/enum.IsoFormat.html>`__ for more information.
+
+
+.. js:class:: ICU4XIsoTimeZoneMinuteDisplay
+
+ See the `Rust documentation for IsoMinutes <https://docs.rs/icu/latest/icu/datetime/time_zone/enum.IsoMinutes.html>`__ for more information.
+
+
+.. js:class:: ICU4XIsoTimeZoneOptions
+
+ .. js:attribute:: format
+
+ .. js:attribute:: minutes
+
+ .. js:attribute:: seconds
+
+.. js:class:: ICU4XIsoTimeZoneSecondDisplay
+
+ See the `Rust documentation for IsoSeconds <https://docs.rs/icu/latest/icu/datetime/time_zone/enum.IsoSeconds.html>`__ for more information.
+
+
+.. js:class:: ICU4XTimeZoneFormatter
+
+ An ICU4X TimeZoneFormatter object capable of formatting an :js:class:`ICU4XCustomTimeZone` type (and others) as a string
+
+ See the `Rust documentation for TimeZoneFormatter <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_localized_gmt_fallback(provider, locale)
+
+ Creates a new :js:class:`ICU4XTimeZoneFormatter` from locale data.
+
+ Uses localized GMT as the fallback format.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.try_new>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/datetime/time_zone/enum.FallbackFormat.html>`__
+
+
+ .. js:function:: create_with_iso_8601_fallback(provider, locale, options)
+
+ Creates a new :js:class:`ICU4XTimeZoneFormatter` from locale data.
+
+ Uses ISO-8601 as the fallback format.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.try_new>`__ for more information.
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/datetime/time_zone/enum.FallbackFormat.html>`__
+
+
+ .. js:method:: load_generic_non_location_long(provider)
+
+ Loads generic non-location long format. Example: "Pacific Time"
+
+ See the `Rust documentation for include_generic_non_location_long <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.include_generic_non_location_long>`__ for more information.
+
+
+ .. js:method:: load_generic_non_location_short(provider)
+
+ Loads generic non-location short format. Example: "PT"
+
+ See the `Rust documentation for include_generic_non_location_short <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.include_generic_non_location_short>`__ for more information.
+
+
+ .. js:method:: load_specific_non_location_long(provider)
+
+ Loads specific non-location long format. Example: "Pacific Standard Time"
+
+ See the `Rust documentation for include_specific_non_location_long <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.include_specific_non_location_long>`__ for more information.
+
+
+ .. js:method:: load_specific_non_location_short(provider)
+
+ Loads specific non-location short format. Example: "PST"
+
+ See the `Rust documentation for include_specific_non_location_short <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.include_specific_non_location_short>`__ for more information.
+
+
+ .. js:method:: load_generic_location_format(provider)
+
+ Loads generic location format. Example: "Los Angeles Time"
+
+ See the `Rust documentation for include_generic_location_format <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.include_generic_location_format>`__ for more information.
+
+
+ .. js:method:: include_localized_gmt_format()
+
+ Loads localized GMT format. Example: "GMT-07:00"
+
+ See the `Rust documentation for include_localized_gmt_format <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.include_localized_gmt_format>`__ for more information.
+
+
+ .. js:method:: load_iso_8601_format(options)
+
+ Loads ISO-8601 format. Example: "-07:00"
+
+ See the `Rust documentation for include_iso_8601_format <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.include_iso_8601_format>`__ for more information.
+
+
+ .. js:method:: format_custom_time_zone(value)
+
+ Formats a :js:class:`ICU4XCustomTimeZone` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.format>`__ for more information.
+
+ See the `Rust documentation for format_to_string <https://docs.rs/icu/latest/icu/datetime/time_zone/struct.TimeZoneFormatter.html#method.format_to_string>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/week_ffi.rst b/intl/icu_capi/js/package/docs/source/week_ffi.rst
new file mode 100644
index 0000000000..3bb2f146e8
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/week_ffi.rst
@@ -0,0 +1,49 @@
+``week::ffi``
+=============
+
+.. js:class:: ICU4XWeekCalculator
+
+ A Week calculator, useful to be passed in to ``week_of_year()`` on Date and DateTime types
+
+ See the `Rust documentation for WeekCalculator <https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html>`__ for more information.
+
+
+ .. js:function:: create(provider, locale)
+
+ Creates a new :js:class:`ICU4XWeekCalculator` from locale data.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html#method.try_new>`__ for more information.
+
+
+ .. js:function:: create_from_first_day_of_week_and_min_week_days(first_weekday, min_week_days)
+
+ Additional information: `1 <https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html#structfield.first_weekday>`__, `2 <https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html#structfield.min_week_days>`__
+
+
+ .. js:method:: first_weekday()
+
+ Returns the weekday that starts the week for this object's locale
+
+ See the `Rust documentation for first_weekday <https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html#structfield.first_weekday>`__ for more information.
+
+
+ .. js:method:: min_week_days()
+
+ The minimum number of days overlapping a year required for a week to be considered part of that year
+
+ See the `Rust documentation for min_week_days <https://docs.rs/icu/latest/icu/calendar/week/struct.WeekCalculator.html#structfield.min_week_days>`__ for more information.
+
+
+.. js:class:: ICU4XWeekOf
+
+ See the `Rust documentation for WeekOf <https://docs.rs/icu/latest/icu/calendar/week/struct.WeekOf.html>`__ for more information.
+
+
+ .. js:attribute:: week
+
+ .. js:attribute:: unit
+
+.. js:class:: ICU4XWeekRelativeUnit
+
+ See the `Rust documentation for RelativeUnit <https://docs.rs/icu/latest/icu/calendar/week/enum.RelativeUnit.html>`__ for more information.
+
diff --git a/intl/icu_capi/js/package/docs/source/zoned_formatter_ffi.rst b/intl/icu_capi/js/package/docs/source/zoned_formatter_ffi.rst
new file mode 100644
index 0000000000..ad0790047a
--- /dev/null
+++ b/intl/icu_capi/js/package/docs/source/zoned_formatter_ffi.rst
@@ -0,0 +1,73 @@
+``zoned_formatter::ffi``
+========================
+
+.. js:class:: ICU4XGregorianZonedDateTimeFormatter
+
+ An object capable of formatting a date time with time zone to a string.
+
+ See the `Rust documentation for TypedZonedDateTimeFormatter <https://docs.rs/icu/latest/icu/datetime/struct.TypedZonedDateTimeFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_lengths(provider, locale, date_length, time_length)
+
+ Creates a new :js:class:`ICU4XGregorianZonedDateTimeFormatter` from locale data.
+
+ This function has ``date_length`` and ``time_length`` arguments and uses default options for the time zone.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/struct.TypedZonedDateTimeFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:function:: create_with_lengths_and_iso_8601_time_zone_fallback(provider, locale, date_length, time_length, zone_options)
+
+ Creates a new :js:class:`ICU4XGregorianZonedDateTimeFormatter` from locale data.
+
+ This function has ``date_length`` and ``time_length`` arguments and uses an ISO-8601 style fallback for the time zone with the given configurations.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/struct.TypedZonedDateTimeFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:method:: format_iso_datetime_with_custom_time_zone(datetime, time_zone)
+
+ Formats a :js:class:`ICU4XIsoDateTime` and :js:class:`ICU4XCustomTimeZone` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.TypedZonedDateTimeFormatter.html#method.format>`__ for more information.
+
+
+.. js:class:: ICU4XZonedDateTimeFormatter
+
+ An object capable of formatting a date time with time zone to a string.
+
+ See the `Rust documentation for ZonedDateTimeFormatter <https://docs.rs/icu/latest/icu/datetime/struct.ZonedDateTimeFormatter.html>`__ for more information.
+
+
+ .. js:function:: create_with_lengths(provider, locale, date_length, time_length)
+
+ Creates a new :js:class:`ICU4XZonedDateTimeFormatter` from locale data.
+
+ This function has ``date_length`` and ``time_length`` arguments and uses default options for the time zone.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/struct.ZonedDateTimeFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:function:: create_with_lengths_and_iso_8601_time_zone_fallback(provider, locale, date_length, time_length, zone_options)
+
+ Creates a new :js:class:`ICU4XZonedDateTimeFormatter` from locale data.
+
+ This function has ``date_length`` and ``time_length`` arguments and uses an ISO-8601 style fallback for the time zone with the given configurations.
+
+ See the `Rust documentation for try_new <https://docs.rs/icu/latest/icu/datetime/struct.ZonedDateTimeFormatter.html#method.try_new>`__ for more information.
+
+
+ .. js:method:: format_datetime_with_custom_time_zone(datetime, time_zone)
+
+ Formats a :js:class:`ICU4XDateTime` and :js:class:`ICU4XCustomTimeZone` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.ZonedDateTimeFormatter.html#method.format>`__ for more information.
+
+
+ .. js:method:: format_iso_datetime_with_custom_time_zone(datetime, time_zone)
+
+ Formats a :js:class:`ICU4XIsoDateTime` and :js:class:`ICU4XCustomTimeZone` to a string.
+
+ See the `Rust documentation for format <https://docs.rs/icu/latest/icu/datetime/struct.ZonedDateTimeFormatter.html#method.format>`__ for more information.
+