diff --git a/c-sharp-tests/Checklists/ChecklistServiceBuildChecklistDataTests.cs b/c-sharp-tests/Checklists/ChecklistServiceBuildChecklistDataTests.cs index dc74d5ef6cf..3e1b16ae3e4 100644 --- a/c-sharp-tests/Checklists/ChecklistServiceBuildChecklistDataTests.cs +++ b/c-sharp-tests/Checklists/ChecklistServiceBuildChecklistDataTests.cs @@ -733,12 +733,20 @@ public void BuildChecklistData_CancellationRequested_Throws() [Property("BehaviorId", "BHV-100")] public void BuildChecklistData_ChecklistTypeMarkers_ComposesMarkersPipeline() { - // TS-053: the Markers pipeline is composed under the hood. Indirect - // observation via BHV-103 — MarkersDataSource.PostProcessParagraph - // prepends a backslash-prefixed marker TextItem at position 0 of - // every paragraph's Items (INV-004). If the service did NOT route - // through MarkersDataSource, the first item of each paragraph would - // not be a TextItem with text "\p" / "\q" / "\q2". + // TS-053 (revised post-UX-2 finding #13): the Markers pipeline is + // composed under the hood. We observe BHV-103 indirectly: with + // showVerseText=true, the original verse-text Items (verse markers + // and text fragments produced by the cell builder) flow through + // MarkersDataSource.PostProcessParagraph unchanged — they are NOT + // dropped, and they are NOT prefixed with a redundant `\marker` + // TextItem (the UI renders the marker from paragraph.Marker). + // + // If the service did NOT route through MarkersDataSource, the + // showVerseText flag would have no effect; the paragraph items + // would always be present. With showVerseText=true that's + // indistinguishable, so instead we assert the new INV-004 contract: + // paragraph.Marker is set and Items contain only content items + // (verse markers / text), never the prepended `\marker` TextItem. var scrText = RegisterDummyProject(Gm001ExoUsfm); var request = BuildRequest(activeProjectId: scrText.Guid.ToString(), showVerseText: true); @@ -752,23 +760,26 @@ public void BuildChecklistData_ChecklistTypeMarkers_ComposesMarkersPipeline() foreach (var cell in row.Cells) foreach (var paragraph in cell.Paragraphs) { - Assume.That( - paragraph.Items, - Is.Not.Empty, - $"precondition — paragraph {paragraph.Marker} has items" - ); - var first = paragraph.Items[0]; Assert.That( - first, - Is.InstanceOf(), - "BHV-103 / INV-004 — first item must be TextItem carrying backslash-prefixed marker" - ); - var firstText = (TextItem)first; - Assert.That( - firstText.Text, - Is.EqualTo("\\" + paragraph.Marker), - $"BHV-103 / INV-004 — first TextItem.Text must equal \\{paragraph.Marker}" + paragraph.Marker, + Is.Not.Null.And.Not.Empty, + "INV-004 — paragraph.Marker carries the marker name (UI renders the backslash prefix)" ); + // INV-004 (revised): the redundant "\\" + Marker TextItem is no + // longer prepended. Verify no item in the list starts with the + // backslash-prefix marker as its sole text payload. + var backslashMarker = "\\" + paragraph.Marker; + foreach (var item in paragraph.Items) + { + if (item is TextItem text) + { + Assert.That( + text.Text, + Is.Not.EqualTo(backslashMarker), + $"INV-004 (revised) — Items must not contain the prepended marker TextItem '{backslashMarker}'" + ); + } + } } } @@ -1264,14 +1275,19 @@ public void Gm006_PartialMappingDifferences_Replay_RetainsOnlyUnmappedDifference [Property("GoldenMaster", "gm-018")] [Property("BehaviorId", "BHV-103")] [Property("Invariant", "INV-004")] - public void Gm018_MarkerDisplayFormat_Replay_ProducesBackslashPrefixedMarkerItems() + public void Gm018_MarkerDisplayFormat_Replay_ProducesMarkerOnRecordOnly() { - // gm-018 exercises INV-004 (backslash-prefixed marker display) via the - // BuildChecklistData pipeline. Same USFM as gm-001 but with - // showVerseText=false so the only text item emitted per paragraph is - // the backslash-marker name. Expected (per gm-018/expected-output.json): - // rowCount=2, excludedCount=0, every paragraph's first content item is - // a TextItem whose Text starts with "\". + // gm-018 (revised post-UX-2 finding #13): exercises INV-004 (marker + // display) via the BuildChecklistData pipeline. Same USFM as gm-001 + // but with showVerseText=false so the paragraph items list is + // emptied. The marker is reported via paragraph.Marker only; the UI + // renders the backslash prefix. + // + // The gm-018 expected-output.json was captured before this revision; + // its "items[0].text = \\p / \\q / \\q2" rows reflect the now-defunct + // pre-UX-2 contract. The PT9 byte-for-byte fidelity is preserved + // semantically (showVerseText=false drops verse text) — only the + // PT10 wire shape changed: paragraph.Marker is now authoritative. var active = RegisterDummyProject(Gm001ExoUsfm); var request = BuildRequest( activeProjectId: active.Guid.ToString(), @@ -1296,12 +1312,13 @@ public void Gm018_MarkerDisplayFormat_Replay_ProducesBackslashPrefixedMarkerItem "gm-018 — excludedCount=0 (hideMatches=false)" ); - // INV-004: every paragraph's first content item (the marker name item) - // must carry the backslash-prefixed marker as its Text. The gm-018 - // expected-output shows "\\p", "\\q", "\\q2" as the Text value of the - // CLText item at position 0 in each paragraph. PostProcessParagraph - // prepends this; when showVerseText=false the following text items - // are dropped (BHV-103), so the marker item is often the ONLY item. + // INV-004 (revised post-UX-2): paragraph.Marker is the single + // source of truth for the marker display. With showVerseText=false, + // the verse-text items are dropped by PostProcessParagraph; the + // only items that remain are downstream additions (e.g. CAP-012's + // EditLinkItem appended to the last paragraph of each cell). What + // is forbidden is the now-deprecated prepended "\\" + Marker + // TextItem (markers-checklist follow-up finding #13). foreach (var row in result.Rows) { foreach (var cell in row.Cells) @@ -1309,26 +1326,25 @@ public void Gm018_MarkerDisplayFormat_Replay_ProducesBackslashPrefixedMarkerItem foreach (var paragraph in cell.Paragraphs) { Assert.That( - paragraph.Items, - Is.Not.Empty, - "INV-004 — every paragraph has at least the marker-name item" - ); - Assert.That( - paragraph.Items[0], - Is.InstanceOf(), - $"INV-004 — first item of paragraph '{paragraph.Marker}' must be the marker-name TextItem" - ); - var markerItem = (TextItem)paragraph.Items[0]; - Assert.That( - markerItem.Text, - Does.StartWith(@"\"), - $"INV-004 — marker-name TextItem must start with '\\' for paragraph '{paragraph.Marker}'" - ); - Assert.That( - markerItem.Text, - Is.EqualTo(@"\" + paragraph.Marker), - $"INV-004 — marker-name text is '\\{paragraph.Marker}'" + paragraph.Marker, + Is.Not.Null.And.Not.Empty, + "INV-004 — paragraph.Marker carries the marker name (UI renders the backslash prefix)" ); + // No TextItem in Items may carry the deprecated + // "\\" + Marker payload — the UI sources that from + // paragraph.Marker now. + var backslashMarker = "\\" + paragraph.Marker; + foreach (var item in paragraph.Items) + { + if (item is TextItem text) + { + Assert.That( + text.Text, + Is.Not.EqualTo(backslashMarker), + $"INV-004 (revised) — Items must not contain the prepended marker TextItem '{backslashMarker}'" + ); + } + } } } } diff --git a/c-sharp-tests/Checklists/Markers/MarkersDataSourceTests.cs b/c-sharp-tests/Checklists/Markers/MarkersDataSourceTests.cs index 128f7508bea..70231ebae0a 100644 --- a/c-sharp-tests/Checklists/Markers/MarkersDataSourceTests.cs +++ b/c-sharp-tests/Checklists/Markers/MarkersDataSourceTests.cs @@ -182,10 +182,12 @@ public void ParagraphMarkers_WithEmptyFilter_ReturnsAllParagraphMarkers() [Property("ScenarioId", "TS-009")] [Property("BehaviorId", "BHV-103")] [Property("InvariantId", "INV-004")] - public void PostProcessParagraph_ShowVerseTextFalse_ClearsItemsAndInsertsMarkerOnly() + public void PostProcessParagraph_ShowVerseTextFalse_DropsAllItems() { - // BHV-103 / INV-004: with showVerseText=false, existing items are cleared - // and a single TextItem("\\" + marker) is inserted at position 0. + // BHV-103 / INV-004 (revised post-UX-2): with showVerseText=false, the + // paragraph items list is emptied. The marker itself is rendered by the + // UI via paragraph.Marker (the marker is no longer prepended as a + // TextItem — see markers-checklist follow-up finding #13). var input = new ChecklistParagraph( "p", new List @@ -199,9 +201,7 @@ public void PostProcessParagraph_ShowVerseTextFalse_ClearsItemsAndInsertsMarkerO Assert.That(result, Is.Not.Null); Assert.That(result.Marker, Is.EqualTo("p")); - Assert.That(result.Items.Count, Is.EqualTo(1)); - Assert.That(result.Items[0], Is.InstanceOf()); - Assert.That(((TextItem)result.Items[0]).Text, Is.EqualTo("\\p")); + Assert.That(result.Items, Is.Empty); } [Test] @@ -211,10 +211,11 @@ public void PostProcessParagraph_ShowVerseTextFalse_ClearsItemsAndInsertsMarkerO [Property("ScenarioId", "TS-010")] [Property("BehaviorId", "BHV-103")] [Property("InvariantId", "INV-004")] - public void PostProcessParagraph_ShowVerseTextTrue_PrependsMarkerBeforeText() + public void PostProcessParagraph_ShowVerseTextTrue_PreservesOriginalItems() { - // BHV-103: with showVerseText=true, marker text is inserted at index 0 - // and the original items are preserved at positions 1..N. + // BHV-103 (revised post-UX-2): with showVerseText=true, the original + // items are preserved verbatim. The marker is NOT prepended (the UI + // renders it from paragraph.Marker). var input = new ChecklistParagraph( "q2", new List @@ -226,11 +227,10 @@ public void PostProcessParagraph_ShowVerseTextTrue_PrependsMarkerBeforeText() var result = MarkersDataSource.PostProcessParagraph(input, showVerseText: true); - Assert.That(result.Items.Count, Is.EqualTo(3)); - Assert.That(result.Items[0], Is.InstanceOf()); - Assert.That(((TextItem)result.Items[0]).Text, Is.EqualTo("\\q2")); - Assert.That(((TextItem)result.Items[1]).Text, Is.EqualTo("indented ")); - Assert.That(((TextItem)result.Items[2]).Text, Is.EqualTo("poetry")); + Assert.That(result.Marker, Is.EqualTo("q2")); + Assert.That(result.Items.Count, Is.EqualTo(2)); + Assert.That(((TextItem)result.Items[0]).Text, Is.EqualTo("indented ")); + Assert.That(((TextItem)result.Items[1]).Text, Is.EqualTo("poetry")); } [Test] @@ -239,9 +239,10 @@ public void PostProcessParagraph_ShowVerseTextTrue_PrependsMarkerBeforeText() [Property("Contract", "PostProcessParagraph")] [Property("ScenarioId", "TS-067")] [Property("BehaviorId", "BHV-103")] - public void PostProcessParagraph_ShowVerseTextFalse_WithMarkerQ1_DisplaysBackslashQ1Only() + public void PostProcessParagraph_ShowVerseTextFalse_WithMarkerQ1_DropsAllItems() { - // TS-067: q1 marker with showVerseText=false displays exactly "\q1". + // TS-067 (revised post-UX-2): q1 marker with showVerseText=false -> + // items emptied. UI renders "\q1" from paragraph.Marker. var input = new ChecklistParagraph( "q1", new List { new TextItem("some content", null) } @@ -249,8 +250,8 @@ public void PostProcessParagraph_ShowVerseTextFalse_WithMarkerQ1_DisplaysBacksla var result = MarkersDataSource.PostProcessParagraph(input, showVerseText: false); - Assert.That(result.Items.Count, Is.EqualTo(1)); - Assert.That(((TextItem)result.Items[0]).Text, Is.EqualTo("\\q1")); + Assert.That(result.Marker, Is.EqualTo("q1")); + Assert.That(result.Items, Is.Empty); } // ===================================================================== @@ -652,18 +653,27 @@ public void InitializeMarkerMappings_EmptyMappingString_ReturnsEmptyDictionary() [Property("InvariantId", "INV-008")] public void PostProcessRows_EmptyRowsNoFilter_ReturnsIdenticalMarkersMessage() { - // TS-021 / INV-008: with no rows and no filter active, the service - // returns an EmptyResultMessage with variant="identical" and the - // paranext-core localize key for the PT9 message. Per the + // TS-021 / INV-008: with no rows and no filter active AND at least + // one comparative configured, the service returns an + // EmptyResultMessage with variant="identical" and the paranext-core + // localize key for the PT9 message. Per the // patterns.errorHandling.backendLocalization registry entry, the // static service returns the KEY; the wrapping ChecklistNetworkObject // resolves it via LocalizationService.GetLocalizedString before the // wire response is serialized. Maps to PT9 CLParagraphCellsDataSource_1. + // Post-UX-2 finding #3: this case is gated on hasComparativeTexts:true + // — see PostProcessRows_EmptyRowsNoFilter_NoComparatives_ReturnsNoResults + // for the no-comparatives counterpart. var emptyRows = new List(); var emptyFilter = new HashSet(); var books = new List { "GEN" }; - var result = MarkersDataSource.PostProcessRows(emptyRows, emptyFilter, books); + var result = MarkersDataSource.PostProcessRows( + emptyRows, + emptyFilter, + books, + hasComparativeTexts: true + ); Assert.That(result, Is.Not.Null, "empty results must always produce a message (INV-008)"); Assert.That(result!.Variant, Is.EqualTo("identical")); @@ -694,7 +704,12 @@ public void PostProcessRows_EmptyRowsWithFilter_ReturnsNoResultsMessage() var filter = new HashSet { "p", "q1" }; var books = new List { "GEN", "EXO" }; - var result = MarkersDataSource.PostProcessRows(emptyRows, filter, books); + var result = MarkersDataSource.PostProcessRows( + emptyRows, + filter, + books, + hasComparativeTexts: true + ); Assert.That(result, Is.Not.Null); Assert.That(result!.Variant, Is.EqualTo("noResults")); @@ -715,7 +730,12 @@ public void PostProcessRows_EmptyRowsWithFilter_MessageListsSearchedMarkersAndBo var filter = new HashSet { "p", "q1" }; var books = new List { "GEN", "EXO" }; - var result = MarkersDataSource.PostProcessRows(emptyRows, filter, books); + var result = MarkersDataSource.PostProcessRows( + emptyRows, + filter, + books, + hasComparativeTexts: true + ); Assert.That(result, Is.Not.Null); Assert.That(result!.SearchedMarkers, Is.Not.Null); @@ -738,11 +758,68 @@ public void PostProcessRows_NonEmptyRows_ReturnsNull() var emptyFilter = new HashSet(); var books = new List { "GEN" }; - var result = MarkersDataSource.PostProcessRows(rows, emptyFilter, books); + var result = MarkersDataSource.PostProcessRows( + rows, + emptyFilter, + books, + hasComparativeTexts: true + ); Assert.That(result, Is.Null, "non-empty rows must not produce an EmptyResultMessage"); } + [Test] + [Category("Contract")] + [Property("CapabilityId", "CAP-007")] + [Property("Contract", "PostProcessRows")] + [Property("ScenarioId", "TS-UX2-003")] + [Property("BehaviorId", "BHV-106")] + public void PostProcessRows_EmptyRowsNoFilter_NoComparatives_ReturnsNoResults() + { + // UX-2 finding #3: the "Comparative texts have identical markers." + // message must NOT fire when there are no comparatives configured. + // It only makes sense when at least one comparative is in play. + var emptyRows = new List(); + var emptyFilter = new HashSet(); + var books = new List { "GEN" }; + + var result = MarkersDataSource.PostProcessRows( + emptyRows, + emptyFilter, + books, + hasComparativeTexts: false + ); + + Assert.That(result, Is.Not.Null); + Assert.That(result!.Variant, Is.EqualTo(EmptyResultMessageVariant.NoResults)); + } + + [Test] + [Category("Contract")] + [Property("CapabilityId", "CAP-007")] + [Property("Contract", "PostProcessRows")] + [Property("ScenarioId", "TS-UX2-003b")] + [Property("BehaviorId", "BHV-106")] + public void PostProcessRows_EmptyRowsNoFilter_WithComparatives_ReturnsIdenticalMarkers() + { + // Regression guard for the original positive case: when comparatives + // ARE in play and rows still came back empty with no filter, the + // identical-markers message is the correct one. + var emptyRows = new List(); + var emptyFilter = new HashSet(); + var books = new List { "GEN" }; + + var result = MarkersDataSource.PostProcessRows( + emptyRows, + emptyFilter, + books, + hasComparativeTexts: true + ); + + Assert.That(result, Is.Not.Null); + Assert.That(result!.Variant, Is.EqualTo(EmptyResultMessageVariant.Identical)); + } + // ===================================================================== // BHV-120 / EXT-013 — HeadingMarkers / NonHeadingParagraphMarkers // ===================================================================== diff --git a/c-sharp/Checklists/ChecklistService.cs b/c-sharp/Checklists/ChecklistService.cs index 414e99e158b..5c55c104c44 100644 --- a/c-sharp/Checklists/ChecklistService.cs +++ b/c-sharp/Checklists/ChecklistService.cs @@ -168,7 +168,8 @@ public static ChecklistResult BuildChecklistData(ChecklistRequest request, Cance EmptyResultMessage? emptyResultMessage = MarkersDataSource.PostProcessRows( rows, markerFilter, - searchedBookNames + searchedBookNames, + hasComparativeTexts: request.ComparativeTextIds.Count > 0 ); // Step 10: parallel ColumnHeaders / ColumnProjectIds (INV-C15). diff --git a/c-sharp/Checklists/Markers/MarkersDataSource.cs b/c-sharp/Checklists/Markers/MarkersDataSource.cs index 2949b6a9119..93607e3a5ca 100644 --- a/c-sharp/Checklists/Markers/MarkersDataSource.cs +++ b/c-sharp/Checklists/Markers/MarkersDataSource.cs @@ -45,37 +45,47 @@ HashSet markerFilter && (markerFilter.Count == 0 || markerFilter.Contains(tag.Marker)) ); - // === PORTED FROM PT9 === + // === PORTED FROM PT9 (REVISED post-UX-2 review) === // Source: PT9/Paratext/Checklists/CLParagraphCellsDataSource.cs:221-226 // Method: CLMarkersDataSource.PostProcessParagraph(CLCell, VerseRef, CLParagraph) // Maps to: EXT-004 / BHV-103 / INV-004 // // EXPLANATION: - // PT9 mutated `paragraph.Items` in place: if ShowReferencedVerseText was - // false it cleared the list first, then inserted `new CLText("\\"+Marker)` - // at position 0. PT10 records are immutable (CAP-001 decision), so we - // return a NEW ChecklistParagraph via the record's `with` expression with - // a freshly built Items list. The backslash-prefix TextItem at index 0 - // is INV-004; showVerseText controls whether the original items follow. + // PT9 emitted the backslash-prefix marker as a CLText at index 0 because + // its renderer (XSLT) didn't carry a separate marker slot — everything + // had to come through the Items list. + // + // PT10's `ChecklistTool` React component renders the marker from the + // separate `paragraph.Marker` property (its dedicated ``). Emitting + // it again as a TextItem caused visible duplication (`\rem \rem ADAPTED…`) + // — see markers-checklist follow-up finding #13. + // + // Revised behaviour: + // - showVerseText=false -> Items is empty. The UI renders `\marker` from + // paragraph.Marker only. + // - showVerseText=true -> Items contains the original verse-text items + // unchanged. The UI renders `\marker` from + // paragraph.Marker AND each item beside it. + // + // INV-004 (revised): paragraph.Marker is the single source of truth for + // the marker display. The Items list never contains a redundant + // `"\\" + Marker` TextItem. /// - /// Returns a new paragraph with a backslash-prefixed marker - /// at position 0 (INV-004). When - /// is false, the remainder of the - /// original items is dropped; when true, they are preserved after the - /// marker item (BHV-103). + /// Returns a new paragraph whose Items list is the original Items when + /// is true, or an empty list when false. + /// The backslash-prefix marker is rendered by the UI from + /// paragraph.Marker; this method no longer prepends a marker + /// TextItem (BHV-103 / INV-004 revision per UX-2 finding #13). /// public static ChecklistParagraph PostProcessParagraph( ChecklistParagraph paragraph, bool showVerseText ) { - var newItems = new List + return paragraph with { - new TextItem("\\" + paragraph.Marker, null), + Items = showVerseText ? paragraph.Items : new List(), }; - if (showVerseText) - newItems.AddRange(paragraph.Items); - return paragraph with { Items = newItems }; } // === PORTED FROM PT9 === @@ -275,20 +285,25 @@ string to public static EmptyResultMessage? PostProcessRows( IReadOnlyList rows, HashSet markerFilter, - IReadOnlyList searchedBookNames + IReadOnlyList searchedBookNames, + bool hasComparativeTexts ) { if (rows.Count > 0) return null; // INV-008 inverse — non-empty results carry no message. - if (markerFilter.Count == 0) + // UX-2 finding #3: only the comparative-driven "identical markers" + // result variant makes sense when at least one comparative text is in + // play. When no comparatives are configured, an empty result simply + // means "no markers found in this range" — emit the structured + // NoResults variant so the UI can render the right (generic) message. + if (markerFilter.Count == 0 && hasComparativeTexts) { - // gm-002 localized message. We return the paranext-core localize key — - // the wrapping NetworkObject resolves it via LocalizationService.GetLocalizedString - // before sending over the wire (see patterns.errorHandling.backendLocalization). - // Maps to PT9 CLParagraphCellsDataSource_1. PT9 displayed this wrapped in "*** ... ***" - // as a UI decoration added outside the localized string (CLParagraphCellsDataSource.cs:313); - // we deliberately drop that wrapping so the UI can decorate as it sees fit. + // gm-002 localized message. We return the paranext-core localize + // key — the wrapping NetworkObject resolves it via + // LocalizationService.GetLocalizedString before sending over the + // wire (see patterns.errorHandling.backendLocalization). + // Maps to PT9 CLParagraphCellsDataSource_1. return new EmptyResultMessage( Variant: EmptyResultMessageVariant.Identical, Message: IdenticalMarkersMessageKey, @@ -298,12 +313,12 @@ IReadOnlyList searchedBookNames } // "noResults" variant — structured fields drive the UI's localized - // rendering (see data-contracts.md §3.8). Tests assert only on - // Variant + SearchedMarkers + SearchedBooks. + // rendering. Used both for filter-active empty results and for + // no-comparative empty results. return new EmptyResultMessage( Variant: EmptyResultMessageVariant.NoResults, Message: string.Empty, - SearchedMarkers: markerFilter.ToList(), + SearchedMarkers: markerFilter.Count > 0 ? markerFilter.ToList() : null, SearchedBooks: searchedBookNames ); } diff --git a/extensions/src/platform-scripture/contributions/localizedStrings.json b/extensions/src/platform-scripture/contributions/localizedStrings.json index c161b01a802..cebd267887e 100644 --- a/extensions/src/platform-scripture/contributions/localizedStrings.json +++ b/extensions/src/platform-scripture/contributions/localizedStrings.json @@ -477,7 +477,7 @@ "%webView_scope_selector_current_book%": "Current book", "%webView_scope_selector_current_chapter%": "Current chapter", "%webView_scope_selector_current_verse%": "Current verse", - "%webView_scope_selector_navigate%": "Navigate", + "%webView_scope_selector_navigate%": "Change current reference", "%webView_scope_selector_ok%": "Apply", "%webView_scope_selector_range%": "Range", "%webView_scope_selector_range_end%": "End", @@ -492,7 +492,9 @@ "%webview_checksSidePanel_checkTypeFilter_setUp%": "Set up", "%markersChecklist_errorInvalidMarkerPair%": "Equivalent markers need to be entered in the form: p/q", "%markersChecklist_emptyResult_identicalMarkers%": "Comparative texts have identical markers.", - "%markersChecklist_settings_title%": "Marker Settings", + "%markersChecklist_emptyResult_noResults%": "No markers found.", + "%markersChecklist_emptyResult_selectProject%": "Select a project to view its paragraph markers.", + "%markersChecklist_settings_title%": "Markers Checklist Settings", "%markersChecklist_settings_description%": "Configure the equivalent markers and marker filter used when building the checklist.", "%markersChecklist_settings_equivalentMarkersLabel%": "Equivalent marker mappings", "%markersChecklist_settings_equivalentMarkersHelp%": "If you consider certain markers to be equivalent when you hide matches, enter each pair of equivalent markers separated by the / character. Separate pairs with a space.\nFor example, the mapping q/q1 means that you consider \\q in first text equivalent to \\q1 in the second (comparative) text.", @@ -503,6 +505,7 @@ "%markersChecklist_settings_helpIconAriaLabel%": "Help", "%markersChecklist_toolbar_primaryProject%": "Select primary Scripture text", "%markersChecklist_toolbar_comparativeTexts%": "Select comparative texts", + "%markersChecklist_toolbar_comparativeTextsPlaceholder%": "Select comparative texts", "%markersChecklist_toolbar_verseRange%": "Select verse range", "%markersChecklist_toolbar_copy%": "Copy", "%markersChecklist_toolbar_view%": "View", @@ -524,10 +527,21 @@ "%markersChecklist_marker_aria%": "Marker {marker}", "%markersChecklist_windowTitle%": "Markers Checklist - {projectName}", "%markersChecklist_menu_openTool%": "Markers Checklist…", - "%markersChecklist_menu_copy%": "Copy", - "%markersChecklist_menu_settings%": "Settings", + "%markersChecklist_menu_copy%": "Copy all text to clipboard", + "%markersChecklist_menu_print%": "Print Markers Checklist", + "%markersChecklist_menu_save%": "Save Markers Checklist", + "%markersChecklist_menu_markersInventory%": "Markers Inventory…", + "%markersChecklist_menu_settings%": "Markers Checklist Settings", + "%markersChecklist_copy_success%": "Checklist text copied to clipboard.", + "%markersChecklist_print_notImplemented%": "Print is not yet implemented.", + "%markersChecklist_save_notImplemented%": "Save is not yet implemented.", + "%markersChecklist_selectedBooks_notImplemented%": "Choose specific books is not yet supported for the markers checklist.", "%webView_platformScripture_markersChecklist_viewColumn%": "View", "%webView_platformScripture_markersChecklist_settings%": "Settings", + "%settings_markersChecklist_group_label%": "Markers Checklist", + "%settings_markersChecklist_group_description%": "Settings for the Markers Checklist tool", + "%settings_markersChecklist_userDefaults_label%": "Markers Checklist defaults", + "%settings_markersChecklist_userDefaults_description%": "Per-user defaults the Markers Checklist seeds into each new tab: comparative projects, Hide Matches and Show Verse Text toggles, and the equivalent-markers/marker-filter values from the settings dialog. Scope and verse range are intentionally not persisted.", "%manageBooks_openMenuItem%": "Manage books…", "%manageBooks_sidebar_projectPlaceholder%": "Select project" }, diff --git a/extensions/src/platform-scripture/contributions/menus.json b/extensions/src/platform-scripture/contributions/menus.json index dbc0e0f20b9..62d3a0615f8 100644 --- a/extensions/src/platform-scripture/contributions/menus.json +++ b/extensions/src/platform-scripture/contributions/menus.json @@ -63,9 +63,27 @@ "command": "platformScripture.copyMarkersChecklist" }, { - "label": "%markersChecklist_menu_settings%", + "label": "%markersChecklist_menu_print%", "group": "platformScripture.markersChecklistExport", "order": 2, + "command": "platformScripture.printMarkersChecklist" + }, + { + "label": "%markersChecklist_menu_save%", + "group": "platformScripture.markersChecklistExport", + "order": 3, + "command": "platformScripture.saveMarkersChecklist" + }, + { + "label": "%markersChecklist_menu_markersInventory%", + "group": "platformScripture.markersChecklistExport", + "order": 4, + "command": "platformScripture.openMarkersInventory" + }, + { + "label": "%markersChecklist_menu_settings%", + "group": "platformScripture.markersChecklistExport", + "order": 5, "command": "platformScripture.openMarkersChecklistSettings" } ] diff --git a/extensions/src/platform-scripture/contributions/settings.json b/extensions/src/platform-scripture/contributions/settings.json index fe51488c706..b8972c70367 100644 --- a/extensions/src/platform-scripture/contributions/settings.json +++ b/extensions/src/platform-scripture/contributions/settings.json @@ -1 +1,19 @@ -[] +[ + { + "label": "%settings_markersChecklist_group_label%", + "description": "%settings_markersChecklist_group_description%", + "properties": { + "platformScripture.markersChecklistDefaults": { + "label": "%settings_markersChecklist_userDefaults_label%", + "description": "%settings_markersChecklist_userDefaults_description%", + "default": { + "comparativeTextIds": [], + "hideMatches": false, + "showVerseText": false, + "equivalentMarkers": "", + "markerFilter": "" + } + } + } + } +] diff --git a/extensions/src/platform-scripture/src/checklist.model.ts b/extensions/src/platform-scripture/src/checklist.model.ts index d9be4c2709d..10ce089104f 100644 --- a/extensions/src/platform-scripture/src/checklist.model.ts +++ b/extensions/src/platform-scripture/src/checklist.model.ts @@ -13,3 +13,22 @@ * and the per-web-view state isolation documented in `ui-alignment.md` § State Management. */ export const CHECKLIST_OPEN_SETTINGS_EVENT = 'platformScripture.openMarkersChecklistSettings'; + +/** + * Network event that asks any mounted Markers Checklist web view to copy its currently visible data + * to the clipboard (UX-2 finding #12, WP6). + * + * The outer Platform.Bible tab chrome dispatches menu commands via + * `papi.commands.sendCommand(command, tabId)` — it does NOT route them back into the web view + * directly. So the `platformScripture.copyMarkersChecklist` command handler in `main.ts` cannot + * read the web view's live `visibleData`. Instead it emits this network event; the web view + * subscribes via `papi.network.getNetworkEvent`, builds a tab-separated snapshot of its current + * rows, writes the snapshot to `navigator.clipboard`, and surfaces a Sonner success toast via + * `papi.notifications.send`. + * + * Mirrors the broadcast model used for `CHECKLIST_OPEN_SETTINGS_EVENT`: every mounted checklist web + * view receives the event. In practice only the focused tab is visible to the user, so the extra + * clipboard writes from any background tabs are harmless (last-writer-wins, identical payload in + * the common single-tab case). + */ +export const CHECKLIST_COPY_REQUEST_EVENT = 'platformScripture.copyMarkersChecklist'; diff --git a/extensions/src/platform-scripture/src/checklist.web-view-provider.ts b/extensions/src/platform-scripture/src/checklist.web-view-provider.ts index 559549fe80b..b47e6d20f0e 100644 --- a/extensions/src/platform-scripture/src/checklist.web-view-provider.ts +++ b/extensions/src/platform-scripture/src/checklist.web-view-provider.ts @@ -8,6 +8,11 @@ import { import { formatReplacementString } from 'platform-bible-utils'; import checklistWebView from './checklist.web-view?inline'; import tailwindStyles from './tailwind.css?inline'; +// USFM character-style classes (UX-2 finding #19). Mirrors the character-style +// subset of `_usj-nodes.scss` from platform-scripture-editor so the checklist +// renders `\nd`, `\wj`, `\em`, `\w`, etc. as styled text rather than literal +// `(\nd Lord)`. See the SCSS file for the rationale and TODO-promote note. +import checklistUsfmStyles from './components/checklist-usfm-styles.scss?inline'; export const markersChecklistWebViewType = 'platformScripture.markersChecklist'; @@ -56,12 +61,15 @@ export class ChecklistWebViewProvider implements IWebViewProvider { title, projectId, content: checklistWebView, - styles: tailwindStyles, + styles: `${tailwindStyles}\n${checklistUsfmStyles}`, state: { ...savedWebView.state, webViewType: markersChecklistWebViewType, }, - shouldShowToolbar: true, + // The outer Platform.Bible tab chrome is suppressed for the markers checklist — + // its hamburger/BCV/scroll-group controls now live on the inner TabToolbar inside + // ChecklistTool, so we don't want a duplicate chrome above the inner toolbar. + shouldShowToolbar: false, }; } } diff --git a/extensions/src/platform-scripture/src/checklist.web-view.tsx b/extensions/src/platform-scripture/src/checklist.web-view.tsx index 6da56776a0c..5473bad2c59 100644 --- a/extensions/src/platform-scripture/src/checklist.web-view.tsx +++ b/extensions/src/platform-scripture/src/checklist.web-view.tsx @@ -39,17 +39,22 @@ import { MARKER_SETTINGS_STRING_KEYS, } from './components/marker-settings-dialog.component'; import { useChecklistService } from './hooks/use-checklist'; +import { useChecklistDefaults } from './hooks/use-checklist-defaults'; import { useOpenProjectTabs } from './hooks/use-open-project-tabs'; import { parseScrRef } from './components/parse-scr-ref.utils'; import { computeRangeFromScope } from './components/compute-range-from-scope.utils'; -import { CHECKLIST_OPEN_SETTINGS_EVENT } from './checklist.model'; +import { + filterComparativeProjects, + filterPrimaryProjects, +} from './components/checklist-project-filter.utils'; +import { CHECKLIST_COPY_REQUEST_EVENT, CHECKLIST_OPEN_SETTINGS_EVENT } from './checklist.model'; // ─── Constants ───────────────────────────────────────────────────────────── /** * Fallback menu used while the menu-data subscription is pending or errored. Matches the pattern - * used by `platform-scripture-editor.web-view.tsx:141-145`. When the real menu arrives, the - * memoized `webViewMenu` below narrows to the concrete value. + * used by `platform-scripture-editor.web-view.tsx`. When the real menu arrives, the memoized + * `webViewMenu` below narrows to the concrete value. */ const DEFAULT_WEBVIEW_MENU = { topMenu: undefined, @@ -92,6 +97,12 @@ function toChecklistData(body: Extract(key, default)` slots declared at the top of the * component, backing per-web-view persistence for the checklist settings. + * + * UX-2 follow-up finding #22 (WP7): the persisted-slot defaults are now seeded from a per-user + * setting (`platformScripture.markersChecklistDefaults`) instead of static literals. The outer + * `ChecklistWebView` reads the setting via `useChecklistDefaults` and gates rendering on the read + * settling — without this gate, `useWebViewState` would lock in the static defaults at first mount + * (`useState(() => ...)` lazy init consults the default exactly once) and silently ignore the + * persisted value. The inner `ChecklistContent` component receives the resolved defaults + the + * `writeChecklistDefaults` mirror-back callback as props. */ -global.webViewComponent = function ChecklistWebView({ +global.webViewComponent = function ChecklistWebView(props: WebViewProps) { + // Phase 1: read the per-user defaults setting BEFORE mounting the body. We gate on + // `isLoading === false` because `useWebViewState`'s lazy-init `useState(() => ...)` consults + // its default only on first render — handing it `persistedDefaults?.field ?? fallback` while + // the read is still in flight would seed every slot with the fallback for the lifetime of the + // tab, defeating persistence on first launch. + const [persistedDefaults, isLoadingDefaults, writeChecklistDefaults] = useChecklistDefaults(); + + if (isLoadingDefaults || !persistedDefaults) { + // Brief flash (~one async tick) while papi.settings.get resolves. Returning `undefined` + // tells React to render nothing for this mount — matches the codebase's existing convention + // for "no UI to draw yet" (the `useMemo` paths at lines 537/548/550 do the same) and avoids + // the `react/jsx-no-useless-fragment` flag for `<>`. The outer tab chrome already shows + // its title bar during the brief loading window. + return undefined; + } + + return ( + + ); +}; + +type ChecklistContentProps = WebViewProps & { + persistedDefaults: ChecklistDefaults; + writeChecklistDefaults: (next: Partial) => Promise; +}; + +/** + * Inner component that runs every hook in the checklist web view. Split out from `ChecklistWebView` + * so the persisted-defaults read (WP7) can gate this component's mount — once it mounts, + * `useWebViewState`'s lazy init sees the resolved defaults on the very first render. + */ +function ChecklistContent({ projectId, useWebViewState, useWebViewScrollGroupScrRef, updateWebViewDefinition, -}: WebViewProps) { + persistedDefaults, + writeChecklistDefaults, +}: ChecklistContentProps) { // ─── UI-PKG-004: persisted state slots ──────────────────────────────────── // ─── Scroll group binding (drives currentScrRef + goto setter) ──────── @@ -157,19 +225,27 @@ global.webViewComponent = function ChecklistWebView({ const [equivalentMarkers, setEquivalentMarkers] = useWebViewState( 'checklistEquivalentMarkers', - '', + persistedDefaults.equivalentMarkers, + ); + const [markerFilter, setMarkerFilter] = useWebViewState( + 'checklistMarkerFilter', + persistedDefaults.markerFilter, + ); + const [hideMatches, setHideMatches] = useWebViewState( + 'checklistHideMatches', + persistedDefaults.hideMatches, ); - const [markerFilter, setMarkerFilter] = useWebViewState('checklistMarkerFilter', ''); - const [hideMatches, setHideMatches] = useWebViewState('checklistHideMatches', false); const [showVerseText, setShowVerseText] = useWebViewState( 'checklistShowVerseText', - false, + persistedDefaults.showVerseText, ); // Comparative-texts selection is driven by the real `ProjectSelector` (`mode: 'project-multi'`, - // vendored from draft PR #2223). + // vendored from draft PR #2223). UX-2 #22 (WP7): the default is materialised from the user + // setting's `comparativeTextIds` (string[]) by lifting each id into the + // `ChecklistComparativeTextRef` shape the component uses internally. const [comparativeTexts, setComparativeTexts] = useWebViewState( 'checklistComparativeTexts', - [], + persistedDefaults.comparativeTextIds.map((id) => ({ id })), ); // R1 — mode-aware snapshot persistence (matches PT9's frozen-range model). // - `scope` drives the ScopeSelector display label; `verseRange` auto-follows `liveScrRef` @@ -202,6 +278,32 @@ global.webViewComponent = function ChecklistWebView({ // goto handler (Task 9). `setScrollGroupId` stays `void`-suppressed until a scroll-group // picker is wired (parity with checks-side-panel Tasks 13/14). + // UX-2 follow-up finding #22 (WP7): mirror the persisted slots to the user setting so a new + // checklist tab — or a fresh app session — inherits the latest committed defaults. Scope and + // verse range are intentionally NOT mirrored: PT9 reset both per-open (FirstVerseRef / + // LastVerseRef were rewritten from the live scroll-group ref on each open) and the reviewer + // agreed PT10 should match. The mirror also fires on the very first render to (idempotently) + // re-write the same value back — harmless, and means a user who never changes the toggles + // still gets a persisted record once they save the equivalent-markers dialog. + useEffect(() => { + writeChecklistDefaults({ + comparativeTextIds: comparativeTexts.map((ref) => ref.id), + hideMatches, + showVerseText, + equivalentMarkers, + markerFilter, + }).catch(() => { + // Already logged inside the hook; swallow here to keep the effect total. + }); + }, [ + comparativeTexts, + hideMatches, + showVerseText, + equivalentMarkers, + markerFilter, + writeChecklistDefaults, + ]); + // ─── Localization ───────────────────────────────────────────────────────── const checklistStringKeys = useMemo(() => Array.from(CHECKLIST_STRING_KEYS), []); @@ -229,34 +331,6 @@ global.webViewComponent = function ChecklistWebView({ Record >({}); - // ─── Primary project short name (for the toolbar trigger label) ────────── - - const [primaryProjectName, setPrimaryProjectName] = useState(''); - useEffect(() => { - if (!projectId) { - setPrimaryProjectName(''); - return () => {}; - } - let cancelled = false; - (async () => { - try { - const pdp = await papi.projectDataProviders.get('platform.base', projectId); - const name = (await pdp.getSetting('platform.name')) ?? projectId; - if (!cancelled) setPrimaryProjectName(name); - } catch (err) { - if (!cancelled) { - logger.warn( - `ChecklistWebView: failed to read platform.name for ${projectId}: ${getErrorMessage(err)}`, - ); - setPrimaryProjectName(projectId); - } - } - })(); - return () => { - cancelled = true; - }; - }, [projectId]); - // ─── Books-present for ScopeSelector ────────────────────────────────────── const [booksPresent, setBooksPresent] = useState( '0'.repeat(124), // 124 books per BookSet — empty default until project setting resolves @@ -497,7 +571,16 @@ global.webViewComponent = function ChecklistWebView({ return formatReplacementString(template, { count: String(excluded) }); }, [hideMatches, data?.excludedCount, localizedStrings]); - // ─── Tab menu data via menuData provider ────────────────────────────────── + // UX-2 finding #1 (WP3) + #12 (WP6): the inner TabToolbar was removed because the outer + // The outer Platform.Bible tab chrome is hidden for this web view (shouldShowToolbar=false + // on the provider), so the inner TabToolbar inside ChecklistTool hosts the hamburger menu + // directly. We fetch its menu data here and dispatch selected items through PAPI; the + // command handlers in main.ts emit the same CHECKLIST_COPY_REQUEST_EVENT / + // CHECKLIST_OPEN_SETTINGS_EVENT network events that the renderer subscribes to below — so + // dispatch from inside the web view goes through the same plumbing the outer chrome would + // have used. + + // ─── Tab menu data via menuData provider ───────────────────────────────── const [webViewMenuPossiblyError] = useData(papi.menuData.dataProviderName).WebViewMenu( MARKERS_CHECKLIST_WEB_VIEW_TYPE, @@ -515,48 +598,23 @@ global.webViewComponent = function ChecklistWebView({ return webViewMenuPossiblyError; }, [webViewMenuPossiblyError]); - // ─── Subscribe to the "open settings" network event (UI-PKG-003) ───────── - - const handleOpenSettingsEvent = useCallback(() => { - setIsSettingsOpen(true); - }, []); - useEvent( - network.getNetworkEvent(CHECKLIST_OPEN_SETTINGS_EVENT), - handleOpenSettingsEvent, - ); - - // ─── Project-menu item selection handler ────────────────────────────────── + // ─── Project-menu item dispatch ────────────────────────────────────────── // // Items defined in `extensions/src/platform-scripture/contributions/menus.json` for - // `platformScripture.markersChecklist`'s top menu fire here. Most items dispatch via - // `papi.commands.sendCommand` (so future contributions from other extensions wire - // automatically), but we intercept `platformScripture.copyMarkersChecklist` locally because - // the copy action operates on the live web-view's visible data — there's no point in routing - // it through PAPI just to send the result back. + // `platformScripture.markersChecklist`'s top menu fire here. All dispatch via + // `papi.commands.sendCommand` (no local intercepts) — the Copy command in main.ts emits + // CHECKLIST_COPY_REQUEST_EVENT, which this web view subscribes to below for the actual + // clipboard write. Settings, Print, Save, Markers Inventory route through their registered + // command handlers unchanged. const handleSelectProjectMenuItem = useCallback( (selectedMenuItem: { [key: string]: unknown; command: string }) => { const { command } = selectedMenuItem; if (!command) return; - // Local intercept: copy operates on the live web-view's visible rows; routing through PAPI - // would just round-trip and come back. Build the clipboard text inline here using the - // current `visibleData` snapshot. - if (command === 'platformScripture.copyMarkersChecklist') { - if (!visibleData) return; - const clipboardText = buildClipboardText(visibleData.columnHeaders, visibleData.rows); - navigator.clipboard.writeText(clipboardText).catch((err) => { - logger.warn(`ChecklistWebView: clipboard write failed: ${getErrorMessage(err)}`); - }); - return; - } - // Other commands (e.g. `platformScripture.openMarkersChecklistSettings`) route via PAPI. - // The registered handler in main.ts emits CHECKLIST_OPEN_SETTINGS_EVENT, which this web - // view picks up via `useEvent` above to open the dialog. papi.commands // The PAPI sendCommand type requires a registered command-name literal union. Menu items - // contain arbitrary registered command names at runtime, so we intentionally widen via a - // cast to `Parameters<...>[0]` mirroring the editor's pattern. A runtime-validated dispatch - // wrapper would be overkill here. + // carry arbitrary registered command names at runtime, so we intentionally widen via the + // editor's pattern. A runtime-validated dispatch wrapper would be overkill here. // eslint-disable-next-line no-type-assertion/no-type-assertion .sendCommand(command as Parameters[0]) .catch((err) => @@ -565,7 +623,91 @@ global.webViewComponent = function ChecklistWebView({ ), ); }, - [visibleData], + [], + ); + + // ─── Subscribe to the "open settings" network event (UI-PKG-003) ───────── + + const handleOpenSettingsEvent = useCallback(() => { + setIsSettingsOpen(true); + }, []); + useEvent( + network.getNetworkEvent(CHECKLIST_OPEN_SETTINGS_EVENT), + handleOpenSettingsEvent, + ); + + // ─── Subscribe to the "copy to clipboard" network event (UX-2 #12, WP6) ─── + // + // Outer-chrome menu dispatch passes only the command name + tab id, so the live `visibleData` + // never crosses the process boundary. Keeping the clipboard write here means the snapshot + // matches exactly what the user sees (post-`hideMatches` filter), and the navigator.clipboard + // call runs in the renderer where it's allowed. + + const handleCopyRequestEvent = useCallback(() => { + if (!visibleData) return; + const clipboardText = buildClipboardText(visibleData.columnHeaders, visibleData.rows); + (async () => { + let didWrite = false; + try { + // Outer-chrome menu dispatch leaves focus on the main-frame menu, not on this iframe, so + // `navigator.clipboard.writeText` rejects with "Document is not focused". Pulling focus + // back to the iframe's window first lets the async-clipboard path succeed. + window.focus(); + await navigator.clipboard.writeText(clipboardText); + didWrite = true; + } catch (err) { + logger.debug( + `ChecklistWebView: async clipboard write failed (${getErrorMessage(err)}); falling back to execCommand`, + ); + } + if (!didWrite) { + // Fallback for environments where the iframe still can't take focus in time (older + // Chromium, headless test harness): drop into the synchronous selection-based copy path. + // `execCommand('copy')` works as long as a selection is active, so we create a hidden + // textarea, select it, copy, and tear it down. Synchronous + side-effect-free. + try { + const textarea = document.createElement('textarea'); + textarea.value = clipboardText; + textarea.setAttribute('readonly', ''); + textarea.style.position = 'fixed'; + textarea.style.top = '0'; + textarea.style.left = '0'; + textarea.style.opacity = '0'; + textarea.style.pointerEvents = 'none'; + document.body.appendChild(textarea); + textarea.focus(); + textarea.select(); + // execCommand('copy') is deprecated but remains the only synchronous fallback for + // cross-frame copies when the async clipboard API is unreachable (focus issues). The + // deprecation guidance is "use the async API where possible" — which is exactly what + // we tried in the primary path above. + didWrite = document.execCommand('copy'); + document.body.removeChild(textarea); + } catch (err) { + logger.warn( + `ChecklistWebView: execCommand clipboard fallback failed: ${getErrorMessage(err)}`, + ); + } + } + if (!didWrite) { + logger.warn('ChecklistWebView: clipboard write failed via both async and fallback paths'); + return; + } + try { + // Severity `info` triggers a non-blocking Sonner toast in the renderer's mounted + // . The message is a localize-key — NotificationService auto-localizes it. + await papi.notifications.send({ + severity: 'info', + message: '%markersChecklist_copy_success%', + }); + } catch (err) { + logger.debug(`ChecklistWebView: copy-success notification failed: ${getErrorMessage(err)}`); + } + })(); + }, [visibleData]); + useEvent( + network.getNetworkEvent(CHECKLIST_COPY_REQUEST_EVENT), + handleCopyRequestEvent, ); // ─── Comparative-texts picker via real ProjectSelector (draft PR #2223) ──── @@ -614,11 +756,24 @@ global.webViewComponent = function ChecklistWebView({ useMemo(() => [], []), ); + // UX-2 finding #14: bidirectional exclusion. The comparative selector hides the currently + // selected primary; the primary selector (below) hides every project already chosen as a + // comparative. Filter rules live in `checklist-project-filter.utils.ts` with their own unit + // tests so the rule can't regress silently. const comparativeProjects = useMemo( - () => allProjects.filter((p) => p.id !== projectId), + () => filterComparativeProjects(allProjects, projectId), [allProjects, projectId], ); + const primaryProjects = useMemo( + () => + filterPrimaryProjects( + allProjects, + comparativeTexts.map((ref) => ref.id), + ), + [allProjects, comparativeTexts], + ); + // Comparative-texts ProjectSelector tracks ALL project-bound tabs (no webViewType filter). // The shared `useOpenProjectTabs` hook (introduced for goto-focus tracking) returns a richer // shape with webViewId + webViewType; map back to the lighter ProjectSelectorOpenTab shape that @@ -666,16 +821,49 @@ global.webViewComponent = function ChecklistWebView({ selection={comparativeSelection} onChangeSelection={handleComparativeTextsChange} buttonClassName="tw:h-8 tw:min-w-32 tw:font-normal" + // UX-2 finding #6: show a placeholder when no comparatives are + // selected. The tooltip on the trigger carries the full hint on hover. + buttonPlaceholder={ + localizedStrings['%markersChecklist_toolbar_comparativeTextsPlaceholder%'] ?? + 'Select comparative texts' + } + ariaLabel={localizedStrings['%markersChecklist_toolbar_comparativeTexts%']} + // UX-2 finding #6: hide the "Select all" button. Selecting every project + // as a comparative text is rarely useful and creates accidental wide + // queries. + hideSelectAll /> ), - [comparativeProjects, comparativeOpenTabs, comparativeSelection, handleComparativeTextsChange], + [ + comparativeProjects, + comparativeOpenTabs, + comparativeSelection, + handleComparativeTextsChange, + localizedStrings, + ], ); // ─── ScopeSelector handlers (R1: snapshot at click-time) ───────────────── const handleScopeChange = useCallback( (newScope: ScopeWithRange) => { + // The "Choose specific books" scope (selectedBooks) is surfaced in the dropdown to match + // PR #2212's Dropdown Variant design, but the backend's ChecklistRequest.verseRange only + // models a contiguous start/end ScriptureRange — non-contiguous book sets aren't yet + // supported end-to-end. Surface a Sonner toast and DON'T commit the scope change so the + // checklist falls back to whatever scope was previously active. + if (newScope === 'selectedBooks') { + papi.notifications + .send({ + severity: 'info', + message: '%markersChecklist_selectedBooks_notImplemented%', + }) + .catch((err) => + logger.debug(`ChecklistWebView: selectedBooks toast failed: ${getErrorMessage(err)}`), + ); + return; + } // Auto-follow: verseRange is derived via the effect below from {scope, liveScrRef, // rangeStart, rangeEnd}. handleScopeChange just commits the new mode. setScope(newScope); @@ -762,10 +950,6 @@ global.webViewComponent = function ChecklistWebView({ setIsSettingsOpen(false); }, []); - // ─── Derived label for the primary-project selector buttonPlaceholder ──── - - const primaryProjectLabel = primaryProjectName; - // ─── Primary-project picker via real ProjectSelector (Theme 5 #2) ───────── // // Single-select picker. On change, retargets the checklist to a new project via @@ -777,28 +961,22 @@ global.webViewComponent = function ChecklistWebView({
updateWebViewDefinition({ projectId: next.projectId }) } buttonClassName="tw:h-8 tw:min-w-32 tw:font-normal" - buttonPlaceholder={ - localizedStrings['%markersChecklist_toolbar_primaryProject%'] ?? primaryProjectLabel - } + // UX-2 finding #5: drop the truncating "Select primary S..." placeholder. + // When a project is selected the short name fills the trigger; when none + // is selected the trigger stays empty and the aria-label / tooltip carries + // the localized hint instead. ariaLabel={localizedStrings['%markersChecklist_toolbar_primaryProject%']} />
), - [ - allProjects, - comparativeOpenTabs, - projectId, - updateWebViewDefinition, - localizedStrings, - primaryProjectLabel, - ], + [primaryProjects, comparativeOpenTabs, projectId, updateWebViewDefinition, localizedStrings], ); // ─── Auto-follow effect: recompute verseRange when scope or liveScrRef changes ──── @@ -838,13 +1016,23 @@ global.webViewComponent = function ChecklistWebView({ ); -}; +} diff --git a/extensions/src/platform-scripture/src/components/checklist-project-filter.utils.test.ts b/extensions/src/platform-scripture/src/components/checklist-project-filter.utils.test.ts new file mode 100644 index 00000000000..ffdc302afae --- /dev/null +++ b/extensions/src/platform-scripture/src/components/checklist-project-filter.utils.test.ts @@ -0,0 +1,56 @@ +import { describe, it, expect } from 'vitest'; +import type { ProjectSelectorProject } from 'platform-bible-react'; +import { filterComparativeProjects, filterPrimaryProjects } from './checklist-project-filter.utils'; + +const proj = (id: string): ProjectSelectorProject => ({ + id, + shortName: id, + fullName: id, + language: undefined, +}); + +describe('filterComparativeProjects', () => { + it('excludes the primary project from the comparative list', () => { + const all = [proj('A'), proj('B'), proj('C')]; + const result = filterComparativeProjects(all, 'B'); + expect(result.map((p) => p.id)).toEqual(['A', 'C']); + }); + + it('returns all projects when no primary is selected', () => { + const all = [proj('A'), proj('B')]; + const result = filterComparativeProjects(all, undefined); + expect(result.map((p) => p.id)).toEqual(['A', 'B']); + }); + + it('returns the full list when the primary id is unknown', () => { + const all = [proj('A'), proj('B')]; + const result = filterComparativeProjects(all, 'ZZ'); + expect(result.map((p) => p.id)).toEqual(['A', 'B']); + }); +}); + +describe('filterPrimaryProjects', () => { + it('excludes every selected comparative from the primary list', () => { + const all = [proj('A'), proj('B'), proj('C'), proj('D')]; + const result = filterPrimaryProjects(all, ['B', 'D']); + expect(result.map((p) => p.id)).toEqual(['A', 'C']); + }); + + it('returns the full list when no comparatives are selected', () => { + const all = [proj('A'), proj('B')]; + const result = filterPrimaryProjects(all, []); + expect(result.map((p) => p.id)).toEqual(['A', 'B']); + }); + + it('treats an unknown comparative id as a no-op', () => { + const all = [proj('A'), proj('B')]; + const result = filterPrimaryProjects(all, ['ZZ']); + expect(result.map((p) => p.id)).toEqual(['A', 'B']); + }); + + it('handles duplicate comparative ids without crashing', () => { + const all = [proj('A'), proj('B')]; + const result = filterPrimaryProjects(all, ['A', 'A']); + expect(result.map((p) => p.id)).toEqual(['B']); + }); +}); diff --git a/extensions/src/platform-scripture/src/components/checklist-project-filter.utils.ts b/extensions/src/platform-scripture/src/components/checklist-project-filter.utils.ts new file mode 100644 index 00000000000..7705fc0ae06 --- /dev/null +++ b/extensions/src/platform-scripture/src/components/checklist-project-filter.utils.ts @@ -0,0 +1,35 @@ +import type { ProjectSelectorProject } from 'platform-bible-react'; + +/** + * Returns the list of projects eligible to appear in the Markers Checklist's **comparative-texts** + * dropdown. Excludes the currently selected primary project (the user can't compare a project + * against itself — UX-2 finding #14). + * + * @param allProjects All scripture projects discovered via `papi.projectLookup`. + * @param primaryProjectId The currently selected primary project id, or `undefined` when none is + * selected. + */ +export function filterComparativeProjects( + allProjects: readonly ProjectSelectorProject[], + primaryProjectId: string | undefined, +): ProjectSelectorProject[] { + if (primaryProjectId === undefined) return [...allProjects]; + return allProjects.filter((p) => p.id !== primaryProjectId); +} + +/** + * Returns the list of projects eligible to appear in the Markers Checklist's **primary** project + * dropdown. Excludes every project currently selected as a comparative text (UX-2 finding #14; + * bidirectional exclusion paired with {@link filterComparativeProjects}). + * + * @param allProjects All scripture projects discovered via `papi.projectLookup`. + * @param comparativeProjectIds Ids of the currently selected comparative texts. + */ +export function filterPrimaryProjects( + allProjects: readonly ProjectSelectorProject[], + comparativeProjectIds: readonly string[], +): ProjectSelectorProject[] { + if (comparativeProjectIds.length === 0) return [...allProjects]; + const excluded = new Set(comparativeProjectIds); + return allProjects.filter((p) => !excluded.has(p.id)); +} diff --git a/extensions/src/platform-scripture/src/components/checklist-usfm-styles.scss b/extensions/src/platform-scripture/src/components/checklist-usfm-styles.scss new file mode 100644 index 00000000000..a2fbec03cf8 --- /dev/null +++ b/extensions/src/platform-scripture/src/components/checklist-usfm-styles.scss @@ -0,0 +1,135 @@ +/* stylelint-disable selector-class-pattern, rule-empty-line-before */ +/* USFM character-style classes used by the Markers Checklist when "Show verse + * text" is on. These mirror the character-style subset of + * `extensions/src/platform-scripture-editor/src/_usj-nodes.scss` so we render + * `\nd`, `\wj`, `\em`, `\w`, etc. with sensible styling instead of literal + * `(\nd Lord)` text. + * + * TODO(post-merge): promote `_usj-nodes.scss` (or its character-style subset) + * to `lib/platform-bible-react/src/styles/` so both extensions consume one + * source of truth. Tracked in markers-checklist UX-2 design. + * + * Scope: only character-style classes from _usj-nodes.scss. Paragraph indent + * classes (q1, q2, ...) live in checklist.component.tsx's marker-indent helper + * because _usj-nodes.scss uses viewport-relative `vw` units that don't + * transfer cleanly to a table cell context (see existing comment in + * checklist.component.tsx). + * + * Loading: this file is imported via `?inline` in `checklist.web-view-provider.ts` + * and concatenated with the tailwind styles passed to PAPI. The extension's + * webpack rule for `*.scss` uses sass-loader + postcss-loader only (no + * style-loader), so a bare `import './file.scss'` in the component would NOT + * inject styles into the DOM. + */ + +.checklist-formatted-font .usfm_nd { + font-size: 100%; + text-decoration: underline; +} +.checklist-formatted-font .usfm_tl { + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_dc { + font-style: italic; +} +.checklist-formatted-font .usfm_bk { + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_sig { + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_pn { + font-weight: bold; + font-size: 100%; + text-decoration: underline; +} +.checklist-formatted-font .usfm_png { + font-size: 100%; + text-decoration: underline; +} +.checklist-formatted-font .usfm_addpn { + font-weight: bold; + font-size: 100%; + font-style: italic; + text-decoration: underline; +} +.checklist-formatted-font .usfm_wj { + color: #d43128; + font-size: 100%; +} +.checklist-formatted-font .usfm_k { + font-weight: bold; + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_sls { + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_ord { + vertical-align: text-top; + font-size: 66%; +} +.checklist-formatted-font .usfm_add { + font-weight: bold; + font-style: italic; +} +.checklist-formatted-font .usfm_no { + font-size: 100%; +} +.checklist-formatted-font .usfm_it { + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_bd { + font-weight: bold; + font-size: 100%; +} +.checklist-formatted-font .usfm_bdit { + font-weight: bold; + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_em { + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_sc { + font-size: 100%; + font-variant: small-caps; +} +.checklist-formatted-font .usfm_sup { + vertical-align: text-top; + font-size: 66%; +} +.checklist-formatted-font .usfm_jmp { + color: #003380; + text-decoration: underline; +} +.checklist-formatted-font .usfm_pro { + font-size: 83%; +} +/* Word-list family (\w, \wh, \wg, \wa) — neutral by default; the dotted + * underline cue is added here so users recognise tagged words at a glance. */ +.checklist-formatted-font .usfm_w, +.checklist-formatted-font .usfm_wh, +.checklist-formatted-font .usfm_wg, +.checklist-formatted-font .usfm_wa { + font-size: 100%; + text-decoration: underline dotted; + text-decoration-thickness: 1px; + text-underline-offset: 2px; +} +.checklist-formatted-font .usfm_qt { + font-size: 100%; + font-style: italic; +} +.checklist-formatted-font .usfm_qac { + font-style: italic; +} +.checklist-formatted-font .usfm_qs { + font-style: italic; +} diff --git a/extensions/src/platform-scripture/src/components/checklist.component.test.tsx b/extensions/src/platform-scripture/src/components/checklist.component.test.tsx new file mode 100644 index 00000000000..05b2ebc75bd --- /dev/null +++ b/extensions/src/platform-scripture/src/components/checklist.component.test.tsx @@ -0,0 +1,206 @@ +// @vitest-environment jsdom +import { describe, it, expect, vi } from 'vitest'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { ChecklistTool } from './checklist.component'; +import type { ChecklistData, ChecklistRow } from './checklist.types'; + +// UX-2 regression tests for two of the WP2 fixes that are practical to assert in unit tests: +// - #19: character-style text items render inside a `` rather +// than as literal "(\nd Lord)" text. +// - #16: verse-number items render as click-to-navigate buttons when `onGotoLinkClick` is +// provided, falling back to plain `` superscripts otherwise. +// +// We skip RTL tests for #15 (visual is the more direct assertion) and #17 (jsdom focus assertions +// are flaky against Radix's focus-trap timing — the visual verification step covers it). + +const makeRow = (overrides: Partial = {}): ChecklistRow => ({ + cells: [ + { + paragraphs: [ + { + marker: 'p', + items: [ + { type: 'text', text: 'Then the ' }, + { type: 'text', text: 'Lord', characterStyle: 'nd' }, + { type: 'verse', verseNumber: '5' }, + { type: 'text', text: ' planted.' }, + ], + }, + ], + reference: 'GEN 2:8', + displayedReference: 'GEN 2:8', + language: 'en', + error: undefined, + }, + ], + isMatch: false, + includeEditLink: false, + firstRef: 'GEN 2:8', + ...overrides, +}); + +const baseData: ChecklistData = { + rows: [makeRow()], + columnHeaders: ['ESVUS16'], + columnProjectIds: ['esvus16-id'], + excludedCount: 0, + truncated: false, + emptyResultMessage: undefined, +}; + +describe('ChecklistTool — character-style rendering (UX-2 #19)', () => { + it('renders character-style text in a , not as literal "(\\nd ...)"', () => { + render( + {}} + onShowVerseTextChange={() => {}} + />, + ); + + const lord = screen.getByText('Lord'); + expect(lord.className).toContain('usfm_nd'); + expect(lord.getAttribute('data-character-style')).toBe('nd'); + // Negative assertion: no parenthesised "(\nd Lord)" text anywhere — that was the old behavior. + expect(screen.queryByText((text) => text.includes('(\\nd'))).toBeNull(); + }); + + it('renders plain text items in a neutral foreground span (no usfm class)', () => { + render( + {}} + onShowVerseTextChange={() => {}} + />, + ); + + // RTL's getByText normalizes whitespace by default, so match the trimmed text. + const planted = screen.getByText('planted.'); + expect(planted.className).not.toMatch(/usfm_/); + // The neutral span should still carry the tw:text-foreground class (not a usfm_* class). + expect(planted.className).toContain('tw:text-foreground'); + }); +}); + +describe('ChecklistTool — match-row coloring (UX-2 #15)', () => { + it('applies a subtle tw:bg-primary/20 tint to the row when row.isMatch is true', () => { + // The first fix attempt (3b8b99b8c2) put the bg on inner cell containers and tried to bleed + // it past TableCell's `tw:p-4` with negative margins — visually the bg only covered the + // text area, not the full cell rectangle (Rolf-reported). This iteration applies the bg + // class to the `` via DataTable's `getRowClassName` prop, so every `` inherits the + // tint via the row-level paint. tw:bg-primary/20 (down from /30) reads as a subtle hint + // without competing with content. No text-color override — inner spans keep their default + // colors so contrast stays readable in both light and dark modes. + const matchRowData: ChecklistData = { + ...baseData, + rows: [makeRow({ isMatch: true })], + }; + render( + {}} + onShowVerseTextChange={() => {}} + onGotoLinkClick={() => {}} + />, + ); + + // The bg is on the `` itself (via DataTable's getRowClassName). We locate the row by + // walking up from the reference cell's testid (the cell content lives inside that row). + const refCell = screen.getByTestId('checklist-reference-cell'); + const row = refCell.closest('tr'); + expect(row).not.toBeNull(); + expect(row?.className).toContain('tw:bg-primary/20'); + // The inner cell content should NOT carry the bg (single source of truth — the row). + expect(refCell.className).not.toContain('tw:bg-primary'); + // And the obsolete text-color override from WP2 should be absent everywhere. + expect(row?.className).not.toContain('tw:text-primary-foreground'); + expect(refCell.className).not.toContain('tw:text-primary-foreground'); + }); + + it('does NOT apply tw:bg-primary/20 to the row when row.isMatch is false', () => { + render( + {}} + onShowVerseTextChange={() => {}} + onGotoLinkClick={() => {}} + />, + ); + + const refCell = screen.getByTestId('checklist-reference-cell'); + const row = refCell.closest('tr'); + expect(row).not.toBeNull(); + expect(row?.className).not.toContain('tw:bg-primary'); + expect(refCell.className).not.toContain('tw:bg-primary'); + }); +}); + +describe('ChecklistTool — verse-number goto links (UX-2 #16)', () => { + it('renders verse items as buttons when onGotoLinkClick is provided', () => { + const onGotoLinkClick = vi.fn(); + render( + {}} + onShowVerseTextChange={() => {}} + onGotoLinkClick={onGotoLinkClick} + />, + ); + + const verseBtn = screen.getByTestId('checklist-verse-goto'); + expect(verseBtn.tagName).toBe('BUTTON'); + }); + + it('calls onGotoLinkClick with the reconstructed "GEN 2:5" verse ref when clicked', async () => { + const onGotoLinkClick = vi.fn(); + const user = userEvent.setup(); + render( + {}} + onShowVerseTextChange={() => {}} + onGotoLinkClick={onGotoLinkClick} + />, + ); + + await user.click(screen.getByTestId('checklist-verse-goto')); + expect(onGotoLinkClick).toHaveBeenCalledTimes(1); + expect(onGotoLinkClick.mock.calls[0][1]).toBe('GEN 2:5'); + }); + + it('falls back to plain when no onGotoLinkClick is provided', () => { + render( + {}} + onShowVerseTextChange={() => {}} + />, + ); + + expect(screen.queryByTestId('checklist-verse-goto')).toBeNull(); + // The verse number still renders as text — it's now a plain superscript. + expect(screen.getByText('5').tagName).toBe('SUP'); + }); +}); diff --git a/extensions/src/platform-scripture/src/components/checklist.component.tsx b/extensions/src/platform-scripture/src/components/checklist.component.tsx index 538f859336f..81afd4ad6fb 100644 --- a/extensions/src/platform-scripture/src/components/checklist.component.tsx +++ b/extensions/src/platform-scripture/src/components/checklist.component.tsx @@ -5,16 +5,18 @@ import { Button, ColumnDef, DataTable, + DropdownMenu, + DropdownMenuCheckboxItem, + DropdownMenuContent, + DropdownMenuTrigger, LinkedScrRefButton, TabToolbar, - ToggleGroup, - ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from 'platform-bible-react'; -import { AlertTriangle, Book, BookOpen, Eye, EyeOff, Pencil, X } from 'lucide-react'; +import { AlertTriangle, Eye, Pencil, X } from 'lucide-react'; import { useCallback, useMemo, useState, type CSSProperties } from 'react'; import type { ChecklistCell, @@ -79,6 +81,17 @@ function getMarkerIndentStyle(marker: string): CSSProperties { return { marginInlineStart: `${(level - 1) * MARKER_INDENT_REM_PER_LEVEL}rem` }; } +// ---------- Match-row visual treatment ---------- +// +// UX-2 finding #15: rows whose cells share a value across all projects ("matches") get a subtle +// primary-color background tint so users can quickly scan past them. The tint is applied to the +// `` itself via DataTable's `getRowClassName` prop — this paints the bg behind every `` +// in the row, so the colored region truly fills each cell from edge to edge. (The earlier +// per-cell approach with `tw:-m-4 tw:px-6 tw:py-6` only colored the content area, not the full +// cell rectangle — see commit 3b8b99b8c2.) The 30% opacity proved too loud; 20% reads as a hint +// without competing with the content. +const MATCH_ROW_BG_CLASS = 'tw:bg-primary/20'; + // ---------- Small presentational sub-components ---------- /** @@ -91,13 +104,43 @@ type ParagraphRowProps = { showVerseText: boolean; /** * Localized template for the marker aria-label, with `{marker}` placeholder. The parent resolves - * this once via `getLocalizedString('%markersChecklist_marker_aria%')` and passes it down so the + * this once via `getLocalizedString(markersChecklist_marker_aria)` and passes it down so the * sub-component (defined at module scope) doesn't need access to the localization helper. */ markerAriaTemplate: string; + /** + * Localized template for the goto-link aria-label / tooltip, with `{ref}` placeholder. Passed + * down so per-verse goto buttons (UX-2 finding #16) can announce the destination reference. + */ + gotoAriaTemplate: string; + /** + * Owning cell's anchor reference (e.g. `LUK 1:0`) — provides the book + chapter context for + * wrapping individual verse-number items into goto links (UX-2 finding #16). + */ + cellReference: string; + /** + * Optional goto callback. When provided, verse-number items render as click-to-navigate buttons. + * When absent (read-only contexts), verse numbers render as plain superscripts. + */ + onGotoVerseClick?: (verseRef: string) => void; }; -function ParagraphRow({ paragraph, showVerseText, markerAriaTemplate }: ParagraphRowProps) { +function ParagraphRow({ + paragraph, + showVerseText, + markerAriaTemplate, + gotoAriaTemplate, + cellReference, + onGotoVerseClick, +}: ParagraphRowProps) { + // UX-2 finding #16: derive the book+chapter prefix from the owning cell's reference so each + // verse-item button can announce/navigate to its own `{book} {chapter}:{verseNumber}`. The + // cell's reference is anchored at the cell's first verse (e.g. `LUK 1:0`), but only the + // `book chapter:` prefix is needed here. If the reference is malformed (no colon), fall back + // to the raw value so the button still receives some context. + const cellRefPrefix = cellReference.includes(':') + ? cellReference.slice(0, cellReference.indexOf(':')) + : cellReference; return (
- {`(\\${item.characterStyle} ${item.text.trim()})`} + {item.text} ); } @@ -137,6 +184,25 @@ function ParagraphRow({ paragraph, showVerseText, markerAriaTemplate }: Paragrap ); } if (item.type === 'verse') { + // UX-2 finding #16: when a goto handler is provided, render each verse number as a + // click-to-navigate link. Without a handler we keep the plain superscript fallback + // (read-only contexts, e.g. Storybook stories without a goto callback wired). + const verseRef = `${cellRefPrefix}:${item.verseNumber}`; + if (onGotoVerseClick) { + return ( + + ); + } return ( {item.verseNumber} @@ -188,9 +254,20 @@ type CellContentProps = { dir?: 'ltr' | 'rtl' | undefined; /** Localized template for the per-paragraph marker aria-label (with `{marker}` placeholder). */ markerAriaTemplate: string; + /** Localized template for the per-verse-number goto link (with `{ref}` placeholder). */ + gotoAriaTemplate: string; + /** Optional verse-number goto callback (UX-2 #16). */ + onGotoVerseClick?: (verseRef: string) => void; }; -function CellContent({ cell, showVerseText, dir, markerAriaTemplate }: CellContentProps) { +function CellContent({ + cell, + showVerseText, + dir, + markerAriaTemplate, + gotoAriaTemplate, + onGotoVerseClick, +}: CellContentProps) { if (cell.error) { return {cell.error}; } @@ -201,8 +278,11 @@ function CellContent({ cell, showVerseText, dir, markerAriaTemplate }: CellConte ); } + // The outer `checklist-formatted-font` class is the parent selector for the `.usfm_{marker}` + // character-style rules defined in `checklist-usfm-styles.scss` (UX-2 finding #19). Without + // it, the character-style rules don't match and items would render unstyled. return ( -
+
{cell.paragraphs.map((paragraph, paragraphIndex) => ( ))}
@@ -241,13 +324,21 @@ function ColumnHeaderWithTooltip({ - wrapper below, applied to directly so the + * table-fixed layout honors them. + */} +
{shortName} - +
{displayFullName}
@@ -260,10 +351,12 @@ function ColumnHeaderWithTooltip({ /** * Pure presentational Markers Checklist tool (SCR-001). * - * Composes a `TabToolbar` (with three selector-trigger stand-ins, an eye-icon ToggleGroup for the - * view toggles, a match-count live region, and the project menu hamburger hosting Copy + Settings) - * above a shared `DataTable` rendered with dynamic columns. A destructive-variant `Alert` replaces - * the help-text banner when `error` is non-null (T-R-2). + * Composes a single sticky toolbar row (with three selector-trigger stand-ins, an eye-icon + * ToggleGroup for the view toggles, and a match-count live region) above a shared `DataTable` + * rendered with dynamic columns. The outer Platform tab chrome's hamburger hosts our menu items + * (Open Project Settings, Copy, Settings) via WebViewMenu contributions — see WP6 (UX-2 finding #1: + * dropped the inner duplicate TabToolbar that previously surfaced the same hamburger items). A + * destructive-variant `Alert` replaces the help-text banner when `error` is non-null (T-R-2). * * **Architecture**: zero PAPI coupling. All data flows through props; the component never touches * `useWebViewState`, `useData`, `useDataProvider`, or any `papi.*` API. Visibility, loading, error, @@ -346,7 +439,10 @@ export function ChecklistTool({ // `.claude/rules/code-quality/eslint-disable-discipline.md`. // eslint-disable-next-line react/no-unstable-nested-components header: () => ( - + {/* The Ref column header is intentionally unlabeled in the spec — it's axis metadata rather than a project column — so we render a visually-hidden label for accessibility. BHV-111 requires every row to carry a firstRef, which doubles as the row header. */} @@ -360,13 +456,18 @@ export function ChecklistTool({ cell: ({ row: tableRow }) => { const rowData = tableRow.original; const ref = rowData.firstRef ?? ''; + // UX-2 finding #15: match rows receive a subtle primary-color tint at the row level + // (applied via DataTable's `getRowClassName` prop below — see `MATCH_ROW_BG_CLASS`). + // The row-level bg paints behind every `` in the row, so the colored region fills + // each cell edge-to-edge. Cell content here keeps its default padding/typography. + const containerClass = 'tw:block tw:px-2 tw:py-2'; // Sebastian PR #2219 #3137366113: "Make the scripture reference in the first column a // link button with the tooltip 'Go to {scrRef}' instead of the goto button". When a // goto callback is provided, render the ref as a `LinkedScrRefButton`; otherwise fall // back to plain text (read-only contexts). if (ref && onGotoLinkClick) { return ( - + onGotoLinkClick(rowData, ref)} @@ -381,7 +482,10 @@ export function ChecklistTool({ ); } return ( - + {ref} ); @@ -398,13 +502,11 @@ export function ChecklistTool({ // TanStack Table `header` render fn — not a React component; see rationale above. // eslint-disable-next-line react/no-unstable-nested-components header: () => ( -
- -
+ ), // TanStack Table `cell` render fn — not a React component; see rationale above. // eslint-disable-next-line react/no-unstable-nested-components @@ -418,6 +520,9 @@ export function ChecklistTool({
); } + // UX-2 finding #15: match rows receive a subtle primary-color tint at the row level + // (see `MATCH_ROW_BG_CLASS` and the `getRowClassName` prop on DataTable). The row- + // level bg paints behind every ``, so cell content keeps its default classes. return (
onGotoLinkClick(rowData, verseRef) : undefined + } /> {/* * Edit link: per Sebastian PR #2219 #3137862427 ("we are here to design a @@ -479,101 +588,68 @@ export function ChecklistTool({ [onShowVerseTextChange], ); - const handleProjectMenuSelect = useCallback>( - (selectedMenuItem) => { - if (onSelectProjectMenuItem) { - return onSelectProjectMenuItem(selectedMenuItem); - } - return undefined; - }, - [onSelectProjectMenuItem], - ); - // ----- Render helpers ----- + // TabToolbar's start/end area divs use `tw:items-start`, which top-aligns children — while the + // container itself uses `tw:items-center`. The hamburger (a direct container child) is therefore + // vertically centered against the 56px toolbar height, but our selectors / view-menu trigger + // (children of the area divs) end up top-aligned, creating a visible misalignment. Wrapping each + // render in our own `tw:h-full tw:items-center` flex restores horizontal alignment across the + // hamburger + selectors + view-menu trigger without touching the shared TabToolbar component. const renderToolbarStart = () => ( - <> +
{primaryProjectSelector} {comparativeTextsSelector} {verseRangeSelector} - +
); const renderToolbarEnd = () => ( - <> +
{/* - * View toggles as inline ToggleGroup (per Sebastian PR #2219 #3137366113: "View menu should - * be an eye icon toggle group button"). Each toggle uses a distinct icon family so the two - * buttons are recognizable at a glance, and each swaps between an "on" and "off" variant so - * the current state is legible even before the active-background highlight is read: - * - Hide Matches uses `Eye` (matches visible) ↔ `EyeOff` (matches hidden). - * - Show Verse Text uses `BookOpen` (text visible) ↔ `Book` (text hidden — closed book). - * Tooltips supply the accessible label/description without crowding the toolbar with text. - * - * `type="multiple"` allows both toggles to be active independently. The - * `value` array reflects which toggles are currently on; we map onValueChange to two - * distinct handlers so each persisted slot is updated correctly. + * UX-2 finding #8: View toggles now live behind a single eye-icon + * DropdownMenu button. Two checkbox items: Hide matches (disabled when + * <=1 column) + Show verse text. The icon does not change with state — + * the checkbox marks inside the menu show current state. Tooltip names + * the button "View" for the accessible label. */} - { - const nextHide = isHideMatchesEnabled && next.includes('hideMatches'); - const nextShow = next.includes('showVerseText'); - if (nextHide !== hideMatches) handleHideMatchesChange(nextHide); - if (nextShow !== showVerseText) handleShowVerseTextChange(nextShow); - }} - variant="outline" - aria-label={getLocalizedString('%markersChecklist_toolbar_view%')} - > + - - {/* Icon swaps with state: when matches are hidden, show EyeOff (slashed); - when visible, show Eye. Pairs with the data-[state=on] background highlight. */} - {isHideMatchesEnabled && hideMatches ? ( - - - {getLocalizedString('%markersChecklist_toolbar_hideMatches%')} - + {getLocalizedString('%markersChecklist_toolbar_view%')} - - - - {showVerseText ? ( - - - + + handleHideMatchesChange(Boolean(checked))} + data-testid="checklist-hide-matches-item" + > + {getLocalizedString('%markersChecklist_toolbar_hideMatches%')} + + handleShowVerseTextChange(Boolean(checked))} + data-testid="checklist-show-verse-text-item" + > {getLocalizedString('%markersChecklist_toolbar_showVerseText%')} - - - + + + {matchCountLabel !== undefined && matchCountLabel !== '' && ( @@ -586,7 +662,7 @@ export function ChecklistTool({ {matchCountLabel} )} - +
); // Per Sebastian PR #2219 #3137366113: error and truncated/helpText banners use the SAME @@ -677,25 +753,42 @@ export function ChecklistTool({ return undefined; }; - // Backend-supplied empty-result message is preferred over the generic no-results string — e.g. - // gm-002 emits "Comparative texts have identical markers." (BHV-600). + // Empty-results message selection (UX-2 finding #3): + // - If the backend supplied an emptyResultMessage, prefer it (BHV-600). + // - Otherwise, if data has loaded with zero rows, show generic noResults. + // - Otherwise (no data yet — no primary selected), show selectProject. + // The previous fallback chained the "identical markers" string here, which + // surfaced "Comparative texts have identical markers." on first load before + // any primary project was chosen. const noResultsMessage = data?.emptyResultMessage?.message ?? - getLocalizedString('%markersChecklist_emptyResult_identicalMarkers%') ?? - getLocalizedString('%markersChecklist_noResults%'); + (data + ? getLocalizedString('%markersChecklist_emptyResult_noResults%') + : getLocalizedString('%markersChecklist_emptyResult_selectProject%')); return (
-
+ {/* + * The outer Platform.Bible tab chrome is suppressed for this web view + * (shouldShowToolbar=false on the WebViewProvider), so the hamburger + * menu — Copy / Print / Save / Markers Inventory / Settings — is hosted + * directly on this inner TabToolbar. Menu items come from the + * `markersChecklist` WebViewMenu contribution (see menus.json) via the + * wiring layer's `useData(papi.menuData.dataProviderName).WebViewMenu` + * call, dispatched through `papi.commands.sendCommand` so WP6's + * CHECKLIST_COPY_REQUEST_EVENT plumbing remains the same regardless of + * whether dispatch originates from outside or inside the web view. + * + * (WP3 originally dropped this TabToolbar on the assumption the outer + * chrome would host the hamburger; reversing now that the outer chrome + * is hidden.) + */} +
undefined)} onSelectViewInfoMenuItem={() => undefined} projectMenuData={projectMenuData} startAreaChildren={renderToolbarStart()} @@ -705,10 +798,28 @@ export function ChecklistTool({ {renderBanners()} + {/* + * UX-2 finding #11: wrap the table section in `tw:relative tw:z-0` so the sticky + * 's internal z-20 (set by shadcn-ui Table with stickyHeader) lives inside + * a new stacking context here and can never out-stack the toolbar above (which + * uses `tw:sticky tw:top-0 tw:z-10`). Without this wrapper the thead's z-20 wins + * over the toolbar's z-10 and the column headers scroll OVER the toolbar. + * + * UX-2 finding #10: enforce equal column widths via Tailwind arbitrary variants + * applied to the inner : + * - `tw:[&_table]:table-fixed tw:[&_table]:w-full` — switch to fixed layout so + * columns honor explicit widths on
instead of widest-content auto-sizing. + * - `tw:[&_thead_th:first-child]:w-24` — Ref column is a fixed 96px (`w-24`), + * enough for "GEN 1:1" etc. + * Under table-fixed, the remaining N project columns (all with implicit + * `width: auto`) share the remaining horizontal space equally — the browser + * distributes whatever is left after the fixed column. Inline widths on inner + * divs would have no effect here; widths must live on the . + */}
(row.original.isMatch ? MATCH_ROW_BG_CLASS : undefined)} />
diff --git a/extensions/src/platform-scripture/src/components/checklist.stories.tsx b/extensions/src/platform-scripture/src/components/checklist.stories.tsx index 40636edd53b..612bcca8d9d 100644 --- a/extensions/src/platform-scripture/src/components/checklist.stories.tsx +++ b/extensions/src/platform-scripture/src/components/checklist.stories.tsx @@ -1,7 +1,6 @@ import type { Meta, StoryObj } from '@storybook/react-webpack5'; import { useMemo, useState } from 'react'; import { Button } from 'platform-bible-react'; -import type { Localized, MultiColumnMenu } from 'platform-bible-utils'; import { getLocalizedStrings } from '../../../../../.storybook/localization.utils'; import { CHECKLIST_STORY_COLUMN_PROJECT_FULL_NAMES, @@ -76,45 +75,10 @@ const localizedStringsForStories: ChecklistLocalizedStrings = return accumulator; }, {}); -/** - * A minimal localized `MultiColumnMenu` that shows the project-menu (left hamburger) items per - * Sebastian's PR #2219 #3137366113. Mirrors the production menu contribution in - * `extensions/src/platform-scripture/contributions/menus.json` (Copy + Settings) — the real menu - * data is supplied by the wiring phase via `useData(papi.menuData.dataProviderName).WebViewMenu`. - */ -const projectMenuData: Localized = { - columns: { - 'platformScripture.markersChecklist.view': { - label: 'View', - order: 1, - }, - // The localized `MultiColumnMenu` requires the `isExtensible` discriminator on the index - // signature — include it on the single column entry so the narrow shape typechecks. - isExtensible: true, - }, - groups: { - 'platformScripture.markersChecklist.export': { - column: 'platformScripture.markersChecklist.view', - order: 1, - }, - }, - items: [ - { - label: 'Copy', - localizeNotes: 'Copies the visible checklist rows to the clipboard', - group: 'platformScripture.markersChecklist.export', - order: 1, - command: 'platformScripture.copyMarkersChecklist', - }, - { - label: 'Settings...', - localizeNotes: 'Opens the Marker Settings dialog', - group: 'platformScripture.markersChecklist.export', - order: 2, - command: 'platformScripture.openMarkersChecklistSettings', - }, - ], -}; +// UX-2 finding #1 (WP3): the inner TabToolbar was removed, so the `ChecklistTool` +// no longer accepts `projectMenuData` / `onSelectProjectMenuItem`. The outer +// Platform.Bible tab chrome's hamburger hosts the menu items via WebViewMenu +// contributions (see WP6). The stories therefore no longer need a stub menu. const baseArgs: Partial = { localizedStringsWithLoadingState: [localizedStringsForStories, false], @@ -127,7 +91,6 @@ const baseArgs: Partial = { error: undefined, helpText: undefined, matchCountLabel: undefined, - projectMenuData, columnProjectFullNames: CHECKLIST_STORY_COLUMN_PROJECT_FULL_NAMES, }; @@ -297,7 +260,7 @@ export const Empty: Story = { /** * Error state — the backend rejected the `buildChecklistData` call. The component renders a shadcn - * `Alert variant="destructive"` between the `TabToolbar` and the `DataTable` with a Retry action. + * `Alert variant="destructive"` between the toolbar row and the `DataTable` with a Retry action. * Per `ui-state-contracts.md` T-R-2, the error banner suppresses the helptext banner until the next * successful refresh. */ diff --git a/extensions/src/platform-scripture/src/components/checklist.types.ts b/extensions/src/platform-scripture/src/components/checklist.types.ts index d8cdb56a8f8..4f53592b1a3 100644 --- a/extensions/src/platform-scripture/src/components/checklist.types.ts +++ b/extensions/src/platform-scripture/src/components/checklist.types.ts @@ -16,6 +16,8 @@ export const CHECKLIST_STRING_KEYS = Object.freeze([ // Toolbar — selector trigger labels (aria-label on the outline-button stand-ins) '%markersChecklist_toolbar_primaryProject%', '%markersChecklist_toolbar_comparativeTexts%', + // UX-2 finding #6: placeholder shown on the comparative-texts trigger when empty. + '%markersChecklist_toolbar_comparativeTextsPlaceholder%', '%markersChecklist_toolbar_verseRange%', // Toolbar — action buttons + view dropdown '%markersChecklist_toolbar_copy%', @@ -32,6 +34,11 @@ export const CHECKLIST_STRING_KEYS = Object.freeze([ '%markersChecklist_helptext%', // Empty result — reuse the existing key so we don't duplicate the translation '%markersChecklist_emptyResult_identicalMarkers%', + // Empty-result fallbacks (UX-2 finding #3): generic "no markers" message when + // data is loaded but rows is empty AND no comparatives — replaces the + // misleading "identical markers" fallback that surfaced on first load. + '%markersChecklist_emptyResult_noResults%', + '%markersChecklist_emptyResult_selectProject%', // Error banner + retry (T-R-2 rendering contract) '%markersChecklist_errorTitle%', '%markersChecklist_errorRetry%', @@ -242,24 +249,25 @@ export type ChecklistToolProps = { // ----- Project menu (TabToolbar left hamburger) ----- // - // Per Sebastian PR #2219 #3137366113 ("Settings should be coming from the hamburger menu of the - // TabToolbar, not from ellipsis button"), the menu data flows to the LEFT-side hamburger menu - // (`projectMenuData` on TabToolbar) rather than the RIGHT-side ellipsis (`tabViewMenuData`). - // The Copy action is also surfaced as a menu item (intercepted by the wiring layer's command - // dispatcher) rather than a standalone toolbar button. + // The outer Platform.Bible tab chrome is suppressed for this web view + // (shouldShowToolbar=false) so its hamburger is no longer available — the menu items + // (Open Project Settings, Copy, Print, Save, Markers Inventory, Settings) live on the + // inner TabToolbar inside ChecklistTool. WP3 originally dropped these props on the + // assumption that the outer chrome would host the menu; that decision is reversed now + // that we hide the outer chrome. /** - * Localized menu data for the TabToolbar's project menu (left hamburger). In the wiring phase - * this comes from `useData(papi.menuData.dataProviderName).WebViewMenu(...)`. Stories may pass a - * minimal stub. Currently contains: Copy, Settings. + * Localized menu data for the inner TabToolbar's project menu (left hamburger). The wiring layer + * reads this from `useData(papi.menuData.dataProviderName).WebViewMenu(...)` for the + * markers-checklist web-view type so contributed menu items from menus.json appear here. Stories + * may pass a minimal stub or leave it undefined to suppress the hamburger. */ projectMenuData?: Localized | undefined; /** - * Called when the user selects an item in the project menu. The wiring layer dispatches the - * selected command — typically via `papi.commands.sendCommand`, but it may intercept commands - * locally (e.g., `platformScripture.copyMarkersChecklist` triggers the local clipboard handler - * without a PAPI roundtrip). + * Called when the user selects an item in the project menu. The wiring layer typically dispatches + * the selected command via `papi.commands.sendCommand`, which routes through the commands + * registered in `main.ts` (Copy → emits CHECKLIST_COPY_REQUEST_EVENT, etc.). */ onSelectProjectMenuItem?: (selectedMenuItem: { [key: string]: unknown; diff --git a/extensions/src/platform-scripture/src/components/marker-settings-dialog.component.tsx b/extensions/src/platform-scripture/src/components/marker-settings-dialog.component.tsx index 4f928049ea8..766a97127aa 100644 --- a/extensions/src/platform-scripture/src/components/marker-settings-dialog.component.tsx +++ b/extensions/src/platform-scripture/src/components/marker-settings-dialog.component.tsx @@ -166,16 +166,35 @@ export function MarkerSettingsDialog({ errorMessage: undefined, }); + // UX-2 finding #17: Radix Dialog's focus scope activates AFTER `autoFocus` has run on the + // input, so the autoFocus prop alone doesn't reliably land focus inside the dialog (the trap + // can yank focus back to the Dialog root on mount). Hold a ref to the equivalent-markers + // input and focus it from the open-transition effect on the next animation frame, by which + // time Radix's focus trap is active. + // React's ref API expects `null` as the initial value (ref.current is typed `T | null`), so + // the no-null rule must be suppressed for the ref initializer specifically. + // eslint-disable-next-line no-null/no-null + const equivalentMarkersInputRef = useRef(null); + // Re-seed inputs whenever the dialog re-opens so stale values from a previous session don't // leak through (the component is mounted for the entire parent lifetime; `open` flips it on/off). const previousOpenRef = useRef(open); useEffect(() => { - if (open && !previousOpenRef.current) { + const wasOpening = open && !previousOpenRef.current; + if (wasOpening) { setEquivalentMarkers(initialEquivalentMarkers); setMarkerFilter(initialMarkerFilter); setValidationResult({ valid: true, parsedPairs: undefined, errorMessage: undefined }); } previousOpenRef.current = open; + if (!wasOpening) return undefined; + // UX-2 finding #17: focus the equivalent-markers input on the next animation frame so the + // Radix focus trap is active by the time we focus. Without this, Tab navigates outside + // the dialog (because focus is still on the trigger when the trap mounts). + const frameId = requestAnimationFrame(() => { + equivalentMarkersInputRef.current?.focus(); + }); + return () => cancelAnimationFrame(frameId); }, [open, initialEquivalentMarkers, initialMarkerFilter]); // Stable ids so Label→Input associations survive re-renders and avoid collisions when multiple @@ -297,6 +316,7 @@ export function MarkerSettingsDialog({ setEquivalentMarkers(event.target.value)} @@ -307,7 +327,6 @@ export function MarkerSettingsDialog({ className={ isInvalid ? 'tw:border-destructive tw:focus-visible:ring-destructive' : undefined } - autoFocus /> {isInvalid && ( Promise>(); +const settingsSet = vi.fn<(key: string, value: unknown) => Promise>(); +const loggerWarn = vi.fn<(msg: string) => void>(); + +vi.mock('@papi/frontend', () => ({ + default: { + settings: { + get: (key: string) => settingsGet(key), + set: (key: string, value: unknown) => settingsSet(key, value), + }, + }, + logger: { + warn: (msg: string) => loggerWarn(msg), + }, +})); + +// Import AFTER `vi.mock` is in place so the hook picks up the mocked module. +// eslint-disable-next-line import/first +import { useChecklistDefaults } from './use-checklist-defaults'; + +beforeEach(() => { + settingsGet.mockReset(); + settingsSet.mockReset(); + loggerWarn.mockReset(); +}); + +afterEach(() => { + vi.clearAllMocks(); +}); + +describe('useChecklistDefaults', () => { + it('starts in loading state with undefined defaults', () => { + // Never-resolving promise simulates the in-flight initial read. + settingsGet.mockReturnValue(new Promise(() => {})); + const { result } = renderHook(() => useChecklistDefaults()); + expect(result.current[0]).toBeUndefined(); + expect(result.current[1]).toBe(true); + }); + + it('exposes the persisted value once papi.settings.get resolves', async () => { + settingsGet.mockResolvedValue({ + comparativeTextIds: ['RH2'], + hideMatches: true, + showVerseText: false, + equivalentMarkers: 'p/q', + markerFilter: '', + }); + const { result } = renderHook(() => useChecklistDefaults()); + await waitFor(() => { + expect(result.current[1]).toBe(false); + }); + expect(result.current[0]).toEqual({ + comparativeTextIds: ['RH2'], + hideMatches: true, + showVerseText: false, + equivalentMarkers: 'p/q', + markerFilter: '', + }); + }); + + it('merges static defaults under any partial persisted value', async () => { + // Forwards-compat: an installed setting payload that pre-dates a schema bump should not + // surface `undefined` for the newly-added fields. + settingsGet.mockResolvedValue({ hideMatches: true }); + const { result } = renderHook(() => useChecklistDefaults()); + await waitFor(() => expect(result.current[1]).toBe(false)); + expect(result.current[0]).toEqual({ + comparativeTextIds: [], + hideMatches: true, + showVerseText: false, + equivalentMarkers: '', + markerFilter: '', + }); + }); + + it('falls back to static defaults when the read throws', async () => { + settingsGet.mockRejectedValue(new Error('boom')); + const { result } = renderHook(() => useChecklistDefaults()); + await waitFor(() => expect(result.current[1]).toBe(false)); + expect(result.current[0]).toEqual({ + comparativeTextIds: [], + hideMatches: false, + showVerseText: false, + equivalentMarkers: '', + markerFilter: '', + }); + expect(loggerWarn).toHaveBeenCalled(); + }); + + it('writeDefaults merges with the latest snapshot before writing', async () => { + settingsGet.mockResolvedValue({ + comparativeTextIds: ['RH2'], + hideMatches: false, + showVerseText: false, + equivalentMarkers: '', + markerFilter: '', + }); + settingsSet.mockResolvedValue(undefined); + const { result } = renderHook(() => useChecklistDefaults()); + await waitFor(() => expect(result.current[1]).toBe(false)); + + await act(async () => { + await result.current[2]({ hideMatches: true }); + }); + + expect(settingsSet).toHaveBeenCalledWith('platformScripture.markersChecklistDefaults', { + comparativeTextIds: ['RH2'], + hideMatches: true, + showVerseText: false, + equivalentMarkers: '', + markerFilter: '', + }); + }); + + it('swallows write errors and logs a warning', async () => { + settingsGet.mockResolvedValue({}); + settingsSet.mockRejectedValue(new Error('disk full')); + const { result } = renderHook(() => useChecklistDefaults()); + await waitFor(() => expect(result.current[1]).toBe(false)); + + await act(async () => { + // The hook should resolve without re-throwing — a failing write must not crash the + // checklist tab. + await result.current[2]({ hideMatches: true }); + }); + + expect(loggerWarn).toHaveBeenCalled(); + }); +}); diff --git a/extensions/src/platform-scripture/src/hooks/use-checklist-defaults.ts b/extensions/src/platform-scripture/src/hooks/use-checklist-defaults.ts new file mode 100644 index 00000000000..10cd1255955 --- /dev/null +++ b/extensions/src/platform-scripture/src/hooks/use-checklist-defaults.ts @@ -0,0 +1,106 @@ +import papi, { logger } from '@papi/frontend'; +import { getErrorMessage } from 'platform-bible-utils'; +import { useCallback, useEffect, useRef, useState } from 'react'; + +/** + * Shape of the per-user Markers Checklist defaults setting + * (`platformScripture.markersChecklistDefaults`). Mirrors the SettingTypes augmentation in + * `types/platform-scripture.d.ts`; the duplication here is intentional so consumers of this hook do + * not need the augmentation import on every call site. + */ +export type ChecklistDefaults = { + comparativeTextIds: string[]; + hideMatches: boolean; + showVerseText: boolean; + equivalentMarkers: string; + markerFilter: string; +}; + +const SETTING_KEY = 'platformScripture.markersChecklistDefaults'; + +const STATIC_DEFAULTS: ChecklistDefaults = { + comparativeTextIds: [], + hideMatches: false, + showVerseText: false, + equivalentMarkers: '', + markerFilter: '', +}; + +/** + * Reads the per-user "Markers Checklist defaults" setting and exposes a setter that writes back + * (UX-2 follow-up finding #22, WP7). Used by `checklist.web-view.tsx` to seed its `useWebViewState` + * slots so a new checklist tab — or a fresh app session — inherits the user's last-committed + * defaults. + * + * Returns `[defaults, isLoading, writeDefaults]`: + * + * - `defaults` is `undefined` while the initial async read is in flight. Consumers MUST gate any + * `useWebViewState(defaults?.field)` seeding on `isLoading === false`, because `useWebViewState` + * consults the supplied default only on first render (see + * `src/renderer/hooks/use-web-view-state.hook.ts:33-35` — `useState(() => ...)` lazy init). A + * transient `undefined` default at mount would seed the slot with the static default forever, + * defeating persistence. + * - `isLoading` flips to `false` once the read settles (success OR failure). + * - `writeDefaults` merges a partial update with the latest snapshot (held in `latestRef`) and writes + * the full object back to `papi.settings`. Errors are swallowed and logged — a failed persist + * degrades to per-tab-only persistence (the user's current tab still works) and the next field + * change will retry the write. + * + * @see ux-followup-implementation-plan.md §WP7 + */ +export function useChecklistDefaults(): readonly [ + ChecklistDefaults | undefined, + boolean, + (next: Partial) => Promise, +] { + const [defaults, setDefaults] = useState(undefined); + const [isLoading, setIsLoading] = useState(true); + // Tracks the latest full snapshot so `writeDefaults` can merge a partial update without + // re-reading from `papi.settings`. Initialised to STATIC_DEFAULTS and overwritten as soon as the + // initial read resolves; subsequent `writeDefaults` calls also update it. + const latestRef = useRef(STATIC_DEFAULTS); + + useEffect(() => { + let cancelled = false; + (async () => { + try { + const value = await papi.settings.get(SETTING_KEY); + if (cancelled) return; + // Merge static defaults under the persisted value so any new field added in a future + // setting-schema bump appears with its declared default instead of `undefined`. Also + // tolerates a corrupted/partial setting payload (legacy installs, manual edits). + const next: ChecklistDefaults = { ...STATIC_DEFAULTS, ...value }; + latestRef.current = next; + setDefaults(next); + } catch (err) { + logger.warn(`useChecklistDefaults: read failed: ${getErrorMessage(err)}`); + if (!cancelled) { + latestRef.current = STATIC_DEFAULTS; + setDefaults(STATIC_DEFAULTS); + } + } finally { + if (!cancelled) setIsLoading(false); + } + })(); + return () => { + cancelled = true; + }; + }, []); + + const writeDefaults = useCallback(async (next: Partial) => { + const merged: ChecklistDefaults = { ...latestRef.current, ...next }; + latestRef.current = merged; + try { + await papi.settings.set(SETTING_KEY, merged); + } catch (err) { + // Persistence is best-effort: a failed write leaves the in-memory snapshot intact and the + // next change will retry. Surfacing this as a toast would be noisy for a transient + // settings-service blip, so we log at warn level instead. + logger.warn(`useChecklistDefaults: write failed: ${getErrorMessage(err)}`); + } + }, []); + + return [defaults, isLoading, writeDefaults] as const; +} + +export default useChecklistDefaults; diff --git a/extensions/src/platform-scripture/src/main.ts b/extensions/src/platform-scripture/src/main.ts index fe06fb8774d..ad6600fa72d 100644 --- a/extensions/src/platform-scripture/src/main.ts +++ b/extensions/src/platform-scripture/src/main.ts @@ -11,7 +11,7 @@ import { ChecklistWebViewProvider, markersChecklistWebViewType, } from './checklist.web-view-provider'; -import { CHECKLIST_OPEN_SETTINGS_EVENT } from './checklist.model'; +import { CHECKLIST_COPY_REQUEST_EVENT, CHECKLIST_OPEN_SETTINGS_EVENT } from './checklist.model'; import { FindWebViewOptions, FindWebViewProvider, findWebViewType } from './find.web-view-provider'; import { checkAggregatorService, @@ -207,6 +207,51 @@ async function openMarkersChecklistSettings(): Promise { openSettingsEventEmitter.emit(undefined); } +/** + * Companion emitter for the `platformScripture.copyMarkersChecklist` command (UX-2 finding #12, + * WP6). The web view subscribes via `papi.network.getNetworkEvent(CHECKLIST_COPY_REQUEST_EVENT)` + * and performs the clipboard write + success toast locally. Same lazy-initialized lifetime model as + * `openSettingsEventEmitter` above. + */ +let copyRequestEventEmitter: + | ReturnType> + | undefined; + +async function copyMarkersChecklist(): Promise { + if (!copyRequestEventEmitter) { + logger.warn( + 'platformScripture.copyMarkersChecklist invoked before the event emitter was initialized — ignoring.', + ); + return; + } + copyRequestEventEmitter.emit(undefined); +} + +/** + * Placeholder handler for the `Print Markers Checklist` menu item (UX-2 finding #12, WP6). Print is + * not yet implemented — the handler surfaces a non-blocking Sonner info toast so the user gets + * immediate feedback rather than a silent click. The localized message lives in + * `localizedStrings.json` under `markersChecklist_print_notImplemented` (delimiters dropped in this + * comment to satisfy the localization-key pre-commit scanner). + */ +async function printMarkersChecklist(): Promise { + await papi.notifications.send({ + severity: 'info', + message: '%markersChecklist_print_notImplemented%', + }); +} + +/** + * Placeholder handler for the `Save Markers Checklist` menu item (UX-2 finding #12, WP6). Save is + * not yet implemented; same non-blocking toast strategy as `printMarkersChecklist` above. + */ +async function saveMarkersChecklist(): Promise { + await papi.notifications.send({ + severity: 'info', + message: '%markersChecklist_save_notImplemented%', + }); +} + /** * FN-008 (2026-05-01): Open the unified Manage Books dialog as a tab web view. The optional * argument is either an editor's `webViewId` (from a scripture-editor menu) or a literal project id @@ -313,6 +358,12 @@ export async function activate(context: ExecutionActivationContext) { CHECKLIST_OPEN_SETTINGS_EVENT, ); + // Companion "copy to clipboard" event emitter (UX-2 finding #12, WP6). Same lifecycle as + // openSettingsEventEmitter — created here, disposed via `context.registrations` below. + copyRequestEventEmitter = papi.network.createNetworkEventEmitter( + CHECKLIST_COPY_REQUEST_EVENT, + ); + const scriptureExtenderPdpefPromise = papi.projectDataProviders.registerProjectDataProviderEngineFactory( SCRIPTURE_EXTENDER_PDPF_ID, @@ -547,6 +598,52 @@ export async function activate(context: ExecutionActivationContext) { }, }, ); + const copyMarkersChecklistPromise = papi.commands.registerCommand( + 'platformScripture.copyMarkersChecklist', + copyMarkersChecklist, + { + method: { + summary: + 'Ask any mounted Markers Checklist web view to copy its currently visible data to the clipboard', + params: [], + result: { + name: 'return value', + summary: 'Void', + schema: { type: 'null' }, + }, + }, + }, + ); + const printMarkersChecklistPromise = papi.commands.registerCommand( + 'platformScripture.printMarkersChecklist', + printMarkersChecklist, + { + method: { + summary: 'Print the Markers Checklist (placeholder — surfaces a not-implemented toast)', + params: [], + result: { + name: 'return value', + summary: 'Void', + schema: { type: 'null' }, + }, + }, + }, + ); + const saveMarkersChecklistPromise = papi.commands.registerCommand( + 'platformScripture.saveMarkersChecklist', + saveMarkersChecklist, + { + method: { + summary: 'Save the Markers Checklist (placeholder — surfaces a not-implemented toast)', + params: [], + result: { + name: 'return value', + summary: 'Void', + schema: { type: 'null' }, + }, + }, + }, + ); const markersChecklistWebViewProviderPromise = papi.webViewProviders.registerWebViewProvider( markersChecklistWebViewType, markersChecklistWebViewProvider, @@ -659,8 +756,12 @@ export async function activate(context: ExecutionActivationContext) { await showChecksSidePanelWebViewProviderPromise, await openMarkersChecklistPromise, await openMarkersChecklistSettingsPromise, + await copyMarkersChecklistPromise, + await printMarkersChecklistPromise, + await saveMarkersChecklistPromise, await markersChecklistWebViewProviderPromise, openSettingsEventEmitter, + copyRequestEventEmitter, await openFindPromise, await openFindWebViewProviderPromise, await openManageBooksPromise, diff --git a/extensions/src/platform-scripture/src/types/platform-scripture.d.ts b/extensions/src/platform-scripture/src/types/platform-scripture.d.ts index 0a1ce190801..9d78c3924cb 100644 --- a/extensions/src/platform-scripture/src/types/platform-scripture.d.ts +++ b/extensions/src/platform-scripture/src/types/platform-scripture.d.ts @@ -2091,6 +2091,26 @@ declare module 'papi-shared-types' { */ 'platformScripture.openMarkersChecklistSettings': () => Promise; + /** + * Ask any mounted Markers Checklist web view to copy its currently visible data to the user's + * clipboard (UX-2 finding #12, WP6). The handler emits a broadcast network event; the web view + * performs the actual clipboard write and surfaces a Sonner success toast. Takes no arguments — + * the web view holds the live visible-data snapshot. + */ + 'platformScripture.copyMarkersChecklist': () => Promise; + + /** + * Placeholder handler for the Markers Checklist "Print" menu item (UX-2 finding #12, WP6). + * Print is not yet implemented; the handler surfaces a non-blocking Sonner info toast. + */ + 'platformScripture.printMarkersChecklist': () => Promise; + + /** + * Placeholder handler for the Markers Checklist "Save" menu item (UX-2 finding #12, WP6). Save + * is not yet implemented; the handler surfaces a non-blocking Sonner info toast. + */ + 'platformScripture.saveMarkersChecklist': () => Promise; + /** * Open the unified Manage Books dialog (FN-008, 2026-05-01) for the active scripture project. * Opens the dialog as a tab web view; the dialog itself supports View / Create / Delete / Copy @@ -2220,4 +2240,21 @@ declare module 'papi-shared-types' { */ 'platformScripture.allowInvisibleCharacters': boolean; } + + export interface SettingTypes { + /** + * Per-user defaults for the Markers Checklist tool (UX-2 follow-up finding #22). The Markers + * Checklist web view reads this on mount to seed its per-tab `useWebViewState` slots so a new + * checklist tab inherits the user's last-committed choices, and writes back whenever any + * persisted field changes. Scope and verse range are intentionally NOT persisted (matches PT9 + * memento behaviour: scope/verse range reset per open). Cross-tab races are last-write-wins. + */ + 'platformScripture.markersChecklistDefaults': { + comparativeTextIds: string[]; + hideMatches: boolean; + showVerseText: boolean; + equivalentMarkers: string; + markerFilter: string; + }; + } } diff --git a/lib/platform-bible-react/dist/index.cjs b/lib/platform-bible-react/dist/index.cjs index b25ead07ca0..2a1b1bcb1fc 100644 --- a/lib/platform-bible-react/dist/index.cjs +++ b/lib/platform-bible-react/dist/index.cjs @@ -1,5 +1,5 @@ -"use strict";var hi=Object.defineProperty;var fi=(t,e,a)=>e in t?hi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var Dt=(t,e,a)=>fi(t,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),l=require("react"),Ve=require("cmdk"),mi=require("clsx"),_o=require("tailwind-merge"),k=require("radix-ui"),ge=require("class-variance-authority"),ht=require("@tabler/icons-react"),st=require("@sillsdev/scripture"),D=require("platform-bible-utils"),$=require("lucide-react"),v=require("lexical"),ca=require("@lexical/rich-text"),Xa=require("react-dom"),vi=require("@lexical/table"),No=require("@lexical/headless"),Mt=require("@tanstack/react-table"),bi=require("markdown-to-jsx"),Xt=require("@eten-tech-foundation/platform-editor"),xi=require("react-hotkeys-hook"),Te=require("vaul"),yi=require("react-resizable-panels"),ki=require("next-themes"),Co=require("sonner");function ji(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const o=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>t[a]})}}return e.default=t,Object.freeze(e)}const ba=ji(yi),_i=_o.extendTailwindMerge({prefix:"tw"});function la(t){const e=[];let a="",o=0;for(let n=0;ni.startsWith("-tw-"));if(a!==-1){const i=e[a].slice(4);return{normalized:`tw:${[...e.filter((w,d)=>d!==a),`-${i}`].join(":")}`,original:t}}const o=e.findIndex(i=>i.startsWith("!tw-"));if(o!==-1){const i=e[o].slice(4);return{normalized:`tw:${[...e.filter((w,d)=>d!==o),`!${i}`].join(":")}`,original:t}}const n=e[e.length-1];if(n.startsWith("tw-")){const i=n.slice(3);return{normalized:`tw:${[...e.slice(0,-1),i].join(":")}`,original:t}}return{normalized:t,original:t}}function Ci(t,e){if(e.startsWith("tw:"))return t;const a=la(t);if(a[0]!=="tw")return t;const o=a.slice(1,-1),n=a[a.length-1],i=la(e),s=i.some(w=>w.startsWith("-tw-")),c=i.some(w=>w.startsWith("!tw-"));if(s&&n.startsWith("-")){const w=n.slice(1);return[...o,`-tw-${w}`].join(":")}if(c&&n.startsWith("!")){const w=n.slice(1);return[...o,`!tw-${w}`].join(":")}return[...o,`tw-${n}`].join(":")}function h(...t){const e=mi.clsx(t);if(!e)return e;if(e.indexOf("tw-")===-1)return _i(e);const a=e.split(" ").filter(Boolean),o=new Map,n=[];return a.forEach(w=>{const d=Ni(w);o.set(d.normalized,d.original),n.push(d.normalized)}),_o.twMerge(n.join(" ")).split(" ").filter(Boolean).map(w=>{const d=o.get(w);return d?Ci(w,d):w}).join(" ")}const We=250,xa=300,Vr=400,So=450,Eo=500,To=550,ya=ge.cva("pr-twp tw:group/button tw:inline-flex tw:shrink-0 tw:items-center tw:justify-center tw:rounded-lg tw:border tw:border-transparent tw:bg-clip-padding tw:text-sm tw:font-medium tw:whitespace-nowrap tw:transition-all tw:outline-none tw:select-none tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:active:not-aria-[haspopup]:translate-y-px tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",{variants:{variant:{default:"tw:bg-primary tw:text-primary-foreground tw:[a]:hover:bg-primary/80",outline:"tw:border-border tw:bg-background tw:hover:bg-muted tw:hover:text-foreground tw:aria-expanded:bg-muted tw:aria-expanded:text-foreground tw:dark:border-input tw:dark:bg-input/30 tw:dark:hover:bg-input/50",secondary:"tw:bg-secondary tw:text-secondary-foreground tw:hover:bg-secondary/80 tw:aria-expanded:bg-secondary tw:aria-expanded:text-secondary-foreground",ghost:"tw:hover:bg-muted tw:hover:text-foreground tw:aria-expanded:bg-muted tw:aria-expanded:text-foreground tw:dark:hover:bg-muted/50",destructive:"tw:bg-destructive/10 tw:text-destructive tw:hover:bg-destructive/20 tw:focus-visible:border-destructive/40 tw:focus-visible:ring-destructive/20 tw:dark:bg-destructive/20 tw:dark:hover:bg-destructive/30 tw:dark:focus-visible:ring-destructive/40",link:"tw:text-primary tw:underline-offset-4 tw:hover:underline"},size:{default:"tw:h-8 tw:gap-1.5 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2",xs:"tw:h-6 tw:gap-1 tw:rounded-[min(var(--tw-radius-md),10px)] tw:px-2 tw:text-xs tw:in-data-[slot=button-group]:rounded-lg tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3",sm:"tw:h-7 tw:gap-1 tw:rounded-[min(var(--tw-radius-md),12px)] tw:px-2.5 tw:text-[0.8rem] tw:in-data-[slot=button-group]:rounded-lg tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3.5",lg:"tw:h-9 tw:gap-1.5 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2",icon:"tw:size-8","icon-xs":"tw:size-6 tw:rounded-[min(var(--tw-radius-md),10px)] tw:in-data-[slot=button-group]:rounded-lg tw:[&_svg:not([class*=size-])]:size-3","icon-sm":"tw:size-7 tw:rounded-[min(var(--tw-radius-md),12px)] tw:in-data-[slot=button-group]:rounded-lg","icon-lg":"tw:size-9"}},defaultVariants:{variant:"default",size:"default"}});function F({className:t,variant:e="default",size:a="default",asChild:o=!1,...n}){const i=o?k.Slot.Root:"button";return r.jsx(i,{"data-slot":"button","data-variant":e,"data-size":a,className:h(ya({variant:e,size:a,className:t})),...n})}const Si="layoutDirection";function ft(){const t=localStorage.getItem(Si);return t==="rtl"?t:"ltr"}function Er({...t}){return r.jsx(k.Dialog.Root,{"data-slot":"dialog",...t})}function Ei({...t}){return r.jsx(k.Dialog.Trigger,{"data-slot":"dialog-trigger",...t})}function Ro({...t}){return r.jsx(k.Dialog.Portal,{"data-slot":"dialog-portal",...t})}function Ti({...t}){return r.jsx(k.Dialog.Close,{"data-slot":"dialog-close",...t})}function zo({className:t,style:e,...a}){return r.jsx(k.Dialog.Overlay,{"data-slot":"dialog-overlay",className:h("tw:fixed tw:inset-0 tw:isolate tw:bg-black/10 tw:duration-100 tw:supports-backdrop-filter:backdrop-blur-xs tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-closed:animate-out tw:data-closed:fade-out-0",t),style:{zIndex:So,...e},...a})}function Tr({className:t,children:e,showCloseButton:a=!0,overlayClassName:o,style:n,...i}){const s=ft();return r.jsxs(Ro,{children:[r.jsx(zo,{className:o}),r.jsxs(k.Dialog.Content,{"data-slot":"dialog-content",className:h("pr-twp tw:fixed tw:top-1/2 tw:start-1/2 tw:grid tw:w-full tw:max-w-[calc(100%-2rem)] tw:-translate-x-1/2 tw:rtl:translate-x-1/2 tw:-translate-y-1/2 tw:gap-4 tw:rounded-xl tw:bg-popover tw:p-4 tw:text-sm tw:text-popover-foreground tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:outline-none tw:sm:max-w-sm tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95",t),style:{zIndex:Eo,...n},dir:s,...i,children:[e,a&&r.jsx(k.Dialog.Close,{"data-slot":"dialog-close",asChild:!0,children:r.jsxs(F,{variant:"ghost",className:"tw:absolute tw:top-2 tw:end-2",size:"icon-sm",children:[r.jsx(ht.IconX,{}),r.jsx("span",{className:"tw:sr-only",children:"Close"})]})})]})]})}function Rr({className:t,...e}){return r.jsx("div",{"data-slot":"dialog-header",className:h("pr-twp tw:flex tw:flex-col tw:gap-2 tw:sm:text-start",t),...e})}function da({className:t,showCloseButton:e=!1,children:a,...o}){return r.jsxs("div",{"data-slot":"dialog-footer",className:h("pr-twp tw:-mx-4 tw:-mb-4 tw:flex tw:flex-col-reverse tw:gap-2 tw:rounded-b-xl tw:border-t tw:bg-muted/50 tw:p-4 tw:sm:flex-row tw:sm:justify-end",t),...o,children:[a,e&&r.jsx(k.Dialog.Close,{asChild:!0,children:r.jsx(F,{variant:"outline",children:"Close"})})]})}function zr({className:t,...e}){return r.jsx(k.Dialog.Title,{"data-slot":"dialog-title",className:h("pr-twp tw:font-heading tw:text-base tw:leading-none tw:font-medium",t),...e})}function Ri({className:t,...e}){return r.jsx(k.Dialog.Description,{"data-slot":"dialog-description",className:h("pr-twp tw:text-sm tw:text-muted-foreground tw:*:[a]:underline tw:*:[a]:underline-offset-3 tw:*:[a]:hover:text-foreground",t),...e})}function Xe({className:t,type:e,...a}){return r.jsx("input",{type:e,"data-slot":"input",className:h("pr-twp tw:h-8 tw:min-w-0 tw:rounded-lg tw:border tw:border-input tw:bg-transparent tw:px-2.5 tw:py-1 tw:text-base tw:transition-colors tw:outline-none tw:file:inline-flex tw:file:h-6 tw:file:border-0 tw:file:bg-transparent tw:file:text-sm tw:file:font-medium tw:file:text-foreground tw:placeholder:text-muted-foreground tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:pointer-events-none tw:disabled:cursor-not-allowed tw:disabled:bg-input/50 tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:md:text-sm tw:dark:bg-input/30 tw:dark:disabled:bg-input/80 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40",t),...a})}function zi({className:t,...e}){return r.jsx("textarea",{"data-slot":"textarea",className:h("pr-twp tw:flex tw:field-sizing-content tw:min-h-16 tw:w-full tw:rounded-lg tw:border tw:border-input tw:bg-transparent tw:px-2.5 tw:py-2 tw:text-base tw:transition-colors tw:outline-none tw:placeholder:text-muted-foreground tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:bg-input/50 tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:md:text-sm tw:dark:bg-input/30 tw:dark:disabled:bg-input/80 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40",t),...e})}function Di({className:t,...e}){return r.jsx("div",{"data-slot":"input-group",role:"group",className:h("pr-twp tw:group/input-group tw:relative tw:flex tw:h-8 tw:w-full tw:min-w-0 tw:items-center tw:rounded-lg tw:border tw:border-input tw:transition-colors tw:outline-none tw:in-data-[slot=combobox-content]:focus-within:border-inherit tw:in-data-[slot=combobox-content]:focus-within:ring-0 tw:has-disabled:bg-input/50 tw:has-disabled:opacity-50 tw:has-[[data-slot=input-group-control]:focus-visible]:border-ring tw:has-[[data-slot=input-group-control]:focus-visible]:ring-3 tw:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 tw:has-[[data-slot][aria-invalid=true]]:border-destructive tw:has-[[data-slot][aria-invalid=true]]:ring-3 tw:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 tw:has-[>[data-align=block-end]]:h-auto tw:has-[>[data-align=block-end]]:flex-col tw:has-[>[data-align=block-start]]:h-auto tw:has-[>[data-align=block-start]]:flex-col tw:has-[>textarea]:h-auto tw:dark:bg-input/30 tw:dark:has-disabled:bg-input/80 tw:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 tw:has-[>[data-align=block-end]]:[&>input]:pt-3 tw:has-[>[data-align=block-start]]:[&>input]:pb-3 tw:has-[>[data-align=inline-end]]:[&>input]:pe-1.5 tw:has-[>[data-align=inline-start]]:[&>input]:ps-1.5",t),...e})}const Ii=ge.cva("tw:flex tw:h-auto tw:cursor-text tw:items-center tw:justify-center tw:gap-2 tw:py-1.5 tw:text-sm tw:font-medium tw:text-muted-foreground tw:select-none tw:group-data-[disabled=true]/input-group:opacity-50 tw:[&>kbd]:rounded-[calc(var(--radius)-5px)] tw:[&>svg:not([class*=size-])]:size-4",{variants:{align:{"inline-start":"tw:order-first tw:ps-2 tw:has-[>button]:ms-[-0.3rem] tw:has-[>kbd]:ms-[-0.15rem]","inline-end":"tw:order-last tw:pe-2 tw:has-[>button]:me-[-0.3rem] tw:has-[>kbd]:me-[-0.15rem]","block-start":"tw:order-first tw:w-full tw:justify-start tw:px-2.5 tw:pt-2 tw:group-has-[>input]/input-group:pt-2 tw:[.border-b]:pb-2","block-end":"tw:order-last tw:w-full tw:justify-start tw:px-2.5 tw:pb-2 tw:group-has-[>input]/input-group:pb-2 tw:[.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function Mi({className:t,align:e="inline-start",...a}){return r.jsx("div",{role:"group","data-slot":"input-group-addon","data-align":e,className:h(Ii({align:e}),t),onClick:o=>{var n,i;o.target instanceof HTMLElement&&o.target.closest("button")||(i=(n=o.currentTarget.parentElement)==null?void 0:n.querySelector("input"))==null||i.focus()},...a})}ge.cva("tw:flex tw:items-center tw:gap-2 tw:text-sm tw:shadow-none",{variants:{size:{xs:"tw:h-6 tw:gap-1 tw:rounded-[calc(var(--radius)-3px)] tw:px-1.5 tw:[&>svg:not([class*=size-])]:size-3.5",sm:"tw:","icon-xs":"tw:size-6 tw:rounded-[calc(var(--radius)-3px)] tw:p-0 tw:has-[>svg]:p-0","icon-sm":"tw:size-8 tw:p-0 tw:has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function he({className:t,...e}){return r.jsx(Ve.Command,{"data-slot":"command",className:h("pr-twp tw:flex tw:size-full tw:flex-col tw:overflow-hidden tw:rounded-xl! tw:bg-popover tw:p-1 tw:text-popover-foreground",t),...e})}function Fe({className:t,onKeyDown:e,...a}){const o=ft(),n=l.useCallback(i=>{if(e==null||e(i),i.defaultPrevented||i.key!==" "||i.currentTarget.value!=="")return;const s=i.currentTarget.closest("[cmdk-root]"),c=s==null?void 0:s.querySelector('[cmdk-item][data-selected="true"]:not([data-disabled="true"])');c&&(i.preventDefault(),i.stopPropagation(),c.click())},[e]);return r.jsx("div",{"data-slot":"command-input-wrapper",className:"tw:p-1 tw:pb-0",dir:o,children:r.jsxs(Di,{className:"tw:h-8! tw:rounded-lg! tw:border-input/30 tw:bg-input/30 tw:shadow-none! tw:*:data-[slot=input-group-addon]:ps-2!",children:[r.jsx(Ve.Command.Input,{"data-slot":"command-input",className:h("tw:w-full tw:text-sm tw:outline-hidden tw:disabled:cursor-not-allowed tw:disabled:opacity-50",t),onKeyDown:n,...a}),r.jsx(Mi,{children:r.jsx(ht.IconSearch,{className:"tw:size-4 tw:shrink-0 tw:opacity-50"})})]})})}function fe({className:t,...e}){return r.jsx(Ve.Command.List,{"data-slot":"command-list",className:h("pr-twp tw:no-scrollbar tw:max-h-72 tw:scroll-py-1 tw:overflow-x-hidden tw:overflow-y-auto tw:outline-none",t),...e})}function Ze({className:t,...e}){return r.jsx(Ve.Command.Empty,{"data-slot":"command-empty",className:h("pr-twp tw:py-6 tw:text-center tw:text-sm",t),...e})}function re({className:t,...e}){return r.jsx(Ve.Command.Group,{"data-slot":"command-group",className:h("pr-twp tw:overflow-hidden tw:p-1 tw:text-foreground tw:**:[[cmdk-group-heading]]:px-2 tw:**:[[cmdk-group-heading]]:py-1.5 tw:**:[[cmdk-group-heading]]:text-xs tw:**:[[cmdk-group-heading]]:font-medium tw:**:[[cmdk-group-heading]]:text-muted-foreground",t),...e})}function ka({className:t,...e}){return r.jsx(Ve.Command.Separator,{"data-slot":"command-separator",className:h("pr-twp tw:-mx-1 tw:h-px tw:bg-border",t),...e})}function ie({className:t,children:e,...a}){return r.jsxs(Ve.Command.Item,{"data-slot":"command-item",className:h("pr-twp tw:group/command-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:in-data-[slot=dialog-content]:rounded-lg! tw:data-[disabled=true]:pointer-events-none tw:data-[disabled=true]:opacity-50 tw:data-selected:bg-muted tw:data-selected:text-foreground tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:data-selected:*:[svg]:text-foreground",t),...a,children:[e,r.jsx(ht.IconCheck,{className:"tw:ms-auto tw:opacity-0 tw:group-has-data-[slot=command-shortcut]/command-item:hidden tw:group-data-[checked=true]/command-item:opacity-100"})]})}function Oi({className:t,...e}){return r.jsx("span",{"data-slot":"command-shortcut",className:h("pr-twp tw:ms-auto tw:text-xs tw:tracking-widest tw:text-muted-foreground tw:group-data-selected/command-item:text-foreground",t),...e})}const Do=(t,e,a,o,n)=>{switch(t){case D.Section.OT:return e??"Old Testament";case D.Section.NT:return a??"New Testament";case D.Section.DC:return o??"Deuterocanon";case D.Section.Extra:return n??"Extra Materials";default:throw new Error(`Unknown section: ${t}`)}},$i=(t,e,a,o,n)=>{switch(t){case D.Section.OT:return e??"OT";case D.Section.NT:return a??"NT";case D.Section.DC:return o??"DC";case D.Section.Extra:return n??"Extra";default:throw new Error(`Unknown section: ${t}`)}};function Ce(t,e){var o;return((o=e==null?void 0:e.get(t))==null?void 0:o.localizedName)??st.Canon.bookIdToEnglishName(t)}function ja(t,e){var o;return((o=e==null?void 0:e.get(t))==null?void 0:o.localizedId)??t.toUpperCase()}const Io=st.Canon.allBookIds.filter(t=>!st.Canon.isObsolete(st.Canon.bookIdToNumber(t))),te=Object.fromEntries(Io.map(t=>[t,st.Canon.bookIdToEnglishName(t)]));function _a(t,e,a){const o=e.trim().toLowerCase();if(!o)return!1;const n=st.Canon.bookIdToEnglishName(t),i=a==null?void 0:a.get(t);return!!(D.includes(n.toLowerCase(),o)||D.includes(t.toLowerCase(),o)||(i?D.includes(i.localizedName.toLowerCase(),o)||D.includes(i.localizedId.toLowerCase(),o):!1))}function Mo({ref:t,bookId:e,isSelected:a,onSelect:o,onMouseDown:n,section:i,className:s,showCheck:c=!1,localizedBookNames:w,commandValue:d,disabled:u=!1}){const g=l.useRef(!1),m=()=>{u||(g.current||o==null||o(e),setTimeout(()=>{g.current=!1},100))},p=b=>{if(u){b.preventDefault();return}g.current=!0,n?n(b):o==null||o(e)},f=l.useMemo(()=>Ce(e,w),[e,w]),y=l.useMemo(()=>ja(e,w),[e,w]);return r.jsx("div",{className:h("tw:mx-1 tw:my-1 tw:border-b-0 tw:border-e-0 tw:border-s-2 tw:border-t-0 tw:border-solid",{"tw:border-s-red-200":i===D.Section.OT,"tw:border-s-purple-200":i===D.Section.NT,"tw:border-s-indigo-200":i===D.Section.DC,"tw:border-s-amber-200":i===D.Section.Extra}),children:r.jsxs(ie,{ref:t,value:d||`${e} ${st.Canon.bookIdToEnglishName(e)}`,onSelect:m,onMouseDown:p,role:"option","aria-selected":a,"aria-disabled":u||void 0,"aria-label":`${st.Canon.bookIdToEnglishName(e)} (${e.toLocaleUpperCase()})`,disabled:u,className:h(s,u&&"tw:cursor-not-allowed tw:opacity-50"),children:[c&&r.jsx($.Check,{className:h("tw:me-2 tw:h-4 tw:w-4 tw:shrink-0",a?"tw:opacity-100":"tw:opacity-0")}),r.jsx("span",{className:"tw:min-w-0 tw:flex-1",children:f}),r.jsx("span",{className:"tw:ms-2 tw:shrink-0 tw:text-xs tw:text-muted-foreground",children:y})]})})}function se({...t}){return r.jsx(k.Popover.Root,{"data-slot":"popover",...t})}function me({...t}){return r.jsx(k.Popover.Trigger,{"data-slot":"popover-trigger",...t})}const Oo=l.createContext(null);function jr({container:t,children:e}){return r.jsx(Oo.Provider,{value:t,children:e})}function ce({className:t,align:e="center",sideOffset:a=4,style:o,...n}){const i=ft(),s=l.useContext(Oo);return r.jsx(k.Popover.Portal,{container:s??void 0,children:r.jsx(k.Popover.Content,{"data-slot":"popover-content",align:e,sideOffset:a,className:h("pr-twp tw:flex tw:w-72 tw:origin-(--radix-popover-content-transform-origin) tw:flex-col tw:gap-2.5 tw:rounded-lg tw:bg-popover tw:p-2.5 tw:text-sm tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:outline-hidden tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95",t),style:{zIndex:We,...o},dir:i,...n})})}function $o({...t}){return r.jsx(k.Popover.Anchor,{"data-slot":"popover-anchor",...t})}function Ai({className:t,...e}){return r.jsx("div",{"data-slot":"popover-header",className:h("pr-twp tw:flex tw:flex-col tw:gap-0.5 tw:text-sm",t),...e})}function Pi({className:t,...e}){return r.jsx("div",{"data-slot":"popover-title",className:h("pr-twp tw:font-medium",t),...e})}function Li({className:t,...e}){return r.jsx("p",{"data-slot":"popover-description",className:h("pr-twp tw:text-muted-foreground",t),...e})}function Ao(t,e,a){return`${t} ${te[t]}${e?` ${ja(t,e)} ${Ce(t,e)}`:""}`}function Po({recentSearches:t,onSearchItemSelect:e,renderItem:a=u=>String(u),getItemKey:o=u=>String(u),ariaLabel:n="Show recent searches",groupHeading:i="Recent",id:s,classNameForItems:c,buttonClassName:w="tw:absolute tw:right-0 tw:top-0 tw:h-full tw:px-3 tw:py-2",buttonVariant:d="ghost"}){const[u,g]=l.useState(!1);if(t.length===0)return;const m=p=>{e(p),g(!1)};return r.jsxs(se,{open:u,onOpenChange:g,children:[r.jsx(me,{asChild:!0,children:r.jsx(F,{variant:d,size:"icon",className:w,"aria-label":n,children:r.jsx($.Clock,{className:"tw:h-4 tw:w-4"})})}),r.jsx(ce,{id:s,className:"tw:w-[300px] tw:p-0",align:"start",children:r.jsx(he,{children:r.jsx(fe,{children:r.jsx(re,{heading:i,children:t.map(p=>r.jsxs(ie,{onSelect:()=>m(p),className:h("tw:flex tw:items-center",c),children:[r.jsx($.Clock,{className:"tw:mr-2 tw:h-4 tw:w-4 tw:opacity-50"}),r.jsx("span",{children:a(p)})]},o(p)))})})})})]})}function Bi(t,e,a=(n,i)=>n===i,o=15){return n=>{const i=t.filter(c=>!a(c,n)),s=[n,...i.slice(0,o-1)];e(s)}}const _r={BOOK_ONLY:/^([^:\s]+(?:\s+[^:\s]+)*)$/i,BOOK_CHAPTER:/^([^:\s]+(?:\s+[^:\s]+)*)\s+(\d+)$/i,BOOK_CHAPTER_VERSE:/^([^:\s]+(?:\s+[^:\s]+)*)\s+(\d+):(\d*)$/i},Vi=[_r.BOOK_ONLY,_r.BOOK_CHAPTER,_r.BOOK_CHAPTER_VERSE];function Fi(t){return _r.BOOK_CHAPTER_VERSE.test(t.trim())}function Za(t,e){return st.Canon.bookIdToNumber(t)0?!1:e0?!1:eo.chapterNum?!1:a{if(n)return n;const s=i.exec(t.trim());if(s){const[c,w=void 0,d=void 0]=s.slice(1);let u;const g=e.filter(m=>_a(m,c,a));if(g.length===1&&([u]=g),!u&&w){if(st.Canon.isBookIdValid(c)){const m=c.toUpperCase();e.includes(m)&&(u=m)}if(!u&&a){const m=Array.from(a.entries()).find(([,p])=>p.localizedId.toLowerCase()===c.toLowerCase());m&&e.includes(m[0])&&([u]=m)}}if(!u&&w){const p=(f=>Object.keys(te).find(y=>te[y].toLowerCase()===f.toLowerCase()))(c);if(p&&e.includes(p)&&(u=p),!u&&a){const f=Array.from(a.entries()).find(([,y])=>y.localizedName.toLowerCase()===c.toLowerCase());f&&e.includes(f[0])&&([u]=f)}}if(u){let m=w?parseInt(w,10):void 0;m&&m>we(u)&&(m=Math.max(we(u),1));const p=d?parseInt(d,10):void 0;return{book:u,chapterNum:m,verseNum:p}}}},void 0);if(o)return o}function Ki(t,e,a,o){const n=l.useCallback(()=>{if(t.chapterNum>1)o({book:t.book,chapterNum:t.chapterNum-1,verseNum:1});else{const w=e.indexOf(t.book);if(w>0){const d=e[w-1],u=Math.max(we(d),1);o({book:d,chapterNum:u,verseNum:1})}}},[t,e,o]),i=l.useCallback(()=>{const w=we(t.book);if(t.chapterNum{o({book:t.book,chapterNum:t.chapterNum,verseNum:t.verseNum>1?t.verseNum-1:0})},[t,o]),c=l.useCallback(()=>{o({book:t.book,chapterNum:t.chapterNum,verseNum:t.verseNum+1})},[t,o]);return l.useMemo(()=>[{onClick:n,disabled:e.length===0||t.chapterNum===1&&e.indexOf(t.book)===0,title:"Previous chapter",icon:a==="ltr"?$.ChevronsLeft:$.ChevronsRight},{onClick:s,disabled:e.length===0||t.verseNum===0,title:"Previous verse",icon:a==="ltr"?$.ChevronLeft:$.ChevronRight},{onClick:c,disabled:e.length===0,title:"Next verse",icon:a==="ltr"?$.ChevronRight:$.ChevronLeft},{onClick:i,disabled:e.length===0||(t.chapterNum===we(t.book)||we(t.book)<=0)&&e.indexOf(t.book)===e.length-1,title:"Next chapter",icon:a==="ltr"?$.ChevronsRight:$.ChevronsLeft}],[t,e,a,n,s,c,i])}function Lo({count:t,valueBuilder:e,onSelect:a,itemRef:o,isDisabled:n,isDimmed:i,isSelected:s,className:c}){if(!(t<=0))return r.jsx(re,{children:r.jsx("div",{className:h("tw:grid tw:grid-cols-6 tw:gap-1",c),children:Array.from({length:t},(w,d)=>d+1).map(w=>{const d=(n==null?void 0:n(w))??!1;return r.jsx(ie,{value:e(w),onSelect:()=>{d||a(w)},ref:o(w),disabled:d,"aria-disabled":d||void 0,className:h("tw:h-8 tw:min-w-0 tw:cursor-pointer tw:justify-center tw:rounded-md tw:px-0 tw:text-center tw:text-sm",{"tw:bg-primary tw:text-primary-foreground":(s==null?void 0:s(w))??!1},{"tw:bg-muted/50 tw:text-muted-foreground/50":((i==null?void 0:i(w))??!1)&&!d},d&&"tw:cursor-not-allowed tw:opacity-40"),children:w},w)})})})}function Qa({bookId:t,scrRef:e,onChapterSelect:a,setChapterRef:o,isChapterDimmed:n,isChapterDisabled:i,className:s}){if(t)return r.jsx(Lo,{count:we(t),valueBuilder:c=>`${t} ${te[t]||""} ${c}`,onSelect:a,itemRef:o,isDisabled:i,isDimmed:n,isSelected:c=>t===e.book&&c===e.chapterNum,className:s})}function to({bookId:t,chapterNum:e,endVerse:a,scrRef:o,onVerseSelect:n,setVerseRef:i,isVerseDimmed:s,isVerseDisabled:c,className:w}){if(!(!t||a<=0))return r.jsx(Lo,{count:a,valueBuilder:d=>`${t} ${te[t]||""} ${e}:${d}`,onSelect:n,itemRef:i,isDisabled:c,isDimmed:s,isSelected:d=>t===o.book&&e===o.chapterNum&&d===o.verseNum,className:w})}function Nr({scrRef:t,handleSubmit:e,className:a,getActiveBookIds:o,localizedBookNames:n,localizedStrings:i,recentSearches:s,onAddRecentSearch:c,id:w,getEndVerse:d,disableReferencesUpTo:u,submitKeys:g,triggerContent:m,triggerVariant:p="outline",onOpenChange:f,onCloseAutoFocus:y,modal:b=!1,align:I="center"}){const C=ft(),[T,S]=l.useState(!1),[N,E]=l.useState(""),[z,j]=l.useState(""),[x,R]=l.useState("books"),[P,G]=l.useState(void 0),[K,V]=l.useState(void 0),[q,M]=l.useState(void 0),[Y,lt]=l.useState(!1),kt=l.useRef(null),St=l.useRef(!1),J=l.useRef(void 0),Et=l.useRef(void 0),U=l.useRef(void 0),tt=l.useRef(void 0),rt=l.useRef({}),at=l.useRef({}),ot=l.useCallback(_=>{e(_),c&&c(_)},[e,c]),Lt=l.useMemo(()=>o?o():Io,[o]),gt=l.useMemo(()=>({[D.Section.OT]:Lt.filter(H=>st.Canon.isBookOT(H)),[D.Section.NT]:Lt.filter(H=>st.Canon.isBookNT(H)),[D.Section.DC]:Lt.filter(H=>st.Canon.isBookDC(H)),[D.Section.Extra]:Lt.filter(H=>st.Canon.extraBooks().includes(H))}),[Lt]),Ft=l.useMemo(()=>Object.values(gt).flat(),[gt]),Gt=l.useMemo(()=>{if(!z.trim())return gt;const _={[D.Section.OT]:[],[D.Section.NT]:[],[D.Section.DC]:[],[D.Section.Extra]:[]};return[D.Section.OT,D.Section.NT,D.Section.DC,D.Section.Extra].forEach(Z=>{_[Z]=gt[Z].filter(_t=>_a(_t,z,n))}),_},[gt,z,n]),A=l.useMemo(()=>Ui(z,Ft,n),[z,Ft,n]),Tt=l.useRef(!1);l.useEffect(()=>{if(!Tt.current){Tt.current=!0;return}f==null||f(T)},[T,f]);const Bt=l.useCallback(()=>{if(A){const _=A.chapterNum??1,H=A.verseNum??1;if(u&&Yr(A.book,_,H,u))return;ot({book:A.book,chapterNum:_,verseNum:H}),S(!1),j(""),E("")}},[ot,A,u]),Qt=l.useCallback(_=>{const H=K??(A==null?void 0:A.book),Z=q??(A==null?void 0:A.chapterNum);!H||!Z||(ot({book:H,chapterNum:Z,verseNum:_}),S(!1))},[ot,K,q,A]),Ut=l.useCallback(_=>{if(u&&Za(_,u))return;if(we(_)<=1){ot({book:_,chapterNum:1,verseNum:1}),S(!1),j("");return}G(_),R("chapters")},[ot,u]),Rt=l.useCallback(_=>{const H=x==="chapters"?P:A==null?void 0:A.book;if(H){if(d&&d(H,_)>1){V(H),M(_),R("verses"),E("");return}ot({book:H,chapterNum:_,verseNum:1}),S(!1)}},[ot,x,P,A,d]),je=l.useCallback(_=>{ot(_),S(!1),j("")},[ot]),Kt=Ki(t,Ft,C,e),qt=l.useCallback(()=>{R("books"),G(void 0),V(void 0),M(void 0),setTimeout(()=>{Et.current&&Et.current.focus()},0)},[]),B=l.useCallback(()=>{const _=K;V(void 0),M(void 0),_?(G(_),R("chapters"),E("")):qt()},[K,qt]),W=l.useCallback(_=>{S(_),_&&(R("books"),G(void 0),V(void 0),M(void 0),j(""))},[]),{otLong:nt,ntLong:et,dcLong:wt,extraLong:mt}={otLong:i==null?void 0:i["%scripture_section_ot_long%"],ntLong:i==null?void 0:i["%scripture_section_nt_long%"],dcLong:i==null?void 0:i["%scripture_section_dc_long%"],extraLong:i==null?void 0:i["%scripture_section_extra_long%"]},vt=l.useCallback(_=>Do(_,nt,et,wt,mt),[nt,et,wt,mt]),ut=l.useCallback(_=>A?!!A.chapterNum&&!_.toString().includes(A.chapterNum.toString()):!1,[A]),jt=l.useMemo(()=>D.formatScrRef(t,n?Ce(t.book,n):"English"),[t,n]),O=l.useCallback(_=>H=>{rt.current[_]=H},[]),ct=l.useCallback(_=>H=>{at.current[_]=H},[]),dt=l.useMemo(()=>Fi(z),[z]),bt=l.useMemo(()=>!d||!A||!A.chapterNum||!dt?!1:d(A.book,A.chapterNum)>0,[d,A,dt]),Re=l.useCallback(_=>u?Za(_,u):!1,[u]),_e=l.useCallback(_=>H=>u?Gi(_,H,u):!1,[u]),Qe=l.useCallback((_,H)=>Z=>u?Yr(_,H,Z,u):!1,[u]),ze=(i==null?void 0:i["%webView_bookChapterControl_selectChapter%"])??"Select Chapter",tr=(i==null?void 0:i["%webView_bookChapterControl_selectVerse%"])??"Select Verse",er=l.useCallback(_=>{(_.key==="Home"||_.key==="End")&&_.stopPropagation(),g&&g.includes(_.key)&&A&&A.chapterNum!==void 0&&A.verseNum!==void 0&&(_.preventDefault(),_.stopPropagation(),Bt())},[g,A,Bt]),gr=l.useCallback(_=>{var Wt,Ue,rr;if(_.ctrlKey)return;const{isLetter:H,isDigit:Z}=Ja(_.key);if((x==="chapters"||x==="verses")&&(_.key===" "||_.key==="Enter")){const zt=_.target instanceof HTMLElement?_.target:void 0;if(!!(zt!=null&&zt.closest('button, a, input, select, textarea, [role="button"]'))){_.stopPropagation();return}const Nt=(Wt=J.current)==null?void 0:Wt.querySelector('[cmdk-item][data-selected="true"]:not([data-disabled="true"])');if(Nt){_.preventDefault(),_.stopPropagation(),Nt.click();return}}if((x==="chapters"||x==="verses")&&(H||Z)){_.preventDefault(),_.stopPropagation();return}if(x==="chapters"&&_.key==="Backspace"){_.preventDefault(),_.stopPropagation(),qt();return}if(x==="verses"&&_.key==="Backspace"){_.preventDefault(),_.stopPropagation(),B();return}const _t=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(_.key);if(x==="verses"&&_t){const zt=K,xt=q;if(!zt||!xt||!d)return;const Nt=d(zt,xt);if(!Nt)return;(Ue=J.current)==null||Ue.focus();const pt=(()=>{if(!N)return 1;const De=N.match(/:(\d+)$/);return De?parseInt(De[1],10):0})();let Ht=pt;const Yt=6;switch(_.key){case"ArrowLeft":pt!==0&&(Ht=pt>1?pt-1:Nt);break;case"ArrowRight":pt!==0&&(Ht=pt{const De=at.current[Ht];De&&De.scrollIntoView({block:"nearest",behavior:"smooth"})},0));return}if((x==="chapters"||x==="books"&&A)&&_t){const zt=x==="chapters"?P:A==null?void 0:A.book;if(!zt)return;x==="chapters"&&((rr=J.current)==null||rr.focus());const xt=(()=>{if(!N)return 1;const Yt=N.match(/(\d+)$/);return Yt?parseInt(Yt[1],10):0})(),Nt=we(zt);if(!Nt)return;let pt=xt;const Ht=6;switch(_.key){case"ArrowLeft":xt!==0&&(pt=xt>1?xt-1:Nt);break;case"ArrowRight":xt!==0&&(pt=xt{const Yt=rt.current[pt];Yt&&Yt.scrollIntoView({block:"nearest",behavior:"smooth"})},0))}},[x,A,qt,B,P,K,q,d,N]),hr=l.useCallback(_=>{var _t;if(_.shiftKey||_.key==="Tab"||_.key===" ")return;if(_.key==="Enter"){_.stopPropagation();return}if(_.key==="ArrowUp"||_.key==="ArrowDown"){(_t=Et.current)==null||_t.focus();return}const{isLetter:H,isDigit:Z}=Ja(_.key);(H||Z)&&(_.preventDefault(),j(Wt=>Wt+_.key),Et.current.focus(),lt(!1))},[]);return l.useLayoutEffect(()=>{const _=setTimeout(()=>{if(T&&x==="books"&&U.current&&tt.current){const H=U.current,Z=tt.current,_t=Z.offsetTop,Wt=H.clientHeight,Ue=Z.clientHeight,rr=_t-Wt/2+Ue/2;H.scrollTo({top:Math.max(0,rr),behavior:"smooth"}),E(Ao(t.book))}},0);return()=>{clearTimeout(_)}},[T,x,z,A,t.book]),l.useLayoutEffect(()=>{if(x==="chapters"&&P){const _=P===t.book,H=_?t.chapterNum:1;E(`${P} ${te[P]||""} ${H}`),setTimeout(()=>{if(U.current)if(_){const Z=rt.current[t.chapterNum];Z&&Z.scrollIntoView({block:"center",behavior:"smooth"})}else U.current.scrollTo({top:0});J.current&&J.current.focus()},0)}},[x,P,A,t.book,t.chapterNum]),l.useLayoutEffect(()=>{if(x==="verses"&&K&&q!==void 0){const _=K===t.book&&q===t.chapterNum,H=_?t.verseNum:1;E(`${K} ${te[K]||""} ${q}:${H}`),setTimeout(()=>{if(U.current)if(_){const Z=at.current[t.verseNum];Z&&Z.scrollIntoView({block:"center",behavior:"smooth"})}else U.current.scrollTo({top:0});J.current&&J.current.focus()},0)}},[x,K,q,t.book,t.chapterNum,t.verseNum]),r.jsxs(se,{open:T,onOpenChange:W,modal:b,children:[r.jsx(me,{asChild:!0,children:r.jsx(F,{ref:kt,"aria-label":"book-chapter-trigger",variant:p,role:"combobox","aria-expanded":T,className:h("tw:h-8 tw:w-full tw:min-w-16 tw:max-w-48 tw:overflow-hidden tw:px-1",a),onClick:_=>{St.current&&(St.current=!1,_.preventDefault())},children:m??r.jsx("span",{className:"tw:truncate",children:jt})})}),r.jsx(ce,{id:w,forceMount:!0,className:"tw:w-[var(--radix-popper-anchor-width,280px)] tw:min-w-[200px] tw:max-w-[280px] tw:p-0",align:I,onKeyDownCapture:gr,onKeyDown:_=>_.stopPropagation(),onPointerDownOutside:_=>{const{target:H}=_;T&&kt.current&&H instanceof Node&&kt.current.contains(H)&&(St.current=!0,W(!1))},onCloseAutoFocus:y,children:r.jsxs(he,{ref:J,loop:!0,value:N,onValueChange:E,shouldFilter:!1,children:[x==="books"?r.jsxs("div",{className:"tw:flex tw:items-end",children:[r.jsxs("div",{className:"tw:relative tw:flex-1",children:[r.jsx(Fe,{ref:Et,value:z,onValueChange:j,onKeyDown:er,onFocus:()=>lt(!1),className:s&&s.length>0?"tw:!pr-10":""}),s&&s.length>0&&r.jsx(Po,{recentSearches:s,onSearchItemSelect:je,renderItem:_=>D.formatScrRef(_,"English"),getItemKey:_=>`${_.book}-${_.chapterNum}-${_.verseNum}`,ariaLabel:i==null?void 0:i["%history_recentSearches_ariaLabel%"],groupHeading:i==null?void 0:i["%history_recent%"]})]}),r.jsx("div",{className:"tw:flex tw:items-center tw:gap-1 tw:border-b tw:pe-2",children:Kt.map(({onClick:_,disabled:H,title:Z,icon:_t})=>r.jsx(F,{variant:"ghost",size:"sm",onClick:()=>{lt(!0),_()},disabled:H,className:"tw:h-10 tw:w-4 tw:p-0",title:Z,onKeyDown:hr,children:r.jsx(_t,{})},Z))})]}):r.jsxs("div",{className:"tw:flex tw:items-center tw:border-b tw:px-3 tw:py-2",children:[r.jsx(F,{variant:"ghost",size:"sm",onClick:x==="verses"?B:qt,className:"tw:mr-2 tw:h-6 tw:w-6 tw:p-0",tabIndex:-1,children:C==="ltr"?r.jsx($.ArrowLeft,{className:"tw:h-4 tw:w-4"}):r.jsx($.ArrowRight,{className:"tw:h-4 tw:w-4"})}),x==="chapters"&&P&&r.jsx("span",{tabIndex:-1,className:"tw:text-sm tw:font-medium",children:Ce(P,n)}),x==="verses"&&K&&q!==void 0&&r.jsx("span",{tabIndex:-1,className:"tw:text-sm tw:font-medium",children:`${Ce(K,n)} ${q}`}),r.jsx("span",{tabIndex:-1,className:"tw:ms-auto tw:text-sm tw:font-medium tw:text-muted-foreground",children:x==="verses"?tr:ze})]}),!Y&&r.jsxs(fe,{ref:U,children:[x==="books"&&r.jsxs(r.Fragment,{children:[!A&&Object.entries(Gt).map(([_,H])=>{if(H.length!==0)return r.jsx(re,{heading:vt(_),children:H.map(Z=>r.jsx(Mo,{bookId:Z,onSelect:_t=>Ut(_t),section:D.getSectionForBook(Z),commandValue:`${Z} ${te[Z]}`,ref:Z===t.book?tt:void 0,localizedBookNames:n,disabled:Re(Z)},Z))},_)}),A&&r.jsx(re,{children:r.jsx(ie,{value:`${A.book} ${te[A.book]} ${A.chapterNum||""}:${A.verseNum||""})}`,onSelect:Bt,disabled:!!u&&Yr(A.book,A.chapterNum??1,A.verseNum??1,u),className:"tw:font-semibold tw:text-primary",children:D.formatScrRef({book:A.book,chapterNum:A.chapterNum??1,verseNum:A.verseNum??1},n?ja(A.book,n):void 0)},"top-match")}),A&&bt&&A.chapterNum&&d&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"tw:mb-2 tw:flex tw:items-center tw:justify-between tw:px-3 tw:text-sm tw:font-medium tw:text-muted-foreground",children:[r.jsx("span",{children:`${Ce(A.book,n)} ${A.chapterNum}`}),r.jsx("span",{children:tr})]}),r.jsx(to,{bookId:A.book,chapterNum:A.chapterNum,endVerse:d(A.book,A.chapterNum),scrRef:t,onVerseSelect:Qt,setVerseRef:ct,isVerseDisabled:Qe(A.book,A.chapterNum),className:"tw:px-4 tw:pb-4"})]}),A&&!bt&&we(A.book)>1&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"tw:mb-2 tw:flex tw:items-center tw:justify-between tw:px-3 tw:text-sm tw:font-medium tw:text-muted-foreground",children:[r.jsx("span",{children:Ce(A.book,n)}),r.jsx("span",{children:ze})]}),r.jsx(Qa,{bookId:A.book,scrRef:t,onChapterSelect:Rt,setChapterRef:O,isChapterDimmed:ut,isChapterDisabled:_e(A.book),className:"tw:px-4 tw:pb-4"})]})]}),x==="chapters"&&P&&r.jsx(Qa,{bookId:P,scrRef:t,onChapterSelect:Rt,setChapterRef:O,isChapterDisabled:_e(P),className:"tw:p-4"}),x==="verses"&&K&&q!==void 0&&d&&r.jsx(to,{bookId:K,chapterNum:q,endVerse:d(K,q),scrRef:t,onVerseSelect:Qt,setVerseRef:ct,isVerseDisabled:Qe(K,q),className:"tw:p-4"})]})]})})]})}const qi=Object.freeze(["%scripture_section_ot_long%","%scripture_section_nt_long%","%scripture_section_dc_long%","%scripture_section_extra_long%","%history_recent%","%history_recentSearches_ariaLabel%","%webView_bookChapterControl_selectChapter%","%webView_bookChapterControl_selectVerse%"]);function yt({className:t,...e}){return r.jsx(k.Label.Root,{"data-slot":"label",className:h("pr-twp tw:flex tw:items-center tw:gap-2 tw:text-sm tw:leading-none tw:font-medium tw:select-none tw:group-data-[disabled=true]:pointer-events-none tw:group-data-[disabled=true]:opacity-50 tw:peer-disabled:cursor-not-allowed tw:peer-disabled:opacity-50",t),...e})}function Na({className:t,...e}){const a=ft();return r.jsx(k.RadioGroup.Root,{"data-slot":"radio-group",className:h("pr-twp tw:grid tw:w-full tw:gap-2",t),dir:a,...e})}function Dr({className:t,...e}){return r.jsx(k.RadioGroup.Item,{"data-slot":"radio-group-item",className:h("pr-twp tw:group/radio-group-item tw:peer tw:relative tw:flex tw:aspect-square tw:size-4 tw:shrink-0 tw:rounded-full tw:border tw:border-input tw:outline-none tw:after:absolute tw:after:-inset-x-3 tw:after:-inset-y-2 tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:aria-invalid:aria-checked:border-primary tw:dark:bg-input/30 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:data-checked:border-primary tw:data-checked:bg-primary tw:data-checked:text-primary-foreground tw:dark:data-checked:bg-primary",t),...e,children:r.jsx(k.RadioGroup.Indicator,{"data-slot":"radio-group-indicator",className:"tw:flex tw:size-4 tw:items-center tw:justify-center",children:r.jsx("span",{className:"tw:absolute tw:top-1/2 tw:start-1/2 tw:size-2 tw:-translate-x-1/2 tw:rtl:translate-x-1/2 tw:-translate-y-1/2 tw:rounded-full tw:bg-primary-foreground"})})})}function Hi(t){return typeof t=="string"?t:typeof t=="number"?t.toString():t.label}function wa({id:t,options:e=[],className:a,buttonClassName:o,popoverContentClassName:n,popoverContentStyle:i,value:s,onChange:c=()=>{},getOptionLabel:w=Hi,getButtonLabel:d,icon:u=void 0,buttonPlaceholder:g="",textPlaceholder:m="",commandEmptyMessage:p="No option found",buttonVariant:f="outline",alignDropDown:y="start",isDisabled:b=!1,ariaLabel:I,...C}){const[T,S]=l.useState(!1),N=d??w,E=j=>j.length>0&&typeof j[0]=="object"&&"options"in j[0],z=(j,x)=>{const R=w(j),P=typeof j=="object"&&"secondaryLabel"in j?j.secondaryLabel:void 0,G=`${x??""}${R}${P??""}`;return r.jsxs(ie,{value:R,onSelect:()=>{c(j),S(!1)},className:"tw:flex tw:items-center",children:[r.jsx($.Check,{className:h("tw:me-2 tw:h-4 tw:w-4 tw:shrink-0",{"tw:opacity-0":!s||w(s)!==R})}),r.jsxs("span",{className:"tw:flex-1 tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap",children:[R,P&&r.jsxs("span",{className:"tw:text-muted-foreground",children:[" · ",P]})]})]},G)};return r.jsxs(se,{open:T,onOpenChange:S,...C,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:f,role:"combobox","aria-expanded":T,"aria-label":I,id:t,className:h("tw:flex tw:w-[200px] tw:items-center tw:justify-between tw:overflow-hidden",o??a),disabled:b,children:[r.jsxs("div",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:items-center tw:overflow-hidden",children:[u&&r.jsx("div",{className:"tw:shrink-0 tw:pe-2",children:u}),r.jsx("span",{className:h("tw:min-w-0 tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:text-start"),children:s?N(s):g})]}),r.jsx($.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ce,{align:y,className:h("tw:w-[200px] tw:p-0",n),style:i,children:r.jsxs(he,{children:[r.jsx(Fe,{placeholder:m,className:"tw:text-inherit"}),r.jsx(Ze,{children:p}),r.jsx(fe,{children:E(e)?e.map(j=>r.jsx(re,{heading:j.groupHeading,children:j.options.map(x=>z(x,j.groupHeading))},j.groupHeading)):e.map(j=>z(j))})]})})]})}function Bo({startChapter:t,endChapter:e,handleSelectStartChapter:a,handleSelectEndChapter:o,isDisabled:n=!1,chapterCount:i}){const s=l.useMemo(()=>Array.from({length:i},(d,u)=>u+1),[i]),c=d=>{a(d),d>e&&o(d)},w=d=>{o(d),dd.toString(),value:t},"start chapter"),r.jsx(yt,{htmlFor:"end-chapters-combobox",children:"to"}),r.jsx(wa,{isDisabled:n,onChange:w,buttonClassName:"tw:ms-2 tw:w-20",options:s,getOptionLabel:d=>d.toString(),value:e},"end chapter")]})}exports.BookSelectionMode=(t=>(t.CurrentBook="current book",t.ChooseBooks="choose books",t))(exports.BookSelectionMode||{});(t=>{t.CURRENT_BOOK="current book",t.CHOOSE_BOOKS="choose books"})(exports.BookSelectionMode||(exports.BookSelectionMode={}));const Yi=Object.freeze(["%webView_bookSelector_currentBook%","%webView_bookSelector_choose%","%webView_bookSelector_chooseBooks%"]),Wr=(t,e)=>t[e]??e;function Wi({handleBookSelectionModeChange:t,currentBookName:e,onSelectBooks:a,selectedBookIds:o,chapterCount:n,endChapter:i,handleSelectEndChapter:s,startChapter:c,handleSelectStartChapter:w,localizedStrings:d}){const u=Wr(d,"%webView_bookSelector_currentBook%"),g=Wr(d,"%webView_bookSelector_choose%"),m=Wr(d,"%webView_bookSelector_chooseBooks%"),[p,f]=l.useState("current book"),y=b=>{f(b),t(b)};return r.jsx(Na,{className:"pr-twp tw:flex",value:p,onValueChange:b=>y(b),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:flex-col tw:gap-4",children:[r.jsxs("div",{className:"tw:grid tw:grid-cols-[25%_25%_50%]",children:[r.jsxs("div",{className:"tw:flex tw:items-center",children:[r.jsx(Dr,{value:"current book"}),r.jsx(yt,{className:"tw:ms-1",children:u})]}),r.jsx(yt,{className:"tw:flex tw:items-center",children:e}),r.jsx("div",{className:"tw:flex tw:items-center tw:justify-end",children:r.jsx(Bo,{isDisabled:p==="choose books",handleSelectStartChapter:w,handleSelectEndChapter:s,chapterCount:n,startChapter:c,endChapter:i})})]}),r.jsxs("div",{className:"tw:grid tw:grid-cols-[25%_50%_25%]",children:[r.jsxs("div",{className:"tw:flex tw:items-center",children:[r.jsx(Dr,{value:"choose books"}),r.jsx(yt,{className:"tw:ms-1",children:m})]}),r.jsx(yt,{className:"tw:flex tw:items-center",children:o.map(b=>st.Canon.bookIdToEnglishName(b)).join(", ")}),r.jsx(F,{disabled:p==="current book",onClick:()=>a(),children:g})]})]})})}const Vo=l.createContext(null);function Xi(t,e){return{getTheme:function(){return e??null}}}function ve(){const t=l.useContext(Vo);return t==null&&function(e,...a){const o=new URL("https://lexical.dev/docs/error"),n=new URLSearchParams;n.append("code",e);for(const i of a)n.append("v",i);throw o.search=n.toString(),Error(`Minified Lexical error #${e}; visit ${o.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}(8),t}const Fo=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,Zi=Fo?l.useLayoutEffect:l.useEffect,br={tag:v.HISTORY_MERGE_TAG};function Ji({initialConfig:t,children:e}){const a=l.useMemo(()=>{const{theme:o,namespace:n,nodes:i,onError:s,editorState:c,html:w}=t,d=Xi(null,o),u=v.createEditor({editable:t.editable,html:w,namespace:n,nodes:i,onError:g=>s(g,u),theme:o});return function(g,m){if(m!==null){if(m===void 0)g.update(()=>{const p=v.$getRoot();if(p.isEmpty()){const f=v.$createParagraphNode();p.append(f);const y=Fo?document.activeElement:null;(v.$getSelection()!==null||y!==null&&y===g.getRootElement())&&f.select()}},br);else if(m!==null)switch(typeof m){case"string":{const p=g.parseEditorState(m);g.setEditorState(p,br);break}case"object":g.setEditorState(m,br);break;case"function":g.update(()=>{v.$getRoot().isEmpty()&&m(g)},br)}}}(u,c),[u,d]},[]);return Zi(()=>{const o=t.editable,[n]=a;n.setEditable(o===void 0||o)},[]),r.jsx(Vo.Provider,{value:a,children:e})}const Qi=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function ts({ignoreHistoryMergeTagChange:t=!0,ignoreSelectionChange:e=!1,onChange:a}){const[o]=ve();return Qi(()=>{if(a)return o.registerUpdateListener(({editorState:n,dirtyElements:i,dirtyLeaves:s,prevEditorState:c,tags:w})=>{e&&i.size===0&&s.size===0||t&&w.has(v.HISTORY_MERGE_TAG)||c.isEmpty()||a(n,o,w)})},[o,t,e,a]),null}const Ca={ltr:"tw:text-left",rtl:"tw:text-right",heading:{h1:"tw:scroll-m-20 tw:text-4xl tw:font-extrabold tw:tracking-tight tw:lg:text-5xl",h2:"tw:scroll-m-20 tw:border-b tw:pb-2 tw:text-3xl tw:font-semibold tw:tracking-tight tw:first:mt-0",h3:"tw:scroll-m-20 tw:text-2xl tw:font-semibold tw:tracking-tight",h4:"tw:scroll-m-20 tw:text-xl tw:font-semibold tw:tracking-tight",h5:"tw:scroll-m-20 tw:text-lg tw:font-semibold tw:tracking-tight",h6:"tw:scroll-m-20 tw:text-base tw:font-semibold tw:tracking-tight"},paragraph:"tw:outline-hidden",quote:"tw:mt-6 tw:border-l-2 tw:pl-6 tw:italic",link:"tw:text-blue-600 tw:hover:underline tw:hover:cursor-pointer",list:{checklist:"tw:relative",listitem:"tw:mx-8",listitemChecked:'tw:relative tw:mx-2 tw:px-6 tw:list-none tw:outline-hidden tw:line-through tw:before:content-[""] tw:before:w-4 tw:before:h-4 tw:before:top-0.5 tw:before:left-0 tw:before:cursor-pointer tw:before:block tw:before:bg-cover tw:before:absolute tw:before:border tw:before:border-primary tw:before:rounded tw:before:bg-primary tw:before:bg-no-repeat tw:after:content-[""] tw:after:cursor-pointer tw:after:border-white tw:after:border-solid tw:after:absolute tw:after:block tw:after:top-[6px] tw:after:w-[3px] tw:after:left-[7px] tw:after:right-[7px] tw:after:h-[6px] tw:after:rotate-45 tw:after:border-r-2 tw:after:border-b-2 tw:after:border-l-0 tw:after:border-t-0',listitemUnchecked:'tw:relative tw:mx-2 tw:px-6 tw:list-none tw:outline-hidden tw:before:content-[""] tw:before:w-4 tw:before:h-4 tw:before:top-0.5 tw:before:left-0 tw:before:cursor-pointer tw:before:block tw:before:bg-cover tw:before:absolute tw:before:border tw:before:border-primary tw:before:rounded',nested:{listitem:"tw:list-none tw:before:hidden tw:after:hidden"},ol:"tw:m-0 tw:p-0 tw:list-decimal tw:[&>li]:mt-2",olDepth:["tw:list-outside tw:!list-decimal","tw:list-outside tw:!list-[upper-roman]","tw:list-outside tw:!list-[lower-roman]","tw:list-outside tw:!list-[upper-alpha]","tw:list-outside tw:!list-[lower-alpha]"],ul:"tw:m-0 tw:p-0 tw:list-outside tw:[&>li]:mt-2",ulDepth:["tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc"]},hashtag:"tw:text-blue-600 tw:bg-blue-100 tw:rounded-md tw:px-1",text:{bold:"tw:font-bold",code:"tw:bg-gray-100 tw:p-1 tw:rounded-md",italic:"tw:italic",strikethrough:"tw:line-through",subscript:"tw:sub",superscript:"tw:sup",underline:"tw:underline",underlineStrikethrough:"tw:underline tw:line-through"},image:"tw:relative tw:inline-block tw:user-select-none tw:cursor-default editor-image",inlineImage:"tw:relative tw:inline-block tw:user-select-none tw:cursor-default inline-editor-image",keyword:"tw:text-purple-900 tw:font-bold",code:"EditorTheme__code",codeHighlight:{atrule:"EditorTheme__tokenAttr",attr:"EditorTheme__tokenAttr",boolean:"EditorTheme__tokenProperty",builtin:"EditorTheme__tokenSelector",cdata:"EditorTheme__tokenComment",char:"EditorTheme__tokenSelector",class:"EditorTheme__tokenFunction","class-name":"EditorTheme__tokenFunction",comment:"EditorTheme__tokenComment",constant:"EditorTheme__tokenProperty",deleted:"EditorTheme__tokenProperty",doctype:"EditorTheme__tokenComment",entity:"EditorTheme__tokenOperator",function:"EditorTheme__tokenFunction",important:"EditorTheme__tokenVariable",inserted:"EditorTheme__tokenSelector",keyword:"EditorTheme__tokenAttr",namespace:"EditorTheme__tokenVariable",number:"EditorTheme__tokenProperty",operator:"EditorTheme__tokenOperator",prolog:"EditorTheme__tokenComment",property:"EditorTheme__tokenProperty",punctuation:"EditorTheme__tokenPunctuation",regex:"EditorTheme__tokenVariable",selector:"EditorTheme__tokenSelector",string:"EditorTheme__tokenSelector",symbol:"EditorTheme__tokenProperty",tag:"EditorTheme__tokenProperty",url:"EditorTheme__tokenOperator",variable:"EditorTheme__tokenVariable"},characterLimit:"tw:!bg-destructive/50",table:"EditorTheme__table tw:w-fit tw:overflow-scroll tw:border-collapse",tableCell:"EditorTheme__tableCell tw:w-24 tw:relative tw:border tw:px-4 tw:py-2 tw:text-left tw:[&[align=center]]:text-center tw:[&[align=right]]:text-right",tableCellActionButton:"EditorTheme__tableCellActionButton tw:bg-background tw:block tw:border-0 tw:rounded-2xl tw:w-5 tw:h-5 tw:text-foreground tw:cursor-pointer",tableCellActionButtonContainer:"EditorTheme__tableCellActionButtonContainer tw:block tw:right-1 tw:top-1.5 tw:absolute tw:z-10 tw:w-5 tw:h-5",tableCellEditing:"EditorTheme__tableCellEditing tw:rounded-sm tw:shadow-sm",tableCellHeader:"EditorTheme__tableCellHeader tw:bg-muted tw:border tw:px-4 tw:py-2 tw:text-left tw:font-bold tw:[&[align=center]]:text-center tw:[&[align=right]]:text-right",tableCellPrimarySelected:"EditorTheme__tableCellPrimarySelected tw:border tw:border-primary tw:border-solid tw:block tw:h-[calc(100%-2px)] tw:w-[calc(100%-2px)] tw:absolute tw:-left-[1px] tw:-top-[1px] tw:z-10 ",tableCellResizer:"EditorTheme__tableCellResizer tw:absolute tw:-right-1 tw:h-full tw:w-2 tw:cursor-ew-resize tw:z-10 tw:top-0",tableCellSelected:"EditorTheme__tableCellSelected tw:bg-muted",tableCellSortedIndicator:"EditorTheme__tableCellSortedIndicator tw:block tw:opacity-50 tw:absolute tw:bottom-0 tw:left-0 tw:w-full tw:h-1 tw:bg-muted",tableResizeRuler:"EditorTheme__tableCellResizeRuler tw:block tw:absolute tw:w-[1px] tw:h-full tw:bg-primary tw:top-0",tableRowStriping:"EditorTheme__tableRowStriping tw:m-0 tw:border-t tw:p-0 tw:even:bg-muted",tableSelected:"EditorTheme__tableSelected tw:ring-2 tw:ring-primary tw:ring-offset-2",tableSelection:"EditorTheme__tableSelection tw:bg-transparent",layoutItem:"tw:border tw:border-dashed tw:px-4 tw:py-2",layoutContainer:"tw:grid tw:gap-2.5 tw:my-2.5 tw:mx-0",autocomplete:"tw:text-muted-foreground",blockCursor:"",embedBlock:{base:"tw:user-select-none",focus:"tw:ring-2 tw:ring-primary tw:ring-offset-2"},hr:'tw:p-0.5 tw:border-none tw:my-1 tw:mx-0 tw:cursor-pointer tw:after:content-[""] tw:after:block tw:after:h-0.5 tw:after:bg-muted tw:selected:ring-2 tw:selected:ring-primary tw:selected:ring-offset-2 tw:selected:user-select-none',indent:"[--lexical-indent-base-value:40px]",mark:"",markOverlap:""};function Ot({delayDuration:t=0,...e}){return r.jsx(k.Tooltip.Provider,{"data-slot":"tooltip-provider",delayDuration:t,...e})}function $t({...t}){return r.jsx(k.Tooltip.Root,{"data-slot":"tooltip",...t})}function At({className:t,variant:e,...a}){return r.jsx(k.Tooltip.Trigger,{"data-slot":"tooltip-trigger",className:e?h(ya({variant:e}),t):t,...a})}function Pt({className:t,sideOffset:e=0,style:a,children:o,...n}){return r.jsx(k.Tooltip.Portal,{children:r.jsxs(k.Tooltip.Content,{"data-slot":"tooltip-content",sideOffset:e,style:{zIndex:To,...a},className:h("pr-twp tw:inline-flex tw:w-fit tw:max-w-xs tw:origin-(--radix-tooltip-content-transform-origin) tw:items-center tw:gap-1.5 tw:rounded-md tw:bg-foreground tw:px-3 tw:py-1.5 tw:text-xs tw:text-background tw:has-data-[slot=kbd]:pe-1.5 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:**:data-[slot=kbd]:relative tw:**:data-[slot=kbd]:isolate tw:**:data-[slot=kbd]:z-50 tw:**:data-[slot=kbd]:rounded-sm tw:data-[state=delayed-open]:animate-in tw:data-[state=delayed-open]:fade-in-0 tw:data-[state=delayed-open]:zoom-in-95 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95",t),...n,children:[o,r.jsx(k.Tooltip.Arrow,{className:"tw:z-50 tw:size-2.5 tw:translate-y-[calc(-50%_-_2px)] tw:rotate-45 tw:rounded-[2px] tw:bg-foreground tw:fill-foreground"})]})})}const Sa=[ca.HeadingNode,v.ParagraphNode,v.TextNode,ca.QuoteNode],es=l.createContext(null),Xr={didCatch:!1,error:null};class rs extends l.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Xr}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var a,o,n=arguments.length,i=new Array(n),s=0;s0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return t.length!==e.length||t.some((a,o)=>!Object.is(a,e[o]))}function os({children:t,onError:e}){return r.jsx(rs,{fallback:r.jsx("div",{style:{border:"1px solid #f00",color:"#f00",padding:"8px"},children:"An error was thrown."}),onError:e,children:t})}const ns=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function is(t){return{initialValueFn:()=>t.isEditable(),subscribe:e=>t.registerEditableListener(e)}}function ss(){return function(t){const[e]=ve(),a=l.useMemo(()=>t(e),[e,t]),[o,n]=l.useState(()=>a.initialValueFn()),i=l.useRef(o);return ns(()=>{const{initialValueFn:s,subscribe:c}=a,w=s();return i.current!==w&&(i.current=w,n(w)),c(d=>{i.current=d,n(d)})},[a,t]),o}(is)}function cs(t,e){const a=t.getRootElement();if(a===null)return[];const o=a.getBoundingClientRect(),n=getComputedStyle(a),i=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight),s=Array.from(e.getClientRects());let c,w=s.length;s.sort((d,u)=>{const g=d.top-u.top;return Math.abs(g)<=3?d.left-u.left:g});for(let d=0;du.top&&c.left+c.width>u.left,m=u.width+i===o.width;g||m?(s.splice(d--,1),w--):c=u}return s}function ls(t,e,a="self"){const o=t.getStartEndPoints();if(e.isSelected(t)&&!v.$isTokenOrSegmented(e)&&o!==null){const[n,i]=o,s=t.isBackward(),c=n.getNode(),w=i.getNode(),d=e.is(c),u=e.is(w);if(d||u){const[g,m]=v.$getCharacterOffsets(t),p=c.is(w),f=e.is(s?w:c),y=e.is(s?c:w);let b,I=0;p?(I=g>m?m:g,b=g>m?g:m):f?(I=s?m:g,b=void 0):y&&(I=0,b=s?g:m);const C=e.__text.slice(I,b);C!==e.__text&&(a==="clone"&&(e=v.$cloneWithPropertiesEphemeral(e)),e.__text=C)}}return e}function Ir(t,...e){const a=new URL("https://lexical.dev/docs/error"),o=new URLSearchParams;o.append("code",t);for(const n of e)o.append("v",n);throw a.search=o.toString(),Error(`Minified Lexical error #${t}; visit ${a.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const Go=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,ds=Go&&"documentMode"in document?document.documentMode:null;!(!Go||!("InputEvent"in window)||ds)&&"getTargetRanges"in new window.InputEvent("input");function de(t){return`${t}px`}const ws={attributes:!0,characterData:!0,childList:!0,subtree:!0};function us(t,e,a){let o=null,n=null,i=null,s=[];const c=document.createElement("div");function w(){o===null&&Ir(182),n===null&&Ir(183);const{left:g,top:m}=n.getBoundingClientRect(),p=cs(t,e);var f,y;c.isConnected||(y=c,(f=n).insertBefore(y,f.firstChild));let b=!1;for(let I=0;Ip.length;)s.pop();b&&a(s)}function d(){n=null,o=null,i!==null&&i.disconnect(),i=null,c.remove();for(const g of s)g.remove();s=[]}c.style.position="relative";const u=t.registerRootListener(function g(){const m=t.getRootElement();if(m===null)return d();const p=m.parentElement;if(!v.isHTMLElement(p))return d();d(),o=m,n=p,i=new MutationObserver(f=>{const y=t.getRootElement(),b=y&&y.parentElement;if(y!==o||b!==n)return g();for(const I of f)if(!c.contains(I.target))return w()}),i.observe(p,ws),w()});return()=>{u(),d()}}function eo(t,e,a){if(t.type!=="text"&&v.$isElementNode(e)){const o=e.getDOMSlot(a);return[o.element,o.getFirstChildOffset()+t.offset]}return[v.getDOMTextNode(a)||a,t.offset]}function ps(t){for(const e of t){const a=e.style;a.background!=="Highlight"&&(a.background="Highlight"),a.color!=="HighlightText"&&(a.color="HighlightText"),a.marginTop!==de(-1.5)&&(a.marginTop=de(-1.5)),a.paddingTop!==de(4)&&(a.paddingTop=de(4)),a.paddingBottom!==de(0)&&(a.paddingBottom=de(0))}}function gs(t,e=ps){let a=null,o=null,n=null,i=null,s=null,c=null,w=()=>{};function d(u){u.read(()=>{const g=v.$getSelection();if(!v.$isRangeSelection(g))return a=null,n=null,i=null,c=null,w(),void(w=()=>{});const[m,p]=function(j){const x=j.getStartEndPoints();return j.isBackward()?[x[1],x[0]]:x}(g),f=m.getNode(),y=f.getKey(),b=m.offset,I=p.getNode(),C=I.getKey(),T=p.offset,S=t.getElementByKey(y),N=t.getElementByKey(C),E=a===null||S!==o||b!==n||y!==a.getKey(),z=i===null||N!==s||T!==c||C!==i.getKey();if((E||z)&&S!==null&&N!==null){const j=function(x,R,P,G,K,V,q){const M=(x._window?x._window.document:document).createRange();return M.setStart(...eo(R,P,G)),M.setEnd(...eo(K,V,q)),M}(t,m,f,S,p,I,N);w(),w=us(t,j,e)}a=f,o=S,n=b,i=I,s=N,c=T})}return d(t.getEditorState()),v.mergeRegister(t.registerUpdateListener(({editorState:u})=>d(u)),()=>{w()})}function hs(t,e){let a=null;const o=()=>{const n=getSelection(),i=n&&n.anchorNode,s=t.getRootElement();i!==null&&s!==null&&s.contains(i)?a!==null&&(a(),a=null):a===null&&(a=gs(t,e))};return t.registerRootListener(n=>{if(n){const i=n.ownerDocument;return i.addEventListener("selectionchange",o),o(),()=>{a!==null&&a(),i.removeEventListener("selectionchange",o)}}})}function fs(t){const e=v.$findMatchingParent(t,a=>v.$isElementNode(a)&&!a.isInline());return v.$isElementNode(e)||Ir(4,t.__key),e}function ms(t){const e=v.$getSelection()||v.$getPreviousSelection();let a;if(v.$isRangeSelection(e))a=v.$caretFromPoint(e.focus,"next");else{if(e!=null){const s=e.getNodes(),c=s[s.length-1];c&&(a=v.$getSiblingCaret(c,"next"))}a=a||v.$getChildCaret(v.$getRoot(),"previous").getFlipped().insert(v.$createParagraphNode())}const o=vs(t,a),n=v.$getAdjacentChildCaret(o),i=v.$isChildCaret(n)?v.$normalizeCaret(n):o;return v.$setSelectionFromCaretRange(v.$getCollapsedCaretRange(i)),t.getLatest()}function vs(t,e,a){let o=v.$getCaretInDirection(e,"next");for(let n=o;n;n=v.$splitAtPointCaretNext(n,a))o=n;return v.$isTextPointCaret(o)&&Ir(283),o.insert(t.isInline()?v.$createParagraphNode().append(t):t),v.$getCaretInDirection(v.$getSiblingCaret(t.getLatest(),"next"),e.direction)}function bs(t){const e=v.$getSelection();if(!v.$isRangeSelection(e))return!1;const a=new Set,o=e.getNodes();for(let n=0;nv.$isElementNode(d)&&!d.isInline());if(c===null)continue;const w=c.getKey();c.canIndent()&&!a.has(w)&&(a.add(w),t(c))}return a.size>0}const xs=Symbol.for("preact-signals");function Fr(){if(xe>1)return void xe--;let t,e=!1;for(!function(){let a=Mr;for(Mr=void 0;a!==void 0;)a.S.v===a.v&&(a.S.i=a.i),a=a.o}();ir!==void 0;){let a=ir;for(ir=void 0,Or++;a!==void 0;){const o=a.u;if(a.u=void 0,a.f&=-3,!(8&a.f)&&Uo(a))try{a.c()}catch(n){e||(t=n,e=!0)}a=o}}if(Or=0,xe--,e)throw t}function ys(t){if(xe>0)return t();ua=++ks,xe++;try{return t()}finally{Fr()}}let Q,ir;function ro(t){const e=Q;Q=void 0;try{return t()}finally{Q=e}}let Mr,xe=0,Or=0,ks=0,ua=0,Cr=0;function ao(t){if(Q===void 0)return;let e=t.n;return e===void 0||e.t!==Q?(e={i:0,S:t,p:Q.s,n:void 0,t:Q,e:void 0,x:void 0,r:e},Q.s!==void 0&&(Q.s.n=e),Q.s=e,t.n=e,32&Q.f&&t.S(e),e):e.i===-1?(e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=Q.s,e.n=void 0,Q.s.n=e,Q.s=e),e):void 0}function It(t,e){this.v=t,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=e==null?void 0:e.watched,this.Z=e==null?void 0:e.unwatched,this.name=e==null?void 0:e.name}function cr(t,e){return new It(t,e)}function Uo(t){for(let e=t.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function oo(t){for(let e=t.s;e!==void 0;e=e.n){const a=e.S.n;if(a!==void 0&&(e.r=a),e.S.n=e,e.i=-1,e.n===void 0){t.s=e;break}}}function Ko(t){let e,a=t.s;for(;a!==void 0;){const o=a.p;a.i===-1?(a.S.U(a),o!==void 0&&(o.n=a.n),a.n!==void 0&&(a.n.p=o)):e=a,a.S.n=a.r,a.r!==void 0&&(a.r=void 0),a=o}t.s=e}function Ie(t,e){It.call(this,void 0),this.x=t,this.s=void 0,this.g=Cr-1,this.f=4,this.W=e==null?void 0:e.watched,this.Z=e==null?void 0:e.unwatched,this.name=e==null?void 0:e.name}function js(t,e){return new Ie(t,e)}function qo(t){const e=t.m;if(t.m=void 0,typeof e=="function"){xe++;const a=Q;Q=void 0;try{e()}catch(o){throw t.f&=-2,t.f|=8,Ea(t),o}finally{Q=a,Fr()}}}function Ea(t){for(let e=t.s;e!==void 0;e=e.n)e.S.U(e);t.x=void 0,t.s=void 0,qo(t)}function _s(t){if(Q!==this)throw new Error("Out-of-order effect");Ko(this),Q=t,this.f&=-2,8&this.f&&Ea(this),Fr()}function qe(t,e){this.x=t,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=e==null?void 0:e.name}function ue(t,e){const a=new qe(t,e);try{a.c()}catch(n){throw a.d(),n}const o=a.d.bind(a);return o[Symbol.dispose]=o,o}function Je(t,e={}){const a={};for(const o in t){const n=e[o],i=cr(n===void 0?t[o]:n);a[o]=i}return a}It.prototype.brand=xs,It.prototype.h=function(){return!0},It.prototype.S=function(t){const e=this.t;e!==t&&t.e===void 0&&(t.x=e,this.t=t,e!==void 0?e.e=t:ro(()=>{var a;(a=this.W)==null||a.call(this)}))},It.prototype.U=function(t){if(this.t!==void 0){const e=t.e,a=t.x;e!==void 0&&(e.x=a,t.e=void 0),a!==void 0&&(a.e=e,t.x=void 0),t===this.t&&(this.t=a,a===void 0&&ro(()=>{var o;(o=this.Z)==null||o.call(this)}))}},It.prototype.subscribe=function(t){return ue(()=>{const e=this.value,a=Q;Q=void 0;try{t(e)}finally{Q=a}},{name:"sub"})},It.prototype.valueOf=function(){return this.value},It.prototype.toString=function(){return this.value+""},It.prototype.toJSON=function(){return this.value},It.prototype.peek=function(){const t=Q;Q=void 0;try{return this.value}finally{Q=t}},Object.defineProperty(It.prototype,"value",{get(){const t=ao(this);return t!==void 0&&(t.i=this.i),this.v},set(t){if(t!==this.v){if(Or>100)throw new Error("Cycle detected");(function(e){xe!==0&&Or===0&&e.l!==ua&&(e.l=ua,Mr={S:e,v:e.v,i:e.i,o:Mr})})(this),this.v=t,this.i++,Cr++,xe++;try{for(let e=this.t;e!==void 0;e=e.x)e.t.N()}finally{Fr()}}}}),Ie.prototype=new It,Ie.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Cr))return!0;if(this.g=Cr,this.f|=1,this.i>0&&!Uo(this))return this.f&=-2,!0;const t=Q;try{oo(this),Q=this;const e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(e){this.v=e,this.f|=16,this.i++}return Q=t,Ko(this),this.f&=-2,!0},Ie.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(let e=this.s;e!==void 0;e=e.n)e.S.S(e)}It.prototype.S.call(this,t)},Ie.prototype.U=function(t){if(this.t!==void 0&&(It.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(let e=this.s;e!==void 0;e=e.n)e.S.U(e)}},Ie.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(let t=this.t;t!==void 0;t=t.x)t.t.N()}},Object.defineProperty(Ie.prototype,"value",{get(){if(1&this.f)throw new Error("Cycle detected");const t=ao(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}}),qe.prototype.c=function(){const t=this.S();try{if(8&this.f||this.x===void 0)return;const e=this.x();typeof e=="function"&&(this.m=e)}finally{t()}},qe.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,qo(this),oo(this),xe++;const t=Q;return Q=this,_s.bind(this,t)},qe.prototype.N=function(){2&this.f||(this.f|=2,this.u=ir,ir=this)},qe.prototype.d=function(){this.f|=8,1&this.f||Ea(this)},qe.prototype.dispose=function(){this.d()};v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({defaultSelection:"rootEnd",disabled:!1}),name:"@lexical/extension/AutoFocus",register(t,e,a){const o=a.getOutput();return ue(()=>o.disabled.value?void 0:t.registerRootListener(n=>{t.focus(()=>{const i=document.activeElement;n===null||i!==null&&n.contains(i)||n.focus({preventScroll:!0})},{defaultSelection:o.defaultSelection.peek()})}))}});function Ho(){const t=v.$getRoot(),e=v.$getSelection(),a=v.$createParagraphNode();t.clear(),t.append(a),e!==null&&a.select(),v.$isRangeSelection(e)&&(e.format=0)}function Yo(t,e=Ho){return t.registerCommand(v.CLEAR_EDITOR_COMMAND,a=>(t.update(e),!0),v.COMMAND_PRIORITY_EDITOR)}v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({$onClear:Ho}),name:"@lexical/extension/ClearEditor",register(t,e,a){const{$onClear:o}=a.getOutput();return ue(()=>Yo(t,o.value))}});function Ns(t){return(typeof t.nodes=="function"?t.nodes():t.nodes)||[]}const Zr=v.createState("format",{parse:t=>typeof t=="number"?t:0});class Wo extends v.DecoratorNode{$config(){return this.config("decorator-text",{extends:v.DecoratorNode,stateConfigs:[{flat:!0,stateConfig:Zr}]})}getFormat(){return v.$getState(this,Zr)}getFormatFlags(e,a){return v.toggleTextFormatType(this.getFormat(),e,a)}hasFormat(e){const a=v.TEXT_TYPE_TO_FORMAT[e];return(this.getFormat()&a)!==0}setFormat(e){return v.$setState(this,Zr,e)}toggleFormat(e){const a=this.getFormat(),o=v.toggleTextFormatType(a,e,null);return this.setFormat(o)}isInline(){return!0}createDOM(){return document.createElement("span")}updateDOM(){return!1}}function Cs(t){return t instanceof Wo}v.defineExtension({name:"@lexical/extension/DecoratorText",nodes:()=>[Wo],register:(t,e,a)=>t.registerCommand(v.FORMAT_TEXT_COMMAND,o=>{const n=v.$getSelection();if(v.$isNodeSelection(n)||v.$isRangeSelection(n))for(const i of n.getNodes())Cs(i)&&i.toggleFormat(o);return!1},v.COMMAND_PRIORITY_LOW)});function Xo(t,e){let a;return cr(t(),{unwatched(){a&&(a(),a=void 0)},watched(){this.value=t(),a=e(this)}})}const pa=v.defineExtension({build:t=>Xo(()=>t.getEditorState(),e=>t.registerUpdateListener(a=>{e.value=a.editorState})),name:"@lexical/extension/EditorState"});function it(t,...e){const a=new URL("https://lexical.dev/docs/error"),o=new URLSearchParams;o.append("code",t);for(const n of e)o.append("v",n);throw a.search=o.toString(),Error(`Minified Lexical error #${t}; visit ${a.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}function Zo(t,e){if(t&&e&&!Array.isArray(e)&&typeof t=="object"&&typeof e=="object"){const a=t,o=e;for(const n in o)a[n]=Zo(a[n],o[n]);return t}return e}const Ta=0,ga=1,Jo=2,Jr=3,xr=4,Ke=5,Qr=6,or=7;function ta(t){return t.id===Ta}function Qo(t){return t.id===Jo}function Ss(t){return function(e){return e.id===ga}(t)||it(305,String(t.id),String(ga)),Object.assign(t,{id:Jo})}const Es=new Set;class Ts{constructor(e,a){Dt(this,"builder");Dt(this,"configs");Dt(this,"_dependency");Dt(this,"_peerNameSet");Dt(this,"extension");Dt(this,"state");Dt(this,"_signal");this.builder=e,this.extension=a,this.configs=new Set,this.state={id:Ta}}mergeConfigs(){let e=this.extension.config||{};const a=this.extension.mergeConfig?this.extension.mergeConfig.bind(this.extension):v.shallowMergeConfig;for(const o of this.configs)e=a(e,o);return e}init(e){const a=this.state;Qo(a)||it(306,String(a.id));const o={getDependency:this.getInitDependency.bind(this),getDirectDependentNames:this.getDirectDependentNames.bind(this),getPeer:this.getInitPeer.bind(this),getPeerNameSet:this.getPeerNameSet.bind(this)},n={...o,getDependency:this.getDependency.bind(this),getInitResult:this.getInitResult.bind(this),getPeer:this.getPeer.bind(this)},i=function(c,w,d){return Object.assign(c,{config:w,id:Jr,registerState:d})}(a,this.mergeConfigs(),o);let s;this.state=i,this.extension.init&&(s=this.extension.init(e,i.config,o)),this.state=function(c,w,d){return Object.assign(c,{id:xr,initResult:w,registerState:d})}(i,s,n)}build(e){const a=this.state;let o;a.id!==xr&&it(307,String(a.id),String(Ke)),this.extension.build&&(o=this.extension.build(e,a.config,a.registerState));const n={...a.registerState,getOutput:()=>o,getSignal:this.getSignal.bind(this)};this.state=function(i,s,c){return Object.assign(i,{id:Ke,output:s,registerState:c})}(a,o,n)}register(e,a){this._signal=a;const o=this.state;o.id!==Ke&&it(308,String(o.id),String(Ke));const n=this.extension.register&&this.extension.register(e,o.config,o.registerState);return this.state=function(i){return Object.assign(i,{id:Qr})}(o),()=>{const i=this.state;i.id!==or&&it(309,String(o.id),String(or)),this.state=function(s){return Object.assign(s,{id:Ke})}(i),n&&n()}}afterRegistration(e){const a=this.state;let o;return a.id!==Qr&&it(310,String(a.id),String(Qr)),this.extension.afterRegistration&&(o=this.extension.afterRegistration(e,a.config,a.registerState)),this.state=function(n){return Object.assign(n,{id:or})}(a),o}getSignal(){return this._signal===void 0&&it(311),this._signal}getInitResult(){this.extension.init===void 0&&it(312,this.extension.name);const e=this.state;return function(a){return a.id>=xr}(e)||it(313,String(e.id),String(xr)),e.initResult}getInitPeer(e){const a=this.builder.extensionNameMap.get(e);return a?a.getExtensionInitDependency():void 0}getExtensionInitDependency(){const e=this.state;return function(a){return a.id>=Jr}(e)||it(314,String(e.id),String(Jr)),{config:e.config}}getPeer(e){const a=this.builder.extensionNameMap.get(e);return a?a.getExtensionDependency():void 0}getInitDependency(e){const a=this.builder.getExtensionRep(e);return a===void 0&&it(315,this.extension.name,e.name),a.getExtensionInitDependency()}getDependency(e){const a=this.builder.getExtensionRep(e);return a===void 0&&it(315,this.extension.name,e.name),a.getExtensionDependency()}getState(){const e=this.state;return function(a){return a.id>=or}(e)||it(316,String(e.id),String(or)),e}getDirectDependentNames(){return this.builder.incomingEdges.get(this.extension.name)||Es}getPeerNameSet(){let e=this._peerNameSet;return e||(e=new Set((this.extension.peerDependencies||[]).map(([a])=>a)),this._peerNameSet=e),e}getExtensionDependency(){if(!this._dependency){const e=this.state;(function(a){return a.id>=Ke})(e)||it(317,this.extension.name),this._dependency={config:e.config,init:e.initResult,output:e.output}}return this._dependency}}const no={tag:v.HISTORY_MERGE_TAG};function Rs(){const t=v.$getRoot();t.isEmpty()&&t.append(v.$createParagraphNode())}const zs=v.defineExtension({config:v.safeCast({setOptions:no,updateOptions:no}),init:({$initialEditorState:t=Rs})=>({$initialEditorState:t,initialized:!1}),afterRegistration(t,{updateOptions:e,setOptions:a},o){const n=o.getInitResult();if(!n.initialized){n.initialized=!0;const{$initialEditorState:i}=n;if(v.$isEditorState(i))t.setEditorState(i,a);else if(typeof i=="function")t.update(()=>{i(t)},e);else if(i&&(typeof i=="string"||typeof i=="object")){const s=t.parseEditorState(i);t.setEditorState(s,a)}}return()=>{}},name:"@lexical/extension/InitialState",nodes:[v.RootNode,v.TextNode,v.LineBreakNode,v.TabNode,v.ParagraphNode]}),io=Symbol.for("@lexical/extension/LexicalBuilder");function so(){}function Ds(t){throw t}function yr(t){return Array.isArray(t)?t:[t]}const ea="0.43.0+prod.esm";class He{constructor(e){Dt(this,"roots");Dt(this,"extensionNameMap");Dt(this,"outgoingConfigEdges");Dt(this,"incomingEdges");Dt(this,"conflicts");Dt(this,"_sortedExtensionReps");Dt(this,"PACKAGE_VERSION");this.outgoingConfigEdges=new Map,this.incomingEdges=new Map,this.extensionNameMap=new Map,this.conflicts=new Map,this.PACKAGE_VERSION=ea,this.roots=e;for(const a of e)this.addExtension(a)}static fromExtensions(e){const a=[yr(zs)];for(const o of e)a.push(yr(o));return new He(a)}static maybeFromEditor(e){const a=e[io];return a&&(a.PACKAGE_VERSION!==ea&&it(292,a.PACKAGE_VERSION,ea),a instanceof He||it(293)),a}static fromEditor(e){const a=He.maybeFromEditor(e);return a===void 0&&it(294),a}constructEditor(){const{$initialEditorState:e,onError:a,...o}=this.buildCreateEditorArgs(),n=Object.assign(v.createEditor({...o,...a?{onError:i=>{a(i,n)}}:{}}),{[io]:this});for(const i of this.sortedExtensionReps())i.build(n);return n}buildEditor(){let e=so;function a(){try{e()}finally{e=so}}const o=Object.assign(this.constructEditor(),{dispose:a,[Symbol.dispose]:a});return e=v.mergeRegister(this.registerEditor(o),()=>o.setRootElement(null)),o}hasExtensionByName(e){return this.extensionNameMap.has(e)}getExtensionRep(e){const a=this.extensionNameMap.get(e.name);if(a)return a.extension!==e&&it(295,e.name),a}addEdge(e,a,o){const n=this.outgoingConfigEdges.get(e);n?n.set(a,o):this.outgoingConfigEdges.set(e,new Map([[a,o]]));const i=this.incomingEdges.get(a);i?i.add(e):this.incomingEdges.set(a,new Set([e]))}addExtension(e){this._sortedExtensionReps!==void 0&&it(296);const a=yr(e),[o]=a;typeof o.name!="string"&&it(297,typeof o.name);let n=this.extensionNameMap.get(o.name);if(n!==void 0&&n.extension!==o&&it(298,o.name),!n){n=new Ts(this,o),this.extensionNameMap.set(o.name,n);const i=this.conflicts.get(o.name);typeof i=="string"&&it(299,o.name,i);for(const s of o.conflictsWith||[])this.extensionNameMap.has(s)&&it(299,o.name,s),this.conflicts.set(s,o.name);for(const s of o.dependencies||[]){const c=yr(s);this.addEdge(o.name,c[0].name,c.slice(1)),this.addExtension(c)}for(const[s,c]of o.peerDependencies||[])this.addEdge(o.name,s,c?[c]:[])}}sortedExtensionReps(){if(this._sortedExtensionReps)return this._sortedExtensionReps;const e=[],a=(o,n)=>{let i=o.state;if(Qo(i))return;const s=o.extension.name;var c;ta(i)||it(300,s,n||"[unknown]"),ta(c=i)||it(304,String(c.id),String(Ta)),i=Object.assign(c,{id:ga}),o.state=i;const w=this.outgoingConfigEdges.get(s);if(w)for(const d of w.keys()){const u=this.extensionNameMap.get(d);u&&a(u,s)}i=Ss(i),o.state=i,e.push(o)};for(const o of this.extensionNameMap.values())ta(o.state)&&a(o);for(const o of e)for(const[n,i]of this.outgoingConfigEdges.get(o.extension.name)||[])if(i.length>0){const s=this.extensionNameMap.get(n);if(s)for(const c of i)s.configs.add(c)}for(const[o,...n]of this.roots)if(n.length>0){const i=this.extensionNameMap.get(o.name);i===void 0&&it(301,o.name);for(const s of n)i.configs.add(s)}return this._sortedExtensionReps=e,this._sortedExtensionReps}registerEditor(e){const a=this.sortedExtensionReps(),o=new AbortController,n=[()=>o.abort()],i=o.signal;for(const s of a){const c=s.register(e,i);c&&n.push(c)}for(const s of a){const c=s.afterRegistration(e);c&&n.push(c)}return v.mergeRegister(...n)}buildCreateEditorArgs(){const e={},a=new Set,o=new Map,n=new Map,i={},s={},c=this.sortedExtensionReps();for(const u of c){const{extension:g}=u;if(g.onError!==void 0&&(e.onError=g.onError),g.disableEvents!==void 0&&(e.disableEvents=g.disableEvents),g.parentEditor!==void 0&&(e.parentEditor=g.parentEditor),g.editable!==void 0&&(e.editable=g.editable),g.namespace!==void 0&&(e.namespace=g.namespace),g.$initialEditorState!==void 0&&(e.$initialEditorState=g.$initialEditorState),g.nodes)for(const m of Ns(g)){if(typeof m!="function"){const p=o.get(m.replace);p&&it(302,g.name,m.replace.name,p.extension.name),o.set(m.replace,u)}a.add(m)}if(g.html){if(g.html.export)for(const[m,p]of g.html.export.entries())n.set(m,p);g.html.import&&Object.assign(i,g.html.import)}g.theme&&Zo(s,g.theme)}Object.keys(s).length>0&&(e.theme=s),a.size&&(e.nodes=[...a]);const w=Object.keys(i).length>0,d=n.size>0;(w||d)&&(e.html={},w&&(e.html.import=i),d&&(e.html.export=n));for(const u of c)u.init(e);return e.onError||(e.onError=Ds),e}}const Is=new Set,co=v.defineExtension({build(t,e,a){const o=a.getDependency(pa).output,n=cr({watchedNodeKeys:new Map}),i=Xo(()=>{},()=>ue(()=>{const s=i.peek(),{watchedNodeKeys:c}=n.value;let w,d=!1;o.value.read(()=>{if(v.$getSelection())for(const[u,g]of c.entries()){if(g.size===0){c.delete(u);continue}const m=v.$getNodeByKey(u),p=m&&m.isSelected()||!1;d=d||p!==(!!s&&s.has(u)),p&&(w=w||new Set,w.add(u))}}),!d&&w&&s&&w.size===s.size||(i.value=w)}));return{watchNodeKey:function(s){const c=js(()=>(i.value||Is).has(s)),{watchedNodeKeys:w}=n.peek();let d=w.get(s);const u=d!==void 0;return d=d||new Set,d.add(c),u||(w.set(s,d),n.value={watchedNodeKeys:w}),c}}},dependencies:[pa],name:"@lexical/extension/NodeSelection"}),Ms=v.createCommand("INSERT_HORIZONTAL_RULE_COMMAND");class Ye extends v.DecoratorNode{static getType(){return"horizontalrule"}static clone(e){return new Ye(e.__key)}static importJSON(e){return Ra().updateFromJSON(e)}static importDOM(){return{hr:()=>({conversion:Os,priority:0})}}exportDOM(){return{element:document.createElement("hr")}}createDOM(e){const a=document.createElement("hr");return v.addClassNamesToElement(a,e.theme.hr),a}getTextContent(){return` -`}isInline(){return!1}updateDOM(){return!1}}function Os(){return{node:Ra()}}function Ra(){return v.$create(Ye)}function $s(t){return t instanceof Ye}v.defineExtension({dependencies:[pa,co],name:"@lexical/extension/HorizontalRule",nodes:()=>[Ye],register(t,e,a){const{watchNodeKey:o}=a.getDependency(co).output,n=cr({nodeSelections:new Map}),i=t._config.theme.hrSelected??"selected";return v.mergeRegister(t.registerCommand(Ms,s=>{const c=v.$getSelection();if(!v.$isRangeSelection(c))return!1;if(c.focus.getNode()!==null){const w=Ra();ms(w)}return!0},v.COMMAND_PRIORITY_EDITOR),t.registerCommand(v.CLICK_COMMAND,s=>{if(v.isDOMNode(s.target)){const c=v.$getNodeFromDOMNode(s.target);if($s(c))return function(w,d=!1){const u=v.$getSelection(),g=w.isSelected(),m=w.getKey();let p;d&&v.$isNodeSelection(u)?p=u:(p=v.$createNodeSelection(),v.$setSelection(p)),g?p.delete(m):p.add(m)}(c,s.shiftKey),!0}return!1},v.COMMAND_PRIORITY_LOW),t.registerMutationListener(Ye,(s,c)=>{ys(()=>{let w=!1;const{nodeSelections:d}=n.peek();for(const[u,g]of s.entries())if(g==="destroyed")d.delete(u),w=!0;else{const m=d.get(u),p=t.getElementByKey(u);m?m.domNode.value=p:(w=!0,d.set(u,{domNode:cr(p),selectedSignal:o(u)}))}w&&(n.value={nodeSelections:d})})}),ue(()=>{const s=[];for(const{domNode:c,selectedSignal:w}of n.value.nodeSelections.values())s.push(ue(()=>{const d=c.value;d&&(w.value?v.addClassNamesToElement(d,i):v.removeClassNamesFromElement(d,i))}));return v.mergeRegister(...s)}))}});v.defineExtension({build:(t,e)=>Je({inheritEditableFromParent:e.inheritEditableFromParent}),config:v.safeCast({$getParentEditor:function(){const t=v.$getEditor();return He.fromEditor(t),t},inheritEditableFromParent:!1}),init:(t,e,a)=>{const o=e.$getParentEditor();t.parentEditor=o,t.theme=t.theme||o._config.theme},name:"@lexical/extension/NestedEditor",register:(t,e,a)=>ue(()=>{const o=t._parentEditor;if(o&&a.getOutput().inheritEditableFromParent.value)return t.setEditable(o.isEditable()),o.registerEditableListener(t.setEditable.bind(t))})});v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({disabled:!1,onReposition:void 0}),name:"@lexical/utils/SelectionAlwaysOnDisplay",register:(t,e,a)=>{const o=a.getOutput();return ue(()=>{if(!o.disabled.value)return hs(t,o.onReposition.value)})}});function tn(t){return t.canBeEmpty()}function As(t,e,a=tn){return v.mergeRegister(t.registerCommand(v.KEY_TAB_COMMAND,o=>{const n=v.$getSelection();if(!v.$isRangeSelection(n))return!1;o.preventDefault();const i=function(s){if(s.getNodes().filter(m=>v.$isBlockElementNode(m)&&m.canIndent()).length>0)return!0;const c=s.anchor,w=s.focus,d=w.isBefore(c)?w:c,u=d.getNode(),g=fs(u);if(g.canIndent()){const m=g.getKey();let p=v.$createRangeSelection();if(p.anchor.set(m,0,"element"),p.focus.set(m,0,"element"),p=v.$normalizeSelection__EXPERIMENTAL(p),p.anchor.is(d))return!0}return!1}(n)?o.shiftKey?v.OUTDENT_CONTENT_COMMAND:v.INDENT_CONTENT_COMMAND:v.INSERT_TAB_COMMAND;return t.dispatchCommand(i,void 0)},v.COMMAND_PRIORITY_EDITOR),t.registerCommand(v.INDENT_CONTENT_COMMAND,()=>{const o=typeof e=="number"?e:e?e.peek():null,n=v.$getSelection();if(!v.$isRangeSelection(n))return!1;const i=typeof a=="function"?a:a.peek();return bs(s=>{if(i(s)){const c=s.getIndent()+1;(!o||cJe(e),config:v.safeCast({$canIndent:tn,disabled:!1,maxIndent:null}),name:"@lexical/extension/TabIndentation",register(t,e,a){const{disabled:o,maxIndent:n,$canIndent:i}=a.getOutput();return ue(()=>{if(!o.value)return As(t,n,i)})}});const Ps=v.defineExtension({name:"@lexical/react/ReactProvider"});function Ls(){return v.$getRoot().getTextContent()}function Bs(t,e=!0){if(t)return!1;let a=Ls();return e&&(a=a.trim()),a===""}function Vs(t){if(!Bs(t,!1))return!1;const e=v.$getRoot().getChildren(),a=e.length;if(a>1)return!1;for(let o=0;oVs(t)}function rn(t){const e=window.location.origin,a=o=>{if(o.origin!==e)return;const n=t.getRootElement();if(document.activeElement!==n)return;const i=o.data;if(typeof i=="string"){let s;try{s=JSON.parse(i)}catch{return}if(s&&s.protocol==="nuanria_messaging"&&s.type==="request"){const c=s.payload;if(c&&c.functionId==="makeChanges"){const w=c.args;if(w){const[d,u,g,m,p]=w;t.update(()=>{const f=v.$getSelection();if(v.$isRangeSelection(f)){const y=f.anchor;let b=y.getNode(),I=0,C=0;if(v.$isTextNode(b)&&d>=0&&u>=0&&(I=d,C=d+u,f.setTextNodeRange(b,I,b,C)),I===C&&g===""||(f.insertRawText(g),b=y.getNode()),v.$isTextNode(b)){I=m,C=m+p;const T=b.getTextContentSize();I=I>T?T:I,C=C>T?T:C,f.setTextNodeRange(b,I,b,C)}o.stopImmediatePropagation()}})}}}}};return window.addEventListener("message",a,!0),()=>{window.removeEventListener("message",a,!0)}}v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({disabled:typeof window>"u"}),name:"@lexical/dragon",register:(t,e,a)=>ue(()=>a.getOutput().disabled.value?void 0:rn(t))});function Fs(t,...e){const a=new URL("https://lexical.dev/docs/error"),o=new URLSearchParams;o.append("code",t);for(const n of e)o.append("v",n);throw a.search=o.toString(),Error(`Minified Lexical error #${t}; visit ${a.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const za=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function Gs({editor:t,ErrorBoundary:e}){return function(a,o){const[n,i]=l.useState(()=>a.getDecorators());return za(()=>a.registerDecoratorListener(s=>{Xa.flushSync(()=>{i(s)})}),[a]),l.useEffect(()=>{i(a.getDecorators())},[a]),l.useMemo(()=>{const s=[],c=Object.keys(n);for(let w=0;wa._onError(m),children:r.jsx(l.Suspense,{fallback:null,children:n[d]})}),g=a.getElementByKey(d);g!==null&&s.push(Xa.createPortal(u,g,d))}return s},[o,n,a])}(t,e)}function Us({editor:t,ErrorBoundary:e}){return function(a){const o=He.maybeFromEditor(a);if(o&&o.hasExtensionByName(Ps.name)){for(const n of["@lexical/plain-text","@lexical/rich-text"])o.hasExtensionByName(n)&&Fs(320,n);return!0}return!1}(t)?null:r.jsx(Gs,{editor:t,ErrorBoundary:e})}function lo(t){return t.getEditorState().read(en(t.isComposing()))}function Ks({contentEditable:t,placeholder:e=null,ErrorBoundary:a}){const[o]=ve();return function(n){za(()=>v.mergeRegister(ca.registerRichText(n),rn(n)),[n])}(o),r.jsxs(r.Fragment,{children:[t,r.jsx(qs,{content:e}),r.jsx(Us,{editor:o,ErrorBoundary:a})]})}function qs({content:t}){const[e]=ve(),a=function(n){const[i,s]=l.useState(()=>lo(n));return za(()=>{function c(){const w=lo(n);s(w)}return c(),v.mergeRegister(n.registerUpdateListener(()=>{c()}),n.registerEditableListener(()=>{c()}))},[n]),i}(e),o=ss();return a?typeof t=="function"?t(o):t:null}function Hs({defaultSelection:t}){const[e]=ve();return l.useEffect(()=>{e.focus(()=>{const a=document.activeElement,o=e.getRootElement();o===null||a!==null&&o.contains(a)||o.focus({preventScroll:!0})},{defaultSelection:t})},[t,e]),null}const Ys=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function Ws({onClear:t}){const[e]=ve();return Ys(()=>Yo(e,t),[e,t]),null}const an=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function Xs({editor:t,ariaActiveDescendant:e,ariaAutoComplete:a,ariaControls:o,ariaDescribedBy:n,ariaErrorMessage:i,ariaExpanded:s,ariaInvalid:c,ariaLabel:w,ariaLabelledBy:d,ariaMultiline:u,ariaOwns:g,ariaRequired:m,autoCapitalize:p,className:f,id:y,role:b="textbox",spellCheck:I=!0,style:C,tabIndex:T,"data-testid":S,...N},E){const[z,j]=l.useState(t.isEditable()),x=l.useCallback(P=>{P&&P.ownerDocument&&P.ownerDocument.defaultView?t.setRootElement(P):t.setRootElement(null)},[t]),R=l.useMemo(()=>function(...P){return G=>{for(const K of P)typeof K=="function"?K(G):K!=null&&(K.current=G)}}(E,x),[x,E]);return an(()=>(j(t.isEditable()),t.registerEditableListener(P=>{j(P)})),[t]),r.jsx("div",{"aria-activedescendant":z?e:void 0,"aria-autocomplete":z?a:"none","aria-controls":z?o:void 0,"aria-describedby":n,...i!=null?{"aria-errormessage":i}:{},"aria-expanded":z&&b==="combobox"?!!s:void 0,...c!=null?{"aria-invalid":c}:{},"aria-label":w,"aria-labelledby":d,"aria-multiline":u,"aria-owns":z?g:void 0,"aria-readonly":!z||void 0,"aria-required":m,autoCapitalize:p,className:f,contentEditable:z,"data-testid":S,id:y,ref:R,role:b,spellCheck:I,style:C,tabIndex:T,...N})}const Zs=l.forwardRef(Xs);function wo(t){return t.getEditorState().read(en(t.isComposing()))}const Js=l.forwardRef(Qs);function Qs(t,e){const{placeholder:a,...o}=t,[n]=ve();return r.jsxs(r.Fragment,{children:[r.jsx(Zs,{editor:n,...o,ref:e}),a!=null&&r.jsx(tc,{editor:n,content:a})]})}function tc({content:t,editor:e}){const a=function(s){const[c,w]=l.useState(()=>wo(s));return an(()=>{function d(){const u=wo(s);w(u)}return d(),v.mergeRegister(s.registerUpdateListener(()=>{d()}),s.registerEditableListener(()=>{d()}))},[s]),c}(e),[o,n]=l.useState(e.isEditable());if(l.useLayoutEffect(()=>(n(e.isEditable()),e.registerEditableListener(s=>{n(s)})),[e]),!a)return null;let i=null;return typeof t=="function"?i=t(o):t!==null&&(i=t),i===null?null:r.jsx("div",{"aria-hidden":!0,children:i})}function ec({placeholder:t,className:e,placeholderClassName:a}){return r.jsx(Js,{className:e??"ContentEditable__root tw:relative tw:block tw:min-h-11 tw:overflow-auto tw:px-3 tw:py-3 tw:text-sm tw:outline-hidden","aria-placeholder":t,placeholder:r.jsx("div",{className:a??"tw:pointer-events-none tw:absolute tw:top-0 tw:select-none tw:overflow-hidden tw:text-ellipsis tw:px-3 tw:py-3 tw:text-sm tw:text-muted-foreground",children:t})})}const on=l.createContext(void 0);function rc({activeEditor:t,$updateToolbar:e,blockType:a,setBlockType:o,showModal:n,children:i}){const s=l.useMemo(()=>({activeEditor:t,$updateToolbar:e,blockType:a,setBlockType:o,showModal:n}),[t,e,a,o,n]);return r.jsx(on.Provider,{value:s,children:i})}function nn(){const t=l.useContext(on);if(!t)throw new Error("useToolbarContext must be used within a ToolbarContext provider");return t}function ac(){const[t,e]=l.useState(void 0),a=l.useCallback(()=>{e(void 0)},[]),o=l.useMemo(()=>{if(t===void 0)return;const{title:i,content:s}=t;return r.jsx(Er,{open:!0,onOpenChange:a,children:r.jsxs(Tr,{children:[r.jsx(Rr,{children:r.jsx(zr,{children:i})}),s]})})},[t,a]),n=l.useCallback((i,s,c=!1)=>{e({closeOnClickOutside:c,content:s(a),title:i})},[a]);return[o,n]}function oc({children:t}){const[e]=ve(),[a,o]=l.useState(e),[n,i]=l.useState("paragraph"),[s,c]=ac(),w=()=>{};return l.useEffect(()=>a.registerCommand(v.SELECTION_CHANGE_COMMAND,(d,u)=>(o(u),!1),v.COMMAND_PRIORITY_CRITICAL),[a]),r.jsxs(rc,{activeEditor:a,$updateToolbar:w,blockType:n,setBlockType:i,showModal:c,children:[s,t({blockType:n})]})}function nc(t){const[e]=ve(),{activeEditor:a}=nn();l.useEffect(()=>a.registerCommand(v.SELECTION_CHANGE_COMMAND,()=>{const o=v.$getSelection();return o&&t(o),!1},v.COMMAND_PRIORITY_CRITICAL),[e,t]),l.useEffect(()=>{a.getEditorState().read(()=>{const o=v.$getSelection();o&&t(o)})},[a,t])}const ic=ge.cva("pr-twp tw:group/toggle tw:inline-flex tw:items-center tw:justify-center tw:gap-1 tw:rounded-lg tw:text-sm tw:font-medium tw:whitespace-nowrap tw:transition-all tw:outline-none tw:hover:bg-muted tw:hover:text-foreground tw:focus-visible:border-ring tw:focus-visible:ring-[3px] tw:focus-visible:ring-ring/50 tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-destructive/20 tw:aria-pressed:bg-muted tw:data-[state=on]:bg-muted tw:dark:aria-invalid:ring-destructive/40 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",{variants:{variant:{default:"tw:bg-transparent",outline:"tw:border tw:border-input tw:bg-transparent tw:hover:bg-muted"},size:{default:"tw:h-8 tw:min-w-8 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2",sm:"tw:h-7 tw:min-w-7 tw:rounded-[min(var(--tw-radius-md),12px)] tw:px-2.5 tw:text-[0.8rem] tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3.5",lg:"tw:h-9 tw:min-w-9 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2"}},defaultVariants:{variant:"default",size:"default"}}),sn=l.createContext({size:"default",variant:"default",spacing:0,orientation:"horizontal"});function Da({className:t,variant:e,size:a,spacing:o=0,orientation:n="horizontal",children:i,...s}){const c=ft();return r.jsx(k.ToggleGroup.Root,{"data-slot":"toggle-group","data-variant":e,"data-size":a,"data-spacing":o,"data-orientation":n,style:{"--gap":o},className:h("pr-twp tw:group/toggle-group tw:flex tw:w-fit tw:flex-row tw:items-center tw:gap-[--spacing(var(--gap))] tw:rounded-lg tw:data-[size=sm]:rounded-[min(var(--tw-radius-md),10px)] tw:data-vertical:flex-col tw:data-vertical:items-stretch",t),dir:c,...s,children:r.jsx(sn.Provider,{value:l.useMemo(()=>({variant:e,size:a,spacing:o,orientation:n}),[e,a,o,n]),children:i})})}function sr({className:t,children:e,variant:a="default",size:o="default",...n}){const i=l.useContext(sn);return r.jsx(k.ToggleGroup.Item,{"data-slot":"toggle-group-item","data-variant":i.variant||a,"data-size":i.size||o,"data-spacing":i.spacing,className:h("tw:shrink-0 tw:group-data-[spacing=0]/toggle-group:rounded-none tw:group-data-[spacing=0]/toggle-group:px-2 tw:focus:z-10 tw:focus-visible:z-10 tw:group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pe-1.5 tw:group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:ps-1.5 tw:group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-s-lg tw:group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg tw:group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-e-lg tw:group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg tw:group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-s-0 tw:group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 tw:group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-s tw:group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",ic({variant:i.variant||a,size:i.size||o}),t),...n,children:e})}const uo=[{format:"bold",icon:$.BoldIcon,label:"Bold"},{format:"italic",icon:$.ItalicIcon,label:"Italic"}];function sc(){const{activeEditor:t}=nn(),[e,a]=l.useState([]),o=l.useCallback(n=>{if(v.$isRangeSelection(n)||vi.$isTableSelection(n)){const i=[];uo.forEach(({format:s})=>{n.hasFormat(s)&&i.push(s)}),a(s=>s.length!==i.length||!i.every(c=>s.includes(c))?i:s)}},[]);return nc(o),r.jsx(Da,{type:"multiple",value:e,onValueChange:a,variant:"outline",size:"sm",children:uo.map(({format:n,icon:i,label:s})=>r.jsx(sr,{value:n,"aria-label":s,onClick:()=>{t.dispatchCommand(v.FORMAT_TEXT_COMMAND,n)},children:r.jsx(i,{className:"tw:h-4 tw:w-4"})},n))})}function cc({onClear:t}){const[e]=ve();l.useEffect(()=>{t&&t(()=>{e.dispatchCommand(v.CLEAR_EDITOR_COMMAND,void 0)})},[e,t])}function lc({placeholder:t="Start typing ...",autoFocus:e=!1,onClear:a}){const[,o]=l.useState(void 0),n=i=>{i!==void 0&&o(i)};return r.jsxs("div",{className:"tw:relative",children:[r.jsx(oc,{children:()=>r.jsx("div",{className:"tw:sticky tw:top-0 tw:z-10 tw:flex tw:gap-2 tw:overflow-auto tw:border-b tw:p-1",children:r.jsx(sc,{})})}),r.jsxs("div",{className:"tw:relative",children:[r.jsx(Ks,{contentEditable:r.jsx("div",{ref:n,children:r.jsx(ec,{placeholder:t})}),ErrorBoundary:os}),e&&r.jsx(Hs,{defaultSelection:"rootEnd"}),r.jsx(cc,{onClear:a}),r.jsx(Ws,{})]})]})}const dc={namespace:"commentEditor",theme:Ca,nodes:Sa,onError:t=>{console.error(t)}};function $r({editorState:t,editorSerializedState:e,onChange:a,onSerializedChange:o,placeholder:n="Start typing…",autoFocus:i=!1,onClear:s,className:c}){return r.jsx("div",{className:h("pr-twp tw:overflow-hidden tw:rounded-lg tw:border tw:bg-background tw:shadow",c),children:r.jsx(Ji,{initialConfig:{...dc,...t?{editorState:t}:{},...e?{editorState:JSON.stringify(e)}:{}},children:r.jsxs(Ot,{children:[r.jsx(lc,{placeholder:n,autoFocus:i,onClear:s}),r.jsx(ts,{ignoreSelectionChange:!0,onChange:w=>{a==null||a(w),o==null||o(w.toJSON())}})]})})})}function wc(t,e){const a=v.isDOMDocumentNode(e)?e.body.childNodes:e.childNodes;let o=[];const n=[];for(const i of a)if(!ln.has(i.nodeName)){const s=dn(i,t,n,!1);s!==null&&(o=o.concat(s))}return function(i){for(const s of i)s.getNextSibling()instanceof v.ArtificialNode__DO_NOT_USE&&s.insertAfter(v.$createLineBreakNode());for(const s of i){const c=s.getChildren();for(const w of c)s.insertBefore(w);s.remove()}}(n),o}function uc(t,e){if(typeof document>"u"||typeof window>"u"&&global.window===void 0)throw new Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");const a=document.createElement("div"),o=v.$getRoot().getChildren();for(let n=0;n{const f=new v.ArtificialNode__DO_NOT_USE;return a.push(f),f}:v.$createParagraphNode)),c==null?m.length>0?s=s.concat(m):v.isBlockDomNode(t)&&function(f){return f.nextSibling==null||f.previousSibling==null?!1:v.isInlineDomNode(f.nextSibling)&&v.isInlineDomNode(f.previousSibling)}(t)&&(s=s.concat(v.$createLineBreakNode())):v.$isElementNode(c)&&c.append(...m),s}function pc(t,e,a){const o=t.style.textAlign,n=[];let i=[];for(let s=0;se&&"text"in e&&e.text.trim().length>0?!0:!e||!("children"in e)?!1:un(e.children)):!1}function Zt(t){var e;return(e=t==null?void 0:t.root)!=null&&e.children?un(t.root.children):!1}function gc(t){if(!t||t.trim()==="")throw new Error("Input HTML is empty");const e=No.createHeadlessEditor({namespace:"EditorUtils",theme:Ca,nodes:Sa,onError:o=>{console.error(o)}});let a;if(e.update(()=>{const n=new DOMParser().parseFromString(t,"text/html"),i=wc(e,n);v.$getRoot().clear(),v.$insertNodes(i)},{discrete:!0}),e.getEditorState().read(()=>{a=e.getEditorState().toJSON()}),!a)throw new Error("Failed to convert HTML to editor state");return a}function Ar(t){const e=No.createHeadlessEditor({namespace:"EditorUtils",theme:Ca,nodes:Sa,onError:n=>{console.error(n)}}),a=e.parseEditorState(JSON.stringify(t));e.setEditorState(a);let o="";return e.getEditorState().read(()=>{o=uc(e)}),o=o.replace(/\s+style="[^"]*"/g,"").replace(/\s+class="[^"]*"/g,"").replace(/(.*?)<\/span>/g,"$1").replace(/]*>(.*?)<\/strong><\/b>/g,"$1").replace(/]*>(.*?)<\/b><\/strong>/g,"$1").replace(/]*>(.*?)<\/em><\/i>/g,"$1").replace(/]*>(.*?)<\/i><\/em>/g,"$1").replace(/]*>(.*?)<\/span><\/u>/g,"$1").replace(/]*>(.*?)<\/span><\/s>/g,"$1").replace(//gi,"
"),o}function Ia(t){return["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"].includes(t.key)?(t.stopPropagation(),!0):!1}function $e({className:t,orientation:e="horizontal",decorative:a=!0,...o}){return r.jsx(k.Separator.Root,{"data-slot":"separator",decorative:a,orientation:e,className:h("pr-twp tw:shrink-0 tw:bg-border tw:data-horizontal:h-px tw:data-horizontal:w-full tw:data-vertical:w-px tw:data-vertical:self-stretch",t),...o})}const pn=ge.cva("tw:group/button-group tw:flex tw:w-fit tw:items-stretch tw:*:focus-visible:relative tw:*:focus-visible:z-10 tw:has-[>[data-slot=button-group]]:gap-2 tw:has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-e-lg tw:[&>[data-slot=select-trigger]:not([class*=w-])]:w-fit tw:[&>input]:flex-1",{variants:{orientation:{horizontal:"tw:[&>*:not(:first-child)]:rounded-s-none tw:[&>*:not(:first-child)]:border-s-0 tw:[&>*:not(:last-child)]:rounded-e-none tw:[&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-lg!",vertical:"tw:flex-col tw:[&>*:not(:first-child)]:rounded-t-none tw:[&>*:not(:first-child)]:border-t-0 tw:[&>*:not(:last-child)]:rounded-b-none tw:[&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"}},defaultVariants:{orientation:"horizontal"}});function Gr({className:t,orientation:e,...a}){return r.jsx("div",{role:"group","data-slot":"button-group","data-orientation":e,className:h("pr-twp",pn({orientation:e}),t),...a})}function hc({className:t,asChild:e=!1,...a}){const o=e?k.Slot.Root:"div";return r.jsx(o,{className:h("pr-twp tw:flex tw:items-center tw:gap-2 tw:rounded-lg tw:border tw:bg-muted tw:px-2.5 tw:text-sm tw:font-medium tw:[&_svg]:pointer-events-none tw:[&_svg:not([class*=size-])]:size-4",t),...a})}function Ma({className:t,orientation:e="vertical",...a}){return r.jsx($e,{"data-slot":"button-group-separator",orientation:e,className:h("pr-twp tw:relative tw:self-stretch tw:bg-input tw:data-horizontal:mx-px tw:data-horizontal:w-auto tw:data-vertical:my-px tw:data-vertical:h-auto",t),...a})}const Oa=Object.freeze(["%cancelButton_tooltip%","%acceptButton_tooltip%"]),po=(t,e)=>t[e]??e;function $a({onCancelClick:t,onAcceptClick:e,canAccept:a=!0,localizedStrings:o={},className:n="tw:h-6 tw:w-6",acceptLabel:i}){const s=po(o,"%cancelButton_tooltip%"),c=i??po(o,"%acceptButton_tooltip%");return r.jsxs(Gr,{children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":s,className:n,size:"icon",onClick:t,variant:"secondary",children:r.jsx($.X,{})})}),r.jsx(Pt,{children:r.jsx("p",{children:s})})]})}),r.jsx(Ma,{}),r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":c,className:n,size:"icon",onClick:e,disabled:!a,children:r.jsx($.Check,{})})}),r.jsx(Pt,{children:r.jsx("p",{children:c})})]})})]})}function Sr(t,e){return t===""?e["%comment_assign_unassigned%"]??"Unassigned":t==="Team"?e["%comment_assign_team%"]??"Team":t}function Aa(t){const e=/Macintosh/i.test(navigator.userAgent);return t.key==="Enter"&&(e&&t.metaKey||!e&&t.ctrlKey)}const fc={root:{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"",type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:""}],direction:"ltr",format:"",indent:0,type:"root",version:1}};function ra(t,e){return t===""?e["%commentEditor_unassigned%"]??"Unassigned":t==="Team"?e["%commentEditor_team%"]??"Team":t}function mc({assignableUsers:t,onSave:e,onClose:a,localizedStrings:o,initialAssignedUser:n}){const[i,s]=l.useState(fc),[c,w]=l.useState(n),[d,u]=l.useState(!1),g=l.useRef(void 0),m=l.useRef(null);l.useEffect(()=>{let b=!0;const I=m.current;if(!I)return;const C=setTimeout(()=>{b&&wn(I)},300);return()=>{b=!1,clearTimeout(C)}},[]);const p=l.useCallback(()=>{if(!Zt(i))return;const b=Ar(i);e(b,c)},[i,e,c]),f=o["%commentEditor_placeholder%"]??"Type your comment here...",y=o["%commentEditor_assignTo_label%"]??"Assign to";return r.jsxs("div",{className:"pr-twp tw:grid tw:gap-3",children:[r.jsxs("div",{className:"tw:flex tw:items-center tw:justify-between",children:[r.jsx("span",{className:"tw:text-sm tw:font-medium",children:y}),r.jsx($a,{onCancelClick:a,onAcceptClick:p,canAccept:Zt(i),localizedStrings:o,acceptLabel:o["%commentEditor_saveButton_tooltip%"]})]}),r.jsx("div",{className:"tw:flex tw:items-center tw:gap-2",children:r.jsxs(se,{open:d,onOpenChange:u,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:"outline",className:"tw:flex tw:w-full tw:items-center tw:justify-start tw:gap-2",disabled:t.length===0,children:[r.jsx($.AtSign,{className:"tw:h-4 tw:w-4"}),r.jsx("span",{children:ra(c!==void 0?c:"",o)})]})}),r.jsx(ce,{className:"tw:w-auto tw:p-0",align:"start",onKeyDown:b=>{b.key==="Escape"&&(b.stopPropagation(),u(!1))},children:r.jsx(he,{children:r.jsx(fe,{children:t.map(b=>r.jsx(ie,{onSelect:()=>{w(b||void 0),u(!1)},className:"tw:flex tw:items-center",children:r.jsx("span",{children:ra(b,o)})},b||"unassigned"))})})})]})}),r.jsx("div",{ref:m,role:"textbox",tabIndex:-1,className:"tw:outline-hidden",onKeyDownCapture:b=>{b.key==="Escape"?(b.preventDefault(),b.stopPropagation(),a()):Aa(b)&&(b.preventDefault(),b.stopPropagation(),Zt(i)&&p())},onKeyDown:b=>{Ia(b),(b.key==="Enter"||b.key===" ")&&b.stopPropagation()},children:r.jsx($r,{editorSerializedState:i,onSerializedChange:b=>s(b),placeholder:f,onClear:b=>{g.current=b}})})]})}const vc=Object.freeze(["%commentEditor_placeholder%","%commentEditor_assignTo_label%","%commentEditor_saveButton_tooltip%","%commentEditor_unassigned%","%commentEditor_team%",...Oa]),bc=["%comment_assign_team%","%comment_assign_unassigned%","%comment_assigned_to%","%comment_assigning_to%","%comment_dateAtTime%","%comment_date_today%","%comment_date_yesterday%","%comment_deleteComment%","%comment_editComment%","%comment_replyOrAssign%","%comment_reopenResolved%","%comment_status_resolved%","%comment_status_todo%","%comment_thread_multiple_replies%","%comment_thread_single_reply%","%comment_aria_assign_user%","%comment_aria_submit_comment%","%comment_aria_mark_as_read%","%comment_aria_mark_as_unread%","%comment_aria_resolve_thread%"],xc=["input","select","textarea","button"],yc=["button","textbox"],gn=({options:t,onFocusChange:e,onOptionSelect:a,onCharacterPress:o})=>{const n=l.useRef(null),[i,s]=l.useState(void 0),[c,w]=l.useState(void 0),d=l.useCallback(p=>{s(p);const f=t.find(b=>b.id===p);f&&(e==null||e(f));const y=document.getElementById(p);y&&(y.scrollIntoView({block:"center"}),y.focus()),n.current&&n.current.setAttribute("aria-activedescendant",p)},[e,t]),u=l.useCallback(p=>{const f=t.find(y=>y.id===p);f&&(w(y=>y===p?void 0:p),a==null||a(f))},[a,t]),g=p=>{if(!p)return!1;const f=p.tagName.toLowerCase();if(p.isContentEditable||xc.includes(f))return!0;const y=p.getAttribute("role");if(y&&yc.includes(y))return!0;const b=p.getAttribute("tabindex");return b!==void 0&&b!=="-1"},m=l.useCallback(p=>{var z;const f=p.target,y=j=>j?document.getElementById(j):void 0,b=y(c),I=y(i);if(!!(b&&f&&b.contains(f)&&f!==b)&&g(f)){if(p.key==="Escape"||p.key==="ArrowLeft"&&!f.isContentEditable){if(c){p.preventDefault(),p.stopPropagation();const j=t.find(x=>x.id===c);j&&d(j.id)}return}if(p.key==="ArrowDown"||p.key==="ArrowUp"){if(!b)return;const j=Array.from(b.querySelectorAll('button:not([disabled]), input:not([disabled]):not([type="hidden"]), textarea:not([disabled]), select:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'));if(j.length===0)return;const x=j.findIndex(P=>P===f);if(x===-1)return;let R;p.key==="ArrowDown"?R=Math.min(x+1,j.length-1):R=Math.max(x-1,0),R!==x&&(p.preventDefault(),p.stopPropagation(),(z=j[R])==null||z.focus());return}return}const S=t.findIndex(j=>j.id===i);let N=S;switch(p.key){case"ArrowDown":N=Math.min(S+1,t.length-1),p.preventDefault();break;case"ArrowUp":N=Math.max(S-1,0),p.preventDefault();break;case"Home":N=0,p.preventDefault();break;case"End":N=t.length-1,p.preventDefault();break;case" ":case"Enter":i&&u(i),p.preventDefault(),p.stopPropagation();return;case"ArrowRight":{const j=I;if(j){const x=j.querySelector('input:not([disabled]):not([type="hidden"]), textarea:not([disabled]), select:not([disabled])'),R=j.querySelector('button:not([disabled]), [href], [tabindex]:not([tabindex="-1"]), [contenteditable="true"]'),P=x??R;if(P){p.preventDefault(),P.focus();return}}break}default:p.key.length===1&&!p.metaKey&&!p.ctrlKey&&!p.altKey&&(g(f)||(o==null||o(p.key),p.preventDefault()));return}const E=t[N];E&&d(E.id)},[t,d,i,c,u,o]);return{listboxRef:n,activeId:i,selectedId:c,handleKeyDown:m,focusOption:d}},hn=ge.cva("tw:group/badge tw:inline-flex tw:h-5 tw:w-fit tw:shrink-0 tw:items-center tw:justify-center tw:gap-1 tw:overflow-hidden tw:rounded-4xl tw:border tw:border-transparent tw:px-2 tw:py-0.5 tw:text-xs tw:font-medium tw:whitespace-nowrap tw:transition-all tw:focus-visible:border-ring tw:focus-visible:ring-[3px] tw:focus-visible:ring-ring/50 tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:aria-invalid:border-destructive tw:aria-invalid:ring-destructive/20 tw:dark:aria-invalid:ring-destructive/40 tw:[&>svg]:pointer-events-none tw:[&>svg]:size-3!",{variants:{variant:{default:"tw:bg-primary tw:text-primary-foreground tw:[a]:hover:bg-primary/80",secondary:"tw:bg-secondary tw:text-secondary-foreground tw:[a]:hover:bg-secondary/80",destructive:"tw:bg-destructive/10 tw:text-destructive tw:focus-visible:ring-destructive/20 tw:dark:bg-destructive/20 tw:dark:focus-visible:ring-destructive/40 tw:[a]:hover:bg-destructive/20",outline:"tw:border-border tw:text-foreground tw:[a]:hover:bg-muted tw:[a]:hover:text-muted-foreground",ghost:"tw:hover:bg-muted tw:hover:text-muted-foreground tw:dark:hover:bg-muted/50",link:"tw:text-primary tw:underline-offset-4 tw:hover:underline",muted:"tw:border-transparent tw:bg-muted tw:text-muted-foreground tw:hover:bg-muted/80",blueIndicator:"tw:w-[5px] tw:h-[5px] tw:bg-blue-400 tw:px-0",mutedIndicator:"tw:w-[5px] tw:h-[5px] tw:bg-zinc-400 tw:px-0"}},defaultVariants:{variant:"default"}});function pe({className:t,variant:e="default",asChild:a=!1,...o}){const n=a?k.Slot.Root:"span";return r.jsx(n,{"data-slot":"badge","data-variant":e,className:h("pr-twp",hn({variant:e}),t),...o})}function fn({className:t,size:e="default",...a}){return r.jsx("div",{"data-slot":"card","data-size":e,className:h("pr-twp tw:group/card tw:flex tw:flex-col tw:gap-4 tw:overflow-hidden tw:rounded-xl tw:bg-card tw:py-4 tw:text-sm tw:text-card-foreground tw:ring-1 tw:ring-foreground/10 tw:has-data-[slot=card-footer]:pb-0 tw:has-[>img:first-child]:pt-0 tw:data-[size=sm]:gap-3 tw:data-[size=sm]:py-3 tw:data-[size=sm]:has-data-[slot=card-footer]:pb-0 tw:*:[img:first-child]:rounded-t-xl tw:*:[img:last-child]:rounded-b-xl",t),...a})}function kc({className:t,...e}){return r.jsx("div",{"data-slot":"card-header",className:h("pr-twp tw:group/card-header tw:@container/card-header tw:grid tw:auto-rows-min tw:items-start tw:gap-1 tw:rounded-t-xl tw:px-4 tw:group-data-[size=sm]/card:px-3 tw:has-data-[slot=card-action]:grid-cols-[1fr_auto] tw:has-data-[slot=card-description]:grid-rows-[auto_auto] tw:[.border-b]:pb-4 tw:group-data-[size=sm]/card:[.border-b]:pb-3",t),...e})}function jc({className:t,...e}){return r.jsx("div",{"data-slot":"card-title",className:h("pr-twp tw:font-heading tw:text-base tw:leading-snug tw:font-medium tw:group-data-[size=sm]/card:text-sm",t),...e})}function _c({className:t,...e}){return r.jsx("div",{"data-slot":"card-description",className:h("pr-twp tw:text-sm tw:text-muted-foreground",t),...e})}function mn({className:t,...e}){return r.jsx("div",{"data-slot":"card-content",className:h("pr-twp tw:px-4 tw:group-data-[size=sm]/card:px-3",t),...e})}function Nc({className:t,...e}){return r.jsx("div",{"data-slot":"card-footer",className:h("pr-twp tw:flex tw:items-center tw:rounded-b-xl tw:border-t tw:bg-muted/50 tw:p-4 tw:group-data-[size=sm]/card:p-3",t),...e})}function vn({className:t,size:e="default",...a}){return r.jsx(k.Avatar.Root,{"data-slot":"avatar","data-size":e,className:h("pr-twp tw:group/avatar tw:relative tw:flex tw:size-8 tw:shrink-0 tw:rounded-full tw:select-none tw:after:absolute tw:after:inset-0 tw:after:rounded-full tw:after:border tw:after:border-border tw:after:mix-blend-darken tw:data-[size=lg]:size-10 tw:data-[size=sm]:size-6 tw:dark:after:mix-blend-lighten",t),...a})}function Cc({className:t,...e}){return r.jsx(k.Avatar.Image,{"data-slot":"avatar-image",className:h("pr-twp tw:aspect-square tw:size-full tw:rounded-full tw:object-cover",t),...e})}function bn({className:t,...e}){return r.jsx(k.Avatar.Fallback,{"data-slot":"avatar-fallback",className:h("pr-twp tw:flex tw:size-full tw:items-center tw:justify-center tw:rounded-full tw:bg-muted tw:text-sm tw:text-muted-foreground tw:group-data-[size=sm]/avatar:text-xs",t),...e})}const Pa=l.createContext(void 0);function ke(){const t=l.useContext(Pa);if(!t)throw new Error("useMenuContext must be used within a MenuContext.Provider.");return t}const Ge=ge.cva("",{variants:{variant:{default:"",muted:"tw:hover:bg-muted tw:hover:text-foreground tw:focus:bg-muted tw:focus:text-foreground tw:data-[state=open]:bg-muted tw:data-[state=open]:text-foreground"}},defaultVariants:{variant:"default"}});function ae({variant:t="default",...e}){const a=ft(),o=l.useMemo(()=>({variant:t}),[t]);return r.jsx(Pa.Provider,{value:o,children:r.jsx(k.DropdownMenu.Root,{"data-slot":"dropdown-menu",dir:a,...e})})}function xn({...t}){return r.jsx(k.DropdownMenu.Portal,{"data-slot":"dropdown-menu-portal",...t})}function oe({...t}){return r.jsx(k.DropdownMenu.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function ne({className:t,align:e="start",sideOffset:a=4,children:o,...n}){const i=ft();return r.jsx(k.DropdownMenu.Portal,{children:r.jsx(k.DropdownMenu.Content,{"data-slot":"dropdown-menu-content",sideOffset:a,align:e,className:h("pr-twp tw:z-50 tw:max-h-(--radix-dropdown-menu-content-available-height) tw:min-w-32 tw:origin-(--radix-dropdown-menu-content-transform-origin) tw:overflow-x-hidden tw:overflow-y-auto tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-[state=closed]:overflow-hidden tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...n,children:r.jsx("div",{dir:i,children:o})})})}function La({...t}){return r.jsx(k.DropdownMenu.Group,{"data-slot":"dropdown-menu-group",...t})}function Se({className:t,inset:e,variant:a="default",...o}){const n=ft(),i=ke();return r.jsx(k.DropdownMenu.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":a,className:h("tw:group/dropdown-menu-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:data-[variant=destructive]:focus:text-destructive tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:data-[variant=destructive]:*:[svg]:text-destructive",t,Ge({variant:i.variant})),dir:n,...o})}function ee({className:t,children:e,checked:a,inset:o,...n}){const i=ft(),s=ke();return r.jsxs(k.DropdownMenu.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":o,className:h("tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t,Ge({variant:s.variant})),checked:a,dir:i,...n,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2 tw:flex tw:items-center tw:justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:r.jsx(k.DropdownMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function yn({...t}){return r.jsx(k.DropdownMenu.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}function kn({className:t,children:e,inset:a,...o}){const n=ft(),i=ke();return r.jsxs(k.DropdownMenu.RadioItem,{"data-slot":"dropdown-menu-radio-item","data-inset":a,className:h("tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t,Ge({variant:i.variant})),dir:n,...o,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2 tw:flex tw:items-center tw:justify-center","data-slot":"dropdown-menu-radio-item-indicator",children:r.jsx(k.DropdownMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function Ee({className:t,inset:e,...a}){return r.jsx(k.DropdownMenu.Label,{"data-slot":"dropdown-menu-label","data-inset":e,className:h("tw:px-1.5 tw:py-1 tw:text-xs tw:font-medium tw:text-muted-foreground tw:data-inset:ps-7",t),...a})}function ye({className:t,...e}){return r.jsx(k.DropdownMenu.Separator,{"data-slot":"dropdown-menu-separator",className:h("tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function Sc({className:t,...e}){return r.jsx("span",{"data-slot":"dropdown-menu-shortcut",className:h("tw:ms-auto tw:text-xs tw:tracking-widest tw:text-muted-foreground tw:group-focus/dropdown-menu-item:text-accent-foreground",t),...e})}function jn({...t}){return r.jsx(k.DropdownMenu.Sub,{"data-slot":"dropdown-menu-sub",...t})}function _n({className:t,inset:e,children:a,...o}){const n=ke();return r.jsxs(k.DropdownMenu.SubTrigger,{"data-slot":"dropdown-menu-sub-trigger","data-inset":e,className:h("tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-open:bg-accent tw:data-open:text-accent-foreground tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t,Ge({variant:n.variant})),...o,children:[a,r.jsx(ht.IconChevronRight,{className:"tw:ms-auto"})]})}function Nn({className:t,children:e,...a}){const o=ft();return r.jsx(k.DropdownMenu.SubContent,{"data-slot":"dropdown-menu-sub-content",className:h("pr-twp tw:z-50 tw:min-w-[96px] tw:origin-(--radix-dropdown-menu-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-lg tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...a,children:r.jsx("div",{dir:o,children:e})})}function go({comment:t,isReply:e=!1,localizedStrings:a,isThreadExpanded:o=!1,handleUpdateComment:n,handleDeleteComment:i,onEditingChange:s,canEditOrDelete:c=!1}){const[w,d]=l.useState(!1),[u,g]=l.useState(),m=l.useRef(null);l.useEffect(()=>{if(!w)return;let S=!0;const N=m.current;if(!N)return;const E=setTimeout(()=>{S&&wn(N)},300);return()=>{S=!1,clearTimeout(E)}},[w]);const p=l.useCallback(S=>{S&&S.stopPropagation(),d(!1),g(void 0),s==null||s(!1)},[s]),f=l.useCallback(async S=>{if(S&&S.stopPropagation(),!u||!n)return;await n(t.id,Ar(u))&&(d(!1),g(void 0),s==null||s(!1))},[u,n,t.id,s]),y=l.useMemo(()=>{const S=new Date(t.date),N=D.formatRelativeDate(S,a["%comment_date_today%"],a["%comment_date_yesterday%"]),E=S.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"});return D.formatReplacementString(a["%comment_dateAtTime%"],{date:N,time:E})},[t.date,a]),b=l.useMemo(()=>t.user,[t.user]),I=l.useMemo(()=>t.user.split(" ").map(S=>S[0]).join("").toUpperCase().slice(0,2),[t.user]),C=l.useMemo(()=>D.sanitizeHtml(t.contents),[t.contents]),T=l.useMemo(()=>{if(o&&c)return r.jsxs(r.Fragment,{children:[r.jsxs(Se,{onClick:S=>{S.stopPropagation(),d(!0),g(gc(t.contents)),s==null||s(!0)},children:[r.jsx($.Pencil,{className:"tw:me-2 tw:h-4 tw:w-4"}),a["%comment_editComment%"]]}),r.jsxs(Se,{onClick:async S=>{S.stopPropagation(),i&&await i(t.id)},children:[r.jsx($.Trash2,{className:"tw:me-2 tw:h-4 tw:w-4"}),a["%comment_deleteComment%"]]})]})},[c,o,a,t.contents,t.id,i,s]);return r.jsxs("div",{className:h("tw:flex tw:w-full tw:flex-row tw:items-baseline tw:gap-3 tw:space-y-3",{"tw:text-sm":e}),children:[r.jsx(vn,{className:"tw:h-8 tw:w-8",children:r.jsx(bn,{className:"tw:text-xs tw:font-medium",children:I})}),r.jsxs("div",{className:"tw:flex tw:flex-1 tw:flex-col tw:gap-2",children:[r.jsxs("div",{className:"tw:flex tw:w-full tw:flex-row tw:flex-wrap tw:items-baseline tw:gap-x-2",children:[r.jsx("p",{className:"tw:text-sm tw:font-medium",children:b}),r.jsx("p",{className:"tw:text-xs tw:font-normal tw:text-muted-foreground",children:y}),r.jsx("div",{className:"tw:flex-1"}),e&&t.assignedUser!==void 0&&r.jsxs(pe,{variant:"secondary",className:"tw:text-xs tw:font-normal",children:["→ ",Sr(t.assignedUser,a)]})]}),w&&r.jsxs("div",{role:"textbox",tabIndex:-1,className:"tw:flex tw:flex-col tw:gap-2",ref:m,onKeyDownCapture:S=>{S.key==="Escape"?(S.preventDefault(),S.stopPropagation(),p()):Aa(S)&&(S.preventDefault(),S.stopPropagation(),Zt(u)&&f())},onKeyDown:S=>{Ia(S),(S.key==="Enter"||S.key===" ")&&S.stopPropagation()},onClick:S=>{S.stopPropagation()},children:[r.jsx($r,{className:h('tw:[&_[data-lexical-editor="true"]>blockquote]:mt-0 tw:[&_[data-lexical-editor="true"]>blockquote]:border-s-0 tw:[&_[data-lexical-editor="true"]>blockquote]:ps-0 tw:[&_[data-lexical-editor="true"]>blockquote]:font-normal tw:[&_[data-lexical-editor="true"]>blockquote]:not-italic tw:[&_[data-lexical-editor="true"]>blockquote]:text-foreground'),editorSerializedState:u,onSerializedChange:S=>g(S)}),r.jsxs("div",{className:"tw:flex tw:flex-row tw:items-start tw:justify-end tw:gap-2",children:[r.jsx(F,{size:"icon",onClick:p,variant:"outline",className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",children:r.jsx($.X,{})}),r.jsx(F,{size:"icon",onClick:f,className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",disabled:!Zt(u),children:r.jsx($.ArrowUp,{})})]})]}),!w&&r.jsxs(r.Fragment,{children:[t.status==="Resolved"&&r.jsx("div",{className:"tw:text-sm tw:italic",children:a["%comment_status_resolved%"]}),t.status==="Todo"&&e&&r.jsx("div",{className:"tw:text-sm tw:italic",children:a["%comment_status_todo%"]}),r.jsx("div",{className:h("tw:prose tw:items-start tw:gap-2 tw:break-words tw:text-sm tw:font-normal tw:text-foreground","tw:max-w-none","tw:[&>blockquote]:border-s-0 tw:[&>blockquote]:p-0 tw:[&>blockquote]:ps-0 tw:[&>blockquote]:font-normal tw:[&>blockquote]:not-italic tw:[&>blockquote]:text-foreground","tw:prose-quoteless",{"tw:line-clamp-3":!o}),dangerouslySetInnerHTML:{__html:C}})]})]}),T&&r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"ghost",size:"icon",children:r.jsx($.MoreHorizontal,{})})}),r.jsx(ne,{align:"end",children:T})]})]})}const ho={root:{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"",type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:""}],direction:"ltr",format:"",indent:0,type:"root",version:1}};function Ec({classNameForVerseText:t,comments:e,localizedStrings:a,isSelected:o=!1,verseRef:n,assignedUser:i,currentUser:s,handleSelectThread:c,threadId:w,thread:d,threadStatus:u,handleAddCommentToThread:g,handleUpdateComment:m,handleDeleteComment:p,handleReadStatusChange:f,assignableUsers:y,canUserAddCommentToThread:b,canUserAssignThreadCallback:I,canUserResolveThreadCallback:C,canUserEditOrDeleteCommentCallback:T,isRead:S=!1,autoReadDelay:N=5,onVerseRefClick:E,initialAssignedUser:z}){const[j,x]=l.useState(ho),[R,P]=l.useState(),[G,K]=l.useState(),V=o,[q,M]=l.useState(!1),[Y,lt]=l.useState(!1),[kt,St]=l.useState(!1),[J,Et]=l.useState(!1),[U,tt]=l.useState(!1),[rt,at]=l.useState(S),[ot,Lt]=l.useState(!1),gt=l.useRef(void 0),[Ft,Gt]=l.useState(new Map);l.useEffect(()=>{let O=!0;return(async()=>{const dt=C?await C(w):!1;O&&tt(dt)})(),()=>{O=!1}},[w,C]),l.useEffect(()=>{let O=!0;if(!o){Et(!1),Gt(new Map);return}return(async()=>{const dt=I?await I(w):!1;O&&Et(dt)})(),()=>{O=!1}},[o,w,I]);const A=l.useRef("idle");l.useEffect(()=>{if(!o){A.current!=="idle"&&(P(void 0),K(void 0),A.current="idle");return}A.current==="idle"&&(A.current="pending"),J?A.current==="pending"&&z!==void 0&&z!==i&&(P(z),A.current="auto-populated"):A.current==="auto-populated"&&(P(void 0),A.current="pending")},[o,z,J,i]);const Tt=l.useMemo(()=>e.filter(O=>!O.deleted),[e]);l.useEffect(()=>{let O=!0;if(!o||!T){Gt(new Map);return}return(async()=>{const dt=new Map;await Promise.all(Tt.map(async bt=>{const Re=await T(bt.id);O&&dt.set(bt.id,Re)})),O&&Gt(dt)})(),()=>{O=!1}},[o,Tt,T]);const Bt=l.useMemo(()=>Tt[0],[Tt]),Qt=l.useRef(null),Ut=l.useRef(void 0),Rt=l.useCallback(()=>{var O;(O=Ut.current)==null||O.call(Ut),x(ho)},[]),je=l.useCallback(()=>{const O=!rt;at(O),Lt(!O),f==null||f(w,O)},[rt,f,w]);l.useEffect(()=>{M(!1)},[o]),l.useEffect(()=>{if(o&&!rt&&!ot){const O=setTimeout(()=>{at(!0),f==null||f(w,!0)},N*1e3);return gt.current=O,()=>clearTimeout(O)}gt.current&&(clearTimeout(gt.current),gt.current=void 0)},[o,rt,ot,N,w,f]);const Kt=l.useMemo(()=>({singleReply:a["%comment_thread_single_reply%"],multipleReplies:a["%comment_thread_multiple_replies%"]}),[a]),qt=l.useMemo(()=>{if(i===void 0)return;if(i==="")return a["%comment_assign_unassigned%"]??"Unassigned";const O=Sr(i,a);return D.formatReplacementString(a["%comment_assigned_to%"],{assignedUser:O})},[i,a]),B=l.useMemo(()=>Tt.slice(1),[Tt]),W=l.useMemo(()=>B.length??0,[B.length]),nt=l.useMemo(()=>W>0,[W]),et=l.useMemo(()=>q||W<=2?B:B.slice(-2),[B,W,q]),wt=l.useMemo(()=>q||W<=2?0:W-2,[W,q]),mt=l.useMemo(()=>W===1?Kt.singleReply:D.formatReplacementString(Kt.multipleReplies,{count:W}),[W,Kt]),vt=l.useMemo(()=>wt===1?Kt.singleReply:D.formatReplacementString(Kt.multipleReplies,{count:wt}),[wt,Kt]);l.useEffect(()=>{!o&&Y&&nt&<(!1)},[o,Y,nt]);const ut=l.useCallback(async O=>{O&&O.stopPropagation();const ct=Zt(j)?Ar(j):void 0;if(R!==void 0){await g({threadId:w,contents:ct,assignedUser:R})&&(K(R),ct&&Rt());return}ct&&await g({threadId:w,contents:ct})&&Rt()},[Rt,j,g,R,w]),jt=l.useCallback(async O=>{const ct=Zt(j)?Ar(j):void 0,dt=O.status?O.assignedUser:R??O.assignedUser,bt=await g({...O,contents:ct,assignedUser:dt});return bt&&(dt!==void 0&&K(dt),ct&&Rt()),bt},[Rt,j,g,R]);if(Tt.length!==0)return r.jsx(fn,{role:"option","aria-selected":o,id:w,className:h("tw:group tw:w-full tw:rounded-none tw:border-none tw:p-4 tw:outline-hidden tw:transition-all tw:duration-200 tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",{"tw:cursor-pointer tw:hover:shadow-md":!o},{"tw:bg-primary-foreground":!o&&u!=="Resolved"&&rt,"tw:bg-background":o&&u!=="Resolved"&&rt,"tw:bg-muted":u==="Resolved","tw:bg-accent":!rt&&!o&&u!=="Resolved"}),onClick:()=>{c(w)},tabIndex:-1,children:r.jsxs(mn,{className:"tw:flex tw:flex-col tw:gap-2 tw:p-0",children:[r.jsxs("div",{className:"tw:flex tw:flex-col tw:content-center tw:items-start tw:gap-4",children:[r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-2",children:[qt&&r.jsx(pe,{className:"tw:rounded-sm tw:bg-input tw:text-sm tw:font-normal tw:text-primary tw:hover:bg-input",children:qt}),r.jsx(F,{variant:"ghost",size:"icon",onClick:O=>{O.stopPropagation(),je()},className:"tw:text-muted-foreground tw:transition tw:hover:text-foreground","aria-label":rt?a["%comment_aria_mark_as_unread%"]??"Mark as unread":a["%comment_aria_mark_as_read%"]??"Mark as read",children:rt?r.jsx($.MailOpen,{}):r.jsx($.Mail,{})}),U&&u!=="Resolved"&&r.jsx(F,{variant:"ghost",size:"icon",className:h("tw:ms-auto","tw:text-primary tw:transition-opacity tw:duration-200 tw:hover:bg-primary/10","tw:opacity-0 tw:group-hover:opacity-100"),onClick:O=>{O.stopPropagation(),jt({threadId:w,status:"Resolved"})},"aria-label":a["%comment_aria_resolve_thread%"]??"Resolve thread",children:r.jsx($.Check,{className:"tw:h-4 tw:w-4"})})]}),r.jsx("div",{className:"tw:flex tw:max-w-full tw:flex-wrap tw:items-baseline tw:gap-2",children:r.jsxs("p",{ref:Qt,className:h("tw:flex-1 tw:overflow-hidden tw:text-ellipsis tw:text-sm tw:font-normal tw:text-muted-foreground",{"tw:overflow-visible tw:text-clip tw:whitespace-normal tw:break-words":V},{"tw:whitespace-nowrap":!V}),children:[n&&E?r.jsx(F,{variant:"ghost",size:"sm",className:"tw:h-auto tw:px-1 tw:py-0 tw:text-sm tw:font-normal tw:text-muted-foreground",onClick:O=>{O.stopPropagation(),E(d)},children:n}):n,r.jsxs("span",{className:t,children:[Bt.contextBefore,r.jsx("span",{className:"tw:font-bold",children:Bt.selectedText}),Bt.contextAfter]})]})}),r.jsx(go,{comment:Bt,localizedStrings:a,isThreadExpanded:o,threadStatus:u,handleAddCommentToThread:jt,handleUpdateComment:m,handleDeleteComment:p,onEditingChange:lt,canEditOrDelete:(!Y&&Ft.get(Bt.id))??!1,canUserResolveThread:U})]}),r.jsxs(r.Fragment,{children:[nt&&!o&&r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-5",children:[r.jsx("div",{className:"tw:w-8",children:r.jsx($e,{})}),r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:mt})]}),!o&&Zt(j)&&r.jsx($r,{editorSerializedState:j,onSerializedChange:O=>x(O),placeholder:a["%comment_replyOrAssign%"]}),o&&r.jsxs(r.Fragment,{children:[wt>0&&r.jsxs("div",{className:"tw:flex tw:cursor-pointer tw:items-center tw:gap-5 tw:py-2",onClick:O=>{O.stopPropagation(),M(!0)},role:"button",tabIndex:0,onKeyDown:O=>{(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),O.stopPropagation(),M(!0))},children:[r.jsx("div",{className:"tw:w-8",children:r.jsx($e,{})}),r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-2",children:[r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:vt}),q?r.jsx($.ChevronUp,{}):r.jsx($.ChevronDown,{})]})]}),et.map(O=>r.jsx("div",{children:r.jsx(go,{comment:O,localizedStrings:a,isReply:!0,isThreadExpanded:o,handleUpdateComment:m,handleDeleteComment:p,onEditingChange:lt,canEditOrDelete:(!Y&&Ft.get(O.id))??!1})},O.id)),b!==!1&&(!Y||Zt(j))&&r.jsxs("div",{role:"textbox",tabIndex:-1,className:"tw:w-full tw:space-y-2",onClick:O=>O.stopPropagation(),onKeyDownCapture:O=>{Aa(O)&&(O.preventDefault(),O.stopPropagation(),(Zt(j)||R!==void 0&&R!==G)&&ut())},onKeyDown:O=>{Ia(O),(O.key==="Enter"||O.key===" ")&&O.stopPropagation()},children:[r.jsx($r,{editorSerializedState:j,onSerializedChange:O=>x(O),placeholder:u==="Resolved"?a["%comment_reopenResolved%"]:a["%comment_replyOrAssign%"],autoFocus:!0,onClear:O=>{Ut.current=O}}),r.jsxs("div",{className:"tw:flex tw:flex-row tw:items-center tw:justify-end tw:gap-2",children:[R!==void 0&&(Zt(j)||R!==G)&&r.jsx("span",{className:"tw:flex-1 tw:text-sm tw:text-muted-foreground",children:D.formatReplacementString(a["%comment_assigning_to%"]??"Assigning to: {assignedUser}",{assignedUser:Sr(R,a)})}),r.jsxs(se,{open:kt,onOpenChange:St,children:[r.jsx(me,{asChild:!0,children:r.jsx(F,{size:"icon",variant:"outline",className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",disabled:!J||!y||y.length===0||!y.includes(s),"aria-label":a["%comment_aria_assign_user%"]??"Assign user",children:r.jsx($.AtSign,{})})}),r.jsx(ce,{className:"tw:w-auto tw:p-0",align:"end",onKeyDown:O=>{O.key==="Escape"&&(O.stopPropagation(),St(!1))},children:r.jsx(he,{children:r.jsx(fe,{children:y==null?void 0:y.map(O=>r.jsx(ie,{onSelect:()=>{P(O!==i?O:void 0),A.current="user-selected",K(void 0),St(!1)},className:"tw:flex tw:items-center",children:r.jsx("span",{children:Sr(O,a)})},O||"unassigned"))})})})]}),r.jsx(F,{size:"icon",onClick:ut,className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",disabled:!Zt(j)&&(R===void 0||R===G),"aria-label":a["%comment_aria_submit_comment%"]??"Submit comment",children:r.jsx($.ArrowUp,{})})]})]})]})]})]})})}function Tc({className:t="",classNameForVerseText:e,threads:a,currentUser:o,localizedStrings:n,handleAddCommentToThread:i,handleUpdateComment:s,handleDeleteComment:c,handleReadStatusChange:w,assignableUsers:d,canUserAddCommentToThread:u,canUserAssignThreadCallback:g,canUserResolveThreadCallback:m,canUserEditOrDeleteCommentCallback:p,selectedThreadId:f,onSelectedThreadChange:y,onVerseRefClick:b}){const[I,C]=l.useState(new Set),[T,S]=l.useState(),[N,E]=l.useState(),z=l.useCallback(async M=>{const Y=await i(M);return Y!==void 0&&M.assignedUser!==void 0&&M.assignedUser!==""&&E(M.assignedUser),Y},[i]);l.useEffect(()=>{f&&(C(M=>new Set(M).add(f)),S(f))},[f]);const j=a.filter(M=>M.comments.some(Y=>!Y.deleted)),x=j.map(M=>({id:M.id})),R=l.useCallback(M=>{C(Y=>new Set(Y).add(M.id)),S(M.id),y==null||y(M.id)},[y]),P=l.useCallback(M=>{const Y=I.has(M);C(lt=>{const kt=new Set(lt);return kt.has(M)?kt.delete(M):kt.add(M),kt}),S(M),y==null||y(Y?void 0:M)},[I,y]),{listboxRef:G,activeId:K,handleKeyDown:V}=gn({options:x,onOptionSelect:R}),q=l.useCallback(M=>{M.key==="Escape"?(T&&I.has(T)&&(C(Y=>{const lt=new Set(Y);return lt.delete(T),lt}),S(void 0),y==null||y(void 0)),M.preventDefault(),M.stopPropagation()):V(M)},[T,I,V,y]);return r.jsx("div",{id:"comment-list",role:"listbox",tabIndex:0,ref:G,"aria-activedescendant":K??void 0,"aria-label":"Comments",className:h("tw:flex tw:w-full tw:flex-col tw:space-y-3 tw:outline-hidden tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",t),onKeyDown:q,children:j.map(M=>r.jsx("div",{className:h({"tw:opacity-60":M.status==="Resolved"}),children:r.jsx(Ec,{classNameForVerseText:e,comments:M.comments,localizedStrings:n,verseRef:M.verseRef,handleSelectThread:P,threadId:M.id,thread:M,isRead:M.isRead,isSelected:I.has(M.id),currentUser:o,assignedUser:M.assignedUser,threadStatus:M.status,handleAddCommentToThread:z,handleUpdateComment:s,handleDeleteComment:c,handleReadStatusChange:w,assignableUsers:d,canUserAddCommentToThread:u,canUserAssignThreadCallback:g,canUserResolveThreadCallback:m,canUserEditOrDeleteCommentCallback:p,onVerseRefClick:b,initialAssignedUser:N})},M.id))})}function Rc({table:t}){return r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsxs(F,{variant:"outline",size:"sm",className:"tw:ml-auto tw:hidden tw:h-8 tw:lg:flex",children:[r.jsx($.FilterIcon,{className:"tw:mr-2 tw:h-4 tw:w-4"}),"View"]})}),r.jsxs(ne,{align:"end",className:"tw:w-[150px]",children:[r.jsx(Ee,{children:"Toggle columns"}),r.jsx(ye,{}),t.getAllColumns().filter(e=>e.getCanHide()).map(e=>r.jsx(ee,{className:"tw:capitalize",checked:e.getIsVisible(),onCheckedChange:a=>e.toggleVisibility(!!a),children:e.id},e.id))]})]})}function Ae({...t}){return r.jsx(k.Select.Root,{"data-slot":"select",...t})}function Cn({className:t,...e}){return r.jsx(k.Select.Group,{"data-slot":"select-group",className:h("tw:scroll-my-1 tw:p-1",t),...e})}function Pe({...t}){return r.jsx(k.Select.Value,{"data-slot":"select-value",...t})}function Le({className:t,size:e="default",children:a,...o}){const n=ft();return r.jsxs(k.Select.Trigger,{"data-slot":"select-trigger","data-size":e,className:h("pr-twp tw:flex tw:w-fit tw:items-center tw:gap-2 tw:rounded-lg tw:border tw:border-input tw:bg-transparent tw:py-2 tw:pe-2 tw:ps-2.5 tw:text-sm tw:whitespace-nowrap tw:transition-colors tw:outline-none tw:select-none tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:data-placeholder:text-muted-foreground tw:data-[size=default]:h-8 tw:data-[size=sm]:h-7 tw:data-[size=sm]:rounded-[min(var(--tw-radius-md),10px)] tw:*:data-[slot=select-value]:line-clamp-1 tw:*:data-[slot=select-value]:flex tw:*:data-[slot=select-value]:flex-1 tw:*:data-[slot=select-value]:items-center tw:*:data-[slot=select-value]:gap-1.5 tw:*:data-[slot=select-value]:text-start tw:dark:bg-input/30 tw:dark:hover:bg-input/50 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),dir:n,...o,children:[a,r.jsx(k.Select.Icon,{asChild:!0,children:r.jsx(ht.IconSelector,{className:"tw:pointer-events-none tw:size-4 tw:text-muted-foreground"})})]})}function Be({className:t,children:e,position:a="popper",align:o="center",...n}){const i=ft();return r.jsx(k.Select.Portal,{children:r.jsxs(k.Select.Content,{"data-slot":"select-content","data-align-trigger":a==="item-aligned",className:h("pr-twp tw:relative tw:z-50 tw:max-h-(--radix-select-content-available-height) tw:data-[align-trigger=true]:min-w-(--radix-select-trigger-width) tw:data-[align-trigger=false]:min-w-36 tw:origin-(--radix-select-content-transform-origin) tw:overflow-x-hidden tw:overflow-y-auto tw:rounded-lg tw:bg-popover tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[align-trigger=true]:animate-none tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",a==="popper"&&"tw:data-[side=bottom]:translate-y-1 tw:data-[side=left]:-translate-x-1 tw:rtl:data-[side=left]:translate-x-1 tw:data-[side=right]:translate-x-1 tw:rtl:data-[side=right]:-translate-x-1 tw:data-[side=top]:-translate-y-1",t),position:a,align:o,...n,children:[r.jsx(Sn,{}),r.jsx(k.Select.Viewport,{"data-position":a,className:h("tw:data-[position=popper]:h-(--radix-select-trigger-height) tw:data-[position=popper]:w-full tw:data-[position=popper]:min-w-(--radix-select-trigger-width)",a==="popper"&&"tw:"),children:r.jsx("div",{dir:i,children:e})}),r.jsx(En,{})]})})}function zc({className:t,...e}){return r.jsx(k.Select.Label,{"data-slot":"select-label",className:h("pr-twp tw:px-1.5 tw:py-1 tw:text-xs tw:text-muted-foreground",t),...e})}function Jt({className:t,children:e,...a}){return r.jsxs(k.Select.Item,{"data-slot":"select-item",className:h("pr-twp tw:relative tw:flex tw:w-full tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:*:[span]:last:flex tw:*:[span]:last:items-center tw:*:[span]:last:gap-2",t),...a,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2 tw:flex tw:size-4 tw:items-center tw:justify-center",children:r.jsx(k.Select.ItemIndicator,{children:r.jsx(ht.IconCheck,{className:"tw:pointer-events-none"})})}),r.jsx(k.Select.ItemText,{children:e})]})}function Dc({className:t,...e}){return r.jsx(k.Select.Separator,{"data-slot":"select-separator",className:h("pr-twp tw:pointer-events-none tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function Sn({className:t,...e}){return r.jsx(k.Select.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:h("pr-twp tw:z-10 tw:flex tw:cursor-default tw:items-center tw:justify-center tw:bg-popover tw:py-1 tw:[&_svg:not([class*=size-])]:size-4",t),...e,children:r.jsx(ht.IconChevronUp,{})})}function En({className:t,...e}){return r.jsx(k.Select.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:h("pr-twp tw:z-10 tw:flex tw:cursor-default tw:items-center tw:justify-center tw:bg-popover tw:py-1 tw:[&_svg:not([class*=size-])]:size-4",t),...e,children:r.jsx(ht.IconChevronDown,{})})}function Ic({table:t}){return r.jsx("div",{className:"tw:flex tw:items-center tw:justify-between tw:px-2 tw:pb-3 tw:pt-3",children:r.jsxs("div",{className:"tw:flex tw:items-center tw:space-x-6 tw:lg:space-x-8",children:[r.jsxs("div",{className:"tw:flex-1 tw:text-sm tw:text-muted-foreground",children:[t.getFilteredSelectedRowModel().rows.length," of"," ",t.getFilteredRowModel().rows.length," row(s) selected"]}),r.jsxs("div",{className:"tw:flex tw:items-center tw:space-x-2",children:[r.jsx("p",{className:"tw:text-nowrap tw:text-sm tw:font-medium",children:"Rows per page"}),r.jsxs(Ae,{value:`${t.getState().pagination.pageSize}`,onValueChange:e=>{t.setPageSize(Number(e))},children:[r.jsx(Le,{className:"tw:h-8 tw:w-[70px]",children:r.jsx(Pe,{placeholder:t.getState().pagination.pageSize})}),r.jsx(Be,{side:"top",children:[10,20,30,40,50].map(e=>r.jsx(Jt,{value:`${e}`,children:e},e))})]})]}),r.jsxs("div",{className:"tw:flex tw:w-[100px] tw:items-center tw:justify-center tw:text-sm tw:font-medium",children:["Page ",t.getState().pagination.pageIndex+1," of ",t.getPageCount()]}),r.jsxs("div",{className:"tw:flex tw:items-center tw:space-x-2",children:[r.jsxs(F,{variant:"outline",size:"icon",className:"tw:hidden tw:h-8 tw:w-8 tw:p-0 tw:lg:flex",onClick:()=>t.setPageIndex(0),disabled:!t.getCanPreviousPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to first page"}),r.jsx($.ArrowLeftIcon,{className:"tw:h-4 tw:w-4"})]}),r.jsxs(F,{variant:"outline",size:"icon",className:"tw:h-8 tw:w-8 tw:p-0",onClick:()=>t.previousPage(),disabled:!t.getCanPreviousPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to previous page"}),r.jsx($.ChevronLeftIcon,{className:"tw:h-4 tw:w-4"})]}),r.jsxs(F,{variant:"outline",size:"icon",className:"tw:h-8 tw:w-8 tw:p-0",onClick:()=>t.nextPage(),disabled:!t.getCanNextPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to next page"}),r.jsx($.ChevronRightIcon,{className:"tw:h-4 tw:w-4"})]}),r.jsxs(F,{variant:"outline",size:"icon",className:"tw:hidden tw:h-8 tw:w-8 tw:p-0 tw:lg:flex",onClick:()=>t.setPageIndex(t.getPageCount()-1),disabled:!t.getCanNextPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to last page"}),r.jsx($.ArrowRightIcon,{className:"tw:h-4 tw:w-4"})]})]})]})})}const fo=` +"use strict";var hi=Object.defineProperty;var fi=(t,e,a)=>e in t?hi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var Dt=(t,e,a)=>fi(t,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),l=require("react"),Ve=require("cmdk"),mi=require("clsx"),_o=require("tailwind-merge"),k=require("radix-ui"),ge=require("class-variance-authority"),ht=require("@tabler/icons-react"),st=require("@sillsdev/scripture"),z=require("platform-bible-utils"),O=require("lucide-react"),v=require("lexical"),ca=require("@lexical/rich-text"),Xa=require("react-dom"),vi=require("@lexical/table"),No=require("@lexical/headless"),Mt=require("@tanstack/react-table"),bi=require("markdown-to-jsx"),Xt=require("@eten-tech-foundation/platform-editor"),xi=require("react-hotkeys-hook"),Te=require("vaul"),yi=require("react-resizable-panels"),ki=require("next-themes"),Co=require("sonner");function ji(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const o=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>t[a]})}}return e.default=t,Object.freeze(e)}const ba=ji(yi),_i=_o.extendTailwindMerge({prefix:"tw"});function la(t){const e=[];let a="",o=0;for(let n=0;ni.startsWith("-tw-"));if(a!==-1){const i=e[a].slice(4);return{normalized:`tw:${[...e.filter((w,d)=>d!==a),`-${i}`].join(":")}`,original:t}}const o=e.findIndex(i=>i.startsWith("!tw-"));if(o!==-1){const i=e[o].slice(4);return{normalized:`tw:${[...e.filter((w,d)=>d!==o),`!${i}`].join(":")}`,original:t}}const n=e[e.length-1];if(n.startsWith("tw-")){const i=n.slice(3);return{normalized:`tw:${[...e.slice(0,-1),i].join(":")}`,original:t}}return{normalized:t,original:t}}function Ci(t,e){if(e.startsWith("tw:"))return t;const a=la(t);if(a[0]!=="tw")return t;const o=a.slice(1,-1),n=a[a.length-1],i=la(e),s=i.some(w=>w.startsWith("-tw-")),c=i.some(w=>w.startsWith("!tw-"));if(s&&n.startsWith("-")){const w=n.slice(1);return[...o,`-tw-${w}`].join(":")}if(c&&n.startsWith("!")){const w=n.slice(1);return[...o,`!tw-${w}`].join(":")}return[...o,`tw-${n}`].join(":")}function h(...t){const e=mi.clsx(t);if(!e)return e;if(e.indexOf("tw-")===-1)return _i(e);const a=e.split(" ").filter(Boolean),o=new Map,n=[];return a.forEach(w=>{const d=Ni(w);o.set(d.normalized,d.original),n.push(d.normalized)}),_o.twMerge(n.join(" ")).split(" ").filter(Boolean).map(w=>{const d=o.get(w);return d?Ci(w,d):w}).join(" ")}const We=250,xa=300,Vr=400,So=450,Eo=500,To=550,ya=ge.cva("pr-twp tw:group/button tw:inline-flex tw:shrink-0 tw:items-center tw:justify-center tw:rounded-lg tw:border tw:border-transparent tw:bg-clip-padding tw:text-sm tw:font-medium tw:whitespace-nowrap tw:transition-all tw:outline-none tw:select-none tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:active:not-aria-[haspopup]:translate-y-px tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",{variants:{variant:{default:"tw:bg-primary tw:text-primary-foreground tw:[a]:hover:bg-primary/80",outline:"tw:border-border tw:bg-background tw:hover:bg-muted tw:hover:text-foreground tw:aria-expanded:bg-muted tw:aria-expanded:text-foreground tw:dark:border-input tw:dark:bg-input/30 tw:dark:hover:bg-input/50",secondary:"tw:bg-secondary tw:text-secondary-foreground tw:hover:bg-secondary/80 tw:aria-expanded:bg-secondary tw:aria-expanded:text-secondary-foreground",ghost:"tw:hover:bg-muted tw:hover:text-foreground tw:aria-expanded:bg-muted tw:aria-expanded:text-foreground tw:dark:hover:bg-muted/50",destructive:"tw:bg-destructive/10 tw:text-destructive tw:hover:bg-destructive/20 tw:focus-visible:border-destructive/40 tw:focus-visible:ring-destructive/20 tw:dark:bg-destructive/20 tw:dark:hover:bg-destructive/30 tw:dark:focus-visible:ring-destructive/40",link:"tw:text-primary tw:underline-offset-4 tw:hover:underline"},size:{default:"tw:h-8 tw:gap-1.5 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2",xs:"tw:h-6 tw:gap-1 tw:rounded-[min(var(--tw-radius-md),10px)] tw:px-2 tw:text-xs tw:in-data-[slot=button-group]:rounded-lg tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3",sm:"tw:h-7 tw:gap-1 tw:rounded-[min(var(--tw-radius-md),12px)] tw:px-2.5 tw:text-[0.8rem] tw:in-data-[slot=button-group]:rounded-lg tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3.5",lg:"tw:h-9 tw:gap-1.5 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2",icon:"tw:size-8","icon-xs":"tw:size-6 tw:rounded-[min(var(--tw-radius-md),10px)] tw:in-data-[slot=button-group]:rounded-lg tw:[&_svg:not([class*=size-])]:size-3","icon-sm":"tw:size-7 tw:rounded-[min(var(--tw-radius-md),12px)] tw:in-data-[slot=button-group]:rounded-lg","icon-lg":"tw:size-9"}},defaultVariants:{variant:"default",size:"default"}});function F({className:t,variant:e="default",size:a="default",asChild:o=!1,...n}){const i=o?k.Slot.Root:"button";return r.jsx(i,{"data-slot":"button","data-variant":e,"data-size":a,className:h(ya({variant:e,size:a,className:t})),...n})}const Si="layoutDirection";function ft(){const t=localStorage.getItem(Si);return t==="rtl"?t:"ltr"}function Er({...t}){return r.jsx(k.Dialog.Root,{"data-slot":"dialog",...t})}function Ei({...t}){return r.jsx(k.Dialog.Trigger,{"data-slot":"dialog-trigger",...t})}function Ro({...t}){return r.jsx(k.Dialog.Portal,{"data-slot":"dialog-portal",...t})}function Ti({...t}){return r.jsx(k.Dialog.Close,{"data-slot":"dialog-close",...t})}function zo({className:t,style:e,...a}){return r.jsx(k.Dialog.Overlay,{"data-slot":"dialog-overlay",className:h("tw:fixed tw:inset-0 tw:isolate tw:bg-black/10 tw:duration-100 tw:supports-backdrop-filter:backdrop-blur-xs tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-closed:animate-out tw:data-closed:fade-out-0",t),style:{zIndex:So,...e},...a})}function Tr({className:t,children:e,showCloseButton:a=!0,overlayClassName:o,style:n,...i}){const s=ft();return r.jsxs(Ro,{children:[r.jsx(zo,{className:o}),r.jsxs(k.Dialog.Content,{"data-slot":"dialog-content",className:h("pr-twp tw:fixed tw:top-1/2 tw:start-1/2 tw:grid tw:w-full tw:max-w-[calc(100%-2rem)] tw:-translate-x-1/2 tw:rtl:translate-x-1/2 tw:-translate-y-1/2 tw:gap-4 tw:rounded-xl tw:bg-popover tw:p-4 tw:text-sm tw:text-popover-foreground tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:outline-none tw:sm:max-w-sm tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95",t),style:{zIndex:Eo,...n},dir:s,...i,children:[e,a&&r.jsx(k.Dialog.Close,{"data-slot":"dialog-close",asChild:!0,children:r.jsxs(F,{variant:"ghost",className:"tw:absolute tw:top-2 tw:end-2",size:"icon-sm",children:[r.jsx(ht.IconX,{}),r.jsx("span",{className:"tw:sr-only",children:"Close"})]})})]})]})}function Rr({className:t,...e}){return r.jsx("div",{"data-slot":"dialog-header",className:h("pr-twp tw:flex tw:flex-col tw:gap-2 tw:sm:text-start",t),...e})}function da({className:t,showCloseButton:e=!1,children:a,...o}){return r.jsxs("div",{"data-slot":"dialog-footer",className:h("pr-twp tw:-mx-4 tw:-mb-4 tw:flex tw:flex-col-reverse tw:gap-2 tw:rounded-b-xl tw:border-t tw:bg-muted/50 tw:p-4 tw:sm:flex-row tw:sm:justify-end",t),...o,children:[a,e&&r.jsx(k.Dialog.Close,{asChild:!0,children:r.jsx(F,{variant:"outline",children:"Close"})})]})}function zr({className:t,...e}){return r.jsx(k.Dialog.Title,{"data-slot":"dialog-title",className:h("pr-twp tw:font-heading tw:text-base tw:leading-none tw:font-medium",t),...e})}function Ri({className:t,...e}){return r.jsx(k.Dialog.Description,{"data-slot":"dialog-description",className:h("pr-twp tw:text-sm tw:text-muted-foreground tw:*:[a]:underline tw:*:[a]:underline-offset-3 tw:*:[a]:hover:text-foreground",t),...e})}function Xe({className:t,type:e,...a}){return r.jsx("input",{type:e,"data-slot":"input",className:h("pr-twp tw:h-8 tw:min-w-0 tw:rounded-lg tw:border tw:border-input tw:bg-transparent tw:px-2.5 tw:py-1 tw:text-base tw:transition-colors tw:outline-none tw:file:inline-flex tw:file:h-6 tw:file:border-0 tw:file:bg-transparent tw:file:text-sm tw:file:font-medium tw:file:text-foreground tw:placeholder:text-muted-foreground tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:pointer-events-none tw:disabled:cursor-not-allowed tw:disabled:bg-input/50 tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:md:text-sm tw:dark:bg-input/30 tw:dark:disabled:bg-input/80 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40",t),...a})}function zi({className:t,...e}){return r.jsx("textarea",{"data-slot":"textarea",className:h("pr-twp tw:flex tw:field-sizing-content tw:min-h-16 tw:w-full tw:rounded-lg tw:border tw:border-input tw:bg-transparent tw:px-2.5 tw:py-2 tw:text-base tw:transition-colors tw:outline-none tw:placeholder:text-muted-foreground tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:bg-input/50 tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:md:text-sm tw:dark:bg-input/30 tw:dark:disabled:bg-input/80 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40",t),...e})}function Di({className:t,...e}){return r.jsx("div",{"data-slot":"input-group",role:"group",className:h("pr-twp tw:group/input-group tw:relative tw:flex tw:h-8 tw:w-full tw:min-w-0 tw:items-center tw:rounded-lg tw:border tw:border-input tw:transition-colors tw:outline-none tw:in-data-[slot=combobox-content]:focus-within:border-inherit tw:in-data-[slot=combobox-content]:focus-within:ring-0 tw:has-disabled:bg-input/50 tw:has-disabled:opacity-50 tw:has-[[data-slot=input-group-control]:focus-visible]:border-ring tw:has-[[data-slot=input-group-control]:focus-visible]:ring-3 tw:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 tw:has-[[data-slot][aria-invalid=true]]:border-destructive tw:has-[[data-slot][aria-invalid=true]]:ring-3 tw:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 tw:has-[>[data-align=block-end]]:h-auto tw:has-[>[data-align=block-end]]:flex-col tw:has-[>[data-align=block-start]]:h-auto tw:has-[>[data-align=block-start]]:flex-col tw:has-[>textarea]:h-auto tw:dark:bg-input/30 tw:dark:has-disabled:bg-input/80 tw:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 tw:has-[>[data-align=block-end]]:[&>input]:pt-3 tw:has-[>[data-align=block-start]]:[&>input]:pb-3 tw:has-[>[data-align=inline-end]]:[&>input]:pe-1.5 tw:has-[>[data-align=inline-start]]:[&>input]:ps-1.5",t),...e})}const Ii=ge.cva("tw:flex tw:h-auto tw:cursor-text tw:items-center tw:justify-center tw:gap-2 tw:py-1.5 tw:text-sm tw:font-medium tw:text-muted-foreground tw:select-none tw:group-data-[disabled=true]/input-group:opacity-50 tw:[&>kbd]:rounded-[calc(var(--radius)-5px)] tw:[&>svg:not([class*=size-])]:size-4",{variants:{align:{"inline-start":"tw:order-first tw:ps-2 tw:has-[>button]:ms-[-0.3rem] tw:has-[>kbd]:ms-[-0.15rem]","inline-end":"tw:order-last tw:pe-2 tw:has-[>button]:me-[-0.3rem] tw:has-[>kbd]:me-[-0.15rem]","block-start":"tw:order-first tw:w-full tw:justify-start tw:px-2.5 tw:pt-2 tw:group-has-[>input]/input-group:pt-2 tw:[.border-b]:pb-2","block-end":"tw:order-last tw:w-full tw:justify-start tw:px-2.5 tw:pb-2 tw:group-has-[>input]/input-group:pb-2 tw:[.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function Mi({className:t,align:e="inline-start",...a}){return r.jsx("div",{role:"group","data-slot":"input-group-addon","data-align":e,className:h(Ii({align:e}),t),onClick:o=>{var n,i;o.target instanceof HTMLElement&&o.target.closest("button")||(i=(n=o.currentTarget.parentElement)==null?void 0:n.querySelector("input"))==null||i.focus()},...a})}ge.cva("tw:flex tw:items-center tw:gap-2 tw:text-sm tw:shadow-none",{variants:{size:{xs:"tw:h-6 tw:gap-1 tw:rounded-[calc(var(--radius)-3px)] tw:px-1.5 tw:[&>svg:not([class*=size-])]:size-3.5",sm:"tw:","icon-xs":"tw:size-6 tw:rounded-[calc(var(--radius)-3px)] tw:p-0 tw:has-[>svg]:p-0","icon-sm":"tw:size-8 tw:p-0 tw:has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function he({className:t,...e}){return r.jsx(Ve.Command,{"data-slot":"command",className:h("pr-twp tw:flex tw:size-full tw:flex-col tw:overflow-hidden tw:rounded-xl! tw:bg-popover tw:p-1 tw:text-popover-foreground",t),...e})}function Fe({className:t,onKeyDown:e,...a}){const o=ft(),n=l.useCallback(i=>{if(e==null||e(i),i.defaultPrevented||i.key!==" "||i.currentTarget.value!=="")return;const s=i.currentTarget.closest("[cmdk-root]"),c=s==null?void 0:s.querySelector('[cmdk-item][data-selected="true"]:not([data-disabled="true"])');c&&(i.preventDefault(),i.stopPropagation(),c.click())},[e]);return r.jsx("div",{"data-slot":"command-input-wrapper",className:"tw:p-1 tw:pb-0",dir:o,children:r.jsxs(Di,{className:"tw:h-8! tw:rounded-lg! tw:border-input/30 tw:bg-input/30 tw:shadow-none! tw:*:data-[slot=input-group-addon]:ps-2!",children:[r.jsx(Ve.Command.Input,{"data-slot":"command-input",className:h("tw:w-full tw:text-sm tw:outline-hidden tw:disabled:cursor-not-allowed tw:disabled:opacity-50",t),onKeyDown:n,...a}),r.jsx(Mi,{children:r.jsx(ht.IconSearch,{className:"tw:size-4 tw:shrink-0 tw:opacity-50"})})]})})}function fe({className:t,...e}){return r.jsx(Ve.Command.List,{"data-slot":"command-list",className:h("pr-twp tw:no-scrollbar tw:max-h-72 tw:scroll-py-1 tw:overflow-x-hidden tw:overflow-y-auto tw:outline-none",t),...e})}function Ze({className:t,...e}){return r.jsx(Ve.Command.Empty,{"data-slot":"command-empty",className:h("pr-twp tw:py-6 tw:text-center tw:text-sm",t),...e})}function re({className:t,...e}){return r.jsx(Ve.Command.Group,{"data-slot":"command-group",className:h("pr-twp tw:overflow-hidden tw:p-1 tw:text-foreground tw:**:[[cmdk-group-heading]]:px-2 tw:**:[[cmdk-group-heading]]:py-1.5 tw:**:[[cmdk-group-heading]]:text-xs tw:**:[[cmdk-group-heading]]:font-medium tw:**:[[cmdk-group-heading]]:text-muted-foreground",t),...e})}function ka({className:t,...e}){return r.jsx(Ve.Command.Separator,{"data-slot":"command-separator",className:h("pr-twp tw:-mx-1 tw:h-px tw:bg-border",t),...e})}function ie({className:t,children:e,...a}){return r.jsxs(Ve.Command.Item,{"data-slot":"command-item",className:h("pr-twp tw:group/command-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:in-data-[slot=dialog-content]:rounded-lg! tw:data-[disabled=true]:pointer-events-none tw:data-[disabled=true]:opacity-50 tw:data-selected:bg-muted tw:data-selected:text-foreground tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:data-selected:*:[svg]:text-foreground",t),...a,children:[e,r.jsx(ht.IconCheck,{className:"tw:ms-auto tw:opacity-0 tw:group-has-data-[slot=command-shortcut]/command-item:hidden tw:group-data-[checked=true]/command-item:opacity-100"})]})}function Oi({className:t,...e}){return r.jsx("span",{"data-slot":"command-shortcut",className:h("pr-twp tw:ms-auto tw:text-xs tw:tracking-widest tw:text-muted-foreground tw:group-data-selected/command-item:text-foreground",t),...e})}const Do=(t,e,a,o,n)=>{switch(t){case z.Section.OT:return e??"Old Testament";case z.Section.NT:return a??"New Testament";case z.Section.DC:return o??"Deuterocanon";case z.Section.Extra:return n??"Extra Materials";default:throw new Error(`Unknown section: ${t}`)}},$i=(t,e,a,o,n)=>{switch(t){case z.Section.OT:return e??"OT";case z.Section.NT:return a??"NT";case z.Section.DC:return o??"DC";case z.Section.Extra:return n??"Extra";default:throw new Error(`Unknown section: ${t}`)}};function Ce(t,e){var o;return((o=e==null?void 0:e.get(t))==null?void 0:o.localizedName)??st.Canon.bookIdToEnglishName(t)}function ja(t,e){var o;return((o=e==null?void 0:e.get(t))==null?void 0:o.localizedId)??t.toUpperCase()}const Io=st.Canon.allBookIds.filter(t=>!st.Canon.isObsolete(st.Canon.bookIdToNumber(t))),te=Object.fromEntries(Io.map(t=>[t,st.Canon.bookIdToEnglishName(t)]));function _a(t,e,a){const o=e.trim().toLowerCase();if(!o)return!1;const n=st.Canon.bookIdToEnglishName(t),i=a==null?void 0:a.get(t);return!!(z.includes(n.toLowerCase(),o)||z.includes(t.toLowerCase(),o)||(i?z.includes(i.localizedName.toLowerCase(),o)||z.includes(i.localizedId.toLowerCase(),o):!1))}function Mo({ref:t,bookId:e,isSelected:a,onSelect:o,onMouseDown:n,section:i,className:s,showCheck:c=!1,localizedBookNames:w,commandValue:d,disabled:u=!1}){const g=l.useRef(!1),m=()=>{u||(g.current||o==null||o(e),setTimeout(()=>{g.current=!1},100))},p=b=>{if(u){b.preventDefault();return}g.current=!0,n?n(b):o==null||o(e)},f=l.useMemo(()=>Ce(e,w),[e,w]),y=l.useMemo(()=>ja(e,w),[e,w]);return r.jsx("div",{className:h("tw:mx-1 tw:my-1 tw:border-b-0 tw:border-e-0 tw:border-s-2 tw:border-t-0 tw:border-solid",{"tw:border-s-red-200":i===z.Section.OT,"tw:border-s-purple-200":i===z.Section.NT,"tw:border-s-indigo-200":i===z.Section.DC,"tw:border-s-amber-200":i===z.Section.Extra}),children:r.jsxs(ie,{ref:t,value:d||`${e} ${st.Canon.bookIdToEnglishName(e)}`,onSelect:m,onMouseDown:p,role:"option","aria-selected":a,"aria-disabled":u||void 0,"aria-label":`${st.Canon.bookIdToEnglishName(e)} (${e.toLocaleUpperCase()})`,disabled:u,className:h(s,u&&"tw:cursor-not-allowed tw:opacity-50"),children:[c&&r.jsx(O.Check,{className:h("tw:me-2 tw:h-4 tw:w-4 tw:shrink-0",a?"tw:opacity-100":"tw:opacity-0")}),r.jsx("span",{className:"tw:min-w-0 tw:flex-1",children:f}),r.jsx("span",{className:"tw:ms-2 tw:shrink-0 tw:text-xs tw:text-muted-foreground",children:y})]})})}function se({...t}){return r.jsx(k.Popover.Root,{"data-slot":"popover",...t})}function me({...t}){return r.jsx(k.Popover.Trigger,{"data-slot":"popover-trigger",...t})}const Oo=l.createContext(null);function jr({container:t,children:e}){return r.jsx(Oo.Provider,{value:t,children:e})}function ce({className:t,align:e="center",sideOffset:a=4,style:o,...n}){const i=ft(),s=l.useContext(Oo);return r.jsx(k.Popover.Portal,{container:s??void 0,children:r.jsx(k.Popover.Content,{"data-slot":"popover-content",align:e,sideOffset:a,className:h("pr-twp tw:flex tw:w-72 tw:origin-(--radix-popover-content-transform-origin) tw:flex-col tw:gap-2.5 tw:rounded-lg tw:bg-popover tw:p-2.5 tw:text-sm tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:outline-hidden tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95",t),style:{zIndex:We,...o},dir:i,...n})})}function $o({...t}){return r.jsx(k.Popover.Anchor,{"data-slot":"popover-anchor",...t})}function Ai({className:t,...e}){return r.jsx("div",{"data-slot":"popover-header",className:h("pr-twp tw:flex tw:flex-col tw:gap-0.5 tw:text-sm",t),...e})}function Pi({className:t,...e}){return r.jsx("div",{"data-slot":"popover-title",className:h("pr-twp tw:font-medium",t),...e})}function Li({className:t,...e}){return r.jsx("p",{"data-slot":"popover-description",className:h("pr-twp tw:text-muted-foreground",t),...e})}function Ao(t,e,a){return`${t} ${te[t]}${e?` ${ja(t,e)} ${Ce(t,e)}`:""}`}function Po({recentSearches:t,onSearchItemSelect:e,renderItem:a=u=>String(u),getItemKey:o=u=>String(u),ariaLabel:n="Show recent searches",groupHeading:i="Recent",id:s,classNameForItems:c,buttonClassName:w="tw:absolute tw:right-0 tw:top-0 tw:h-full tw:px-3 tw:py-2",buttonVariant:d="ghost"}){const[u,g]=l.useState(!1);if(t.length===0)return;const m=p=>{e(p),g(!1)};return r.jsxs(se,{open:u,onOpenChange:g,children:[r.jsx(me,{asChild:!0,children:r.jsx(F,{variant:d,size:"icon",className:w,"aria-label":n,children:r.jsx(O.Clock,{className:"tw:h-4 tw:w-4"})})}),r.jsx(ce,{id:s,className:"tw:w-[300px] tw:p-0",align:"start",children:r.jsx(he,{children:r.jsx(fe,{children:r.jsx(re,{heading:i,children:t.map(p=>r.jsxs(ie,{onSelect:()=>m(p),className:h("tw:flex tw:items-center",c),children:[r.jsx(O.Clock,{className:"tw:mr-2 tw:h-4 tw:w-4 tw:opacity-50"}),r.jsx("span",{children:a(p)})]},o(p)))})})})})]})}function Bi(t,e,a=(n,i)=>n===i,o=15){return n=>{const i=t.filter(c=>!a(c,n)),s=[n,...i.slice(0,o-1)];e(s)}}const _r={BOOK_ONLY:/^([^:\s]+(?:\s+[^:\s]+)*)$/i,BOOK_CHAPTER:/^([^:\s]+(?:\s+[^:\s]+)*)\s+(\d+)$/i,BOOK_CHAPTER_VERSE:/^([^:\s]+(?:\s+[^:\s]+)*)\s+(\d+):(\d*)$/i},Vi=[_r.BOOK_ONLY,_r.BOOK_CHAPTER,_r.BOOK_CHAPTER_VERSE];function Fi(t){return _r.BOOK_CHAPTER_VERSE.test(t.trim())}function Za(t,e){return st.Canon.bookIdToNumber(t)0?!1:e0?!1:eo.chapterNum?!1:a{if(n)return n;const s=i.exec(t.trim());if(s){const[c,w=void 0,d=void 0]=s.slice(1);let u;const g=e.filter(m=>_a(m,c,a));if(g.length===1&&([u]=g),!u&&w){if(st.Canon.isBookIdValid(c)){const m=c.toUpperCase();e.includes(m)&&(u=m)}if(!u&&a){const m=Array.from(a.entries()).find(([,p])=>p.localizedId.toLowerCase()===c.toLowerCase());m&&e.includes(m[0])&&([u]=m)}}if(!u&&w){const p=(f=>Object.keys(te).find(y=>te[y].toLowerCase()===f.toLowerCase()))(c);if(p&&e.includes(p)&&(u=p),!u&&a){const f=Array.from(a.entries()).find(([,y])=>y.localizedName.toLowerCase()===c.toLowerCase());f&&e.includes(f[0])&&([u]=f)}}if(u){let m=w?parseInt(w,10):void 0;m&&m>we(u)&&(m=Math.max(we(u),1));const p=d?parseInt(d,10):void 0;return{book:u,chapterNum:m,verseNum:p}}}},void 0);if(o)return o}function qi(t,e,a,o){const n=l.useCallback(()=>{if(t.chapterNum>1)o({book:t.book,chapterNum:t.chapterNum-1,verseNum:1});else{const w=e.indexOf(t.book);if(w>0){const d=e[w-1],u=Math.max(we(d),1);o({book:d,chapterNum:u,verseNum:1})}}},[t,e,o]),i=l.useCallback(()=>{const w=we(t.book);if(t.chapterNum{o({book:t.book,chapterNum:t.chapterNum,verseNum:t.verseNum>1?t.verseNum-1:0})},[t,o]),c=l.useCallback(()=>{o({book:t.book,chapterNum:t.chapterNum,verseNum:t.verseNum+1})},[t,o]);return l.useMemo(()=>[{onClick:n,disabled:e.length===0||t.chapterNum===1&&e.indexOf(t.book)===0,title:"Previous chapter",icon:a==="ltr"?O.ChevronsLeft:O.ChevronsRight},{onClick:s,disabled:e.length===0||t.verseNum===0,title:"Previous verse",icon:a==="ltr"?O.ChevronLeft:O.ChevronRight},{onClick:c,disabled:e.length===0,title:"Next verse",icon:a==="ltr"?O.ChevronRight:O.ChevronLeft},{onClick:i,disabled:e.length===0||(t.chapterNum===we(t.book)||we(t.book)<=0)&&e.indexOf(t.book)===e.length-1,title:"Next chapter",icon:a==="ltr"?O.ChevronsRight:O.ChevronsLeft}],[t,e,a,n,s,c,i])}function Lo({count:t,valueBuilder:e,onSelect:a,itemRef:o,isDisabled:n,isDimmed:i,isSelected:s,className:c}){if(!(t<=0))return r.jsx(re,{children:r.jsx("div",{className:h("tw:grid tw:grid-cols-6 tw:gap-1",c),children:Array.from({length:t},(w,d)=>d+1).map(w=>{const d=(n==null?void 0:n(w))??!1;return r.jsx(ie,{value:e(w),onSelect:()=>{d||a(w)},ref:o(w),disabled:d,"aria-disabled":d||void 0,className:h("tw:h-8 tw:min-w-0 tw:cursor-pointer tw:justify-center tw:rounded-md tw:px-0 tw:text-center tw:text-sm",{"tw:bg-primary tw:text-primary-foreground":(s==null?void 0:s(w))??!1},{"tw:bg-muted/50 tw:text-muted-foreground/50":((i==null?void 0:i(w))??!1)&&!d},d&&"tw:cursor-not-allowed tw:opacity-40"),children:w},w)})})})}function Qa({bookId:t,scrRef:e,onChapterSelect:a,setChapterRef:o,isChapterDimmed:n,isChapterDisabled:i,className:s}){if(t)return r.jsx(Lo,{count:we(t),valueBuilder:c=>`${t} ${te[t]||""} ${c}`,onSelect:a,itemRef:o,isDisabled:i,isDimmed:n,isSelected:c=>t===e.book&&c===e.chapterNum,className:s})}function to({bookId:t,chapterNum:e,endVerse:a,scrRef:o,onVerseSelect:n,setVerseRef:i,isVerseDimmed:s,isVerseDisabled:c,className:w}){if(!(!t||a<=0))return r.jsx(Lo,{count:a,valueBuilder:d=>`${t} ${te[t]||""} ${e}:${d}`,onSelect:n,itemRef:i,isDisabled:c,isDimmed:s,isSelected:d=>t===o.book&&e===o.chapterNum&&d===o.verseNum,className:w})}function Nr({scrRef:t,handleSubmit:e,className:a,getActiveBookIds:o,localizedBookNames:n,localizedStrings:i,recentSearches:s,onAddRecentSearch:c,id:w,getEndVerse:d,disableReferencesUpTo:u,submitKeys:g,triggerContent:m,triggerVariant:p="outline",onOpenChange:f,onCloseAutoFocus:y,modal:b=!1,align:D="center"}){const S=ft(),[R,j]=l.useState(!1),[C,E]=l.useState(""),[$,_]=l.useState(""),[x,T]=l.useState("books"),[P,G]=l.useState(void 0),[q,V]=l.useState(void 0),[K,I]=l.useState(void 0),[Y,lt]=l.useState(!1),kt=l.useRef(null),St=l.useRef(!1),J=l.useRef(void 0),Et=l.useRef(void 0),U=l.useRef(void 0),tt=l.useRef(void 0),rt=l.useRef({}),at=l.useRef({}),ot=l.useCallback(N=>{e(N),c&&c(N)},[e,c]),Lt=l.useMemo(()=>o?o():Io,[o]),gt=l.useMemo(()=>({[z.Section.OT]:Lt.filter(H=>st.Canon.isBookOT(H)),[z.Section.NT]:Lt.filter(H=>st.Canon.isBookNT(H)),[z.Section.DC]:Lt.filter(H=>st.Canon.isBookDC(H)),[z.Section.Extra]:Lt.filter(H=>st.Canon.extraBooks().includes(H))}),[Lt]),Ft=l.useMemo(()=>Object.values(gt).flat(),[gt]),Gt=l.useMemo(()=>{if(!$.trim())return gt;const N={[z.Section.OT]:[],[z.Section.NT]:[],[z.Section.DC]:[],[z.Section.Extra]:[]};return[z.Section.OT,z.Section.NT,z.Section.DC,z.Section.Extra].forEach(Z=>{N[Z]=gt[Z].filter(_t=>_a(_t,$,n))}),N},[gt,$,n]),A=l.useMemo(()=>Ui($,Ft,n),[$,Ft,n]),Tt=l.useRef(!1);l.useEffect(()=>{if(!Tt.current){Tt.current=!0;return}f==null||f(R)},[R,f]);const Bt=l.useCallback(()=>{if(A){const N=A.chapterNum??1,H=A.verseNum??1;if(u&&Yr(A.book,N,H,u))return;ot({book:A.book,chapterNum:N,verseNum:H}),j(!1),_(""),E("")}},[ot,A,u]),Qt=l.useCallback(N=>{const H=q??(A==null?void 0:A.book),Z=K??(A==null?void 0:A.chapterNum);!H||!Z||(ot({book:H,chapterNum:Z,verseNum:N}),j(!1))},[ot,q,K,A]),Ut=l.useCallback(N=>{if(u&&Za(N,u))return;if(we(N)<=1){ot({book:N,chapterNum:1,verseNum:1}),j(!1),_("");return}G(N),T("chapters")},[ot,u]),Rt=l.useCallback(N=>{const H=x==="chapters"?P:A==null?void 0:A.book;if(H){if(d&&d(H,N)>1){V(H),I(N),T("verses"),E("");return}ot({book:H,chapterNum:N,verseNum:1}),j(!1)}},[ot,x,P,A,d]),je=l.useCallback(N=>{ot(N),j(!1),_("")},[ot]),qt=qi(t,Ft,S,e),Kt=l.useCallback(()=>{T("books"),G(void 0),V(void 0),I(void 0),setTimeout(()=>{Et.current&&Et.current.focus()},0)},[]),B=l.useCallback(()=>{const N=q;V(void 0),I(void 0),N?(G(N),T("chapters"),E("")):Kt()},[q,Kt]),W=l.useCallback(N=>{j(N),N&&(T("books"),G(void 0),V(void 0),I(void 0),_(""))},[]),{otLong:nt,ntLong:et,dcLong:wt,extraLong:mt}={otLong:i==null?void 0:i["%scripture_section_ot_long%"],ntLong:i==null?void 0:i["%scripture_section_nt_long%"],dcLong:i==null?void 0:i["%scripture_section_dc_long%"],extraLong:i==null?void 0:i["%scripture_section_extra_long%"]},vt=l.useCallback(N=>Do(N,nt,et,wt,mt),[nt,et,wt,mt]),ut=l.useCallback(N=>A?!!A.chapterNum&&!N.toString().includes(A.chapterNum.toString()):!1,[A]),jt=l.useMemo(()=>z.formatScrRef(t,n?Ce(t.book,n):"English"),[t,n]),M=l.useCallback(N=>H=>{rt.current[N]=H},[]),ct=l.useCallback(N=>H=>{at.current[N]=H},[]),dt=l.useMemo(()=>Fi($),[$]),bt=l.useMemo(()=>!d||!A||!A.chapterNum||!dt?!1:d(A.book,A.chapterNum)>0,[d,A,dt]),Re=l.useCallback(N=>u?Za(N,u):!1,[u]),_e=l.useCallback(N=>H=>u?Gi(N,H,u):!1,[u]),Qe=l.useCallback((N,H)=>Z=>u?Yr(N,H,Z,u):!1,[u]),ze=(i==null?void 0:i["%webView_bookChapterControl_selectChapter%"])??"Select Chapter",tr=(i==null?void 0:i["%webView_bookChapterControl_selectVerse%"])??"Select Verse",er=l.useCallback(N=>{(N.key==="Home"||N.key==="End")&&N.stopPropagation(),g&&g.includes(N.key)&&A&&A.chapterNum!==void 0&&A.verseNum!==void 0&&(N.preventDefault(),N.stopPropagation(),Bt())},[g,A,Bt]),gr=l.useCallback(N=>{var Wt,Ue,rr;if(N.ctrlKey)return;const{isLetter:H,isDigit:Z}=Ja(N.key);if((x==="chapters"||x==="verses")&&(N.key===" "||N.key==="Enter")){const zt=N.target instanceof HTMLElement?N.target:void 0;if(!!(zt!=null&&zt.closest('button, a, input, select, textarea, [role="button"]'))){N.stopPropagation();return}const Nt=(Wt=J.current)==null?void 0:Wt.querySelector('[cmdk-item][data-selected="true"]:not([data-disabled="true"])');if(Nt){N.preventDefault(),N.stopPropagation(),Nt.click();return}}if((x==="chapters"||x==="verses")&&(H||Z)){N.preventDefault(),N.stopPropagation();return}if(x==="chapters"&&N.key==="Backspace"){N.preventDefault(),N.stopPropagation(),Kt();return}if(x==="verses"&&N.key==="Backspace"){N.preventDefault(),N.stopPropagation(),B();return}const _t=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(N.key);if(x==="verses"&&_t){const zt=q,xt=K;if(!zt||!xt||!d)return;const Nt=d(zt,xt);if(!Nt)return;(Ue=J.current)==null||Ue.focus();const pt=(()=>{if(!C)return 1;const De=C.match(/:(\d+)$/);return De?parseInt(De[1],10):0})();let Ht=pt;const Yt=6;switch(N.key){case"ArrowLeft":pt!==0&&(Ht=pt>1?pt-1:Nt);break;case"ArrowRight":pt!==0&&(Ht=pt{const De=at.current[Ht];De&&De.scrollIntoView({block:"nearest",behavior:"smooth"})},0));return}if((x==="chapters"||x==="books"&&A)&&_t){const zt=x==="chapters"?P:A==null?void 0:A.book;if(!zt)return;x==="chapters"&&((rr=J.current)==null||rr.focus());const xt=(()=>{if(!C)return 1;const Yt=C.match(/(\d+)$/);return Yt?parseInt(Yt[1],10):0})(),Nt=we(zt);if(!Nt)return;let pt=xt;const Ht=6;switch(N.key){case"ArrowLeft":xt!==0&&(pt=xt>1?xt-1:Nt);break;case"ArrowRight":xt!==0&&(pt=xt{const Yt=rt.current[pt];Yt&&Yt.scrollIntoView({block:"nearest",behavior:"smooth"})},0))}},[x,A,Kt,B,P,q,K,d,C]),hr=l.useCallback(N=>{var _t;if(N.shiftKey||N.key==="Tab"||N.key===" ")return;if(N.key==="Enter"){N.stopPropagation();return}if(N.key==="ArrowUp"||N.key==="ArrowDown"){(_t=Et.current)==null||_t.focus();return}const{isLetter:H,isDigit:Z}=Ja(N.key);(H||Z)&&(N.preventDefault(),_(Wt=>Wt+N.key),Et.current.focus(),lt(!1))},[]);return l.useLayoutEffect(()=>{const N=setTimeout(()=>{if(R&&x==="books"&&U.current&&tt.current){const H=U.current,Z=tt.current,_t=Z.offsetTop,Wt=H.clientHeight,Ue=Z.clientHeight,rr=_t-Wt/2+Ue/2;H.scrollTo({top:Math.max(0,rr),behavior:"smooth"}),E(Ao(t.book))}},0);return()=>{clearTimeout(N)}},[R,x,$,A,t.book]),l.useLayoutEffect(()=>{if(x==="chapters"&&P){const N=P===t.book,H=N?t.chapterNum:1;E(`${P} ${te[P]||""} ${H}`),setTimeout(()=>{if(U.current)if(N){const Z=rt.current[t.chapterNum];Z&&Z.scrollIntoView({block:"center",behavior:"smooth"})}else U.current.scrollTo({top:0});J.current&&J.current.focus()},0)}},[x,P,A,t.book,t.chapterNum]),l.useLayoutEffect(()=>{if(x==="verses"&&q&&K!==void 0){const N=q===t.book&&K===t.chapterNum,H=N?t.verseNum:1;E(`${q} ${te[q]||""} ${K}:${H}`),setTimeout(()=>{if(U.current)if(N){const Z=at.current[t.verseNum];Z&&Z.scrollIntoView({block:"center",behavior:"smooth"})}else U.current.scrollTo({top:0});J.current&&J.current.focus()},0)}},[x,q,K,t.book,t.chapterNum,t.verseNum]),r.jsxs(se,{open:R,onOpenChange:W,modal:b,children:[r.jsx(me,{asChild:!0,children:r.jsx(F,{ref:kt,"aria-label":"book-chapter-trigger",variant:p,role:"combobox","aria-expanded":R,className:h("tw:h-8 tw:w-full tw:min-w-16 tw:max-w-48 tw:overflow-hidden tw:px-1",a),onClick:N=>{St.current&&(St.current=!1,N.preventDefault())},children:m??r.jsx("span",{className:"tw:truncate",children:jt})})}),r.jsx(ce,{id:w,forceMount:!0,className:"tw:w-[var(--radix-popper-anchor-width,280px)] tw:min-w-[200px] tw:max-w-[280px] tw:p-0",align:D,onKeyDownCapture:gr,onKeyDown:N=>N.stopPropagation(),onPointerDownOutside:N=>{const{target:H}=N;R&&kt.current&&H instanceof Node&&kt.current.contains(H)&&(St.current=!0,W(!1))},onCloseAutoFocus:y,children:r.jsxs(he,{ref:J,loop:!0,value:C,onValueChange:E,shouldFilter:!1,children:[x==="books"?r.jsxs("div",{className:"tw:flex tw:items-end",children:[r.jsxs("div",{className:"tw:relative tw:flex-1",children:[r.jsx(Fe,{ref:Et,value:$,onValueChange:_,onKeyDown:er,onFocus:()=>lt(!1),className:s&&s.length>0?"tw:!pr-10":""}),s&&s.length>0&&r.jsx(Po,{recentSearches:s,onSearchItemSelect:je,renderItem:N=>z.formatScrRef(N,"English"),getItemKey:N=>`${N.book}-${N.chapterNum}-${N.verseNum}`,ariaLabel:i==null?void 0:i["%history_recentSearches_ariaLabel%"],groupHeading:i==null?void 0:i["%history_recent%"]})]}),r.jsx("div",{className:"tw:flex tw:items-center tw:gap-1 tw:border-b tw:pe-2",children:qt.map(({onClick:N,disabled:H,title:Z,icon:_t})=>r.jsx(F,{variant:"ghost",size:"sm",onClick:()=>{lt(!0),N()},disabled:H,className:"tw:h-10 tw:w-4 tw:p-0",title:Z,onKeyDown:hr,children:r.jsx(_t,{})},Z))})]}):r.jsxs("div",{className:"tw:flex tw:items-center tw:border-b tw:px-3 tw:py-2",children:[r.jsx(F,{variant:"ghost",size:"sm",onClick:x==="verses"?B:Kt,className:"tw:mr-2 tw:h-6 tw:w-6 tw:p-0",tabIndex:-1,children:S==="ltr"?r.jsx(O.ArrowLeft,{className:"tw:h-4 tw:w-4"}):r.jsx(O.ArrowRight,{className:"tw:h-4 tw:w-4"})}),x==="chapters"&&P&&r.jsx("span",{tabIndex:-1,className:"tw:text-sm tw:font-medium",children:Ce(P,n)}),x==="verses"&&q&&K!==void 0&&r.jsx("span",{tabIndex:-1,className:"tw:text-sm tw:font-medium",children:`${Ce(q,n)} ${K}`}),r.jsx("span",{tabIndex:-1,className:"tw:ms-auto tw:text-sm tw:font-medium tw:text-muted-foreground",children:x==="verses"?tr:ze})]}),!Y&&r.jsxs(fe,{ref:U,children:[x==="books"&&r.jsxs(r.Fragment,{children:[!A&&Object.entries(Gt).map(([N,H])=>{if(H.length!==0)return r.jsx(re,{heading:vt(N),children:H.map(Z=>r.jsx(Mo,{bookId:Z,onSelect:_t=>Ut(_t),section:z.getSectionForBook(Z),commandValue:`${Z} ${te[Z]}`,ref:Z===t.book?tt:void 0,localizedBookNames:n,disabled:Re(Z)},Z))},N)}),A&&r.jsx(re,{children:r.jsx(ie,{value:`${A.book} ${te[A.book]} ${A.chapterNum||""}:${A.verseNum||""})}`,onSelect:Bt,disabled:!!u&&Yr(A.book,A.chapterNum??1,A.verseNum??1,u),className:"tw:font-semibold tw:text-primary",children:z.formatScrRef({book:A.book,chapterNum:A.chapterNum??1,verseNum:A.verseNum??1},n?ja(A.book,n):void 0)},"top-match")}),A&&bt&&A.chapterNum&&d&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"tw:mb-2 tw:flex tw:items-center tw:justify-between tw:px-3 tw:text-sm tw:font-medium tw:text-muted-foreground",children:[r.jsx("span",{children:`${Ce(A.book,n)} ${A.chapterNum}`}),r.jsx("span",{children:tr})]}),r.jsx(to,{bookId:A.book,chapterNum:A.chapterNum,endVerse:d(A.book,A.chapterNum),scrRef:t,onVerseSelect:Qt,setVerseRef:ct,isVerseDisabled:Qe(A.book,A.chapterNum),className:"tw:px-4 tw:pb-4"})]}),A&&!bt&&we(A.book)>1&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"tw:mb-2 tw:flex tw:items-center tw:justify-between tw:px-3 tw:text-sm tw:font-medium tw:text-muted-foreground",children:[r.jsx("span",{children:Ce(A.book,n)}),r.jsx("span",{children:ze})]}),r.jsx(Qa,{bookId:A.book,scrRef:t,onChapterSelect:Rt,setChapterRef:M,isChapterDimmed:ut,isChapterDisabled:_e(A.book),className:"tw:px-4 tw:pb-4"})]})]}),x==="chapters"&&P&&r.jsx(Qa,{bookId:P,scrRef:t,onChapterSelect:Rt,setChapterRef:M,isChapterDisabled:_e(P),className:"tw:p-4"}),x==="verses"&&q&&K!==void 0&&d&&r.jsx(to,{bookId:q,chapterNum:K,endVerse:d(q,K),scrRef:t,onVerseSelect:Qt,setVerseRef:ct,isVerseDisabled:Qe(q,K),className:"tw:p-4"})]})]})})]})}const Ki=Object.freeze(["%scripture_section_ot_long%","%scripture_section_nt_long%","%scripture_section_dc_long%","%scripture_section_extra_long%","%history_recent%","%history_recentSearches_ariaLabel%","%webView_bookChapterControl_selectChapter%","%webView_bookChapterControl_selectVerse%"]);function yt({className:t,...e}){return r.jsx(k.Label.Root,{"data-slot":"label",className:h("pr-twp tw:flex tw:items-center tw:gap-2 tw:text-sm tw:leading-none tw:font-medium tw:select-none tw:group-data-[disabled=true]:pointer-events-none tw:group-data-[disabled=true]:opacity-50 tw:peer-disabled:cursor-not-allowed tw:peer-disabled:opacity-50",t),...e})}function Na({className:t,...e}){const a=ft();return r.jsx(k.RadioGroup.Root,{"data-slot":"radio-group",className:h("pr-twp tw:grid tw:w-full tw:gap-2",t),dir:a,...e})}function Dr({className:t,...e}){return r.jsx(k.RadioGroup.Item,{"data-slot":"radio-group-item",className:h("pr-twp tw:group/radio-group-item tw:peer tw:relative tw:flex tw:aspect-square tw:size-4 tw:shrink-0 tw:rounded-full tw:border tw:border-input tw:outline-none tw:after:absolute tw:after:-inset-x-3 tw:after:-inset-y-2 tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:aria-invalid:aria-checked:border-primary tw:dark:bg-input/30 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:data-checked:border-primary tw:data-checked:bg-primary tw:data-checked:text-primary-foreground tw:dark:data-checked:bg-primary",t),...e,children:r.jsx(k.RadioGroup.Indicator,{"data-slot":"radio-group-indicator",className:"tw:flex tw:size-4 tw:items-center tw:justify-center",children:r.jsx("span",{className:"tw:absolute tw:top-1/2 tw:start-1/2 tw:size-2 tw:-translate-x-1/2 tw:rtl:translate-x-1/2 tw:-translate-y-1/2 tw:rounded-full tw:bg-primary-foreground"})})})}function Hi(t){return typeof t=="string"?t:typeof t=="number"?t.toString():t.label}function wa({id:t,options:e=[],className:a,buttonClassName:o,popoverContentClassName:n,popoverContentStyle:i,value:s,onChange:c=()=>{},getOptionLabel:w=Hi,getButtonLabel:d,icon:u=void 0,buttonPlaceholder:g="",textPlaceholder:m="",commandEmptyMessage:p="No option found",buttonVariant:f="outline",alignDropDown:y="start",isDisabled:b=!1,ariaLabel:D,...S}){const[R,j]=l.useState(!1),C=d??w,E=_=>_.length>0&&typeof _[0]=="object"&&"options"in _[0],$=(_,x)=>{const T=w(_),P=typeof _=="object"&&"secondaryLabel"in _?_.secondaryLabel:void 0,G=`${x??""}${T}${P??""}`;return r.jsxs(ie,{value:T,onSelect:()=>{c(_),j(!1)},className:"tw:flex tw:items-center",children:[r.jsx(O.Check,{className:h("tw:me-2 tw:h-4 tw:w-4 tw:shrink-0",{"tw:opacity-0":!s||w(s)!==T})}),r.jsxs("span",{className:"tw:flex-1 tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap",children:[T,P&&r.jsxs("span",{className:"tw:text-muted-foreground",children:[" · ",P]})]})]},G)};return r.jsxs(se,{open:R,onOpenChange:j,...S,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:f,role:"combobox","aria-expanded":R,"aria-label":D,id:t,className:h("tw:flex tw:w-[200px] tw:items-center tw:justify-between tw:overflow-hidden",o??a),disabled:b,children:[r.jsxs("div",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:items-center tw:overflow-hidden",children:[u&&r.jsx("div",{className:"tw:shrink-0 tw:pe-2",children:u}),r.jsx("span",{className:h("tw:min-w-0 tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:text-start"),children:s?C(s):g})]}),r.jsx(O.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ce,{align:y,className:h("tw:w-[200px] tw:p-0",n),style:i,children:r.jsxs(he,{children:[r.jsx(Fe,{placeholder:m,className:"tw:text-inherit"}),r.jsx(Ze,{children:p}),r.jsx(fe,{children:E(e)?e.map(_=>r.jsx(re,{heading:_.groupHeading,children:_.options.map(x=>$(x,_.groupHeading))},_.groupHeading)):e.map(_=>$(_))})]})})]})}function Bo({startChapter:t,endChapter:e,handleSelectStartChapter:a,handleSelectEndChapter:o,isDisabled:n=!1,chapterCount:i}){const s=l.useMemo(()=>Array.from({length:i},(d,u)=>u+1),[i]),c=d=>{a(d),d>e&&o(d)},w=d=>{o(d),dd.toString(),value:t},"start chapter"),r.jsx(yt,{htmlFor:"end-chapters-combobox",children:"to"}),r.jsx(wa,{isDisabled:n,onChange:w,buttonClassName:"tw:ms-2 tw:w-20",options:s,getOptionLabel:d=>d.toString(),value:e},"end chapter")]})}exports.BookSelectionMode=(t=>(t.CurrentBook="current book",t.ChooseBooks="choose books",t))(exports.BookSelectionMode||{});(t=>{t.CURRENT_BOOK="current book",t.CHOOSE_BOOKS="choose books"})(exports.BookSelectionMode||(exports.BookSelectionMode={}));const Yi=Object.freeze(["%webView_bookSelector_currentBook%","%webView_bookSelector_choose%","%webView_bookSelector_chooseBooks%"]),Wr=(t,e)=>t[e]??e;function Wi({handleBookSelectionModeChange:t,currentBookName:e,onSelectBooks:a,selectedBookIds:o,chapterCount:n,endChapter:i,handleSelectEndChapter:s,startChapter:c,handleSelectStartChapter:w,localizedStrings:d}){const u=Wr(d,"%webView_bookSelector_currentBook%"),g=Wr(d,"%webView_bookSelector_choose%"),m=Wr(d,"%webView_bookSelector_chooseBooks%"),[p,f]=l.useState("current book"),y=b=>{f(b),t(b)};return r.jsx(Na,{className:"pr-twp tw:flex",value:p,onValueChange:b=>y(b),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:flex-col tw:gap-4",children:[r.jsxs("div",{className:"tw:grid tw:grid-cols-[25%_25%_50%]",children:[r.jsxs("div",{className:"tw:flex tw:items-center",children:[r.jsx(Dr,{value:"current book"}),r.jsx(yt,{className:"tw:ms-1",children:u})]}),r.jsx(yt,{className:"tw:flex tw:items-center",children:e}),r.jsx("div",{className:"tw:flex tw:items-center tw:justify-end",children:r.jsx(Bo,{isDisabled:p==="choose books",handleSelectStartChapter:w,handleSelectEndChapter:s,chapterCount:n,startChapter:c,endChapter:i})})]}),r.jsxs("div",{className:"tw:grid tw:grid-cols-[25%_50%_25%]",children:[r.jsxs("div",{className:"tw:flex tw:items-center",children:[r.jsx(Dr,{value:"choose books"}),r.jsx(yt,{className:"tw:ms-1",children:m})]}),r.jsx(yt,{className:"tw:flex tw:items-center",children:o.map(b=>st.Canon.bookIdToEnglishName(b)).join(", ")}),r.jsx(F,{disabled:p==="current book",onClick:()=>a(),children:g})]})]})})}const Vo=l.createContext(null);function Xi(t,e){return{getTheme:function(){return e??null}}}function ve(){const t=l.useContext(Vo);return t==null&&function(e,...a){const o=new URL("https://lexical.dev/docs/error"),n=new URLSearchParams;n.append("code",e);for(const i of a)n.append("v",i);throw o.search=n.toString(),Error(`Minified Lexical error #${e}; visit ${o.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}(8),t}const Fo=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,Zi=Fo?l.useLayoutEffect:l.useEffect,br={tag:v.HISTORY_MERGE_TAG};function Ji({initialConfig:t,children:e}){const a=l.useMemo(()=>{const{theme:o,namespace:n,nodes:i,onError:s,editorState:c,html:w}=t,d=Xi(null,o),u=v.createEditor({editable:t.editable,html:w,namespace:n,nodes:i,onError:g=>s(g,u),theme:o});return function(g,m){if(m!==null){if(m===void 0)g.update(()=>{const p=v.$getRoot();if(p.isEmpty()){const f=v.$createParagraphNode();p.append(f);const y=Fo?document.activeElement:null;(v.$getSelection()!==null||y!==null&&y===g.getRootElement())&&f.select()}},br);else if(m!==null)switch(typeof m){case"string":{const p=g.parseEditorState(m);g.setEditorState(p,br);break}case"object":g.setEditorState(m,br);break;case"function":g.update(()=>{v.$getRoot().isEmpty()&&m(g)},br)}}}(u,c),[u,d]},[]);return Zi(()=>{const o=t.editable,[n]=a;n.setEditable(o===void 0||o)},[]),r.jsx(Vo.Provider,{value:a,children:e})}const Qi=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function ts({ignoreHistoryMergeTagChange:t=!0,ignoreSelectionChange:e=!1,onChange:a}){const[o]=ve();return Qi(()=>{if(a)return o.registerUpdateListener(({editorState:n,dirtyElements:i,dirtyLeaves:s,prevEditorState:c,tags:w})=>{e&&i.size===0&&s.size===0||t&&w.has(v.HISTORY_MERGE_TAG)||c.isEmpty()||a(n,o,w)})},[o,t,e,a]),null}const Ca={ltr:"tw:text-left",rtl:"tw:text-right",heading:{h1:"tw:scroll-m-20 tw:text-4xl tw:font-extrabold tw:tracking-tight tw:lg:text-5xl",h2:"tw:scroll-m-20 tw:border-b tw:pb-2 tw:text-3xl tw:font-semibold tw:tracking-tight tw:first:mt-0",h3:"tw:scroll-m-20 tw:text-2xl tw:font-semibold tw:tracking-tight",h4:"tw:scroll-m-20 tw:text-xl tw:font-semibold tw:tracking-tight",h5:"tw:scroll-m-20 tw:text-lg tw:font-semibold tw:tracking-tight",h6:"tw:scroll-m-20 tw:text-base tw:font-semibold tw:tracking-tight"},paragraph:"tw:outline-hidden",quote:"tw:mt-6 tw:border-l-2 tw:pl-6 tw:italic",link:"tw:text-blue-600 tw:hover:underline tw:hover:cursor-pointer",list:{checklist:"tw:relative",listitem:"tw:mx-8",listitemChecked:'tw:relative tw:mx-2 tw:px-6 tw:list-none tw:outline-hidden tw:line-through tw:before:content-[""] tw:before:w-4 tw:before:h-4 tw:before:top-0.5 tw:before:left-0 tw:before:cursor-pointer tw:before:block tw:before:bg-cover tw:before:absolute tw:before:border tw:before:border-primary tw:before:rounded tw:before:bg-primary tw:before:bg-no-repeat tw:after:content-[""] tw:after:cursor-pointer tw:after:border-white tw:after:border-solid tw:after:absolute tw:after:block tw:after:top-[6px] tw:after:w-[3px] tw:after:left-[7px] tw:after:right-[7px] tw:after:h-[6px] tw:after:rotate-45 tw:after:border-r-2 tw:after:border-b-2 tw:after:border-l-0 tw:after:border-t-0',listitemUnchecked:'tw:relative tw:mx-2 tw:px-6 tw:list-none tw:outline-hidden tw:before:content-[""] tw:before:w-4 tw:before:h-4 tw:before:top-0.5 tw:before:left-0 tw:before:cursor-pointer tw:before:block tw:before:bg-cover tw:before:absolute tw:before:border tw:before:border-primary tw:before:rounded',nested:{listitem:"tw:list-none tw:before:hidden tw:after:hidden"},ol:"tw:m-0 tw:p-0 tw:list-decimal tw:[&>li]:mt-2",olDepth:["tw:list-outside tw:!list-decimal","tw:list-outside tw:!list-[upper-roman]","tw:list-outside tw:!list-[lower-roman]","tw:list-outside tw:!list-[upper-alpha]","tw:list-outside tw:!list-[lower-alpha]"],ul:"tw:m-0 tw:p-0 tw:list-outside tw:[&>li]:mt-2",ulDepth:["tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc","tw:list-outside tw:!list-disc"]},hashtag:"tw:text-blue-600 tw:bg-blue-100 tw:rounded-md tw:px-1",text:{bold:"tw:font-bold",code:"tw:bg-gray-100 tw:p-1 tw:rounded-md",italic:"tw:italic",strikethrough:"tw:line-through",subscript:"tw:sub",superscript:"tw:sup",underline:"tw:underline",underlineStrikethrough:"tw:underline tw:line-through"},image:"tw:relative tw:inline-block tw:user-select-none tw:cursor-default editor-image",inlineImage:"tw:relative tw:inline-block tw:user-select-none tw:cursor-default inline-editor-image",keyword:"tw:text-purple-900 tw:font-bold",code:"EditorTheme__code",codeHighlight:{atrule:"EditorTheme__tokenAttr",attr:"EditorTheme__tokenAttr",boolean:"EditorTheme__tokenProperty",builtin:"EditorTheme__tokenSelector",cdata:"EditorTheme__tokenComment",char:"EditorTheme__tokenSelector",class:"EditorTheme__tokenFunction","class-name":"EditorTheme__tokenFunction",comment:"EditorTheme__tokenComment",constant:"EditorTheme__tokenProperty",deleted:"EditorTheme__tokenProperty",doctype:"EditorTheme__tokenComment",entity:"EditorTheme__tokenOperator",function:"EditorTheme__tokenFunction",important:"EditorTheme__tokenVariable",inserted:"EditorTheme__tokenSelector",keyword:"EditorTheme__tokenAttr",namespace:"EditorTheme__tokenVariable",number:"EditorTheme__tokenProperty",operator:"EditorTheme__tokenOperator",prolog:"EditorTheme__tokenComment",property:"EditorTheme__tokenProperty",punctuation:"EditorTheme__tokenPunctuation",regex:"EditorTheme__tokenVariable",selector:"EditorTheme__tokenSelector",string:"EditorTheme__tokenSelector",symbol:"EditorTheme__tokenProperty",tag:"EditorTheme__tokenProperty",url:"EditorTheme__tokenOperator",variable:"EditorTheme__tokenVariable"},characterLimit:"tw:!bg-destructive/50",table:"EditorTheme__table tw:w-fit tw:overflow-scroll tw:border-collapse",tableCell:"EditorTheme__tableCell tw:w-24 tw:relative tw:border tw:px-4 tw:py-2 tw:text-left tw:[&[align=center]]:text-center tw:[&[align=right]]:text-right",tableCellActionButton:"EditorTheme__tableCellActionButton tw:bg-background tw:block tw:border-0 tw:rounded-2xl tw:w-5 tw:h-5 tw:text-foreground tw:cursor-pointer",tableCellActionButtonContainer:"EditorTheme__tableCellActionButtonContainer tw:block tw:right-1 tw:top-1.5 tw:absolute tw:z-10 tw:w-5 tw:h-5",tableCellEditing:"EditorTheme__tableCellEditing tw:rounded-sm tw:shadow-sm",tableCellHeader:"EditorTheme__tableCellHeader tw:bg-muted tw:border tw:px-4 tw:py-2 tw:text-left tw:font-bold tw:[&[align=center]]:text-center tw:[&[align=right]]:text-right",tableCellPrimarySelected:"EditorTheme__tableCellPrimarySelected tw:border tw:border-primary tw:border-solid tw:block tw:h-[calc(100%-2px)] tw:w-[calc(100%-2px)] tw:absolute tw:-left-[1px] tw:-top-[1px] tw:z-10 ",tableCellResizer:"EditorTheme__tableCellResizer tw:absolute tw:-right-1 tw:h-full tw:w-2 tw:cursor-ew-resize tw:z-10 tw:top-0",tableCellSelected:"EditorTheme__tableCellSelected tw:bg-muted",tableCellSortedIndicator:"EditorTheme__tableCellSortedIndicator tw:block tw:opacity-50 tw:absolute tw:bottom-0 tw:left-0 tw:w-full tw:h-1 tw:bg-muted",tableResizeRuler:"EditorTheme__tableCellResizeRuler tw:block tw:absolute tw:w-[1px] tw:h-full tw:bg-primary tw:top-0",tableRowStriping:"EditorTheme__tableRowStriping tw:m-0 tw:border-t tw:p-0 tw:even:bg-muted",tableSelected:"EditorTheme__tableSelected tw:ring-2 tw:ring-primary tw:ring-offset-2",tableSelection:"EditorTheme__tableSelection tw:bg-transparent",layoutItem:"tw:border tw:border-dashed tw:px-4 tw:py-2",layoutContainer:"tw:grid tw:gap-2.5 tw:my-2.5 tw:mx-0",autocomplete:"tw:text-muted-foreground",blockCursor:"",embedBlock:{base:"tw:user-select-none",focus:"tw:ring-2 tw:ring-primary tw:ring-offset-2"},hr:'tw:p-0.5 tw:border-none tw:my-1 tw:mx-0 tw:cursor-pointer tw:after:content-[""] tw:after:block tw:after:h-0.5 tw:after:bg-muted tw:selected:ring-2 tw:selected:ring-primary tw:selected:ring-offset-2 tw:selected:user-select-none',indent:"[--lexical-indent-base-value:40px]",mark:"",markOverlap:""};function Ot({delayDuration:t=0,...e}){return r.jsx(k.Tooltip.Provider,{"data-slot":"tooltip-provider",delayDuration:t,...e})}function $t({...t}){return r.jsx(k.Tooltip.Root,{"data-slot":"tooltip",...t})}function At({className:t,variant:e,...a}){return r.jsx(k.Tooltip.Trigger,{"data-slot":"tooltip-trigger",className:e?h(ya({variant:e}),t):t,...a})}function Pt({className:t,sideOffset:e=0,style:a,children:o,...n}){return r.jsx(k.Tooltip.Portal,{children:r.jsxs(k.Tooltip.Content,{"data-slot":"tooltip-content",sideOffset:e,style:{zIndex:To,...a},className:h("pr-twp tw:inline-flex tw:w-fit tw:max-w-xs tw:origin-(--radix-tooltip-content-transform-origin) tw:items-center tw:gap-1.5 tw:rounded-md tw:bg-foreground tw:px-3 tw:py-1.5 tw:text-xs tw:text-background tw:has-data-[slot=kbd]:pe-1.5 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:**:data-[slot=kbd]:relative tw:**:data-[slot=kbd]:isolate tw:**:data-[slot=kbd]:z-50 tw:**:data-[slot=kbd]:rounded-sm tw:data-[state=delayed-open]:animate-in tw:data-[state=delayed-open]:fade-in-0 tw:data-[state=delayed-open]:zoom-in-95 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95",t),...n,children:[o,r.jsx(k.Tooltip.Arrow,{className:"tw:z-50 tw:size-2.5 tw:translate-y-[calc(-50%_-_2px)] tw:rotate-45 tw:rounded-[2px] tw:bg-foreground tw:fill-foreground"})]})})}const Sa=[ca.HeadingNode,v.ParagraphNode,v.TextNode,ca.QuoteNode],es=l.createContext(null),Xr={didCatch:!1,error:null};class rs extends l.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Xr}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var a,o,n=arguments.length,i=new Array(n),s=0;s0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return t.length!==e.length||t.some((a,o)=>!Object.is(a,e[o]))}function os({children:t,onError:e}){return r.jsx(rs,{fallback:r.jsx("div",{style:{border:"1px solid #f00",color:"#f00",padding:"8px"},children:"An error was thrown."}),onError:e,children:t})}const ns=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function is(t){return{initialValueFn:()=>t.isEditable(),subscribe:e=>t.registerEditableListener(e)}}function ss(){return function(t){const[e]=ve(),a=l.useMemo(()=>t(e),[e,t]),[o,n]=l.useState(()=>a.initialValueFn()),i=l.useRef(o);return ns(()=>{const{initialValueFn:s,subscribe:c}=a,w=s();return i.current!==w&&(i.current=w,n(w)),c(d=>{i.current=d,n(d)})},[a,t]),o}(is)}function cs(t,e){const a=t.getRootElement();if(a===null)return[];const o=a.getBoundingClientRect(),n=getComputedStyle(a),i=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight),s=Array.from(e.getClientRects());let c,w=s.length;s.sort((d,u)=>{const g=d.top-u.top;return Math.abs(g)<=3?d.left-u.left:g});for(let d=0;du.top&&c.left+c.width>u.left,m=u.width+i===o.width;g||m?(s.splice(d--,1),w--):c=u}return s}function ls(t,e,a="self"){const o=t.getStartEndPoints();if(e.isSelected(t)&&!v.$isTokenOrSegmented(e)&&o!==null){const[n,i]=o,s=t.isBackward(),c=n.getNode(),w=i.getNode(),d=e.is(c),u=e.is(w);if(d||u){const[g,m]=v.$getCharacterOffsets(t),p=c.is(w),f=e.is(s?w:c),y=e.is(s?c:w);let b,D=0;p?(D=g>m?m:g,b=g>m?g:m):f?(D=s?m:g,b=void 0):y&&(D=0,b=s?g:m);const S=e.__text.slice(D,b);S!==e.__text&&(a==="clone"&&(e=v.$cloneWithPropertiesEphemeral(e)),e.__text=S)}}return e}function Ir(t,...e){const a=new URL("https://lexical.dev/docs/error"),o=new URLSearchParams;o.append("code",t);for(const n of e)o.append("v",n);throw a.search=o.toString(),Error(`Minified Lexical error #${t}; visit ${a.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const Go=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,ds=Go&&"documentMode"in document?document.documentMode:null;!(!Go||!("InputEvent"in window)||ds)&&"getTargetRanges"in new window.InputEvent("input");function de(t){return`${t}px`}const ws={attributes:!0,characterData:!0,childList:!0,subtree:!0};function us(t,e,a){let o=null,n=null,i=null,s=[];const c=document.createElement("div");function w(){o===null&&Ir(182),n===null&&Ir(183);const{left:g,top:m}=n.getBoundingClientRect(),p=cs(t,e);var f,y;c.isConnected||(y=c,(f=n).insertBefore(y,f.firstChild));let b=!1;for(let D=0;Dp.length;)s.pop();b&&a(s)}function d(){n=null,o=null,i!==null&&i.disconnect(),i=null,c.remove();for(const g of s)g.remove();s=[]}c.style.position="relative";const u=t.registerRootListener(function g(){const m=t.getRootElement();if(m===null)return d();const p=m.parentElement;if(!v.isHTMLElement(p))return d();d(),o=m,n=p,i=new MutationObserver(f=>{const y=t.getRootElement(),b=y&&y.parentElement;if(y!==o||b!==n)return g();for(const D of f)if(!c.contains(D.target))return w()}),i.observe(p,ws),w()});return()=>{u(),d()}}function eo(t,e,a){if(t.type!=="text"&&v.$isElementNode(e)){const o=e.getDOMSlot(a);return[o.element,o.getFirstChildOffset()+t.offset]}return[v.getDOMTextNode(a)||a,t.offset]}function ps(t){for(const e of t){const a=e.style;a.background!=="Highlight"&&(a.background="Highlight"),a.color!=="HighlightText"&&(a.color="HighlightText"),a.marginTop!==de(-1.5)&&(a.marginTop=de(-1.5)),a.paddingTop!==de(4)&&(a.paddingTop=de(4)),a.paddingBottom!==de(0)&&(a.paddingBottom=de(0))}}function gs(t,e=ps){let a=null,o=null,n=null,i=null,s=null,c=null,w=()=>{};function d(u){u.read(()=>{const g=v.$getSelection();if(!v.$isRangeSelection(g))return a=null,n=null,i=null,c=null,w(),void(w=()=>{});const[m,p]=function(_){const x=_.getStartEndPoints();return _.isBackward()?[x[1],x[0]]:x}(g),f=m.getNode(),y=f.getKey(),b=m.offset,D=p.getNode(),S=D.getKey(),R=p.offset,j=t.getElementByKey(y),C=t.getElementByKey(S),E=a===null||j!==o||b!==n||y!==a.getKey(),$=i===null||C!==s||R!==c||S!==i.getKey();if((E||$)&&j!==null&&C!==null){const _=function(x,T,P,G,q,V,K){const I=(x._window?x._window.document:document).createRange();return I.setStart(...eo(T,P,G)),I.setEnd(...eo(q,V,K)),I}(t,m,f,j,p,D,C);w(),w=us(t,_,e)}a=f,o=j,n=b,i=D,s=C,c=R})}return d(t.getEditorState()),v.mergeRegister(t.registerUpdateListener(({editorState:u})=>d(u)),()=>{w()})}function hs(t,e){let a=null;const o=()=>{const n=getSelection(),i=n&&n.anchorNode,s=t.getRootElement();i!==null&&s!==null&&s.contains(i)?a!==null&&(a(),a=null):a===null&&(a=gs(t,e))};return t.registerRootListener(n=>{if(n){const i=n.ownerDocument;return i.addEventListener("selectionchange",o),o(),()=>{a!==null&&a(),i.removeEventListener("selectionchange",o)}}})}function fs(t){const e=v.$findMatchingParent(t,a=>v.$isElementNode(a)&&!a.isInline());return v.$isElementNode(e)||Ir(4,t.__key),e}function ms(t){const e=v.$getSelection()||v.$getPreviousSelection();let a;if(v.$isRangeSelection(e))a=v.$caretFromPoint(e.focus,"next");else{if(e!=null){const s=e.getNodes(),c=s[s.length-1];c&&(a=v.$getSiblingCaret(c,"next"))}a=a||v.$getChildCaret(v.$getRoot(),"previous").getFlipped().insert(v.$createParagraphNode())}const o=vs(t,a),n=v.$getAdjacentChildCaret(o),i=v.$isChildCaret(n)?v.$normalizeCaret(n):o;return v.$setSelectionFromCaretRange(v.$getCollapsedCaretRange(i)),t.getLatest()}function vs(t,e,a){let o=v.$getCaretInDirection(e,"next");for(let n=o;n;n=v.$splitAtPointCaretNext(n,a))o=n;return v.$isTextPointCaret(o)&&Ir(283),o.insert(t.isInline()?v.$createParagraphNode().append(t):t),v.$getCaretInDirection(v.$getSiblingCaret(t.getLatest(),"next"),e.direction)}function bs(t){const e=v.$getSelection();if(!v.$isRangeSelection(e))return!1;const a=new Set,o=e.getNodes();for(let n=0;nv.$isElementNode(d)&&!d.isInline());if(c===null)continue;const w=c.getKey();c.canIndent()&&!a.has(w)&&(a.add(w),t(c))}return a.size>0}const xs=Symbol.for("preact-signals");function Fr(){if(xe>1)return void xe--;let t,e=!1;for(!function(){let a=Mr;for(Mr=void 0;a!==void 0;)a.S.v===a.v&&(a.S.i=a.i),a=a.o}();ir!==void 0;){let a=ir;for(ir=void 0,Or++;a!==void 0;){const o=a.u;if(a.u=void 0,a.f&=-3,!(8&a.f)&&Uo(a))try{a.c()}catch(n){e||(t=n,e=!0)}a=o}}if(Or=0,xe--,e)throw t}function ys(t){if(xe>0)return t();ua=++ks,xe++;try{return t()}finally{Fr()}}let Q,ir;function ro(t){const e=Q;Q=void 0;try{return t()}finally{Q=e}}let Mr,xe=0,Or=0,ks=0,ua=0,Cr=0;function ao(t){if(Q===void 0)return;let e=t.n;return e===void 0||e.t!==Q?(e={i:0,S:t,p:Q.s,n:void 0,t:Q,e:void 0,x:void 0,r:e},Q.s!==void 0&&(Q.s.n=e),Q.s=e,t.n=e,32&Q.f&&t.S(e),e):e.i===-1?(e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=Q.s,e.n=void 0,Q.s.n=e,Q.s=e),e):void 0}function It(t,e){this.v=t,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=e==null?void 0:e.watched,this.Z=e==null?void 0:e.unwatched,this.name=e==null?void 0:e.name}function cr(t,e){return new It(t,e)}function Uo(t){for(let e=t.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function oo(t){for(let e=t.s;e!==void 0;e=e.n){const a=e.S.n;if(a!==void 0&&(e.r=a),e.S.n=e,e.i=-1,e.n===void 0){t.s=e;break}}}function qo(t){let e,a=t.s;for(;a!==void 0;){const o=a.p;a.i===-1?(a.S.U(a),o!==void 0&&(o.n=a.n),a.n!==void 0&&(a.n.p=o)):e=a,a.S.n=a.r,a.r!==void 0&&(a.r=void 0),a=o}t.s=e}function Ie(t,e){It.call(this,void 0),this.x=t,this.s=void 0,this.g=Cr-1,this.f=4,this.W=e==null?void 0:e.watched,this.Z=e==null?void 0:e.unwatched,this.name=e==null?void 0:e.name}function js(t,e){return new Ie(t,e)}function Ko(t){const e=t.m;if(t.m=void 0,typeof e=="function"){xe++;const a=Q;Q=void 0;try{e()}catch(o){throw t.f&=-2,t.f|=8,Ea(t),o}finally{Q=a,Fr()}}}function Ea(t){for(let e=t.s;e!==void 0;e=e.n)e.S.U(e);t.x=void 0,t.s=void 0,Ko(t)}function _s(t){if(Q!==this)throw new Error("Out-of-order effect");qo(this),Q=t,this.f&=-2,8&this.f&&Ea(this),Fr()}function Ke(t,e){this.x=t,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=e==null?void 0:e.name}function ue(t,e){const a=new Ke(t,e);try{a.c()}catch(n){throw a.d(),n}const o=a.d.bind(a);return o[Symbol.dispose]=o,o}function Je(t,e={}){const a={};for(const o in t){const n=e[o],i=cr(n===void 0?t[o]:n);a[o]=i}return a}It.prototype.brand=xs,It.prototype.h=function(){return!0},It.prototype.S=function(t){const e=this.t;e!==t&&t.e===void 0&&(t.x=e,this.t=t,e!==void 0?e.e=t:ro(()=>{var a;(a=this.W)==null||a.call(this)}))},It.prototype.U=function(t){if(this.t!==void 0){const e=t.e,a=t.x;e!==void 0&&(e.x=a,t.e=void 0),a!==void 0&&(a.e=e,t.x=void 0),t===this.t&&(this.t=a,a===void 0&&ro(()=>{var o;(o=this.Z)==null||o.call(this)}))}},It.prototype.subscribe=function(t){return ue(()=>{const e=this.value,a=Q;Q=void 0;try{t(e)}finally{Q=a}},{name:"sub"})},It.prototype.valueOf=function(){return this.value},It.prototype.toString=function(){return this.value+""},It.prototype.toJSON=function(){return this.value},It.prototype.peek=function(){const t=Q;Q=void 0;try{return this.value}finally{Q=t}},Object.defineProperty(It.prototype,"value",{get(){const t=ao(this);return t!==void 0&&(t.i=this.i),this.v},set(t){if(t!==this.v){if(Or>100)throw new Error("Cycle detected");(function(e){xe!==0&&Or===0&&e.l!==ua&&(e.l=ua,Mr={S:e,v:e.v,i:e.i,o:Mr})})(this),this.v=t,this.i++,Cr++,xe++;try{for(let e=this.t;e!==void 0;e=e.x)e.t.N()}finally{Fr()}}}}),Ie.prototype=new It,Ie.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Cr))return!0;if(this.g=Cr,this.f|=1,this.i>0&&!Uo(this))return this.f&=-2,!0;const t=Q;try{oo(this),Q=this;const e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(e){this.v=e,this.f|=16,this.i++}return Q=t,qo(this),this.f&=-2,!0},Ie.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(let e=this.s;e!==void 0;e=e.n)e.S.S(e)}It.prototype.S.call(this,t)},Ie.prototype.U=function(t){if(this.t!==void 0&&(It.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(let e=this.s;e!==void 0;e=e.n)e.S.U(e)}},Ie.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(let t=this.t;t!==void 0;t=t.x)t.t.N()}},Object.defineProperty(Ie.prototype,"value",{get(){if(1&this.f)throw new Error("Cycle detected");const t=ao(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}}),Ke.prototype.c=function(){const t=this.S();try{if(8&this.f||this.x===void 0)return;const e=this.x();typeof e=="function"&&(this.m=e)}finally{t()}},Ke.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,Ko(this),oo(this),xe++;const t=Q;return Q=this,_s.bind(this,t)},Ke.prototype.N=function(){2&this.f||(this.f|=2,this.u=ir,ir=this)},Ke.prototype.d=function(){this.f|=8,1&this.f||Ea(this)},Ke.prototype.dispose=function(){this.d()};v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({defaultSelection:"rootEnd",disabled:!1}),name:"@lexical/extension/AutoFocus",register(t,e,a){const o=a.getOutput();return ue(()=>o.disabled.value?void 0:t.registerRootListener(n=>{t.focus(()=>{const i=document.activeElement;n===null||i!==null&&n.contains(i)||n.focus({preventScroll:!0})},{defaultSelection:o.defaultSelection.peek()})}))}});function Ho(){const t=v.$getRoot(),e=v.$getSelection(),a=v.$createParagraphNode();t.clear(),t.append(a),e!==null&&a.select(),v.$isRangeSelection(e)&&(e.format=0)}function Yo(t,e=Ho){return t.registerCommand(v.CLEAR_EDITOR_COMMAND,a=>(t.update(e),!0),v.COMMAND_PRIORITY_EDITOR)}v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({$onClear:Ho}),name:"@lexical/extension/ClearEditor",register(t,e,a){const{$onClear:o}=a.getOutput();return ue(()=>Yo(t,o.value))}});function Ns(t){return(typeof t.nodes=="function"?t.nodes():t.nodes)||[]}const Zr=v.createState("format",{parse:t=>typeof t=="number"?t:0});class Wo extends v.DecoratorNode{$config(){return this.config("decorator-text",{extends:v.DecoratorNode,stateConfigs:[{flat:!0,stateConfig:Zr}]})}getFormat(){return v.$getState(this,Zr)}getFormatFlags(e,a){return v.toggleTextFormatType(this.getFormat(),e,a)}hasFormat(e){const a=v.TEXT_TYPE_TO_FORMAT[e];return(this.getFormat()&a)!==0}setFormat(e){return v.$setState(this,Zr,e)}toggleFormat(e){const a=this.getFormat(),o=v.toggleTextFormatType(a,e,null);return this.setFormat(o)}isInline(){return!0}createDOM(){return document.createElement("span")}updateDOM(){return!1}}function Cs(t){return t instanceof Wo}v.defineExtension({name:"@lexical/extension/DecoratorText",nodes:()=>[Wo],register:(t,e,a)=>t.registerCommand(v.FORMAT_TEXT_COMMAND,o=>{const n=v.$getSelection();if(v.$isNodeSelection(n)||v.$isRangeSelection(n))for(const i of n.getNodes())Cs(i)&&i.toggleFormat(o);return!1},v.COMMAND_PRIORITY_LOW)});function Xo(t,e){let a;return cr(t(),{unwatched(){a&&(a(),a=void 0)},watched(){this.value=t(),a=e(this)}})}const pa=v.defineExtension({build:t=>Xo(()=>t.getEditorState(),e=>t.registerUpdateListener(a=>{e.value=a.editorState})),name:"@lexical/extension/EditorState"});function it(t,...e){const a=new URL("https://lexical.dev/docs/error"),o=new URLSearchParams;o.append("code",t);for(const n of e)o.append("v",n);throw a.search=o.toString(),Error(`Minified Lexical error #${t}; visit ${a.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}function Zo(t,e){if(t&&e&&!Array.isArray(e)&&typeof t=="object"&&typeof e=="object"){const a=t,o=e;for(const n in o)a[n]=Zo(a[n],o[n]);return t}return e}const Ta=0,ga=1,Jo=2,Jr=3,xr=4,qe=5,Qr=6,or=7;function ta(t){return t.id===Ta}function Qo(t){return t.id===Jo}function Ss(t){return function(e){return e.id===ga}(t)||it(305,String(t.id),String(ga)),Object.assign(t,{id:Jo})}const Es=new Set;class Ts{constructor(e,a){Dt(this,"builder");Dt(this,"configs");Dt(this,"_dependency");Dt(this,"_peerNameSet");Dt(this,"extension");Dt(this,"state");Dt(this,"_signal");this.builder=e,this.extension=a,this.configs=new Set,this.state={id:Ta}}mergeConfigs(){let e=this.extension.config||{};const a=this.extension.mergeConfig?this.extension.mergeConfig.bind(this.extension):v.shallowMergeConfig;for(const o of this.configs)e=a(e,o);return e}init(e){const a=this.state;Qo(a)||it(306,String(a.id));const o={getDependency:this.getInitDependency.bind(this),getDirectDependentNames:this.getDirectDependentNames.bind(this),getPeer:this.getInitPeer.bind(this),getPeerNameSet:this.getPeerNameSet.bind(this)},n={...o,getDependency:this.getDependency.bind(this),getInitResult:this.getInitResult.bind(this),getPeer:this.getPeer.bind(this)},i=function(c,w,d){return Object.assign(c,{config:w,id:Jr,registerState:d})}(a,this.mergeConfigs(),o);let s;this.state=i,this.extension.init&&(s=this.extension.init(e,i.config,o)),this.state=function(c,w,d){return Object.assign(c,{id:xr,initResult:w,registerState:d})}(i,s,n)}build(e){const a=this.state;let o;a.id!==xr&&it(307,String(a.id),String(qe)),this.extension.build&&(o=this.extension.build(e,a.config,a.registerState));const n={...a.registerState,getOutput:()=>o,getSignal:this.getSignal.bind(this)};this.state=function(i,s,c){return Object.assign(i,{id:qe,output:s,registerState:c})}(a,o,n)}register(e,a){this._signal=a;const o=this.state;o.id!==qe&&it(308,String(o.id),String(qe));const n=this.extension.register&&this.extension.register(e,o.config,o.registerState);return this.state=function(i){return Object.assign(i,{id:Qr})}(o),()=>{const i=this.state;i.id!==or&&it(309,String(o.id),String(or)),this.state=function(s){return Object.assign(s,{id:qe})}(i),n&&n()}}afterRegistration(e){const a=this.state;let o;return a.id!==Qr&&it(310,String(a.id),String(Qr)),this.extension.afterRegistration&&(o=this.extension.afterRegistration(e,a.config,a.registerState)),this.state=function(n){return Object.assign(n,{id:or})}(a),o}getSignal(){return this._signal===void 0&&it(311),this._signal}getInitResult(){this.extension.init===void 0&&it(312,this.extension.name);const e=this.state;return function(a){return a.id>=xr}(e)||it(313,String(e.id),String(xr)),e.initResult}getInitPeer(e){const a=this.builder.extensionNameMap.get(e);return a?a.getExtensionInitDependency():void 0}getExtensionInitDependency(){const e=this.state;return function(a){return a.id>=Jr}(e)||it(314,String(e.id),String(Jr)),{config:e.config}}getPeer(e){const a=this.builder.extensionNameMap.get(e);return a?a.getExtensionDependency():void 0}getInitDependency(e){const a=this.builder.getExtensionRep(e);return a===void 0&&it(315,this.extension.name,e.name),a.getExtensionInitDependency()}getDependency(e){const a=this.builder.getExtensionRep(e);return a===void 0&&it(315,this.extension.name,e.name),a.getExtensionDependency()}getState(){const e=this.state;return function(a){return a.id>=or}(e)||it(316,String(e.id),String(or)),e}getDirectDependentNames(){return this.builder.incomingEdges.get(this.extension.name)||Es}getPeerNameSet(){let e=this._peerNameSet;return e||(e=new Set((this.extension.peerDependencies||[]).map(([a])=>a)),this._peerNameSet=e),e}getExtensionDependency(){if(!this._dependency){const e=this.state;(function(a){return a.id>=qe})(e)||it(317,this.extension.name),this._dependency={config:e.config,init:e.initResult,output:e.output}}return this._dependency}}const no={tag:v.HISTORY_MERGE_TAG};function Rs(){const t=v.$getRoot();t.isEmpty()&&t.append(v.$createParagraphNode())}const zs=v.defineExtension({config:v.safeCast({setOptions:no,updateOptions:no}),init:({$initialEditorState:t=Rs})=>({$initialEditorState:t,initialized:!1}),afterRegistration(t,{updateOptions:e,setOptions:a},o){const n=o.getInitResult();if(!n.initialized){n.initialized=!0;const{$initialEditorState:i}=n;if(v.$isEditorState(i))t.setEditorState(i,a);else if(typeof i=="function")t.update(()=>{i(t)},e);else if(i&&(typeof i=="string"||typeof i=="object")){const s=t.parseEditorState(i);t.setEditorState(s,a)}}return()=>{}},name:"@lexical/extension/InitialState",nodes:[v.RootNode,v.TextNode,v.LineBreakNode,v.TabNode,v.ParagraphNode]}),io=Symbol.for("@lexical/extension/LexicalBuilder");function so(){}function Ds(t){throw t}function yr(t){return Array.isArray(t)?t:[t]}const ea="0.43.0+prod.esm";class He{constructor(e){Dt(this,"roots");Dt(this,"extensionNameMap");Dt(this,"outgoingConfigEdges");Dt(this,"incomingEdges");Dt(this,"conflicts");Dt(this,"_sortedExtensionReps");Dt(this,"PACKAGE_VERSION");this.outgoingConfigEdges=new Map,this.incomingEdges=new Map,this.extensionNameMap=new Map,this.conflicts=new Map,this.PACKAGE_VERSION=ea,this.roots=e;for(const a of e)this.addExtension(a)}static fromExtensions(e){const a=[yr(zs)];for(const o of e)a.push(yr(o));return new He(a)}static maybeFromEditor(e){const a=e[io];return a&&(a.PACKAGE_VERSION!==ea&&it(292,a.PACKAGE_VERSION,ea),a instanceof He||it(293)),a}static fromEditor(e){const a=He.maybeFromEditor(e);return a===void 0&&it(294),a}constructEditor(){const{$initialEditorState:e,onError:a,...o}=this.buildCreateEditorArgs(),n=Object.assign(v.createEditor({...o,...a?{onError:i=>{a(i,n)}}:{}}),{[io]:this});for(const i of this.sortedExtensionReps())i.build(n);return n}buildEditor(){let e=so;function a(){try{e()}finally{e=so}}const o=Object.assign(this.constructEditor(),{dispose:a,[Symbol.dispose]:a});return e=v.mergeRegister(this.registerEditor(o),()=>o.setRootElement(null)),o}hasExtensionByName(e){return this.extensionNameMap.has(e)}getExtensionRep(e){const a=this.extensionNameMap.get(e.name);if(a)return a.extension!==e&&it(295,e.name),a}addEdge(e,a,o){const n=this.outgoingConfigEdges.get(e);n?n.set(a,o):this.outgoingConfigEdges.set(e,new Map([[a,o]]));const i=this.incomingEdges.get(a);i?i.add(e):this.incomingEdges.set(a,new Set([e]))}addExtension(e){this._sortedExtensionReps!==void 0&&it(296);const a=yr(e),[o]=a;typeof o.name!="string"&&it(297,typeof o.name);let n=this.extensionNameMap.get(o.name);if(n!==void 0&&n.extension!==o&&it(298,o.name),!n){n=new Ts(this,o),this.extensionNameMap.set(o.name,n);const i=this.conflicts.get(o.name);typeof i=="string"&&it(299,o.name,i);for(const s of o.conflictsWith||[])this.extensionNameMap.has(s)&&it(299,o.name,s),this.conflicts.set(s,o.name);for(const s of o.dependencies||[]){const c=yr(s);this.addEdge(o.name,c[0].name,c.slice(1)),this.addExtension(c)}for(const[s,c]of o.peerDependencies||[])this.addEdge(o.name,s,c?[c]:[])}}sortedExtensionReps(){if(this._sortedExtensionReps)return this._sortedExtensionReps;const e=[],a=(o,n)=>{let i=o.state;if(Qo(i))return;const s=o.extension.name;var c;ta(i)||it(300,s,n||"[unknown]"),ta(c=i)||it(304,String(c.id),String(Ta)),i=Object.assign(c,{id:ga}),o.state=i;const w=this.outgoingConfigEdges.get(s);if(w)for(const d of w.keys()){const u=this.extensionNameMap.get(d);u&&a(u,s)}i=Ss(i),o.state=i,e.push(o)};for(const o of this.extensionNameMap.values())ta(o.state)&&a(o);for(const o of e)for(const[n,i]of this.outgoingConfigEdges.get(o.extension.name)||[])if(i.length>0){const s=this.extensionNameMap.get(n);if(s)for(const c of i)s.configs.add(c)}for(const[o,...n]of this.roots)if(n.length>0){const i=this.extensionNameMap.get(o.name);i===void 0&&it(301,o.name);for(const s of n)i.configs.add(s)}return this._sortedExtensionReps=e,this._sortedExtensionReps}registerEditor(e){const a=this.sortedExtensionReps(),o=new AbortController,n=[()=>o.abort()],i=o.signal;for(const s of a){const c=s.register(e,i);c&&n.push(c)}for(const s of a){const c=s.afterRegistration(e);c&&n.push(c)}return v.mergeRegister(...n)}buildCreateEditorArgs(){const e={},a=new Set,o=new Map,n=new Map,i={},s={},c=this.sortedExtensionReps();for(const u of c){const{extension:g}=u;if(g.onError!==void 0&&(e.onError=g.onError),g.disableEvents!==void 0&&(e.disableEvents=g.disableEvents),g.parentEditor!==void 0&&(e.parentEditor=g.parentEditor),g.editable!==void 0&&(e.editable=g.editable),g.namespace!==void 0&&(e.namespace=g.namespace),g.$initialEditorState!==void 0&&(e.$initialEditorState=g.$initialEditorState),g.nodes)for(const m of Ns(g)){if(typeof m!="function"){const p=o.get(m.replace);p&&it(302,g.name,m.replace.name,p.extension.name),o.set(m.replace,u)}a.add(m)}if(g.html){if(g.html.export)for(const[m,p]of g.html.export.entries())n.set(m,p);g.html.import&&Object.assign(i,g.html.import)}g.theme&&Zo(s,g.theme)}Object.keys(s).length>0&&(e.theme=s),a.size&&(e.nodes=[...a]);const w=Object.keys(i).length>0,d=n.size>0;(w||d)&&(e.html={},w&&(e.html.import=i),d&&(e.html.export=n));for(const u of c)u.init(e);return e.onError||(e.onError=Ds),e}}const Is=new Set,co=v.defineExtension({build(t,e,a){const o=a.getDependency(pa).output,n=cr({watchedNodeKeys:new Map}),i=Xo(()=>{},()=>ue(()=>{const s=i.peek(),{watchedNodeKeys:c}=n.value;let w,d=!1;o.value.read(()=>{if(v.$getSelection())for(const[u,g]of c.entries()){if(g.size===0){c.delete(u);continue}const m=v.$getNodeByKey(u),p=m&&m.isSelected()||!1;d=d||p!==(!!s&&s.has(u)),p&&(w=w||new Set,w.add(u))}}),!d&&w&&s&&w.size===s.size||(i.value=w)}));return{watchNodeKey:function(s){const c=js(()=>(i.value||Is).has(s)),{watchedNodeKeys:w}=n.peek();let d=w.get(s);const u=d!==void 0;return d=d||new Set,d.add(c),u||(w.set(s,d),n.value={watchedNodeKeys:w}),c}}},dependencies:[pa],name:"@lexical/extension/NodeSelection"}),Ms=v.createCommand("INSERT_HORIZONTAL_RULE_COMMAND");class Ye extends v.DecoratorNode{static getType(){return"horizontalrule"}static clone(e){return new Ye(e.__key)}static importJSON(e){return Ra().updateFromJSON(e)}static importDOM(){return{hr:()=>({conversion:Os,priority:0})}}exportDOM(){return{element:document.createElement("hr")}}createDOM(e){const a=document.createElement("hr");return v.addClassNamesToElement(a,e.theme.hr),a}getTextContent(){return` +`}isInline(){return!1}updateDOM(){return!1}}function Os(){return{node:Ra()}}function Ra(){return v.$create(Ye)}function $s(t){return t instanceof Ye}v.defineExtension({dependencies:[pa,co],name:"@lexical/extension/HorizontalRule",nodes:()=>[Ye],register(t,e,a){const{watchNodeKey:o}=a.getDependency(co).output,n=cr({nodeSelections:new Map}),i=t._config.theme.hrSelected??"selected";return v.mergeRegister(t.registerCommand(Ms,s=>{const c=v.$getSelection();if(!v.$isRangeSelection(c))return!1;if(c.focus.getNode()!==null){const w=Ra();ms(w)}return!0},v.COMMAND_PRIORITY_EDITOR),t.registerCommand(v.CLICK_COMMAND,s=>{if(v.isDOMNode(s.target)){const c=v.$getNodeFromDOMNode(s.target);if($s(c))return function(w,d=!1){const u=v.$getSelection(),g=w.isSelected(),m=w.getKey();let p;d&&v.$isNodeSelection(u)?p=u:(p=v.$createNodeSelection(),v.$setSelection(p)),g?p.delete(m):p.add(m)}(c,s.shiftKey),!0}return!1},v.COMMAND_PRIORITY_LOW),t.registerMutationListener(Ye,(s,c)=>{ys(()=>{let w=!1;const{nodeSelections:d}=n.peek();for(const[u,g]of s.entries())if(g==="destroyed")d.delete(u),w=!0;else{const m=d.get(u),p=t.getElementByKey(u);m?m.domNode.value=p:(w=!0,d.set(u,{domNode:cr(p),selectedSignal:o(u)}))}w&&(n.value={nodeSelections:d})})}),ue(()=>{const s=[];for(const{domNode:c,selectedSignal:w}of n.value.nodeSelections.values())s.push(ue(()=>{const d=c.value;d&&(w.value?v.addClassNamesToElement(d,i):v.removeClassNamesFromElement(d,i))}));return v.mergeRegister(...s)}))}});v.defineExtension({build:(t,e)=>Je({inheritEditableFromParent:e.inheritEditableFromParent}),config:v.safeCast({$getParentEditor:function(){const t=v.$getEditor();return He.fromEditor(t),t},inheritEditableFromParent:!1}),init:(t,e,a)=>{const o=e.$getParentEditor();t.parentEditor=o,t.theme=t.theme||o._config.theme},name:"@lexical/extension/NestedEditor",register:(t,e,a)=>ue(()=>{const o=t._parentEditor;if(o&&a.getOutput().inheritEditableFromParent.value)return t.setEditable(o.isEditable()),o.registerEditableListener(t.setEditable.bind(t))})});v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({disabled:!1,onReposition:void 0}),name:"@lexical/utils/SelectionAlwaysOnDisplay",register:(t,e,a)=>{const o=a.getOutput();return ue(()=>{if(!o.disabled.value)return hs(t,o.onReposition.value)})}});function tn(t){return t.canBeEmpty()}function As(t,e,a=tn){return v.mergeRegister(t.registerCommand(v.KEY_TAB_COMMAND,o=>{const n=v.$getSelection();if(!v.$isRangeSelection(n))return!1;o.preventDefault();const i=function(s){if(s.getNodes().filter(m=>v.$isBlockElementNode(m)&&m.canIndent()).length>0)return!0;const c=s.anchor,w=s.focus,d=w.isBefore(c)?w:c,u=d.getNode(),g=fs(u);if(g.canIndent()){const m=g.getKey();let p=v.$createRangeSelection();if(p.anchor.set(m,0,"element"),p.focus.set(m,0,"element"),p=v.$normalizeSelection__EXPERIMENTAL(p),p.anchor.is(d))return!0}return!1}(n)?o.shiftKey?v.OUTDENT_CONTENT_COMMAND:v.INDENT_CONTENT_COMMAND:v.INSERT_TAB_COMMAND;return t.dispatchCommand(i,void 0)},v.COMMAND_PRIORITY_EDITOR),t.registerCommand(v.INDENT_CONTENT_COMMAND,()=>{const o=typeof e=="number"?e:e?e.peek():null,n=v.$getSelection();if(!v.$isRangeSelection(n))return!1;const i=typeof a=="function"?a:a.peek();return bs(s=>{if(i(s)){const c=s.getIndent()+1;(!o||cJe(e),config:v.safeCast({$canIndent:tn,disabled:!1,maxIndent:null}),name:"@lexical/extension/TabIndentation",register(t,e,a){const{disabled:o,maxIndent:n,$canIndent:i}=a.getOutput();return ue(()=>{if(!o.value)return As(t,n,i)})}});const Ps=v.defineExtension({name:"@lexical/react/ReactProvider"});function Ls(){return v.$getRoot().getTextContent()}function Bs(t,e=!0){if(t)return!1;let a=Ls();return e&&(a=a.trim()),a===""}function Vs(t){if(!Bs(t,!1))return!1;const e=v.$getRoot().getChildren(),a=e.length;if(a>1)return!1;for(let o=0;oVs(t)}function rn(t){const e=window.location.origin,a=o=>{if(o.origin!==e)return;const n=t.getRootElement();if(document.activeElement!==n)return;const i=o.data;if(typeof i=="string"){let s;try{s=JSON.parse(i)}catch{return}if(s&&s.protocol==="nuanria_messaging"&&s.type==="request"){const c=s.payload;if(c&&c.functionId==="makeChanges"){const w=c.args;if(w){const[d,u,g,m,p]=w;t.update(()=>{const f=v.$getSelection();if(v.$isRangeSelection(f)){const y=f.anchor;let b=y.getNode(),D=0,S=0;if(v.$isTextNode(b)&&d>=0&&u>=0&&(D=d,S=d+u,f.setTextNodeRange(b,D,b,S)),D===S&&g===""||(f.insertRawText(g),b=y.getNode()),v.$isTextNode(b)){D=m,S=m+p;const R=b.getTextContentSize();D=D>R?R:D,S=S>R?R:S,f.setTextNodeRange(b,D,b,S)}o.stopImmediatePropagation()}})}}}}};return window.addEventListener("message",a,!0),()=>{window.removeEventListener("message",a,!0)}}v.defineExtension({build:(t,e,a)=>Je(e),config:v.safeCast({disabled:typeof window>"u"}),name:"@lexical/dragon",register:(t,e,a)=>ue(()=>a.getOutput().disabled.value?void 0:rn(t))});function Fs(t,...e){const a=new URL("https://lexical.dev/docs/error"),o=new URLSearchParams;o.append("code",t);for(const n of e)o.append("v",n);throw a.search=o.toString(),Error(`Minified Lexical error #${t}; visit ${a.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const za=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function Gs({editor:t,ErrorBoundary:e}){return function(a,o){const[n,i]=l.useState(()=>a.getDecorators());return za(()=>a.registerDecoratorListener(s=>{Xa.flushSync(()=>{i(s)})}),[a]),l.useEffect(()=>{i(a.getDecorators())},[a]),l.useMemo(()=>{const s=[],c=Object.keys(n);for(let w=0;wa._onError(m),children:r.jsx(l.Suspense,{fallback:null,children:n[d]})}),g=a.getElementByKey(d);g!==null&&s.push(Xa.createPortal(u,g,d))}return s},[o,n,a])}(t,e)}function Us({editor:t,ErrorBoundary:e}){return function(a){const o=He.maybeFromEditor(a);if(o&&o.hasExtensionByName(Ps.name)){for(const n of["@lexical/plain-text","@lexical/rich-text"])o.hasExtensionByName(n)&&Fs(320,n);return!0}return!1}(t)?null:r.jsx(Gs,{editor:t,ErrorBoundary:e})}function lo(t){return t.getEditorState().read(en(t.isComposing()))}function qs({contentEditable:t,placeholder:e=null,ErrorBoundary:a}){const[o]=ve();return function(n){za(()=>v.mergeRegister(ca.registerRichText(n),rn(n)),[n])}(o),r.jsxs(r.Fragment,{children:[t,r.jsx(Ks,{content:e}),r.jsx(Us,{editor:o,ErrorBoundary:a})]})}function Ks({content:t}){const[e]=ve(),a=function(n){const[i,s]=l.useState(()=>lo(n));return za(()=>{function c(){const w=lo(n);s(w)}return c(),v.mergeRegister(n.registerUpdateListener(()=>{c()}),n.registerEditableListener(()=>{c()}))},[n]),i}(e),o=ss();return a?typeof t=="function"?t(o):t:null}function Hs({defaultSelection:t}){const[e]=ve();return l.useEffect(()=>{e.focus(()=>{const a=document.activeElement,o=e.getRootElement();o===null||a!==null&&o.contains(a)||o.focus({preventScroll:!0})},{defaultSelection:t})},[t,e]),null}const Ys=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function Ws({onClear:t}){const[e]=ve();return Ys(()=>Yo(e,t),[e,t]),null}const an=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?l.useLayoutEffect:l.useEffect;function Xs({editor:t,ariaActiveDescendant:e,ariaAutoComplete:a,ariaControls:o,ariaDescribedBy:n,ariaErrorMessage:i,ariaExpanded:s,ariaInvalid:c,ariaLabel:w,ariaLabelledBy:d,ariaMultiline:u,ariaOwns:g,ariaRequired:m,autoCapitalize:p,className:f,id:y,role:b="textbox",spellCheck:D=!0,style:S,tabIndex:R,"data-testid":j,...C},E){const[$,_]=l.useState(t.isEditable()),x=l.useCallback(P=>{P&&P.ownerDocument&&P.ownerDocument.defaultView?t.setRootElement(P):t.setRootElement(null)},[t]),T=l.useMemo(()=>function(...P){return G=>{for(const q of P)typeof q=="function"?q(G):q!=null&&(q.current=G)}}(E,x),[x,E]);return an(()=>(_(t.isEditable()),t.registerEditableListener(P=>{_(P)})),[t]),r.jsx("div",{"aria-activedescendant":$?e:void 0,"aria-autocomplete":$?a:"none","aria-controls":$?o:void 0,"aria-describedby":n,...i!=null?{"aria-errormessage":i}:{},"aria-expanded":$&&b==="combobox"?!!s:void 0,...c!=null?{"aria-invalid":c}:{},"aria-label":w,"aria-labelledby":d,"aria-multiline":u,"aria-owns":$?g:void 0,"aria-readonly":!$||void 0,"aria-required":m,autoCapitalize:p,className:f,contentEditable:$,"data-testid":j,id:y,ref:T,role:b,spellCheck:D,style:S,tabIndex:R,...C})}const Zs=l.forwardRef(Xs);function wo(t){return t.getEditorState().read(en(t.isComposing()))}const Js=l.forwardRef(Qs);function Qs(t,e){const{placeholder:a,...o}=t,[n]=ve();return r.jsxs(r.Fragment,{children:[r.jsx(Zs,{editor:n,...o,ref:e}),a!=null&&r.jsx(tc,{editor:n,content:a})]})}function tc({content:t,editor:e}){const a=function(s){const[c,w]=l.useState(()=>wo(s));return an(()=>{function d(){const u=wo(s);w(u)}return d(),v.mergeRegister(s.registerUpdateListener(()=>{d()}),s.registerEditableListener(()=>{d()}))},[s]),c}(e),[o,n]=l.useState(e.isEditable());if(l.useLayoutEffect(()=>(n(e.isEditable()),e.registerEditableListener(s=>{n(s)})),[e]),!a)return null;let i=null;return typeof t=="function"?i=t(o):t!==null&&(i=t),i===null?null:r.jsx("div",{"aria-hidden":!0,children:i})}function ec({placeholder:t,className:e,placeholderClassName:a}){return r.jsx(Js,{className:e??"ContentEditable__root tw:relative tw:block tw:min-h-11 tw:overflow-auto tw:px-3 tw:py-3 tw:text-sm tw:outline-hidden","aria-placeholder":t,placeholder:r.jsx("div",{className:a??"tw:pointer-events-none tw:absolute tw:top-0 tw:select-none tw:overflow-hidden tw:text-ellipsis tw:px-3 tw:py-3 tw:text-sm tw:text-muted-foreground",children:t})})}const on=l.createContext(void 0);function rc({activeEditor:t,$updateToolbar:e,blockType:a,setBlockType:o,showModal:n,children:i}){const s=l.useMemo(()=>({activeEditor:t,$updateToolbar:e,blockType:a,setBlockType:o,showModal:n}),[t,e,a,o,n]);return r.jsx(on.Provider,{value:s,children:i})}function nn(){const t=l.useContext(on);if(!t)throw new Error("useToolbarContext must be used within a ToolbarContext provider");return t}function ac(){const[t,e]=l.useState(void 0),a=l.useCallback(()=>{e(void 0)},[]),o=l.useMemo(()=>{if(t===void 0)return;const{title:i,content:s}=t;return r.jsx(Er,{open:!0,onOpenChange:a,children:r.jsxs(Tr,{children:[r.jsx(Rr,{children:r.jsx(zr,{children:i})}),s]})})},[t,a]),n=l.useCallback((i,s,c=!1)=>{e({closeOnClickOutside:c,content:s(a),title:i})},[a]);return[o,n]}function oc({children:t}){const[e]=ve(),[a,o]=l.useState(e),[n,i]=l.useState("paragraph"),[s,c]=ac(),w=()=>{};return l.useEffect(()=>a.registerCommand(v.SELECTION_CHANGE_COMMAND,(d,u)=>(o(u),!1),v.COMMAND_PRIORITY_CRITICAL),[a]),r.jsxs(rc,{activeEditor:a,$updateToolbar:w,blockType:n,setBlockType:i,showModal:c,children:[s,t({blockType:n})]})}function nc(t){const[e]=ve(),{activeEditor:a}=nn();l.useEffect(()=>a.registerCommand(v.SELECTION_CHANGE_COMMAND,()=>{const o=v.$getSelection();return o&&t(o),!1},v.COMMAND_PRIORITY_CRITICAL),[e,t]),l.useEffect(()=>{a.getEditorState().read(()=>{const o=v.$getSelection();o&&t(o)})},[a,t])}const ic=ge.cva("pr-twp tw:group/toggle tw:inline-flex tw:items-center tw:justify-center tw:gap-1 tw:rounded-lg tw:text-sm tw:font-medium tw:whitespace-nowrap tw:transition-all tw:outline-none tw:hover:bg-muted tw:hover:text-foreground tw:focus-visible:border-ring tw:focus-visible:ring-[3px] tw:focus-visible:ring-ring/50 tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-destructive/20 tw:aria-pressed:bg-muted tw:data-[state=on]:bg-muted tw:dark:aria-invalid:ring-destructive/40 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",{variants:{variant:{default:"tw:bg-transparent",outline:"tw:border tw:border-input tw:bg-transparent tw:hover:bg-muted"},size:{default:"tw:h-8 tw:min-w-8 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2",sm:"tw:h-7 tw:min-w-7 tw:rounded-[min(var(--tw-radius-md),12px)] tw:px-2.5 tw:text-[0.8rem] tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3.5",lg:"tw:h-9 tw:min-w-9 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2"}},defaultVariants:{variant:"default",size:"default"}}),sn=l.createContext({size:"default",variant:"default",spacing:0,orientation:"horizontal"});function Da({className:t,variant:e,size:a,spacing:o=0,orientation:n="horizontal",children:i,...s}){const c=ft();return r.jsx(k.ToggleGroup.Root,{"data-slot":"toggle-group","data-variant":e,"data-size":a,"data-spacing":o,"data-orientation":n,style:{"--gap":o},className:h("pr-twp tw:group/toggle-group tw:flex tw:w-fit tw:flex-row tw:items-center tw:gap-[--spacing(var(--gap))] tw:rounded-lg tw:data-[size=sm]:rounded-[min(var(--tw-radius-md),10px)] tw:data-vertical:flex-col tw:data-vertical:items-stretch",t),dir:c,...s,children:r.jsx(sn.Provider,{value:l.useMemo(()=>({variant:e,size:a,spacing:o,orientation:n}),[e,a,o,n]),children:i})})}function sr({className:t,children:e,variant:a="default",size:o="default",...n}){const i=l.useContext(sn);return r.jsx(k.ToggleGroup.Item,{"data-slot":"toggle-group-item","data-variant":i.variant||a,"data-size":i.size||o,"data-spacing":i.spacing,className:h("tw:shrink-0 tw:group-data-[spacing=0]/toggle-group:rounded-none tw:group-data-[spacing=0]/toggle-group:px-2 tw:focus:z-10 tw:focus-visible:z-10 tw:group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pe-1.5 tw:group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:ps-1.5 tw:group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-s-lg tw:group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg tw:group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-e-lg tw:group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg tw:group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-s-0 tw:group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 tw:group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-s tw:group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",ic({variant:i.variant||a,size:i.size||o}),t),...n,children:e})}const uo=[{format:"bold",icon:O.BoldIcon,label:"Bold"},{format:"italic",icon:O.ItalicIcon,label:"Italic"}];function sc(){const{activeEditor:t}=nn(),[e,a]=l.useState([]),o=l.useCallback(n=>{if(v.$isRangeSelection(n)||vi.$isTableSelection(n)){const i=[];uo.forEach(({format:s})=>{n.hasFormat(s)&&i.push(s)}),a(s=>s.length!==i.length||!i.every(c=>s.includes(c))?i:s)}},[]);return nc(o),r.jsx(Da,{type:"multiple",value:e,onValueChange:a,variant:"outline",size:"sm",children:uo.map(({format:n,icon:i,label:s})=>r.jsx(sr,{value:n,"aria-label":s,onClick:()=>{t.dispatchCommand(v.FORMAT_TEXT_COMMAND,n)},children:r.jsx(i,{className:"tw:h-4 tw:w-4"})},n))})}function cc({onClear:t}){const[e]=ve();l.useEffect(()=>{t&&t(()=>{e.dispatchCommand(v.CLEAR_EDITOR_COMMAND,void 0)})},[e,t])}function lc({placeholder:t="Start typing ...",autoFocus:e=!1,onClear:a}){const[,o]=l.useState(void 0),n=i=>{i!==void 0&&o(i)};return r.jsxs("div",{className:"tw:relative",children:[r.jsx(oc,{children:()=>r.jsx("div",{className:"tw:sticky tw:top-0 tw:z-10 tw:flex tw:gap-2 tw:overflow-auto tw:border-b tw:p-1",children:r.jsx(sc,{})})}),r.jsxs("div",{className:"tw:relative",children:[r.jsx(qs,{contentEditable:r.jsx("div",{ref:n,children:r.jsx(ec,{placeholder:t})}),ErrorBoundary:os}),e&&r.jsx(Hs,{defaultSelection:"rootEnd"}),r.jsx(cc,{onClear:a}),r.jsx(Ws,{})]})]})}const dc={namespace:"commentEditor",theme:Ca,nodes:Sa,onError:t=>{console.error(t)}};function $r({editorState:t,editorSerializedState:e,onChange:a,onSerializedChange:o,placeholder:n="Start typing…",autoFocus:i=!1,onClear:s,className:c}){return r.jsx("div",{className:h("pr-twp tw:overflow-hidden tw:rounded-lg tw:border tw:bg-background tw:shadow",c),children:r.jsx(Ji,{initialConfig:{...dc,...t?{editorState:t}:{},...e?{editorState:JSON.stringify(e)}:{}},children:r.jsxs(Ot,{children:[r.jsx(lc,{placeholder:n,autoFocus:i,onClear:s}),r.jsx(ts,{ignoreSelectionChange:!0,onChange:w=>{a==null||a(w),o==null||o(w.toJSON())}})]})})})}function wc(t,e){const a=v.isDOMDocumentNode(e)?e.body.childNodes:e.childNodes;let o=[];const n=[];for(const i of a)if(!ln.has(i.nodeName)){const s=dn(i,t,n,!1);s!==null&&(o=o.concat(s))}return function(i){for(const s of i)s.getNextSibling()instanceof v.ArtificialNode__DO_NOT_USE&&s.insertAfter(v.$createLineBreakNode());for(const s of i){const c=s.getChildren();for(const w of c)s.insertBefore(w);s.remove()}}(n),o}function uc(t,e){if(typeof document>"u"||typeof window>"u"&&global.window===void 0)throw new Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");const a=document.createElement("div"),o=v.$getRoot().getChildren();for(let n=0;n{const f=new v.ArtificialNode__DO_NOT_USE;return a.push(f),f}:v.$createParagraphNode)),c==null?m.length>0?s=s.concat(m):v.isBlockDomNode(t)&&function(f){return f.nextSibling==null||f.previousSibling==null?!1:v.isInlineDomNode(f.nextSibling)&&v.isInlineDomNode(f.previousSibling)}(t)&&(s=s.concat(v.$createLineBreakNode())):v.$isElementNode(c)&&c.append(...m),s}function pc(t,e,a){const o=t.style.textAlign,n=[];let i=[];for(let s=0;se&&"text"in e&&e.text.trim().length>0?!0:!e||!("children"in e)?!1:un(e.children)):!1}function Zt(t){var e;return(e=t==null?void 0:t.root)!=null&&e.children?un(t.root.children):!1}function gc(t){if(!t||t.trim()==="")throw new Error("Input HTML is empty");const e=No.createHeadlessEditor({namespace:"EditorUtils",theme:Ca,nodes:Sa,onError:o=>{console.error(o)}});let a;if(e.update(()=>{const n=new DOMParser().parseFromString(t,"text/html"),i=wc(e,n);v.$getRoot().clear(),v.$insertNodes(i)},{discrete:!0}),e.getEditorState().read(()=>{a=e.getEditorState().toJSON()}),!a)throw new Error("Failed to convert HTML to editor state");return a}function Ar(t){const e=No.createHeadlessEditor({namespace:"EditorUtils",theme:Ca,nodes:Sa,onError:n=>{console.error(n)}}),a=e.parseEditorState(JSON.stringify(t));e.setEditorState(a);let o="";return e.getEditorState().read(()=>{o=uc(e)}),o=o.replace(/\s+style="[^"]*"/g,"").replace(/\s+class="[^"]*"/g,"").replace(/(.*?)<\/span>/g,"$1").replace(/]*>(.*?)<\/strong><\/b>/g,"$1").replace(/]*>(.*?)<\/b><\/strong>/g,"$1").replace(/]*>(.*?)<\/em><\/i>/g,"$1").replace(/]*>(.*?)<\/i><\/em>/g,"$1").replace(/]*>(.*?)<\/span><\/u>/g,"$1").replace(/]*>(.*?)<\/span><\/s>/g,"$1").replace(//gi,"
"),o}function Ia(t){return["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"].includes(t.key)?(t.stopPropagation(),!0):!1}function $e({className:t,orientation:e="horizontal",decorative:a=!0,...o}){return r.jsx(k.Separator.Root,{"data-slot":"separator",decorative:a,orientation:e,className:h("pr-twp tw:shrink-0 tw:bg-border tw:data-horizontal:h-px tw:data-horizontal:w-full tw:data-vertical:w-px tw:data-vertical:self-stretch",t),...o})}const pn=ge.cva("tw:group/button-group tw:flex tw:w-fit tw:items-stretch tw:*:focus-visible:relative tw:*:focus-visible:z-10 tw:has-[>[data-slot=button-group]]:gap-2 tw:has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-e-lg tw:[&>[data-slot=select-trigger]:not([class*=w-])]:w-fit tw:[&>input]:flex-1",{variants:{orientation:{horizontal:"tw:[&>*:not(:first-child)]:rounded-s-none tw:[&>*:not(:first-child)]:border-s-0 tw:[&>*:not(:last-child)]:rounded-e-none tw:[&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-lg!",vertical:"tw:flex-col tw:[&>*:not(:first-child)]:rounded-t-none tw:[&>*:not(:first-child)]:border-t-0 tw:[&>*:not(:last-child)]:rounded-b-none tw:[&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"}},defaultVariants:{orientation:"horizontal"}});function Gr({className:t,orientation:e,...a}){return r.jsx("div",{role:"group","data-slot":"button-group","data-orientation":e,className:h("pr-twp",pn({orientation:e}),t),...a})}function hc({className:t,asChild:e=!1,...a}){const o=e?k.Slot.Root:"div";return r.jsx(o,{className:h("pr-twp tw:flex tw:items-center tw:gap-2 tw:rounded-lg tw:border tw:bg-muted tw:px-2.5 tw:text-sm tw:font-medium tw:[&_svg]:pointer-events-none tw:[&_svg:not([class*=size-])]:size-4",t),...a})}function Ma({className:t,orientation:e="vertical",...a}){return r.jsx($e,{"data-slot":"button-group-separator",orientation:e,className:h("pr-twp tw:relative tw:self-stretch tw:bg-input tw:data-horizontal:mx-px tw:data-horizontal:w-auto tw:data-vertical:my-px tw:data-vertical:h-auto",t),...a})}const Oa=Object.freeze(["%cancelButton_tooltip%","%acceptButton_tooltip%"]),po=(t,e)=>t[e]??e;function $a({onCancelClick:t,onAcceptClick:e,canAccept:a=!0,localizedStrings:o={},className:n="tw:h-6 tw:w-6",acceptLabel:i}){const s=po(o,"%cancelButton_tooltip%"),c=i??po(o,"%acceptButton_tooltip%");return r.jsxs(Gr,{children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":s,className:n,size:"icon",onClick:t,variant:"secondary",children:r.jsx(O.X,{})})}),r.jsx(Pt,{children:r.jsx("p",{children:s})})]})}),r.jsx(Ma,{}),r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":c,className:n,size:"icon",onClick:e,disabled:!a,children:r.jsx(O.Check,{})})}),r.jsx(Pt,{children:r.jsx("p",{children:c})})]})})]})}function Sr(t,e){return t===""?e["%comment_assign_unassigned%"]??"Unassigned":t==="Team"?e["%comment_assign_team%"]??"Team":t}function Aa(t){const e=/Macintosh/i.test(navigator.userAgent);return t.key==="Enter"&&(e&&t.metaKey||!e&&t.ctrlKey)}const fc={root:{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"",type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:""}],direction:"ltr",format:"",indent:0,type:"root",version:1}};function ra(t,e){return t===""?e["%commentEditor_unassigned%"]??"Unassigned":t==="Team"?e["%commentEditor_team%"]??"Team":t}function mc({assignableUsers:t,onSave:e,onClose:a,localizedStrings:o,initialAssignedUser:n}){const[i,s]=l.useState(fc),[c,w]=l.useState(n),[d,u]=l.useState(!1),g=l.useRef(void 0),m=l.useRef(null);l.useEffect(()=>{let b=!0;const D=m.current;if(!D)return;const S=setTimeout(()=>{b&&wn(D)},300);return()=>{b=!1,clearTimeout(S)}},[]);const p=l.useCallback(()=>{if(!Zt(i))return;const b=Ar(i);e(b,c)},[i,e,c]),f=o["%commentEditor_placeholder%"]??"Type your comment here...",y=o["%commentEditor_assignTo_label%"]??"Assign to";return r.jsxs("div",{className:"pr-twp tw:grid tw:gap-3",children:[r.jsxs("div",{className:"tw:flex tw:items-center tw:justify-between",children:[r.jsx("span",{className:"tw:text-sm tw:font-medium",children:y}),r.jsx($a,{onCancelClick:a,onAcceptClick:p,canAccept:Zt(i),localizedStrings:o,acceptLabel:o["%commentEditor_saveButton_tooltip%"]})]}),r.jsx("div",{className:"tw:flex tw:items-center tw:gap-2",children:r.jsxs(se,{open:d,onOpenChange:u,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:"outline",className:"tw:flex tw:w-full tw:items-center tw:justify-start tw:gap-2",disabled:t.length===0,children:[r.jsx(O.AtSign,{className:"tw:h-4 tw:w-4"}),r.jsx("span",{children:ra(c!==void 0?c:"",o)})]})}),r.jsx(ce,{className:"tw:w-auto tw:p-0",align:"start",onKeyDown:b=>{b.key==="Escape"&&(b.stopPropagation(),u(!1))},children:r.jsx(he,{children:r.jsx(fe,{children:t.map(b=>r.jsx(ie,{onSelect:()=>{w(b||void 0),u(!1)},className:"tw:flex tw:items-center",children:r.jsx("span",{children:ra(b,o)})},b||"unassigned"))})})})]})}),r.jsx("div",{ref:m,role:"textbox",tabIndex:-1,className:"tw:outline-hidden",onKeyDownCapture:b=>{b.key==="Escape"?(b.preventDefault(),b.stopPropagation(),a()):Aa(b)&&(b.preventDefault(),b.stopPropagation(),Zt(i)&&p())},onKeyDown:b=>{Ia(b),(b.key==="Enter"||b.key===" ")&&b.stopPropagation()},children:r.jsx($r,{editorSerializedState:i,onSerializedChange:b=>s(b),placeholder:f,onClear:b=>{g.current=b}})})]})}const vc=Object.freeze(["%commentEditor_placeholder%","%commentEditor_assignTo_label%","%commentEditor_saveButton_tooltip%","%commentEditor_unassigned%","%commentEditor_team%",...Oa]),bc=["%comment_assign_team%","%comment_assign_unassigned%","%comment_assigned_to%","%comment_assigning_to%","%comment_dateAtTime%","%comment_date_today%","%comment_date_yesterday%","%comment_deleteComment%","%comment_editComment%","%comment_replyOrAssign%","%comment_reopenResolved%","%comment_status_resolved%","%comment_status_todo%","%comment_thread_multiple_replies%","%comment_thread_single_reply%","%comment_aria_assign_user%","%comment_aria_submit_comment%","%comment_aria_mark_as_read%","%comment_aria_mark_as_unread%","%comment_aria_resolve_thread%"],xc=["input","select","textarea","button"],yc=["button","textbox"],gn=({options:t,onFocusChange:e,onOptionSelect:a,onCharacterPress:o})=>{const n=l.useRef(null),[i,s]=l.useState(void 0),[c,w]=l.useState(void 0),d=l.useCallback(p=>{s(p);const f=t.find(b=>b.id===p);f&&(e==null||e(f));const y=document.getElementById(p);y&&(y.scrollIntoView({block:"center"}),y.focus()),n.current&&n.current.setAttribute("aria-activedescendant",p)},[e,t]),u=l.useCallback(p=>{const f=t.find(y=>y.id===p);f&&(w(y=>y===p?void 0:p),a==null||a(f))},[a,t]),g=p=>{if(!p)return!1;const f=p.tagName.toLowerCase();if(p.isContentEditable||xc.includes(f))return!0;const y=p.getAttribute("role");if(y&&yc.includes(y))return!0;const b=p.getAttribute("tabindex");return b!==void 0&&b!=="-1"},m=l.useCallback(p=>{var $;const f=p.target,y=_=>_?document.getElementById(_):void 0,b=y(c),D=y(i);if(!!(b&&f&&b.contains(f)&&f!==b)&&g(f)){if(p.key==="Escape"||p.key==="ArrowLeft"&&!f.isContentEditable){if(c){p.preventDefault(),p.stopPropagation();const _=t.find(x=>x.id===c);_&&d(_.id)}return}if(p.key==="ArrowDown"||p.key==="ArrowUp"){if(!b)return;const _=Array.from(b.querySelectorAll('button:not([disabled]), input:not([disabled]):not([type="hidden"]), textarea:not([disabled]), select:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'));if(_.length===0)return;const x=_.findIndex(P=>P===f);if(x===-1)return;let T;p.key==="ArrowDown"?T=Math.min(x+1,_.length-1):T=Math.max(x-1,0),T!==x&&(p.preventDefault(),p.stopPropagation(),($=_[T])==null||$.focus());return}return}const j=t.findIndex(_=>_.id===i);let C=j;switch(p.key){case"ArrowDown":C=Math.min(j+1,t.length-1),p.preventDefault();break;case"ArrowUp":C=Math.max(j-1,0),p.preventDefault();break;case"Home":C=0,p.preventDefault();break;case"End":C=t.length-1,p.preventDefault();break;case" ":case"Enter":i&&u(i),p.preventDefault(),p.stopPropagation();return;case"ArrowRight":{const _=D;if(_){const x=_.querySelector('input:not([disabled]):not([type="hidden"]), textarea:not([disabled]), select:not([disabled])'),T=_.querySelector('button:not([disabled]), [href], [tabindex]:not([tabindex="-1"]), [contenteditable="true"]'),P=x??T;if(P){p.preventDefault(),P.focus();return}}break}default:p.key.length===1&&!p.metaKey&&!p.ctrlKey&&!p.altKey&&(g(f)||(o==null||o(p.key),p.preventDefault()));return}const E=t[C];E&&d(E.id)},[t,d,i,c,u,o]);return{listboxRef:n,activeId:i,selectedId:c,handleKeyDown:m,focusOption:d}},hn=ge.cva("tw:group/badge tw:inline-flex tw:h-5 tw:w-fit tw:shrink-0 tw:items-center tw:justify-center tw:gap-1 tw:overflow-hidden tw:rounded-4xl tw:border tw:border-transparent tw:px-2 tw:py-0.5 tw:text-xs tw:font-medium tw:whitespace-nowrap tw:transition-all tw:focus-visible:border-ring tw:focus-visible:ring-[3px] tw:focus-visible:ring-ring/50 tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:aria-invalid:border-destructive tw:aria-invalid:ring-destructive/20 tw:dark:aria-invalid:ring-destructive/40 tw:[&>svg]:pointer-events-none tw:[&>svg]:size-3!",{variants:{variant:{default:"tw:bg-primary tw:text-primary-foreground tw:[a]:hover:bg-primary/80",secondary:"tw:bg-secondary tw:text-secondary-foreground tw:[a]:hover:bg-secondary/80",destructive:"tw:bg-destructive/10 tw:text-destructive tw:focus-visible:ring-destructive/20 tw:dark:bg-destructive/20 tw:dark:focus-visible:ring-destructive/40 tw:[a]:hover:bg-destructive/20",outline:"tw:border-border tw:text-foreground tw:[a]:hover:bg-muted tw:[a]:hover:text-muted-foreground",ghost:"tw:hover:bg-muted tw:hover:text-muted-foreground tw:dark:hover:bg-muted/50",link:"tw:text-primary tw:underline-offset-4 tw:hover:underline",muted:"tw:border-transparent tw:bg-muted tw:text-muted-foreground tw:hover:bg-muted/80",blueIndicator:"tw:w-[5px] tw:h-[5px] tw:bg-blue-400 tw:px-0",mutedIndicator:"tw:w-[5px] tw:h-[5px] tw:bg-zinc-400 tw:px-0"}},defaultVariants:{variant:"default"}});function pe({className:t,variant:e="default",asChild:a=!1,...o}){const n=a?k.Slot.Root:"span";return r.jsx(n,{"data-slot":"badge","data-variant":e,className:h("pr-twp",hn({variant:e}),t),...o})}function fn({className:t,size:e="default",...a}){return r.jsx("div",{"data-slot":"card","data-size":e,className:h("pr-twp tw:group/card tw:flex tw:flex-col tw:gap-4 tw:overflow-hidden tw:rounded-xl tw:bg-card tw:py-4 tw:text-sm tw:text-card-foreground tw:ring-1 tw:ring-foreground/10 tw:has-data-[slot=card-footer]:pb-0 tw:has-[>img:first-child]:pt-0 tw:data-[size=sm]:gap-3 tw:data-[size=sm]:py-3 tw:data-[size=sm]:has-data-[slot=card-footer]:pb-0 tw:*:[img:first-child]:rounded-t-xl tw:*:[img:last-child]:rounded-b-xl",t),...a})}function kc({className:t,...e}){return r.jsx("div",{"data-slot":"card-header",className:h("pr-twp tw:group/card-header tw:@container/card-header tw:grid tw:auto-rows-min tw:items-start tw:gap-1 tw:rounded-t-xl tw:px-4 tw:group-data-[size=sm]/card:px-3 tw:has-data-[slot=card-action]:grid-cols-[1fr_auto] tw:has-data-[slot=card-description]:grid-rows-[auto_auto] tw:[.border-b]:pb-4 tw:group-data-[size=sm]/card:[.border-b]:pb-3",t),...e})}function jc({className:t,...e}){return r.jsx("div",{"data-slot":"card-title",className:h("pr-twp tw:font-heading tw:text-base tw:leading-snug tw:font-medium tw:group-data-[size=sm]/card:text-sm",t),...e})}function _c({className:t,...e}){return r.jsx("div",{"data-slot":"card-description",className:h("pr-twp tw:text-sm tw:text-muted-foreground",t),...e})}function mn({className:t,...e}){return r.jsx("div",{"data-slot":"card-content",className:h("pr-twp tw:px-4 tw:group-data-[size=sm]/card:px-3",t),...e})}function Nc({className:t,...e}){return r.jsx("div",{"data-slot":"card-footer",className:h("pr-twp tw:flex tw:items-center tw:rounded-b-xl tw:border-t tw:bg-muted/50 tw:p-4 tw:group-data-[size=sm]/card:p-3",t),...e})}function vn({className:t,size:e="default",...a}){return r.jsx(k.Avatar.Root,{"data-slot":"avatar","data-size":e,className:h("pr-twp tw:group/avatar tw:relative tw:flex tw:size-8 tw:shrink-0 tw:rounded-full tw:select-none tw:after:absolute tw:after:inset-0 tw:after:rounded-full tw:after:border tw:after:border-border tw:after:mix-blend-darken tw:data-[size=lg]:size-10 tw:data-[size=sm]:size-6 tw:dark:after:mix-blend-lighten",t),...a})}function Cc({className:t,...e}){return r.jsx(k.Avatar.Image,{"data-slot":"avatar-image",className:h("pr-twp tw:aspect-square tw:size-full tw:rounded-full tw:object-cover",t),...e})}function bn({className:t,...e}){return r.jsx(k.Avatar.Fallback,{"data-slot":"avatar-fallback",className:h("pr-twp tw:flex tw:size-full tw:items-center tw:justify-center tw:rounded-full tw:bg-muted tw:text-sm tw:text-muted-foreground tw:group-data-[size=sm]/avatar:text-xs",t),...e})}const Pa=l.createContext(void 0);function ke(){const t=l.useContext(Pa);if(!t)throw new Error("useMenuContext must be used within a MenuContext.Provider.");return t}const Ge=ge.cva("",{variants:{variant:{default:"",muted:"tw:hover:bg-muted tw:hover:text-foreground tw:focus:bg-muted tw:focus:text-foreground tw:data-[state=open]:bg-muted tw:data-[state=open]:text-foreground"}},defaultVariants:{variant:"default"}});function ae({variant:t="default",...e}){const a=ft(),o=l.useMemo(()=>({variant:t}),[t]);return r.jsx(Pa.Provider,{value:o,children:r.jsx(k.DropdownMenu.Root,{"data-slot":"dropdown-menu",dir:a,...e})})}function xn({...t}){return r.jsx(k.DropdownMenu.Portal,{"data-slot":"dropdown-menu-portal",...t})}function oe({...t}){return r.jsx(k.DropdownMenu.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function ne({className:t,align:e="start",sideOffset:a=4,children:o,...n}){const i=ft();return r.jsx(k.DropdownMenu.Portal,{children:r.jsx(k.DropdownMenu.Content,{"data-slot":"dropdown-menu-content",sideOffset:a,align:e,className:h("pr-twp tw:z-50 tw:max-h-(--radix-dropdown-menu-content-available-height) tw:min-w-32 tw:origin-(--radix-dropdown-menu-content-transform-origin) tw:overflow-x-hidden tw:overflow-y-auto tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-[state=closed]:overflow-hidden tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...n,children:r.jsx("div",{dir:i,children:o})})})}function La({...t}){return r.jsx(k.DropdownMenu.Group,{"data-slot":"dropdown-menu-group",...t})}function Se({className:t,inset:e,variant:a="default",...o}){const n=ft(),i=ke();return r.jsx(k.DropdownMenu.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":a,className:h("tw:group/dropdown-menu-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:data-[variant=destructive]:focus:text-destructive tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:data-[variant=destructive]:*:[svg]:text-destructive",t,Ge({variant:i.variant})),dir:n,...o})}function ee({className:t,children:e,checked:a,inset:o,...n}){const i=ft(),s=ke();return r.jsxs(k.DropdownMenu.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":o,className:h("tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t,Ge({variant:s.variant})),checked:a,dir:i,...n,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2 tw:flex tw:items-center tw:justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:r.jsx(k.DropdownMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function yn({...t}){return r.jsx(k.DropdownMenu.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}function kn({className:t,children:e,inset:a,...o}){const n=ft(),i=ke();return r.jsxs(k.DropdownMenu.RadioItem,{"data-slot":"dropdown-menu-radio-item","data-inset":a,className:h("tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t,Ge({variant:i.variant})),dir:n,...o,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2 tw:flex tw:items-center tw:justify-center","data-slot":"dropdown-menu-radio-item-indicator",children:r.jsx(k.DropdownMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function Ee({className:t,inset:e,...a}){return r.jsx(k.DropdownMenu.Label,{"data-slot":"dropdown-menu-label","data-inset":e,className:h("tw:px-1.5 tw:py-1 tw:text-xs tw:font-medium tw:text-muted-foreground tw:data-inset:ps-7",t),...a})}function ye({className:t,...e}){return r.jsx(k.DropdownMenu.Separator,{"data-slot":"dropdown-menu-separator",className:h("tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function Sc({className:t,...e}){return r.jsx("span",{"data-slot":"dropdown-menu-shortcut",className:h("tw:ms-auto tw:text-xs tw:tracking-widest tw:text-muted-foreground tw:group-focus/dropdown-menu-item:text-accent-foreground",t),...e})}function jn({...t}){return r.jsx(k.DropdownMenu.Sub,{"data-slot":"dropdown-menu-sub",...t})}function _n({className:t,inset:e,children:a,...o}){const n=ke();return r.jsxs(k.DropdownMenu.SubTrigger,{"data-slot":"dropdown-menu-sub-trigger","data-inset":e,className:h("tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-open:bg-accent tw:data-open:text-accent-foreground tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t,Ge({variant:n.variant})),...o,children:[a,r.jsx(ht.IconChevronRight,{className:"tw:ms-auto"})]})}function Nn({className:t,children:e,...a}){const o=ft();return r.jsx(k.DropdownMenu.SubContent,{"data-slot":"dropdown-menu-sub-content",className:h("pr-twp tw:z-50 tw:min-w-[96px] tw:origin-(--radix-dropdown-menu-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-lg tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...a,children:r.jsx("div",{dir:o,children:e})})}function go({comment:t,isReply:e=!1,localizedStrings:a,isThreadExpanded:o=!1,handleUpdateComment:n,handleDeleteComment:i,onEditingChange:s,canEditOrDelete:c=!1}){const[w,d]=l.useState(!1),[u,g]=l.useState(),m=l.useRef(null);l.useEffect(()=>{if(!w)return;let j=!0;const C=m.current;if(!C)return;const E=setTimeout(()=>{j&&wn(C)},300);return()=>{j=!1,clearTimeout(E)}},[w]);const p=l.useCallback(j=>{j&&j.stopPropagation(),d(!1),g(void 0),s==null||s(!1)},[s]),f=l.useCallback(async j=>{if(j&&j.stopPropagation(),!u||!n)return;await n(t.id,Ar(u))&&(d(!1),g(void 0),s==null||s(!1))},[u,n,t.id,s]),y=l.useMemo(()=>{const j=new Date(t.date),C=z.formatRelativeDate(j,a["%comment_date_today%"],a["%comment_date_yesterday%"]),E=j.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"});return z.formatReplacementString(a["%comment_dateAtTime%"],{date:C,time:E})},[t.date,a]),b=l.useMemo(()=>t.user,[t.user]),D=l.useMemo(()=>t.user.split(" ").map(j=>j[0]).join("").toUpperCase().slice(0,2),[t.user]),S=l.useMemo(()=>z.sanitizeHtml(t.contents),[t.contents]),R=l.useMemo(()=>{if(o&&c)return r.jsxs(r.Fragment,{children:[r.jsxs(Se,{onClick:j=>{j.stopPropagation(),d(!0),g(gc(t.contents)),s==null||s(!0)},children:[r.jsx(O.Pencil,{className:"tw:me-2 tw:h-4 tw:w-4"}),a["%comment_editComment%"]]}),r.jsxs(Se,{onClick:async j=>{j.stopPropagation(),i&&await i(t.id)},children:[r.jsx(O.Trash2,{className:"tw:me-2 tw:h-4 tw:w-4"}),a["%comment_deleteComment%"]]})]})},[c,o,a,t.contents,t.id,i,s]);return r.jsxs("div",{className:h("tw:flex tw:w-full tw:flex-row tw:items-baseline tw:gap-3 tw:space-y-3",{"tw:text-sm":e}),children:[r.jsx(vn,{className:"tw:h-8 tw:w-8",children:r.jsx(bn,{className:"tw:text-xs tw:font-medium",children:D})}),r.jsxs("div",{className:"tw:flex tw:flex-1 tw:flex-col tw:gap-2",children:[r.jsxs("div",{className:"tw:flex tw:w-full tw:flex-row tw:flex-wrap tw:items-baseline tw:gap-x-2",children:[r.jsx("p",{className:"tw:text-sm tw:font-medium",children:b}),r.jsx("p",{className:"tw:text-xs tw:font-normal tw:text-muted-foreground",children:y}),r.jsx("div",{className:"tw:flex-1"}),e&&t.assignedUser!==void 0&&r.jsxs(pe,{variant:"secondary",className:"tw:text-xs tw:font-normal",children:["→ ",Sr(t.assignedUser,a)]})]}),w&&r.jsxs("div",{role:"textbox",tabIndex:-1,className:"tw:flex tw:flex-col tw:gap-2",ref:m,onKeyDownCapture:j=>{j.key==="Escape"?(j.preventDefault(),j.stopPropagation(),p()):Aa(j)&&(j.preventDefault(),j.stopPropagation(),Zt(u)&&f())},onKeyDown:j=>{Ia(j),(j.key==="Enter"||j.key===" ")&&j.stopPropagation()},onClick:j=>{j.stopPropagation()},children:[r.jsx($r,{className:h('tw:[&_[data-lexical-editor="true"]>blockquote]:mt-0 tw:[&_[data-lexical-editor="true"]>blockquote]:border-s-0 tw:[&_[data-lexical-editor="true"]>blockquote]:ps-0 tw:[&_[data-lexical-editor="true"]>blockquote]:font-normal tw:[&_[data-lexical-editor="true"]>blockquote]:not-italic tw:[&_[data-lexical-editor="true"]>blockquote]:text-foreground'),editorSerializedState:u,onSerializedChange:j=>g(j)}),r.jsxs("div",{className:"tw:flex tw:flex-row tw:items-start tw:justify-end tw:gap-2",children:[r.jsx(F,{size:"icon",onClick:p,variant:"outline",className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",children:r.jsx(O.X,{})}),r.jsx(F,{size:"icon",onClick:f,className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",disabled:!Zt(u),children:r.jsx(O.ArrowUp,{})})]})]}),!w&&r.jsxs(r.Fragment,{children:[t.status==="Resolved"&&r.jsx("div",{className:"tw:text-sm tw:italic",children:a["%comment_status_resolved%"]}),t.status==="Todo"&&e&&r.jsx("div",{className:"tw:text-sm tw:italic",children:a["%comment_status_todo%"]}),r.jsx("div",{className:h("tw:prose tw:items-start tw:gap-2 tw:break-words tw:text-sm tw:font-normal tw:text-foreground","tw:max-w-none","tw:[&>blockquote]:border-s-0 tw:[&>blockquote]:p-0 tw:[&>blockquote]:ps-0 tw:[&>blockquote]:font-normal tw:[&>blockquote]:not-italic tw:[&>blockquote]:text-foreground","tw:prose-quoteless",{"tw:line-clamp-3":!o}),dangerouslySetInnerHTML:{__html:S}})]})]}),R&&r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"ghost",size:"icon",children:r.jsx(O.MoreHorizontal,{})})}),r.jsx(ne,{align:"end",children:R})]})]})}const ho={root:{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"",type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:""}],direction:"ltr",format:"",indent:0,type:"root",version:1}};function Ec({classNameForVerseText:t,comments:e,localizedStrings:a,isSelected:o=!1,verseRef:n,assignedUser:i,currentUser:s,handleSelectThread:c,threadId:w,thread:d,threadStatus:u,handleAddCommentToThread:g,handleUpdateComment:m,handleDeleteComment:p,handleReadStatusChange:f,assignableUsers:y,canUserAddCommentToThread:b,canUserAssignThreadCallback:D,canUserResolveThreadCallback:S,canUserEditOrDeleteCommentCallback:R,isRead:j=!1,autoReadDelay:C=5,onVerseRefClick:E,initialAssignedUser:$}){const[_,x]=l.useState(ho),[T,P]=l.useState(),[G,q]=l.useState(),V=o,[K,I]=l.useState(!1),[Y,lt]=l.useState(!1),[kt,St]=l.useState(!1),[J,Et]=l.useState(!1),[U,tt]=l.useState(!1),[rt,at]=l.useState(j),[ot,Lt]=l.useState(!1),gt=l.useRef(void 0),[Ft,Gt]=l.useState(new Map);l.useEffect(()=>{let M=!0;return(async()=>{const dt=S?await S(w):!1;M&&tt(dt)})(),()=>{M=!1}},[w,S]),l.useEffect(()=>{let M=!0;if(!o){Et(!1),Gt(new Map);return}return(async()=>{const dt=D?await D(w):!1;M&&Et(dt)})(),()=>{M=!1}},[o,w,D]);const A=l.useRef("idle");l.useEffect(()=>{if(!o){A.current!=="idle"&&(P(void 0),q(void 0),A.current="idle");return}A.current==="idle"&&(A.current="pending"),J?A.current==="pending"&&$!==void 0&&$!==i&&(P($),A.current="auto-populated"):A.current==="auto-populated"&&(P(void 0),A.current="pending")},[o,$,J,i]);const Tt=l.useMemo(()=>e.filter(M=>!M.deleted),[e]);l.useEffect(()=>{let M=!0;if(!o||!R){Gt(new Map);return}return(async()=>{const dt=new Map;await Promise.all(Tt.map(async bt=>{const Re=await R(bt.id);M&&dt.set(bt.id,Re)})),M&&Gt(dt)})(),()=>{M=!1}},[o,Tt,R]);const Bt=l.useMemo(()=>Tt[0],[Tt]),Qt=l.useRef(null),Ut=l.useRef(void 0),Rt=l.useCallback(()=>{var M;(M=Ut.current)==null||M.call(Ut),x(ho)},[]),je=l.useCallback(()=>{const M=!rt;at(M),Lt(!M),f==null||f(w,M)},[rt,f,w]);l.useEffect(()=>{I(!1)},[o]),l.useEffect(()=>{if(o&&!rt&&!ot){const M=setTimeout(()=>{at(!0),f==null||f(w,!0)},C*1e3);return gt.current=M,()=>clearTimeout(M)}gt.current&&(clearTimeout(gt.current),gt.current=void 0)},[o,rt,ot,C,w,f]);const qt=l.useMemo(()=>({singleReply:a["%comment_thread_single_reply%"],multipleReplies:a["%comment_thread_multiple_replies%"]}),[a]),Kt=l.useMemo(()=>{if(i===void 0)return;if(i==="")return a["%comment_assign_unassigned%"]??"Unassigned";const M=Sr(i,a);return z.formatReplacementString(a["%comment_assigned_to%"],{assignedUser:M})},[i,a]),B=l.useMemo(()=>Tt.slice(1),[Tt]),W=l.useMemo(()=>B.length??0,[B.length]),nt=l.useMemo(()=>W>0,[W]),et=l.useMemo(()=>K||W<=2?B:B.slice(-2),[B,W,K]),wt=l.useMemo(()=>K||W<=2?0:W-2,[W,K]),mt=l.useMemo(()=>W===1?qt.singleReply:z.formatReplacementString(qt.multipleReplies,{count:W}),[W,qt]),vt=l.useMemo(()=>wt===1?qt.singleReply:z.formatReplacementString(qt.multipleReplies,{count:wt}),[wt,qt]);l.useEffect(()=>{!o&&Y&&nt&<(!1)},[o,Y,nt]);const ut=l.useCallback(async M=>{M&&M.stopPropagation();const ct=Zt(_)?Ar(_):void 0;if(T!==void 0){await g({threadId:w,contents:ct,assignedUser:T})&&(q(T),ct&&Rt());return}ct&&await g({threadId:w,contents:ct})&&Rt()},[Rt,_,g,T,w]),jt=l.useCallback(async M=>{const ct=Zt(_)?Ar(_):void 0,dt=M.status?M.assignedUser:T??M.assignedUser,bt=await g({...M,contents:ct,assignedUser:dt});return bt&&(dt!==void 0&&q(dt),ct&&Rt()),bt},[Rt,_,g,T]);if(Tt.length!==0)return r.jsx(fn,{role:"option","aria-selected":o,id:w,className:h("tw:group tw:w-full tw:rounded-none tw:border-none tw:p-4 tw:outline-hidden tw:transition-all tw:duration-200 tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",{"tw:cursor-pointer tw:hover:shadow-md":!o},{"tw:bg-primary-foreground":!o&&u!=="Resolved"&&rt,"tw:bg-background":o&&u!=="Resolved"&&rt,"tw:bg-muted":u==="Resolved","tw:bg-accent":!rt&&!o&&u!=="Resolved"}),onClick:()=>{c(w)},tabIndex:-1,children:r.jsxs(mn,{className:"tw:flex tw:flex-col tw:gap-2 tw:p-0",children:[r.jsxs("div",{className:"tw:flex tw:flex-col tw:content-center tw:items-start tw:gap-4",children:[r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-2",children:[Kt&&r.jsx(pe,{className:"tw:rounded-sm tw:bg-input tw:text-sm tw:font-normal tw:text-primary tw:hover:bg-input",children:Kt}),r.jsx(F,{variant:"ghost",size:"icon",onClick:M=>{M.stopPropagation(),je()},className:"tw:text-muted-foreground tw:transition tw:hover:text-foreground","aria-label":rt?a["%comment_aria_mark_as_unread%"]??"Mark as unread":a["%comment_aria_mark_as_read%"]??"Mark as read",children:rt?r.jsx(O.MailOpen,{}):r.jsx(O.Mail,{})}),U&&u!=="Resolved"&&r.jsx(F,{variant:"ghost",size:"icon",className:h("tw:ms-auto","tw:text-primary tw:transition-opacity tw:duration-200 tw:hover:bg-primary/10","tw:opacity-0 tw:group-hover:opacity-100"),onClick:M=>{M.stopPropagation(),jt({threadId:w,status:"Resolved"})},"aria-label":a["%comment_aria_resolve_thread%"]??"Resolve thread",children:r.jsx(O.Check,{className:"tw:h-4 tw:w-4"})})]}),r.jsx("div",{className:"tw:flex tw:max-w-full tw:flex-wrap tw:items-baseline tw:gap-2",children:r.jsxs("p",{ref:Qt,className:h("tw:flex-1 tw:overflow-hidden tw:text-ellipsis tw:text-sm tw:font-normal tw:text-muted-foreground",{"tw:overflow-visible tw:text-clip tw:whitespace-normal tw:break-words":V},{"tw:whitespace-nowrap":!V}),children:[n&&E?r.jsx(F,{variant:"ghost",size:"sm",className:"tw:h-auto tw:px-1 tw:py-0 tw:text-sm tw:font-normal tw:text-muted-foreground",onClick:M=>{M.stopPropagation(),E(d)},children:n}):n,r.jsxs("span",{className:t,children:[Bt.contextBefore,r.jsx("span",{className:"tw:font-bold",children:Bt.selectedText}),Bt.contextAfter]})]})}),r.jsx(go,{comment:Bt,localizedStrings:a,isThreadExpanded:o,threadStatus:u,handleAddCommentToThread:jt,handleUpdateComment:m,handleDeleteComment:p,onEditingChange:lt,canEditOrDelete:(!Y&&Ft.get(Bt.id))??!1,canUserResolveThread:U})]}),r.jsxs(r.Fragment,{children:[nt&&!o&&r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-5",children:[r.jsx("div",{className:"tw:w-8",children:r.jsx($e,{})}),r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:mt})]}),!o&&Zt(_)&&r.jsx($r,{editorSerializedState:_,onSerializedChange:M=>x(M),placeholder:a["%comment_replyOrAssign%"]}),o&&r.jsxs(r.Fragment,{children:[wt>0&&r.jsxs("div",{className:"tw:flex tw:cursor-pointer tw:items-center tw:gap-5 tw:py-2",onClick:M=>{M.stopPropagation(),I(!0)},role:"button",tabIndex:0,onKeyDown:M=>{(M.key==="Enter"||M.key===" ")&&(M.preventDefault(),M.stopPropagation(),I(!0))},children:[r.jsx("div",{className:"tw:w-8",children:r.jsx($e,{})}),r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-2",children:[r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:vt}),K?r.jsx(O.ChevronUp,{}):r.jsx(O.ChevronDown,{})]})]}),et.map(M=>r.jsx("div",{children:r.jsx(go,{comment:M,localizedStrings:a,isReply:!0,isThreadExpanded:o,handleUpdateComment:m,handleDeleteComment:p,onEditingChange:lt,canEditOrDelete:(!Y&&Ft.get(M.id))??!1})},M.id)),b!==!1&&(!Y||Zt(_))&&r.jsxs("div",{role:"textbox",tabIndex:-1,className:"tw:w-full tw:space-y-2",onClick:M=>M.stopPropagation(),onKeyDownCapture:M=>{Aa(M)&&(M.preventDefault(),M.stopPropagation(),(Zt(_)||T!==void 0&&T!==G)&&ut())},onKeyDown:M=>{Ia(M),(M.key==="Enter"||M.key===" ")&&M.stopPropagation()},children:[r.jsx($r,{editorSerializedState:_,onSerializedChange:M=>x(M),placeholder:u==="Resolved"?a["%comment_reopenResolved%"]:a["%comment_replyOrAssign%"],autoFocus:!0,onClear:M=>{Ut.current=M}}),r.jsxs("div",{className:"tw:flex tw:flex-row tw:items-center tw:justify-end tw:gap-2",children:[T!==void 0&&(Zt(_)||T!==G)&&r.jsx("span",{className:"tw:flex-1 tw:text-sm tw:text-muted-foreground",children:z.formatReplacementString(a["%comment_assigning_to%"]??"Assigning to: {assignedUser}",{assignedUser:Sr(T,a)})}),r.jsxs(se,{open:kt,onOpenChange:St,children:[r.jsx(me,{asChild:!0,children:r.jsx(F,{size:"icon",variant:"outline",className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",disabled:!J||!y||y.length===0||!y.includes(s),"aria-label":a["%comment_aria_assign_user%"]??"Assign user",children:r.jsx(O.AtSign,{})})}),r.jsx(ce,{className:"tw:w-auto tw:p-0",align:"end",onKeyDown:M=>{M.key==="Escape"&&(M.stopPropagation(),St(!1))},children:r.jsx(he,{children:r.jsx(fe,{children:y==null?void 0:y.map(M=>r.jsx(ie,{onSelect:()=>{P(M!==i?M:void 0),A.current="user-selected",q(void 0),St(!1)},className:"tw:flex tw:items-center",children:r.jsx("span",{children:Sr(M,a)})},M||"unassigned"))})})})]}),r.jsx(F,{size:"icon",onClick:ut,className:"tw:flex tw:items-center tw:justify-center tw:rounded-md",disabled:!Zt(_)&&(T===void 0||T===G),"aria-label":a["%comment_aria_submit_comment%"]??"Submit comment",children:r.jsx(O.ArrowUp,{})})]})]})]})]})]})})}function Tc({className:t="",classNameForVerseText:e,threads:a,currentUser:o,localizedStrings:n,handleAddCommentToThread:i,handleUpdateComment:s,handleDeleteComment:c,handleReadStatusChange:w,assignableUsers:d,canUserAddCommentToThread:u,canUserAssignThreadCallback:g,canUserResolveThreadCallback:m,canUserEditOrDeleteCommentCallback:p,selectedThreadId:f,onSelectedThreadChange:y,onVerseRefClick:b}){const[D,S]=l.useState(new Set),[R,j]=l.useState(),[C,E]=l.useState(),$=l.useCallback(async I=>{const Y=await i(I);return Y!==void 0&&I.assignedUser!==void 0&&I.assignedUser!==""&&E(I.assignedUser),Y},[i]);l.useEffect(()=>{f&&(S(I=>new Set(I).add(f)),j(f))},[f]);const _=a.filter(I=>I.comments.some(Y=>!Y.deleted)),x=_.map(I=>({id:I.id})),T=l.useCallback(I=>{S(Y=>new Set(Y).add(I.id)),j(I.id),y==null||y(I.id)},[y]),P=l.useCallback(I=>{const Y=D.has(I);S(lt=>{const kt=new Set(lt);return kt.has(I)?kt.delete(I):kt.add(I),kt}),j(I),y==null||y(Y?void 0:I)},[D,y]),{listboxRef:G,activeId:q,handleKeyDown:V}=gn({options:x,onOptionSelect:T}),K=l.useCallback(I=>{I.key==="Escape"?(R&&D.has(R)&&(S(Y=>{const lt=new Set(Y);return lt.delete(R),lt}),j(void 0),y==null||y(void 0)),I.preventDefault(),I.stopPropagation()):V(I)},[R,D,V,y]);return r.jsx("div",{id:"comment-list",role:"listbox",tabIndex:0,ref:G,"aria-activedescendant":q??void 0,"aria-label":"Comments",className:h("tw:flex tw:w-full tw:flex-col tw:space-y-3 tw:outline-hidden tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",t),onKeyDown:K,children:_.map(I=>r.jsx("div",{className:h({"tw:opacity-60":I.status==="Resolved"}),children:r.jsx(Ec,{classNameForVerseText:e,comments:I.comments,localizedStrings:n,verseRef:I.verseRef,handleSelectThread:P,threadId:I.id,thread:I,isRead:I.isRead,isSelected:D.has(I.id),currentUser:o,assignedUser:I.assignedUser,threadStatus:I.status,handleAddCommentToThread:$,handleUpdateComment:s,handleDeleteComment:c,handleReadStatusChange:w,assignableUsers:d,canUserAddCommentToThread:u,canUserAssignThreadCallback:g,canUserResolveThreadCallback:m,canUserEditOrDeleteCommentCallback:p,onVerseRefClick:b,initialAssignedUser:C})},I.id))})}function Rc({table:t}){return r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsxs(F,{variant:"outline",size:"sm",className:"tw:ml-auto tw:hidden tw:h-8 tw:lg:flex",children:[r.jsx(O.FilterIcon,{className:"tw:mr-2 tw:h-4 tw:w-4"}),"View"]})}),r.jsxs(ne,{align:"end",className:"tw:w-[150px]",children:[r.jsx(Ee,{children:"Toggle columns"}),r.jsx(ye,{}),t.getAllColumns().filter(e=>e.getCanHide()).map(e=>r.jsx(ee,{className:"tw:capitalize",checked:e.getIsVisible(),onCheckedChange:a=>e.toggleVisibility(!!a),children:e.id},e.id))]})]})}function Ae({...t}){return r.jsx(k.Select.Root,{"data-slot":"select",...t})}function Cn({className:t,...e}){return r.jsx(k.Select.Group,{"data-slot":"select-group",className:h("tw:scroll-my-1 tw:p-1",t),...e})}function Pe({...t}){return r.jsx(k.Select.Value,{"data-slot":"select-value",...t})}function Le({className:t,size:e="default",children:a,...o}){const n=ft();return r.jsxs(k.Select.Trigger,{"data-slot":"select-trigger","data-size":e,className:h("pr-twp tw:flex tw:w-fit tw:items-center tw:gap-2 tw:rounded-lg tw:border tw:border-input tw:bg-transparent tw:py-2 tw:pe-2 tw:ps-2.5 tw:text-sm tw:whitespace-nowrap tw:transition-colors tw:outline-none tw:select-none tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:data-placeholder:text-muted-foreground tw:data-[size=default]:h-8 tw:data-[size=sm]:h-7 tw:data-[size=sm]:rounded-[min(var(--tw-radius-md),10px)] tw:*:data-[slot=select-value]:line-clamp-1 tw:*:data-[slot=select-value]:flex tw:*:data-[slot=select-value]:flex-1 tw:*:data-[slot=select-value]:items-center tw:*:data-[slot=select-value]:gap-1.5 tw:*:data-[slot=select-value]:text-start tw:dark:bg-input/30 tw:dark:hover:bg-input/50 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),dir:n,...o,children:[a,r.jsx(k.Select.Icon,{asChild:!0,children:r.jsx(ht.IconSelector,{className:"tw:pointer-events-none tw:size-4 tw:text-muted-foreground"})})]})}function Be({className:t,children:e,position:a="popper",align:o="center",...n}){const i=ft();return r.jsx(k.Select.Portal,{children:r.jsxs(k.Select.Content,{"data-slot":"select-content","data-align-trigger":a==="item-aligned",className:h("pr-twp tw:relative tw:z-50 tw:max-h-(--radix-select-content-available-height) tw:data-[align-trigger=true]:min-w-(--radix-select-trigger-width) tw:data-[align-trigger=false]:min-w-36 tw:origin-(--radix-select-content-transform-origin) tw:overflow-x-hidden tw:overflow-y-auto tw:rounded-lg tw:bg-popover tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[align-trigger=true]:animate-none tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",a==="popper"&&"tw:data-[side=bottom]:translate-y-1 tw:data-[side=left]:-translate-x-1 tw:rtl:data-[side=left]:translate-x-1 tw:data-[side=right]:translate-x-1 tw:rtl:data-[side=right]:-translate-x-1 tw:data-[side=top]:-translate-y-1",t),position:a,align:o,...n,children:[r.jsx(Sn,{}),r.jsx(k.Select.Viewport,{"data-position":a,className:h("tw:data-[position=popper]:h-(--radix-select-trigger-height) tw:data-[position=popper]:w-full tw:data-[position=popper]:min-w-(--radix-select-trigger-width)",a==="popper"&&"tw:"),children:r.jsx("div",{dir:i,children:e})}),r.jsx(En,{})]})})}function zc({className:t,...e}){return r.jsx(k.Select.Label,{"data-slot":"select-label",className:h("pr-twp tw:px-1.5 tw:py-1 tw:text-xs tw:text-muted-foreground",t),...e})}function Jt({className:t,children:e,...a}){return r.jsxs(k.Select.Item,{"data-slot":"select-item",className:h("pr-twp tw:relative tw:flex tw:w-full tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:*:[span]:last:flex tw:*:[span]:last:items-center tw:*:[span]:last:gap-2",t),...a,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2 tw:flex tw:size-4 tw:items-center tw:justify-center",children:r.jsx(k.Select.ItemIndicator,{children:r.jsx(ht.IconCheck,{className:"tw:pointer-events-none"})})}),r.jsx(k.Select.ItemText,{children:e})]})}function Dc({className:t,...e}){return r.jsx(k.Select.Separator,{"data-slot":"select-separator",className:h("pr-twp tw:pointer-events-none tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function Sn({className:t,...e}){return r.jsx(k.Select.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:h("pr-twp tw:z-10 tw:flex tw:cursor-default tw:items-center tw:justify-center tw:bg-popover tw:py-1 tw:[&_svg:not([class*=size-])]:size-4",t),...e,children:r.jsx(ht.IconChevronUp,{})})}function En({className:t,...e}){return r.jsx(k.Select.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:h("pr-twp tw:z-10 tw:flex tw:cursor-default tw:items-center tw:justify-center tw:bg-popover tw:py-1 tw:[&_svg:not([class*=size-])]:size-4",t),...e,children:r.jsx(ht.IconChevronDown,{})})}function Ic({table:t}){return r.jsx("div",{className:"tw:flex tw:items-center tw:justify-between tw:px-2 tw:pb-3 tw:pt-3",children:r.jsxs("div",{className:"tw:flex tw:items-center tw:space-x-6 tw:lg:space-x-8",children:[r.jsxs("div",{className:"tw:flex-1 tw:text-sm tw:text-muted-foreground",children:[t.getFilteredSelectedRowModel().rows.length," of"," ",t.getFilteredRowModel().rows.length," row(s) selected"]}),r.jsxs("div",{className:"tw:flex tw:items-center tw:space-x-2",children:[r.jsx("p",{className:"tw:text-nowrap tw:text-sm tw:font-medium",children:"Rows per page"}),r.jsxs(Ae,{value:`${t.getState().pagination.pageSize}`,onValueChange:e=>{t.setPageSize(Number(e))},children:[r.jsx(Le,{className:"tw:h-8 tw:w-[70px]",children:r.jsx(Pe,{placeholder:t.getState().pagination.pageSize})}),r.jsx(Be,{side:"top",children:[10,20,30,40,50].map(e=>r.jsx(Jt,{value:`${e}`,children:e},e))})]})]}),r.jsxs("div",{className:"tw:flex tw:w-[100px] tw:items-center tw:justify-center tw:text-sm tw:font-medium",children:["Page ",t.getState().pagination.pageIndex+1," of ",t.getPageCount()]}),r.jsxs("div",{className:"tw:flex tw:items-center tw:space-x-2",children:[r.jsxs(F,{variant:"outline",size:"icon",className:"tw:hidden tw:h-8 tw:w-8 tw:p-0 tw:lg:flex",onClick:()=>t.setPageIndex(0),disabled:!t.getCanPreviousPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to first page"}),r.jsx(O.ArrowLeftIcon,{className:"tw:h-4 tw:w-4"})]}),r.jsxs(F,{variant:"outline",size:"icon",className:"tw:h-8 tw:w-8 tw:p-0",onClick:()=>t.previousPage(),disabled:!t.getCanPreviousPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to previous page"}),r.jsx(O.ChevronLeftIcon,{className:"tw:h-4 tw:w-4"})]}),r.jsxs(F,{variant:"outline",size:"icon",className:"tw:h-8 tw:w-8 tw:p-0",onClick:()=>t.nextPage(),disabled:!t.getCanNextPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to next page"}),r.jsx(O.ChevronRightIcon,{className:"tw:h-4 tw:w-4"})]}),r.jsxs(F,{variant:"outline",size:"icon",className:"tw:hidden tw:h-8 tw:w-8 tw:p-0 tw:lg:flex",onClick:()=>t.setPageIndex(t.getPageCount()-1),disabled:!t.getCanNextPage(),children:[r.jsx("span",{className:"tw:sr-only",children:"Go to last page"}),r.jsx(O.ArrowRightIcon,{className:"tw:h-4 tw:w-4"})]})]})]})})}const fo=` a[href], area[href], input:not([disabled]), @@ -11,7 +11,7 @@ embed, [contenteditable], tr:not([disabled]) -`;function Mc(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)}function lr(t,e){const a=e?`${fo}, ${e}`:fo;return Array.from(t.querySelectorAll(a)).filter(o=>!o.hasAttribute("disabled")&&!o.getAttribute("aria-hidden")&&Mc(o))}function Ur({className:t,stickyHeader:e,ref:a,...o}){const n=l.useRef(null);l.useEffect(()=>{typeof a=="function"?a(n.current):a&&"current"in a&&(a.current=n.current)},[a]),l.useEffect(()=>{const s=n.current;if(!s)return;const c=()=>{requestAnimationFrame(()=>{lr(s,'[tabindex]:not([tabindex="-1"])').forEach(u=>{u.setAttribute("tabindex","-1")})})};c();const w=new MutationObserver(()=>{c()});return w.observe(s,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["tabindex"]}),()=>{w.disconnect()}},[]);const i=s=>{const{current:c}=n;if(c){if(s.key==="ArrowDown"){s.preventDefault(),lr(c)[0].focus();return}s.key===" "&&document.activeElement===c&&s.preventDefault()}};return r.jsx("div",{"data-slot":"table-container",className:h("pr-twp tw:relative tw:w-full",{"tw:p-1":e}),children:r.jsx("table",{"data-slot":"table",tabIndex:0,ref:n,onKeyDown:i,className:h("tw:w-full tw:caption-bottom tw:text-sm","tw:outline-hidden","tw:focus:relative tw:focus:z-10 tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",t),"aria-label":"Table","aria-labelledby":"table-label",...o})})}function Kr({className:t,stickyHeader:e,...a}){return r.jsx("thead",{"data-slot":"table-header",className:h({"tw:sticky tw:top-[-1px] tw:z-20 tw:bg-background tw:drop-shadow-sm":e},"tw:[&_tr]:border-b",t),...a})}function qr({className:t,...e}){return r.jsx("tbody",{"data-slot":"table-body",className:h("tw:[&_tr:last-child]:border-0",t),...e})}function Oc({className:t,...e}){return r.jsx("tfoot",{"data-slot":"table-footer",className:h("tw:border-t tw:bg-muted/50 tw:font-medium tw:[&>tr]:last:border-b-0",t),...e})}function $c(t){l.useEffect(()=>{const e=t.current;if(!e)return;const a=o=>{if(e.contains(document.activeElement)){if(o.key==="ArrowRight"||o.key==="ArrowLeft"){o.preventDefault(),o.stopPropagation();const n=t.current?lr(t.current):[],i=n.indexOf(document.activeElement),s=o.key==="ArrowRight"?i+1:i-1;s>=0&&s{e.removeEventListener("keydown",a)}},[t])}function Ac(t,e,a){let o;return a==="ArrowLeft"&&e>0?o=t[e-1]:a==="ArrowRight"&&eo.focus()),!0):!1}function Pc(t,e,a){let o;return a==="ArrowDown"&&e0&&(o=t[e-1]),o?(requestAnimationFrame(()=>o.focus()),!0):!1}function be({className:t,onKeyDown:e,onSelect:a,setFocusAlsoRunsSelect:o=!1,ref:n,...i}){const s=l.useRef(null);l.useEffect(()=>{typeof n=="function"?n(s.current):n&&"current"in n&&(n.current=s.current)},[n]),$c(s);const c=l.useMemo(()=>s.current?lr(s.current):[],[s]),w=l.useCallback(u=>{const{current:g}=s;if(!g||!g.parentElement)return;const m=g.closest("table"),p=m?lr(m).filter(b=>b.tagName==="TR"):[],f=p.indexOf(g),y=c.indexOf(document.activeElement);if(u.key==="ArrowDown"||u.key==="ArrowUp")u.preventDefault(),Pc(p,f,u.key);else if(u.key==="ArrowLeft"||u.key==="ArrowRight")u.preventDefault(),Ac(c,y,u.key);else if(u.key==="Escape"){u.preventDefault();const b=g.closest("table");b&&b.focus()}e==null||e(u)},[s,c,e]),d=l.useCallback(u=>{o&&(a==null||a(u))},[o,a]);return r.jsx("tr",{"data-slot":"table-row",ref:s,tabIndex:-1,onKeyDown:w,onFocus:d,className:h("tw:border-b tw:transition-colors tw:hover:bg-muted/50 tw:has-aria-expanded:bg-muted/50 tw:data-[state=selected]:bg-muted","tw:outline-hidden","tw:focus:relative tw:focus:z-10 tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",t),...i})}function dr({className:t,...e}){return r.jsx("th",{"data-slot":"table-head",className:h("tw:h-10 tw:px-2 tw:text-start tw:align-middle tw:font-medium tw:whitespace-nowrap tw:text-foreground tw:[&:has([role=checkbox])]:pe-0",t),...e})}function Oe({className:t,...e}){return r.jsx("td",{"data-slot":"table-cell",className:h("tw:p-2 tw:align-middle tw:whitespace-nowrap tw:[&:has([role=checkbox])]:pe-0",t),...e})}function Lc({className:t,...e}){return r.jsx("caption",{"data-slot":"table-caption",className:h("tw:mt-4 tw:text-sm tw:text-muted-foreground",t),...e})}function Pr({className:t,...e}){return r.jsx("div",{"data-slot":"skeleton",className:h("pr-twp tw:animate-pulse tw:rounded-md tw:bg-muted",t),...e})}function Tn({columns:t,data:e,enablePagination:a=!1,showPaginationControls:o=!1,showColumnVisibilityControls:n=!1,stickyHeader:i=!1,onRowClickHandler:s=()=>{},id:c,isLoading:w=!1,noResultsMessage:d}){var E;const[u,g]=l.useState([]),[m,p]=l.useState([]),[f,y]=l.useState({}),[b,I]=l.useState({}),C=l.useMemo(()=>e??[],[e]),T=Mt.useReactTable({data:C,columns:t,getCoreRowModel:Mt.getCoreRowModel(),...a&&{getPaginationRowModel:Mt.getPaginationRowModel()},onSortingChange:g,getSortedRowModel:Mt.getSortedRowModel(),onColumnFiltersChange:p,getFilteredRowModel:Mt.getFilteredRowModel(),onColumnVisibilityChange:y,onRowSelectionChange:I,state:{sorting:u,columnFilters:m,columnVisibility:f,rowSelection:b}}),S=T.getVisibleFlatColumns();let N;return w?N=Array.from({length:10}).map((x,R)=>`skeleton-row-${R}`).map(x=>r.jsx(be,{className:"tw:hover:bg-transparent",children:r.jsx(Oe,{colSpan:S.length??t.length,className:"tw:border-0 tw:p-0",children:r.jsx("div",{className:"tw:w-full tw:py-2",children:r.jsx(Pr,{className:"tw:h-14 tw:w-full tw:rounded-md"})})})},x)):((E=T.getRowModel().rows)==null?void 0:E.length)>0?N=T.getRowModel().rows.map(z=>r.jsx(be,{onClick:()=>s(z,T),"data-state":z.getIsSelected()&&"selected",children:z.getVisibleCells().map(j=>r.jsx(Oe,{children:Mt.flexRender(j.column.columnDef.cell,j.getContext())},j.id))},z.id)):N=r.jsx(be,{children:r.jsx(Oe,{colSpan:t.length,className:"tw:h-24 tw:text-center",children:d})}),r.jsxs("div",{className:"pr-twp",id:c,children:[n&&r.jsx(Rc,{table:T}),r.jsxs(Ur,{stickyHeader:i,children:[r.jsx(Kr,{stickyHeader:i,children:T.getHeaderGroups().map(z=>r.jsx(be,{children:z.headers.map(j=>r.jsx(dr,{className:"tw:p-0",children:j.isPlaceholder?void 0:Mt.flexRender(j.column.columnDef.header,j.getContext())},j.id))},z.id))}),r.jsx(qr,{children:N})]}),a&&r.jsxs("div",{className:"tw:flex tw:items-center tw:justify-end tw:space-x-2 tw:py-4",children:[r.jsx(F,{variant:"outline",size:"sm",onClick:()=>T.previousPage(),disabled:!T.getCanPreviousPage(),children:"Previous"}),r.jsx(F,{variant:"outline",size:"sm",onClick:()=>T.nextPage(),disabled:!T.getCanNextPage(),children:"Next"})]}),a&&o&&r.jsx(Ic,{table:T})]})}function Bc(t){const e=new Map;return t.forEach(a=>{const o=e.get(a.projectId),n={scrollGroupId:a.scrollGroupId,scrollGroupScrRefLabel:a.scrollGroupScrRefLabel};o?o.some(i=>i.scrollGroupId===a.scrollGroupId)||o.push(n):e.set(a.projectId,[n])}),e.forEach(a=>a.sort((o,n)=>o.scrollGroupId-n.scrollGroupId)),e}function mo(t,e,a){return t.some(o=>o.projectId===e&&o.scrollGroupId===a)}function aa(t){const e=Bc(t.openTabs);if(t.mode==="project"){const n=t.selection.projectId;return t.projects.map(i=>{const s=e.get(i.id)??[];return{rowKey:i.id,projectId:i.id,shortName:i.shortName,fullName:i.fullName,language:i.language,languageCode:i.languageCode,scrollGroupId:void 0,scrollGroupScrRefLabel:void 0,openGroups:s.map(c=>c.scrollGroupId),isSelected:n===i.id,isMuted:s.length===0,isBoundButClosed:!1,isDisabled:i.isDisabled===!0,disabledReason:i.disabledReason}})}let a=[];t.mode==="project-multi"?a=t.selection.pairs:t.selection.projectId!==void 0&&(a=[{projectId:t.selection.projectId,scrollGroupId:t.selection.scrollGroupId}]);const o=[];return t.projects.forEach(n=>{const i=e.get(n.id);if(!i||i.length===0){o.push({rowKey:`project:${n.id}`,projectId:n.id,shortName:n.shortName,fullName:n.fullName,language:n.language,languageCode:n.languageCode,scrollGroupId:void 0,scrollGroupScrRefLabel:void 0,openGroups:[],isSelected:mo(a,n.id,void 0),isMuted:!0,isBoundButClosed:!1,isDisabled:n.isDisabled===!0,disabledReason:n.disabledReason});return}i.forEach(s=>{o.push({rowKey:`tab:${n.id}:${s.scrollGroupId}`,projectId:n.id,shortName:n.shortName,fullName:n.fullName,language:n.language,languageCode:n.languageCode,scrollGroupId:s.scrollGroupId,scrollGroupScrRefLabel:s.scrollGroupScrRefLabel,openGroups:[],isSelected:mo(a,n.id,s.scrollGroupId),isMuted:!1,isBoundButClosed:!1,isDisabled:n.isDisabled===!0,disabledReason:n.disabledReason})})}),a.forEach(n=>{if(n.scrollGroupId===void 0||o.some(s=>s.projectId===n.projectId&&s.scrollGroupId===n.scrollGroupId))return;const i=t.projects.find(s=>s.id===n.projectId);i&&o.push({rowKey:`closed:${i.id}:${n.scrollGroupId}`,projectId:i.id,shortName:i.shortName,fullName:i.fullName,language:i.language,languageCode:i.languageCode,scrollGroupId:n.scrollGroupId,scrollGroupScrRefLabel:void 0,openGroups:[],isSelected:!0,isMuted:!1,isBoundButClosed:!0,isDisabled:i.isDisabled===!0,disabledReason:i.disabledReason})}),o}function vo(t){return t.isBoundButClosed?!1:t.scrollGroupId!==void 0?!0:t.openGroups.length>0}function oa(t,e){if(t.isSelected!==e.isSelected)return t.isSelected?-1:1;const a=t.shortName.localeCompare(e.shortName,void 0,{sensitivity:"base"});if(a!==0)return a;const o=t.scrollGroupId??Number.POSITIVE_INFINITY,n=e.scrollGroupId??Number.POSITIVE_INFINITY;return o-n}function Vc(t,e){if(!e)return[{kind:"flat",rows:[...t].sort(oa)}];const a=t.filter(vo).sort(oa),o=t.filter(i=>!vo(i)).sort(oa);if(a.length===0)return[{kind:"flat",rows:o}];const n=[{kind:"openTabs",rows:a}];return o.length>0&&n.push({kind:"other",rows:o}),n}const Fc={searchPlaceholder:"Search projects & resources",filterAriaLabel:"Filter",groupSectionLabel:"Group",filterSectionLabel:"Filter",filterGroupByOpenTabs:"By open tabs",filterShowSelectedOnly:"Show selected only",openTabsSectionHeading:"Opened project & resource tabs",otherProjectsSectionHeading:"Your projects & resources",boundButClosedTooltip:"Bound to {group} · not currently open",openButtonLabel:"Open",selectAll:"Select all",clearAll:"Clear all"};function Gc(t){return{...Fc,...t}}function wr(t){return D.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS[D.getLocalizeKeyForScrollGroupId(t)]??String(t)}const Uc={backgroundImage:"linear-gradient(to top right, transparent calc(50% - 1px), currentColor calc(50% - 0.5px), currentColor calc(50% + 0.5px), transparent calc(50% + 1px))"};function Kc({scrollGroupId:t,isBoundButClosed:e}){const a=wr(t);return e?r.jsx(pe,{variant:"outline",className:"tw:relative tw:text-muted-foreground",style:Uc,children:a}):r.jsx(pe,{variant:"secondary",children:a})}function qc({row:t,mode:e,strings:a,onClick:o,onOpen:n}){const[i,s]=l.useState(!1),c=l.useRef(null),w=!!(t.language||t.languageCode),d=w||!!t.scrollGroupScrRefLabel||t.isBoundButClosed||t.isDisabled&&!!t.disabledReason,u=l.useCallback(()=>{if(d){s(!0);return}const b=c.current;b&&b.scrollWidth>b.clientWidth&&s(!0)},[d]),g=r.jsx($.Check,{className:h("tw:h-4 tw:w-4",t.isSelected?"tw:opacity-100":"tw:opacity-0")});let m;e==="project"?t.openGroups.length>0&&(m=r.jsx("span",{className:"tw:ms-auto tw:flex tw:shrink-0 tw:gap-1",children:t.openGroups.map(b=>r.jsx(pe,{variant:"secondary",children:wr(b)},b))})):t.scrollGroupId!==void 0&&(m=r.jsxs("span",{className:"tw:ms-auto tw:flex tw:shrink-0 tw:items-center tw:gap-2",children:[r.jsx(Kc,{scrollGroupId:t.scrollGroupId,isBoundButClosed:t.isBoundButClosed}),t.isBoundButClosed&&n&&r.jsxs(F,{size:"sm",variant:"ghost",className:"tw:h-6 tw:gap-1 tw:px-2 tw:text-xs",onClick:b=>{b.stopPropagation(),n(t)},onMouseDown:b=>b.stopPropagation(),"aria-label":a.openButtonLabel,title:a.openButtonLabel,children:[r.jsx($.ArrowRight,{className:"tw:h-3 tw:w-3"}),a.openButtonLabel]})]}));const p=r.jsxs(ie,{value:`${t.rowKey} ${t.shortName} ${t.fullName} ${t.language??""} ${t.languageCode??""}`,onSelect:()=>{t.isDisabled||o(t)},disabled:t.isDisabled,onPointerEnter:u,onPointerLeave:()=>s(!1),className:"tw:flex tw:items-center tw:gap-2 tw:pe-4","data-selected":t.isSelected,children:[r.jsx("span",{className:"tw:flex tw:h-4 tw:w-4 tw:shrink-0 tw:items-center tw:justify-center",children:g}),r.jsxs("span",{ref:c,className:"tw:min-w-0 tw:flex-1 tw:truncate tw:text-start",children:[r.jsx("span",{children:t.shortName}),r.jsxs("span",{className:"tw:text-muted-foreground",children:[" • ",t.fullName]})]}),m]}),f=t.scrollGroupId!==void 0?wr(t.scrollGroupId):void 0,y=t.isBoundButClosed&&f?a.boundButClosedTooltip.replace("{group}",f):void 0;return r.jsxs($t,{open:i,delayDuration:400,children:[r.jsx(At,{asChild:!0,children:p}),r.jsxs(Pt,{side:"top",align:"center",sideOffset:8,collisionPadding:16,className:"tw:max-w-xs tw:text-center",style:{zIndex:Vr},children:[r.jsx("div",{className:"tw:font-semibold",children:t.fullName}),w&&r.jsxs("div",{className:"tw:text-sm",children:[t.language,t.languageCode&&r.jsxs("span",{className:"tw:text-muted-foreground",children:[" (",t.languageCode,")"]})]}),!t.isBoundButClosed&&t.scrollGroupScrRefLabel&&f&&r.jsxs("div",{className:"tw:text-sm",children:[t.scrollGroupScrRefLabel,r.jsxs("span",{className:"tw:text-muted-foreground",children:[" (",f,")"]})]}),y&&r.jsx("div",{className:"tw:text-sm tw:italic",children:y}),t.isDisabled&&t.disabledReason&&r.jsx("div",{className:"tw:text-sm tw:italic tw:text-muted-foreground",children:t.disabledReason})]})]})}function Hc({groupByOpenTabs:t,onChangeGroupByOpenTabs:e,showSelectedOnly:a,onChangeShowSelectedOnly:o,strings:n}){const i=!!a;return r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"ghost",size:"sm",className:h("tw:h-8 tw:w-8 tw:shrink-0 tw:p-0",i&&"tw:bg-accent tw:text-accent-foreground tw:hover:bg-accent/80 tw:data-[state=open]:bg-accent"),"aria-label":n.filterAriaLabel,"aria-pressed":i,title:n.filterAriaLabel,onMouseDown:s=>s.preventDefault(),children:r.jsx($.Filter,{className:"tw:h-4 tw:w-4"})})}),r.jsxs(ne,{align:"end",className:"tw:w-56",style:{zIndex:Vr},children:[r.jsx(Ee,{children:n.groupSectionLabel}),r.jsx(ee,{checked:t,onCheckedChange:e,onSelect:s=>s.preventDefault(),children:n.filterGroupByOpenTabs}),o&&r.jsxs(r.Fragment,{children:[r.jsx(ye,{}),r.jsx(Ee,{children:n.filterSectionLabel}),r.jsx(ee,{checked:!!a,onCheckedChange:o,onSelect:s=>s.preventDefault(),children:n.filterShowSelectedOnly})]})]})]})}function Rn(t){const[e,a]=l.useState(!1),[o,n]=l.useState(""),[i,s]=l.useState(t.defaultGroupByOpenTabs??!0),[c,w]=l.useState(!1),d=Gc(t.localizedStrings),u=l.useMemo(()=>t.mode==="project"?aa({mode:"project",projects:t.projects,openTabs:t.openTabs,selection:t.selection}):t.mode==="project-multi"?aa({mode:"project-multi",projects:t.projects,openTabs:t.openTabs,selection:t.selection}):aa({mode:"projectScrollGroup",projects:t.projects,openTabs:t.openTabs,selection:t.selection}),[t.mode,t.projects,t.openTabs,t.selection]),g=l.useMemo(()=>{const N=o.trim().toLowerCase();let E=u;return N&&(E=E.filter(z=>z.shortName.toLowerCase().includes(N)||z.fullName.toLowerCase().includes(N)||(z.language??"").toLowerCase().includes(N)||(z.languageCode??"").toLowerCase().includes(N))),t.mode==="project-multi"&&c&&(E=E.filter(z=>z.isSelected)),E},[u,o,t.mode,c]),m=l.useMemo(()=>Vc(g,i),[g,i]),p=l.useMemo(()=>{if(t.mode!=="project-multi")return[];const N=[];return t.projects.forEach(E=>{const z=t.openTabs.filter(x=>x.projectId===E.id);if(z.length===0){N.push({projectId:E.id});return}const j=new Set;z.forEach(x=>{j.has(x.scrollGroupId)||(j.add(x.scrollGroupId),N.push({projectId:E.id,scrollGroupId:x.scrollGroupId}))})}),N},[t.mode,t.projects,t.openTabs]),f=N=>{if(N.scrollGroupId!==void 0){if(t.mode==="projectScrollGroup"){t.onOpenProjectInGroup(N.projectId,N.scrollGroupId);return}t.mode==="project-multi"&&t.onOpenProjectInGroup&&t.onOpenProjectInGroup(N.projectId,N.scrollGroupId)}},y=N=>{switch(t.mode){case"project":{t.onChangeSelection({projectId:N.projectId}),a(!1);return}case"project-multi":{const E=t.selection.pairs,z=x=>x.projectId===N.projectId&&x.scrollGroupId===N.scrollGroupId,j=E.some(z)?E.filter(x=>!z(x)):[...E,{projectId:N.projectId,scrollGroupId:N.scrollGroupId}];t.onChangeSelection({pairs:j}),j.length===0&&c&&w(!1);return}case"projectScrollGroup":{if(N.isBoundButClosed&&N.scrollGroupId!==void 0){t.onOpenProjectInGroup(N.projectId,N.scrollGroupId),a(!1);return}if(N.scrollGroupId!==void 0){t.onChangeSelection({projectId:N.projectId,scrollGroupId:N.scrollGroupId}),a(!1);return}const E=t.selection.scrollGroupId??0;t.onChangeSelection({projectId:N.projectId,scrollGroupId:E}),t.onOpenProjectInGroup(N.projectId,E),a(!1)}}},b=()=>{if(t.mode!=="project-multi")return;const N=t.selection.pairs,E=new Set(N.map(j=>`${j.projectId}:${j.scrollGroupId??""}`)),z=[...N];p.forEach(j=>{const x=`${j.projectId}:${j.scrollGroupId??""}`;E.has(x)||(E.add(x),z.push(j))}),t.onChangeSelection({pairs:z})},I=()=>{t.mode==="project-multi"&&(t.onChangeSelection({pairs:[]}),c&&w(!1))},C=l.useMemo(()=>{switch(t.mode){case"project":{const N=t.projects.find(z=>z.id===t.selection.projectId),E=N?N.shortName:t.buttonPlaceholder??"";return{node:E,title:E}}case"project-multi":{const{pairs:N}=t.selection;if(N.length===0){const x=t.buttonPlaceholder??"";return{node:x,title:x}}const E=[];if(N.forEach(x=>{const R=t.projects.find(P=>P.id===x.projectId);R&&E.push({project:R,scrollGroupId:x.scrollGroupId})}),E.length===0){const x=t.buttonPlaceholder??"";return{node:x,title:x}}if(t.getSelectedText){const x=t.getSelectedText(E);return{node:x,title:x}}const z=E.map(({project:x,scrollGroupId:R})=>R===void 0?x.shortName:`${x.shortName} (${wr(R)})`).join(", ");if(E.length===1)return{node:z,title:z};const j=E.length.toString();return{node:r.jsxs(r.Fragment,{children:[r.jsx(pe,{variant:"muted",className:"tw:shrink-0",children:j}),r.jsx("span",{className:"tw:min-w-0 tw:truncate",children:z})]}),title:`${j} ${z}`}}case"projectScrollGroup":{const N=t.projects.find(j=>j.id===t.selection.projectId);if(!N){const j=t.buttonPlaceholder??"";return{node:j,title:j}}const E=t.selection.scrollGroupId;if(E===void 0)return{node:N.shortName,title:N.shortName};const z=`${N.shortName} · ${wr(E)}`;return{node:z,title:z}}default:return{node:"",title:""}}},[t]),T=t.mode==="project-multi"?r.jsx($.ChevronsUpDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"}):r.jsx($.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"}),S=t.mode==="projectScrollGroup"||t.mode==="project-multi"&&t.onOpenProjectInGroup?f:void 0;return r.jsxs(se,{open:e,onOpenChange:a,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:t.buttonVariant??"outline",role:"combobox","aria-expanded":e,"aria-label":t.ariaLabel,disabled:t.isDisabled??!1,className:h("tw:flex tw:w-[180px] tw:items-center tw:justify-between tw:overflow-hidden",t.buttonClassName),children:[r.jsx("span",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:items-baseline tw:gap-2 tw:overflow-hidden tw:whitespace-nowrap tw:text-start",children:typeof C.node=="string"?r.jsx("span",{className:"tw:min-w-0 tw:truncate",children:C.node}):C.node}),T]})}),r.jsx(ce,{align:t.alignDropDown??"start",collisionPadding:16,className:h("tw:w-80 tw:max-w-[calc(100vw-2rem)] tw:p-0",t.popoverContentClassName),style:t.popoverContentStyle,children:r.jsx(Ot,{delayDuration:400,children:r.jsxs(he,{shouldFilter:!1,children:[r.jsxs("div",{className:"tw:flex tw:items-center tw:border-b tw:pe-2",children:[r.jsx("div",{className:"tw:flex-1",children:r.jsx(Fe,{value:o,onValueChange:n,placeholder:d.searchPlaceholder,className:"tw:border-0"})}),r.jsx(Hc,{groupByOpenTabs:i,onChangeGroupByOpenTabs:s,showSelectedOnly:t.mode==="project-multi"?c:void 0,onChangeShowSelectedOnly:t.mode==="project-multi"?w:void 0,strings:d})]}),t.mode==="project-multi"&&r.jsxs("div",{className:"tw:flex tw:justify-between tw:border-b tw:py-2 tw:pe-4 tw:ps-2",children:[r.jsx(F,{variant:"ghost",size:"sm",onClick:b,children:`${d.selectAll} (${p.length.toString()})`}),r.jsx(F,{variant:"ghost",size:"sm",onClick:I,children:`${d.clearAll} (${t.selection.pairs.length.toString()})`})]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:t.commandEmptyMessage??"No projects found"}),m.map((N,E)=>r.jsxs(l.Fragment,{children:[r.jsx(re,{heading:Yc(N,d),children:N.rows.map(z=>r.jsx(qc,{row:z,mode:t.mode,strings:d,onClick:y,onOpen:S},z.rowKey))}),E({overrides:{a:{props:{target:o}}}}),[o]);return r.jsx("div",{id:t,className:h("pr-twp tw:prose",{"tw:line-clamp-3 tw:max-h-10 tw:overflow-hidden tw:text-ellipsis tw:break-words":n},a),children:r.jsx(bi,{options:i,children:e})})}const zn=Object.freeze(["%webView_error_dump_header%","%webView_error_dump_info_message%"]),bo=(t,e)=>t[e]??e;function Dn({errorDetails:t,handleCopyNotify:e,localizedStrings:a,id:o}){const n=bo(a,"%webView_error_dump_header%"),i=bo(a,"%webView_error_dump_info_message%");function s(){navigator.clipboard.writeText(t),e&&e()}return r.jsxs("div",{id:o,className:"tw:inline-flex tw:w-full tw:flex-col tw:items-start tw:justify-start tw:gap-4",children:[r.jsxs("div",{className:"tw:inline-flex tw:items-start tw:justify-start tw:gap-4 tw:self-stretch",children:[r.jsxs("div",{className:"tw:inline-flex tw:flex-1 tw:flex-col tw:items-start tw:justify-start",children:[r.jsx("div",{className:"tw:text-color-text tw:justify-center tw:text-center tw:text-lg tw:font-semibold tw:leading-loose",children:n}),r.jsx("div",{className:"tw:justify-center tw:self-stretch tw:text-sm tw:font-normal tw:leading-tight tw:text-muted-foreground",children:i})]}),r.jsx(F,{variant:"secondary",size:"icon",className:"size-8",onClick:()=>s(),children:r.jsx($.Copy,{})})]}),r.jsx("div",{className:"tw:prose tw:w-full",children:r.jsx("pre",{className:"tw:text-xs",children:t})})]})}const Xc=Object.freeze([...zn,"%webView_error_dump_copied_message%"]);function Zc({errorDetails:t,handleCopyNotify:e,localizedStrings:a,children:o,className:n,id:i}){const[s,c]=l.useState(!1),w=()=>{c(!0),e&&e()},d=u=>{u||c(!1)};return r.jsxs(se,{onOpenChange:d,children:[r.jsx(me,{asChild:!0,children:o}),r.jsxs(ce,{id:i,className:h("tw:min-w-80 tw:max-w-96",n),children:[s&&a["%webView_error_dump_copied_message%"]&&r.jsx(yt,{children:a["%webView_error_dump_copied_message%"]}),r.jsx(Dn,{errorDetails:t,handleCopyNotify:w,localizedStrings:a})]})]})}var In=(t=>(t[t.Check=0]="Check",t[t.Radio=1]="Radio",t))(In||{});function Jc({id:t,label:e,groups:a}){const[o,n]=l.useState(Object.fromEntries(a.map((d,u)=>d.itemType===0?[u,[]]:void 0).filter(d=>!!d))),[i,s]=l.useState({}),c=(d,u)=>{const g=!o[d][u];n(p=>(p[d][u]=g,{...p}));const m=a[d].items[u];m.onUpdate(m.id,g)},w=(d,u)=>{s(m=>(m[d]=u,{...m}));const g=a[d].items.find(m=>m.id===u);g?g.onUpdate(u):console.error(`Could not find dropdown radio item with id '${u}'!`)};return r.jsx("div",{id:t,children:r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsxs(F,{variant:"default",children:[r.jsx($.Filter,{size:16,className:"tw:mr-2 tw:h-4 tw:w-4"}),e,r.jsx($.ChevronDown,{size:16,className:"tw:ml-2 tw:h-4 tw:w-4"})]})}),r.jsx(ne,{children:a.map((d,u)=>r.jsxs("div",{children:[r.jsx(Ee,{children:d.label}),r.jsx(La,{children:d.itemType===0?r.jsx(r.Fragment,{children:d.items.map((g,m)=>r.jsx("div",{children:r.jsx(ee,{checked:o[u][m],onCheckedChange:()=>c(u,m),children:g.label})},g.id))}):r.jsx(yn,{value:i[u],onValueChange:g=>w(u,g),children:d.items.map(g=>r.jsx("div",{children:r.jsx(kn,{value:g.id,children:g.label})},g.id))})}),r.jsx(ye,{})]},d.label))})]})})}function Qc({id:t,category:e,downloads:a,languages:o,moreInfoUrl:n,handleMoreInfoLinkClick:i,supportUrl:s,handleSupportLinkClick:c}){const w=new D.NumberFormat("en",{notation:"compact",compactDisplay:"short"}).format(Object.values(a).reduce((u,g)=>u+g,0)),d=()=>{window.scrollTo(0,document.body.scrollHeight)};return r.jsxs("div",{id:t,className:"pr-twp tw:flex tw:items-center tw:justify-center tw:gap-4 tw:divide-x tw:border-b tw:border-t tw:py-2 tw:text-center",children:[e&&r.jsxs("div",{className:"tw:flex tw:flex-col tw:items-center tw:gap-1",children:[r.jsx("div",{className:"tw:flex",children:r.jsx("span",{className:"tw:text-xs tw:font-semibold tw:text-foreground",children:e})}),r.jsx("span",{className:"tw:text-xs tw:text-foreground",children:"CATEGORY"})]}),r.jsxs("div",{className:"tw:flex tw:flex-col tw:items-center tw:gap-1 tw:ps-4",children:[r.jsxs("div",{className:"tw:flex tw:gap-1",children:[r.jsx($.User,{className:"tw:h-4 tw:w-4"}),r.jsx("span",{className:"tw:text-xs tw:font-semibold tw:text-foreground",children:w})]}),r.jsx("span",{className:"tw:text-xs tw:text-foreground",children:"USERS"})]}),r.jsxs("div",{className:"tw:flex tw:flex-col tw:items-center tw:gap-1 tw:ps-4",children:[r.jsx("div",{className:"tw:flex tw:gap-2",children:o.slice(0,3).map(u=>r.jsx("span",{className:"tw:text-xs tw:font-semibold tw:text-foreground",children:u.toUpperCase()},u))}),o.length>3&&r.jsxs("button",{type:"button",onClick:()=>d(),className:"tw:text-xs tw:text-foreground tw:underline",children:["+",o.length-3," more languages"]})]}),(n||s)&&r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-1 tw:ps-4",children:[n&&r.jsx("div",{className:"tw:flex tw:gap-1",children:r.jsxs(F,{onClick:()=>i(),variant:"link",className:"tw:flex tw:h-auto tw:gap-1 tw:py-0 tw:text-xs tw:font-semibold tw:text-foreground",children:["Website",r.jsx($.Link,{className:"tw:h-4 tw:w-4"})]})}),s&&r.jsx("div",{className:"tw:flex tw:gap-1",children:r.jsxs(F,{onClick:()=>c(),variant:"link",className:"tw:flex tw:h-auto tw:gap-1 tw:py-0 tw:text-xs tw:font-semibold tw:text-foreground",children:["Support",r.jsx($.CircleHelp,{className:"tw:h-4 tw:w-4"})]})})]})]})}function tl({id:t,versionHistory:e}){const[a,o]=l.useState(!1),n=new Date;function i(c){const w=new Date(c),d=new Date(n.getTime()-w.getTime()),u=d.getUTCFullYear()-1970,g=d.getUTCMonth(),m=d.getUTCDate()-1;let p="";return u>0?p=`${u.toString()} year${u===1?"":"s"} ago`:g>0?p=`${g.toString()} month${g===1?"":"s"} ago`:m===0?p="today":p=`${m.toString()} day${m===1?"":"s"} ago`,p}const s=Object.entries(e).sort((c,w)=>w[0].localeCompare(c[0]));return r.jsxs("div",{className:"pr-twp",id:t,children:[r.jsx("h3",{className:"tw:text-md tw:font-semibold",children:"What`s New"}),r.jsx("ul",{className:"tw:list-disc tw:pl-5 tw:pr-4 tw:text-xs tw:text-foreground",children:(a?s:s.slice(0,5)).map(c=>r.jsxs("div",{className:"tw:mt-3 tw:flex tw:justify-between",children:[r.jsx("div",{className:"tw:text-foreground",children:r.jsx("li",{className:"tw:prose tw:text-xs",children:r.jsx("span",{children:c[1].description})})}),r.jsxs("div",{className:"tw:justify-end tw:text-right",children:[r.jsxs("div",{children:["Version ",c[0]]}),r.jsx("div",{children:i(c[1].date)})]})]},c[0]))}),s.length>5&&r.jsx("button",{type:"button",onClick:()=>o(!a),className:"tw:text-xs tw:text-foreground tw:underline",children:a?"Show Less Version History":"Show All Version History"})]})}function el({id:t,publisherDisplayName:e,fileSize:a,locales:o,versionHistory:n,currentVersion:i}){const s=l.useMemo(()=>D.formatBytes(a),[a]),w=(d=>{const u=new Intl.DisplayNames(D.getCurrentLocale(),{type:"language"});return d.map(g=>u.of(g))})(o);return r.jsx("div",{id:t,className:"pr-twp tw:border-t tw:py-2",children:r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-2 tw:divide-y",children:[Object.entries(n).length>0&&r.jsx(tl,{versionHistory:n}),r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-2 tw:py-2",children:[r.jsx("h2",{className:"tw:text-md tw:font-semibold",children:"Information"}),r.jsxs("div",{className:"tw:flex tw:items-start tw:justify-between tw:text-xs tw:text-foreground",children:[r.jsxs("p",{className:"tw:flex tw:flex-col tw:justify-start tw:gap-1",children:[r.jsx("span",{children:"Publisher"}),r.jsx("span",{className:"tw:font-semibold",children:e}),r.jsx("span",{children:"Size"}),r.jsx("span",{className:"tw:font-semibold",children:s})]}),r.jsx("div",{className:"tw:flex tw:w-3/4 tw:items-center tw:justify-between tw:text-xs tw:text-foreground",children:r.jsxs("p",{className:"tw:flex tw:flex-col tw:justify-start tw:gap-1",children:[r.jsx("span",{children:"Version"}),r.jsx("span",{className:"tw:font-semibold",children:i}),r.jsx("span",{children:"Languages"}),r.jsx("span",{className:"tw:font-semibold",children:w.join(", ")})]})})]})]})]})})}function Mn({entries:t,selected:e,onChange:a,placeholder:o,hasToggleAllFeature:n=!1,selectAllText:i="Select All",clearAllText:s="Clear All",commandEmptyMessage:c="No entries found",customSelectedText:w,isOpen:d=void 0,onOpenChange:u=void 0,isDisabled:g=!1,sortSelected:m=!1,icon:p=void 0,className:f=void 0,variant:y="ghost",id:b}){const[I,C]=l.useState(!1),T=l.useCallback(R=>{var G;const P=(G=t.find(K=>K.label===R))==null?void 0:G.value;P&&a(e.includes(P)?e.filter(K=>K!==P):[...e,P])},[t,e,a]),S=()=>w||o,N=l.useMemo(()=>{if(!m)return t;const R=t.filter(G=>G.starred).sort((G,K)=>G.label.localeCompare(K.label)),P=t.filter(G=>!G.starred).sort((G,K)=>{const V=e.includes(G.value),q=e.includes(K.value);return V&&!q?-1:!V&&q?1:G.label.localeCompare(K.label)});return[...R,...P]},[t,e,m]),E=()=>{a(t.map(R=>R.value))},z=()=>{a([])},j=d??I,x=u??C;return r.jsx("div",{id:b,className:f,children:r.jsxs(se,{open:j,onOpenChange:x,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:y,role:"combobox","aria-expanded":j,className:"tw:group tw:w-full tw:justify-between",disabled:g,children:[r.jsxs("div",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:items-center tw:gap-2",children:[p&&r.jsx("div",{className:"tw:ml-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50",children:r.jsx("span",{className:"tw:flex tw:h-full tw:w-full tw:items-center tw:justify-center",children:p})}),r.jsx("span",{className:h("tw:min-w-0 tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:text-start tw:font-normal"),children:S()})]}),r.jsx($.ChevronsUpDown,{className:"tw:ml-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ce,{align:"start",className:"tw:w-full tw:p-0",children:r.jsxs(he,{children:[r.jsx(Fe,{placeholder:`Search ${o.toLowerCase()}...`}),n&&r.jsxs("div",{className:"tw:flex tw:justify-between tw:border-b tw:p-2",children:[r.jsx(F,{variant:"ghost",size:"sm",onClick:E,children:i}),r.jsx(F,{variant:"ghost",size:"sm",onClick:z,children:s})]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:c}),r.jsx(re,{children:N.map(R=>r.jsxs(ie,{value:R.label,onSelect:T,className:"tw:flex tw:items-center tw:gap-2",children:[r.jsx("div",{className:"w-4",children:r.jsx($.Check,{className:h("tw:h-4 tw:w-4",e.includes(R.value)?"tw:opacity-100":"tw:opacity-0")})}),R.starred&&r.jsx($.Star,{className:"tw:h-4 tw:w-4"}),r.jsx("div",{className:"tw:flex-grow",children:R.label}),R.secondaryLabel&&r.jsx("div",{className:"tw:text-end tw:text-muted-foreground",children:R.secondaryLabel})]},R.label))})]})]})})]})})}function rl({entries:t,selected:e,onChange:a,placeholder:o,commandEmptyMessage:n,customSelectedText:i,isDisabled:s,sortSelected:c,icon:w,className:d,badgesPlaceholder:u,id:g}){return r.jsxs("div",{id:g,className:"tw:flex tw:items-center tw:gap-2",children:[r.jsx(Mn,{entries:t,selected:e,onChange:a,placeholder:o,commandEmptyMessage:n,customSelectedText:i,isDisabled:s,sortSelected:c,icon:w,className:d}),e.length>0?r.jsx("div",{className:"tw:flex tw:flex-wrap tw:items-center tw:gap-2",children:e.map(m=>{var p;return r.jsxs(pe,{variant:"muted",className:"tw:flex tw:items-center tw:gap-1",children:[r.jsx(F,{variant:"ghost",size:"icon",className:"tw:h-4 tw:w-4 tw:p-0 tw:hover:bg-transparent",onClick:()=>a(e.filter(f=>f!==m)),children:r.jsx($.X,{className:"tw:h-3 tw:w-3"})}),(p=t.find(f=>f.value===m))==null?void 0:p.label]},m)})}):r.jsx(yt,{children:u})]})}function ha({className:t,...e}){return r.jsx("kbd",{"data-slot":"kbd",className:h("pr-twp tw:pointer-events-none tw:inline-flex tw:h-5 tw:w-fit tw:min-w-5 tw:items-center tw:justify-center tw:gap-1 tw:rounded-sm tw:bg-muted tw:px-1 tw:font-sans tw:text-xs tw:font-medium tw:text-muted-foreground tw:select-none tw:in-data-[slot=tooltip-content]:bg-background/20 tw:in-data-[slot=tooltip-content]:text-background tw:dark:in-data-[slot=tooltip-content]:bg-background/10 tw:[&_svg:not([class*=size-])]:size-3",t),...e})}const On=Object.freeze(["%undoButton_tooltip%","%redoButton_tooltip%"]),xo=(t,e)=>t[e]??e;function $n({onUndoClick:t,onRedoClick:e,canUndo:a=!0,canRedo:o=!0,localizedStrings:n={},showKeyboardShortcuts:i=!0,className:s="tw:h-6 tw:w-6",variant:c="ghost"}){const w=l.useMemo(()=>/Macintosh/i.test(navigator.userAgent),[]),d=xo(n,"%undoButton_tooltip%"),u=xo(n,"%redoButton_tooltip%"),g=c==="secondary"||c==="default";return r.jsxs(Gr,{children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":d,className:s,size:"icon",onClick:t,disabled:!a,variant:c,children:r.jsx($.Undo,{})})}),r.jsx(Pt,{children:r.jsxs("p",{children:[d,i&&r.jsxs(r.Fragment,{children:[" ",r.jsx(ha,{children:w?"⌘Z":"Ctrl+Z"})]})]})})]})}),e&&g&&r.jsx(Ma,{}),e&&r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":u,className:s,size:"icon",onClick:e,disabled:!o,variant:c,children:r.jsx($.Redo,{})})}),r.jsx(Pt,{children:r.jsxs("p",{children:[u,i&&r.jsxs(r.Fragment,{children:[" ",r.jsx(ha,{children:w?"⌘⇧Z":"Ctrl+Y"})]})]})})]})})]})}function An({children:t,editorRef:e,canUndo:a=!0,canRedo:o=!0}){const n=l.useRef(null);return l.useEffect(()=>{var w;const i=/Macintosh/i.test(navigator.userAgent),s=((w=n.current)==null?void 0:w.querySelector(".editor-input"))??void 0,c=d=>{var g,m,p,f;if(!s||document.activeElement!==s)return;const u=d.key.toLowerCase();if(i){if(!d.metaKey)return;!d.shiftKey&&u==="z"?(d.preventDefault(),a&&((g=e.current)==null||g.undo())):d.shiftKey&&u==="z"&&(d.preventDefault(),o&&((m=e.current)==null||m.redo()))}else{if(!d.ctrlKey)return;!d.shiftKey&&u==="z"?(d.preventDefault(),a&&((p=e.current)==null||p.undo())):(u==="y"||d.shiftKey&&u==="z")&&(d.preventDefault(),o&&((f=e.current)==null||f.redo()))}};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[o,a,e]),r.jsx("div",{ref:n,children:t})}const al=(t,e,a)=>t==="generated"?r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"+"})," ",e["%footnoteEditor_callerDropdown_item_generated%"]]}):t==="hidden"?r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"-"})," ",e["%footnoteEditor_callerDropdown_item_hidden%"]]}):r.jsxs(r.Fragment,{children:[r.jsx("p",{children:a})," ",e["%footnoteEditor_callerDropdown_item_custom%"]]});function ol({callerType:t,updateCallerType:e,customCaller:a,updateCustomCaller:o,localizedStrings:n}){const i=l.useRef(null),s=l.useRef(null),c=l.useRef(!1),[w,d]=l.useState(t),[u,g]=l.useState(a),[m,p]=l.useState(!1);l.useEffect(()=>{d(t)},[t]),l.useEffect(()=>{u!==a&&g(a)},[a]);const f=b=>{c.current=!1,p(b),b||(w!=="custom"||u?(e(w),o(u)):(d(t),g(a)))},y=b=>{var I,C,T,S;b.stopPropagation(),document.activeElement===s.current&&b.key==="ArrowDown"||b.key==="ArrowRight"?((I=i.current)==null||I.focus(),c.current=!0):document.activeElement===i.current&&b.key==="ArrowUp"?((C=s.current)==null||C.focus(),c.current=!1):document.activeElement===i.current&&b.key==="ArrowLeft"&&((T=i.current)==null?void 0:T.selectionStart)===0&&((S=s.current)==null||S.focus(),c.current=!1),w==="custom"&&b.key==="Enter"&&(document.activeElement===s.current||document.activeElement===i.current)&&f(!1)};return r.jsxs(ae,{open:m,onOpenChange:f,children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"outline",className:"tw:h-6",children:al(t,n,a)})})}),r.jsx(Pt,{children:n["%footnoteEditor_callerDropdown_tooltip%"]})]})}),r.jsxs(ne,{style:{zIndex:xa},onClick:()=>{c.current&&(c.current=!1)},onKeyDown:y,onMouseMove:()=>{var b;c.current&&((b=i.current)==null||b.focus())},children:[r.jsx(Ee,{children:n["%footnoteEditor_callerDropdown_label%"]}),r.jsx(ye,{}),r.jsx(ee,{checked:w==="generated",onCheckedChange:()=>d("generated"),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:justify-between",children:[r.jsx("span",{children:n["%footnoteEditor_callerDropdown_item_generated%"]}),r.jsx("span",{className:"tw:w-10 tw:text-center",children:Xt.GENERATOR_NOTE_CALLER})]})}),r.jsx(ee,{checked:w==="hidden",onCheckedChange:()=>d("hidden"),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:justify-between",children:[r.jsx("span",{children:n["%footnoteEditor_callerDropdown_item_hidden%"]}),r.jsx("span",{className:"tw:w-10 tw:text-center",children:Xt.HIDDEN_NOTE_CALLER})]})}),r.jsx(ee,{ref:s,checked:w==="custom",onCheckedChange:()=>d("custom"),onClick:b=>{var I;b.stopPropagation(),c.current=!0,(I=i.current)==null||I.focus()},onSelect:b=>b.preventDefault(),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:justify-between",children:[r.jsx("span",{children:n["%footnoteEditor_callerDropdown_item_custom%"]}),r.jsx(Xe,{tabIndex:0,onMouseDown:b=>{b.stopPropagation(),d("custom"),c.current=!0},ref:i,className:"tw:h-auto tw:w-10 tw:p-0 tw:text-center",value:u,onKeyDown:b=>{b.key==="Enter"||b.key==="ArrowUp"||b.key==="ArrowDown"||b.key==="ArrowLeft"||b.key==="ArrowRight"||b.stopPropagation()},maxLength:1,onChange:b=>g(b.target.value)})]})})]})]})}const nl=(t,e)=>t==="f"?r.jsxs(r.Fragment,{children:[r.jsx($.FunctionSquare,{})," ",e["%footnoteEditor_noteType_footnote_label%"]]}):t==="fe"?r.jsxs(r.Fragment,{children:[r.jsx($.SquareSigma,{})," ",e["%footnoteEditor_noteType_endNote_label%"]]}):r.jsxs(r.Fragment,{children:[r.jsx($.SquareX,{})," ",e["%footnoteEditor_noteType_crossReference_label%"]]}),il=(t,e)=>{if(t==="x")return e["%footnoteEditor_noteType_crossReference_label%"];let a=e["%footnoteEditor_noteType_endNote_label%"];return t==="f"&&(a=e["%footnoteEditor_noteType_footnote_label%"]),D.formatReplacementString(e["%footnoteEditor_noteType_tooltip%"]??"",{noteType:a})};function sl({noteType:t,handleNoteTypeChange:e,localizedStrings:a,isTypeSwitchable:o}){return r.jsxs(ae,{children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"outline",className:"tw:h-6",children:nl(t,a)})})}),r.jsx(Pt,{children:r.jsx("p",{children:il(t,a)})})]})}),r.jsxs(ne,{style:{zIndex:xa},children:[r.jsx(Ee,{children:a["%footnoteEditor_noteTypeDropdown_label%"]}),r.jsx(ye,{}),r.jsxs(ee,{disabled:t!=="x"&&!o,checked:t==="x",onCheckedChange:()=>e("x"),className:"tw:gap-2",children:[r.jsx($.SquareX,{}),r.jsx("span",{children:a["%footnoteEditor_noteType_crossReference_label%"]})]}),r.jsxs(ee,{disabled:t==="x"&&!o,checked:t==="f",onCheckedChange:()=>e("f"),className:"tw:gap-2",children:[r.jsx($.FunctionSquare,{}),r.jsx("span",{children:a["%footnoteEditor_noteType_footnote_label%"]})]}),r.jsxs(ee,{disabled:t==="x"&&!o,checked:t==="fe",onCheckedChange:()=>e("fe"),className:"tw:gap-2",children:[r.jsx($.SquareSigma,{}),r.jsx("span",{children:a["%footnoteEditor_noteType_endNote_label%"]})]})]})]})}const Pn=Object.freeze(["%markerMenu_deprecated_label%","%markerMenu_disallowed_label%","%markerMenu_noResults%","%markerMenu_searchPlaceholder%"]);function cl({icon:t,className:e}){const a=t??$.Ban;return r.jsx(a,{className:e,size:16})}function yo({item:t,localizedStrings:e}){return r.jsxs(ie,{className:"tw:flex tw:gap-2 tw:hover:bg-accent",disabled:t.isDisallowed||t.isDeprecated,onSelect:t.action,children:[r.jsx("div",{className:"tw:w-8 tw:min-w-8",children:t.marker?r.jsx("span",{className:"tw:text-xs",children:t.marker}):r.jsx("div",{children:r.jsx(cl,{icon:t.icon})})}),r.jsxs("div",{children:[r.jsx("p",{className:"tw:text-sm",children:t.title}),t.subtitle&&r.jsx("p",{className:"tw:text-xs tw:text-muted-foreground",children:t.subtitle})]}),(t.isDisallowed||t.isDeprecated)&&r.jsx(Oi,{className:"tw:font-sans",children:t.isDisallowed?e["%markerMenu_disallowed_label%"]:e["%markerMenu_deprecated_label%"]})]})}function Ln({localizedStrings:t,markerMenuItems:e,searchRef:a}){const[o,n]=l.useState(""),[i,s]=l.useMemo(()=>{const c=o.trim().toLowerCase();if(!c)return[e,[]];const w=e.filter(u=>{var g;return(g=u.marker)==null?void 0:g.toLowerCase().includes(c)}),d=e.filter(u=>u.title.toLowerCase().includes(c)&&!w.includes(u));return[w,d]},[o,e]);return r.jsxs(he,{className:"tw:p-1",shouldFilter:!1,loop:!0,children:[r.jsx(Fe,{className:"marker-menu-search",ref:a,value:o,onValueChange:c=>n(c),placeholder:t["%markerMenu_searchPlaceholder%"]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:t["%markerMenu_noResults%"]}),r.jsx(re,{children:i.map(c=>{var w;return r.jsx(yo,{item:c,localizedStrings:t},`item-${c.marker??((w=c.icon)==null?void 0:w.displayName)}-${c.title.replaceAll(" ","")}`)})}),s.length>0&&r.jsxs(r.Fragment,{children:[i.length>0&&r.jsx(ka,{alwaysRender:!0}),r.jsx(re,{children:s.map(c=>{var w;return r.jsx(yo,{item:c,localizedStrings:t},`item-${c.marker??((w=c.icon)==null?void 0:w.displayName)}-${c.title.replaceAll(" ","")}`)})})]})]})]})}function ll(t,e,a,o){if(!o||o==="p")return[];const n=D.usfmMarkers[o];if(!(n!=null&&n.children))return[];const i=[];return Object.entries(n.children).forEach(([,s])=>{i.push(...s.map(c=>({marker:c,title:a[D.usfmMarkers[c].description]??D.usfmMarkers[c].description,action:()=>{var w;(w=t.current)==null||w.insertMarker(c),e()}})))}),i.sort((s,c)=>(s.marker??s.title).localeCompare(c.marker??c.title))}function dl(t){var a;const e=(a=t.attributes)==null?void 0:a.char;e.style&&(e.style==="ft"&&(e.style="xt"),e.style==="fr"&&(e.style="xo"),e.style==="fq"&&(e.style="xq"))}function wl(t){var a;const e=(a=t.attributes)==null?void 0:a.char;e.style&&(e.style==="xt"&&(e.style="ft"),e.style==="xo"&&(e.style="fr"),e.style==="xq"&&(e.style="fq"))}const ul={type:"USJ",version:"3.1",content:[{type:"para"}]};function pl({classNameForEditor:t,noteOps:e,onChange:a,onClose:o,scrRef:n,noteKey:i,editorOptions:s,defaultMarkerMenuTrigger:c,localizedStrings:w,parentEditorRef:d}){const u=l.useRef(null),g=l.useRef(null),m=l.useRef(null),p=l.useRef(null);l.useLayoutEffect(()=>{if(!p.current)return;const{width:B}=p.current.getBoundingClientRect();B>0&&(p.current.style.width=`${B}px`)},[]);const[f,y]=l.useState("generated"),[b,I]=l.useState("generated"),[C,T]=l.useState("*"),[S,N]=l.useState("*"),[E,z]=l.useState("f"),[j,x]=l.useState(!1),[R,P]=l.useState(!0),[G,K]=l.useState(!1),V=l.useRef(!1),q=l.useRef(""),[M,Y]=l.useState(!1),[lt,kt]=l.useState(),[St,J]=l.useState(),[Et,U]=l.useState(),[tt,rt]=l.useState(),at=l.useRef(null),ot=l.useMemo(()=>({...s,markerMenuTrigger:c,hasExternalUI:!0,view:{...s.view??Xt.getDefaultViewOptions(),noteMode:"expanded"}}),[s,c]),Lt=l.useMemo(()=>ll(u,()=>Y(!1),w,tt),[w,tt]);l.useEffect(()=>{var B;M||(B=u.current)==null||B.focus()},[E,M]),l.useEffect(()=>{var nt,et;let B;V.current=!1,P(!0);const W=e==null?void 0:e.at(0);if(W&&Xt.isInsertEmbedOpOfType("note",W)){const wt=(nt=W.insert.note)==null?void 0:nt.caller;let mt="custom";wt===Xt.GENERATOR_NOTE_CALLER?mt="generated":wt===Xt.HIDDEN_NOTE_CALLER?mt="hidden":wt&&(T(wt),N(wt)),y(mt),I(mt),z(((et=W.insert.note)==null?void 0:et.style)??"f"),B=setTimeout(()=>{var vt;(vt=u.current)==null||vt.applyUpdate([W])},0)}return()=>{B&&clearTimeout(B)}},[e,i]);const gt=l.useCallback((B,W,nt=!1)=>{var wt,mt,vt;const et=(mt=(wt=u.current)==null?void 0:wt.getNoteOps(0))==null?void 0:mt.at(0);if(et&&Xt.isInsertEmbedOpOfType("note",et)){if(et.insert.note){let ut;B==="custom"?ut=W:B==="generated"?ut=Xt.GENERATOR_NOTE_CALLER:ut=Xt.HIDDEN_NOTE_CALLER,et.insert.note.caller=ut}a==null||a([et]),nt&&d&&i&&((vt=d.current)==null||vt.replaceEmbedUpdate(i,[et]))}},[i,a,d]),Ft=l.useCallback(()=>{gt(f,C,!0),o()},[f,C,o,gt]),Gt=l.useRef(Ft);l.useLayoutEffect(()=>{Gt.current=Ft});const A=l.useRef({book:n.book,chapterNum:n.chapterNum});l.useLayoutEffect(()=>{(A.current.book!==n.book||A.current.chapterNum!==n.chapterNum)&&(A.current={book:n.book,chapterNum:n.chapterNum},Gt.current())},[n.book,n.chapterNum]);const Tt=()=>{var W;const B=(W=g.current)==null?void 0:W.getElementsByClassName("editor-input")[0];B!=null&&B.textContent&&navigator.clipboard.writeText(B.textContent)},Bt=l.useCallback(B=>{y(B),gt(B,C)},[C,gt]),Qt=l.useCallback(B=>{T(B),gt(f,B)},[f,gt]),Ut=B=>{var nt,et,wt,mt,vt;z(B);const W=(et=(nt=u.current)==null?void 0:nt.getNoteOps(0))==null?void 0:et.at(0);if(W&&Xt.isInsertEmbedOpOfType("note",W)){W.insert.note&&(W.insert.note.style=B);const ut=(mt=(wt=W.insert.note)==null?void 0:wt.contents)==null?void 0:mt.ops;E!=="x"&&B==="x"?ut==null||ut.forEach(jt=>dl(jt)):E==="x"&&B!=="x"&&(ut==null||ut.forEach(jt=>wl(jt))),(vt=u.current)==null||vt.applyUpdate([W,{delete:1}])}},Rt=B=>{rt(B.contextMarker),K(B.canRedo)},je=l.useCallback(B=>{var nt,et,wt,mt,vt;const W=(et=(nt=u.current)==null?void 0:nt.getNoteOps(0))==null?void 0:et.at(0);if(W&&Xt.isInsertEmbedOpOfType("note",W)){B.content.length>1&&setTimeout(()=>{var O;(O=u.current)==null||O.applyUpdate([{retain:2},{delete:1}])},0);const ut=(wt=W.insert.note)==null?void 0:wt.style,jt=(vt=(mt=W.insert.note)==null?void 0:mt.contents)==null?void 0:vt.ops;if(ut||x(!1),x(ut==="x"?!!(jt!=null&&jt.every(O=>{var dt,bt;if(!((dt=O.attributes)!=null&&dt.char))return!0;const ct=((bt=O.attributes)==null?void 0:bt.char).style;return ct==="xt"||ct==="xo"||ct==="xq"})):!!(jt!=null&&jt.every(O=>{var dt,bt;if(!((dt=O.attributes)!=null&&dt.char))return!0;const ct=((bt=O.attributes)==null?void 0:bt.char).style;return ct==="ft"||ct==="fr"||ct==="fq"}))),!V.current){V.current=!0,q.current=JSON.stringify(W),P(!0);return}P(JSON.stringify(W)===q.current),gt(f,C)}else x(!1),P(!0)},[f,C,gt]),Kt=l.useCallback(()=>{const B=window.getSelection();if(m.current&&Lt.length&&B&&B.rangeCount>0){const W=B.getRangeAt(0).getBoundingClientRect(),nt=m.current.getBoundingClientRect();kt(W.left-nt.left),J(W.top-nt.top),U(W.height),Y(!0)}},[Lt,m]);l.useEffect(()=>{const B=()=>{M&&Y(!1)};return window.addEventListener("click",B),()=>{window.removeEventListener("click",B)}},[M]),l.useEffect(()=>{var B;M&&((B=at.current)==null||B.focus())},[M]),l.useEffect(()=>{var nt;const B=((nt=g.current)==null?void 0:nt.querySelector(".editor-input"))??void 0,W=et=>{!M&&B&&document.activeElement===B&&et.key===c?(et.preventDefault(),Kt()):M&&et.key==="Escape"&&(et.preventDefault(),Y(!1))};return document.addEventListener("keydown",W),()=>{document.removeEventListener("keydown",W)}},[M,Kt,c]);const qt=w["%footnoteEditor_copyButton_tooltip%"];return r.jsxs(r.Fragment,{children:[r.jsxs("div",{ref:p,className:"footnote-editor tw:grid tw:gap-[12px]",children:[r.jsxs("div",{className:"tw:flex",children:[r.jsxs("div",{className:"tw:flex tw:gap-4",children:[r.jsx(sl,{isTypeSwitchable:j,noteType:E,handleNoteTypeChange:Ut,localizedStrings:w}),r.jsx(ol,{callerType:f,updateCallerType:Bt,customCaller:C,updateCustomCaller:Qt,localizedStrings:w})]}),r.jsx("div",{className:"tw:flex tw:w-full tw:justify-end",children:r.jsxs(Gr,{children:[r.jsx($n,{onUndoClick:()=>{var B;return(B=u.current)==null?void 0:B.undo()},onRedoClick:()=>{var B;return(B=u.current)==null?void 0:B.redo()},canUndo:!R,canRedo:G,localizedStrings:w}),r.jsx($a,{onCancelClick:o,onAcceptClick:Ft,canAccept:!R||b!==f||f==="custom"&&C!==S,localizedStrings:w,acceptLabel:w["%footnoteEditor_saveButton_tooltip%"]})]})})]}),r.jsxs("div",{ref:g,className:"tw:relative tw:rounded-[6px] tw:border-2 tw:border-ring",children:[r.jsx("div",{className:t,children:r.jsx(An,{editorRef:u,canUndo:!R,canRedo:G,children:r.jsx(Xt.Editorial,{options:ot,onStateChange:Rt,onUsjChange:je,defaultUsj:ul,onScrRefChange:()=>{},scrRef:n,ref:u})})}),r.jsx("div",{className:"tw:absolute tw:bottom-0 tw:right-0",children:r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":qt,onClick:Tt,className:"tw:h-6 tw:w-6",variant:"ghost",size:"icon",children:r.jsx($.Copy,{})})}),r.jsx(Pt,{children:r.jsx("p",{children:qt})})]})})})]})]}),r.jsx("div",{className:"tw:absolute",ref:m,style:{top:0,left:0,height:0,width:0}}),r.jsxs(se,{open:M,children:[r.jsx($o,{className:"tw:absolute",style:{top:St,left:lt,height:Et,width:0,pointerEvents:"none"}}),r.jsx(ce,{className:"tw:w-[500px] tw:p-0",onClick:B=>{B.preventDefault(),B.stopPropagation()},children:r.jsx(Ln,{markerMenuItems:Lt,localizedStrings:w,searchRef:at})})]})]})}const gl=Object.freeze([...Pn,...Object.entries(D.usfmMarkers).map(([,t])=>t.description).filter(t=>!!t),"%footnoteEditor_callerDropdown_item_custom%","%footnoteEditor_callerDropdown_item_generated%","%footnoteEditor_callerDropdown_item_hidden%","%footnoteEditor_callerDropdown_label%","%footnoteEditor_callerDropdown_tooltip%","%footnoteEditor_copyButton_tooltip%","%footnoteEditor_noteType_crossReference_label%","%footnoteEditor_noteType_endNote_label%","%footnoteEditor_noteType_footnote_label%","%footnoteEditor_noteType_tooltip%","%footnoteEditor_noteTypeDropdown_label%","%footnoteEditor_saveButton_tooltip%",...On,...Oa]);function Bn(t,e){if(!e||e.length===0)return t??"empty";const a=e.find(n=>typeof n=="string");if(a)return`key-${t??"unknown"}-${a.slice(0,10)}`;const o=typeof e[0]=="string"?"impossible":e[0].marker??"unknown";return`key-${t??"unknown"}-${o}`}function hl(t,e,a=!0,o=void 0){if(!e||e.length===0)return;const n=[],i=[];let s=[];return e.forEach(c=>{typeof c!="string"&&c.marker==="fp"?(s.length>0&&i.push(s),s=[c]):s.push(c)}),s.length>0&&i.push(s),i.map((c,w)=>{const d=w===i.length-1;return r.jsxs("p",{children:[Ba(t,c,a,!0,n),d&&o]},Bn(t,c))})}function Ba(t,e,a=!0,o=!0,n=[]){if(!(!e||e.length===0))return e.map(i=>{if(typeof i=="string"){const s=`${t}-text-${i.slice(0,10)}`;if(o){const c=h(`usfm_${t}`);return r.jsx("span",{className:c,children:i},s)}return r.jsxs("span",{className:"tw:inline-flex tw:items-center tw:gap-1 tw:underline tw:decoration-destructive",children:[r.jsx($.AlertCircle,{className:"tw:h-4 tw:w-4 tw:fill-destructive"}),r.jsx("span",{children:i}),r.jsx($.AlertCircle,{className:"tw:h-4 tw:w-4 tw:fill-destructive"})]},s)}return fl(i,Bn(`${t}\\${i.marker}`,[i]),a,[...n,t??"unknown"])})}function fl(t,e,a,o=[]){const{marker:n}=t;return r.jsxs("span",{children:[n?a&&r.jsx("span",{className:"marker",children:`\\${n} `}):r.jsx($.AlertCircle,{className:"tw:text-error tw:mr-1 tw:inline-block tw:h-4 tw:w-4","aria-label":"Missing marker"}),Ba(n,t.content,a,!0,[...o,n??"unknown"])]},e)}function Vn({footnote:t,layout:e="horizontal",formatCaller:a,showMarkers:o=!0}){const n=a?a(t.caller):t.caller,i=n!==t.caller;let s,c=t.content;Array.isArray(t.content)&&t.content.length>0&&typeof t.content[0]!="string"&&(t.content[0].marker==="fr"||t.content[0].marker==="xo")&&([s,...c]=t.content);const w=o?r.jsx("span",{className:"marker",children:`\\${t.marker} `}):void 0,d=o?r.jsx("span",{className:"marker",children:` \\${t.marker}*`}):void 0,u=n&&r.jsxs("span",{className:h("note-caller tw:inline-block",{formatted:i}),children:[n," "]}),g=s&&r.jsxs(r.Fragment,{children:[Ba(t.marker,[s],o,!1)," "]}),m=e==="horizontal"?"horizontal":"vertical",p=o?"marker-visible":"",f=e==="horizontal"?"tw:col-span-1":"tw:col-span-2 tw:col-start-1 tw:row-start-2",y=h(m,p);return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:h("textual-note-header tw:col-span-1 tw:w-fit tw:text-nowrap",y),children:[w,u]}),r.jsx("div",{className:h("textual-note-header tw:col-span-1 tw:w-fit tw:text-nowrap",y),children:g}),r.jsx("div",{className:h("textual-note-body tw:flex tw:flex-col tw:gap-1",f,y),children:c&&c.length>0&&r.jsx(r.Fragment,{children:hl(t.marker,c,o,d)})})]})}function ml({className:t,classNameForItems:e,footnotes:a,layout:o="horizontal",listId:n,selectedFootnote:i,showMarkers:s=!0,suppressFormatting:c=!1,formatCaller:w,onFootnoteSelected:d}){const u=w??D.getFormatCallerFunction(a,void 0),g=(C,T)=>{d==null||d(C,T,n)},m=i?a.findIndex(C=>C===i):-1,[p,f]=l.useState(m),y=(C,T,S)=>{if(a.length)switch(C.key){case"Enter":case" ":C.preventDefault(),d==null||d(T,S,n);break}},b=C=>{if(a.length)switch(C.key){case"ArrowDown":C.preventDefault(),f(T=>Math.min(T+1,a.length-1));break;case"ArrowUp":C.preventDefault(),f(T=>Math.max(T-1,0));break}},I=l.useRef([]);return l.useEffect(()=>{var C;p>=0&&p{const S=C===i,N=`${n}-${T}`;return r.jsxs(r.Fragment,{children:[r.jsx("li",{ref:E=>{I.current[T]=E},role:"option","aria-selected":S,"data-marker":C.marker,"data-state":S?"selected":void 0,tabIndex:T===p?0:-1,className:h("tw:gap-x-3 tw:gap-y-1 tw:p-2 tw:data-[state=selected]:bg-muted",d&&"tw:hover:bg-muted/50","tw:w-full tw:rounded-sm tw:border-0 tw:bg-transparent tw:shadow-none","tw:focus:outline-hidden tw:focus-visible:outline-hidden","tw:focus-visible:ring-offset-0.5 tw:focus-visible:relative tw:focus-visible:z-10 tw:focus-visible:ring-2 tw:focus-visible:ring-ring","tw:grid tw:grid-flow-col tw:grid-cols-subgrid",o==="horizontal"?"tw:col-span-3":"tw:col-span-2 tw:row-span-2",e),onClick:()=>g(C,T),onKeyDown:E=>y(E,C,T),children:r.jsx(Vn,{footnote:C,layout:o,formatCaller:()=>u(C.caller,T),showMarkers:s})},N),Ta&&e.push(t.substring(a,n.index)),e.push(r.jsx("strong",{children:n[1]},n.index)),a=o.lastIndex;return a0?e:[t]}function bl({occurrenceData:t,setScriptureReference:e,localizedStrings:a,classNameForText:o}){const n=a["%webView_inventory_occurrences_table_header_reference%"],i=a["%webView_inventory_occurrences_table_header_occurrence%"],s=l.useMemo(()=>{const c=[],w=new Set;return t.forEach(d=>{const u=`${d.reference.book}:${d.reference.chapterNum}:${d.reference.verseNum}:${d.text}`;w.has(u)||(w.add(u),c.push(d))}),c},[t]);return r.jsxs(Ur,{stickyHeader:!0,children:[r.jsx(Kr,{stickyHeader:!0,children:r.jsxs(be,{children:[r.jsx(dr,{children:n}),r.jsx(dr,{children:i})]})}),r.jsx(qr,{children:s.length>0&&s.map(c=>r.jsxs(be,{onClick:()=>{e(c.reference)},children:[r.jsx(Oe,{children:D.formatScrRef(c.reference,"English")}),r.jsx(Oe,{className:o,children:vl(c.text)})]},`${c.reference.book} ${c.reference.chapterNum}:${c.reference.verseNum}-${c.text}`))})]})}function Va({className:t,...e}){return r.jsx(k.Checkbox.Root,{"data-slot":"checkbox",className:h("pr-twp tw:peer tw:relative tw:flex tw:size-4 tw:shrink-0 tw:items-center tw:justify-center tw:rounded-[4px] tw:border tw:border-input tw:transition-colors tw:outline-none tw:group-has-disabled/field:opacity-50 tw:after:absolute tw:after:-inset-x-3 tw:after:-inset-y-2 tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:aria-invalid:aria-checked:border-primary tw:dark:bg-input/30 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:data-checked:border-primary tw:data-checked:bg-primary tw:data-checked:text-primary-foreground tw:dark:data-checked:bg-primary",t),...e,children:r.jsx(k.Checkbox.Indicator,{"data-slot":"checkbox-indicator",className:"tw:grid tw:place-content-center tw:text-current tw:transition-none tw:[&>svg]:size-3.5",children:r.jsx(ht.IconCheck,{})})})}const xl=t=>{if(t==="asc")return r.jsx($.ArrowUpIcon,{className:"tw:h-4 tw:w-4"});if(t==="desc")return r.jsx($.ArrowDownIcon,{className:"tw:h-4 tw:w-4"})},ur=(t,e,a)=>r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsxs(At,{className:h("tw:flex tw:w-full tw:justify-start",a),variant:"ghost",onClick:()=>t.toggleSorting(void 0),children:[r.jsx("span",{className:"tw:w-6 tw:max-w-fit tw:flex-1 tw:overflow-hidden tw:text-ellipsis",children:e}),xl(t.getIsSorted())]}),r.jsx(Pt,{side:"bottom",children:e})]})}),yl=t=>({accessorKey:"item",accessorFn:e=>e.items[0],header:({column:e})=>ur(e,t)}),kl=(t,e)=>({accessorKey:`item${e}`,accessorFn:a=>a.items[e],header:({column:a})=>ur(a,t)}),jl=t=>({accessorKey:"count",header:({column:e})=>ur(e,t,"tw:justify-end"),cell:({row:e})=>r.jsx("div",{className:"tw:flex tw:justify-end tw:tabular-nums",children:e.getValue("count")})}),na=(t,e,a,o,n,i)=>{let s=[...a];t.forEach(w=>{e==="approved"?s.includes(w)||s.push(w):s=s.filter(d=>d!==w)}),o(s);let c=[...n];t.forEach(w=>{e==="unapproved"?c.includes(w)||c.push(w):c=c.filter(d=>d!==w)}),i(c)},_l=(t,e,a,o,n)=>({accessorKey:"status",header:({column:i})=>ur(i,t,"tw:justify-center"),cell:({row:i})=>{const s=i.getValue("status"),c=i.getValue("item");return r.jsxs(Da,{value:s,variant:"outline",type:"single",className:"tw:gap-0",children:[r.jsx(sr,{onClick:w=>{w.stopPropagation(),na([c],"approved",e,a,o,n)},value:"approved",className:"tw:rounded-e-none tw:border-e-0",children:r.jsx($.CircleCheckIcon,{})}),r.jsx(sr,{onClick:w=>{w.stopPropagation(),na([c],"unapproved",e,a,o,n)},value:"unapproved",className:"tw:rounded-none",children:r.jsx($.CircleXIcon,{})}),r.jsx(sr,{onClick:w=>{w.stopPropagation(),na([c],"unknown",e,a,o,n)},value:"unknown",className:"tw:rounded-s-none tw:border-s-0",children:r.jsx($.CircleHelpIcon,{})})]})}}),Nl=t=>t.split(/(?:\r?\n|\r)|(?=(?:\\(?:v|c|id)))/g),Cl=t=>{const e=/^\\[vc]\s+(\d+)/,a=t.match(e);if(a)return+a[1]},Sl=t=>{const e=t.match(/^\\id\s+([A-Za-z]+)/);return e?e[1]:""},Fn=(t,e,a)=>a.includes(t)?"unapproved":e.includes(t)?"approved":"unknown",El=Object.freeze(["%webView_inventory_all%","%webView_inventory_approved%","%webView_inventory_unapproved%","%webView_inventory_unknown%","%webView_inventory_scope_currentBook%","%webView_inventory_scope_chapter%","%webView_inventory_scope_verse%","%webView_inventory_filter_text%","%webView_inventory_show_additional_items%","%webView_inventory_occurrences_table_header_reference%","%webView_inventory_occurrences_table_header_occurrence%","%webView_inventory_no_results%"]),Tl=(t,e,a)=>{let o=t;return e!=="all"&&(o=o.filter(n=>e==="approved"&&n.status==="approved"||e==="unapproved"&&n.status==="unapproved"||e==="unknown"&&n.status==="unknown")),a!==""&&(o=o.filter(n=>n.items[0].includes(a))),o},Rl=(t,e,a)=>t.map(o=>{const n=D.isString(o.key)?o.key:o.key[0];return{items:D.isString(o.key)?[o.key]:o.key,count:o.count,status:o.status||Fn(n,e,a),occurrences:o.occurrences||[]}}),le=(t,e)=>t[e]??e;function zl({inventoryItems:t,setVerseRef:e,localizedStrings:a,additionalItemsLabels:o,approvedItems:n,unapprovedItems:i,scope:s,onScopeChange:c,columns:w,id:d,areInventoryItemsLoading:u=!1,classNameForVerseText:g,onItemSelected:m}){const p=le(a,"%webView_inventory_all%"),f=le(a,"%webView_inventory_approved%"),y=le(a,"%webView_inventory_unapproved%"),b=le(a,"%webView_inventory_unknown%"),I=le(a,"%webView_inventory_scope_currentBook%"),C=le(a,"%webView_inventory_scope_chapter%"),T=le(a,"%webView_inventory_scope_verse%"),S=le(a,"%webView_inventory_filter_text%"),N=le(a,"%webView_inventory_show_additional_items%"),E=le(a,"%webView_inventory_no_results%"),[z,j]=l.useState(!1),[x,R]=l.useState("all"),[P,G]=l.useState(""),[K,V]=l.useState([]),q=l.useMemo(()=>{const U=t??[];return U.length===0?[]:Rl(U,n,i)},[t,n,i]),M=l.useMemo(()=>{if(z)return q;const U=[];return q.forEach(tt=>{const rt=tt.items[0],at=U.find(ot=>ot.items[0]===rt);at?(at.count+=tt.count,at.occurrences=at.occurrences.concat(tt.occurrences)):U.push({items:[rt],count:tt.count,occurrences:tt.occurrences,status:tt.status})}),U},[z,q]),Y=l.useMemo(()=>M.length===0?[]:Tl(M,x,P),[M,x,P]),lt=l.useMemo(()=>{var rt,at;if(!z)return w;const U=(rt=o==null?void 0:o.tableHeaders)==null?void 0:rt.length;if(!U)return w;const tt=[];for(let ot=0;ot{Y.length===0?V([]):Y.length===1&&V(Y[0].items)},[Y]);const kt=(U,tt)=>{tt.setRowSelection(()=>{const at={};return at[U.index]=!0,at});const rt=U.original.items;V(rt),m&&rt.length>0&&m(rt[0])},St=U=>{if(U==="book"||U==="chapter"||U==="verse")c(U);else throw new Error(`Invalid scope value: ${U}`)},J=U=>{if(U==="all"||U==="approved"||U==="unapproved"||U==="unknown")R(U);else throw new Error(`Invalid status filter value: ${U}`)},Et=l.useMemo(()=>{if(M.length===0||K.length===0)return[];const U=M.filter(tt=>D.deepEqual(z?tt.items:[tt.items[0]],K));if(U.length>1)throw new Error("Selected item is not unique");return U.length===0?[]:U[0].occurrences},[K,z,M]);return r.jsx("div",{id:d,className:"pr-twp tw:h-full tw:overflow-auto",children:r.jsxs("div",{className:"tw:flex tw:h-full tw:w-full tw:min-w-min tw:flex-col",children:[r.jsxs("div",{className:"tw:flex tw:items-stretch",style:{contain:"inline-size"},children:[r.jsxs(Ae,{onValueChange:U=>J(U),defaultValue:x,children:[r.jsx(Le,{className:"tw:m-1 tw:w-auto tw:flex-1",children:r.jsx(Pe,{placeholder:"Select filter"})}),r.jsxs(Be,{children:[r.jsx(Jt,{value:"all",children:p}),r.jsx(Jt,{value:"approved",children:f}),r.jsx(Jt,{value:"unapproved",children:y}),r.jsx(Jt,{value:"unknown",children:b})]})]}),r.jsxs(Ae,{onValueChange:U=>St(U),defaultValue:s,children:[r.jsx(Le,{className:"tw:m-1 tw:w-auto tw:flex-1",children:r.jsx(Pe,{placeholder:"Select scope"})}),r.jsxs(Be,{children:[r.jsx(Jt,{value:"book",children:I}),r.jsx(Jt,{value:"chapter",children:C}),r.jsx(Jt,{value:"verse",children:T})]})]}),r.jsx(Xe,{className:"tw:m-1 tw:flex-1 tw:rounded-md tw:border",placeholder:S,value:P,onChange:U=>{G(U.target.value)}}),o&&r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsxs("div",{className:"tw:m-1 tw:flex tw:w-fit tw:min-w-[26px] tw:items-center tw:rounded-md tw:border",children:[r.jsx(Va,{className:"tw:m-1 tw:shrink-0",checked:z,onCheckedChange:U=>{j(U)}}),r.jsx(yt,{className:"tw:m-1 tw:truncate",children:(o==null?void 0:o.checkboxText)??N})]})}),r.jsx(Pt,{children:(o==null?void 0:o.checkboxText)??N})]})})]}),r.jsx("div",{className:"tw:m-1 tw:flex-1 tw:overflow-auto tw:rounded-md tw:border",children:r.jsx(Tn,{columns:lt,data:Y,onRowClickHandler:kt,stickyHeader:!0,isLoading:u,noResultsMessage:E})}),Et.length>0&&r.jsx("div",{className:"tw:m-1 tw:flex-1 tw:overflow-auto tw:rounded-md tw:border",children:r.jsx(bl,{classNameForText:g,occurrenceData:Et,setScriptureReference:e,localizedStrings:a})})]})})}const Dl="16rem",Il="3rem",Gn=l.createContext(void 0);function pr(){const t=l.useContext(Gn);if(!t)throw new Error("useSidebar must be used within a SidebarProvider.");return t}function Un({defaultOpen:t=!0,open:e,onOpenChange:a,className:o,style:n,children:i,side:s="primary",...c}){const[w,d]=l.useState(t),u=e??w,g=l.useCallback(T=>{const S=typeof T=="function"?T(u):T;a?a(S):d(S)},[a,u]),m=l.useCallback(()=>g(T=>!T),[g]),p=u?"expanded":"collapsed",b=ft()==="ltr"?s:s==="primary"?"secondary":"primary",I=l.useMemo(()=>({state:p,open:u,setOpen:g,toggleSidebar:m,side:b}),[p,u,g,m,b]),C={"--sidebar-width":Dl,"--sidebar-width-icon":Il,...n};return r.jsx(Gn.Provider,{value:I,children:r.jsx("div",{"data-slot":"sidebar-wrapper",style:C,className:h("pr-twp tw:group/sidebar-wrapper tw:flex tw:w-full tw:has-data-[variant=inset]:bg-sidebar",o),...c,children:i})})}function Kn({variant:t="sidebar",collapsible:e="offcanvas",className:a,children:o,...n}){const i=pr();return e==="none"?r.jsx("div",{"data-slot":"sidebar",className:h("tw:flex tw:h-full tw:w-(--sidebar-width) tw:flex-col tw:bg-sidebar tw:text-sidebar-foreground",a),...n,children:o}):r.jsxs("div",{className:"tw:group tw:peer tw:hidden tw:text-sidebar-foreground tw:md:block","data-state":i.state,"data-collapsible":i.state==="collapsed"?e:"","data-variant":t,"data-side":i.side,"data-slot":"sidebar",children:[r.jsx("div",{"data-slot":"sidebar-gap",className:h("tw:relative tw:w-(--sidebar-width) tw:bg-transparent tw:transition-[width] tw:duration-200 tw:ease-linear","tw:group-data-[collapsible=offcanvas]:w-0","tw:group-data-[side=secondary]:rotate-180",t==="floating"||t==="inset"?"tw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"tw:group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),r.jsx("div",{"data-slot":"sidebar-container","data-side":i.side,className:h("tw:absolute tw:inset-y-0 tw:z-10 tw:hidden tw:h-svh tw:w-(--sidebar-width) tw:transition-[left,right,width] tw:duration-200 tw:ease-linear tw:md:flex",i.side==="primary"?"tw:left-0 tw:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"tw:right-0 tw:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"tw:p-2 tw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"tw:group-data-[collapsible=icon]:w-(--sidebar-width-icon) tw:group-data-[side=primary]:border-e tw:group-data-[side=secondary]:border-s",a),...n,children:r.jsx("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"tw:flex tw:size-full tw:flex-col tw:bg-sidebar tw:group-data-[variant=floating]:rounded-lg tw:group-data-[variant=floating]:shadow-sm tw:group-data-[variant=floating]:ring-1 tw:group-data-[variant=floating]:ring-sidebar-border",children:o})})]})}function Ml({className:t,onClick:e,...a}){const{toggleSidebar:o,side:n}=pr();return r.jsxs(F,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:h(t),onClick:i=>{e==null||e(i),o()},...a,children:[n==="primary"?r.jsx(ht.IconLayoutSidebar,{}):r.jsx(ht.IconLayoutSidebarRight,{}),r.jsx("span",{className:"tw:sr-only",children:"Toggle Sidebar"})]})}function Ol({className:t,...e}){const{toggleSidebar:a}=pr();return r.jsx("button",{type:"button","data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a,title:"Toggle Sidebar",className:h("tw:absolute tw:inset-y-0 tw:z-20 tw:hidden tw:w-4 tw:transition-all tw:ease-linear tw:group-data-[side=primary]:-right-4 tw:group-data-[side=secondary]:left-0 tw:after:absolute tw:after:inset-y-0 tw:after:start-1/2 tw:after:w-[2px] tw:hover:after:bg-sidebar-border tw:sm:flex tw:ltr:-translate-x-1/2 tw:rtl:translate-x-1/2","tw:in-data-[side=primary]:cursor-w-resize tw:rtl:in-data-[side=primary]:cursor-e-resize tw:in-data-[side=secondary]:cursor-e-resize tw:rtl:in-data-[side=secondary]:cursor-w-resize","tw:[[data-side=primary][data-state=collapsed]_&]:cursor-e-resize tw:rtl:[[data-side=primary][data-state=collapsed]_&]:cursor-w-resize tw:[[data-side=secondary][data-state=collapsed]_&]:cursor-w-resize tw:rtl:[[data-side=secondary][data-state=collapsed]_&]:cursor-e-resize","tw:group-data-[collapsible=offcanvas]:translate-x-0 tw:group-data-[collapsible=offcanvas]:after:start-full tw:hover:group-data-[collapsible=offcanvas]:bg-sidebar","tw:[[data-side=primary][data-collapsible=offcanvas]_&]:-end-2","tw:[[data-side=secondary][data-collapsible=offcanvas]_&]:-start-2",t),...e})}function qn({className:t,...e}){return r.jsx("main",{"data-slot":"sidebar-inset",className:h("tw:relative tw:flex tw:w-full tw:flex-1 tw:flex-col tw:bg-background tw:md:peer-data-[variant=inset]:m-2 tw:md:peer-data-[variant=inset]:ms-0 tw:md:peer-data-[variant=inset]:rounded-xl tw:md:peer-data-[variant=inset]:shadow-sm tw:md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2",t),...e})}function $l({className:t,...e}){return r.jsx(Xe,{"data-slot":"sidebar-input","data-sidebar":"input",className:h("tw:h-8 tw:w-full tw:bg-background tw:shadow-none",t),...e})}function Al({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:h("tw:flex tw:flex-col tw:gap-2 tw:p-2",t),...e})}function Pl({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:h("tw:flex tw:flex-col tw:gap-2 tw:p-2",t),...e})}function Ll({className:t,...e}){return r.jsx($e,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:h("tw:mx-2 tw:w-auto tw:bg-sidebar-border",t),...e})}function Hn({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:h("tw:no-scrollbar tw:flex tw:min-h-0 tw:flex-1 tw:flex-col tw:gap-0 tw:overflow-auto tw:group-data-[collapsible=icon]:overflow-hidden",t),...e})}function fa({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:h("tw:relative tw:flex tw:w-full tw:min-w-0 tw:flex-col tw:p-2",t),...e})}function ma({className:t,asChild:e=!1,...a}){const o=e?k.Slot.Root:"div";return r.jsx(o,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:h("tw:flex tw:h-8 tw:shrink-0 tw:items-center tw:rounded-md tw:px-2 tw:text-xs tw:font-medium tw:text-sidebar-foreground/70 tw:ring-sidebar-ring tw:outline-hidden tw:transition-[margin,opacity] tw:duration-200 tw:ease-linear tw:group-data-[collapsible=icon]:-mt-8 tw:group-data-[collapsible=icon]:opacity-0 tw:focus-visible:ring-2 tw:[&>svg]:size-4 tw:[&>svg]:shrink-0",t),...a})}function Bl({className:t,asChild:e=!1,...a}){const o=e?k.Slot.Root:"button";return r.jsx(o,{"data-slot":"sidebar-group-action","data-sidebar":"group-action",className:h("tw:absolute tw:top-3.5 tw:end-3 tw:flex tw:aspect-square tw:w-5 tw:items-center tw:justify-center tw:rounded-md tw:p-0 tw:text-sidebar-foreground tw:ring-sidebar-ring tw:outline-hidden tw:transition-transform tw:group-data-[collapsible=icon]:hidden tw:after:absolute tw:after:-inset-2 tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:md:after:hidden tw:[&>svg]:size-4 tw:[&>svg]:shrink-0",t),...a})}function va({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:h("tw:w-full tw:text-sm",t),...e})}function Yn({className:t,...e}){return r.jsx("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:h("tw:flex tw:w-full tw:min-w-0 tw:flex-col tw:gap-0",t),...e})}function Wn({className:t,...e}){return r.jsx("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:h("tw:group/menu-item tw:relative",t),...e})}const Vl=ge.cva("tw:peer/menu-button tw:group/menu-button tw:flex tw:w-full tw:items-center tw:gap-2 tw:overflow-hidden tw:rounded-md tw:p-2 tw:text-start tw:text-sm tw:ring-sidebar-ring tw:outline-hidden tw:transition-[width,height,padding] tw:group-has-data-[sidebar=menu-action]/menu-item:pe-8 tw:group-data-[collapsible=icon]:size-8! tw:group-data-[collapsible=icon]:p-2! tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:active:bg-sidebar-accent tw:active:text-sidebar-accent-foreground tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-disabled:pointer-events-none tw:aria-disabled:opacity-50 tw:data-open:hover:bg-sidebar-accent tw:data-open:hover:text-sidebar-accent-foreground tw:data-active:bg-sidebar-accent tw:data-active:font-medium tw:data-active:text-sidebar-accent-foreground tw:[&_svg]:size-4 tw:[&_svg]:shrink-0 tw:[&>span:last-child]:truncate",{variants:{variant:{default:"tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground",outline:"tw:bg-background tw:shadow-[0_0_0_1px_var(--sidebar-border)] tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"tw:h-8 tw:text-sm",sm:"tw:h-7 tw:text-xs",lg:"tw:h-12 tw:text-sm tw:group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function Xn({asChild:t=!1,isActive:e=!1,variant:a="default",size:o="default",tooltip:n,className:i,...s}){const c=t?k.Slot.Root:"button",{state:w}=pr(),d=r.jsx(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":o,"data-active":e,className:h(Vl({variant:a,size:o}),i),...s});if(!n)return d;const u=typeof n=="string"?{children:n}:n;return r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:d}),r.jsx(Pt,{side:"right",align:"center",hidden:w!=="collapsed",...u})]})}function Fl({className:t,asChild:e=!1,showOnHover:a=!1,...o}){const n=e?k.Slot.Root:"button";return r.jsx(n,{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:h("tw:absolute tw:top-1.5 tw:end-1 tw:flex tw:aspect-square tw:w-5 tw:items-center tw:justify-center tw:rounded-md tw:p-0 tw:text-sidebar-foreground tw:ring-sidebar-ring tw:outline-hidden tw:transition-transform tw:group-data-[collapsible=icon]:hidden tw:peer-hover/menu-button:text-sidebar-accent-foreground tw:peer-data-[size=default]/menu-button:top-1.5 tw:peer-data-[size=lg]/menu-button:top-2.5 tw:peer-data-[size=sm]/menu-button:top-1 tw:after:absolute tw:after:-inset-2 tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:md:after:hidden tw:[&>svg]:size-4 tw:[&>svg]:shrink-0",a&&"tw:group-focus-within/menu-item:opacity-100 tw:group-hover/menu-item:opacity-100 tw:peer-data-active/menu-button:text-sidebar-accent-foreground tw:aria-expanded:opacity-100 tw:md:opacity-0",t),...o})}function Gl({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-menu-badge","data-sidebar":"menu-badge",className:h("tw:pointer-events-none tw:absolute tw:end-1 tw:flex tw:h-5 tw:min-w-5 tw:items-center tw:justify-center tw:rounded-md tw:px-1 tw:text-xs tw:font-medium tw:text-sidebar-foreground tw:tabular-nums tw:select-none tw:group-data-[collapsible=icon]:hidden tw:peer-hover/menu-button:text-sidebar-accent-foreground tw:peer-data-[size=default]/menu-button:top-1.5 tw:peer-data-[size=lg]/menu-button:top-2.5 tw:peer-data-[size=sm]/menu-button:top-1 tw:peer-data-active/menu-button:text-sidebar-accent-foreground",t),...e})}function Ul({className:t,showIcon:e=!1,...a}){const[o]=l.useState(()=>`${Math.floor(Math.random()*40)+50}%`),n={"--skeleton-width":o};return r.jsxs("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:h("tw:flex tw:h-8 tw:items-center tw:gap-2 tw:rounded-md tw:px-2",t),...a,children:[e&&r.jsx(Pr,{className:"tw:size-4 tw:rounded-md","data-sidebar":"menu-skeleton-icon"}),r.jsx(Pr,{className:"tw:h-4 tw:max-w-(--skeleton-width) tw:flex-1","data-sidebar":"menu-skeleton-text",style:n})]})}function Kl({className:t,...e}){return r.jsx("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:h("tw:mx-3.5 tw:flex tw:min-w-0 tw:translate-x-px tw:rtl:-translate-x-px tw:flex-col tw:gap-1 tw:border-s tw:border-sidebar-border tw:px-2.5 tw:py-0.5 tw:group-data-[collapsible=icon]:hidden",t),...e})}function ql({className:t,...e}){return r.jsx("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:h("tw:group/menu-sub-item tw:relative",t),...e})}function Hl({asChild:t=!1,size:e="md",isActive:a=!1,className:o,...n}){const i=t?k.Slot.Root:"a";return r.jsx(i,{"data-slot":"sidebar-menu-sub-button","data-sidebar":"menu-sub-button","data-size":e,"data-active":a,className:h("tw:flex tw:h-7 tw:min-w-0 tw:-translate-x-px tw:rtl:translate-x-px tw:items-center tw:gap-2 tw:overflow-hidden tw:rounded-md tw:px-2 tw:text-sidebar-foreground tw:ring-sidebar-ring tw:outline-hidden tw:group-data-[collapsible=icon]:hidden tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:active:bg-sidebar-accent tw:active:text-sidebar-accent-foreground tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-disabled:pointer-events-none tw:aria-disabled:opacity-50 tw:data-[size=md]:text-sm tw:data-[size=sm]:text-xs tw:data-active:bg-sidebar-accent tw:data-active:text-sidebar-accent-foreground tw:[&>span:last-child]:truncate tw:[&>svg]:size-4 tw:[&>svg]:shrink-0 tw:[&>svg]:text-sidebar-accent-foreground",o),...n})}function Zn({id:t,extensionLabels:e,projectInfo:a,handleSelectSidebarItem:o,selectedSidebarItem:n,extensionsSidebarGroupLabel:i,projectsSidebarGroupLabel:s,buttonPlaceholderText:c,className:w}){const d=l.useCallback((p,f)=>{o(p,f)},[o]),u=l.useCallback(p=>{const f=a.find(y=>y.projectId===p);return f?f.projectName:p},[a]),g=l.useMemo(()=>a.map(p=>({id:p.projectId,shortName:p.projectName,fullName:p.projectName})),[a]),m=l.useCallback(p=>!n.projectId&&p===n.label,[n]);return r.jsx(Kn,{id:t,collapsible:"none",variant:"inset",className:h("tw:w-96 tw:gap-2 tw:overflow-y-auto",w),children:r.jsxs(Hn,{children:[r.jsxs(fa,{children:[r.jsx(ma,{className:"tw:text-sm",children:i}),r.jsx(va,{children:r.jsx(Yn,{children:Object.entries(e).map(([p,f])=>r.jsx(Wn,{children:r.jsx(Xn,{onClick:()=>d(p),isActive:m(p),children:r.jsx("span",{className:"tw:pl-3",children:f})})},p))})})]}),r.jsxs(fa,{children:[r.jsx(ma,{className:"tw:text-sm",children:s}),r.jsx(va,{className:"tw:pl-3",children:r.jsxs("div",{className:h("tw:flex tw:w-full tw:items-center tw:gap-2 tw:rounded-md tw:px-2 tw:py-1",{"tw:bg-sidebar-accent tw:text-sidebar-accent-foreground":n==null?void 0:n.projectId}),children:[r.jsx($.ScrollText,{className:"tw:h-4 tw:w-4 tw:shrink-0"}),r.jsx(Rn,{mode:"project",projects:g,openTabs:[],selection:{projectId:(n==null?void 0:n.projectId)??""},onChangeSelection:({projectId:p})=>{if(!p)return;const f=u(p);d(f,p)},buttonVariant:"ghost",buttonClassName:"tw:h-8 tw:w-full tw:flex-1 tw:justify-start tw:font-normal",buttonPlaceholder:c,ariaLabel:s,popoverContentStyle:{zIndex:Vr}})]})})]})]})})}const Hr=l.forwardRef(({value:t,onSearch:e,placeholder:a,isFullWidth:o,className:n,isDisabled:i=!1,id:s},c)=>{const w=ft();return r.jsxs("div",{id:s,className:h("tw:relative",{"tw:w-full":o},n),children:[r.jsx($.Search,{className:h("tw:absolute tw:top-1/2 tw:h-4 tw:w-4 tw:-translate-y-1/2 tw:transform tw:opacity-50",{"tw:right-3":w==="rtl"},{"tw:left-3":w==="ltr"})}),r.jsx(Xe,{ref:c,className:"tw:w-full tw:text-ellipsis tw:pe-9 tw:ps-9",placeholder:a,value:t,onChange:d=>e(d.target.value),disabled:i}),t&&r.jsxs(F,{variant:"ghost",size:"icon",className:h("tw:absolute tw:top-1/2 tw:h-7 tw:-translate-y-1/2 tw:transform tw:hover:bg-transparent",{"tw:left-0":w==="rtl"},{"tw:right-0":w==="ltr"}),onClick:()=>{e("")},children:[r.jsx($.X,{className:"tw:h-4 tw:w-4"}),r.jsx("span",{className:"tw:sr-only",children:"Clear"})]})]})});Hr.displayName="SearchBar";function Yl({id:t,extensionLabels:e,projectInfo:a,children:o,handleSelectSidebarItem:n,selectedSidebarItem:i,searchValue:s,onSearch:c,extensionsSidebarGroupLabel:w,projectsSidebarGroupLabel:d,buttonPlaceholderText:u}){return r.jsxs("div",{className:"tw:box-border tw:flex tw:h-full tw:flex-col",children:[r.jsx("div",{className:"tw:box-border tw:flex tw:items-center tw:justify-center tw:py-4",children:r.jsx(Hr,{className:"tw:w-9/12",value:s,onSearch:c,placeholder:"Search app settings, extension settings, and project settings"})}),r.jsxs(Un,{id:t,className:"tw:h-full tw:flex-1 tw:gap-4 tw:overflow-auto tw:border-t",children:[r.jsx(Zn,{className:"tw:w-1/2 tw:min-w-[140px] tw:max-w-[220px] tw:border-e",extensionLabels:e,projectInfo:a,handleSelectSidebarItem:n,selectedSidebarItem:i,extensionsSidebarGroupLabel:w,projectsSidebarGroupLabel:d,buttonPlaceholderText:u}),r.jsx(qn,{className:"tw:min-w-[215px]",children:o})]})]})}const Ne="scrBook",Wl="scrRef",Me="source",Xl="details",Zl="Scripture Reference",Jl="Scripture Book",Jn="Type",Ql="Details";function td(t,e){const a=e??!1;return[{accessorFn:o=>`${o.start.book} ${o.start.chapterNum}:${o.start.verseNum}`,id:Ne,header:(t==null?void 0:t.scriptureReferenceColumnName)??Zl,cell:o=>{const n=o.row.original;return o.row.getIsGrouped()?st.Canon.bookIdToEnglishName(n.start.book):o.row.groupingColumnId===Ne?D.formatScrRef(n.start):void 0},getGroupingValue:o=>st.Canon.bookIdToNumber(o.start.book),sortingFn:(o,n)=>D.compareScrRefs(o.original.start,n.original.start),enableGrouping:!0},{accessorFn:o=>D.formatScrRef(o.start),id:Wl,header:void 0,cell:o=>{const n=o.row.original;return o.row.getIsGrouped()?void 0:D.formatScrRef(n.start)},sortingFn:(o,n)=>D.compareScrRefs(o.original.start,n.original.start),enableGrouping:!1},{accessorFn:o=>o.source.displayName,id:Me,header:a?(t==null?void 0:t.typeColumnName)??Jn:void 0,cell:o=>a||o.row.getIsGrouped()?o.getValue():void 0,getGroupingValue:o=>o.source.id,sortingFn:(o,n)=>o.original.source.displayName.localeCompare(n.original.source.displayName),enableGrouping:!0},{accessorFn:o=>o.detail,id:Xl,header:(t==null?void 0:t.detailsColumnName)??Ql,cell:o=>o.getValue(),enableGrouping:!1}]}const ed=t=>{if(!("offset"in t.start))throw new Error("No offset available in range start");if(t.end&&!("offset"in t.end))throw new Error("No offset available in range end");const{offset:e}=t.start;let a=0;return t.end&&({offset:a}=t.end),!t.end||D.compareScrRefs(t.start,t.end)===0?`${D.scrRefToBBBCCCVVV(t.start)}+${e}`:`${D.scrRefToBBBCCCVVV(t.start)}+${e}-${D.scrRefToBBBCCCVVV(t.end)}+${a}`},ko=t=>`${ed({start:t.start,end:t.end})} ${t.source.displayName} ${t.detail}`;function rd({sources:t,showColumnHeaders:e=!1,showSourceColumn:a=!1,scriptureReferenceColumnName:o,scriptureBookGroupName:n,typeColumnName:i,detailsColumnName:s,onRowSelected:c,id:w}){const[d,u]=l.useState([]),[g,m]=l.useState([{id:Ne,desc:!1}]),[p,f]=l.useState({}),y=l.useMemo(()=>t.flatMap(x=>x.data.map(R=>({...R,source:x.source}))),[t]),b=l.useMemo(()=>td({scriptureReferenceColumnName:o,typeColumnName:i,detailsColumnName:s},a),[o,i,s,a]);l.useEffect(()=>{d.includes(Me)?m([{id:Me,desc:!1},{id:Ne,desc:!1}]):m([{id:Ne,desc:!1}])},[d]);const I=Mt.useReactTable({data:y,columns:b,state:{grouping:d,sorting:g,rowSelection:p},onGroupingChange:u,onSortingChange:m,onRowSelectionChange:f,getExpandedRowModel:Mt.getExpandedRowModel(),getGroupedRowModel:Mt.getGroupedRowModel(),getCoreRowModel:Mt.getCoreRowModel(),getSortedRowModel:Mt.getSortedRowModel(),getRowId:ko,autoResetExpanded:!1,enableMultiRowSelection:!1,enableSubRowSelection:!1});l.useEffect(()=>{if(c){const x=I.getSelectedRowModel().rowsById,R=Object.keys(x);if(R.length===1){const P=y.find(G=>ko(G)===R[0])||void 0;P&&c(P)}}},[p,y,c,I]);const C=n??Jl,T=i??Jn,S=[{label:"No Grouping",value:[]},{label:`Group by ${C}`,value:[Ne]},{label:`Group by ${T}`,value:[Me]},{label:`Group by ${C} and ${T}`,value:[Ne,Me]},{label:`Group by ${T} and ${C}`,value:[Me,Ne]}],N=x=>{u(JSON.parse(x))},E=(x,R)=>{!x.getIsGrouped()&&!x.getIsSelected()&&x.getToggleSelectedHandler()(R)},z=(x,R)=>x.getIsGrouped()?"":h("banded-row",R%2===0?"even":"odd"),j=(x,R,P)=>{if(!((x==null?void 0:x.length)===0||R.depth{N(x)},children:[r.jsx(Le,{className:"tw:mb-1 tw:mt-2",children:r.jsx(Pe,{})}),r.jsx(Be,{position:"item-aligned",children:r.jsx(Cn,{children:S.map(x=>r.jsx(Jt,{value:JSON.stringify(x.value),children:x.label},x.label))})})]}),r.jsxs(Ur,{className:"tw:relative tw:flex tw:flex-col tw:overflow-y-auto tw:p-0",children:[e&&r.jsx(Kr,{children:I.getHeaderGroups().map(x=>r.jsx(be,{children:x.headers.filter(R=>R.column.columnDef.header).map(R=>r.jsx(dr,{colSpan:R.colSpan,className:"tw:sticky top-0",children:R.isPlaceholder?void 0:r.jsxs("div",{children:[R.column.getCanGroup()?r.jsx(F,{variant:"ghost",title:`Toggle grouping by ${R.column.columnDef.header}`,onClick:R.column.getToggleGroupingHandler(),type:"button",children:R.column.getIsGrouped()?"🛑":"👊 "}):void 0," ",Mt.flexRender(R.column.columnDef.header,R.getContext())]})},R.id))},x.id))}),r.jsx(qr,{children:I.getRowModel().rows.map((x,R)=>{const P=ft();return r.jsx(be,{"data-state":x.getIsSelected()?"selected":"",className:h(z(x,R)),onClick:G=>E(x,G),children:x.getVisibleCells().map(G=>{if(!(G.getIsPlaceholder()||G.column.columnDef.enableGrouping&&!G.getIsGrouped()&&(G.column.columnDef.id!==Me||!a)))return r.jsx(Oe,{className:h(G.column.columnDef.id,"tw:p-[1px]",j(d,x,G)),children:G.getIsGrouped()?r.jsxs(F,{variant:"link",onClick:x.getToggleExpandedHandler(),type:"button",children:[x.getIsExpanded()&&r.jsx($.ChevronDown,{}),!x.getIsExpanded()&&(P==="ltr"?r.jsx($.ChevronRight,{}):r.jsx($.ChevronLeft,{}))," ",Mt.flexRender(G.column.columnDef.cell,G.getContext())," (",x.subRows.length,")"]}):Mt.flexRender(G.column.columnDef.cell,G.getContext())},G.id)})},x.id)})})]})]})}const Fa=(t,e)=>t.filter(a=>{try{return D.getSectionForBook(a)===e}catch{return!1}}),Qn=(t,e,a)=>Fa(t,e).every(o=>a.includes(o));function ad({section:t,availableBookIds:e,selectedBookIds:a,onToggle:o,localizedStrings:n}){const i=Fa(e,t).length===0,s=n["%scripture_section_ot_short%"],c=n["%scripture_section_nt_short%"],w=n["%scripture_section_dc_short%"],d=n["%scripture_section_extra_short%"];return r.jsx(F,{variant:"outline",size:"sm",onClick:()=>o(t),className:h(Qn(e,t,a)&&!i&&"tw:bg-primary tw:text-primary-foreground tw:hover:bg-primary/70 tw:hover:text-primary-foreground"),disabled:i,children:$i(t,s,c,w,d)})}const jo=5,ia=6;function od({availableBookInfo:t,selectedBookIds:e,onChangeSelectedBookIds:a,localizedStrings:o,localizedBookNames:n}){const i=o["%webView_book_selector_books_selected%"],s=o["%webView_book_selector_select_books%"],c=o["%webView_book_selector_search_books%"],w=o["%webView_book_selector_select_all%"],d=o["%webView_book_selector_clear_all%"],u=o["%webView_book_selector_no_book_found%"],g=o["%webView_book_selector_more%"],{otLong:m,ntLong:p,dcLong:f,extraLong:y}={otLong:o==null?void 0:o["%scripture_section_ot_long%"],ntLong:o==null?void 0:o["%scripture_section_nt_long%"],dcLong:o==null?void 0:o["%scripture_section_dc_long%"],extraLong:o==null?void 0:o["%scripture_section_extra_long%"]},[b,I]=l.useState(!1),[C,T]=l.useState(""),S=l.useRef(void 0),N=l.useRef(!1);if(t.length!==st.Canon.allBookIds.length)throw new Error("availableBookInfo length must match Canon.allBookIds length");const E=l.useMemo(()=>st.Canon.allBookIds.filter((V,q)=>t[q]==="1"&&!st.Canon.isObsolete(st.Canon.bookIdToNumber(V))),[t]),z=l.useMemo(()=>{if(!C.trim()){const M={[D.Section.OT]:[],[D.Section.NT]:[],[D.Section.DC]:[],[D.Section.Extra]:[]};return E.forEach(Y=>{const lt=D.getSectionForBook(Y);M[lt].push(Y)}),M}const V=E.filter(M=>_a(M,C,n)),q={[D.Section.OT]:[],[D.Section.NT]:[],[D.Section.DC]:[],[D.Section.Extra]:[]};return V.forEach(M=>{const Y=D.getSectionForBook(M);q[Y].push(M)}),q},[E,C,n]),j=l.useCallback((V,q=!1)=>{if(!q||!S.current){a(e.includes(V)?e.filter(J=>J!==V):[...e,V]),S.current=V;return}const M=E.findIndex(J=>J===S.current),Y=E.findIndex(J=>J===V);if(M===-1||Y===-1)return;const[lt,kt]=[Math.min(M,Y),Math.max(M,Y)],St=E.slice(lt,kt+1).map(J=>J);a(e.includes(V)?e.filter(J=>!St.includes(J)):[...new Set([...e,...St])])},[e,a,E]),x=V=>{j(V,N.current),N.current=!1},R=(V,q)=>{V.preventDefault(),j(q,V.shiftKey)},P=l.useCallback(V=>{const q=Fa(E,V).map(M=>M);a(Qn(E,V,e)?e.filter(M=>!q.includes(M)):[...new Set([...e,...q])])},[e,a,E]),G=()=>{a(E.map(V=>V))},K=()=>{a([])};return r.jsxs("div",{className:"tw:space-y-2",children:[r.jsx("div",{className:"tw:flex tw:flex-wrap tw:gap-2",children:Object.values(D.Section).map(V=>r.jsx(ad,{section:V,availableBookIds:E,selectedBookIds:e,onToggle:P,localizedStrings:o},V))}),r.jsxs(se,{open:b,onOpenChange:V=>{I(V),V||T("")},children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:"outline",role:"combobox","aria-expanded":b,className:"tw:max-w-64 tw:justify-between",children:[e.length>0?`${i}: ${e.length}`:s,r.jsx($.ChevronsUpDown,{className:"tw:ml-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ce,{className:"tw:w-[500px] tw:max-w-[calc(100vw-2rem)] tw:p-0",align:"start",children:r.jsxs(he,{shouldFilter:!1,onKeyDown:V=>{V.key==="Enter"&&(N.current=V.shiftKey)},children:[r.jsx(Fe,{placeholder:c,value:C,onValueChange:T}),r.jsxs("div",{className:"tw:flex tw:justify-between tw:border-b tw:p-2",children:[r.jsx(F,{variant:"ghost",size:"sm",onClick:G,children:w}),r.jsx(F,{variant:"ghost",size:"sm",onClick:K,children:d})]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:u}),Object.values(D.Section).map((V,q)=>{const M=z[V];if(M.length!==0)return r.jsxs(l.Fragment,{children:[r.jsx(re,{heading:Do(V,m,p,f,y),children:M.map(Y=>r.jsx(Mo,{bookId:Y,isSelected:e.includes(Y),onSelect:()=>x(Y),onMouseDown:lt=>R(lt,Y),section:D.getSectionForBook(Y),showCheck:!0,localizedBookNames:n,commandValue:Ao(Y,n),className:"tw:flex tw:items-center"},Y))}),q0&&r.jsxs("div",{className:"tw:mt-2 tw:flex tw:flex-wrap tw:gap-1",children:[e.slice(0,e.length===ia?ia:jo).map(V=>r.jsx(pe,{className:"tw:hover:bg-secondary",variant:"secondary",children:Ce(V,n)},V)),e.length>ia&&r.jsx(pe,{className:"tw:hover:bg-secondary",variant:"secondary",children:`+${e.length-jo} ${g}`})]})]})}const nd=Object.freeze(["%webView_scope_selector_selected_text%","%webView_scope_selector_verse%","%webView_scope_selector_chapter%","%webView_scope_selector_book%","%webView_scope_selector_current_verse%","%webView_scope_selector_current_chapter%","%webView_scope_selector_current_book%","%webView_scope_selector_choose_books%","%webView_scope_selector_scope%","%webView_scope_selector_select_books%","%webView_scope_selector_range%","%webView_scope_selector_select_range%","%webView_scope_selector_range_start%","%webView_scope_selector_range_end%","%webView_scope_selector_ok%","%webView_scope_selector_cancel%","%webView_scope_selector_navigate%","%webView_book_selector_books_selected%","%webView_book_selector_select_books%","%webView_book_selector_search_books%","%webView_book_selector_select_all%","%webView_book_selector_clear_all%","%webView_book_selector_no_book_found%","%webView_book_selector_more%","%scripture_section_ot_long%","%scripture_section_ot_short%","%scripture_section_nt_long%","%scripture_section_nt_short%","%scripture_section_dc_long%","%scripture_section_dc_short%","%scripture_section_extra_long%","%scripture_section_extra_short%"]),Ct=(t,e)=>t[e]??e,id=Object.freeze([" ","-"]);function sd({scope:t,availableScopes:e,onScopeChange:a,availableBookInfo:o,selectedBookIds:n,onSelectedBookIdsChange:i,localizedStrings:s,localizedBookNames:c,id:w,variant:d="radio",rangeStart:u,rangeEnd:g,onRangeStartChange:m,onRangeEndChange:p,currentScrRef:f,onCurrentScrRefChange:y,bookChapterControlLocalizedStrings:b,getEndVerse:I,hideLabel:C=!1,buttonClassName:T}){const S=Ct(s,"%webView_scope_selector_selected_text%"),N=Ct(s,"%webView_scope_selector_verse%"),E=Ct(s,"%webView_scope_selector_chapter%"),z=Ct(s,"%webView_scope_selector_book%"),j=Ct(s,"%webView_scope_selector_current_verse%"),x=Ct(s,"%webView_scope_selector_current_chapter%"),R=Ct(s,"%webView_scope_selector_current_book%"),P=Ct(s,"%webView_scope_selector_choose_books%"),G=Ct(s,"%webView_scope_selector_scope%"),K=Ct(s,"%webView_scope_selector_select_books%"),V=Ct(s,"%webView_scope_selector_range%"),q=Ct(s,"%webView_scope_selector_select_range%"),M=Ct(s,"%webView_scope_selector_range_start%"),Y=Ct(s,"%webView_scope_selector_range_end%"),lt=Ct(s,"%webView_scope_selector_ok%"),kt=Ct(s,"%webView_scope_selector_cancel%"),St=Ct(s,"%webView_scope_selector_navigate%"),J=L=>{if(!f)return;const X=f.book.toUpperCase();switch(L){case"verse":return D.formatScrRef(f,"id");case"chapter":return`${X} ${f.chapterNum}`;case"book":return X;default:return}},Et=[{value:"selectedText",label:S,id:"scope-selected-text"},{value:"verse",label:N,dropdownLabel:j,scrRefSuffix:J("verse"),id:"scope-verse"},{value:"chapter",label:E,dropdownLabel:x,scrRefSuffix:J("chapter"),id:"scope-chapter"},{value:"book",label:z,dropdownLabel:R,scrRefSuffix:J("book"),id:"scope-book"},{value:"selectedBooks",label:P,id:"scope-selected"},{value:"range",label:V,id:"scope-range"}],U=(L,X,Vt=!1)=>r.jsxs(r.Fragment,{children:[L,X&&!Vt&&r.jsxs("span",{className:"tw:text-muted-foreground",children:[": ",X]})]}),tt=e?Et.filter(L=>e.includes(L.value)):Et,rt=f??D.defaultScrRef,at=u??rt,ot=g??rt,Lt=()=>{},gt=l.useRef(null),Ft=l.useRef(null),Gt=l.useRef(!1),A=l.useRef(null),Tt=l.useRef(!1),[Bt,Qt]=l.useState(void 0),Ut=l.useRef(!1),Rt=l.useRef(!1),je=l.useRef(null),Kt=l.useCallback(L=>{if(L){Qt("start"),Ut.current=!1;return}Qt(X=>X==="start"?void 0:X),Ut.current&&(Ut.current=!1,requestAnimationFrame(()=>{var Vt;const X=(Vt=gt.current)==null?void 0:Vt.querySelector("button");X==null||X.click()}))},[]),qt=l.useCallback(L=>{if(L){Qt("end"),Rt.current=!1;return}Qt(X=>X==="end"?void 0:X)},[]),B=l.useCallback(L=>{m==null||m(L),p==null||p(L),Ut.current=!0},[m,p]),W=l.useCallback(L=>{p==null||p(L),Rt.current=!0},[p]),nt=l.useCallback(L=>{a(L),L==="selectedBooks"&&n.length===0&&(f!=null&&f.book)&&i([f.book])},[a,n,f,i]),et=tt.find(L=>L.value===t),wt=()=>t==="selectedBooks"&&n.length>0?n.map(L=>L.toUpperCase()).join(", "):t==="range"?D.formatScrRefRange(at,ot,{optionOrLocalizedBookName:"id",endRefOptionOrLocalizedBookName:"id",repeatBookName:!0}):et?U(et.label,et.scrRefSuffix):t,mt=tt.filter(L=>L.value!=="selectedBooks"&&L.value!=="range"),vt=tt.find(L=>L.value==="selectedBooks"),ut=tt.find(L=>L.value==="range"),[jt,O]=l.useState(!1),[ct,dt]=l.useState(void 0),[bt,Re]=l.useState(void 0),[_e,Qe]=l.useState(void 0),[ze,tr]=l.useState(void 0),[er,gr]=l.useState([]),hr=d==="dropdown"&&ct==="selectedBooks",_=r.jsx(od,{availableBookInfo:o,selectedBookIds:hr?er:n,onChangeSelectedBookIds:hr?gr:i,localizedStrings:s,localizedBookNames:c}),H=Bt==="end",Z=Bt==="start",_t="tw:text-muted-foreground",Wt=d==="dropdown"&&ct==="range",Ue=Wt?Qe:B,zt=Wt?tr:p?W:Lt,xt=r.jsxs("div",{className:"tw:flex tw:flex-wrap tw:items-end tw:gap-4",children:[r.jsxs("div",{className:"tw:grid tw:gap-2",children:[r.jsx(yt,{htmlFor:"scope-range-start",className:h(H&&_t),children:M}),r.jsx(Nr,{id:"scope-range-start",scrRef:Wt?_e??at:at,handleSubmit:Ue,localizedBookNames:c,localizedStrings:b,getEndVerse:I,submitKeys:id,onOpenChange:Kt,className:h(H&&_t),modal:!0})]}),r.jsxs("div",{ref:gt,className:"tw:grid tw:gap-2",children:[r.jsx(yt,{htmlFor:"scope-range-end",className:h(Z&&_t),children:Y}),r.jsx(Nr,{id:"scope-range-end",scrRef:Wt?ze??ot:ot,handleSubmit:zt,localizedBookNames:c,localizedStrings:b,getEndVerse:I,disableReferencesUpTo:Wt?_e??at:at,onOpenChange:qt,onCloseAutoFocus:L=>{var X;Rt.current&&(Rt.current=!1,L.preventDefault(),(X=je.current)==null||X.focus())},className:h(Z&&_t),modal:!0,align:"start"})]})]}),Nt=l.useRef({}),pt=l.useCallback(L=>X=>{Nt.current[L]=X},[]),Ht=l.useRef(null);l.useEffect(()=>{if(!jt)return;let L=0;const X=requestAnimationFrame(()=>{L=requestAnimationFrame(()=>{var Vt;(Vt=Nt.current[t])==null||Vt.focus()})});return()=>{cancelAnimationFrame(X),L&&cancelAnimationFrame(L)}},[jt,t]);const[Yt,De]=l.useState(null),[fr,li]=l.useState(null),[mr,di]=l.useState(null),wi=200,[ui,pi]=l.useState(!1);l.useEffect(()=>{if(!mr||typeof ResizeObserver>"u")return;const L=new ResizeObserver(([X])=>{pi(X.contentRect.widthL.disconnect()},[mr]);const qa=l.useCallback(L=>{Re(L),Qe(at),tr(ot),gr(n),O(!1),dt(L)},[at,ot,n]),Ha=l.useCallback(()=>{bt!==void 0&&(bt==="range"?(_e&&(m==null||m(_e)),ze&&(p==null||p(ze))):bt==="selectedBooks"&&i(er),nt(bt),dt(void 0),Re(void 0))},[bt,_e,ze,er,m,p,i,nt]),vr=l.useCallback(L=>{L||(dt(void 0),Re(void 0))},[]),Ya=l.useCallback(L=>{var X;L.preventDefault(),(X=Ht.current)==null||X.focus()},[]),Wa=L=>t===L?r.jsx("span",{className:"tw:absolute tw:flex tw:h-3.5 tw:w-3.5 tw:items-center tw:justify-center tw:ltr:left-2 tw:rtl:right-2",children:r.jsx($.Check,{className:"tw:h-4 tw:w-4"})}):void 0;return r.jsxs("div",{id:w,className:"tw:grid tw:gap-4",children:[r.jsxs("div",{className:"tw:grid tw:gap-2",children:[!C&&r.jsx(yt,{children:G}),d==="dropdown"?r.jsxs(ae,{open:jt,onOpenChange:O,children:[r.jsx(oe,{asChild:!0,children:r.jsxs(F,{ref:Ht,variant:"outline",role:"combobox",className:h("tw:w-full tw:justify-between tw:overflow-hidden tw:font-normal",T),children:[r.jsx("span",{className:"tw:min-w-0 tw:flex-1 tw:truncate tw:text-start",children:wt()}),r.jsx($.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ne,{ref:di,className:"tw:w-[var(--radix-dropdown-menu-trigger-width)] tw:min-w-[12rem]",align:"start",children:r.jsxs(jr,{container:mr,children:[mt.map(({value:L,label:X,dropdownLabel:Vt,scrRefSuffix:ar,id:gi})=>r.jsxs(Se,{ref:pt(L),className:"tw:relative tw:ps-8 data-[highlighted]:tw:bg-accent data-[highlighted]:tw:text-accent-foreground",onSelect:()=>nt(L),"data-selected":t===L?"true":void 0,children:[t===L&&r.jsx("span",{className:"tw:absolute tw:flex tw:h-3.5 tw:w-3.5 tw:items-center tw:justify-center tw:ltr:left-2 tw:rtl:right-2",children:r.jsx($.Check,{className:"tw:h-4 tw:w-4"})}),U(Vt??X,ar,ui)]},gi)),(vt||ut)&&r.jsx(ye,{}),vt&&r.jsxs(Se,{ref:pt("selectedBooks"),className:h("tw:relative tw:ps-8","data-[highlighted]:tw:bg-accent data-[highlighted]:tw:text-accent-foreground"),onSelect:()=>qa("selectedBooks"),"data-selected":t==="selectedBooks"?"true":void 0,children:[Wa("selectedBooks"),`${vt.label}…`]}),ut&&r.jsxs(Se,{ref:pt("range"),className:h("tw:relative tw:ps-8","data-[highlighted]:tw:bg-accent data-[highlighted]:tw:text-accent-foreground"),onSelect:()=>qa("range"),"data-selected":t==="range"?"true":void 0,children:[Wa("range"),`${ut.label}…`]}),y&&r.jsxs(r.Fragment,{children:[r.jsx(ye,{}),r.jsx(Ee,{className:"tw:px-2 tw:py-1.5 tw:text-xs tw:font-medium tw:text-muted-foreground",children:St}),r.jsx(Se,{ref:A,className:"tw:p-0",onSelect:L=>{var X,Vt;if(L.preventDefault(),Gt.current){Gt.current=!1;return}Tt.current||(Vt=(X=Ft.current)==null?void 0:X.querySelector("button"))==null||Vt.click()},children:r.jsx("div",{ref:Ft,className:"tw:w-full tw:px-1 tw:pb-1",onPointerDownCapture:L=>{const X=L.target instanceof HTMLElement?L.target:void 0;X!=null&&X.closest("button")&&(Gt.current=!0,requestAnimationFrame(()=>{Gt.current=!1}))},children:r.jsx(Nr,{id:"scope-navigate",scrRef:f??D.defaultScrRef,handleSubmit:y,localizedBookNames:c,localizedStrings:b,getEndVerse:I,triggerVariant:"ghost",onOpenChange:L=>{Tt.current=L},onCloseAutoFocus:L=>{var X;L.preventDefault(),(X=A.current)==null||X.focus()},modal:!0,className:"tw:w-full tw:min-w-0 tw:max-w-none tw:justify-between tw:px-2 tw:font-normal",triggerContent:r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"tw:min-w-0 tw:flex-1 tw:truncate tw:text-start",children:D.formatScrRef(f??D.defaultScrRef,"id")}),r.jsx($.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})})})})]})]})})]}):r.jsx(Na,{value:t,onValueChange:nt,className:"tw:flex tw:flex-col tw:space-y-1",children:tt.map(({value:L,label:X,scrRefSuffix:Vt,id:ar})=>r.jsxs("div",{className:"tw:flex tw:items-center",children:[r.jsx(Dr,{className:"tw:me-2",value:L,id:ar}),r.jsx(yt,{htmlFor:ar,children:U(X,Vt)})]},ar))})]}),d==="radio"&&t==="selectedBooks"&&r.jsxs("div",{className:"tw:grid tw:gap-2",children:[r.jsx(yt,{children:K}),_]}),d==="radio"&&t==="range"&&xt,d==="dropdown"&&vt&&r.jsx(Er,{open:ct==="selectedBooks",onOpenChange:vr,children:r.jsx(Tr,{ref:li,onCloseAutoFocus:Ya,onEscapeKeyDown:L=>{fr!=null&&fr.querySelector('[data-state="open"]')&&L.preventDefault()},children:r.jsxs(jr,{container:fr,children:[r.jsx(Rr,{className:"tw:pe-8",children:r.jsx(zr,{children:P})}),_,r.jsxs(da,{children:[r.jsx(F,{variant:"outline",onClick:()=>vr(!1),children:kt}),r.jsx(F,{onClick:Ha,children:lt})]})]})})}),d==="dropdown"&&ut&&r.jsx(Er,{open:ct==="range",onOpenChange:vr,children:r.jsx(Tr,{ref:De,onCloseAutoFocus:Ya,onEscapeKeyDown:L=>{Yt!=null&&Yt.querySelector('[data-state="open"]')&&L.preventDefault()},children:r.jsxs(jr,{container:Yt,children:[r.jsx(Rr,{className:"tw:pe-8",children:r.jsx(zr,{children:q})}),xt,r.jsxs(da,{children:[r.jsx(F,{variant:"outline",onClick:()=>vr(!1),children:kt}),r.jsx(F,{ref:je,onClick:Ha,children:lt})]})]})})})]})}function cd({availableScrollGroupIds:t,scrollGroupId:e,onChangeScrollGroupId:a,localizedStrings:o={},size:n="sm",className:i,id:s}){const c={...D.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS,...Object.fromEntries(Object.entries(o).map(([d,u])=>[d,d===u&&d in D.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS?D.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS[d]:u]))},w=ft();return r.jsxs(Ae,{value:`${e}`,onValueChange:d=>a(d==="undefined"?void 0:parseInt(d,10)),children:[r.jsx(Le,{size:n,className:h("pr-twp tw:w-auto",i),children:r.jsx(Pe,{placeholder:c[D.getLocalizeKeyForScrollGroupId(e)]??e})}),r.jsx(Be,{id:s,align:w==="rtl"?"end":"start",style:{zIndex:We},children:t.map(d=>r.jsx(Jt,{value:`${d}`,children:c[D.getLocalizeKeyForScrollGroupId(d)]},`${d}`))})]})}function ld({children:t}){return r.jsx("div",{className:"pr-twp tw:grid",children:t})}function dd({primary:t,secondary:e,children:a,isLoading:o=!1,loadingMessage:n}){return r.jsxs("div",{className:"tw:flex tw:items-center tw:justify-between tw:space-x-4 tw:py-2",children:[r.jsxs("div",{children:[r.jsx("p",{className:"tw:text-sm tw:font-medium tw:leading-none",children:t}),r.jsx("p",{className:"tw:whitespace-normal tw:break-words tw:text-sm tw:text-muted-foreground",children:e})]}),o?r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:n}):r.jsx("div",{children:a})]})}function wd({primary:t,secondary:e,includeSeparator:a=!1}){return r.jsxs("div",{className:"tw:space-y-4 tw:py-2",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"tw:text-lg tw:font-medium",children:t}),r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:e})]}),a?r.jsx($e,{}):""]})}function ti(t,e){var a;return(a=Object.entries(t).find(([,o])=>"menuItem"in o&&o.menuItem===e))==null?void 0:a[0]}function Lr({icon:t,menuLabel:e,leading:a}){return t?r.jsx("img",{className:h("tw:max-h-5 tw:max-w-5",a?"tw:me-2":"tw:ms-2"),src:t,alt:`${a?"Leading":"Trailing"} icon for ${e}`}):void 0}const ei=(t,e,a,o)=>a?Object.entries(t).filter(([i,s])=>"column"in s&&s.column===a||i===a).sort(([,i],[,s])=>i.order-s.order).flatMap(([i])=>e.filter(c=>c.group===i).sort((c,w)=>c.order-w.order).map(c=>r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:"command"in c?r.jsxs(Se,{onClick:()=>{o(c)},children:[c.iconPathBefore&&r.jsx(Lr,{icon:c.iconPathBefore,menuLabel:c.label,leading:!0}),c.label,c.iconPathAfter&&r.jsx(Lr,{icon:c.iconPathAfter,menuLabel:c.label})]},`dropdown-menu-item-${c.label}-${c.command}`):r.jsxs(jn,{children:[r.jsx(_n,{children:c.label}),r.jsx(xn,{children:r.jsx(Nn,{children:ei(t,e,ti(t,c.id),o)})})]},`dropdown-menu-sub-${c.label}-${c.id}`)}),c.tooltip&&r.jsx(Pt,{children:c.tooltip})]},`tooltip-${c.label}-${"command"in c?c.command:c.id}`))):void 0;function Br({onSelectMenuItem:t,menuData:e,tabLabel:a,icon:o,className:n,variant:i,buttonVariant:s="ghost",id:c}){return r.jsxs(ae,{variant:i,children:[r.jsx(oe,{"aria-label":a,className:n,asChild:!0,id:c,children:r.jsx(F,{variant:s,size:"icon",children:o??r.jsx($.MenuIcon,{})})}),r.jsx(ne,{align:"start",style:{zIndex:We},children:Object.entries(e.columns).filter(([,w])=>typeof w=="object").sort(([,w],[,d])=>typeof w=="boolean"||typeof d=="boolean"?0:w.order-d.order).map(([w],d,u)=>r.jsxs(l.Fragment,{children:[r.jsx(La,{children:r.jsx(Ot,{children:ei(e.groups,e.items,w,t)})}),dr.jsx("div",{ref:o,className:`tw:sticky tw:top-0 tw:box-border tw:flex tw:h-14 tw:flex-row tw:items-center tw:justify-between tw:gap-2 tw:overflow-clip tw:px-4 tw:py-2 tw:text-foreground tw:@container/toolbar ${e}`,id:t,children:a}));function ud({onSelectProjectMenuItem:t,onSelectViewInfoMenuItem:e,projectMenuData:a,tabViewMenuData:o,id:n,className:i,startAreaChildren:s,centerAreaChildren:c,endAreaChildren:w,menuButtonIcon:d}){return r.jsxs(ri,{className:`tw:w-full tw:border ${i}`,id:n,children:[a&&r.jsx(Br,{onSelectMenuItem:t,menuData:a,tabLabel:"Project",icon:d??r.jsx($.Menu,{}),buttonVariant:"ghost"}),s&&r.jsx("div",{className:"tw:flex tw:h-full tw:shrink tw:grow-[10] tw:flex-row tw:flex-wrap tw:items-start tw:gap-x-1 tw:gap-y-2 tw:overflow-clip",children:s}),c&&r.jsx("div",{className:"tw:flex tw:h-full tw:shrink tw:grow-[1] tw:basis-0 tw:flex-row tw:flex-wrap tw:items-start tw:justify-center tw:gap-x-1 tw:gap-y-2 tw:overflow-clip tw:@sm:basis-auto",children:c}),r.jsxs("div",{className:"tw:flex tw:h-full tw:shrink tw:grow-[1] tw:flex-row-reverse tw:flex-wrap tw:items-start tw:gap-x-1 tw:gap-y-2 tw:overflow-clip",children:[o&&r.jsx(Br,{onSelectMenuItem:e,menuData:o,tabLabel:"View Info",icon:r.jsx($.EllipsisVertical,{}),className:"tw:h-full"}),w]})]})}function pd({onSelectProjectMenuItem:t,projectMenuData:e,id:a,className:o,menuButtonIcon:n}){return r.jsx(ri,{className:"tw:pointer-events-none",id:a,children:e&&r.jsx(Br,{onSelectMenuItem:t,menuData:e,tabLabel:"Project",icon:n,className:`tw:pointer-events-auto tw:shadow-lg ${o}`,buttonVariant:"outline"})})}const Ga=l.forwardRef(({className:t,...e},a)=>{const o=ft();return r.jsx(k.Tabs.Root,{orientation:"vertical",ref:a,className:h("tw:flex tw:gap-1 tw:rounded-md tw:text-muted-foreground",t),...e,dir:o})});Ga.displayName=k.Tabs.List.displayName;const Ua=l.forwardRef(({className:t,...e},a)=>r.jsx(k.Tabs.List,{ref:a,className:h("tw:flex tw:items-center tw:w-[124px] tw:justify-center tw:rounded-md tw:bg-muted tw:p-1 tw:text-muted-foreground",t),...e}));Ua.displayName=k.Tabs.List.displayName;const ai=l.forwardRef(({className:t,...e},a)=>r.jsx(k.Tabs.Trigger,{ref:a,...e,className:h("tw:inline-flex tw:w-[116px] tw:cursor-pointer tw:items-center tw:justify-center tw:break-words tw:rounded-sm tw:border-0 tw:bg-muted tw:px-3 tw:py-1.5 tw:text-sm tw:font-medium tw:text-inherit tw:ring-offset-background tw:transition-all tw:hover:text-foreground tw:focus-visible:outline-hidden tw:focus-visible:ring-2 tw:focus-visible:ring-ring tw:focus-visible:ring-offset-2 tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:data-[state=active]:bg-background tw:data-[state=active]:text-foreground tw:data-[state=active]:shadow-sm tw:overflow-clip",t)})),Ka=l.forwardRef(({className:t,...e},a)=>r.jsx(k.Tabs.Content,{ref:a,className:h("tw:ms-5 tw:flex-grow tw:text-foreground tw:ring-offset-background tw:focus-visible:outline-hidden tw:focus-visible:ring-2 tw:focus-visible:ring-ring tw:focus-visible:ring-offset-2",t),...e}));Ka.displayName=k.Tabs.Content.displayName;function gd({tabList:t,searchValue:e,onSearch:a,searchPlaceholder:o,headerTitle:n,searchClassName:i,id:s}){return r.jsxs("div",{id:s,className:"pr-twp",children:[r.jsxs("div",{className:"tw:sticky tw:top-0 tw:space-y-2 tw:pb-2",children:[n?r.jsx("h1",{children:n}):"",r.jsx(Hr,{className:i,value:e,onSearch:a,placeholder:o})]}),r.jsxs(Ga,{children:[r.jsx(Ua,{children:t.map(c=>r.jsx(ai,{value:c.value,children:c.value},c.key))}),t.map(c=>r.jsx(Ka,{value:c.value,children:c.content},c.key))]})]})}function hd({className:t,variant:e="default",...a}){const o=l.useMemo(()=>({variant:e}),[e]);return r.jsx(Pa.Provider,{value:o,children:r.jsx(k.Menubar.Root,{"data-slot":"menubar",className:h("tw:flex tw:h-8 tw:items-center tw:gap-0.5 tw:rounded-lg tw:border tw:p-[3px]",t),...a})})}function fd({...t}){return r.jsx(k.Menubar.Menu,{"data-slot":"menubar-menu",...t})}function md({...t}){return r.jsx(k.Menubar.Portal,{"data-slot":"menubar-portal",...t})}function vd({className:t,...e}){const a=ke();return r.jsx(k.Menubar.Trigger,{"data-slot":"menubar-trigger",className:h("tw:flex tw:items-center tw:rounded-sm tw:px-1.5 tw:py-[2px] tw:text-sm tw:font-medium tw:outline-hidden tw:select-none tw:hover:bg-muted tw:aria-expanded:bg-muted","pr-twp",Ge({variant:a.variant,className:t})),...e})}function bd({className:t,align:e="start",alignOffset:a=-4,sideOffset:o=8,...n}){const i=ke();return r.jsx(md,{children:r.jsx(k.Menubar.Content,{"data-slot":"menubar-content",align:e,alignOffset:a,sideOffset:o,className:h("tw:z-50 tw:min-w-36 tw:origin-(--radix-menubar-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150","pr-twp",{"tw:bg-popover":i.variant==="muted"},t),...n})})}function xd({className:t,inset:e,variant:a="default",...o}){const n=ke();return r.jsx(k.Menubar.Item,{"data-slot":"menubar-item","data-inset":e,"data-variant":a,className:h("tw:group/menubar-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:data-[variant=destructive]:focus:text-destructive tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:data-[variant=destructive]:*:[svg]:text-destructive!",Ge({variant:n.variant,className:t})),...o})}function yd({className:t,...e}){return r.jsx(k.Menubar.Separator,{"data-slot":"menubar-separator",className:h("tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function kd({...t}){return r.jsx(k.Menubar.Sub,{"data-slot":"menubar-sub",...t})}function jd({className:t,inset:e,children:a,...o}){const n=ke();return r.jsxs(k.Menubar.SubTrigger,{"data-slot":"menubar-sub-trigger","data-inset":e,className:h("tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-none tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-open:bg-accent tw:data-open:text-accent-foreground tw:[&_svg:not([class*=size-])]:size-4",Ge({variant:n.variant,className:t})),...o,children:[a,r.jsx(ht.IconChevronRight,{className:"tw:ms-auto tw:size-4"})]})}function _d({className:t,...e}){const a=ke();return r.jsx(k.Menubar.SubContent,{"data-slot":"menubar-sub-content",className:h("tw:z-50 tw:min-w-32 tw:origin-(--radix-menubar-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-lg tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",{"tw:bg-popover":a.variant==="muted"},t),...e})}const nr=(t,e)=>{setTimeout(()=>{e.forEach(a=>{var o;(o=t.current)==null||o.dispatchEvent(new KeyboardEvent("keydown",a))})},0)},oi=(t,e,a,o)=>{if(!a)return;const n=Object.entries(t).filter(([i,s])=>"column"in s&&s.column===a||i===a).sort(([,i],[,s])=>i.order-s.order);return n.flatMap(([i],s)=>{const c=e.filter(d=>d.group===i).sort((d,u)=>d.order-u.order).map(d=>r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:"command"in d?r.jsxs(xd,{onClick:()=>{o(d)},children:[d.iconPathBefore&&r.jsx(Lr,{icon:d.iconPathBefore,menuLabel:d.label,leading:!0}),d.label,d.iconPathAfter&&r.jsx(Lr,{icon:d.iconPathAfter,menuLabel:d.label})]},`menubar-item-${d.label}-${d.command}`):r.jsxs(kd,{children:[r.jsx(jd,{children:d.label}),r.jsx(_d,{children:oi(t,e,ti(t,d.id),o)})]},`menubar-sub-${d.label}-${d.id}`)}),d.tooltip&&r.jsx(Pt,{children:d.tooltip})]},`tooltip-${d.label}-${"command"in d?d.command:d.id}`)),w=[...c];return c.length>0&&s{switch(u){case"platform.app":return i;case"platform.window":return s;case"platform.layout":return c;case"platform.help":return w;default:return}};if(xi.useHotkeys(["alt","alt+p","alt+l","alt+n","alt+h"],(u,g)=>{var f,y,b,I;u.preventDefault();const m={key:"Escape",code:"Escape",keyCode:27,bubbles:!0},p={key:" ",code:"Space",keyCode:32,bubbles:!0};switch(g.hotkey){case"alt":nr(i,[m]);break;case"alt+p":(f=i.current)==null||f.focus(),nr(i,[m,p]);break;case"alt+l":(y=s.current)==null||y.focus(),nr(s,[m,p]);break;case"alt+n":(b=c.current)==null||b.focus(),nr(c,[m,p]);break;case"alt+h":(I=w.current)==null||I.focus(),nr(w,[m,p]);break}}),l.useEffect(()=>{if(!a||!n.current)return;const u=new MutationObserver(p=>{p.forEach(f=>{if(f.attributeName==="data-state"&&f.target instanceof HTMLElement){const y=f.target.getAttribute("data-state");a(y==="open")}})});return n.current.querySelectorAll("[data-state]").forEach(p=>{u.observe(p,{attributes:!0})}),()=>u.disconnect()},[a]),!!t)return r.jsx(hd,{ref:n,className:"pr-twp tw:border-0 tw:bg-transparent",variant:o,children:Object.entries(t.columns).filter(([,u])=>typeof u=="object").sort(([,u],[,g])=>typeof u=="boolean"||typeof g=="boolean"?0:u.order-g.order).map(([u,g])=>r.jsxs(fd,{children:[r.jsx(vd,{ref:d(u),children:typeof g=="object"&&"label"in g&&g.label}),r.jsx(bd,{style:{zIndex:We},children:r.jsx(Ot,{children:oi(t.groups,t.items,u,e)})})]},u))})}function Cd(t){switch(t){case void 0:return;case"darwin":return"tw:ps-[85px]";default:return"tw:pe-[calc(138px+1rem)]"}}function Sd({menuData:t,onOpenChange:e,onSelectMenuItem:a,className:o,id:n,children:i,appMenuAreaChildren:s,configAreaChildren:c,shouldUseAsAppDragArea:w,menubarVariant:d="default"}){const u=l.useRef(void 0);return r.jsx("div",{className:h("tw:border tw:px-4 tw:text-foreground",o),ref:u,style:{position:"relative"},id:n,children:r.jsxs("div",{className:"tw:flex tw:h-full tw:w-full tw:justify-between tw:overflow-hidden",style:w?{WebkitAppRegion:"drag"}:void 0,children:[r.jsx("div",{className:"tw:flex tw:grow tw:basis-0",children:r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-2",style:w?{WebkitAppRegion:"no-drag"}:void 0,children:[s,t&&r.jsx(Nd,{menuData:t,onOpenChange:e,onSelectMenuItem:a,variant:d})]})}),r.jsx("div",{className:"tw:flex tw:items-center tw:gap-2 tw:px-2",style:w?{WebkitAppRegion:"no-drag"}:void 0,children:i}),r.jsx("div",{className:"tw:flex tw:min-w-0 tw:grow tw:basis-0 tw:justify-end",children:r.jsx("div",{className:"tw:flex tw:min-w-0 tw:items-center tw:gap-2 tw:pe-1",style:w?{WebkitAppRegion:"no-drag"}:void 0,children:c})})]})})}const Ed=(t,e)=>t[e]??e;function Td({knownUiLanguages:t,primaryLanguage:e="en",fallbackLanguages:a=[],onLanguagesChange:o,onPrimaryLanguageChange:n,onFallbackLanguagesChange:i,localizedStrings:s,className:c,id:w}){const d=Ed(s,"%settings_uiLanguageSelector_fallbackLanguages%"),[u,g]=l.useState(!1),m=f=>{n&&n(f),o&&o([f,...a.filter(y=>y!==f)]),i&&a.find(y=>y===f)&&i([...a.filter(y=>y!==f)]),g(!1)},p=(f,y)=>{var I,C,T,S,N,E;const b=y!==f?((C=(I=t[f])==null?void 0:I.uiNames)==null?void 0:C[y])??((S=(T=t[f])==null?void 0:T.uiNames)==null?void 0:S.en):void 0;return b?`${(N=t[f])==null?void 0:N.autonym} (${b})`:(E=t[f])==null?void 0:E.autonym};return r.jsxs("div",{id:w,className:h("pr-twp tw:max-w-sm",c),children:[r.jsxs(Ae,{name:"uiLanguage",value:e,onValueChange:m,open:u,onOpenChange:f=>g(f),children:[r.jsx(Le,{children:r.jsx(Pe,{})}),r.jsx(Be,{style:{zIndex:We},children:Object.keys(t).map(f=>r.jsx(Jt,{value:f,children:p(f,e)},f))})]}),e!=="en"&&r.jsx("div",{className:"tw:pt-3",children:r.jsx(yt,{className:"tw:font-normal tw:text-muted-foreground",children:D.formatReplacementString(d,{fallbackLanguages:(a==null?void 0:a.length)>0?a.map(f=>p(f,e)).join(", "):t.en.autonym})})})]})}function Rd({item:t,createLabel:e,createComplexLabel:a}){return e?r.jsx(yt,{children:e(t)}):a?r.jsx(yt,{children:a(t)}):r.jsx(yt,{children:t})}function zd({id:t,className:e,listItems:a,selectedListItems:o,handleSelectListItem:n,createLabel:i,createComplexLabel:s}){return r.jsx("div",{id:t,className:e,children:a.map(c=>r.jsxs("div",{className:"tw:m-2 tw:flex tw:items-center",children:[r.jsx(Va,{className:"tw:me-2 tw:align-middle",checked:o.includes(c),onCheckedChange:w=>n(c,w)}),r.jsx(Rd,{item:c,createLabel:i,createComplexLabel:s})]},c))})}function Dd({scrRef:t,onClick:e,tooltipContent:a,ariaLabel:o,className:n,testId:i="linked-scr-ref-button"}){if(t==="")return;const s=r.jsx(F,{type:"button",variant:"link",onClick:e,disabled:!e,"aria-label":o,className:h("tw:h-auto tw:p-0 tw:text-start tw:font-mono tw:text-sm",n),"data-testid":i,children:t});return a?r.jsx(Ot,{delayDuration:0,children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:s}),r.jsx(Pt,{children:a})]})}):s}function Id({cardKey:t,isSelected:e,onSelect:a,isDenied:o,isHidden:n=!1,className:i,children:s,selectedButtons:c,hoverButtons:w,dropdownContent:d,additionalContent:u,accentColor:g,showDropdownOnHover:m=!1}){const p=f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),a())};return r.jsxs("div",{hidden:n,onClick:a,onKeyDown:p,role:"button",tabIndex:0,"aria-pressed":e,className:h("tw:group tw:relative tw:min-w-36 tw:rounded-xl tw:border tw:shadow-none tw:hover:bg-muted/50",{"tw:opacity-50 tw:hover:opacity-100":o&&!e},{"tw:bg-accent":e},{"tw:bg-transparent":!e},i),children:[r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-2 tw:p-4",children:[r.jsxs("div",{className:"tw:flex tw:justify-between tw:overflow-hidden",children:[r.jsx("div",{className:"tw:min-w-0 tw:flex-1",children:s}),e&&c,!e&&w&&r.jsx("div",{className:"tw:invisible tw:group-hover:visible",children:w}),!e&&m&&d&&r.jsx("div",{className:"tw:invisible tw:group-hover:visible",children:r.jsxs(ae,{children:[r.jsx(oe,{className:h(g&&"tw:me-1"),asChild:!0,children:r.jsx(F,{className:"tw:m-1 tw:h-6 tw:w-6",variant:"ghost",size:"icon",children:r.jsx($.MoreVertical,{})})}),r.jsx(ne,{align:"end",children:d})]})}),e&&d&&r.jsxs(ae,{children:[r.jsx(oe,{className:h(g&&"tw:me-1"),asChild:!0,children:r.jsx(F,{className:"tw:m-1 tw:h-6 tw:w-6",variant:"ghost",size:"icon",children:r.jsx($.MoreVertical,{})})}),r.jsx(ne,{align:"end",children:d})]})]}),u&&r.jsx("div",{className:"tw:w-fit tw:min-w-0 tw:max-w-full tw:overflow-hidden",children:u})]}),g&&r.jsx("div",{className:`tw:absolute tw:right-0 tw:top-0 tw:h-full tw:w-2 tw:rounded-r-xl ${g}`})]},t)}const ni=l.forwardRef(({className:t,...e},a)=>r.jsx($.LoaderCircle,{size:35,className:h("tw:animate-spin",t),...e,ref:a}));ni.displayName="Spinner";function Md({id:t,isDisabled:e=!1,hasError:a=!1,isFullWidth:o=!1,helperText:n,label:i,placeholder:s,isRequired:c=!1,className:w,defaultValue:d,value:u,onChange:g,onFocus:m,onBlur:p}){return r.jsxs("div",{className:h("tw:inline-grid tw:items-center tw:gap-1.5",{"tw:w-full":o}),children:[r.jsx(yt,{htmlFor:t,className:h({"tw:text-red-600":a,"tw:hidden":!i}),children:`${i}${c?"*":""}`}),r.jsx(Xe,{id:t,disabled:e,placeholder:s,required:c,className:h(w,{"tw:border-red-600":a}),defaultValue:d,value:u,onChange:g,onFocus:m,onBlur:p}),r.jsx("p",{className:h({"tw:hidden":!n}),children:n})]})}const Od=ge.cva("tw:group/alert tw:relative tw:grid tw:w-full tw:gap-0.5 tw:rounded-lg tw:border tw:px-2.5 tw:py-2 tw:text-start tw:text-sm tw:has-data-[slot=alert-action]:relative tw:has-data-[slot=alert-action]:pe-18 tw:has-[>svg]:grid-cols-[auto_1fr] tw:has-[>svg]:gap-x-2 tw:*:[svg]:row-span-2 tw:*:[svg]:translate-y-0.5 tw:*:[svg]:text-current tw:*:[svg:not([class*=size-])]:size-4 tw:has-[>img]:grid-cols-[auto_1fr] tw:has-[>img]:gap-x-2 tw:*:[img]:row-span-2 tw:*:[img]:translate-y-0.5 tw:*:[img]:text-current tw:*:[img:not([class*=size-])]:size-4",{variants:{variant:{default:"tw:bg-card tw:text-card-foreground",destructive:"tw:bg-card tw:text-destructive tw:*:data-[slot=alert-description]:text-destructive/90 tw:*:[svg]:text-current tw:*:[img]:text-current"}},defaultVariants:{variant:"default"}});function $d({className:t,variant:e,...a}){return r.jsx("div",{"data-slot":"alert",role:"alert",className:h("pr-twp",Od({variant:e}),t),...a})}function Ad({className:t,...e}){return r.jsx("div",{"data-slot":"alert-title",className:h("tw:font-medium tw:group-has-[>svg]/alert:col-start-2 tw:[&_a]:underline tw:[&_a]:underline-offset-3 tw:[&_a]:hover:text-foreground",t),...e})}function Pd({className:t,...e}){return r.jsx("div",{"data-slot":"alert-description",className:h("tw:text-sm tw:text-balance tw:text-muted-foreground tw:md:text-pretty tw:[&_a]:underline tw:[&_a]:underline-offset-3 tw:[&_a]:hover:text-foreground tw:[&_p:not(:last-child)]:mb-4",t),...e})}function Ld({...t}){return r.jsx(k.ContextMenu.Root,{"data-slot":"context-menu",...t})}function Bd({className:t,...e}){return r.jsx(k.ContextMenu.Trigger,{"data-slot":"context-menu-trigger",className:h("tw:select-none",t),...e})}function Vd({...t}){return r.jsx(k.ContextMenu.Group,{"data-slot":"context-menu-group",...t})}function Fd({...t}){return r.jsx(k.ContextMenu.Portal,{"data-slot":"context-menu-portal",...t})}function Gd({...t}){return r.jsx(k.ContextMenu.Sub,{"data-slot":"context-menu-sub",...t})}function Ud({...t}){return r.jsx(k.ContextMenu.RadioGroup,{"data-slot":"context-menu-radio-group",...t})}function Kd({className:t,...e}){return r.jsx(k.ContextMenu.Portal,{children:r.jsx(k.ContextMenu.Content,{"data-slot":"context-menu-content",className:h("pr-twp tw:z-50 tw:max-h-(--radix-context-menu-content-available-height) tw:min-w-36 tw:origin-(--radix-context-menu-content-transform-origin) tw:overflow-x-hidden tw:overflow-y-auto tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...e})})}function qd({className:t,inset:e,variant:a="default",...o}){return r.jsx(k.ContextMenu.Item,{"data-slot":"context-menu-item","data-inset":e,"data-variant":a,className:h("pr-twp tw:group/context-menu-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:data-[variant=destructive]:focus:text-destructive tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:focus:*:[svg]:text-accent-foreground tw:data-[variant=destructive]:*:[svg]:text-destructive",t),...o})}function Hd({className:t,inset:e,children:a,...o}){return r.jsxs(k.ContextMenu.SubTrigger,{"data-slot":"context-menu-sub-trigger","data-inset":e,className:h("pr-twp tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-open:bg-accent tw:data-open:text-accent-foreground tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),...o,children:[a,r.jsx(ht.IconChevronRight,{className:"tw:ms-auto"})]})}function Yd({className:t,...e}){return r.jsx(k.ContextMenu.SubContent,{"data-slot":"context-menu-sub-content",className:h("pr-twp tw:z-50 tw:min-w-32 tw:origin-(--radix-context-menu-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:border tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-lg tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...e})}function Wd({className:t,children:e,checked:a,inset:o,...n}){return r.jsxs(k.ContextMenu.CheckboxItem,{"data-slot":"context-menu-checkbox-item","data-inset":o,className:h("pr-twp tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),checked:a,...n,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2",children:r.jsx(k.ContextMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function Xd({className:t,children:e,inset:a,...o}){return r.jsxs(k.ContextMenu.RadioItem,{"data-slot":"context-menu-radio-item","data-inset":a,className:h("pr-twp tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),...o,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2",children:r.jsx(k.ContextMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function Zd({className:t,inset:e,...a}){return r.jsx(k.ContextMenu.Label,{"data-slot":"context-menu-label","data-inset":e,className:h("pr-twp tw:px-1.5 tw:py-1 tw:text-xs tw:font-medium tw:text-muted-foreground tw:data-inset:ps-7",t),...a})}function Jd({className:t,...e}){return r.jsx(k.ContextMenu.Separator,{"data-slot":"context-menu-separator",className:h("pr-twp tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function Qd({className:t,...e}){return r.jsx("span",{"data-slot":"context-menu-shortcut",className:h("pr-twp tw:ms-auto tw:text-xs tw:tracking-widest tw:text-muted-foreground tw:group-focus/context-menu-item:text-accent-foreground",t),...e})}function tw({...t}){return r.jsx(Te.Drawer.Root,{"data-slot":"drawer",...t})}function ew({...t}){return r.jsx(Te.Drawer.Trigger,{"data-slot":"drawer-trigger",...t})}function ii({...t}){return r.jsx(Te.Drawer.Portal,{"data-slot":"drawer-portal",...t})}function rw({...t}){return r.jsx(Te.Drawer.Close,{"data-slot":"drawer-close",...t})}function si({className:t,...e}){return r.jsx(Te.Drawer.Overlay,{"data-slot":"drawer-overlay",className:h("pr-twp tw:fixed tw:inset-0 tw:z-50 tw:bg-black/10 tw:supports-backdrop-filter:backdrop-blur-xs tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-closed:animate-out tw:data-closed:fade-out-0",t),...e})}function aw({className:t,children:e,hideDrawerHandle:a=!1,...o}){const n=ft();return r.jsxs(ii,{"data-slot":"drawer-portal",children:[r.jsx(si,{}),r.jsxs(Te.Drawer.Content,{"data-slot":"drawer-content",className:h("pr-twp tw:group/drawer-content tw:fixed tw:z-50 tw:flex tw:h-auto tw:flex-col tw:bg-popover tw:text-sm tw:text-popover-foreground tw:data-[vaul-drawer-direction=bottom]:inset-x-0 tw:data-[vaul-drawer-direction=bottom]:bottom-0 tw:data-[vaul-drawer-direction=bottom]:mt-24 tw:data-[vaul-drawer-direction=bottom]:max-h-[80vh] tw:data-[vaul-drawer-direction=bottom]:rounded-t-xl tw:data-[vaul-drawer-direction=bottom]:border-t tw:data-[vaul-drawer-direction=left]:inset-y-0 tw:data-[vaul-drawer-direction=left]:left-0 tw:data-[vaul-drawer-direction=left]:w-3/4 tw:data-[vaul-drawer-direction=left]:rounded-r-xl tw:data-[vaul-drawer-direction=left]:border-r tw:data-[vaul-drawer-direction=left]:flex-row tw:data-[vaul-drawer-direction=right]:inset-y-0 tw:data-[vaul-drawer-direction=right]:right-0 tw:data-[vaul-drawer-direction=right]:w-3/4 tw:data-[vaul-drawer-direction=right]:rounded-l-xl tw:data-[vaul-drawer-direction=right]:border-l tw:data-[vaul-drawer-direction=right]:flex-row tw:data-[vaul-drawer-direction=top]:inset-x-0 tw:data-[vaul-drawer-direction=top]:top-0 tw:data-[vaul-drawer-direction=top]:mb-24 tw:data-[vaul-drawer-direction=top]:max-h-[80vh] tw:data-[vaul-drawer-direction=top]:rounded-b-xl tw:data-[vaul-drawer-direction=top]:border-b tw:data-[vaul-drawer-direction=left]:sm:max-w-sm tw:data-[vaul-drawer-direction=right]:sm:max-w-sm",t),dir:"ltr",...o,children:[!a&&r.jsx("div",{className:"tw:hidden tw:shrink-0 tw:rounded-full tw:bg-muted tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:mx-auto tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:mt-4 tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:h-1.5 tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:w-[100px] tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:block tw:group-data-[vaul-drawer-direction=right]/drawer-content:my-auto tw:group-data-[vaul-drawer-direction=right]/drawer-content:ms-4 tw:group-data-[vaul-drawer-direction=right]/drawer-content:h-[100px] tw:group-data-[vaul-drawer-direction=right]/drawer-content:w-1.5 tw:group-data-[vaul-drawer-direction=right]/drawer-content:block"}),r.jsx("div",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:flex-col",dir:n,children:e}),!a&&r.jsx("div",{className:"tw:hidden tw:shrink-0 tw:rounded-full tw:bg-muted tw:group-data-[vaul-drawer-direction=top]/drawer-content:mx-auto tw:group-data-[vaul-drawer-direction=top]/drawer-content:mb-4 tw:group-data-[vaul-drawer-direction=top]/drawer-content:h-1.5 tw:group-data-[vaul-drawer-direction=top]/drawer-content:w-[100px] tw:group-data-[vaul-drawer-direction=top]/drawer-content:block tw:group-data-[vaul-drawer-direction=left]/drawer-content:my-auto tw:group-data-[vaul-drawer-direction=left]/drawer-content:me-4 tw:group-data-[vaul-drawer-direction=left]/drawer-content:h-[100px] tw:group-data-[vaul-drawer-direction=left]/drawer-content:w-1.5 tw:group-data-[vaul-drawer-direction=left]/drawer-content:block"})]})]})}function ow({className:t,...e}){return r.jsx("div",{"data-slot":"drawer-header",className:h("pr-twp tw:flex tw:flex-col tw:gap-0.5 tw:p-4 tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center tw:group-data-[vaul-drawer-direction=top]/drawer-content:text-center tw:md:gap-0.5 tw:md:text-start",t),...e})}function nw({className:t,...e}){return r.jsx("div",{"data-slot":"drawer-footer",className:h("pr-twp tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4",t),...e})}function iw({className:t,...e}){return r.jsx(Te.Drawer.Title,{"data-slot":"drawer-title",className:h("pr-twp tw:font-heading tw:text-base tw:font-medium tw:text-foreground",t),...e})}function sw({className:t,...e}){return r.jsx(Te.Drawer.Description,{"data-slot":"drawer-description",className:h("pr-twp tw:text-sm tw:text-muted-foreground",t),...e})}function cw({className:t,value:e,...a}){return r.jsx(k.Progress.Root,{"data-slot":"progress",className:h("pr-twp tw:relative tw:flex tw:h-1 tw:w-full tw:items-center tw:overflow-x-hidden tw:rounded-full tw:bg-muted",t),...a,children:r.jsx(k.Progress.Indicator,{"data-slot":"progress-indicator",className:"tw:size-full tw:flex-1 tw:bg-primary tw:transition-all",style:{transform:`translateX(-${100-(e||0)}%)`}})})}function lw({className:t,direction:e,onLayout:a,orientation:o,...n}){return r.jsx(ba.Group,{"data-slot":"resizable-panel-group",className:h("tw:flex tw:h-full tw:w-full tw:aria-[orientation=vertical]:flex-col",t),orientation:o??e,onLayoutChange:a?i=>a(Object.values(i)):void 0,...n})}function kr(t){if(t!==void 0)return typeof t=="number"?`${t}%`:t}function dw({defaultSize:t,minSize:e,maxSize:a,collapsedSize:o,...n}){return r.jsx(ba.Panel,{"data-slot":"resizable-panel",defaultSize:kr(t),minSize:kr(e),maxSize:kr(a),collapsedSize:kr(o),...n})}function ww({withHandle:t,className:e,...a}){return r.jsx(ba.Separator,{"data-slot":"resizable-handle",className:h("tw:relative tw:flex tw:w-px tw:items-center tw:justify-center tw:bg-border tw:ring-offset-background tw:after:absolute tw:after:inset-y-0 tw:after:start-1/2 tw:after:w-1 tw:after:-translate-x-1/2 tw:rtl:after:translate-x-1/2 tw:focus-visible:ring-1 tw:focus-visible:ring-ring tw:focus-visible:outline-hidden tw:aria-[orientation=horizontal]:h-px tw:aria-[orientation=horizontal]:w-full tw:aria-[orientation=horizontal]:after:start-0 tw:aria-[orientation=horizontal]:after:h-1 tw:aria-[orientation=horizontal]:after:w-full tw:aria-[orientation=horizontal]:after:translate-x-0 tw:rtl:aria-[orientation=horizontal]:after:-translate-x-0 tw:aria-[orientation=horizontal]:after:-translate-y-1/2 tw:[&[aria-orientation=horizontal]>div]:rotate-90",e),...a,children:t&&r.jsx("div",{className:"tw:z-10 tw:flex tw:h-6 tw:w-1 tw:shrink-0 tw:rounded-lg tw:bg-border"})})}function uw({...t}){const{theme:e="system"}=ki.useTheme(),a=e==="light"||e==="dark"||e==="system"?e:"system",o={"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"};return r.jsx(Co.Toaster,{theme:a,className:"tw:toaster tw:group",icons:{success:r.jsx(ht.IconCircleCheck,{className:"tw:size-4"}),info:r.jsx(ht.IconInfoCircle,{className:"tw:size-4"}),warning:r.jsx(ht.IconAlertTriangle,{className:"tw:size-4"}),error:r.jsx(ht.IconAlertOctagon,{className:"tw:size-4"}),loading:r.jsx(ht.IconLoader,{className:"tw:size-4 tw:animate-spin"})},style:o,toastOptions:{classNames:{toast:"cn-toast"}},...t})}function pw({className:t,defaultValue:e,value:a,min:o=0,max:n=100,...i}){const s=ft(),c=l.useMemo(()=>Array.isArray(a)?a:Array.isArray(e)?e:[o,n],[a,e,o,n]);return r.jsxs(k.Slider.Root,{"data-slot":"slider",defaultValue:e,value:a,min:o,max:n,className:h("pr-twp tw:relative tw:flex tw:w-full tw:touch-none tw:items-center tw:select-none tw:data-disabled:opacity-50 tw:data-vertical:h-full tw:data-vertical:min-h-40 tw:data-vertical:w-auto tw:data-vertical:flex-col",t),dir:s,...i,children:[r.jsx(k.Slider.Track,{"data-slot":"slider-track",className:"tw:relative tw:grow tw:overflow-hidden tw:rounded-full tw:bg-muted tw:data-horizontal:h-1 tw:data-horizontal:w-full tw:data-vertical:h-full tw:data-vertical:w-1",children:r.jsx(k.Slider.Range,{"data-slot":"slider-range",className:"tw:absolute tw:bg-primary tw:select-none tw:data-horizontal:h-full tw:data-vertical:w-full"})}),Array.from({length:c.length},(w,d)=>r.jsx(k.Slider.Thumb,{"data-slot":"slider-thumb",className:"tw:relative tw:block tw:size-3 tw:shrink-0 tw:rounded-full tw:border tw:border-ring tw:bg-white tw:ring-ring/50 tw:transition-[color,box-shadow] tw:select-none tw:after:absolute tw:after:-inset-2 tw:hover:ring-3 tw:focus-visible:ring-3 tw:focus-visible:outline-hidden tw:active:ring-3 tw:disabled:pointer-events-none tw:disabled:opacity-50"},d))]})}function gw({className:t,size:e="default",...a}){return r.jsx(k.Switch.Root,{"data-slot":"switch","data-size":e,className:h("tw:peer pr-twp tw:group/switch tw:relative tw:inline-flex tw:shrink-0 tw:items-center tw:rounded-full tw:border tw:border-transparent tw:transition-all tw:outline-none tw:after:absolute tw:after:-inset-x-3 tw:after:-inset-y-2 tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:data-[size=default]:h-[18.4px] tw:data-[size=default]:w-[32px] tw:data-[size=sm]:h-[14px] tw:data-[size=sm]:w-[24px] tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:data-checked:bg-primary tw:data-unchecked:bg-input tw:dark:data-unchecked:bg-input/80 tw:data-disabled:cursor-not-allowed tw:data-disabled:opacity-50",t),...a,children:r.jsx(k.Switch.Thumb,{"data-slot":"switch-thumb",className:"tw:pointer-events-none tw:block tw:rounded-full tw:bg-background tw:ring-0 tw:transition-transform tw:group-data-[size=default]/switch:size-4 tw:group-data-[size=sm]/switch:size-3 tw:group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] tw:rtl:group-data-[size=default]/switch:data-checked:-translate-x-[calc(100%-2px)] tw:group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] tw:rtl:group-data-[size=sm]/switch:data-checked:-translate-x-[calc(100%-2px)] tw:dark:data-checked:bg-primary-foreground tw:group-data-[size=default]/switch:data-unchecked:translate-x-0 tw:rtl:group-data-[size=default]/switch:data-unchecked:-translate-x-0 tw:group-data-[size=sm]/switch:data-unchecked:translate-x-0 tw:rtl:group-data-[size=sm]/switch:data-unchecked:-translate-x-0 tw:dark:data-unchecked:bg-foreground"})})}function hw({className:t,orientation:e="horizontal",...a}){return r.jsx(k.Tabs.Root,{"data-slot":"tabs","data-orientation":e,className:h("tw:group/tabs tw:flex tw:gap-2 tw:data-horizontal:flex-col",t),...a})}const fw=ge.cva("tw:group/tabs-list tw:inline-flex tw:w-fit tw:items-center tw:justify-center tw:rounded-lg tw:p-[3px] tw:text-muted-foreground tw:group-data-horizontal/tabs:h-8 tw:group-data-vertical/tabs:h-fit tw:group-data-vertical/tabs:flex-col tw:data-[variant=line]:rounded-none",{variants:{variant:{default:"tw:bg-muted",line:"tw:gap-1 tw:bg-transparent"}},defaultVariants:{variant:"default"}});function mw({className:t,variant:e="default",...a}){const o=ft();return r.jsx(k.Tabs.List,{"data-slot":"tabs-list","data-variant":e,className:h("pr-twp",fw({variant:e}),t),dir:o,...a})}function vw({className:t,...e}){return r.jsx(k.Tabs.Trigger,{"data-slot":"tabs-trigger",className:h("pr-twp tw:relative tw:inline-flex tw:h-[calc(100%-1px)] tw:flex-1 tw:items-center tw:justify-center tw:gap-1.5 tw:rounded-md tw:border tw:border-transparent tw:px-1.5 tw:py-0.5 tw:text-sm tw:font-medium tw:whitespace-nowrap tw:text-foreground/60 tw:transition-all tw:group-data-vertical/tabs:w-full tw:group-data-vertical/tabs:justify-start tw:hover:text-foreground tw:focus-visible:border-ring tw:focus-visible:ring-[3px] tw:focus-visible:ring-ring/50 tw:focus-visible:outline-1 tw:focus-visible:outline-ring tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:has-data-[icon=inline-end]:pe-1 tw:has-data-[icon=inline-start]:ps-1 tw:dark:text-muted-foreground tw:dark:hover:text-foreground tw:group-data-[variant=default]/tabs-list:data-active:shadow-sm tw:group-data-[variant=line]/tabs-list:data-active:shadow-none tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4","tw:group-data-[variant=line]/tabs-list:bg-transparent tw:group-data-[variant=line]/tabs-list:data-active:bg-transparent tw:dark:group-data-[variant=line]/tabs-list:data-active:border-transparent tw:dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","tw:data-active:bg-background tw:data-active:text-foreground tw:dark:data-active:border-input tw:dark:data-active:bg-input/30 tw:dark:data-active:text-foreground","tw:after:absolute tw:after:bg-foreground tw:after:opacity-0 tw:after:transition-opacity tw:group-data-horizontal/tabs:after:inset-x-0 tw:group-data-horizontal/tabs:after:bottom-[-5px] tw:group-data-horizontal/tabs:after:h-0.5 tw:group-data-vertical/tabs:after:inset-y-0 tw:group-data-vertical/tabs:after:-end-1 tw:group-data-vertical/tabs:after:w-0.5 tw:group-data-[variant=line]/tabs-list:data-active:after:opacity-100",t),...e})}function bw({className:t,...e}){return r.jsx(k.Tabs.Content,{"data-slot":"tabs-content",className:h("pr-twp tw:flex-1 tw:text-sm tw:outline-none",t),...e})}const xw=(t,e)=>{l.useEffect(()=>{if(!t)return()=>{};const a=t(e);return()=>{a()}},[t,e])};function yw(t){return{preserveValue:!0,...t}}const ci=(t,e,a={})=>{const o=l.useRef(e);o.current=e;const n=l.useRef(a);n.current=yw(n.current);const[i,s]=l.useState(()=>o.current),[c,w]=l.useState(!0);return l.useEffect(()=>{let d=!0;return w(!!t),(async()=>{if(t){const u=await t();d&&(s(()=>u),w(!1))}})(),()=>{d=!1,n.current.preserveValue||s(()=>o.current)}},[t]),[i,c]},sa=()=>!1,kw=(t,e)=>{const[a]=ci(l.useCallback(async()=>{if(!t)return sa;const o=await Promise.resolve(t(e));return async()=>o()},[e,t]),sa,{preserveValue:!1});l.useEffect(()=>()=>{a!==sa&&a()},[a])};function jw(t){l.useEffect(()=>{let e;return t&&(e=document.createElement("style"),e.appendChild(document.createTextNode(t)),document.head.appendChild(e)),()=>{e&&document.head.removeChild(e)}},[t])}Object.defineProperty(exports,"sonner",{enumerable:!0,get:()=>Co.toast});exports.Alert=$d;exports.AlertDescription=Pd;exports.AlertTitle=Ad;exports.Avatar=vn;exports.AvatarFallback=bn;exports.AvatarImage=Cc;exports.BOOK_CHAPTER_CONTROL_STRING_KEYS=qi;exports.BOOK_SELECTOR_STRING_KEYS=Yi;exports.Badge=pe;exports.BookChapterControl=Nr;exports.BookSelector=Wi;exports.Button=F;exports.ButtonGroup=Gr;exports.ButtonGroupSeparator=Ma;exports.ButtonGroupText=hc;exports.CANCEL_ACCEPT_BUTTONS_STRING_KEYS=Oa;exports.COMMENT_EDITOR_STRING_KEYS=vc;exports.COMMENT_LIST_STRING_KEYS=bc;exports.CancelAcceptButtons=$a;exports.Card=fn;exports.CardContent=mn;exports.CardDescription=_c;exports.CardFooter=Nc;exports.CardHeader=kc;exports.CardTitle=jc;exports.ChapterRangeSelector=Bo;exports.Checkbox=Va;exports.Checklist=zd;exports.ComboBox=wa;exports.Command=he;exports.CommandEmpty=Ze;exports.CommandGroup=re;exports.CommandInput=Fe;exports.CommandItem=ie;exports.CommandList=fe;exports.CommentEditor=mc;exports.CommentList=Tc;exports.ContextMenu=Ld;exports.ContextMenuCheckboxItem=Wd;exports.ContextMenuContent=Kd;exports.ContextMenuGroup=Vd;exports.ContextMenuItem=qd;exports.ContextMenuLabel=Zd;exports.ContextMenuPortal=Fd;exports.ContextMenuRadioGroup=Ud;exports.ContextMenuRadioItem=Xd;exports.ContextMenuSeparator=Jd;exports.ContextMenuShortcut=Qd;exports.ContextMenuSub=Gd;exports.ContextMenuSubContent=Yd;exports.ContextMenuSubTrigger=Hd;exports.ContextMenuTrigger=Bd;exports.DataTable=Tn;exports.Dialog=Er;exports.DialogClose=Ti;exports.DialogContent=Tr;exports.DialogDescription=Ri;exports.DialogFooter=da;exports.DialogHeader=Rr;exports.DialogOverlay=zo;exports.DialogPortal=Ro;exports.DialogTitle=zr;exports.DialogTrigger=Ei;exports.Drawer=tw;exports.DrawerClose=rw;exports.DrawerContent=aw;exports.DrawerDescription=sw;exports.DrawerFooter=nw;exports.DrawerHeader=ow;exports.DrawerOverlay=si;exports.DrawerPortal=ii;exports.DrawerTitle=iw;exports.DrawerTrigger=ew;exports.DropdownMenu=ae;exports.DropdownMenuCheckboxItem=ee;exports.DropdownMenuContent=ne;exports.DropdownMenuGroup=La;exports.DropdownMenuItem=Se;exports.DropdownMenuItemType=In;exports.DropdownMenuLabel=Ee;exports.DropdownMenuPortal=xn;exports.DropdownMenuRadioGroup=yn;exports.DropdownMenuRadioItem=kn;exports.DropdownMenuSeparator=ye;exports.DropdownMenuShortcut=Sc;exports.DropdownMenuSub=jn;exports.DropdownMenuSubContent=Nn;exports.DropdownMenuSubTrigger=_n;exports.DropdownMenuTrigger=oe;exports.ERROR_DUMP_STRING_KEYS=zn;exports.ERROR_POPOVER_STRING_KEYS=Xc;exports.EditorKeyboardShortcuts=An;exports.ErrorDump=Dn;exports.ErrorPopover=Zc;exports.FOOTNOTE_EDITOR_STRING_KEYS=gl;exports.Filter=rl;exports.FilterDropdown=Jc;exports.Footer=el;exports.FootnoteEditor=pl;exports.FootnoteItem=Vn;exports.FootnoteList=ml;exports.INVENTORY_STRING_KEYS=El;exports.Input=Xe;exports.Inventory=zl;exports.Kbd=ha;exports.Label=yt;exports.LinkedScrRefButton=Dd;exports.MARKER_MENU_STRING_KEYS=Pn;exports.MarkdownRenderer=Wc;exports.MarkerMenu=Ln;exports.MoreInfo=Qc;exports.MultiSelectComboBox=Mn;exports.NavigationContentSearch=gd;exports.Popover=se;exports.PopoverAnchor=$o;exports.PopoverContent=ce;exports.PopoverDescription=Li;exports.PopoverHeader=Ai;exports.PopoverPortalContainerProvider=jr;exports.PopoverTitle=Pi;exports.PopoverTrigger=me;exports.Progress=cw;exports.ProjectSelector=Rn;exports.RadioGroup=Na;exports.RadioGroupItem=Dr;exports.RecentSearches=Po;exports.ResizableHandle=ww;exports.ResizablePanel=dw;exports.ResizablePanelGroup=lw;exports.ResultsCard=Id;exports.SCOPE_SELECTOR_STRING_KEYS=nd;exports.ScopeSelector=sd;exports.ScriptureResultsViewer=rd;exports.ScrollGroupSelector=cd;exports.SearchBar=Hr;exports.Select=Ae;exports.SelectContent=Be;exports.SelectGroup=Cn;exports.SelectItem=Jt;exports.SelectLabel=zc;exports.SelectScrollDownButton=En;exports.SelectScrollUpButton=Sn;exports.SelectSeparator=Dc;exports.SelectTrigger=Le;exports.SelectValue=Pe;exports.Separator=$e;exports.SettingsList=ld;exports.SettingsListHeader=wd;exports.SettingsListItem=dd;exports.SettingsSidebar=Zn;exports.SettingsSidebarContentSearch=Yl;exports.Sidebar=Kn;exports.SidebarContent=Hn;exports.SidebarFooter=Pl;exports.SidebarGroup=fa;exports.SidebarGroupAction=Bl;exports.SidebarGroupContent=va;exports.SidebarGroupLabel=ma;exports.SidebarHeader=Al;exports.SidebarInput=$l;exports.SidebarInset=qn;exports.SidebarMenu=Yn;exports.SidebarMenuAction=Fl;exports.SidebarMenuBadge=Gl;exports.SidebarMenuButton=Xn;exports.SidebarMenuItem=Wn;exports.SidebarMenuSkeleton=Ul;exports.SidebarMenuSub=Kl;exports.SidebarMenuSubButton=Hl;exports.SidebarMenuSubItem=ql;exports.SidebarProvider=Un;exports.SidebarRail=Ol;exports.SidebarSeparator=Ll;exports.SidebarTrigger=Ml;exports.Skeleton=Pr;exports.Slider=pw;exports.Sonner=uw;exports.Spinner=ni;exports.Switch=gw;exports.TabDropdownMenu=Br;exports.TabFloatingMenu=pd;exports.TabToolbar=ud;exports.Table=Ur;exports.TableBody=qr;exports.TableCaption=Lc;exports.TableCell=Oe;exports.TableFooter=Oc;exports.TableHead=dr;exports.TableHeader=Kr;exports.TableRow=be;exports.Tabs=hw;exports.TabsContent=bw;exports.TabsList=mw;exports.TabsTrigger=vw;exports.TextField=Md;exports.Textarea=zi;exports.ToggleGroup=Da;exports.ToggleGroupItem=sr;exports.Toolbar=Sd;exports.Tooltip=$t;exports.TooltipContent=Pt;exports.TooltipProvider=Ot;exports.TooltipTrigger=At;exports.UNDO_REDO_BUTTONS_STRING_KEYS=On;exports.UiLanguageSelector=Td;exports.UndoRedoButtons=$n;exports.VerticalTabs=Ga;exports.VerticalTabsContent=Ka;exports.VerticalTabsList=Ua;exports.VerticalTabsTrigger=ai;exports.Z_INDEX_ABOVE_DOCK=We;exports.Z_INDEX_FOOTNOTE_EDITOR=xa;exports.Z_INDEX_MODAL=Eo;exports.Z_INDEX_MODAL_BACKDROP=So;exports.Z_INDEX_OVERLAY=Vr;exports.Z_INDEX_TOOLTIP=To;exports.badgeVariants=hn;exports.buttonGroupVariants=pn;exports.buttonVariants=ya;exports.cn=h;exports.getBookIdFromUSFM=Sl;exports.getInventoryHeader=ur;exports.getLinesFromUSFM=Nl;exports.getNumberFromUSFM=Cl;exports.getStatusForItem=Fn;exports.getToolbarOSReservedSpaceClassName=Cd;exports.inventoryCountColumn=jl;exports.inventoryItemColumn=yl;exports.inventoryStatusColumn=_l;exports.useEvent=xw;exports.useEventAsync=kw;exports.useListbox=gn;exports.usePromise=ci;exports.useRecentSearches=Bi;exports.useSidebar=pr;exports.useStylesheet=jw;function _w(t,e="top"){if(!t||typeof document>"u")return;const a=document.head||document.querySelector("head"),o=a.querySelector(":first-child"),n=document.createElement("style");n.appendChild(document.createTextNode(t)),e==="top"&&o?a.insertBefore(n,o):a.appendChild(n)}_w(`.banded-row:hover { +`;function Mc(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)}function lr(t,e){const a=e?`${fo}, ${e}`:fo;return Array.from(t.querySelectorAll(a)).filter(o=>!o.hasAttribute("disabled")&&!o.getAttribute("aria-hidden")&&Mc(o))}function Ur({className:t,stickyHeader:e,ref:a,...o}){const n=l.useRef(null);l.useEffect(()=>{typeof a=="function"?a(n.current):a&&"current"in a&&(a.current=n.current)},[a]),l.useEffect(()=>{const s=n.current;if(!s)return;const c=()=>{requestAnimationFrame(()=>{lr(s,'[tabindex]:not([tabindex="-1"])').forEach(u=>{u.setAttribute("tabindex","-1")})})};c();const w=new MutationObserver(()=>{c()});return w.observe(s,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["tabindex"]}),()=>{w.disconnect()}},[]);const i=s=>{const{current:c}=n;if(c){if(s.key==="ArrowDown"){s.preventDefault(),lr(c)[0].focus();return}s.key===" "&&document.activeElement===c&&s.preventDefault()}};return r.jsx("div",{"data-slot":"table-container",className:h("pr-twp tw:relative tw:w-full",{"tw:p-1":e}),children:r.jsx("table",{"data-slot":"table",tabIndex:0,ref:n,onKeyDown:i,className:h("tw:w-full tw:caption-bottom tw:text-sm","tw:outline-hidden","tw:focus:relative tw:focus:z-10 tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",t),"aria-label":"Table","aria-labelledby":"table-label",...o})})}function qr({className:t,stickyHeader:e,...a}){return r.jsx("thead",{"data-slot":"table-header",className:h({"tw:sticky tw:top-[-1px] tw:z-20 tw:bg-background tw:drop-shadow-sm":e},"tw:[&_tr]:border-b",t),...a})}function Kr({className:t,...e}){return r.jsx("tbody",{"data-slot":"table-body",className:h("tw:[&_tr:last-child]:border-0",t),...e})}function Oc({className:t,...e}){return r.jsx("tfoot",{"data-slot":"table-footer",className:h("tw:border-t tw:bg-muted/50 tw:font-medium tw:[&>tr]:last:border-b-0",t),...e})}function $c(t){l.useEffect(()=>{const e=t.current;if(!e)return;const a=o=>{if(e.contains(document.activeElement)){if(o.key==="ArrowRight"||o.key==="ArrowLeft"){o.preventDefault(),o.stopPropagation();const n=t.current?lr(t.current):[],i=n.indexOf(document.activeElement),s=o.key==="ArrowRight"?i+1:i-1;s>=0&&s{e.removeEventListener("keydown",a)}},[t])}function Ac(t,e,a){let o;return a==="ArrowLeft"&&e>0?o=t[e-1]:a==="ArrowRight"&&eo.focus()),!0):!1}function Pc(t,e,a){let o;return a==="ArrowDown"&&e0&&(o=t[e-1]),o?(requestAnimationFrame(()=>o.focus()),!0):!1}function be({className:t,onKeyDown:e,onSelect:a,setFocusAlsoRunsSelect:o=!1,ref:n,...i}){const s=l.useRef(null);l.useEffect(()=>{typeof n=="function"?n(s.current):n&&"current"in n&&(n.current=s.current)},[n]),$c(s);const c=l.useMemo(()=>s.current?lr(s.current):[],[s]),w=l.useCallback(u=>{const{current:g}=s;if(!g||!g.parentElement)return;const m=g.closest("table"),p=m?lr(m).filter(b=>b.tagName==="TR"):[],f=p.indexOf(g),y=c.indexOf(document.activeElement);if(u.key==="ArrowDown"||u.key==="ArrowUp")u.preventDefault(),Pc(p,f,u.key);else if(u.key==="ArrowLeft"||u.key==="ArrowRight")u.preventDefault(),Ac(c,y,u.key);else if(u.key==="Escape"){u.preventDefault();const b=g.closest("table");b&&b.focus()}e==null||e(u)},[s,c,e]),d=l.useCallback(u=>{o&&(a==null||a(u))},[o,a]);return r.jsx("tr",{"data-slot":"table-row",ref:s,tabIndex:-1,onKeyDown:w,onFocus:d,className:h("tw:border-b tw:transition-colors tw:hover:bg-muted/50 tw:has-aria-expanded:bg-muted/50 tw:data-[state=selected]:bg-muted","tw:outline-hidden","tw:focus:relative tw:focus:z-10 tw:focus:ring-2 tw:focus:ring-ring tw:focus:ring-offset-1 tw:focus:ring-offset-background",t),...i})}function dr({className:t,...e}){return r.jsx("th",{"data-slot":"table-head",className:h("tw:h-10 tw:px-2 tw:text-start tw:align-middle tw:font-medium tw:whitespace-nowrap tw:text-foreground tw:[&:has([role=checkbox])]:pe-0",t),...e})}function Oe({className:t,...e}){return r.jsx("td",{"data-slot":"table-cell",className:h("tw:p-2 tw:align-middle tw:whitespace-nowrap tw:[&:has([role=checkbox])]:pe-0",t),...e})}function Lc({className:t,...e}){return r.jsx("caption",{"data-slot":"table-caption",className:h("tw:mt-4 tw:text-sm tw:text-muted-foreground",t),...e})}function Pr({className:t,...e}){return r.jsx("div",{"data-slot":"skeleton",className:h("pr-twp tw:animate-pulse tw:rounded-md tw:bg-muted",t),...e})}function Tn({columns:t,data:e,enablePagination:a=!1,showPaginationControls:o=!1,showColumnVisibilityControls:n=!1,stickyHeader:i=!1,onRowClickHandler:s=()=>{},id:c,isLoading:w=!1,noResultsMessage:d,getRowClassName:u}){var $;const[g,m]=l.useState([]),[p,f]=l.useState([]),[y,b]=l.useState({}),[D,S]=l.useState({}),R=l.useMemo(()=>e??[],[e]),j=Mt.useReactTable({data:R,columns:t,getCoreRowModel:Mt.getCoreRowModel(),...a&&{getPaginationRowModel:Mt.getPaginationRowModel()},onSortingChange:m,getSortedRowModel:Mt.getSortedRowModel(),onColumnFiltersChange:f,getFilteredRowModel:Mt.getFilteredRowModel(),onColumnVisibilityChange:b,onRowSelectionChange:S,state:{sorting:g,columnFilters:p,columnVisibility:y,rowSelection:D}}),C=j.getVisibleFlatColumns();let E;return w?E=Array.from({length:10}).map((T,P)=>`skeleton-row-${P}`).map(T=>r.jsx(be,{className:"tw:hover:bg-transparent",children:r.jsx(Oe,{colSpan:C.length??t.length,className:"tw:border-0 tw:p-0",children:r.jsx("div",{className:"tw:w-full tw:py-2",children:r.jsx(Pr,{className:"tw:h-14 tw:w-full tw:rounded-md"})})})},T)):(($=j.getRowModel().rows)==null?void 0:$.length)>0?E=j.getRowModel().rows.map(_=>r.jsx(be,{onClick:()=>s(_,j),"data-state":_.getIsSelected()&&"selected",className:u==null?void 0:u(_),children:_.getVisibleCells().map(x=>r.jsx(Oe,{children:Mt.flexRender(x.column.columnDef.cell,x.getContext())},x.id))},_.id)):E=r.jsx(be,{children:r.jsx(Oe,{colSpan:t.length,className:"tw:h-24 tw:text-center",children:d})}),r.jsxs("div",{className:"pr-twp",id:c,children:[n&&r.jsx(Rc,{table:j}),r.jsxs(Ur,{stickyHeader:i,children:[r.jsx(qr,{stickyHeader:i,children:j.getHeaderGroups().map(_=>r.jsx(be,{children:_.headers.map(x=>r.jsx(dr,{className:"tw:p-0",children:x.isPlaceholder?void 0:Mt.flexRender(x.column.columnDef.header,x.getContext())},x.id))},_.id))}),r.jsx(Kr,{children:E})]}),a&&r.jsxs("div",{className:"tw:flex tw:items-center tw:justify-end tw:space-x-2 tw:py-4",children:[r.jsx(F,{variant:"outline",size:"sm",onClick:()=>j.previousPage(),disabled:!j.getCanPreviousPage(),children:"Previous"}),r.jsx(F,{variant:"outline",size:"sm",onClick:()=>j.nextPage(),disabled:!j.getCanNextPage(),children:"Next"})]}),a&&o&&r.jsx(Ic,{table:j})]})}function Bc(t){const e=new Map;return t.forEach(a=>{const o=e.get(a.projectId),n={scrollGroupId:a.scrollGroupId,scrollGroupScrRefLabel:a.scrollGroupScrRefLabel};o?o.some(i=>i.scrollGroupId===a.scrollGroupId)||o.push(n):e.set(a.projectId,[n])}),e.forEach(a=>a.sort((o,n)=>o.scrollGroupId-n.scrollGroupId)),e}function mo(t,e,a){return t.some(o=>o.projectId===e&&o.scrollGroupId===a)}function aa(t){const e=Bc(t.openTabs);if(t.mode==="project"){const n=t.selection.projectId;return t.projects.map(i=>{const s=e.get(i.id)??[];return{rowKey:i.id,projectId:i.id,shortName:i.shortName,fullName:i.fullName,language:i.language,languageCode:i.languageCode,scrollGroupId:void 0,scrollGroupScrRefLabel:void 0,openGroups:s.map(c=>c.scrollGroupId),isSelected:n===i.id,isMuted:s.length===0,isBoundButClosed:!1,isDisabled:i.isDisabled===!0,disabledReason:i.disabledReason}})}let a=[];t.mode==="project-multi"?a=t.selection.pairs:t.selection.projectId!==void 0&&(a=[{projectId:t.selection.projectId,scrollGroupId:t.selection.scrollGroupId}]);const o=[];return t.projects.forEach(n=>{const i=e.get(n.id);if(!i||i.length===0){o.push({rowKey:`project:${n.id}`,projectId:n.id,shortName:n.shortName,fullName:n.fullName,language:n.language,languageCode:n.languageCode,scrollGroupId:void 0,scrollGroupScrRefLabel:void 0,openGroups:[],isSelected:mo(a,n.id,void 0),isMuted:!0,isBoundButClosed:!1,isDisabled:n.isDisabled===!0,disabledReason:n.disabledReason});return}i.forEach(s=>{o.push({rowKey:`tab:${n.id}:${s.scrollGroupId}`,projectId:n.id,shortName:n.shortName,fullName:n.fullName,language:n.language,languageCode:n.languageCode,scrollGroupId:s.scrollGroupId,scrollGroupScrRefLabel:s.scrollGroupScrRefLabel,openGroups:[],isSelected:mo(a,n.id,s.scrollGroupId),isMuted:!1,isBoundButClosed:!1,isDisabled:n.isDisabled===!0,disabledReason:n.disabledReason})})}),a.forEach(n=>{if(n.scrollGroupId===void 0||o.some(s=>s.projectId===n.projectId&&s.scrollGroupId===n.scrollGroupId))return;const i=t.projects.find(s=>s.id===n.projectId);i&&o.push({rowKey:`closed:${i.id}:${n.scrollGroupId}`,projectId:i.id,shortName:i.shortName,fullName:i.fullName,language:i.language,languageCode:i.languageCode,scrollGroupId:n.scrollGroupId,scrollGroupScrRefLabel:void 0,openGroups:[],isSelected:!0,isMuted:!1,isBoundButClosed:!0,isDisabled:i.isDisabled===!0,disabledReason:i.disabledReason})}),o}function vo(t){return t.isBoundButClosed?!1:t.scrollGroupId!==void 0?!0:t.openGroups.length>0}function oa(t,e){if(t.isSelected!==e.isSelected)return t.isSelected?-1:1;const a=t.shortName.localeCompare(e.shortName,void 0,{sensitivity:"base"});if(a!==0)return a;const o=t.scrollGroupId??Number.POSITIVE_INFINITY,n=e.scrollGroupId??Number.POSITIVE_INFINITY;return o-n}function Vc(t,e){if(!e)return[{kind:"flat",rows:[...t].sort(oa)}];const a=t.filter(vo).sort(oa),o=t.filter(i=>!vo(i)).sort(oa);if(a.length===0)return[{kind:"flat",rows:o}];const n=[{kind:"openTabs",rows:a}];return o.length>0&&n.push({kind:"other",rows:o}),n}const Fc={searchPlaceholder:"Search projects & resources",filterAriaLabel:"Filter",groupSectionLabel:"Group",filterSectionLabel:"Filter",filterGroupByOpenTabs:"By open tabs",filterShowSelectedOnly:"Show selected only",openTabsSectionHeading:"Opened project & resource tabs",otherProjectsSectionHeading:"Your projects & resources",boundButClosedTooltip:"Bound to {group} · not currently open",openButtonLabel:"Open",selectAll:"Select all",clearAll:"Clear all"};function Gc(t){return{...Fc,...t}}function wr(t){return z.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS[z.getLocalizeKeyForScrollGroupId(t)]??String(t)}const Uc={backgroundImage:"linear-gradient(to top right, transparent calc(50% - 1px), currentColor calc(50% - 0.5px), currentColor calc(50% + 0.5px), transparent calc(50% + 1px))"};function qc({scrollGroupId:t,isBoundButClosed:e}){const a=wr(t);return e?r.jsx(pe,{variant:"outline",className:"tw:relative tw:text-muted-foreground",style:Uc,children:a}):r.jsx(pe,{variant:"secondary",children:a})}function Kc({row:t,mode:e,strings:a,onClick:o,onOpen:n}){const[i,s]=l.useState(!1),c=l.useRef(null),w=!!(t.language||t.languageCode),d=w||!!t.scrollGroupScrRefLabel||t.isBoundButClosed||t.isDisabled&&!!t.disabledReason,u=l.useCallback(()=>{if(d){s(!0);return}const b=c.current;b&&b.scrollWidth>b.clientWidth&&s(!0)},[d]),g=r.jsx(O.Check,{className:h("tw:h-4 tw:w-4",t.isSelected?"tw:opacity-100":"tw:opacity-0")});let m;e==="project"?t.openGroups.length>0&&(m=r.jsx("span",{className:"tw:ms-auto tw:flex tw:shrink-0 tw:gap-1",children:t.openGroups.map(b=>r.jsx(pe,{variant:"secondary",children:wr(b)},b))})):t.scrollGroupId!==void 0&&(m=r.jsxs("span",{className:"tw:ms-auto tw:flex tw:shrink-0 tw:items-center tw:gap-2",children:[r.jsx(qc,{scrollGroupId:t.scrollGroupId,isBoundButClosed:t.isBoundButClosed}),t.isBoundButClosed&&n&&r.jsxs(F,{size:"sm",variant:"ghost",className:"tw:h-6 tw:gap-1 tw:px-2 tw:text-xs",onClick:b=>{b.stopPropagation(),n(t)},onMouseDown:b=>b.stopPropagation(),"aria-label":a.openButtonLabel,title:a.openButtonLabel,children:[r.jsx(O.ArrowRight,{className:"tw:h-3 tw:w-3"}),a.openButtonLabel]})]}));const p=r.jsxs(ie,{value:`${t.rowKey} ${t.shortName} ${t.fullName} ${t.language??""} ${t.languageCode??""}`,onSelect:()=>{t.isDisabled||o(t)},disabled:t.isDisabled,onPointerEnter:u,onPointerLeave:()=>s(!1),className:"tw:flex tw:items-center tw:gap-2 tw:pe-4","data-selected":t.isSelected,children:[r.jsx("span",{className:"tw:flex tw:h-4 tw:w-4 tw:shrink-0 tw:items-center tw:justify-center",children:g}),r.jsxs("span",{ref:c,className:"tw:min-w-0 tw:flex-1 tw:truncate tw:text-start",children:[r.jsx("span",{children:t.shortName}),r.jsxs("span",{className:"tw:text-muted-foreground",children:[" • ",t.fullName]})]}),m]}),f=t.scrollGroupId!==void 0?wr(t.scrollGroupId):void 0,y=t.isBoundButClosed&&f?a.boundButClosedTooltip.replace("{group}",f):void 0;return r.jsxs($t,{open:i,delayDuration:400,children:[r.jsx(At,{asChild:!0,children:p}),r.jsxs(Pt,{side:"top",align:"center",sideOffset:8,collisionPadding:16,className:"tw:max-w-xs tw:text-center",style:{zIndex:Vr},children:[r.jsx("div",{className:"tw:font-semibold",children:t.fullName}),w&&r.jsxs("div",{className:"tw:text-sm",children:[t.language,t.languageCode&&r.jsxs("span",{className:"tw:text-muted-foreground",children:[" (",t.languageCode,")"]})]}),!t.isBoundButClosed&&t.scrollGroupScrRefLabel&&f&&r.jsxs("div",{className:"tw:text-sm",children:[t.scrollGroupScrRefLabel,r.jsxs("span",{className:"tw:text-muted-foreground",children:[" (",f,")"]})]}),y&&r.jsx("div",{className:"tw:text-sm tw:italic",children:y}),t.isDisabled&&t.disabledReason&&r.jsx("div",{className:"tw:text-sm tw:italic tw:text-muted-foreground",children:t.disabledReason})]})]})}function Hc({groupByOpenTabs:t,onChangeGroupByOpenTabs:e,showSelectedOnly:a,onChangeShowSelectedOnly:o,strings:n}){const i=!!a;return r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"ghost",size:"sm",className:h("tw:h-8 tw:w-8 tw:shrink-0 tw:p-0",i&&"tw:bg-accent tw:text-accent-foreground tw:hover:bg-accent/80 tw:data-[state=open]:bg-accent"),"aria-label":n.filterAriaLabel,"aria-pressed":i,title:n.filterAriaLabel,onMouseDown:s=>s.preventDefault(),children:r.jsx(O.Filter,{className:"tw:h-4 tw:w-4"})})}),r.jsxs(ne,{align:"end",className:"tw:w-56",style:{zIndex:Vr},children:[r.jsx(Ee,{children:n.groupSectionLabel}),r.jsx(ee,{checked:t,onCheckedChange:e,onSelect:s=>s.preventDefault(),children:n.filterGroupByOpenTabs}),o&&r.jsxs(r.Fragment,{children:[r.jsx(ye,{}),r.jsx(Ee,{children:n.filterSectionLabel}),r.jsx(ee,{checked:!!a,onCheckedChange:o,onSelect:s=>s.preventDefault(),children:n.filterShowSelectedOnly})]})]})]})}function Rn(t){const[e,a]=l.useState(!1),[o,n]=l.useState(""),[i,s]=l.useState(t.defaultGroupByOpenTabs??!0),[c,w]=l.useState(!1),d=Gc(t.localizedStrings),u=l.useMemo(()=>t.mode==="project"?aa({mode:"project",projects:t.projects,openTabs:t.openTabs,selection:t.selection}):t.mode==="project-multi"?aa({mode:"project-multi",projects:t.projects,openTabs:t.openTabs,selection:t.selection}):aa({mode:"projectScrollGroup",projects:t.projects,openTabs:t.openTabs,selection:t.selection}),[t.mode,t.projects,t.openTabs,t.selection]),g=l.useMemo(()=>{const C=o.trim().toLowerCase();let E=u;return C&&(E=E.filter($=>$.shortName.toLowerCase().includes(C)||$.fullName.toLowerCase().includes(C)||($.language??"").toLowerCase().includes(C)||($.languageCode??"").toLowerCase().includes(C))),t.mode==="project-multi"&&c&&(E=E.filter($=>$.isSelected)),E},[u,o,t.mode,c]),m=l.useMemo(()=>Vc(g,i),[g,i]),p=l.useMemo(()=>{if(t.mode!=="project-multi")return[];const C=[];return t.projects.forEach(E=>{const $=t.openTabs.filter(x=>x.projectId===E.id);if($.length===0){C.push({projectId:E.id});return}const _=new Set;$.forEach(x=>{_.has(x.scrollGroupId)||(_.add(x.scrollGroupId),C.push({projectId:E.id,scrollGroupId:x.scrollGroupId}))})}),C},[t.mode,t.projects,t.openTabs]),f=C=>{if(C.scrollGroupId!==void 0){if(t.mode==="projectScrollGroup"){t.onOpenProjectInGroup(C.projectId,C.scrollGroupId);return}t.mode==="project-multi"&&t.onOpenProjectInGroup&&t.onOpenProjectInGroup(C.projectId,C.scrollGroupId)}},y=C=>{switch(t.mode){case"project":{t.onChangeSelection({projectId:C.projectId}),a(!1);return}case"project-multi":{const E=t.selection.pairs,$=x=>x.projectId===C.projectId&&x.scrollGroupId===C.scrollGroupId,_=E.some($)?E.filter(x=>!$(x)):[...E,{projectId:C.projectId,scrollGroupId:C.scrollGroupId}];t.onChangeSelection({pairs:_}),_.length===0&&c&&w(!1);return}case"projectScrollGroup":{if(C.isBoundButClosed&&C.scrollGroupId!==void 0){t.onOpenProjectInGroup(C.projectId,C.scrollGroupId),a(!1);return}if(C.scrollGroupId!==void 0){t.onChangeSelection({projectId:C.projectId,scrollGroupId:C.scrollGroupId}),a(!1);return}const E=t.selection.scrollGroupId??0;t.onChangeSelection({projectId:C.projectId,scrollGroupId:E}),t.onOpenProjectInGroup(C.projectId,E),a(!1)}}},b=()=>{if(t.mode!=="project-multi")return;const C=t.selection.pairs,E=new Set(C.map(_=>`${_.projectId}:${_.scrollGroupId??""}`)),$=[...C];p.forEach(_=>{const x=`${_.projectId}:${_.scrollGroupId??""}`;E.has(x)||(E.add(x),$.push(_))}),t.onChangeSelection({pairs:$})},D=()=>{t.mode==="project-multi"&&(t.onChangeSelection({pairs:[]}),c&&w(!1))},S=l.useMemo(()=>{switch(t.mode){case"project":{const C=t.projects.find($=>$.id===t.selection.projectId),E=C?C.shortName:t.buttonPlaceholder??"";return{node:E,title:E}}case"project-multi":{const{pairs:C}=t.selection;if(C.length===0){const x=t.buttonPlaceholder??"";return{node:x,title:x}}const E=[];if(C.forEach(x=>{const T=t.projects.find(P=>P.id===x.projectId);T&&E.push({project:T,scrollGroupId:x.scrollGroupId})}),E.length===0){const x=t.buttonPlaceholder??"";return{node:x,title:x}}if(t.getSelectedText){const x=t.getSelectedText(E);return{node:x,title:x}}const $=E.map(({project:x,scrollGroupId:T})=>T===void 0?x.shortName:`${x.shortName} (${wr(T)})`).join(", ");if(E.length===1)return{node:$,title:$};const _=E.length.toString();return{node:r.jsxs(r.Fragment,{children:[r.jsx(pe,{variant:"muted",className:"tw:shrink-0",children:_}),r.jsx("span",{className:"tw:min-w-0 tw:truncate",children:$})]}),title:`${_} ${$}`}}case"projectScrollGroup":{const C=t.projects.find(_=>_.id===t.selection.projectId);if(!C){const _=t.buttonPlaceholder??"";return{node:_,title:_}}const E=t.selection.scrollGroupId;if(E===void 0)return{node:C.shortName,title:C.shortName};const $=`${C.shortName} · ${wr(E)}`;return{node:$,title:$}}default:return{node:"",title:""}}},[t]),R=t.mode==="project-multi"?r.jsx(O.ChevronsUpDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"}):r.jsx(O.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"}),j=t.mode==="projectScrollGroup"||t.mode==="project-multi"&&t.onOpenProjectInGroup?f:void 0;return r.jsxs(se,{open:e,onOpenChange:a,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:t.buttonVariant??"outline",role:"combobox","aria-expanded":e,"aria-label":t.ariaLabel,disabled:t.isDisabled??!1,className:h("tw:flex tw:w-[180px] tw:items-center tw:justify-between tw:overflow-hidden",t.buttonClassName),children:[r.jsx("span",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:items-baseline tw:gap-2 tw:overflow-hidden tw:whitespace-nowrap tw:text-start",children:typeof S.node=="string"?r.jsx("span",{className:"tw:min-w-0 tw:truncate",children:S.node}):S.node}),R]})}),r.jsx(ce,{align:t.alignDropDown??"start",collisionPadding:16,className:h("tw:w-80 tw:max-w-[calc(100vw-2rem)] tw:p-0",t.popoverContentClassName),style:t.popoverContentStyle,children:r.jsx(Ot,{delayDuration:400,children:r.jsxs(he,{shouldFilter:!1,children:[r.jsxs("div",{className:"tw:flex tw:items-center tw:border-b tw:pe-2",children:[r.jsx("div",{className:"tw:flex-1",children:r.jsx(Fe,{value:o,onValueChange:n,placeholder:d.searchPlaceholder,className:"tw:border-0"})}),r.jsx(Hc,{groupByOpenTabs:i,onChangeGroupByOpenTabs:s,showSelectedOnly:t.mode==="project-multi"?c:void 0,onChangeShowSelectedOnly:t.mode==="project-multi"?w:void 0,strings:d})]}),t.mode==="project-multi"&&r.jsxs("div",{className:"tw:flex tw:justify-between tw:border-b tw:py-2 tw:pe-4 tw:ps-2",children:[t.hideSelectAll?r.jsx("span",{"aria-hidden":!0}):r.jsx(F,{variant:"ghost",size:"sm",onClick:b,children:`${d.selectAll} (${p.length.toString()})`}),r.jsx(F,{variant:"ghost",size:"sm",onClick:D,children:`${d.clearAll} (${t.selection.pairs.length.toString()})`})]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:t.commandEmptyMessage??"No projects found"}),m.map((C,E)=>r.jsxs(l.Fragment,{children:[r.jsx(re,{heading:Yc(C,d),children:C.rows.map($=>r.jsx(Kc,{row:$,mode:t.mode,strings:d,onClick:y,onOpen:j},$.rowKey))}),E({overrides:{a:{props:{target:o}}}}),[o]);return r.jsx("div",{id:t,className:h("pr-twp tw:prose",{"tw:line-clamp-3 tw:max-h-10 tw:overflow-hidden tw:text-ellipsis tw:break-words":n},a),children:r.jsx(bi,{options:i,children:e})})}const zn=Object.freeze(["%webView_error_dump_header%","%webView_error_dump_info_message%"]),bo=(t,e)=>t[e]??e;function Dn({errorDetails:t,handleCopyNotify:e,localizedStrings:a,id:o}){const n=bo(a,"%webView_error_dump_header%"),i=bo(a,"%webView_error_dump_info_message%");function s(){navigator.clipboard.writeText(t),e&&e()}return r.jsxs("div",{id:o,className:"tw:inline-flex tw:w-full tw:flex-col tw:items-start tw:justify-start tw:gap-4",children:[r.jsxs("div",{className:"tw:inline-flex tw:items-start tw:justify-start tw:gap-4 tw:self-stretch",children:[r.jsxs("div",{className:"tw:inline-flex tw:flex-1 tw:flex-col tw:items-start tw:justify-start",children:[r.jsx("div",{className:"tw:text-color-text tw:justify-center tw:text-center tw:text-lg tw:font-semibold tw:leading-loose",children:n}),r.jsx("div",{className:"tw:justify-center tw:self-stretch tw:text-sm tw:font-normal tw:leading-tight tw:text-muted-foreground",children:i})]}),r.jsx(F,{variant:"secondary",size:"icon",className:"size-8",onClick:()=>s(),children:r.jsx(O.Copy,{})})]}),r.jsx("div",{className:"tw:prose tw:w-full",children:r.jsx("pre",{className:"tw:text-xs",children:t})})]})}const Xc=Object.freeze([...zn,"%webView_error_dump_copied_message%"]);function Zc({errorDetails:t,handleCopyNotify:e,localizedStrings:a,children:o,className:n,id:i}){const[s,c]=l.useState(!1),w=()=>{c(!0),e&&e()},d=u=>{u||c(!1)};return r.jsxs(se,{onOpenChange:d,children:[r.jsx(me,{asChild:!0,children:o}),r.jsxs(ce,{id:i,className:h("tw:min-w-80 tw:max-w-96",n),children:[s&&a["%webView_error_dump_copied_message%"]&&r.jsx(yt,{children:a["%webView_error_dump_copied_message%"]}),r.jsx(Dn,{errorDetails:t,handleCopyNotify:w,localizedStrings:a})]})]})}var In=(t=>(t[t.Check=0]="Check",t[t.Radio=1]="Radio",t))(In||{});function Jc({id:t,label:e,groups:a}){const[o,n]=l.useState(Object.fromEntries(a.map((d,u)=>d.itemType===0?[u,[]]:void 0).filter(d=>!!d))),[i,s]=l.useState({}),c=(d,u)=>{const g=!o[d][u];n(p=>(p[d][u]=g,{...p}));const m=a[d].items[u];m.onUpdate(m.id,g)},w=(d,u)=>{s(m=>(m[d]=u,{...m}));const g=a[d].items.find(m=>m.id===u);g?g.onUpdate(u):console.error(`Could not find dropdown radio item with id '${u}'!`)};return r.jsx("div",{id:t,children:r.jsxs(ae,{children:[r.jsx(oe,{asChild:!0,children:r.jsxs(F,{variant:"default",children:[r.jsx(O.Filter,{size:16,className:"tw:mr-2 tw:h-4 tw:w-4"}),e,r.jsx(O.ChevronDown,{size:16,className:"tw:ml-2 tw:h-4 tw:w-4"})]})}),r.jsx(ne,{children:a.map((d,u)=>r.jsxs("div",{children:[r.jsx(Ee,{children:d.label}),r.jsx(La,{children:d.itemType===0?r.jsx(r.Fragment,{children:d.items.map((g,m)=>r.jsx("div",{children:r.jsx(ee,{checked:o[u][m],onCheckedChange:()=>c(u,m),children:g.label})},g.id))}):r.jsx(yn,{value:i[u],onValueChange:g=>w(u,g),children:d.items.map(g=>r.jsx("div",{children:r.jsx(kn,{value:g.id,children:g.label})},g.id))})}),r.jsx(ye,{})]},d.label))})]})})}function Qc({id:t,category:e,downloads:a,languages:o,moreInfoUrl:n,handleMoreInfoLinkClick:i,supportUrl:s,handleSupportLinkClick:c}){const w=new z.NumberFormat("en",{notation:"compact",compactDisplay:"short"}).format(Object.values(a).reduce((u,g)=>u+g,0)),d=()=>{window.scrollTo(0,document.body.scrollHeight)};return r.jsxs("div",{id:t,className:"pr-twp tw:flex tw:items-center tw:justify-center tw:gap-4 tw:divide-x tw:border-b tw:border-t tw:py-2 tw:text-center",children:[e&&r.jsxs("div",{className:"tw:flex tw:flex-col tw:items-center tw:gap-1",children:[r.jsx("div",{className:"tw:flex",children:r.jsx("span",{className:"tw:text-xs tw:font-semibold tw:text-foreground",children:e})}),r.jsx("span",{className:"tw:text-xs tw:text-foreground",children:"CATEGORY"})]}),r.jsxs("div",{className:"tw:flex tw:flex-col tw:items-center tw:gap-1 tw:ps-4",children:[r.jsxs("div",{className:"tw:flex tw:gap-1",children:[r.jsx(O.User,{className:"tw:h-4 tw:w-4"}),r.jsx("span",{className:"tw:text-xs tw:font-semibold tw:text-foreground",children:w})]}),r.jsx("span",{className:"tw:text-xs tw:text-foreground",children:"USERS"})]}),r.jsxs("div",{className:"tw:flex tw:flex-col tw:items-center tw:gap-1 tw:ps-4",children:[r.jsx("div",{className:"tw:flex tw:gap-2",children:o.slice(0,3).map(u=>r.jsx("span",{className:"tw:text-xs tw:font-semibold tw:text-foreground",children:u.toUpperCase()},u))}),o.length>3&&r.jsxs("button",{type:"button",onClick:()=>d(),className:"tw:text-xs tw:text-foreground tw:underline",children:["+",o.length-3," more languages"]})]}),(n||s)&&r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-1 tw:ps-4",children:[n&&r.jsx("div",{className:"tw:flex tw:gap-1",children:r.jsxs(F,{onClick:()=>i(),variant:"link",className:"tw:flex tw:h-auto tw:gap-1 tw:py-0 tw:text-xs tw:font-semibold tw:text-foreground",children:["Website",r.jsx(O.Link,{className:"tw:h-4 tw:w-4"})]})}),s&&r.jsx("div",{className:"tw:flex tw:gap-1",children:r.jsxs(F,{onClick:()=>c(),variant:"link",className:"tw:flex tw:h-auto tw:gap-1 tw:py-0 tw:text-xs tw:font-semibold tw:text-foreground",children:["Support",r.jsx(O.CircleHelp,{className:"tw:h-4 tw:w-4"})]})})]})]})}function tl({id:t,versionHistory:e}){const[a,o]=l.useState(!1),n=new Date;function i(c){const w=new Date(c),d=new Date(n.getTime()-w.getTime()),u=d.getUTCFullYear()-1970,g=d.getUTCMonth(),m=d.getUTCDate()-1;let p="";return u>0?p=`${u.toString()} year${u===1?"":"s"} ago`:g>0?p=`${g.toString()} month${g===1?"":"s"} ago`:m===0?p="today":p=`${m.toString()} day${m===1?"":"s"} ago`,p}const s=Object.entries(e).sort((c,w)=>w[0].localeCompare(c[0]));return r.jsxs("div",{className:"pr-twp",id:t,children:[r.jsx("h3",{className:"tw:text-md tw:font-semibold",children:"What`s New"}),r.jsx("ul",{className:"tw:list-disc tw:pl-5 tw:pr-4 tw:text-xs tw:text-foreground",children:(a?s:s.slice(0,5)).map(c=>r.jsxs("div",{className:"tw:mt-3 tw:flex tw:justify-between",children:[r.jsx("div",{className:"tw:text-foreground",children:r.jsx("li",{className:"tw:prose tw:text-xs",children:r.jsx("span",{children:c[1].description})})}),r.jsxs("div",{className:"tw:justify-end tw:text-right",children:[r.jsxs("div",{children:["Version ",c[0]]}),r.jsx("div",{children:i(c[1].date)})]})]},c[0]))}),s.length>5&&r.jsx("button",{type:"button",onClick:()=>o(!a),className:"tw:text-xs tw:text-foreground tw:underline",children:a?"Show Less Version History":"Show All Version History"})]})}function el({id:t,publisherDisplayName:e,fileSize:a,locales:o,versionHistory:n,currentVersion:i}){const s=l.useMemo(()=>z.formatBytes(a),[a]),w=(d=>{const u=new Intl.DisplayNames(z.getCurrentLocale(),{type:"language"});return d.map(g=>u.of(g))})(o);return r.jsx("div",{id:t,className:"pr-twp tw:border-t tw:py-2",children:r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-2 tw:divide-y",children:[Object.entries(n).length>0&&r.jsx(tl,{versionHistory:n}),r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-2 tw:py-2",children:[r.jsx("h2",{className:"tw:text-md tw:font-semibold",children:"Information"}),r.jsxs("div",{className:"tw:flex tw:items-start tw:justify-between tw:text-xs tw:text-foreground",children:[r.jsxs("p",{className:"tw:flex tw:flex-col tw:justify-start tw:gap-1",children:[r.jsx("span",{children:"Publisher"}),r.jsx("span",{className:"tw:font-semibold",children:e}),r.jsx("span",{children:"Size"}),r.jsx("span",{className:"tw:font-semibold",children:s})]}),r.jsx("div",{className:"tw:flex tw:w-3/4 tw:items-center tw:justify-between tw:text-xs tw:text-foreground",children:r.jsxs("p",{className:"tw:flex tw:flex-col tw:justify-start tw:gap-1",children:[r.jsx("span",{children:"Version"}),r.jsx("span",{className:"tw:font-semibold",children:i}),r.jsx("span",{children:"Languages"}),r.jsx("span",{className:"tw:font-semibold",children:w.join(", ")})]})})]})]})]})})}function Mn({entries:t,selected:e,onChange:a,placeholder:o,hasToggleAllFeature:n=!1,selectAllText:i="Select All",clearAllText:s="Clear All",commandEmptyMessage:c="No entries found",customSelectedText:w,isOpen:d=void 0,onOpenChange:u=void 0,isDisabled:g=!1,sortSelected:m=!1,icon:p=void 0,className:f=void 0,variant:y="ghost",id:b}){const[D,S]=l.useState(!1),R=l.useCallback(T=>{var G;const P=(G=t.find(q=>q.label===T))==null?void 0:G.value;P&&a(e.includes(P)?e.filter(q=>q!==P):[...e,P])},[t,e,a]),j=()=>w||o,C=l.useMemo(()=>{if(!m)return t;const T=t.filter(G=>G.starred).sort((G,q)=>G.label.localeCompare(q.label)),P=t.filter(G=>!G.starred).sort((G,q)=>{const V=e.includes(G.value),K=e.includes(q.value);return V&&!K?-1:!V&&K?1:G.label.localeCompare(q.label)});return[...T,...P]},[t,e,m]),E=()=>{a(t.map(T=>T.value))},$=()=>{a([])},_=d??D,x=u??S;return r.jsx("div",{id:b,className:f,children:r.jsxs(se,{open:_,onOpenChange:x,children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:y,role:"combobox","aria-expanded":_,className:"tw:group tw:w-full tw:justify-between",disabled:g,children:[r.jsxs("div",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:items-center tw:gap-2",children:[p&&r.jsx("div",{className:"tw:ml-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50",children:r.jsx("span",{className:"tw:flex tw:h-full tw:w-full tw:items-center tw:justify-center",children:p})}),r.jsx("span",{className:h("tw:min-w-0 tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:text-start tw:font-normal"),children:j()})]}),r.jsx(O.ChevronsUpDown,{className:"tw:ml-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ce,{align:"start",className:"tw:w-full tw:p-0",children:r.jsxs(he,{children:[r.jsx(Fe,{placeholder:`Search ${o.toLowerCase()}...`}),n&&r.jsxs("div",{className:"tw:flex tw:justify-between tw:border-b tw:p-2",children:[r.jsx(F,{variant:"ghost",size:"sm",onClick:E,children:i}),r.jsx(F,{variant:"ghost",size:"sm",onClick:$,children:s})]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:c}),r.jsx(re,{children:C.map(T=>r.jsxs(ie,{value:T.label,onSelect:R,className:"tw:flex tw:items-center tw:gap-2",children:[r.jsx("div",{className:"w-4",children:r.jsx(O.Check,{className:h("tw:h-4 tw:w-4",e.includes(T.value)?"tw:opacity-100":"tw:opacity-0")})}),T.starred&&r.jsx(O.Star,{className:"tw:h-4 tw:w-4"}),r.jsx("div",{className:"tw:flex-grow",children:T.label}),T.secondaryLabel&&r.jsx("div",{className:"tw:text-end tw:text-muted-foreground",children:T.secondaryLabel})]},T.label))})]})]})})]})})}function rl({entries:t,selected:e,onChange:a,placeholder:o,commandEmptyMessage:n,customSelectedText:i,isDisabled:s,sortSelected:c,icon:w,className:d,badgesPlaceholder:u,id:g}){return r.jsxs("div",{id:g,className:"tw:flex tw:items-center tw:gap-2",children:[r.jsx(Mn,{entries:t,selected:e,onChange:a,placeholder:o,commandEmptyMessage:n,customSelectedText:i,isDisabled:s,sortSelected:c,icon:w,className:d}),e.length>0?r.jsx("div",{className:"tw:flex tw:flex-wrap tw:items-center tw:gap-2",children:e.map(m=>{var p;return r.jsxs(pe,{variant:"muted",className:"tw:flex tw:items-center tw:gap-1",children:[r.jsx(F,{variant:"ghost",size:"icon",className:"tw:h-4 tw:w-4 tw:p-0 tw:hover:bg-transparent",onClick:()=>a(e.filter(f=>f!==m)),children:r.jsx(O.X,{className:"tw:h-3 tw:w-3"})}),(p=t.find(f=>f.value===m))==null?void 0:p.label]},m)})}):r.jsx(yt,{children:u})]})}function ha({className:t,...e}){return r.jsx("kbd",{"data-slot":"kbd",className:h("pr-twp tw:pointer-events-none tw:inline-flex tw:h-5 tw:w-fit tw:min-w-5 tw:items-center tw:justify-center tw:gap-1 tw:rounded-sm tw:bg-muted tw:px-1 tw:font-sans tw:text-xs tw:font-medium tw:text-muted-foreground tw:select-none tw:in-data-[slot=tooltip-content]:bg-background/20 tw:in-data-[slot=tooltip-content]:text-background tw:dark:in-data-[slot=tooltip-content]:bg-background/10 tw:[&_svg:not([class*=size-])]:size-3",t),...e})}const On=Object.freeze(["%undoButton_tooltip%","%redoButton_tooltip%"]),xo=(t,e)=>t[e]??e;function $n({onUndoClick:t,onRedoClick:e,canUndo:a=!0,canRedo:o=!0,localizedStrings:n={},showKeyboardShortcuts:i=!0,className:s="tw:h-6 tw:w-6",variant:c="ghost"}){const w=l.useMemo(()=>/Macintosh/i.test(navigator.userAgent),[]),d=xo(n,"%undoButton_tooltip%"),u=xo(n,"%redoButton_tooltip%"),g=c==="secondary"||c==="default";return r.jsxs(Gr,{children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":d,className:s,size:"icon",onClick:t,disabled:!a,variant:c,children:r.jsx(O.Undo,{})})}),r.jsx(Pt,{children:r.jsxs("p",{children:[d,i&&r.jsxs(r.Fragment,{children:[" ",r.jsx(ha,{children:w?"⌘Z":"Ctrl+Z"})]})]})})]})}),e&&g&&r.jsx(Ma,{}),e&&r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":u,className:s,size:"icon",onClick:e,disabled:!o,variant:c,children:r.jsx(O.Redo,{})})}),r.jsx(Pt,{children:r.jsxs("p",{children:[u,i&&r.jsxs(r.Fragment,{children:[" ",r.jsx(ha,{children:w?"⌘⇧Z":"Ctrl+Y"})]})]})})]})})]})}function An({children:t,editorRef:e,canUndo:a=!0,canRedo:o=!0}){const n=l.useRef(null);return l.useEffect(()=>{var w;const i=/Macintosh/i.test(navigator.userAgent),s=((w=n.current)==null?void 0:w.querySelector(".editor-input"))??void 0,c=d=>{var g,m,p,f;if(!s||document.activeElement!==s)return;const u=d.key.toLowerCase();if(i){if(!d.metaKey)return;!d.shiftKey&&u==="z"?(d.preventDefault(),a&&((g=e.current)==null||g.undo())):d.shiftKey&&u==="z"&&(d.preventDefault(),o&&((m=e.current)==null||m.redo()))}else{if(!d.ctrlKey)return;!d.shiftKey&&u==="z"?(d.preventDefault(),a&&((p=e.current)==null||p.undo())):(u==="y"||d.shiftKey&&u==="z")&&(d.preventDefault(),o&&((f=e.current)==null||f.redo()))}};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[o,a,e]),r.jsx("div",{ref:n,children:t})}const al=(t,e,a)=>t==="generated"?r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"+"})," ",e["%footnoteEditor_callerDropdown_item_generated%"]]}):t==="hidden"?r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"-"})," ",e["%footnoteEditor_callerDropdown_item_hidden%"]]}):r.jsxs(r.Fragment,{children:[r.jsx("p",{children:a})," ",e["%footnoteEditor_callerDropdown_item_custom%"]]});function ol({callerType:t,updateCallerType:e,customCaller:a,updateCustomCaller:o,localizedStrings:n}){const i=l.useRef(null),s=l.useRef(null),c=l.useRef(!1),[w,d]=l.useState(t),[u,g]=l.useState(a),[m,p]=l.useState(!1);l.useEffect(()=>{d(t)},[t]),l.useEffect(()=>{u!==a&&g(a)},[a]);const f=b=>{c.current=!1,p(b),b||(w!=="custom"||u?(e(w),o(u)):(d(t),g(a)))},y=b=>{var D,S,R,j;b.stopPropagation(),document.activeElement===s.current&&b.key==="ArrowDown"||b.key==="ArrowRight"?((D=i.current)==null||D.focus(),c.current=!0):document.activeElement===i.current&&b.key==="ArrowUp"?((S=s.current)==null||S.focus(),c.current=!1):document.activeElement===i.current&&b.key==="ArrowLeft"&&((R=i.current)==null?void 0:R.selectionStart)===0&&((j=s.current)==null||j.focus(),c.current=!1),w==="custom"&&b.key==="Enter"&&(document.activeElement===s.current||document.activeElement===i.current)&&f(!1)};return r.jsxs(ae,{open:m,onOpenChange:f,children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"outline",className:"tw:h-6",children:al(t,n,a)})})}),r.jsx(Pt,{children:n["%footnoteEditor_callerDropdown_tooltip%"]})]})}),r.jsxs(ne,{style:{zIndex:xa},onClick:()=>{c.current&&(c.current=!1)},onKeyDown:y,onMouseMove:()=>{var b;c.current&&((b=i.current)==null||b.focus())},children:[r.jsx(Ee,{children:n["%footnoteEditor_callerDropdown_label%"]}),r.jsx(ye,{}),r.jsx(ee,{checked:w==="generated",onCheckedChange:()=>d("generated"),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:justify-between",children:[r.jsx("span",{children:n["%footnoteEditor_callerDropdown_item_generated%"]}),r.jsx("span",{className:"tw:w-10 tw:text-center",children:Xt.GENERATOR_NOTE_CALLER})]})}),r.jsx(ee,{checked:w==="hidden",onCheckedChange:()=>d("hidden"),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:justify-between",children:[r.jsx("span",{children:n["%footnoteEditor_callerDropdown_item_hidden%"]}),r.jsx("span",{className:"tw:w-10 tw:text-center",children:Xt.HIDDEN_NOTE_CALLER})]})}),r.jsx(ee,{ref:s,checked:w==="custom",onCheckedChange:()=>d("custom"),onClick:b=>{var D;b.stopPropagation(),c.current=!0,(D=i.current)==null||D.focus()},onSelect:b=>b.preventDefault(),children:r.jsxs("div",{className:"tw:flex tw:w-full tw:justify-between",children:[r.jsx("span",{children:n["%footnoteEditor_callerDropdown_item_custom%"]}),r.jsx(Xe,{tabIndex:0,onMouseDown:b=>{b.stopPropagation(),d("custom"),c.current=!0},ref:i,className:"tw:h-auto tw:w-10 tw:p-0 tw:text-center",value:u,onKeyDown:b=>{b.key==="Enter"||b.key==="ArrowUp"||b.key==="ArrowDown"||b.key==="ArrowLeft"||b.key==="ArrowRight"||b.stopPropagation()},maxLength:1,onChange:b=>g(b.target.value)})]})})]})]})}const nl=(t,e)=>t==="f"?r.jsxs(r.Fragment,{children:[r.jsx(O.FunctionSquare,{})," ",e["%footnoteEditor_noteType_footnote_label%"]]}):t==="fe"?r.jsxs(r.Fragment,{children:[r.jsx(O.SquareSigma,{})," ",e["%footnoteEditor_noteType_endNote_label%"]]}):r.jsxs(r.Fragment,{children:[r.jsx(O.SquareX,{})," ",e["%footnoteEditor_noteType_crossReference_label%"]]}),il=(t,e)=>{if(t==="x")return e["%footnoteEditor_noteType_crossReference_label%"];let a=e["%footnoteEditor_noteType_endNote_label%"];return t==="f"&&(a=e["%footnoteEditor_noteType_footnote_label%"]),z.formatReplacementString(e["%footnoteEditor_noteType_tooltip%"]??"",{noteType:a})};function sl({noteType:t,handleNoteTypeChange:e,localizedStrings:a,isTypeSwitchable:o}){return r.jsxs(ae,{children:[r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(oe,{asChild:!0,children:r.jsx(F,{variant:"outline",className:"tw:h-6",children:nl(t,a)})})}),r.jsx(Pt,{children:r.jsx("p",{children:il(t,a)})})]})}),r.jsxs(ne,{style:{zIndex:xa},children:[r.jsx(Ee,{children:a["%footnoteEditor_noteTypeDropdown_label%"]}),r.jsx(ye,{}),r.jsxs(ee,{disabled:t!=="x"&&!o,checked:t==="x",onCheckedChange:()=>e("x"),className:"tw:gap-2",children:[r.jsx(O.SquareX,{}),r.jsx("span",{children:a["%footnoteEditor_noteType_crossReference_label%"]})]}),r.jsxs(ee,{disabled:t==="x"&&!o,checked:t==="f",onCheckedChange:()=>e("f"),className:"tw:gap-2",children:[r.jsx(O.FunctionSquare,{}),r.jsx("span",{children:a["%footnoteEditor_noteType_footnote_label%"]})]}),r.jsxs(ee,{disabled:t==="x"&&!o,checked:t==="fe",onCheckedChange:()=>e("fe"),className:"tw:gap-2",children:[r.jsx(O.SquareSigma,{}),r.jsx("span",{children:a["%footnoteEditor_noteType_endNote_label%"]})]})]})]})}const Pn=Object.freeze(["%markerMenu_deprecated_label%","%markerMenu_disallowed_label%","%markerMenu_noResults%","%markerMenu_searchPlaceholder%"]);function cl({icon:t,className:e}){const a=t??O.Ban;return r.jsx(a,{className:e,size:16})}function yo({item:t,localizedStrings:e}){return r.jsxs(ie,{className:"tw:flex tw:gap-2 tw:hover:bg-accent",disabled:t.isDisallowed||t.isDeprecated,onSelect:t.action,children:[r.jsx("div",{className:"tw:w-8 tw:min-w-8",children:t.marker?r.jsx("span",{className:"tw:text-xs",children:t.marker}):r.jsx("div",{children:r.jsx(cl,{icon:t.icon})})}),r.jsxs("div",{children:[r.jsx("p",{className:"tw:text-sm",children:t.title}),t.subtitle&&r.jsx("p",{className:"tw:text-xs tw:text-muted-foreground",children:t.subtitle})]}),(t.isDisallowed||t.isDeprecated)&&r.jsx(Oi,{className:"tw:font-sans",children:t.isDisallowed?e["%markerMenu_disallowed_label%"]:e["%markerMenu_deprecated_label%"]})]})}function Ln({localizedStrings:t,markerMenuItems:e,searchRef:a}){const[o,n]=l.useState(""),[i,s]=l.useMemo(()=>{const c=o.trim().toLowerCase();if(!c)return[e,[]];const w=e.filter(u=>{var g;return(g=u.marker)==null?void 0:g.toLowerCase().includes(c)}),d=e.filter(u=>u.title.toLowerCase().includes(c)&&!w.includes(u));return[w,d]},[o,e]);return r.jsxs(he,{className:"tw:p-1",shouldFilter:!1,loop:!0,children:[r.jsx(Fe,{className:"marker-menu-search",ref:a,value:o,onValueChange:c=>n(c),placeholder:t["%markerMenu_searchPlaceholder%"]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:t["%markerMenu_noResults%"]}),r.jsx(re,{children:i.map(c=>{var w;return r.jsx(yo,{item:c,localizedStrings:t},`item-${c.marker??((w=c.icon)==null?void 0:w.displayName)}-${c.title.replaceAll(" ","")}`)})}),s.length>0&&r.jsxs(r.Fragment,{children:[i.length>0&&r.jsx(ka,{alwaysRender:!0}),r.jsx(re,{children:s.map(c=>{var w;return r.jsx(yo,{item:c,localizedStrings:t},`item-${c.marker??((w=c.icon)==null?void 0:w.displayName)}-${c.title.replaceAll(" ","")}`)})})]})]})]})}function ll(t,e,a,o){if(!o||o==="p")return[];const n=z.usfmMarkers[o];if(!(n!=null&&n.children))return[];const i=[];return Object.entries(n.children).forEach(([,s])=>{i.push(...s.map(c=>({marker:c,title:a[z.usfmMarkers[c].description]??z.usfmMarkers[c].description,action:()=>{var w;(w=t.current)==null||w.insertMarker(c),e()}})))}),i.sort((s,c)=>(s.marker??s.title).localeCompare(c.marker??c.title))}function dl(t){var a;const e=(a=t.attributes)==null?void 0:a.char;e.style&&(e.style==="ft"&&(e.style="xt"),e.style==="fr"&&(e.style="xo"),e.style==="fq"&&(e.style="xq"))}function wl(t){var a;const e=(a=t.attributes)==null?void 0:a.char;e.style&&(e.style==="xt"&&(e.style="ft"),e.style==="xo"&&(e.style="fr"),e.style==="xq"&&(e.style="fq"))}const ul={type:"USJ",version:"3.1",content:[{type:"para"}]};function pl({classNameForEditor:t,noteOps:e,onChange:a,onClose:o,scrRef:n,noteKey:i,editorOptions:s,defaultMarkerMenuTrigger:c,localizedStrings:w,parentEditorRef:d}){const u=l.useRef(null),g=l.useRef(null),m=l.useRef(null),p=l.useRef(null);l.useLayoutEffect(()=>{if(!p.current)return;const{width:B}=p.current.getBoundingClientRect();B>0&&(p.current.style.width=`${B}px`)},[]);const[f,y]=l.useState("generated"),[b,D]=l.useState("generated"),[S,R]=l.useState("*"),[j,C]=l.useState("*"),[E,$]=l.useState("f"),[_,x]=l.useState(!1),[T,P]=l.useState(!0),[G,q]=l.useState(!1),V=l.useRef(!1),K=l.useRef(""),[I,Y]=l.useState(!1),[lt,kt]=l.useState(),[St,J]=l.useState(),[Et,U]=l.useState(),[tt,rt]=l.useState(),at=l.useRef(null),ot=l.useMemo(()=>({...s,markerMenuTrigger:c,hasExternalUI:!0,view:{...s.view??Xt.getDefaultViewOptions(),noteMode:"expanded"}}),[s,c]),Lt=l.useMemo(()=>ll(u,()=>Y(!1),w,tt),[w,tt]);l.useEffect(()=>{var B;I||(B=u.current)==null||B.focus()},[E,I]),l.useEffect(()=>{var nt,et;let B;V.current=!1,P(!0);const W=e==null?void 0:e.at(0);if(W&&Xt.isInsertEmbedOpOfType("note",W)){const wt=(nt=W.insert.note)==null?void 0:nt.caller;let mt="custom";wt===Xt.GENERATOR_NOTE_CALLER?mt="generated":wt===Xt.HIDDEN_NOTE_CALLER?mt="hidden":wt&&(R(wt),C(wt)),y(mt),D(mt),$(((et=W.insert.note)==null?void 0:et.style)??"f"),B=setTimeout(()=>{var vt;(vt=u.current)==null||vt.applyUpdate([W])},0)}return()=>{B&&clearTimeout(B)}},[e,i]);const gt=l.useCallback((B,W,nt=!1)=>{var wt,mt,vt;const et=(mt=(wt=u.current)==null?void 0:wt.getNoteOps(0))==null?void 0:mt.at(0);if(et&&Xt.isInsertEmbedOpOfType("note",et)){if(et.insert.note){let ut;B==="custom"?ut=W:B==="generated"?ut=Xt.GENERATOR_NOTE_CALLER:ut=Xt.HIDDEN_NOTE_CALLER,et.insert.note.caller=ut}a==null||a([et]),nt&&d&&i&&((vt=d.current)==null||vt.replaceEmbedUpdate(i,[et]))}},[i,a,d]),Ft=l.useCallback(()=>{gt(f,S,!0),o()},[f,S,o,gt]),Gt=l.useRef(Ft);l.useLayoutEffect(()=>{Gt.current=Ft});const A=l.useRef({book:n.book,chapterNum:n.chapterNum});l.useLayoutEffect(()=>{(A.current.book!==n.book||A.current.chapterNum!==n.chapterNum)&&(A.current={book:n.book,chapterNum:n.chapterNum},Gt.current())},[n.book,n.chapterNum]);const Tt=()=>{var W;const B=(W=g.current)==null?void 0:W.getElementsByClassName("editor-input")[0];B!=null&&B.textContent&&navigator.clipboard.writeText(B.textContent)},Bt=l.useCallback(B=>{y(B),gt(B,S)},[S,gt]),Qt=l.useCallback(B=>{R(B),gt(f,B)},[f,gt]),Ut=B=>{var nt,et,wt,mt,vt;$(B);const W=(et=(nt=u.current)==null?void 0:nt.getNoteOps(0))==null?void 0:et.at(0);if(W&&Xt.isInsertEmbedOpOfType("note",W)){W.insert.note&&(W.insert.note.style=B);const ut=(mt=(wt=W.insert.note)==null?void 0:wt.contents)==null?void 0:mt.ops;E!=="x"&&B==="x"?ut==null||ut.forEach(jt=>dl(jt)):E==="x"&&B!=="x"&&(ut==null||ut.forEach(jt=>wl(jt))),(vt=u.current)==null||vt.applyUpdate([W,{delete:1}])}},Rt=B=>{rt(B.contextMarker),q(B.canRedo)},je=l.useCallback(B=>{var nt,et,wt,mt,vt;const W=(et=(nt=u.current)==null?void 0:nt.getNoteOps(0))==null?void 0:et.at(0);if(W&&Xt.isInsertEmbedOpOfType("note",W)){B.content.length>1&&setTimeout(()=>{var M;(M=u.current)==null||M.applyUpdate([{retain:2},{delete:1}])},0);const ut=(wt=W.insert.note)==null?void 0:wt.style,jt=(vt=(mt=W.insert.note)==null?void 0:mt.contents)==null?void 0:vt.ops;if(ut||x(!1),x(ut==="x"?!!(jt!=null&&jt.every(M=>{var dt,bt;if(!((dt=M.attributes)!=null&&dt.char))return!0;const ct=((bt=M.attributes)==null?void 0:bt.char).style;return ct==="xt"||ct==="xo"||ct==="xq"})):!!(jt!=null&&jt.every(M=>{var dt,bt;if(!((dt=M.attributes)!=null&&dt.char))return!0;const ct=((bt=M.attributes)==null?void 0:bt.char).style;return ct==="ft"||ct==="fr"||ct==="fq"}))),!V.current){V.current=!0,K.current=JSON.stringify(W),P(!0);return}P(JSON.stringify(W)===K.current),gt(f,S)}else x(!1),P(!0)},[f,S,gt]),qt=l.useCallback(()=>{const B=window.getSelection();if(m.current&&Lt.length&&B&&B.rangeCount>0){const W=B.getRangeAt(0).getBoundingClientRect(),nt=m.current.getBoundingClientRect();kt(W.left-nt.left),J(W.top-nt.top),U(W.height),Y(!0)}},[Lt,m]);l.useEffect(()=>{const B=()=>{I&&Y(!1)};return window.addEventListener("click",B),()=>{window.removeEventListener("click",B)}},[I]),l.useEffect(()=>{var B;I&&((B=at.current)==null||B.focus())},[I]),l.useEffect(()=>{var nt;const B=((nt=g.current)==null?void 0:nt.querySelector(".editor-input"))??void 0,W=et=>{!I&&B&&document.activeElement===B&&et.key===c?(et.preventDefault(),qt()):I&&et.key==="Escape"&&(et.preventDefault(),Y(!1))};return document.addEventListener("keydown",W),()=>{document.removeEventListener("keydown",W)}},[I,qt,c]);const Kt=w["%footnoteEditor_copyButton_tooltip%"];return r.jsxs(r.Fragment,{children:[r.jsxs("div",{ref:p,className:"footnote-editor tw:grid tw:gap-[12px]",children:[r.jsxs("div",{className:"tw:flex",children:[r.jsxs("div",{className:"tw:flex tw:gap-4",children:[r.jsx(sl,{isTypeSwitchable:_,noteType:E,handleNoteTypeChange:Ut,localizedStrings:w}),r.jsx(ol,{callerType:f,updateCallerType:Bt,customCaller:S,updateCustomCaller:Qt,localizedStrings:w})]}),r.jsx("div",{className:"tw:flex tw:w-full tw:justify-end",children:r.jsxs(Gr,{children:[r.jsx($n,{onUndoClick:()=>{var B;return(B=u.current)==null?void 0:B.undo()},onRedoClick:()=>{var B;return(B=u.current)==null?void 0:B.redo()},canUndo:!T,canRedo:G,localizedStrings:w}),r.jsx($a,{onCancelClick:o,onAcceptClick:Ft,canAccept:!T||b!==f||f==="custom"&&S!==j,localizedStrings:w,acceptLabel:w["%footnoteEditor_saveButton_tooltip%"]})]})})]}),r.jsxs("div",{ref:g,className:"tw:relative tw:rounded-[6px] tw:border-2 tw:border-ring",children:[r.jsx("div",{className:t,children:r.jsx(An,{editorRef:u,canUndo:!T,canRedo:G,children:r.jsx(Xt.Editorial,{options:ot,onStateChange:Rt,onUsjChange:je,defaultUsj:ul,onScrRefChange:()=>{},scrRef:n,ref:u})})}),r.jsx("div",{className:"tw:absolute tw:bottom-0 tw:right-0",children:r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsx(F,{"aria-label":Kt,onClick:Tt,className:"tw:h-6 tw:w-6",variant:"ghost",size:"icon",children:r.jsx(O.Copy,{})})}),r.jsx(Pt,{children:r.jsx("p",{children:Kt})})]})})})]})]}),r.jsx("div",{className:"tw:absolute",ref:m,style:{top:0,left:0,height:0,width:0}}),r.jsxs(se,{open:I,children:[r.jsx($o,{className:"tw:absolute",style:{top:St,left:lt,height:Et,width:0,pointerEvents:"none"}}),r.jsx(ce,{className:"tw:w-[500px] tw:p-0",onClick:B=>{B.preventDefault(),B.stopPropagation()},children:r.jsx(Ln,{markerMenuItems:Lt,localizedStrings:w,searchRef:at})})]})]})}const gl=Object.freeze([...Pn,...Object.entries(z.usfmMarkers).map(([,t])=>t.description).filter(t=>!!t),"%footnoteEditor_callerDropdown_item_custom%","%footnoteEditor_callerDropdown_item_generated%","%footnoteEditor_callerDropdown_item_hidden%","%footnoteEditor_callerDropdown_label%","%footnoteEditor_callerDropdown_tooltip%","%footnoteEditor_copyButton_tooltip%","%footnoteEditor_noteType_crossReference_label%","%footnoteEditor_noteType_endNote_label%","%footnoteEditor_noteType_footnote_label%","%footnoteEditor_noteType_tooltip%","%footnoteEditor_noteTypeDropdown_label%","%footnoteEditor_saveButton_tooltip%",...On,...Oa]);function Bn(t,e){if(!e||e.length===0)return t??"empty";const a=e.find(n=>typeof n=="string");if(a)return`key-${t??"unknown"}-${a.slice(0,10)}`;const o=typeof e[0]=="string"?"impossible":e[0].marker??"unknown";return`key-${t??"unknown"}-${o}`}function hl(t,e,a=!0,o=void 0){if(!e||e.length===0)return;const n=[],i=[];let s=[];return e.forEach(c=>{typeof c!="string"&&c.marker==="fp"?(s.length>0&&i.push(s),s=[c]):s.push(c)}),s.length>0&&i.push(s),i.map((c,w)=>{const d=w===i.length-1;return r.jsxs("p",{children:[Ba(t,c,a,!0,n),d&&o]},Bn(t,c))})}function Ba(t,e,a=!0,o=!0,n=[]){if(!(!e||e.length===0))return e.map(i=>{if(typeof i=="string"){const s=`${t}-text-${i.slice(0,10)}`;if(o){const c=h(`usfm_${t}`);return r.jsx("span",{className:c,children:i},s)}return r.jsxs("span",{className:"tw:inline-flex tw:items-center tw:gap-1 tw:underline tw:decoration-destructive",children:[r.jsx(O.AlertCircle,{className:"tw:h-4 tw:w-4 tw:fill-destructive"}),r.jsx("span",{children:i}),r.jsx(O.AlertCircle,{className:"tw:h-4 tw:w-4 tw:fill-destructive"})]},s)}return fl(i,Bn(`${t}\\${i.marker}`,[i]),a,[...n,t??"unknown"])})}function fl(t,e,a,o=[]){const{marker:n}=t;return r.jsxs("span",{children:[n?a&&r.jsx("span",{className:"marker",children:`\\${n} `}):r.jsx(O.AlertCircle,{className:"tw:text-error tw:mr-1 tw:inline-block tw:h-4 tw:w-4","aria-label":"Missing marker"}),Ba(n,t.content,a,!0,[...o,n??"unknown"])]},e)}function Vn({footnote:t,layout:e="horizontal",formatCaller:a,showMarkers:o=!0}){const n=a?a(t.caller):t.caller,i=n!==t.caller;let s,c=t.content;Array.isArray(t.content)&&t.content.length>0&&typeof t.content[0]!="string"&&(t.content[0].marker==="fr"||t.content[0].marker==="xo")&&([s,...c]=t.content);const w=o?r.jsx("span",{className:"marker",children:`\\${t.marker} `}):void 0,d=o?r.jsx("span",{className:"marker",children:` \\${t.marker}*`}):void 0,u=n&&r.jsxs("span",{className:h("note-caller tw:inline-block",{formatted:i}),children:[n," "]}),g=s&&r.jsxs(r.Fragment,{children:[Ba(t.marker,[s],o,!1)," "]}),m=e==="horizontal"?"horizontal":"vertical",p=o?"marker-visible":"",f=e==="horizontal"?"tw:col-span-1":"tw:col-span-2 tw:col-start-1 tw:row-start-2",y=h(m,p);return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:h("textual-note-header tw:col-span-1 tw:w-fit tw:text-nowrap",y),children:[w,u]}),r.jsx("div",{className:h("textual-note-header tw:col-span-1 tw:w-fit tw:text-nowrap",y),children:g}),r.jsx("div",{className:h("textual-note-body tw:flex tw:flex-col tw:gap-1",f,y),children:c&&c.length>0&&r.jsx(r.Fragment,{children:hl(t.marker,c,o,d)})})]})}function ml({className:t,classNameForItems:e,footnotes:a,layout:o="horizontal",listId:n,selectedFootnote:i,showMarkers:s=!0,suppressFormatting:c=!1,formatCaller:w,onFootnoteSelected:d}){const u=w??z.getFormatCallerFunction(a,void 0),g=(S,R)=>{d==null||d(S,R,n)},m=i?a.findIndex(S=>S===i):-1,[p,f]=l.useState(m),y=(S,R,j)=>{if(a.length)switch(S.key){case"Enter":case" ":S.preventDefault(),d==null||d(R,j,n);break}},b=S=>{if(a.length)switch(S.key){case"ArrowDown":S.preventDefault(),f(R=>Math.min(R+1,a.length-1));break;case"ArrowUp":S.preventDefault(),f(R=>Math.max(R-1,0));break}},D=l.useRef([]);return l.useEffect(()=>{var S;p>=0&&p{const j=S===i,C=`${n}-${R}`;return r.jsxs(r.Fragment,{children:[r.jsx("li",{ref:E=>{D.current[R]=E},role:"option","aria-selected":j,"data-marker":S.marker,"data-state":j?"selected":void 0,tabIndex:R===p?0:-1,className:h("tw:gap-x-3 tw:gap-y-1 tw:p-2 tw:data-[state=selected]:bg-muted",d&&"tw:hover:bg-muted/50","tw:w-full tw:rounded-sm tw:border-0 tw:bg-transparent tw:shadow-none","tw:focus:outline-hidden tw:focus-visible:outline-hidden","tw:focus-visible:ring-offset-0.5 tw:focus-visible:relative tw:focus-visible:z-10 tw:focus-visible:ring-2 tw:focus-visible:ring-ring","tw:grid tw:grid-flow-col tw:grid-cols-subgrid",o==="horizontal"?"tw:col-span-3":"tw:col-span-2 tw:row-span-2",e),onClick:()=>g(S,R),onKeyDown:E=>y(E,S,R),children:r.jsx(Vn,{footnote:S,layout:o,formatCaller:()=>u(S.caller,R),showMarkers:s})},C),Ra&&e.push(t.substring(a,n.index)),e.push(r.jsx("strong",{children:n[1]},n.index)),a=o.lastIndex;return a0?e:[t]}function bl({occurrenceData:t,setScriptureReference:e,localizedStrings:a,classNameForText:o}){const n=a["%webView_inventory_occurrences_table_header_reference%"],i=a["%webView_inventory_occurrences_table_header_occurrence%"],s=l.useMemo(()=>{const c=[],w=new Set;return t.forEach(d=>{const u=`${d.reference.book}:${d.reference.chapterNum}:${d.reference.verseNum}:${d.text}`;w.has(u)||(w.add(u),c.push(d))}),c},[t]);return r.jsxs(Ur,{stickyHeader:!0,children:[r.jsx(qr,{stickyHeader:!0,children:r.jsxs(be,{children:[r.jsx(dr,{children:n}),r.jsx(dr,{children:i})]})}),r.jsx(Kr,{children:s.length>0&&s.map(c=>r.jsxs(be,{onClick:()=>{e(c.reference)},children:[r.jsx(Oe,{children:z.formatScrRef(c.reference,"English")}),r.jsx(Oe,{className:o,children:vl(c.text)})]},`${c.reference.book} ${c.reference.chapterNum}:${c.reference.verseNum}-${c.text}`))})]})}function Va({className:t,...e}){return r.jsx(k.Checkbox.Root,{"data-slot":"checkbox",className:h("pr-twp tw:peer tw:relative tw:flex tw:size-4 tw:shrink-0 tw:items-center tw:justify-center tw:rounded-[4px] tw:border tw:border-input tw:transition-colors tw:outline-none tw:group-has-disabled/field:opacity-50 tw:after:absolute tw:after:-inset-x-3 tw:after:-inset-y-2 tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:aria-invalid:aria-checked:border-primary tw:dark:bg-input/30 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:data-checked:border-primary tw:data-checked:bg-primary tw:data-checked:text-primary-foreground tw:dark:data-checked:bg-primary",t),...e,children:r.jsx(k.Checkbox.Indicator,{"data-slot":"checkbox-indicator",className:"tw:grid tw:place-content-center tw:text-current tw:transition-none tw:[&>svg]:size-3.5",children:r.jsx(ht.IconCheck,{})})})}const xl=t=>{if(t==="asc")return r.jsx(O.ArrowUpIcon,{className:"tw:h-4 tw:w-4"});if(t==="desc")return r.jsx(O.ArrowDownIcon,{className:"tw:h-4 tw:w-4"})},ur=(t,e,a)=>r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsxs(At,{className:h("tw:flex tw:w-full tw:justify-start",a),variant:"ghost",onClick:()=>t.toggleSorting(void 0),children:[r.jsx("span",{className:"tw:w-6 tw:max-w-fit tw:flex-1 tw:overflow-hidden tw:text-ellipsis",children:e}),xl(t.getIsSorted())]}),r.jsx(Pt,{side:"bottom",children:e})]})}),yl=t=>({accessorKey:"item",accessorFn:e=>e.items[0],header:({column:e})=>ur(e,t)}),kl=(t,e)=>({accessorKey:`item${e}`,accessorFn:a=>a.items[e],header:({column:a})=>ur(a,t)}),jl=t=>({accessorKey:"count",header:({column:e})=>ur(e,t,"tw:justify-end"),cell:({row:e})=>r.jsx("div",{className:"tw:flex tw:justify-end tw:tabular-nums",children:e.getValue("count")})}),na=(t,e,a,o,n,i)=>{let s=[...a];t.forEach(w=>{e==="approved"?s.includes(w)||s.push(w):s=s.filter(d=>d!==w)}),o(s);let c=[...n];t.forEach(w=>{e==="unapproved"?c.includes(w)||c.push(w):c=c.filter(d=>d!==w)}),i(c)},_l=(t,e,a,o,n)=>({accessorKey:"status",header:({column:i})=>ur(i,t,"tw:justify-center"),cell:({row:i})=>{const s=i.getValue("status"),c=i.getValue("item");return r.jsxs(Da,{value:s,variant:"outline",type:"single",className:"tw:gap-0",children:[r.jsx(sr,{onClick:w=>{w.stopPropagation(),na([c],"approved",e,a,o,n)},value:"approved",className:"tw:rounded-e-none tw:border-e-0",children:r.jsx(O.CircleCheckIcon,{})}),r.jsx(sr,{onClick:w=>{w.stopPropagation(),na([c],"unapproved",e,a,o,n)},value:"unapproved",className:"tw:rounded-none",children:r.jsx(O.CircleXIcon,{})}),r.jsx(sr,{onClick:w=>{w.stopPropagation(),na([c],"unknown",e,a,o,n)},value:"unknown",className:"tw:rounded-s-none tw:border-s-0",children:r.jsx(O.CircleHelpIcon,{})})]})}}),Nl=t=>t.split(/(?:\r?\n|\r)|(?=(?:\\(?:v|c|id)))/g),Cl=t=>{const e=/^\\[vc]\s+(\d+)/,a=t.match(e);if(a)return+a[1]},Sl=t=>{const e=t.match(/^\\id\s+([A-Za-z]+)/);return e?e[1]:""},Fn=(t,e,a)=>a.includes(t)?"unapproved":e.includes(t)?"approved":"unknown",El=Object.freeze(["%webView_inventory_all%","%webView_inventory_approved%","%webView_inventory_unapproved%","%webView_inventory_unknown%","%webView_inventory_scope_currentBook%","%webView_inventory_scope_chapter%","%webView_inventory_scope_verse%","%webView_inventory_filter_text%","%webView_inventory_show_additional_items%","%webView_inventory_occurrences_table_header_reference%","%webView_inventory_occurrences_table_header_occurrence%","%webView_inventory_no_results%"]),Tl=(t,e,a)=>{let o=t;return e!=="all"&&(o=o.filter(n=>e==="approved"&&n.status==="approved"||e==="unapproved"&&n.status==="unapproved"||e==="unknown"&&n.status==="unknown")),a!==""&&(o=o.filter(n=>n.items[0].includes(a))),o},Rl=(t,e,a)=>t.map(o=>{const n=z.isString(o.key)?o.key:o.key[0];return{items:z.isString(o.key)?[o.key]:o.key,count:o.count,status:o.status||Fn(n,e,a),occurrences:o.occurrences||[]}}),le=(t,e)=>t[e]??e;function zl({inventoryItems:t,setVerseRef:e,localizedStrings:a,additionalItemsLabels:o,approvedItems:n,unapprovedItems:i,scope:s,onScopeChange:c,columns:w,id:d,areInventoryItemsLoading:u=!1,classNameForVerseText:g,onItemSelected:m}){const p=le(a,"%webView_inventory_all%"),f=le(a,"%webView_inventory_approved%"),y=le(a,"%webView_inventory_unapproved%"),b=le(a,"%webView_inventory_unknown%"),D=le(a,"%webView_inventory_scope_currentBook%"),S=le(a,"%webView_inventory_scope_chapter%"),R=le(a,"%webView_inventory_scope_verse%"),j=le(a,"%webView_inventory_filter_text%"),C=le(a,"%webView_inventory_show_additional_items%"),E=le(a,"%webView_inventory_no_results%"),[$,_]=l.useState(!1),[x,T]=l.useState("all"),[P,G]=l.useState(""),[q,V]=l.useState([]),K=l.useMemo(()=>{const U=t??[];return U.length===0?[]:Rl(U,n,i)},[t,n,i]),I=l.useMemo(()=>{if($)return K;const U=[];return K.forEach(tt=>{const rt=tt.items[0],at=U.find(ot=>ot.items[0]===rt);at?(at.count+=tt.count,at.occurrences=at.occurrences.concat(tt.occurrences)):U.push({items:[rt],count:tt.count,occurrences:tt.occurrences,status:tt.status})}),U},[$,K]),Y=l.useMemo(()=>I.length===0?[]:Tl(I,x,P),[I,x,P]),lt=l.useMemo(()=>{var rt,at;if(!$)return w;const U=(rt=o==null?void 0:o.tableHeaders)==null?void 0:rt.length;if(!U)return w;const tt=[];for(let ot=0;ot{Y.length===0?V([]):Y.length===1&&V(Y[0].items)},[Y]);const kt=(U,tt)=>{tt.setRowSelection(()=>{const at={};return at[U.index]=!0,at});const rt=U.original.items;V(rt),m&&rt.length>0&&m(rt[0])},St=U=>{if(U==="book"||U==="chapter"||U==="verse")c(U);else throw new Error(`Invalid scope value: ${U}`)},J=U=>{if(U==="all"||U==="approved"||U==="unapproved"||U==="unknown")T(U);else throw new Error(`Invalid status filter value: ${U}`)},Et=l.useMemo(()=>{if(I.length===0||q.length===0)return[];const U=I.filter(tt=>z.deepEqual($?tt.items:[tt.items[0]],q));if(U.length>1)throw new Error("Selected item is not unique");return U.length===0?[]:U[0].occurrences},[q,$,I]);return r.jsx("div",{id:d,className:"pr-twp tw:h-full tw:overflow-auto",children:r.jsxs("div",{className:"tw:flex tw:h-full tw:w-full tw:min-w-min tw:flex-col",children:[r.jsxs("div",{className:"tw:flex tw:items-stretch",style:{contain:"inline-size"},children:[r.jsxs(Ae,{onValueChange:U=>J(U),defaultValue:x,children:[r.jsx(Le,{className:"tw:m-1 tw:w-auto tw:flex-1",children:r.jsx(Pe,{placeholder:"Select filter"})}),r.jsxs(Be,{children:[r.jsx(Jt,{value:"all",children:p}),r.jsx(Jt,{value:"approved",children:f}),r.jsx(Jt,{value:"unapproved",children:y}),r.jsx(Jt,{value:"unknown",children:b})]})]}),r.jsxs(Ae,{onValueChange:U=>St(U),defaultValue:s,children:[r.jsx(Le,{className:"tw:m-1 tw:w-auto tw:flex-1",children:r.jsx(Pe,{placeholder:"Select scope"})}),r.jsxs(Be,{children:[r.jsx(Jt,{value:"book",children:D}),r.jsx(Jt,{value:"chapter",children:S}),r.jsx(Jt,{value:"verse",children:R})]})]}),r.jsx(Xe,{className:"tw:m-1 tw:flex-1 tw:rounded-md tw:border",placeholder:j,value:P,onChange:U=>{G(U.target.value)}}),o&&r.jsx(Ot,{children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:r.jsxs("div",{className:"tw:m-1 tw:flex tw:w-fit tw:min-w-[26px] tw:items-center tw:rounded-md tw:border",children:[r.jsx(Va,{className:"tw:m-1 tw:shrink-0",checked:$,onCheckedChange:U=>{_(U)}}),r.jsx(yt,{className:"tw:m-1 tw:truncate",children:(o==null?void 0:o.checkboxText)??C})]})}),r.jsx(Pt,{children:(o==null?void 0:o.checkboxText)??C})]})})]}),r.jsx("div",{className:"tw:m-1 tw:flex-1 tw:overflow-auto tw:rounded-md tw:border",children:r.jsx(Tn,{columns:lt,data:Y,onRowClickHandler:kt,stickyHeader:!0,isLoading:u,noResultsMessage:E})}),Et.length>0&&r.jsx("div",{className:"tw:m-1 tw:flex-1 tw:overflow-auto tw:rounded-md tw:border",children:r.jsx(bl,{classNameForText:g,occurrenceData:Et,setScriptureReference:e,localizedStrings:a})})]})})}const Dl="16rem",Il="3rem",Gn=l.createContext(void 0);function pr(){const t=l.useContext(Gn);if(!t)throw new Error("useSidebar must be used within a SidebarProvider.");return t}function Un({defaultOpen:t=!0,open:e,onOpenChange:a,className:o,style:n,children:i,side:s="primary",...c}){const[w,d]=l.useState(t),u=e??w,g=l.useCallback(R=>{const j=typeof R=="function"?R(u):R;a?a(j):d(j)},[a,u]),m=l.useCallback(()=>g(R=>!R),[g]),p=u?"expanded":"collapsed",b=ft()==="ltr"?s:s==="primary"?"secondary":"primary",D=l.useMemo(()=>({state:p,open:u,setOpen:g,toggleSidebar:m,side:b}),[p,u,g,m,b]),S={"--sidebar-width":Dl,"--sidebar-width-icon":Il,...n};return r.jsx(Gn.Provider,{value:D,children:r.jsx("div",{"data-slot":"sidebar-wrapper",style:S,className:h("pr-twp tw:group/sidebar-wrapper tw:flex tw:w-full tw:has-data-[variant=inset]:bg-sidebar",o),...c,children:i})})}function qn({variant:t="sidebar",collapsible:e="offcanvas",className:a,children:o,...n}){const i=pr();return e==="none"?r.jsx("div",{"data-slot":"sidebar",className:h("tw:flex tw:h-full tw:w-(--sidebar-width) tw:flex-col tw:bg-sidebar tw:text-sidebar-foreground",a),...n,children:o}):r.jsxs("div",{className:"tw:group tw:peer tw:hidden tw:text-sidebar-foreground tw:md:block","data-state":i.state,"data-collapsible":i.state==="collapsed"?e:"","data-variant":t,"data-side":i.side,"data-slot":"sidebar",children:[r.jsx("div",{"data-slot":"sidebar-gap",className:h("tw:relative tw:w-(--sidebar-width) tw:bg-transparent tw:transition-[width] tw:duration-200 tw:ease-linear","tw:group-data-[collapsible=offcanvas]:w-0","tw:group-data-[side=secondary]:rotate-180",t==="floating"||t==="inset"?"tw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"tw:group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),r.jsx("div",{"data-slot":"sidebar-container","data-side":i.side,className:h("tw:absolute tw:inset-y-0 tw:z-10 tw:hidden tw:h-svh tw:w-(--sidebar-width) tw:transition-[left,right,width] tw:duration-200 tw:ease-linear tw:md:flex",i.side==="primary"?"tw:left-0 tw:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"tw:right-0 tw:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"tw:p-2 tw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"tw:group-data-[collapsible=icon]:w-(--sidebar-width-icon) tw:group-data-[side=primary]:border-e tw:group-data-[side=secondary]:border-s",a),...n,children:r.jsx("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"tw:flex tw:size-full tw:flex-col tw:bg-sidebar tw:group-data-[variant=floating]:rounded-lg tw:group-data-[variant=floating]:shadow-sm tw:group-data-[variant=floating]:ring-1 tw:group-data-[variant=floating]:ring-sidebar-border",children:o})})]})}function Ml({className:t,onClick:e,...a}){const{toggleSidebar:o,side:n}=pr();return r.jsxs(F,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:h(t),onClick:i=>{e==null||e(i),o()},...a,children:[n==="primary"?r.jsx(ht.IconLayoutSidebar,{}):r.jsx(ht.IconLayoutSidebarRight,{}),r.jsx("span",{className:"tw:sr-only",children:"Toggle Sidebar"})]})}function Ol({className:t,...e}){const{toggleSidebar:a}=pr();return r.jsx("button",{type:"button","data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a,title:"Toggle Sidebar",className:h("tw:absolute tw:inset-y-0 tw:z-20 tw:hidden tw:w-4 tw:transition-all tw:ease-linear tw:group-data-[side=primary]:-right-4 tw:group-data-[side=secondary]:left-0 tw:after:absolute tw:after:inset-y-0 tw:after:start-1/2 tw:after:w-[2px] tw:hover:after:bg-sidebar-border tw:sm:flex tw:ltr:-translate-x-1/2 tw:rtl:translate-x-1/2","tw:in-data-[side=primary]:cursor-w-resize tw:rtl:in-data-[side=primary]:cursor-e-resize tw:in-data-[side=secondary]:cursor-e-resize tw:rtl:in-data-[side=secondary]:cursor-w-resize","tw:[[data-side=primary][data-state=collapsed]_&]:cursor-e-resize tw:rtl:[[data-side=primary][data-state=collapsed]_&]:cursor-w-resize tw:[[data-side=secondary][data-state=collapsed]_&]:cursor-w-resize tw:rtl:[[data-side=secondary][data-state=collapsed]_&]:cursor-e-resize","tw:group-data-[collapsible=offcanvas]:translate-x-0 tw:group-data-[collapsible=offcanvas]:after:start-full tw:hover:group-data-[collapsible=offcanvas]:bg-sidebar","tw:[[data-side=primary][data-collapsible=offcanvas]_&]:-end-2","tw:[[data-side=secondary][data-collapsible=offcanvas]_&]:-start-2",t),...e})}function Kn({className:t,...e}){return r.jsx("main",{"data-slot":"sidebar-inset",className:h("tw:relative tw:flex tw:w-full tw:flex-1 tw:flex-col tw:bg-background tw:md:peer-data-[variant=inset]:m-2 tw:md:peer-data-[variant=inset]:ms-0 tw:md:peer-data-[variant=inset]:rounded-xl tw:md:peer-data-[variant=inset]:shadow-sm tw:md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2",t),...e})}function $l({className:t,...e}){return r.jsx(Xe,{"data-slot":"sidebar-input","data-sidebar":"input",className:h("tw:h-8 tw:w-full tw:bg-background tw:shadow-none",t),...e})}function Al({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:h("tw:flex tw:flex-col tw:gap-2 tw:p-2",t),...e})}function Pl({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:h("tw:flex tw:flex-col tw:gap-2 tw:p-2",t),...e})}function Ll({className:t,...e}){return r.jsx($e,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:h("tw:mx-2 tw:w-auto tw:bg-sidebar-border",t),...e})}function Hn({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:h("tw:no-scrollbar tw:flex tw:min-h-0 tw:flex-1 tw:flex-col tw:gap-0 tw:overflow-auto tw:group-data-[collapsible=icon]:overflow-hidden",t),...e})}function fa({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:h("tw:relative tw:flex tw:w-full tw:min-w-0 tw:flex-col tw:p-2",t),...e})}function ma({className:t,asChild:e=!1,...a}){const o=e?k.Slot.Root:"div";return r.jsx(o,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:h("tw:flex tw:h-8 tw:shrink-0 tw:items-center tw:rounded-md tw:px-2 tw:text-xs tw:font-medium tw:text-sidebar-foreground/70 tw:ring-sidebar-ring tw:outline-hidden tw:transition-[margin,opacity] tw:duration-200 tw:ease-linear tw:group-data-[collapsible=icon]:-mt-8 tw:group-data-[collapsible=icon]:opacity-0 tw:focus-visible:ring-2 tw:[&>svg]:size-4 tw:[&>svg]:shrink-0",t),...a})}function Bl({className:t,asChild:e=!1,...a}){const o=e?k.Slot.Root:"button";return r.jsx(o,{"data-slot":"sidebar-group-action","data-sidebar":"group-action",className:h("tw:absolute tw:top-3.5 tw:end-3 tw:flex tw:aspect-square tw:w-5 tw:items-center tw:justify-center tw:rounded-md tw:p-0 tw:text-sidebar-foreground tw:ring-sidebar-ring tw:outline-hidden tw:transition-transform tw:group-data-[collapsible=icon]:hidden tw:after:absolute tw:after:-inset-2 tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:md:after:hidden tw:[&>svg]:size-4 tw:[&>svg]:shrink-0",t),...a})}function va({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:h("tw:w-full tw:text-sm",t),...e})}function Yn({className:t,...e}){return r.jsx("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:h("tw:flex tw:w-full tw:min-w-0 tw:flex-col tw:gap-0",t),...e})}function Wn({className:t,...e}){return r.jsx("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:h("tw:group/menu-item tw:relative",t),...e})}const Vl=ge.cva("tw:peer/menu-button tw:group/menu-button tw:flex tw:w-full tw:items-center tw:gap-2 tw:overflow-hidden tw:rounded-md tw:p-2 tw:text-start tw:text-sm tw:ring-sidebar-ring tw:outline-hidden tw:transition-[width,height,padding] tw:group-has-data-[sidebar=menu-action]/menu-item:pe-8 tw:group-data-[collapsible=icon]:size-8! tw:group-data-[collapsible=icon]:p-2! tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:active:bg-sidebar-accent tw:active:text-sidebar-accent-foreground tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-disabled:pointer-events-none tw:aria-disabled:opacity-50 tw:data-open:hover:bg-sidebar-accent tw:data-open:hover:text-sidebar-accent-foreground tw:data-active:bg-sidebar-accent tw:data-active:font-medium tw:data-active:text-sidebar-accent-foreground tw:[&_svg]:size-4 tw:[&_svg]:shrink-0 tw:[&>span:last-child]:truncate",{variants:{variant:{default:"tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground",outline:"tw:bg-background tw:shadow-[0_0_0_1px_var(--sidebar-border)] tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"tw:h-8 tw:text-sm",sm:"tw:h-7 tw:text-xs",lg:"tw:h-12 tw:text-sm tw:group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function Xn({asChild:t=!1,isActive:e=!1,variant:a="default",size:o="default",tooltip:n,className:i,...s}){const c=t?k.Slot.Root:"button",{state:w}=pr(),d=r.jsx(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":o,"data-active":e,className:h(Vl({variant:a,size:o}),i),...s});if(!n)return d;const u=typeof n=="string"?{children:n}:n;return r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:d}),r.jsx(Pt,{side:"right",align:"center",hidden:w!=="collapsed",...u})]})}function Fl({className:t,asChild:e=!1,showOnHover:a=!1,...o}){const n=e?k.Slot.Root:"button";return r.jsx(n,{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:h("tw:absolute tw:top-1.5 tw:end-1 tw:flex tw:aspect-square tw:w-5 tw:items-center tw:justify-center tw:rounded-md tw:p-0 tw:text-sidebar-foreground tw:ring-sidebar-ring tw:outline-hidden tw:transition-transform tw:group-data-[collapsible=icon]:hidden tw:peer-hover/menu-button:text-sidebar-accent-foreground tw:peer-data-[size=default]/menu-button:top-1.5 tw:peer-data-[size=lg]/menu-button:top-2.5 tw:peer-data-[size=sm]/menu-button:top-1 tw:after:absolute tw:after:-inset-2 tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:md:after:hidden tw:[&>svg]:size-4 tw:[&>svg]:shrink-0",a&&"tw:group-focus-within/menu-item:opacity-100 tw:group-hover/menu-item:opacity-100 tw:peer-data-active/menu-button:text-sidebar-accent-foreground tw:aria-expanded:opacity-100 tw:md:opacity-0",t),...o})}function Gl({className:t,...e}){return r.jsx("div",{"data-slot":"sidebar-menu-badge","data-sidebar":"menu-badge",className:h("tw:pointer-events-none tw:absolute tw:end-1 tw:flex tw:h-5 tw:min-w-5 tw:items-center tw:justify-center tw:rounded-md tw:px-1 tw:text-xs tw:font-medium tw:text-sidebar-foreground tw:tabular-nums tw:select-none tw:group-data-[collapsible=icon]:hidden tw:peer-hover/menu-button:text-sidebar-accent-foreground tw:peer-data-[size=default]/menu-button:top-1.5 tw:peer-data-[size=lg]/menu-button:top-2.5 tw:peer-data-[size=sm]/menu-button:top-1 tw:peer-data-active/menu-button:text-sidebar-accent-foreground",t),...e})}function Ul({className:t,showIcon:e=!1,...a}){const[o]=l.useState(()=>`${Math.floor(Math.random()*40)+50}%`),n={"--skeleton-width":o};return r.jsxs("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:h("tw:flex tw:h-8 tw:items-center tw:gap-2 tw:rounded-md tw:px-2",t),...a,children:[e&&r.jsx(Pr,{className:"tw:size-4 tw:rounded-md","data-sidebar":"menu-skeleton-icon"}),r.jsx(Pr,{className:"tw:h-4 tw:max-w-(--skeleton-width) tw:flex-1","data-sidebar":"menu-skeleton-text",style:n})]})}function ql({className:t,...e}){return r.jsx("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:h("tw:mx-3.5 tw:flex tw:min-w-0 tw:translate-x-px tw:rtl:-translate-x-px tw:flex-col tw:gap-1 tw:border-s tw:border-sidebar-border tw:px-2.5 tw:py-0.5 tw:group-data-[collapsible=icon]:hidden",t),...e})}function Kl({className:t,...e}){return r.jsx("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:h("tw:group/menu-sub-item tw:relative",t),...e})}function Hl({asChild:t=!1,size:e="md",isActive:a=!1,className:o,...n}){const i=t?k.Slot.Root:"a";return r.jsx(i,{"data-slot":"sidebar-menu-sub-button","data-sidebar":"menu-sub-button","data-size":e,"data-active":a,className:h("tw:flex tw:h-7 tw:min-w-0 tw:-translate-x-px tw:rtl:translate-x-px tw:items-center tw:gap-2 tw:overflow-hidden tw:rounded-md tw:px-2 tw:text-sidebar-foreground tw:ring-sidebar-ring tw:outline-hidden tw:group-data-[collapsible=icon]:hidden tw:hover:bg-sidebar-accent tw:hover:text-sidebar-accent-foreground tw:focus-visible:ring-2 tw:active:bg-sidebar-accent tw:active:text-sidebar-accent-foreground tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-disabled:pointer-events-none tw:aria-disabled:opacity-50 tw:data-[size=md]:text-sm tw:data-[size=sm]:text-xs tw:data-active:bg-sidebar-accent tw:data-active:text-sidebar-accent-foreground tw:[&>span:last-child]:truncate tw:[&>svg]:size-4 tw:[&>svg]:shrink-0 tw:[&>svg]:text-sidebar-accent-foreground",o),...n})}function Zn({id:t,extensionLabels:e,projectInfo:a,handleSelectSidebarItem:o,selectedSidebarItem:n,extensionsSidebarGroupLabel:i,projectsSidebarGroupLabel:s,buttonPlaceholderText:c,className:w}){const d=l.useCallback((p,f)=>{o(p,f)},[o]),u=l.useCallback(p=>{const f=a.find(y=>y.projectId===p);return f?f.projectName:p},[a]),g=l.useMemo(()=>a.map(p=>({id:p.projectId,shortName:p.projectName,fullName:p.projectName})),[a]),m=l.useCallback(p=>!n.projectId&&p===n.label,[n]);return r.jsx(qn,{id:t,collapsible:"none",variant:"inset",className:h("tw:w-96 tw:gap-2 tw:overflow-y-auto",w),children:r.jsxs(Hn,{children:[r.jsxs(fa,{children:[r.jsx(ma,{className:"tw:text-sm",children:i}),r.jsx(va,{children:r.jsx(Yn,{children:Object.entries(e).map(([p,f])=>r.jsx(Wn,{children:r.jsx(Xn,{onClick:()=>d(p),isActive:m(p),children:r.jsx("span",{className:"tw:pl-3",children:f})})},p))})})]}),r.jsxs(fa,{children:[r.jsx(ma,{className:"tw:text-sm",children:s}),r.jsx(va,{className:"tw:pl-3",children:r.jsxs("div",{className:h("tw:flex tw:w-full tw:items-center tw:gap-2 tw:rounded-md tw:px-2 tw:py-1",{"tw:bg-sidebar-accent tw:text-sidebar-accent-foreground":n==null?void 0:n.projectId}),children:[r.jsx(O.ScrollText,{className:"tw:h-4 tw:w-4 tw:shrink-0"}),r.jsx(Rn,{mode:"project",projects:g,openTabs:[],selection:{projectId:(n==null?void 0:n.projectId)??""},onChangeSelection:({projectId:p})=>{if(!p)return;const f=u(p);d(f,p)},buttonVariant:"ghost",buttonClassName:"tw:h-8 tw:w-full tw:flex-1 tw:justify-start tw:font-normal",buttonPlaceholder:c,ariaLabel:s,popoverContentStyle:{zIndex:Vr}})]})})]})]})})}const Hr=l.forwardRef(({value:t,onSearch:e,placeholder:a,isFullWidth:o,className:n,isDisabled:i=!1,id:s},c)=>{const w=ft();return r.jsxs("div",{id:s,className:h("tw:relative",{"tw:w-full":o},n),children:[r.jsx(O.Search,{className:h("tw:absolute tw:top-1/2 tw:h-4 tw:w-4 tw:-translate-y-1/2 tw:transform tw:opacity-50",{"tw:right-3":w==="rtl"},{"tw:left-3":w==="ltr"})}),r.jsx(Xe,{ref:c,className:"tw:w-full tw:text-ellipsis tw:pe-9 tw:ps-9",placeholder:a,value:t,onChange:d=>e(d.target.value),disabled:i}),t&&r.jsxs(F,{variant:"ghost",size:"icon",className:h("tw:absolute tw:top-1/2 tw:h-7 tw:-translate-y-1/2 tw:transform tw:hover:bg-transparent",{"tw:left-0":w==="rtl"},{"tw:right-0":w==="ltr"}),onClick:()=>{e("")},children:[r.jsx(O.X,{className:"tw:h-4 tw:w-4"}),r.jsx("span",{className:"tw:sr-only",children:"Clear"})]})]})});Hr.displayName="SearchBar";function Yl({id:t,extensionLabels:e,projectInfo:a,children:o,handleSelectSidebarItem:n,selectedSidebarItem:i,searchValue:s,onSearch:c,extensionsSidebarGroupLabel:w,projectsSidebarGroupLabel:d,buttonPlaceholderText:u}){return r.jsxs("div",{className:"tw:box-border tw:flex tw:h-full tw:flex-col",children:[r.jsx("div",{className:"tw:box-border tw:flex tw:items-center tw:justify-center tw:py-4",children:r.jsx(Hr,{className:"tw:w-9/12",value:s,onSearch:c,placeholder:"Search app settings, extension settings, and project settings"})}),r.jsxs(Un,{id:t,className:"tw:h-full tw:flex-1 tw:gap-4 tw:overflow-auto tw:border-t",children:[r.jsx(Zn,{className:"tw:w-1/2 tw:min-w-[140px] tw:max-w-[220px] tw:border-e",extensionLabels:e,projectInfo:a,handleSelectSidebarItem:n,selectedSidebarItem:i,extensionsSidebarGroupLabel:w,projectsSidebarGroupLabel:d,buttonPlaceholderText:u}),r.jsx(Kn,{className:"tw:min-w-[215px]",children:o})]})]})}const Ne="scrBook",Wl="scrRef",Me="source",Xl="details",Zl="Scripture Reference",Jl="Scripture Book",Jn="Type",Ql="Details";function td(t,e){const a=e??!1;return[{accessorFn:o=>`${o.start.book} ${o.start.chapterNum}:${o.start.verseNum}`,id:Ne,header:(t==null?void 0:t.scriptureReferenceColumnName)??Zl,cell:o=>{const n=o.row.original;return o.row.getIsGrouped()?st.Canon.bookIdToEnglishName(n.start.book):o.row.groupingColumnId===Ne?z.formatScrRef(n.start):void 0},getGroupingValue:o=>st.Canon.bookIdToNumber(o.start.book),sortingFn:(o,n)=>z.compareScrRefs(o.original.start,n.original.start),enableGrouping:!0},{accessorFn:o=>z.formatScrRef(o.start),id:Wl,header:void 0,cell:o=>{const n=o.row.original;return o.row.getIsGrouped()?void 0:z.formatScrRef(n.start)},sortingFn:(o,n)=>z.compareScrRefs(o.original.start,n.original.start),enableGrouping:!1},{accessorFn:o=>o.source.displayName,id:Me,header:a?(t==null?void 0:t.typeColumnName)??Jn:void 0,cell:o=>a||o.row.getIsGrouped()?o.getValue():void 0,getGroupingValue:o=>o.source.id,sortingFn:(o,n)=>o.original.source.displayName.localeCompare(n.original.source.displayName),enableGrouping:!0},{accessorFn:o=>o.detail,id:Xl,header:(t==null?void 0:t.detailsColumnName)??Ql,cell:o=>o.getValue(),enableGrouping:!1}]}const ed=t=>{if(!("offset"in t.start))throw new Error("No offset available in range start");if(t.end&&!("offset"in t.end))throw new Error("No offset available in range end");const{offset:e}=t.start;let a=0;return t.end&&({offset:a}=t.end),!t.end||z.compareScrRefs(t.start,t.end)===0?`${z.scrRefToBBBCCCVVV(t.start)}+${e}`:`${z.scrRefToBBBCCCVVV(t.start)}+${e}-${z.scrRefToBBBCCCVVV(t.end)}+${a}`},ko=t=>`${ed({start:t.start,end:t.end})} ${t.source.displayName} ${t.detail}`;function rd({sources:t,showColumnHeaders:e=!1,showSourceColumn:a=!1,scriptureReferenceColumnName:o,scriptureBookGroupName:n,typeColumnName:i,detailsColumnName:s,onRowSelected:c,id:w}){const[d,u]=l.useState([]),[g,m]=l.useState([{id:Ne,desc:!1}]),[p,f]=l.useState({}),y=l.useMemo(()=>t.flatMap(x=>x.data.map(T=>({...T,source:x.source}))),[t]),b=l.useMemo(()=>td({scriptureReferenceColumnName:o,typeColumnName:i,detailsColumnName:s},a),[o,i,s,a]);l.useEffect(()=>{d.includes(Me)?m([{id:Me,desc:!1},{id:Ne,desc:!1}]):m([{id:Ne,desc:!1}])},[d]);const D=Mt.useReactTable({data:y,columns:b,state:{grouping:d,sorting:g,rowSelection:p},onGroupingChange:u,onSortingChange:m,onRowSelectionChange:f,getExpandedRowModel:Mt.getExpandedRowModel(),getGroupedRowModel:Mt.getGroupedRowModel(),getCoreRowModel:Mt.getCoreRowModel(),getSortedRowModel:Mt.getSortedRowModel(),getRowId:ko,autoResetExpanded:!1,enableMultiRowSelection:!1,enableSubRowSelection:!1});l.useEffect(()=>{if(c){const x=D.getSelectedRowModel().rowsById,T=Object.keys(x);if(T.length===1){const P=y.find(G=>ko(G)===T[0])||void 0;P&&c(P)}}},[p,y,c,D]);const S=n??Jl,R=i??Jn,j=[{label:"No Grouping",value:[]},{label:`Group by ${S}`,value:[Ne]},{label:`Group by ${R}`,value:[Me]},{label:`Group by ${S} and ${R}`,value:[Ne,Me]},{label:`Group by ${R} and ${S}`,value:[Me,Ne]}],C=x=>{u(JSON.parse(x))},E=(x,T)=>{!x.getIsGrouped()&&!x.getIsSelected()&&x.getToggleSelectedHandler()(T)},$=(x,T)=>x.getIsGrouped()?"":h("banded-row",T%2===0?"even":"odd"),_=(x,T,P)=>{if(!((x==null?void 0:x.length)===0||T.depth{C(x)},children:[r.jsx(Le,{className:"tw:mb-1 tw:mt-2",children:r.jsx(Pe,{})}),r.jsx(Be,{position:"item-aligned",children:r.jsx(Cn,{children:j.map(x=>r.jsx(Jt,{value:JSON.stringify(x.value),children:x.label},x.label))})})]}),r.jsxs(Ur,{className:"tw:relative tw:flex tw:flex-col tw:overflow-y-auto tw:p-0",children:[e&&r.jsx(qr,{children:D.getHeaderGroups().map(x=>r.jsx(be,{children:x.headers.filter(T=>T.column.columnDef.header).map(T=>r.jsx(dr,{colSpan:T.colSpan,className:"tw:sticky top-0",children:T.isPlaceholder?void 0:r.jsxs("div",{children:[T.column.getCanGroup()?r.jsx(F,{variant:"ghost",title:`Toggle grouping by ${T.column.columnDef.header}`,onClick:T.column.getToggleGroupingHandler(),type:"button",children:T.column.getIsGrouped()?"🛑":"👊 "}):void 0," ",Mt.flexRender(T.column.columnDef.header,T.getContext())]})},T.id))},x.id))}),r.jsx(Kr,{children:D.getRowModel().rows.map((x,T)=>{const P=ft();return r.jsx(be,{"data-state":x.getIsSelected()?"selected":"",className:h($(x,T)),onClick:G=>E(x,G),children:x.getVisibleCells().map(G=>{if(!(G.getIsPlaceholder()||G.column.columnDef.enableGrouping&&!G.getIsGrouped()&&(G.column.columnDef.id!==Me||!a)))return r.jsx(Oe,{className:h(G.column.columnDef.id,"tw:p-[1px]",_(d,x,G)),children:G.getIsGrouped()?r.jsxs(F,{variant:"link",onClick:x.getToggleExpandedHandler(),type:"button",children:[x.getIsExpanded()&&r.jsx(O.ChevronDown,{}),!x.getIsExpanded()&&(P==="ltr"?r.jsx(O.ChevronRight,{}):r.jsx(O.ChevronLeft,{}))," ",Mt.flexRender(G.column.columnDef.cell,G.getContext())," (",x.subRows.length,")"]}):Mt.flexRender(G.column.columnDef.cell,G.getContext())},G.id)})},x.id)})})]})]})}const Fa=(t,e)=>t.filter(a=>{try{return z.getSectionForBook(a)===e}catch{return!1}}),Qn=(t,e,a)=>Fa(t,e).every(o=>a.includes(o));function ad({section:t,availableBookIds:e,selectedBookIds:a,onToggle:o,localizedStrings:n}){const i=Fa(e,t).length===0,s=n["%scripture_section_ot_short%"],c=n["%scripture_section_nt_short%"],w=n["%scripture_section_dc_short%"],d=n["%scripture_section_extra_short%"];return r.jsx(F,{variant:"outline",size:"sm",onClick:()=>o(t),className:h(Qn(e,t,a)&&!i&&"tw:bg-primary tw:text-primary-foreground tw:hover:bg-primary/70 tw:hover:text-primary-foreground"),disabled:i,children:$i(t,s,c,w,d)})}const jo=5,ia=6;function od({availableBookInfo:t,selectedBookIds:e,onChangeSelectedBookIds:a,localizedStrings:o,localizedBookNames:n}){const i=o["%webView_book_selector_books_selected%"],s=o["%webView_book_selector_select_books%"],c=o["%webView_book_selector_search_books%"],w=o["%webView_book_selector_select_all%"],d=o["%webView_book_selector_clear_all%"],u=o["%webView_book_selector_no_book_found%"],g=o["%webView_book_selector_more%"],{otLong:m,ntLong:p,dcLong:f,extraLong:y}={otLong:o==null?void 0:o["%scripture_section_ot_long%"],ntLong:o==null?void 0:o["%scripture_section_nt_long%"],dcLong:o==null?void 0:o["%scripture_section_dc_long%"],extraLong:o==null?void 0:o["%scripture_section_extra_long%"]},[b,D]=l.useState(!1),[S,R]=l.useState(""),j=l.useRef(void 0),C=l.useRef(!1);if(t.length!==st.Canon.allBookIds.length)throw new Error("availableBookInfo length must match Canon.allBookIds length");const E=l.useMemo(()=>st.Canon.allBookIds.filter((V,K)=>t[K]==="1"&&!st.Canon.isObsolete(st.Canon.bookIdToNumber(V))),[t]),$=l.useMemo(()=>{if(!S.trim()){const I={[z.Section.OT]:[],[z.Section.NT]:[],[z.Section.DC]:[],[z.Section.Extra]:[]};return E.forEach(Y=>{const lt=z.getSectionForBook(Y);I[lt].push(Y)}),I}const V=E.filter(I=>_a(I,S,n)),K={[z.Section.OT]:[],[z.Section.NT]:[],[z.Section.DC]:[],[z.Section.Extra]:[]};return V.forEach(I=>{const Y=z.getSectionForBook(I);K[Y].push(I)}),K},[E,S,n]),_=l.useCallback((V,K=!1)=>{if(!K||!j.current){a(e.includes(V)?e.filter(J=>J!==V):[...e,V]),j.current=V;return}const I=E.findIndex(J=>J===j.current),Y=E.findIndex(J=>J===V);if(I===-1||Y===-1)return;const[lt,kt]=[Math.min(I,Y),Math.max(I,Y)],St=E.slice(lt,kt+1).map(J=>J);a(e.includes(V)?e.filter(J=>!St.includes(J)):[...new Set([...e,...St])])},[e,a,E]),x=V=>{_(V,C.current),C.current=!1},T=(V,K)=>{V.preventDefault(),_(K,V.shiftKey)},P=l.useCallback(V=>{const K=Fa(E,V).map(I=>I);a(Qn(E,V,e)?e.filter(I=>!K.includes(I)):[...new Set([...e,...K])])},[e,a,E]),G=()=>{a(E.map(V=>V))},q=()=>{a([])};return r.jsxs("div",{className:"tw:space-y-2",children:[r.jsx("div",{className:"tw:flex tw:flex-wrap tw:gap-2",children:Object.values(z.Section).map(V=>r.jsx(ad,{section:V,availableBookIds:E,selectedBookIds:e,onToggle:P,localizedStrings:o},V))}),r.jsxs(se,{open:b,onOpenChange:V=>{D(V),V||R("")},children:[r.jsx(me,{asChild:!0,children:r.jsxs(F,{variant:"outline",role:"combobox","aria-expanded":b,className:"tw:max-w-64 tw:justify-between",children:[e.length>0?`${i}: ${e.length}`:s,r.jsx(O.ChevronsUpDown,{className:"tw:ml-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ce,{className:"tw:w-[500px] tw:max-w-[calc(100vw-2rem)] tw:p-0",align:"start",children:r.jsxs(he,{shouldFilter:!1,onKeyDown:V=>{V.key==="Enter"&&(C.current=V.shiftKey)},children:[r.jsx(Fe,{placeholder:c,value:S,onValueChange:R}),r.jsxs("div",{className:"tw:flex tw:justify-between tw:border-b tw:p-2",children:[r.jsx(F,{variant:"ghost",size:"sm",onClick:G,children:w}),r.jsx(F,{variant:"ghost",size:"sm",onClick:q,children:d})]}),r.jsxs(fe,{children:[r.jsx(Ze,{children:u}),Object.values(z.Section).map((V,K)=>{const I=$[V];if(I.length!==0)return r.jsxs(l.Fragment,{children:[r.jsx(re,{heading:Do(V,m,p,f,y),children:I.map(Y=>r.jsx(Mo,{bookId:Y,isSelected:e.includes(Y),onSelect:()=>x(Y),onMouseDown:lt=>T(lt,Y),section:z.getSectionForBook(Y),showCheck:!0,localizedBookNames:n,commandValue:Ao(Y,n),className:"tw:flex tw:items-center"},Y))}),K0&&r.jsxs("div",{className:"tw:mt-2 tw:flex tw:flex-wrap tw:gap-1",children:[e.slice(0,e.length===ia?ia:jo).map(V=>r.jsx(pe,{className:"tw:hover:bg-secondary",variant:"secondary",children:Ce(V,n)},V)),e.length>ia&&r.jsx(pe,{className:"tw:hover:bg-secondary",variant:"secondary",children:`+${e.length-jo} ${g}`})]})]})}const nd=Object.freeze(["%webView_scope_selector_selected_text%","%webView_scope_selector_verse%","%webView_scope_selector_chapter%","%webView_scope_selector_book%","%webView_scope_selector_current_verse%","%webView_scope_selector_current_chapter%","%webView_scope_selector_current_book%","%webView_scope_selector_choose_books%","%webView_scope_selector_scope%","%webView_scope_selector_select_books%","%webView_scope_selector_range%","%webView_scope_selector_select_range%","%webView_scope_selector_range_start%","%webView_scope_selector_range_end%","%webView_scope_selector_ok%","%webView_scope_selector_cancel%","%webView_scope_selector_navigate%","%webView_book_selector_books_selected%","%webView_book_selector_select_books%","%webView_book_selector_search_books%","%webView_book_selector_select_all%","%webView_book_selector_clear_all%","%webView_book_selector_no_book_found%","%webView_book_selector_more%","%scripture_section_ot_long%","%scripture_section_ot_short%","%scripture_section_nt_long%","%scripture_section_nt_short%","%scripture_section_dc_long%","%scripture_section_dc_short%","%scripture_section_extra_long%","%scripture_section_extra_short%"]),Ct=(t,e)=>t[e]??e,id=Object.freeze([" ","-"]);function sd({scope:t,availableScopes:e,onScopeChange:a,availableBookInfo:o,selectedBookIds:n,onSelectedBookIdsChange:i,localizedStrings:s,localizedBookNames:c,id:w,variant:d="radio",rangeStart:u,rangeEnd:g,onRangeStartChange:m,onRangeEndChange:p,currentScrRef:f,onCurrentScrRefChange:y,bookChapterControlLocalizedStrings:b,getEndVerse:D,hideLabel:S=!1,buttonClassName:R}){const j=Ct(s,"%webView_scope_selector_selected_text%"),C=Ct(s,"%webView_scope_selector_verse%"),E=Ct(s,"%webView_scope_selector_chapter%"),$=Ct(s,"%webView_scope_selector_book%"),_=Ct(s,"%webView_scope_selector_current_verse%"),x=Ct(s,"%webView_scope_selector_current_chapter%"),T=Ct(s,"%webView_scope_selector_current_book%"),P=Ct(s,"%webView_scope_selector_choose_books%"),G=Ct(s,"%webView_scope_selector_scope%"),q=Ct(s,"%webView_scope_selector_select_books%"),V=Ct(s,"%webView_scope_selector_range%"),K=Ct(s,"%webView_scope_selector_select_range%"),I=Ct(s,"%webView_scope_selector_range_start%"),Y=Ct(s,"%webView_scope_selector_range_end%"),lt=Ct(s,"%webView_scope_selector_ok%"),kt=Ct(s,"%webView_scope_selector_cancel%"),St=Ct(s,"%webView_scope_selector_navigate%"),J=L=>{if(!f)return;const X=f.book.toUpperCase();switch(L){case"verse":return z.formatScrRef(f,"id");case"chapter":return`${X} ${f.chapterNum}`;case"book":return X;default:return}},Et=[{value:"selectedText",label:j,id:"scope-selected-text"},{value:"verse",label:C,dropdownLabel:_,scrRefSuffix:J("verse"),id:"scope-verse"},{value:"chapter",label:E,dropdownLabel:x,scrRefSuffix:J("chapter"),id:"scope-chapter"},{value:"book",label:$,dropdownLabel:T,scrRefSuffix:J("book"),id:"scope-book"},{value:"selectedBooks",label:P,id:"scope-selected"},{value:"range",label:V,id:"scope-range"}],U=(L,X,Vt=!1)=>r.jsxs(r.Fragment,{children:[L,X&&!Vt&&r.jsxs("span",{className:"tw:text-muted-foreground",children:[": ",X]})]}),tt=e?Et.filter(L=>e.includes(L.value)):Et,rt=f??z.defaultScrRef,at=u??rt,ot=g??rt,Lt=()=>{},gt=l.useRef(null),Ft=l.useRef(null),Gt=l.useRef(!1),A=l.useRef(null),Tt=l.useRef(!1),[Bt,Qt]=l.useState(void 0),Ut=l.useRef(!1),Rt=l.useRef(!1),je=l.useRef(null),qt=l.useCallback(L=>{if(L){Qt("start"),Ut.current=!1;return}Qt(X=>X==="start"?void 0:X),Ut.current&&(Ut.current=!1,requestAnimationFrame(()=>{var Vt;const X=(Vt=gt.current)==null?void 0:Vt.querySelector("button");X==null||X.click()}))},[]),Kt=l.useCallback(L=>{if(L){Qt("end"),Rt.current=!1;return}Qt(X=>X==="end"?void 0:X)},[]),B=l.useCallback(L=>{m==null||m(L),p==null||p(L),Ut.current=!0},[m,p]),W=l.useCallback(L=>{p==null||p(L),Rt.current=!0},[p]),nt=l.useCallback(L=>{a(L),L==="selectedBooks"&&n.length===0&&(f!=null&&f.book)&&i([f.book])},[a,n,f,i]),et=tt.find(L=>L.value===t),wt=()=>t==="selectedBooks"&&n.length>0?n.map(L=>L.toUpperCase()).join(", "):t==="range"?z.formatScrRefRange(at,ot,{optionOrLocalizedBookName:"id",endRefOptionOrLocalizedBookName:"id",repeatBookName:!0}):et?U(et.label,et.scrRefSuffix):t,mt=tt.filter(L=>L.value!=="selectedBooks"&&L.value!=="range"),vt=tt.find(L=>L.value==="selectedBooks"),ut=tt.find(L=>L.value==="range"),[jt,M]=l.useState(!1),[ct,dt]=l.useState(void 0),[bt,Re]=l.useState(void 0),[_e,Qe]=l.useState(void 0),[ze,tr]=l.useState(void 0),[er,gr]=l.useState([]),hr=d==="dropdown"&&ct==="selectedBooks",N=r.jsx(od,{availableBookInfo:o,selectedBookIds:hr?er:n,onChangeSelectedBookIds:hr?gr:i,localizedStrings:s,localizedBookNames:c}),H=Bt==="end",Z=Bt==="start",_t="tw:text-muted-foreground",Wt=d==="dropdown"&&ct==="range",Ue=Wt?Qe:B,zt=Wt?tr:p?W:Lt,xt=r.jsxs("div",{className:"tw:flex tw:flex-wrap tw:items-end tw:gap-4",children:[r.jsxs("div",{className:"tw:grid tw:gap-2",children:[r.jsx(yt,{htmlFor:"scope-range-start",className:h(H&&_t),children:I}),r.jsx(Nr,{id:"scope-range-start",scrRef:Wt?_e??at:at,handleSubmit:Ue,localizedBookNames:c,localizedStrings:b,getEndVerse:D,submitKeys:id,onOpenChange:qt,className:h(H&&_t),modal:!0})]}),r.jsxs("div",{ref:gt,className:"tw:grid tw:gap-2",children:[r.jsx(yt,{htmlFor:"scope-range-end",className:h(Z&&_t),children:Y}),r.jsx(Nr,{id:"scope-range-end",scrRef:Wt?ze??ot:ot,handleSubmit:zt,localizedBookNames:c,localizedStrings:b,getEndVerse:D,disableReferencesUpTo:Wt?_e??at:at,onOpenChange:Kt,onCloseAutoFocus:L=>{var X;Rt.current&&(Rt.current=!1,L.preventDefault(),(X=je.current)==null||X.focus())},className:h(Z&&_t),modal:!0,align:"start"})]})]}),Nt=l.useRef({}),pt=l.useCallback(L=>X=>{Nt.current[L]=X},[]),Ht=l.useRef(null);l.useEffect(()=>{if(!jt)return;let L=0;const X=requestAnimationFrame(()=>{L=requestAnimationFrame(()=>{var Vt;(Vt=Nt.current[t])==null||Vt.focus()})});return()=>{cancelAnimationFrame(X),L&&cancelAnimationFrame(L)}},[jt,t]);const[Yt,De]=l.useState(null),[fr,li]=l.useState(null),[mr,di]=l.useState(null),wi=200,[ui,pi]=l.useState(!1);l.useEffect(()=>{if(!mr||typeof ResizeObserver>"u")return;const L=new ResizeObserver(([X])=>{pi(X.contentRect.widthL.disconnect()},[mr]);const Ka=l.useCallback(L=>{Re(L),Qe(at),tr(ot),gr(n),M(!1),dt(L)},[at,ot,n]),Ha=l.useCallback(()=>{bt!==void 0&&(bt==="range"?(_e&&(m==null||m(_e)),ze&&(p==null||p(ze))):bt==="selectedBooks"&&i(er),nt(bt),dt(void 0),Re(void 0))},[bt,_e,ze,er,m,p,i,nt]),vr=l.useCallback(L=>{L||(dt(void 0),Re(void 0))},[]),Ya=l.useCallback(L=>{var X;L.preventDefault(),(X=Ht.current)==null||X.focus()},[]),Wa=L=>t===L?r.jsx("span",{className:"tw:absolute tw:flex tw:h-3.5 tw:w-3.5 tw:items-center tw:justify-center tw:ltr:left-2 tw:rtl:right-2",children:r.jsx(O.Check,{className:"tw:h-4 tw:w-4"})}):void 0;return r.jsxs("div",{id:w,className:"tw:grid tw:gap-4",children:[r.jsxs("div",{className:"tw:grid tw:gap-2",children:[!S&&r.jsx(yt,{children:G}),d==="dropdown"?r.jsxs(ae,{open:jt,onOpenChange:M,children:[r.jsx(oe,{asChild:!0,children:r.jsxs(F,{ref:Ht,variant:"outline",role:"combobox",className:h("tw:w-full tw:justify-between tw:overflow-hidden tw:font-normal",R),children:[r.jsx("span",{className:"tw:min-w-0 tw:flex-1 tw:truncate tw:text-start",children:wt()}),r.jsx(O.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})}),r.jsx(ne,{ref:di,className:"tw:w-[var(--radix-dropdown-menu-trigger-width)] tw:min-w-[14rem]",align:"start",children:r.jsxs(jr,{container:mr,children:[mt.map(({value:L,label:X,dropdownLabel:Vt,scrRefSuffix:ar,id:gi})=>r.jsxs(Se,{ref:pt(L),className:"tw:relative tw:ps-8 data-[highlighted]:tw:bg-accent data-[highlighted]:tw:text-accent-foreground",onSelect:()=>nt(L),"data-selected":t===L?"true":void 0,children:[t===L&&r.jsx("span",{className:"tw:absolute tw:flex tw:h-3.5 tw:w-3.5 tw:items-center tw:justify-center tw:ltr:left-2 tw:rtl:right-2",children:r.jsx(O.Check,{className:"tw:h-4 tw:w-4"})}),U(Vt??X,ar,ui)]},gi)),(vt||ut)&&r.jsx(ye,{}),vt&&r.jsxs(Se,{ref:pt("selectedBooks"),className:h("tw:relative tw:ps-8","data-[highlighted]:tw:bg-accent data-[highlighted]:tw:text-accent-foreground"),onSelect:()=>Ka("selectedBooks"),"data-selected":t==="selectedBooks"?"true":void 0,children:[Wa("selectedBooks"),`${vt.label}…`]}),ut&&r.jsxs(Se,{ref:pt("range"),className:h("tw:relative tw:ps-8","data-[highlighted]:tw:bg-accent data-[highlighted]:tw:text-accent-foreground"),onSelect:()=>Ka("range"),"data-selected":t==="range"?"true":void 0,children:[Wa("range"),`${ut.label}…`]}),y&&r.jsxs(r.Fragment,{children:[r.jsx(ye,{}),r.jsx(Ee,{className:"tw:px-2 tw:py-1.5 tw:text-xs tw:font-medium tw:text-muted-foreground",children:St}),r.jsx(Se,{ref:A,className:"tw:p-0",onSelect:L=>{var X,Vt;if(L.preventDefault(),Gt.current){Gt.current=!1;return}Tt.current||(Vt=(X=Ft.current)==null?void 0:X.querySelector("button"))==null||Vt.click()},children:r.jsx("div",{ref:Ft,className:"tw:w-full tw:px-1 tw:pb-1",onPointerDownCapture:L=>{const X=L.target instanceof HTMLElement?L.target:void 0;X!=null&&X.closest("button")&&(Gt.current=!0,requestAnimationFrame(()=>{Gt.current=!1}))},children:r.jsx(Nr,{id:"scope-navigate",scrRef:f??z.defaultScrRef,handleSubmit:y,localizedBookNames:c,localizedStrings:b,getEndVerse:D,triggerVariant:"ghost",onOpenChange:L=>{Tt.current=L},onCloseAutoFocus:L=>{var X;L.preventDefault(),(X=A.current)==null||X.focus()},modal:!0,className:"tw:w-full tw:min-w-0 tw:max-w-none tw:justify-between tw:px-2 tw:font-normal",triggerContent:r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"tw:min-w-0 tw:flex-1 tw:truncate tw:text-start",children:z.formatScrRef(f??z.defaultScrRef,"id")}),r.jsx(O.ChevronDown,{className:"tw:ms-2 tw:h-4 tw:w-4 tw:shrink-0 tw:opacity-50"})]})})})})]})]})})]}):r.jsx(Na,{value:t,onValueChange:nt,className:"tw:flex tw:flex-col tw:space-y-1",children:tt.map(({value:L,label:X,scrRefSuffix:Vt,id:ar})=>r.jsxs("div",{className:"tw:flex tw:items-center",children:[r.jsx(Dr,{className:"tw:me-2",value:L,id:ar}),r.jsx(yt,{htmlFor:ar,children:U(X,Vt)})]},ar))})]}),d==="radio"&&t==="selectedBooks"&&r.jsxs("div",{className:"tw:grid tw:gap-2",children:[r.jsx(yt,{children:q}),N]}),d==="radio"&&t==="range"&&xt,d==="dropdown"&&vt&&r.jsx(Er,{open:ct==="selectedBooks",onOpenChange:vr,children:r.jsx(Tr,{ref:li,onCloseAutoFocus:Ya,onEscapeKeyDown:L=>{fr!=null&&fr.querySelector('[data-state="open"]')&&L.preventDefault()},children:r.jsxs(jr,{container:fr,children:[r.jsx(Rr,{className:"tw:pe-8",children:r.jsx(zr,{children:P})}),N,r.jsxs(da,{children:[r.jsx(F,{variant:"outline",onClick:()=>vr(!1),children:kt}),r.jsx(F,{onClick:Ha,children:lt})]})]})})}),d==="dropdown"&&ut&&r.jsx(Er,{open:ct==="range",onOpenChange:vr,children:r.jsx(Tr,{ref:De,onCloseAutoFocus:Ya,onEscapeKeyDown:L=>{Yt!=null&&Yt.querySelector('[data-state="open"]')&&L.preventDefault()},children:r.jsxs(jr,{container:Yt,children:[r.jsx(Rr,{className:"tw:pe-8",children:r.jsx(zr,{children:K})}),xt,r.jsxs(da,{children:[r.jsx(F,{variant:"outline",onClick:()=>vr(!1),children:kt}),r.jsx(F,{ref:je,onClick:Ha,children:lt})]})]})})})]})}function cd({availableScrollGroupIds:t,scrollGroupId:e,onChangeScrollGroupId:a,localizedStrings:o={},size:n="sm",className:i,id:s}){const c={...z.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS,...Object.fromEntries(Object.entries(o).map(([d,u])=>[d,d===u&&d in z.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS?z.DEFAULT_SCROLL_GROUP_LOCALIZED_STRINGS[d]:u]))},w=ft();return r.jsxs(Ae,{value:`${e}`,onValueChange:d=>a(d==="undefined"?void 0:parseInt(d,10)),children:[r.jsx(Le,{size:n,className:h("pr-twp tw:w-auto",i),children:r.jsx(Pe,{placeholder:c[z.getLocalizeKeyForScrollGroupId(e)]??e})}),r.jsx(Be,{id:s,align:w==="rtl"?"end":"start",style:{zIndex:We},children:t.map(d=>r.jsx(Jt,{value:`${d}`,children:c[z.getLocalizeKeyForScrollGroupId(d)]},`${d}`))})]})}function ld({children:t}){return r.jsx("div",{className:"pr-twp tw:grid",children:t})}function dd({primary:t,secondary:e,children:a,isLoading:o=!1,loadingMessage:n}){return r.jsxs("div",{className:"tw:flex tw:items-center tw:justify-between tw:space-x-4 tw:py-2",children:[r.jsxs("div",{children:[r.jsx("p",{className:"tw:text-sm tw:font-medium tw:leading-none",children:t}),r.jsx("p",{className:"tw:whitespace-normal tw:break-words tw:text-sm tw:text-muted-foreground",children:e})]}),o?r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:n}):r.jsx("div",{children:a})]})}function wd({primary:t,secondary:e,includeSeparator:a=!1}){return r.jsxs("div",{className:"tw:space-y-4 tw:py-2",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"tw:text-lg tw:font-medium",children:t}),r.jsx("p",{className:"tw:text-sm tw:text-muted-foreground",children:e})]}),a?r.jsx($e,{}):""]})}function ti(t,e){var a;return(a=Object.entries(t).find(([,o])=>"menuItem"in o&&o.menuItem===e))==null?void 0:a[0]}function Lr({icon:t,menuLabel:e,leading:a}){return t?r.jsx("img",{className:h("tw:max-h-5 tw:max-w-5",a?"tw:me-2":"tw:ms-2"),src:t,alt:`${a?"Leading":"Trailing"} icon for ${e}`}):void 0}const ei=(t,e,a,o)=>a?Object.entries(t).filter(([i,s])=>"column"in s&&s.column===a||i===a).sort(([,i],[,s])=>i.order-s.order).flatMap(([i])=>e.filter(c=>c.group===i).sort((c,w)=>c.order-w.order).map(c=>r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:"command"in c?r.jsxs(Se,{onClick:()=>{o(c)},children:[c.iconPathBefore&&r.jsx(Lr,{icon:c.iconPathBefore,menuLabel:c.label,leading:!0}),c.label,c.iconPathAfter&&r.jsx(Lr,{icon:c.iconPathAfter,menuLabel:c.label})]},`dropdown-menu-item-${c.label}-${c.command}`):r.jsxs(jn,{children:[r.jsx(_n,{children:c.label}),r.jsx(xn,{children:r.jsx(Nn,{children:ei(t,e,ti(t,c.id),o)})})]},`dropdown-menu-sub-${c.label}-${c.id}`)}),c.tooltip&&r.jsx(Pt,{children:c.tooltip})]},`tooltip-${c.label}-${"command"in c?c.command:c.id}`))):void 0;function Br({onSelectMenuItem:t,menuData:e,tabLabel:a,icon:o,className:n,variant:i,buttonVariant:s="ghost",id:c}){return r.jsxs(ae,{variant:i,children:[r.jsx(oe,{"aria-label":a,className:n,asChild:!0,id:c,children:r.jsx(F,{variant:s,size:"icon",children:o??r.jsx(O.MenuIcon,{})})}),r.jsx(ne,{align:"start",style:{zIndex:We},children:Object.entries(e.columns).filter(([,w])=>typeof w=="object").sort(([,w],[,d])=>typeof w=="boolean"||typeof d=="boolean"?0:w.order-d.order).map(([w],d,u)=>r.jsxs(l.Fragment,{children:[r.jsx(La,{children:r.jsx(Ot,{children:ei(e.groups,e.items,w,t)})}),dr.jsx("div",{ref:o,className:`tw:sticky tw:top-0 tw:box-border tw:flex tw:h-14 tw:flex-row tw:items-center tw:justify-between tw:gap-2 tw:overflow-clip tw:px-4 tw:py-2 tw:text-foreground tw:@container/toolbar ${e}`,id:t,children:a}));function ud({onSelectProjectMenuItem:t,onSelectViewInfoMenuItem:e,projectMenuData:a,tabViewMenuData:o,id:n,className:i,startAreaChildren:s,centerAreaChildren:c,endAreaChildren:w,menuButtonIcon:d}){return r.jsxs(ri,{className:`tw:w-full tw:border ${i}`,id:n,children:[a&&r.jsx(Br,{onSelectMenuItem:t,menuData:a,tabLabel:"Project",icon:d??r.jsx(O.Menu,{}),buttonVariant:"ghost"}),s&&r.jsx("div",{className:"tw:flex tw:h-full tw:shrink tw:grow-[10] tw:flex-row tw:flex-wrap tw:items-start tw:gap-x-1 tw:gap-y-2 tw:overflow-clip",children:s}),c&&r.jsx("div",{className:"tw:flex tw:h-full tw:shrink tw:grow-[1] tw:basis-0 tw:flex-row tw:flex-wrap tw:items-start tw:justify-center tw:gap-x-1 tw:gap-y-2 tw:overflow-clip tw:@sm:basis-auto",children:c}),r.jsxs("div",{className:"tw:flex tw:h-full tw:shrink tw:grow-[1] tw:flex-row-reverse tw:flex-wrap tw:items-start tw:gap-x-1 tw:gap-y-2 tw:overflow-clip",children:[o&&r.jsx(Br,{onSelectMenuItem:e,menuData:o,tabLabel:"View Info",icon:r.jsx(O.EllipsisVertical,{}),className:"tw:h-full"}),w]})]})}function pd({onSelectProjectMenuItem:t,projectMenuData:e,id:a,className:o,menuButtonIcon:n}){return r.jsx(ri,{className:"tw:pointer-events-none",id:a,children:e&&r.jsx(Br,{onSelectMenuItem:t,menuData:e,tabLabel:"Project",icon:n,className:`tw:pointer-events-auto tw:shadow-lg ${o}`,buttonVariant:"outline"})})}const Ga=l.forwardRef(({className:t,...e},a)=>{const o=ft();return r.jsx(k.Tabs.Root,{orientation:"vertical",ref:a,className:h("tw:flex tw:gap-1 tw:rounded-md tw:text-muted-foreground",t),...e,dir:o})});Ga.displayName=k.Tabs.List.displayName;const Ua=l.forwardRef(({className:t,...e},a)=>r.jsx(k.Tabs.List,{ref:a,className:h("tw:flex tw:items-center tw:w-[124px] tw:justify-center tw:rounded-md tw:bg-muted tw:p-1 tw:text-muted-foreground",t),...e}));Ua.displayName=k.Tabs.List.displayName;const ai=l.forwardRef(({className:t,...e},a)=>r.jsx(k.Tabs.Trigger,{ref:a,...e,className:h("tw:inline-flex tw:w-[116px] tw:cursor-pointer tw:items-center tw:justify-center tw:break-words tw:rounded-sm tw:border-0 tw:bg-muted tw:px-3 tw:py-1.5 tw:text-sm tw:font-medium tw:text-inherit tw:ring-offset-background tw:transition-all tw:hover:text-foreground tw:focus-visible:outline-hidden tw:focus-visible:ring-2 tw:focus-visible:ring-ring tw:focus-visible:ring-offset-2 tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:data-[state=active]:bg-background tw:data-[state=active]:text-foreground tw:data-[state=active]:shadow-sm tw:overflow-clip",t)})),qa=l.forwardRef(({className:t,...e},a)=>r.jsx(k.Tabs.Content,{ref:a,className:h("tw:ms-5 tw:flex-grow tw:text-foreground tw:ring-offset-background tw:focus-visible:outline-hidden tw:focus-visible:ring-2 tw:focus-visible:ring-ring tw:focus-visible:ring-offset-2",t),...e}));qa.displayName=k.Tabs.Content.displayName;function gd({tabList:t,searchValue:e,onSearch:a,searchPlaceholder:o,headerTitle:n,searchClassName:i,id:s}){return r.jsxs("div",{id:s,className:"pr-twp",children:[r.jsxs("div",{className:"tw:sticky tw:top-0 tw:space-y-2 tw:pb-2",children:[n?r.jsx("h1",{children:n}):"",r.jsx(Hr,{className:i,value:e,onSearch:a,placeholder:o})]}),r.jsxs(Ga,{children:[r.jsx(Ua,{children:t.map(c=>r.jsx(ai,{value:c.value,children:c.value},c.key))}),t.map(c=>r.jsx(qa,{value:c.value,children:c.content},c.key))]})]})}function hd({className:t,variant:e="default",...a}){const o=l.useMemo(()=>({variant:e}),[e]);return r.jsx(Pa.Provider,{value:o,children:r.jsx(k.Menubar.Root,{"data-slot":"menubar",className:h("tw:flex tw:h-8 tw:items-center tw:gap-0.5 tw:rounded-lg tw:border tw:p-[3px]",t),...a})})}function fd({...t}){return r.jsx(k.Menubar.Menu,{"data-slot":"menubar-menu",...t})}function md({...t}){return r.jsx(k.Menubar.Portal,{"data-slot":"menubar-portal",...t})}function vd({className:t,...e}){const a=ke();return r.jsx(k.Menubar.Trigger,{"data-slot":"menubar-trigger",className:h("tw:flex tw:items-center tw:rounded-sm tw:px-1.5 tw:py-[2px] tw:text-sm tw:font-medium tw:outline-hidden tw:select-none tw:hover:bg-muted tw:aria-expanded:bg-muted","pr-twp",Ge({variant:a.variant,className:t})),...e})}function bd({className:t,align:e="start",alignOffset:a=-4,sideOffset:o=8,...n}){const i=ke();return r.jsx(md,{children:r.jsx(k.Menubar.Content,{"data-slot":"menubar-content",align:e,alignOffset:a,sideOffset:o,className:h("tw:z-50 tw:min-w-36 tw:origin-(--radix-menubar-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150","pr-twp",{"tw:bg-popover":i.variant==="muted"},t),...n})})}function xd({className:t,inset:e,variant:a="default",...o}){const n=ke();return r.jsx(k.Menubar.Item,{"data-slot":"menubar-item","data-inset":e,"data-variant":a,className:h("tw:group/menubar-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:not-data-[variant=destructive]:focus:**:text-accent-foreground tw:data-inset:ps-7 tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:data-[variant=destructive]:focus:text-destructive tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:data-[variant=destructive]:*:[svg]:text-destructive!",Ge({variant:n.variant,className:t})),...o})}function yd({className:t,...e}){return r.jsx(k.Menubar.Separator,{"data-slot":"menubar-separator",className:h("tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function kd({...t}){return r.jsx(k.Menubar.Sub,{"data-slot":"menubar-sub",...t})}function jd({className:t,inset:e,children:a,...o}){const n=ke();return r.jsxs(k.Menubar.SubTrigger,{"data-slot":"menubar-sub-trigger","data-inset":e,className:h("tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-none tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-open:bg-accent tw:data-open:text-accent-foreground tw:[&_svg:not([class*=size-])]:size-4",Ge({variant:n.variant,className:t})),...o,children:[a,r.jsx(ht.IconChevronRight,{className:"tw:ms-auto tw:size-4"})]})}function _d({className:t,...e}){const a=ke();return r.jsx(k.Menubar.SubContent,{"data-slot":"menubar-sub-content",className:h("tw:z-50 tw:min-w-32 tw:origin-(--radix-menubar-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-lg tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",{"tw:bg-popover":a.variant==="muted"},t),...e})}const nr=(t,e)=>{setTimeout(()=>{e.forEach(a=>{var o;(o=t.current)==null||o.dispatchEvent(new KeyboardEvent("keydown",a))})},0)},oi=(t,e,a,o)=>{if(!a)return;const n=Object.entries(t).filter(([i,s])=>"column"in s&&s.column===a||i===a).sort(([,i],[,s])=>i.order-s.order);return n.flatMap(([i],s)=>{const c=e.filter(d=>d.group===i).sort((d,u)=>d.order-u.order).map(d=>r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:"command"in d?r.jsxs(xd,{onClick:()=>{o(d)},children:[d.iconPathBefore&&r.jsx(Lr,{icon:d.iconPathBefore,menuLabel:d.label,leading:!0}),d.label,d.iconPathAfter&&r.jsx(Lr,{icon:d.iconPathAfter,menuLabel:d.label})]},`menubar-item-${d.label}-${d.command}`):r.jsxs(kd,{children:[r.jsx(jd,{children:d.label}),r.jsx(_d,{children:oi(t,e,ti(t,d.id),o)})]},`menubar-sub-${d.label}-${d.id}`)}),d.tooltip&&r.jsx(Pt,{children:d.tooltip})]},`tooltip-${d.label}-${"command"in d?d.command:d.id}`)),w=[...c];return c.length>0&&s{switch(u){case"platform.app":return i;case"platform.window":return s;case"platform.layout":return c;case"platform.help":return w;default:return}};if(xi.useHotkeys(["alt","alt+p","alt+l","alt+n","alt+h"],(u,g)=>{var f,y,b,D;u.preventDefault();const m={key:"Escape",code:"Escape",keyCode:27,bubbles:!0},p={key:" ",code:"Space",keyCode:32,bubbles:!0};switch(g.hotkey){case"alt":nr(i,[m]);break;case"alt+p":(f=i.current)==null||f.focus(),nr(i,[m,p]);break;case"alt+l":(y=s.current)==null||y.focus(),nr(s,[m,p]);break;case"alt+n":(b=c.current)==null||b.focus(),nr(c,[m,p]);break;case"alt+h":(D=w.current)==null||D.focus(),nr(w,[m,p]);break}}),l.useEffect(()=>{if(!a||!n.current)return;const u=new MutationObserver(p=>{p.forEach(f=>{if(f.attributeName==="data-state"&&f.target instanceof HTMLElement){const y=f.target.getAttribute("data-state");a(y==="open")}})});return n.current.querySelectorAll("[data-state]").forEach(p=>{u.observe(p,{attributes:!0})}),()=>u.disconnect()},[a]),!!t)return r.jsx(hd,{ref:n,className:"pr-twp tw:border-0 tw:bg-transparent",variant:o,children:Object.entries(t.columns).filter(([,u])=>typeof u=="object").sort(([,u],[,g])=>typeof u=="boolean"||typeof g=="boolean"?0:u.order-g.order).map(([u,g])=>r.jsxs(fd,{children:[r.jsx(vd,{ref:d(u),children:typeof g=="object"&&"label"in g&&g.label}),r.jsx(bd,{style:{zIndex:We},children:r.jsx(Ot,{children:oi(t.groups,t.items,u,e)})})]},u))})}function Cd(t){switch(t){case void 0:return;case"darwin":return"tw:ps-[85px]";default:return"tw:pe-[calc(138px+1rem)]"}}function Sd({menuData:t,onOpenChange:e,onSelectMenuItem:a,className:o,id:n,children:i,appMenuAreaChildren:s,configAreaChildren:c,shouldUseAsAppDragArea:w,menubarVariant:d="default"}){const u=l.useRef(void 0);return r.jsx("div",{className:h("tw:border tw:px-4 tw:text-foreground",o),ref:u,style:{position:"relative"},id:n,children:r.jsxs("div",{className:"tw:flex tw:h-full tw:w-full tw:justify-between tw:overflow-hidden",style:w?{WebkitAppRegion:"drag"}:void 0,children:[r.jsx("div",{className:"tw:flex tw:grow tw:basis-0",children:r.jsxs("div",{className:"tw:flex tw:items-center tw:gap-2",style:w?{WebkitAppRegion:"no-drag"}:void 0,children:[s,t&&r.jsx(Nd,{menuData:t,onOpenChange:e,onSelectMenuItem:a,variant:d})]})}),r.jsx("div",{className:"tw:flex tw:items-center tw:gap-2 tw:px-2",style:w?{WebkitAppRegion:"no-drag"}:void 0,children:i}),r.jsx("div",{className:"tw:flex tw:min-w-0 tw:grow tw:basis-0 tw:justify-end",children:r.jsx("div",{className:"tw:flex tw:min-w-0 tw:items-center tw:gap-2 tw:pe-1",style:w?{WebkitAppRegion:"no-drag"}:void 0,children:c})})]})})}const Ed=(t,e)=>t[e]??e;function Td({knownUiLanguages:t,primaryLanguage:e="en",fallbackLanguages:a=[],onLanguagesChange:o,onPrimaryLanguageChange:n,onFallbackLanguagesChange:i,localizedStrings:s,className:c,id:w}){const d=Ed(s,"%settings_uiLanguageSelector_fallbackLanguages%"),[u,g]=l.useState(!1),m=f=>{n&&n(f),o&&o([f,...a.filter(y=>y!==f)]),i&&a.find(y=>y===f)&&i([...a.filter(y=>y!==f)]),g(!1)},p=(f,y)=>{var D,S,R,j,C,E;const b=y!==f?((S=(D=t[f])==null?void 0:D.uiNames)==null?void 0:S[y])??((j=(R=t[f])==null?void 0:R.uiNames)==null?void 0:j.en):void 0;return b?`${(C=t[f])==null?void 0:C.autonym} (${b})`:(E=t[f])==null?void 0:E.autonym};return r.jsxs("div",{id:w,className:h("pr-twp tw:max-w-sm",c),children:[r.jsxs(Ae,{name:"uiLanguage",value:e,onValueChange:m,open:u,onOpenChange:f=>g(f),children:[r.jsx(Le,{children:r.jsx(Pe,{})}),r.jsx(Be,{style:{zIndex:We},children:Object.keys(t).map(f=>r.jsx(Jt,{value:f,children:p(f,e)},f))})]}),e!=="en"&&r.jsx("div",{className:"tw:pt-3",children:r.jsx(yt,{className:"tw:font-normal tw:text-muted-foreground",children:z.formatReplacementString(d,{fallbackLanguages:(a==null?void 0:a.length)>0?a.map(f=>p(f,e)).join(", "):t.en.autonym})})})]})}function Rd({item:t,createLabel:e,createComplexLabel:a}){return e?r.jsx(yt,{children:e(t)}):a?r.jsx(yt,{children:a(t)}):r.jsx(yt,{children:t})}function zd({id:t,className:e,listItems:a,selectedListItems:o,handleSelectListItem:n,createLabel:i,createComplexLabel:s}){return r.jsx("div",{id:t,className:e,children:a.map(c=>r.jsxs("div",{className:"tw:m-2 tw:flex tw:items-center",children:[r.jsx(Va,{className:"tw:me-2 tw:align-middle",checked:o.includes(c),onCheckedChange:w=>n(c,w)}),r.jsx(Rd,{item:c,createLabel:i,createComplexLabel:s})]},c))})}function Dd({scrRef:t,onClick:e,tooltipContent:a,ariaLabel:o,className:n,testId:i="linked-scr-ref-button"}){if(t==="")return;const s=r.jsx(F,{type:"button",variant:"link",onClick:e,disabled:!e,"aria-label":o,className:h("tw:h-auto tw:p-0 tw:text-start tw:font-mono tw:text-sm",n),"data-testid":i,children:t});return a?r.jsx(Ot,{delayDuration:0,children:r.jsxs($t,{children:[r.jsx(At,{asChild:!0,children:s}),r.jsx(Pt,{children:a})]})}):s}function Id({cardKey:t,isSelected:e,onSelect:a,isDenied:o,isHidden:n=!1,className:i,children:s,selectedButtons:c,hoverButtons:w,dropdownContent:d,additionalContent:u,accentColor:g,showDropdownOnHover:m=!1}){const p=f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),a())};return r.jsxs("div",{hidden:n,onClick:a,onKeyDown:p,role:"button",tabIndex:0,"aria-pressed":e,className:h("tw:group tw:relative tw:min-w-36 tw:rounded-xl tw:border tw:shadow-none tw:hover:bg-muted/50",{"tw:opacity-50 tw:hover:opacity-100":o&&!e},{"tw:bg-accent":e},{"tw:bg-transparent":!e},i),children:[r.jsxs("div",{className:"tw:flex tw:flex-col tw:gap-2 tw:p-4",children:[r.jsxs("div",{className:"tw:flex tw:justify-between tw:overflow-hidden",children:[r.jsx("div",{className:"tw:min-w-0 tw:flex-1",children:s}),e&&c,!e&&w&&r.jsx("div",{className:"tw:invisible tw:group-hover:visible",children:w}),!e&&m&&d&&r.jsx("div",{className:"tw:invisible tw:group-hover:visible",children:r.jsxs(ae,{children:[r.jsx(oe,{className:h(g&&"tw:me-1"),asChild:!0,children:r.jsx(F,{className:"tw:m-1 tw:h-6 tw:w-6",variant:"ghost",size:"icon",children:r.jsx(O.MoreVertical,{})})}),r.jsx(ne,{align:"end",children:d})]})}),e&&d&&r.jsxs(ae,{children:[r.jsx(oe,{className:h(g&&"tw:me-1"),asChild:!0,children:r.jsx(F,{className:"tw:m-1 tw:h-6 tw:w-6",variant:"ghost",size:"icon",children:r.jsx(O.MoreVertical,{})})}),r.jsx(ne,{align:"end",children:d})]})]}),u&&r.jsx("div",{className:"tw:w-fit tw:min-w-0 tw:max-w-full tw:overflow-hidden",children:u})]}),g&&r.jsx("div",{className:`tw:absolute tw:right-0 tw:top-0 tw:h-full tw:w-2 tw:rounded-r-xl ${g}`})]},t)}const ni=l.forwardRef(({className:t,...e},a)=>r.jsx(O.LoaderCircle,{size:35,className:h("tw:animate-spin",t),...e,ref:a}));ni.displayName="Spinner";function Md({id:t,isDisabled:e=!1,hasError:a=!1,isFullWidth:o=!1,helperText:n,label:i,placeholder:s,isRequired:c=!1,className:w,defaultValue:d,value:u,onChange:g,onFocus:m,onBlur:p}){return r.jsxs("div",{className:h("tw:inline-grid tw:items-center tw:gap-1.5",{"tw:w-full":o}),children:[r.jsx(yt,{htmlFor:t,className:h({"tw:text-red-600":a,"tw:hidden":!i}),children:`${i}${c?"*":""}`}),r.jsx(Xe,{id:t,disabled:e,placeholder:s,required:c,className:h(w,{"tw:border-red-600":a}),defaultValue:d,value:u,onChange:g,onFocus:m,onBlur:p}),r.jsx("p",{className:h({"tw:hidden":!n}),children:n})]})}const Od=ge.cva("tw:group/alert tw:relative tw:grid tw:w-full tw:gap-0.5 tw:rounded-lg tw:border tw:px-2.5 tw:py-2 tw:text-start tw:text-sm tw:has-data-[slot=alert-action]:relative tw:has-data-[slot=alert-action]:pe-18 tw:has-[>svg]:grid-cols-[auto_1fr] tw:has-[>svg]:gap-x-2 tw:*:[svg]:row-span-2 tw:*:[svg]:translate-y-0.5 tw:*:[svg]:text-current tw:*:[svg:not([class*=size-])]:size-4 tw:has-[>img]:grid-cols-[auto_1fr] tw:has-[>img]:gap-x-2 tw:*:[img]:row-span-2 tw:*:[img]:translate-y-0.5 tw:*:[img]:text-current tw:*:[img:not([class*=size-])]:size-4",{variants:{variant:{default:"tw:bg-card tw:text-card-foreground",destructive:"tw:bg-card tw:text-destructive tw:*:data-[slot=alert-description]:text-destructive/90 tw:*:[svg]:text-current tw:*:[img]:text-current"}},defaultVariants:{variant:"default"}});function $d({className:t,variant:e,...a}){return r.jsx("div",{"data-slot":"alert",role:"alert",className:h("pr-twp",Od({variant:e}),t),...a})}function Ad({className:t,...e}){return r.jsx("div",{"data-slot":"alert-title",className:h("tw:font-medium tw:group-has-[>svg]/alert:col-start-2 tw:[&_a]:underline tw:[&_a]:underline-offset-3 tw:[&_a]:hover:text-foreground",t),...e})}function Pd({className:t,...e}){return r.jsx("div",{"data-slot":"alert-description",className:h("tw:text-sm tw:text-balance tw:text-muted-foreground tw:md:text-pretty tw:[&_a]:underline tw:[&_a]:underline-offset-3 tw:[&_a]:hover:text-foreground tw:[&_p:not(:last-child)]:mb-4",t),...e})}function Ld({...t}){return r.jsx(k.ContextMenu.Root,{"data-slot":"context-menu",...t})}function Bd({className:t,...e}){return r.jsx(k.ContextMenu.Trigger,{"data-slot":"context-menu-trigger",className:h("tw:select-none",t),...e})}function Vd({...t}){return r.jsx(k.ContextMenu.Group,{"data-slot":"context-menu-group",...t})}function Fd({...t}){return r.jsx(k.ContextMenu.Portal,{"data-slot":"context-menu-portal",...t})}function Gd({...t}){return r.jsx(k.ContextMenu.Sub,{"data-slot":"context-menu-sub",...t})}function Ud({...t}){return r.jsx(k.ContextMenu.RadioGroup,{"data-slot":"context-menu-radio-group",...t})}function qd({className:t,...e}){return r.jsx(k.ContextMenu.Portal,{children:r.jsx(k.ContextMenu.Content,{"data-slot":"context-menu-content",className:h("pr-twp tw:z-50 tw:max-h-(--radix-context-menu-content-available-height) tw:min-w-36 tw:origin-(--radix-context-menu-content-transform-origin) tw:overflow-x-hidden tw:overflow-y-auto tw:rounded-lg tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-md tw:ring-1 tw:ring-foreground/10 tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...e})})}function Kd({className:t,inset:e,variant:a="default",...o}){return r.jsx(k.ContextMenu.Item,{"data-slot":"context-menu-item","data-inset":e,"data-variant":a,className:h("pr-twp tw:group/context-menu-item tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:data-[variant=destructive]:focus:text-destructive tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4 tw:focus:*:[svg]:text-accent-foreground tw:data-[variant=destructive]:*:[svg]:text-destructive",t),...o})}function Hd({className:t,inset:e,children:a,...o}){return r.jsxs(k.ContextMenu.SubTrigger,{"data-slot":"context-menu-sub-trigger","data-inset":e,className:h("pr-twp tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:px-1.5 tw:py-1 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-open:bg-accent tw:data-open:text-accent-foreground tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),...o,children:[a,r.jsx(ht.IconChevronRight,{className:"tw:ms-auto"})]})}function Yd({className:t,...e}){return r.jsx(k.ContextMenu.SubContent,{"data-slot":"context-menu-sub-content",className:h("pr-twp tw:z-50 tw:min-w-32 tw:origin-(--radix-context-menu-content-transform-origin) tw:overflow-hidden tw:rounded-lg tw:border tw:bg-popover tw:p-1 tw:text-popover-foreground tw:shadow-lg tw:duration-100 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-open:zoom-in-95 tw:data-closed:animate-out tw:data-closed:fade-out-0 tw:data-closed:zoom-out-95 tw:animate-none! tw:bg-popover/70 tw:before:-z-1 tw:**:data-[slot$=-item]:focus:bg-foreground/10 tw:**:data-[slot$=-item]:data-highlighted:bg-foreground/10 tw:**:data-[slot$=-separator]:bg-foreground/5 tw:**:data-[slot$=-trigger]:focus:bg-foreground/10 tw:**:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! tw:**:data-[variant=destructive]:focus:bg-foreground/10! tw:**:data-[variant=destructive]:text-accent-foreground! tw:**:data-[variant=destructive]:**:text-accent-foreground! tw:relative tw:before:pointer-events-none tw:before:absolute tw:before:inset-0 tw:before:rounded-[inherit] tw:before:backdrop-blur-2xl tw:before:backdrop-saturate-150",t),...e})}function Wd({className:t,children:e,checked:a,inset:o,...n}){return r.jsxs(k.ContextMenu.CheckboxItem,{"data-slot":"context-menu-checkbox-item","data-inset":o,className:h("pr-twp tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),checked:a,...n,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2",children:r.jsx(k.ContextMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function Xd({className:t,children:e,inset:a,...o}){return r.jsxs(k.ContextMenu.RadioItem,{"data-slot":"context-menu-radio-item","data-inset":a,className:h("pr-twp tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-1.5 tw:rounded-md tw:py-1 tw:pe-8 tw:ps-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-inset:ps-7 tw:data-disabled:pointer-events-none tw:data-disabled:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4",t),...o,children:[r.jsx("span",{className:"tw:pointer-events-none tw:absolute tw:end-2",children:r.jsx(k.ContextMenu.ItemIndicator,{children:r.jsx(ht.IconCheck,{})})}),e]})}function Zd({className:t,inset:e,...a}){return r.jsx(k.ContextMenu.Label,{"data-slot":"context-menu-label","data-inset":e,className:h("pr-twp tw:px-1.5 tw:py-1 tw:text-xs tw:font-medium tw:text-muted-foreground tw:data-inset:ps-7",t),...a})}function Jd({className:t,...e}){return r.jsx(k.ContextMenu.Separator,{"data-slot":"context-menu-separator",className:h("pr-twp tw:-mx-1 tw:my-1 tw:h-px tw:bg-border",t),...e})}function Qd({className:t,...e}){return r.jsx("span",{"data-slot":"context-menu-shortcut",className:h("pr-twp tw:ms-auto tw:text-xs tw:tracking-widest tw:text-muted-foreground tw:group-focus/context-menu-item:text-accent-foreground",t),...e})}function tw({...t}){return r.jsx(Te.Drawer.Root,{"data-slot":"drawer",...t})}function ew({...t}){return r.jsx(Te.Drawer.Trigger,{"data-slot":"drawer-trigger",...t})}function ii({...t}){return r.jsx(Te.Drawer.Portal,{"data-slot":"drawer-portal",...t})}function rw({...t}){return r.jsx(Te.Drawer.Close,{"data-slot":"drawer-close",...t})}function si({className:t,...e}){return r.jsx(Te.Drawer.Overlay,{"data-slot":"drawer-overlay",className:h("pr-twp tw:fixed tw:inset-0 tw:z-50 tw:bg-black/10 tw:supports-backdrop-filter:backdrop-blur-xs tw:data-open:animate-in tw:data-open:fade-in-0 tw:data-closed:animate-out tw:data-closed:fade-out-0",t),...e})}function aw({className:t,children:e,hideDrawerHandle:a=!1,...o}){const n=ft();return r.jsxs(ii,{"data-slot":"drawer-portal",children:[r.jsx(si,{}),r.jsxs(Te.Drawer.Content,{"data-slot":"drawer-content",className:h("pr-twp tw:group/drawer-content tw:fixed tw:z-50 tw:flex tw:h-auto tw:flex-col tw:bg-popover tw:text-sm tw:text-popover-foreground tw:data-[vaul-drawer-direction=bottom]:inset-x-0 tw:data-[vaul-drawer-direction=bottom]:bottom-0 tw:data-[vaul-drawer-direction=bottom]:mt-24 tw:data-[vaul-drawer-direction=bottom]:max-h-[80vh] tw:data-[vaul-drawer-direction=bottom]:rounded-t-xl tw:data-[vaul-drawer-direction=bottom]:border-t tw:data-[vaul-drawer-direction=left]:inset-y-0 tw:data-[vaul-drawer-direction=left]:left-0 tw:data-[vaul-drawer-direction=left]:w-3/4 tw:data-[vaul-drawer-direction=left]:rounded-r-xl tw:data-[vaul-drawer-direction=left]:border-r tw:data-[vaul-drawer-direction=left]:flex-row tw:data-[vaul-drawer-direction=right]:inset-y-0 tw:data-[vaul-drawer-direction=right]:right-0 tw:data-[vaul-drawer-direction=right]:w-3/4 tw:data-[vaul-drawer-direction=right]:rounded-l-xl tw:data-[vaul-drawer-direction=right]:border-l tw:data-[vaul-drawer-direction=right]:flex-row tw:data-[vaul-drawer-direction=top]:inset-x-0 tw:data-[vaul-drawer-direction=top]:top-0 tw:data-[vaul-drawer-direction=top]:mb-24 tw:data-[vaul-drawer-direction=top]:max-h-[80vh] tw:data-[vaul-drawer-direction=top]:rounded-b-xl tw:data-[vaul-drawer-direction=top]:border-b tw:data-[vaul-drawer-direction=left]:sm:max-w-sm tw:data-[vaul-drawer-direction=right]:sm:max-w-sm",t),dir:"ltr",...o,children:[!a&&r.jsx("div",{className:"tw:hidden tw:shrink-0 tw:rounded-full tw:bg-muted tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:mx-auto tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:mt-4 tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:h-1.5 tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:w-[100px] tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:block tw:group-data-[vaul-drawer-direction=right]/drawer-content:my-auto tw:group-data-[vaul-drawer-direction=right]/drawer-content:ms-4 tw:group-data-[vaul-drawer-direction=right]/drawer-content:h-[100px] tw:group-data-[vaul-drawer-direction=right]/drawer-content:w-1.5 tw:group-data-[vaul-drawer-direction=right]/drawer-content:block"}),r.jsx("div",{className:"tw:flex tw:min-w-0 tw:flex-1 tw:flex-col",dir:n,children:e}),!a&&r.jsx("div",{className:"tw:hidden tw:shrink-0 tw:rounded-full tw:bg-muted tw:group-data-[vaul-drawer-direction=top]/drawer-content:mx-auto tw:group-data-[vaul-drawer-direction=top]/drawer-content:mb-4 tw:group-data-[vaul-drawer-direction=top]/drawer-content:h-1.5 tw:group-data-[vaul-drawer-direction=top]/drawer-content:w-[100px] tw:group-data-[vaul-drawer-direction=top]/drawer-content:block tw:group-data-[vaul-drawer-direction=left]/drawer-content:my-auto tw:group-data-[vaul-drawer-direction=left]/drawer-content:me-4 tw:group-data-[vaul-drawer-direction=left]/drawer-content:h-[100px] tw:group-data-[vaul-drawer-direction=left]/drawer-content:w-1.5 tw:group-data-[vaul-drawer-direction=left]/drawer-content:block"})]})]})}function ow({className:t,...e}){return r.jsx("div",{"data-slot":"drawer-header",className:h("pr-twp tw:flex tw:flex-col tw:gap-0.5 tw:p-4 tw:group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center tw:group-data-[vaul-drawer-direction=top]/drawer-content:text-center tw:md:gap-0.5 tw:md:text-start",t),...e})}function nw({className:t,...e}){return r.jsx("div",{"data-slot":"drawer-footer",className:h("pr-twp tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4",t),...e})}function iw({className:t,...e}){return r.jsx(Te.Drawer.Title,{"data-slot":"drawer-title",className:h("pr-twp tw:font-heading tw:text-base tw:font-medium tw:text-foreground",t),...e})}function sw({className:t,...e}){return r.jsx(Te.Drawer.Description,{"data-slot":"drawer-description",className:h("pr-twp tw:text-sm tw:text-muted-foreground",t),...e})}function cw({className:t,value:e,...a}){return r.jsx(k.Progress.Root,{"data-slot":"progress",className:h("pr-twp tw:relative tw:flex tw:h-1 tw:w-full tw:items-center tw:overflow-x-hidden tw:rounded-full tw:bg-muted",t),...a,children:r.jsx(k.Progress.Indicator,{"data-slot":"progress-indicator",className:"tw:size-full tw:flex-1 tw:bg-primary tw:transition-all",style:{transform:`translateX(-${100-(e||0)}%)`}})})}function lw({className:t,direction:e,onLayout:a,orientation:o,...n}){return r.jsx(ba.Group,{"data-slot":"resizable-panel-group",className:h("tw:flex tw:h-full tw:w-full tw:aria-[orientation=vertical]:flex-col",t),orientation:o??e,onLayoutChange:a?i=>a(Object.values(i)):void 0,...n})}function kr(t){if(t!==void 0)return typeof t=="number"?`${t}%`:t}function dw({defaultSize:t,minSize:e,maxSize:a,collapsedSize:o,...n}){return r.jsx(ba.Panel,{"data-slot":"resizable-panel",defaultSize:kr(t),minSize:kr(e),maxSize:kr(a),collapsedSize:kr(o),...n})}function ww({withHandle:t,className:e,...a}){return r.jsx(ba.Separator,{"data-slot":"resizable-handle",className:h("tw:relative tw:flex tw:w-px tw:items-center tw:justify-center tw:bg-border tw:ring-offset-background tw:after:absolute tw:after:inset-y-0 tw:after:start-1/2 tw:after:w-1 tw:after:-translate-x-1/2 tw:rtl:after:translate-x-1/2 tw:focus-visible:ring-1 tw:focus-visible:ring-ring tw:focus-visible:outline-hidden tw:aria-[orientation=horizontal]:h-px tw:aria-[orientation=horizontal]:w-full tw:aria-[orientation=horizontal]:after:start-0 tw:aria-[orientation=horizontal]:after:h-1 tw:aria-[orientation=horizontal]:after:w-full tw:aria-[orientation=horizontal]:after:translate-x-0 tw:rtl:aria-[orientation=horizontal]:after:-translate-x-0 tw:aria-[orientation=horizontal]:after:-translate-y-1/2 tw:[&[aria-orientation=horizontal]>div]:rotate-90",e),...a,children:t&&r.jsx("div",{className:"tw:z-10 tw:flex tw:h-6 tw:w-1 tw:shrink-0 tw:rounded-lg tw:bg-border"})})}function uw({...t}){const{theme:e="system"}=ki.useTheme(),a=e==="light"||e==="dark"||e==="system"?e:"system",o={"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"};return r.jsx(Co.Toaster,{theme:a,className:"tw:toaster tw:group",icons:{success:r.jsx(ht.IconCircleCheck,{className:"tw:size-4"}),info:r.jsx(ht.IconInfoCircle,{className:"tw:size-4"}),warning:r.jsx(ht.IconAlertTriangle,{className:"tw:size-4"}),error:r.jsx(ht.IconAlertOctagon,{className:"tw:size-4"}),loading:r.jsx(ht.IconLoader,{className:"tw:size-4 tw:animate-spin"})},style:o,toastOptions:{classNames:{toast:"cn-toast"}},...t})}function pw({className:t,defaultValue:e,value:a,min:o=0,max:n=100,...i}){const s=ft(),c=l.useMemo(()=>Array.isArray(a)?a:Array.isArray(e)?e:[o,n],[a,e,o,n]);return r.jsxs(k.Slider.Root,{"data-slot":"slider",defaultValue:e,value:a,min:o,max:n,className:h("pr-twp tw:relative tw:flex tw:w-full tw:touch-none tw:items-center tw:select-none tw:data-disabled:opacity-50 tw:data-vertical:h-full tw:data-vertical:min-h-40 tw:data-vertical:w-auto tw:data-vertical:flex-col",t),dir:s,...i,children:[r.jsx(k.Slider.Track,{"data-slot":"slider-track",className:"tw:relative tw:grow tw:overflow-hidden tw:rounded-full tw:bg-muted tw:data-horizontal:h-1 tw:data-horizontal:w-full tw:data-vertical:h-full tw:data-vertical:w-1",children:r.jsx(k.Slider.Range,{"data-slot":"slider-range",className:"tw:absolute tw:bg-primary tw:select-none tw:data-horizontal:h-full tw:data-vertical:w-full"})}),Array.from({length:c.length},(w,d)=>r.jsx(k.Slider.Thumb,{"data-slot":"slider-thumb",className:"tw:relative tw:block tw:size-3 tw:shrink-0 tw:rounded-full tw:border tw:border-ring tw:bg-white tw:ring-ring/50 tw:transition-[color,box-shadow] tw:select-none tw:after:absolute tw:after:-inset-2 tw:hover:ring-3 tw:focus-visible:ring-3 tw:focus-visible:outline-hidden tw:active:ring-3 tw:disabled:pointer-events-none tw:disabled:opacity-50"},d))]})}function gw({className:t,size:e="default",...a}){return r.jsx(k.Switch.Root,{"data-slot":"switch","data-size":e,className:h("tw:peer pr-twp tw:group/switch tw:relative tw:inline-flex tw:shrink-0 tw:items-center tw:rounded-full tw:border tw:border-transparent tw:transition-all tw:outline-none tw:after:absolute tw:after:-inset-x-3 tw:after:-inset-y-2 tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:data-[size=default]:h-[18.4px] tw:data-[size=default]:w-[32px] tw:data-[size=sm]:h-[14px] tw:data-[size=sm]:w-[24px] tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:data-checked:bg-primary tw:data-unchecked:bg-input tw:dark:data-unchecked:bg-input/80 tw:data-disabled:cursor-not-allowed tw:data-disabled:opacity-50",t),...a,children:r.jsx(k.Switch.Thumb,{"data-slot":"switch-thumb",className:"tw:pointer-events-none tw:block tw:rounded-full tw:bg-background tw:ring-0 tw:transition-transform tw:group-data-[size=default]/switch:size-4 tw:group-data-[size=sm]/switch:size-3 tw:group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] tw:rtl:group-data-[size=default]/switch:data-checked:-translate-x-[calc(100%-2px)] tw:group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] tw:rtl:group-data-[size=sm]/switch:data-checked:-translate-x-[calc(100%-2px)] tw:dark:data-checked:bg-primary-foreground tw:group-data-[size=default]/switch:data-unchecked:translate-x-0 tw:rtl:group-data-[size=default]/switch:data-unchecked:-translate-x-0 tw:group-data-[size=sm]/switch:data-unchecked:translate-x-0 tw:rtl:group-data-[size=sm]/switch:data-unchecked:-translate-x-0 tw:dark:data-unchecked:bg-foreground"})})}function hw({className:t,orientation:e="horizontal",...a}){return r.jsx(k.Tabs.Root,{"data-slot":"tabs","data-orientation":e,className:h("tw:group/tabs tw:flex tw:gap-2 tw:data-horizontal:flex-col",t),...a})}const fw=ge.cva("tw:group/tabs-list tw:inline-flex tw:w-fit tw:items-center tw:justify-center tw:rounded-lg tw:p-[3px] tw:text-muted-foreground tw:group-data-horizontal/tabs:h-8 tw:group-data-vertical/tabs:h-fit tw:group-data-vertical/tabs:flex-col tw:data-[variant=line]:rounded-none",{variants:{variant:{default:"tw:bg-muted",line:"tw:gap-1 tw:bg-transparent"}},defaultVariants:{variant:"default"}});function mw({className:t,variant:e="default",...a}){const o=ft();return r.jsx(k.Tabs.List,{"data-slot":"tabs-list","data-variant":e,className:h("pr-twp",fw({variant:e}),t),dir:o,...a})}function vw({className:t,...e}){return r.jsx(k.Tabs.Trigger,{"data-slot":"tabs-trigger",className:h("pr-twp tw:relative tw:inline-flex tw:h-[calc(100%-1px)] tw:flex-1 tw:items-center tw:justify-center tw:gap-1.5 tw:rounded-md tw:border tw:border-transparent tw:px-1.5 tw:py-0.5 tw:text-sm tw:font-medium tw:whitespace-nowrap tw:text-foreground/60 tw:transition-all tw:group-data-vertical/tabs:w-full tw:group-data-vertical/tabs:justify-start tw:hover:text-foreground tw:focus-visible:border-ring tw:focus-visible:ring-[3px] tw:focus-visible:ring-ring/50 tw:focus-visible:outline-1 tw:focus-visible:outline-ring tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:has-data-[icon=inline-end]:pe-1 tw:has-data-[icon=inline-start]:ps-1 tw:dark:text-muted-foreground tw:dark:hover:text-foreground tw:group-data-[variant=default]/tabs-list:data-active:shadow-sm tw:group-data-[variant=line]/tabs-list:data-active:shadow-none tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4","tw:group-data-[variant=line]/tabs-list:bg-transparent tw:group-data-[variant=line]/tabs-list:data-active:bg-transparent tw:dark:group-data-[variant=line]/tabs-list:data-active:border-transparent tw:dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","tw:data-active:bg-background tw:data-active:text-foreground tw:dark:data-active:border-input tw:dark:data-active:bg-input/30 tw:dark:data-active:text-foreground","tw:after:absolute tw:after:bg-foreground tw:after:opacity-0 tw:after:transition-opacity tw:group-data-horizontal/tabs:after:inset-x-0 tw:group-data-horizontal/tabs:after:bottom-[-5px] tw:group-data-horizontal/tabs:after:h-0.5 tw:group-data-vertical/tabs:after:inset-y-0 tw:group-data-vertical/tabs:after:-end-1 tw:group-data-vertical/tabs:after:w-0.5 tw:group-data-[variant=line]/tabs-list:data-active:after:opacity-100",t),...e})}function bw({className:t,...e}){return r.jsx(k.Tabs.Content,{"data-slot":"tabs-content",className:h("pr-twp tw:flex-1 tw:text-sm tw:outline-none",t),...e})}const xw=(t,e)=>{l.useEffect(()=>{if(!t)return()=>{};const a=t(e);return()=>{a()}},[t,e])};function yw(t){return{preserveValue:!0,...t}}const ci=(t,e,a={})=>{const o=l.useRef(e);o.current=e;const n=l.useRef(a);n.current=yw(n.current);const[i,s]=l.useState(()=>o.current),[c,w]=l.useState(!0);return l.useEffect(()=>{let d=!0;return w(!!t),(async()=>{if(t){const u=await t();d&&(s(()=>u),w(!1))}})(),()=>{d=!1,n.current.preserveValue||s(()=>o.current)}},[t]),[i,c]},sa=()=>!1,kw=(t,e)=>{const[a]=ci(l.useCallback(async()=>{if(!t)return sa;const o=await Promise.resolve(t(e));return async()=>o()},[e,t]),sa,{preserveValue:!1});l.useEffect(()=>()=>{a!==sa&&a()},[a])};function jw(t){l.useEffect(()=>{let e;return t&&(e=document.createElement("style"),e.appendChild(document.createTextNode(t)),document.head.appendChild(e)),()=>{e&&document.head.removeChild(e)}},[t])}Object.defineProperty(exports,"sonner",{enumerable:!0,get:()=>Co.toast});exports.Alert=$d;exports.AlertDescription=Pd;exports.AlertTitle=Ad;exports.Avatar=vn;exports.AvatarFallback=bn;exports.AvatarImage=Cc;exports.BOOK_CHAPTER_CONTROL_STRING_KEYS=Ki;exports.BOOK_SELECTOR_STRING_KEYS=Yi;exports.Badge=pe;exports.BookChapterControl=Nr;exports.BookSelector=Wi;exports.Button=F;exports.ButtonGroup=Gr;exports.ButtonGroupSeparator=Ma;exports.ButtonGroupText=hc;exports.CANCEL_ACCEPT_BUTTONS_STRING_KEYS=Oa;exports.COMMENT_EDITOR_STRING_KEYS=vc;exports.COMMENT_LIST_STRING_KEYS=bc;exports.CancelAcceptButtons=$a;exports.Card=fn;exports.CardContent=mn;exports.CardDescription=_c;exports.CardFooter=Nc;exports.CardHeader=kc;exports.CardTitle=jc;exports.ChapterRangeSelector=Bo;exports.Checkbox=Va;exports.Checklist=zd;exports.ComboBox=wa;exports.Command=he;exports.CommandEmpty=Ze;exports.CommandGroup=re;exports.CommandInput=Fe;exports.CommandItem=ie;exports.CommandList=fe;exports.CommentEditor=mc;exports.CommentList=Tc;exports.ContextMenu=Ld;exports.ContextMenuCheckboxItem=Wd;exports.ContextMenuContent=qd;exports.ContextMenuGroup=Vd;exports.ContextMenuItem=Kd;exports.ContextMenuLabel=Zd;exports.ContextMenuPortal=Fd;exports.ContextMenuRadioGroup=Ud;exports.ContextMenuRadioItem=Xd;exports.ContextMenuSeparator=Jd;exports.ContextMenuShortcut=Qd;exports.ContextMenuSub=Gd;exports.ContextMenuSubContent=Yd;exports.ContextMenuSubTrigger=Hd;exports.ContextMenuTrigger=Bd;exports.DataTable=Tn;exports.Dialog=Er;exports.DialogClose=Ti;exports.DialogContent=Tr;exports.DialogDescription=Ri;exports.DialogFooter=da;exports.DialogHeader=Rr;exports.DialogOverlay=zo;exports.DialogPortal=Ro;exports.DialogTitle=zr;exports.DialogTrigger=Ei;exports.Drawer=tw;exports.DrawerClose=rw;exports.DrawerContent=aw;exports.DrawerDescription=sw;exports.DrawerFooter=nw;exports.DrawerHeader=ow;exports.DrawerOverlay=si;exports.DrawerPortal=ii;exports.DrawerTitle=iw;exports.DrawerTrigger=ew;exports.DropdownMenu=ae;exports.DropdownMenuCheckboxItem=ee;exports.DropdownMenuContent=ne;exports.DropdownMenuGroup=La;exports.DropdownMenuItem=Se;exports.DropdownMenuItemType=In;exports.DropdownMenuLabel=Ee;exports.DropdownMenuPortal=xn;exports.DropdownMenuRadioGroup=yn;exports.DropdownMenuRadioItem=kn;exports.DropdownMenuSeparator=ye;exports.DropdownMenuShortcut=Sc;exports.DropdownMenuSub=jn;exports.DropdownMenuSubContent=Nn;exports.DropdownMenuSubTrigger=_n;exports.DropdownMenuTrigger=oe;exports.ERROR_DUMP_STRING_KEYS=zn;exports.ERROR_POPOVER_STRING_KEYS=Xc;exports.EditorKeyboardShortcuts=An;exports.ErrorDump=Dn;exports.ErrorPopover=Zc;exports.FOOTNOTE_EDITOR_STRING_KEYS=gl;exports.Filter=rl;exports.FilterDropdown=Jc;exports.Footer=el;exports.FootnoteEditor=pl;exports.FootnoteItem=Vn;exports.FootnoteList=ml;exports.INVENTORY_STRING_KEYS=El;exports.Input=Xe;exports.Inventory=zl;exports.Kbd=ha;exports.Label=yt;exports.LinkedScrRefButton=Dd;exports.MARKER_MENU_STRING_KEYS=Pn;exports.MarkdownRenderer=Wc;exports.MarkerMenu=Ln;exports.MoreInfo=Qc;exports.MultiSelectComboBox=Mn;exports.NavigationContentSearch=gd;exports.Popover=se;exports.PopoverAnchor=$o;exports.PopoverContent=ce;exports.PopoverDescription=Li;exports.PopoverHeader=Ai;exports.PopoverPortalContainerProvider=jr;exports.PopoverTitle=Pi;exports.PopoverTrigger=me;exports.Progress=cw;exports.ProjectSelector=Rn;exports.RadioGroup=Na;exports.RadioGroupItem=Dr;exports.RecentSearches=Po;exports.ResizableHandle=ww;exports.ResizablePanel=dw;exports.ResizablePanelGroup=lw;exports.ResultsCard=Id;exports.SCOPE_SELECTOR_STRING_KEYS=nd;exports.ScopeSelector=sd;exports.ScriptureResultsViewer=rd;exports.ScrollGroupSelector=cd;exports.SearchBar=Hr;exports.Select=Ae;exports.SelectContent=Be;exports.SelectGroup=Cn;exports.SelectItem=Jt;exports.SelectLabel=zc;exports.SelectScrollDownButton=En;exports.SelectScrollUpButton=Sn;exports.SelectSeparator=Dc;exports.SelectTrigger=Le;exports.SelectValue=Pe;exports.Separator=$e;exports.SettingsList=ld;exports.SettingsListHeader=wd;exports.SettingsListItem=dd;exports.SettingsSidebar=Zn;exports.SettingsSidebarContentSearch=Yl;exports.Sidebar=qn;exports.SidebarContent=Hn;exports.SidebarFooter=Pl;exports.SidebarGroup=fa;exports.SidebarGroupAction=Bl;exports.SidebarGroupContent=va;exports.SidebarGroupLabel=ma;exports.SidebarHeader=Al;exports.SidebarInput=$l;exports.SidebarInset=Kn;exports.SidebarMenu=Yn;exports.SidebarMenuAction=Fl;exports.SidebarMenuBadge=Gl;exports.SidebarMenuButton=Xn;exports.SidebarMenuItem=Wn;exports.SidebarMenuSkeleton=Ul;exports.SidebarMenuSub=ql;exports.SidebarMenuSubButton=Hl;exports.SidebarMenuSubItem=Kl;exports.SidebarProvider=Un;exports.SidebarRail=Ol;exports.SidebarSeparator=Ll;exports.SidebarTrigger=Ml;exports.Skeleton=Pr;exports.Slider=pw;exports.Sonner=uw;exports.Spinner=ni;exports.Switch=gw;exports.TabDropdownMenu=Br;exports.TabFloatingMenu=pd;exports.TabToolbar=ud;exports.Table=Ur;exports.TableBody=Kr;exports.TableCaption=Lc;exports.TableCell=Oe;exports.TableFooter=Oc;exports.TableHead=dr;exports.TableHeader=qr;exports.TableRow=be;exports.Tabs=hw;exports.TabsContent=bw;exports.TabsList=mw;exports.TabsTrigger=vw;exports.TextField=Md;exports.Textarea=zi;exports.ToggleGroup=Da;exports.ToggleGroupItem=sr;exports.Toolbar=Sd;exports.Tooltip=$t;exports.TooltipContent=Pt;exports.TooltipProvider=Ot;exports.TooltipTrigger=At;exports.UNDO_REDO_BUTTONS_STRING_KEYS=On;exports.UiLanguageSelector=Td;exports.UndoRedoButtons=$n;exports.VerticalTabs=Ga;exports.VerticalTabsContent=qa;exports.VerticalTabsList=Ua;exports.VerticalTabsTrigger=ai;exports.Z_INDEX_ABOVE_DOCK=We;exports.Z_INDEX_FOOTNOTE_EDITOR=xa;exports.Z_INDEX_MODAL=Eo;exports.Z_INDEX_MODAL_BACKDROP=So;exports.Z_INDEX_OVERLAY=Vr;exports.Z_INDEX_TOOLTIP=To;exports.badgeVariants=hn;exports.buttonGroupVariants=pn;exports.buttonVariants=ya;exports.cn=h;exports.getBookIdFromUSFM=Sl;exports.getInventoryHeader=ur;exports.getLinesFromUSFM=Nl;exports.getNumberFromUSFM=Cl;exports.getStatusForItem=Fn;exports.getToolbarOSReservedSpaceClassName=Cd;exports.inventoryCountColumn=jl;exports.inventoryItemColumn=yl;exports.inventoryStatusColumn=_l;exports.useEvent=xw;exports.useEventAsync=kw;exports.useListbox=gn;exports.usePromise=ci;exports.useRecentSearches=Bi;exports.useSidebar=pr;exports.useStylesheet=jw;function _w(t,e="top"){if(!t||typeof document>"u")return;const a=document.head||document.querySelector("head"),o=a.querySelector(":first-child"),n=document.createElement("style");n.appendChild(document.createTextNode(t)),e==="top"&&o?a.insertBefore(n,o):a.appendChild(n)}_w(`.banded-row:hover { cursor: pointer; } @@ -153,6 +153,6 @@ list-style-type: disclosure-open; } /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--tw-font-sans:"IBM Plex Sans Variable", sans-serif;--tw-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--tw-color-red-100:oklch(93.6% .032 17.717);--tw-color-red-200:oklch(88.5% .062 18.334);--tw-color-red-300:oklch(80.8% .114 19.571);--tw-color-red-400:oklch(70.4% .191 22.216);--tw-color-red-500:oklch(63.7% .237 25.331);--tw-color-red-600:oklch(57.7% .245 27.325);--tw-color-red-700:oklch(50.5% .213 27.518);--tw-color-red-800:oklch(44.4% .177 26.899);--tw-color-orange-100:oklch(95.4% .038 75.164);--tw-color-orange-800:oklch(47% .157 37.304);--tw-color-amber-200:oklch(92.4% .12 95.746);--tw-color-yellow-50:oklch(98.7% .026 102.212);--tw-color-yellow-100:oklch(97.3% .071 103.193);--tw-color-yellow-400:oklch(85.2% .199 91.936);--tw-color-yellow-500:oklch(79.5% .184 86.047);--tw-color-yellow-600:oklch(68.1% .162 75.834);--tw-color-yellow-700:oklch(55.4% .135 66.442);--tw-color-green-50:oklch(98.2% .018 155.826);--tw-color-green-100:oklch(96.2% .044 156.743);--tw-color-green-500:oklch(72.3% .219 149.579);--tw-color-green-600:oklch(62.7% .194 149.214);--tw-color-green-700:oklch(52.7% .154 150.069);--tw-color-green-800:oklch(44.8% .119 151.328);--tw-color-teal-400:oklch(77.7% .152 181.912);--tw-color-teal-500:oklch(70.4% .14 182.503);--tw-color-teal-600:oklch(60% .118 184.704);--tw-color-sky-400:oklch(74.6% .16 232.661);--tw-color-sky-500:oklch(68.5% .169 237.323);--tw-color-sky-600:oklch(58.8% .158 241.966);--tw-color-blue-50:oklch(97% .014 254.604);--tw-color-blue-100:oklch(93.2% .032 255.585);--tw-color-blue-400:oklch(70.7% .165 254.624);--tw-color-blue-500:oklch(62.3% .214 259.815);--tw-color-blue-600:oklch(54.6% .245 262.881);--tw-color-blue-800:oklch(42.4% .199 265.638);--tw-color-indigo-200:oklch(87% .065 274.039);--tw-color-purple-50:oklch(97.7% .014 308.299);--tw-color-purple-200:oklch(90.2% .063 306.703);--tw-color-purple-900:oklch(38.1% .176 304.987);--tw-color-rose-400:oklch(71.2% .194 13.428);--tw-color-rose-500:oklch(64.5% .246 16.439);--tw-color-rose-600:oklch(58.6% .253 17.585);--tw-color-slate-300:oklch(86.9% .022 252.894);--tw-color-slate-900:oklch(20.8% .042 265.755);--tw-color-gray-50:oklch(98.5% .002 247.839);--tw-color-gray-100:oklch(96.7% .003 264.542);--tw-color-gray-300:oklch(87.2% .01 258.338);--tw-color-gray-500:oklch(55.1% .027 264.364);--tw-color-gray-600:oklch(44.6% .03 256.802);--tw-color-gray-700:oklch(37.3% .034 259.733);--tw-color-gray-800:oklch(27.8% .033 256.848);--tw-color-zinc-400:oklch(70.5% .015 286.067);--tw-color-neutral-300:oklch(87% 0 0);--tw-color-black:#000;--tw-color-white:#fff;--tw-spacing:calc(var(--spacing));--tw-container-xs:20rem;--tw-container-sm:24rem;--tw-container-md:28rem;--tw-container-lg:32rem;--tw-container-2xl:42rem;--tw-container-3xl:48rem;--tw-container-4xl:56rem;--tw-container-6xl:72rem;--tw-text-xs:.75rem;--tw-text-xs--line-height:calc(1 / .75);--tw-text-sm:.875rem;--tw-text-sm--line-height:calc(1.25 / .875);--tw-text-base:1rem;--tw-text-base--line-height:calc(1.5 / 1);--tw-text-lg:1.125rem;--tw-text-lg--line-height:calc(1.75 / 1.125);--tw-text-xl:1.25rem;--tw-text-xl--line-height:calc(1.75 / 1.25);--tw-text-2xl:1.5rem;--tw-text-2xl--line-height:calc(2 / 1.5);--tw-text-3xl:1.875rem;--tw-text-3xl--line-height:calc(2.25 / 1.875);--tw-text-4xl:2.25rem;--tw-text-4xl--line-height:calc(2.5 / 2.25);--tw-text-5xl:3rem;--tw-text-5xl--line-height:1;--tw-font-weight-normal:400;--tw-font-weight-medium:500;--tw-font-weight-semibold:600;--tw-font-weight-bold:700;--tw-font-weight-extrabold:800;--tw-tracking-tight:-.025em;--tw-tracking-widest:.1em;--tw-leading-tight:1.25;--tw-leading-snug:1.375;--tw-leading-relaxed:1.625;--tw-leading-loose:2;--tw-radius-md:calc(var(--radius) * .8);--tw-radius-xl:calc(var(--radius) * 1.4);--tw-radius-2xl:calc(var(--radius) * 1.8);--tw-drop-shadow-sm:0 1px 2px #00000026;--tw-ease-in-out:cubic-bezier(.4, 0, .2, 1);--tw-animate-spin:spin 1s linear infinite;--tw-animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--tw-blur-xs:4px;--tw-blur-2xl:40px;--tw-default-transition-duration:.15s;--tw-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--tw-default-font-family:"IBM Plex Sans Variable", sans-serif;--tw-default-mono-font-family:var(--tw-font-mono)}}@layer base{.pr-twp,.pr-twp *{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.pr-twp,.pr-twp *{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body.pr-twp{background-color:var(--background);color:var(--foreground)}html.pr-twp{font-family:IBM Plex Sans Variable,sans-serif}:where(.pr-twp,.pr-twp *),:where(.pr-twp,.pr-twp *):after,:where(.pr-twp,.pr-twp *):before,:where(.pr-twp,.pr-twp *) ::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}:where(.pr-twp,.pr-twp *) ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}.pr-twp{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--tw-default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--tw-default-font-feature-settings,normal);font-variation-settings:var(--tw-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr:where(.pr-twp,.pr-twp *){height:0;color:inherit;border-top-width:1px}abbr:where([title]):where(.pr-twp,.pr-twp *){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1:where(.pr-twp,.pr-twp *),h2:where(.pr-twp,.pr-twp *),h3:where(.pr-twp,.pr-twp *),h4:where(.pr-twp,.pr-twp *),h5:where(.pr-twp,.pr-twp *),h6:where(.pr-twp,.pr-twp *){font-size:inherit;font-weight:inherit}a:where(.pr-twp,.pr-twp *){color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b:where(.pr-twp,.pr-twp *),strong:where(.pr-twp,.pr-twp *){font-weight:bolder}code:where(.pr-twp,.pr-twp *),kbd:where(.pr-twp,.pr-twp *),samp:where(.pr-twp,.pr-twp *),pre:where(.pr-twp,.pr-twp *){font-family:var(--tw-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--tw-default-mono-font-feature-settings,normal);font-variation-settings:var(--tw-default-mono-font-variation-settings,normal);font-size:1em}small:where(.pr-twp,.pr-twp *){font-size:80%}sub:where(.pr-twp,.pr-twp *),sup:where(.pr-twp,.pr-twp *){vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub:where(.pr-twp,.pr-twp *){bottom:-.25em}sup:where(.pr-twp,.pr-twp *){top:-.5em}table:where(.pr-twp,.pr-twp *){text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(.pr-twp,.pr-twp *){outline:auto}progress:where(.pr-twp,.pr-twp *){vertical-align:baseline}summary:where(.pr-twp,.pr-twp *){display:list-item}ol:where(.pr-twp,.pr-twp *),ul:where(.pr-twp,.pr-twp *),menu:where(.pr-twp,.pr-twp *){list-style:none}img:where(.pr-twp,.pr-twp *),svg:where(.pr-twp,.pr-twp *),video:where(.pr-twp,.pr-twp *),canvas:where(.pr-twp,.pr-twp *),audio:where(.pr-twp,.pr-twp *),iframe:where(.pr-twp,.pr-twp *),embed:where(.pr-twp,.pr-twp *),object:where(.pr-twp,.pr-twp *){vertical-align:middle;display:block}img:where(.pr-twp,.pr-twp *),video:where(.pr-twp,.pr-twp *){max-width:100%;height:auto}button:where(.pr-twp,.pr-twp *),input:where(.pr-twp,.pr-twp *),select:where(.pr-twp,.pr-twp *),optgroup:where(.pr-twp,.pr-twp *),textarea:where(.pr-twp,.pr-twp *){font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(.pr-twp,.pr-twp *) ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup:where(.pr-twp,.pr-twp *){font-weight:bolder}:where(select:is([multiple],[size])) optgroup option:where(.pr-twp,.pr-twp *){padding-inline-start:20px}:where(.pr-twp,.pr-twp *) ::file-selector-button{margin-inline-end:4px}:where(.pr-twp,.pr-twp *) ::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){:where(.pr-twp,.pr-twp *) ::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){:where(.pr-twp,.pr-twp *) ::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea:where(.pr-twp,.pr-twp *){resize:vertical}:where(.pr-twp,.pr-twp *) ::-webkit-search-decoration{-webkit-appearance:none}:where(.pr-twp,.pr-twp *) ::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit{display:inline-flex}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-fields-wrapper{padding:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-year-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-month-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-day-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-hour-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-minute-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-second-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-millisecond-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-meridiem-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid:where(.pr-twp,.pr-twp *){box-shadow:none}button:where(.pr-twp,.pr-twp *),input:where([type=button],[type=reset],[type=submit]):where(.pr-twp,.pr-twp *){appearance:button}:where(.pr-twp,.pr-twp *) ::file-selector-button{appearance:button}:where(.pr-twp,.pr-twp *) ::-webkit-inner-spin-button{height:auto}:where(.pr-twp,.pr-twp *) ::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])):where(.pr-twp,.pr-twp *){display:none!important}}@layer components;@layer utilities{.tw\\:\\@container\\/card-header{container:card-header/inline-size}.tw\\:\\@container\\/toolbar{container:toolbar/inline-size}.tw\\:pointer-events-auto{pointer-events:auto}.tw\\:pointer-events-none{pointer-events:none}.tw\\:invisible{visibility:hidden}.tw\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tw\\:absolute{position:absolute}.tw\\:fixed{position:fixed}.tw\\:relative{position:relative}.tw\\:sticky{position:sticky}.tw\\:inset-0{inset:calc(calc(var(--spacing)) * 0)}.tw\\:inset-y-0{inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:start-1\\.5{inset-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:start-1\\/2{inset-inline-start:50%}.tw\\:end-0{inset-inline-end:calc(calc(var(--spacing)) * 0)}.tw\\:end-1{inset-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:end-2{inset-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:end-3{inset-inline-end:calc(calc(var(--spacing)) * 3)}.tw\\:-top-\\[1px\\]{top:-1px}.tw\\:top-0{top:calc(calc(var(--spacing)) * 0)}.tw\\:top-1\\.5{top:calc(calc(var(--spacing)) * 1.5)}.tw\\:top-1\\/2{top:50%}.tw\\:top-1\\/3{top:33.3333%}.tw\\:top-2{top:calc(calc(var(--spacing)) * 2)}.tw\\:top-2\\.5{top:calc(calc(var(--spacing)) * 2.5)}.tw\\:top-3\\.5{top:calc(calc(var(--spacing)) * 3.5)}.tw\\:top-\\[-1px\\]{top:-1px}.tw\\:-right-1{right:calc(calc(var(--spacing)) * -1)}.tw\\:right-0{right:calc(calc(var(--spacing)) * 0)}.tw\\:right-1{right:calc(calc(var(--spacing)) * 1)}.tw\\:right-3{right:calc(calc(var(--spacing)) * 3)}.tw\\:bottom-0{bottom:calc(calc(var(--spacing)) * 0)}.tw\\:-left-\\[1px\\]{left:-1px}.tw\\:left-0{left:calc(calc(var(--spacing)) * 0)}.tw\\:left-2{left:calc(calc(var(--spacing)) * 2)}.tw\\:left-3{left:calc(calc(var(--spacing)) * 3)}.tw\\:isolate{isolation:isolate}.tw\\:z-10{z-index:10}.tw\\:z-20{z-index:20}.tw\\:z-50{z-index:50}.tw\\:order-first{order:-9999}.tw\\:order-last{order:9999}.tw\\:col-span-1{grid-column:span 1/span 1}.tw\\:col-span-2{grid-column:span 2/span 2}.tw\\:col-span-3{grid-column:span 3/span 3}.tw\\:col-start-1{grid-column-start:1}.tw\\:col-start-2{grid-column-start:2}.tw\\:row-span-2{grid-row:span 2/span 2}.tw\\:row-start-1{grid-row-start:1}.tw\\:row-start-2{grid-row-start:2}.tw\\:m-0{margin:calc(calc(var(--spacing)) * 0)}.tw\\:m-1{margin:calc(calc(var(--spacing)) * 1)}.tw\\:m-2{margin:calc(calc(var(--spacing)) * 2)}.tw\\:-mx-1{margin-inline:calc(calc(var(--spacing)) * -1)}.tw\\:-mx-4{margin-inline:calc(calc(var(--spacing)) * -4)}.tw\\:mx-0{margin-inline:calc(calc(var(--spacing)) * 0)}.tw\\:mx-1{margin-inline:calc(calc(var(--spacing)) * 1)}.tw\\:mx-2{margin-inline:calc(calc(var(--spacing)) * 2)}.tw\\:mx-3\\.5{margin-inline:calc(calc(var(--spacing)) * 3.5)}.tw\\:mx-8{margin-inline:calc(calc(var(--spacing)) * 8)}.tw\\:my-1{margin-block:calc(calc(var(--spacing)) * 1)}.tw\\:my-2\\.5{margin-block:calc(calc(var(--spacing)) * 2.5)}.tw\\:my-4{margin-block:calc(calc(var(--spacing)) * 4)}.tw\\:ms-1{margin-inline-start:calc(calc(var(--spacing)) * 1)}.tw\\:ms-2{margin-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:ms-5{margin-inline-start:calc(calc(var(--spacing)) * 5)}.tw\\:ms-auto{margin-inline-start:auto}.tw\\:me-1{margin-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:me-2{margin-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:prose{color:var(--tw-prose-body);max-width:65ch}.tw\\:prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.tw\\:prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.tw\\:prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.tw\\:prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.tw\\:prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tw\\:prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.tw\\:prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tw\\:prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tw\\:prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tw\\:prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tw\\:prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tw\\:prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tw\\:prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tw\\:prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tw\\:prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.tw\\:prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.tw\\:prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.tw\\:prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.tw\\:prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.tw\\:prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.tw\\:prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.tw\\:prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.tw\\:prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.tw\\:prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.tw\\:prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.tw\\:prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.tw\\:prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.tw\\:prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.tw\\:prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tw\\:prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.tw\\:prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tw\\:prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.tw\\:prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.tw\\:prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.tw\\:prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.tw\\:prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.tw\\:prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tw\\:prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"\`"}.tw\\:prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tw\\:prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.tw\\:prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.tw\\:prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tw\\:prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.tw\\:prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.tw\\:prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tw\\:prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.tw\\:prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.tw\\:prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.tw\\:prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.tw\\:prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.tw\\:prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.tw\\:prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.tw\\:prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.tw\\:prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.tw\\:prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.tw\\:prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.tw\\:prose{--tw-prose-body:var(--foreground);--tw-prose-headings:var(--foreground);--tw-prose-lead:var(--muted-foreground);--tw-prose-links:var(--primary);--tw-prose-bold:var(--foreground);--tw-prose-counters:var(--muted-foreground);--tw-prose-bullets:var(--muted-foreground);--tw-prose-hr:var(--border);--tw-prose-quotes:var(--foreground);--tw-prose-quote-borders:var(--border);--tw-prose-captions:var(--muted-foreground);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:var(--foreground);--tw-prose-pre-code:var(--muted-foreground);--tw-prose-pre-bg:var(--muted);--tw-prose-th-borders:var(--border);--tw-prose-td-borders:var(--border);--tw-prose-invert-body:var(--foreground);--tw-prose-invert-headings:var(--foreground);--tw-prose-invert-lead:var(--muted-foreground);--tw-prose-invert-links:var(--primary);--tw-prose-invert-bold:var(--foreground);--tw-prose-invert-counters:var(--muted-foreground);--tw-prose-invert-bullets:var(--muted-foreground);--tw-prose-invert-hr:var(--border);--tw-prose-invert-quotes:var(--foreground);--tw-prose-invert-quote-borders:var(--border);--tw-prose-invert-captions:var(--muted-foreground);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:var(--foreground);--tw-prose-invert-pre-code:var(--muted-foreground);--tw-prose-invert-pre-bg:var(--muted);--tw-prose-invert-th-borders:var(--border);--tw-prose-invert-td-borders:var(--border);font-size:1rem;line-height:1.75}.tw\\:prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.tw\\:prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.tw\\:prose :where(.tw\\:prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.tw\\:prose :where(.tw\\:prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tw\\:prose :where(.tw\\:prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tw\\:prose :where(.tw\\:prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tw\\:prose :where(.tw\\:prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tw\\:prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.tw\\:prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.tw\\:prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.tw\\:prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.tw\\:prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.tw\\:prose :where(.tw\\:prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose :where(.tw\\:prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tw\\:prose-sm{font-size:.875rem;line-height:1.71429}.tw\\:prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.tw\\:prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.tw\\:prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.tw\\:prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.tw\\:prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.tw\\:prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.tw\\:prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.tw\\:prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.tw\\:prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.tw\\:prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.tw\\:prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.tw\\:prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.tw\\:prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.tw\\:prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.tw\\:prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.tw\\:prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.tw\\:prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.tw\\:prose-sm :where(.tw\\:prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.tw\\:prose-sm :where(.tw\\:prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.tw\\:prose-sm :where(.tw\\:prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.tw\\:prose-sm :where(.tw\\:prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.tw\\:prose-sm :where(.tw\\:prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.tw\\:prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.tw\\:prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.tw\\:prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.tw\\:prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.tw\\:prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.tw\\:prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.tw\\:prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.tw\\:prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.tw\\:prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.tw\\:prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.tw\\:prose-sm :where(.tw\\:prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose-sm :where(.tw\\:prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tw\\:-mt-4{margin-top:calc(calc(var(--spacing)) * -4)}.tw\\:mt-1{margin-top:calc(calc(var(--spacing)) * 1)}.tw\\:mt-2{margin-top:calc(calc(var(--spacing)) * 2)}.tw\\:mt-3{margin-top:calc(calc(var(--spacing)) * 3)}.tw\\:mt-4{margin-top:calc(calc(var(--spacing)) * 4)}.tw\\:mt-6{margin-top:calc(calc(var(--spacing)) * 6)}.tw\\:mt-auto{margin-top:auto}.tw\\:mr-1{margin-right:calc(calc(var(--spacing)) * 1)}.tw\\:mr-2{margin-right:calc(calc(var(--spacing)) * 2)}.tw\\:mr-3{margin-right:calc(calc(var(--spacing)) * 3)}.tw\\:-mb-4{margin-bottom:calc(calc(var(--spacing)) * -4)}.tw\\:mb-1{margin-bottom:calc(calc(var(--spacing)) * 1)}.tw\\:mb-2{margin-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:mb-3{margin-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:mb-4{margin-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:ml-2{margin-left:calc(calc(var(--spacing)) * 2)}.tw\\:ml-4{margin-left:calc(calc(var(--spacing)) * 4)}.tw\\:ml-auto{margin-left:auto}.tw\\:box-border{box-sizing:border-box}.tw\\:line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tw\\:no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.tw\\:no-scrollbar::-webkit-scrollbar{display:none}.tw\\:block{display:block}.tw\\:flex{display:flex}.tw\\:grid{display:grid}.tw\\:hidden{display:none}.tw\\:inline-block{display:inline-block}.tw\\:inline-flex{display:inline-flex}.tw\\:inline-grid{display:inline-grid}.tw\\:field-sizing-content{field-sizing:content}.tw\\:aspect-square{aspect-ratio:1}.tw\\:size-2{width:calc(calc(var(--spacing)) * 2);height:calc(calc(var(--spacing)) * 2)}.tw\\:size-2\\.5{width:calc(calc(var(--spacing)) * 2.5);height:calc(calc(var(--spacing)) * 2.5)}.tw\\:size-3{width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:size-3\\.5{width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:size-4{width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:size-6{width:calc(calc(var(--spacing)) * 6);height:calc(calc(var(--spacing)) * 6)}.tw\\:size-7{width:calc(calc(var(--spacing)) * 7);height:calc(calc(var(--spacing)) * 7)}.tw\\:size-8{width:calc(calc(var(--spacing)) * 8);height:calc(calc(var(--spacing)) * 8)}.tw\\:size-9{width:calc(calc(var(--spacing)) * 9);height:calc(calc(var(--spacing)) * 9)}.tw\\:size-full{width:100%;height:100%}.tw\\:h-1{height:calc(calc(var(--spacing)) * 1)}.tw\\:h-2{height:calc(calc(var(--spacing)) * 2)}.tw\\:h-3{height:calc(calc(var(--spacing)) * 3)}.tw\\:h-3\\.5{height:calc(calc(var(--spacing)) * 3.5)}.tw\\:h-4{height:calc(calc(var(--spacing)) * 4)}.tw\\:h-5{height:calc(calc(var(--spacing)) * 5)}.tw\\:h-6{height:calc(calc(var(--spacing)) * 6)}.tw\\:h-7{height:calc(calc(var(--spacing)) * 7)}.tw\\:h-8{height:calc(calc(var(--spacing)) * 8)}.tw\\:h-8\\!{height:calc(calc(var(--spacing)) * 8)!important}.tw\\:h-9{height:calc(calc(var(--spacing)) * 9)}.tw\\:h-10{height:calc(calc(var(--spacing)) * 10)}.tw\\:h-12{height:calc(calc(var(--spacing)) * 12)}.tw\\:h-14{height:calc(calc(var(--spacing)) * 14)}.tw\\:h-20{height:calc(calc(var(--spacing)) * 20)}.tw\\:h-24{height:calc(calc(var(--spacing)) * 24)}.tw\\:h-32{height:calc(calc(var(--spacing)) * 32)}.tw\\:h-40{height:calc(calc(var(--spacing)) * 40)}.tw\\:h-64{height:calc(calc(var(--spacing)) * 64)}.tw\\:h-96{height:calc(calc(var(--spacing)) * 96)}.tw\\:h-\\[1\\.2rem\\]{height:1.2rem}.tw\\:h-\\[5px\\]{height:5px}.tw\\:h-\\[300px\\]{height:300px}.tw\\:h-\\[calc\\(100\\%-1px\\)\\]{height:calc(100% - 1px)}.tw\\:h-\\[calc\\(100\\%-2px\\)\\]{height:calc(100% - 2px)}.tw\\:h-auto{height:auto}.tw\\:h-full{height:100%}.tw\\:h-px{height:1px}.tw\\:h-svh{height:100svh}.tw\\:max-h-\\(--radix-context-menu-content-available-height\\){max-height:var(--radix-context-menu-content-available-height)}.tw\\:max-h-\\(--radix-dropdown-menu-content-available-height\\){max-height:var(--radix-dropdown-menu-content-available-height)}.tw\\:max-h-\\(--radix-select-content-available-height\\){max-height:var(--radix-select-content-available-height)}.tw\\:max-h-5{max-height:calc(calc(var(--spacing)) * 5)}.tw\\:max-h-10{max-height:calc(calc(var(--spacing)) * 10)}.tw\\:max-h-72{max-height:calc(calc(var(--spacing)) * 72)}.tw\\:max-h-80{max-height:calc(calc(var(--spacing)) * 80)}.tw\\:max-h-\\[96\\%\\]{max-height:96%}.tw\\:max-h-\\[300px\\]{max-height:300px}.tw\\:min-h-0{min-height:calc(calc(var(--spacing)) * 0)}.tw\\:min-h-11{min-height:calc(calc(var(--spacing)) * 11)}.tw\\:min-h-16{min-height:calc(calc(var(--spacing)) * 16)}.tw\\:min-h-svh{min-height:100svh}.tw\\:w-\\(--radix-dropdown-menu-trigger-width\\){width:var(--radix-dropdown-menu-trigger-width)}.tw\\:w-\\(--sidebar-width\\){width:var(--sidebar-width)}.tw\\:w-1{width:calc(calc(var(--spacing)) * 1)}.tw\\:w-1\\/2{width:50%}.tw\\:w-2{width:calc(calc(var(--spacing)) * 2)}.tw\\:w-3{width:calc(calc(var(--spacing)) * 3)}.tw\\:w-3\\.5{width:calc(calc(var(--spacing)) * 3.5)}.tw\\:w-3\\/4{width:75%}.tw\\:w-4{width:calc(calc(var(--spacing)) * 4)}.tw\\:w-4\\/5{width:80%}.tw\\:w-4\\/6{width:66.6667%}.tw\\:w-5{width:calc(calc(var(--spacing)) * 5)}.tw\\:w-5\\/6{width:83.3333%}.tw\\:w-6{width:calc(calc(var(--spacing)) * 6)}.tw\\:w-8{width:calc(calc(var(--spacing)) * 8)}.tw\\:w-9{width:calc(calc(var(--spacing)) * 9)}.tw\\:w-9\\/12{width:75%}.tw\\:w-10{width:calc(calc(var(--spacing)) * 10)}.tw\\:w-12{width:calc(calc(var(--spacing)) * 12)}.tw\\:w-20{width:calc(calc(var(--spacing)) * 20)}.tw\\:w-24{width:calc(calc(var(--spacing)) * 24)}.tw\\:w-32{width:calc(calc(var(--spacing)) * 32)}.tw\\:w-48{width:calc(calc(var(--spacing)) * 48)}.tw\\:w-56{width:calc(calc(var(--spacing)) * 56)}.tw\\:w-60{width:calc(calc(var(--spacing)) * 60)}.tw\\:w-64{width:calc(calc(var(--spacing)) * 64)}.tw\\:w-72{width:calc(calc(var(--spacing)) * 72)}.tw\\:w-80{width:calc(calc(var(--spacing)) * 80)}.tw\\:w-96{width:calc(calc(var(--spacing)) * 96)}.tw\\:w-\\[1\\.2rem\\]{width:1.2rem}.tw\\:w-\\[1px\\]{width:1px}.tw\\:w-\\[5px\\]{width:5px}.tw\\:w-\\[70px\\]{width:70px}.tw\\:w-\\[100px\\]{width:100px}.tw\\:w-\\[116px\\]{width:116px}.tw\\:w-\\[124px\\]{width:124px}.tw\\:w-\\[150px\\]{width:150px}.tw\\:w-\\[180px\\]{width:180px}.tw\\:w-\\[200px\\]{width:200px}.tw\\:w-\\[250px\\]{width:250px}.tw\\:w-\\[300px\\]{width:300px}.tw\\:w-\\[320px\\]{width:320px}.tw\\:w-\\[350px\\]{width:350px}.tw\\:w-\\[400px\\]{width:400px}.tw\\:w-\\[500px\\]{width:500px}.tw\\:w-\\[600px\\]{width:600px}.tw\\:w-\\[calc\\(100\\%-2px\\)\\]{width:calc(100% - 2px)}.tw\\:w-\\[var\\(--radix-dropdown-menu-trigger-width\\)\\]{width:var(--radix-dropdown-menu-trigger-width)}.tw\\:w-\\[var\\(--radix-popper-anchor-width\\,280px\\)\\]{width:var(--radix-popper-anchor-width,280px)}.tw\\:w-auto{width:auto}.tw\\:w-fit{width:fit-content}.tw\\:w-full{width:100%}.tw\\:w-max{width:max-content}.tw\\:w-px{width:1px}.tw\\:max-w-\\(--skeleton-width\\){max-width:var(--skeleton-width)}.tw\\:max-w-2xl{max-width:var(--tw-container-2xl)}.tw\\:max-w-3xl{max-width:var(--tw-container-3xl)}.tw\\:max-w-4xl{max-width:var(--tw-container-4xl)}.tw\\:max-w-5{max-width:calc(calc(var(--spacing)) * 5)}.tw\\:max-w-6xl{max-width:var(--tw-container-6xl)}.tw\\:max-w-40{max-width:calc(calc(var(--spacing)) * 40)}.tw\\:max-w-48{max-width:calc(calc(var(--spacing)) * 48)}.tw\\:max-w-64{max-width:calc(calc(var(--spacing)) * 64)}.tw\\:max-w-96{max-width:calc(calc(var(--spacing)) * 96)}.tw\\:max-w-\\[200px\\]{max-width:200px}.tw\\:max-w-\\[220px\\]{max-width:220px}.tw\\:max-w-\\[280px\\]{max-width:280px}.tw\\:max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.tw\\:max-w-\\[calc\\(100vw-2rem\\)\\]{max-width:calc(100vw - 2rem)}.tw\\:max-w-fit{max-width:fit-content}.tw\\:max-w-full{max-width:100%}.tw\\:max-w-lg{max-width:var(--tw-container-lg)}.tw\\:max-w-md{max-width:var(--tw-container-md)}.tw\\:max-w-none{max-width:none}.tw\\:max-w-sm{max-width:var(--tw-container-sm)}.tw\\:max-w-xs{max-width:var(--tw-container-xs)}.tw\\:min-w-0{min-width:calc(calc(var(--spacing)) * 0)}.tw\\:min-w-5{min-width:calc(calc(var(--spacing)) * 5)}.tw\\:min-w-7{min-width:calc(calc(var(--spacing)) * 7)}.tw\\:min-w-8{min-width:calc(calc(var(--spacing)) * 8)}.tw\\:min-w-9{min-width:calc(calc(var(--spacing)) * 9)}.tw\\:min-w-16{min-width:calc(calc(var(--spacing)) * 16)}.tw\\:min-w-32{min-width:calc(calc(var(--spacing)) * 32)}.tw\\:min-w-36{min-width:calc(calc(var(--spacing)) * 36)}.tw\\:min-w-80{min-width:calc(calc(var(--spacing)) * 80)}.tw\\:min-w-\\[12rem\\]{min-width:12rem}.tw\\:min-w-\\[26px\\]{min-width:26px}.tw\\:min-w-\\[96px\\]{min-width:96px}.tw\\:min-w-\\[140px\\]{min-width:140px}.tw\\:min-w-\\[200px\\]{min-width:200px}.tw\\:min-w-\\[215px\\]{min-width:215px}.tw\\:min-w-\\[500px\\]{min-width:500px}.tw\\:min-w-min{min-width:min-content}.tw\\:flex-1{flex:1}.tw\\:shrink{flex-shrink:1}.tw\\:shrink-0{flex-shrink:0}.tw\\:flex-grow,.tw\\:grow,.tw\\:grow-\\[1\\]{flex-grow:1}.tw\\:grow-\\[10\\]{flex-grow:10}.tw\\:basis-0{flex-basis:calc(calc(var(--spacing)) * 0)}.tw\\:caption-bottom{caption-side:bottom}.tw\\:border-collapse{border-collapse:collapse}.tw\\:origin-\\(--radix-context-menu-content-transform-origin\\){transform-origin:var(--radix-context-menu-content-transform-origin)}.tw\\:origin-\\(--radix-dropdown-menu-content-transform-origin\\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.tw\\:origin-\\(--radix-menubar-content-transform-origin\\){transform-origin:var(--radix-menubar-content-transform-origin)}.tw\\:origin-\\(--radix-popover-content-transform-origin\\){transform-origin:var(--radix-popover-content-transform-origin)}.tw\\:origin-\\(--radix-select-content-transform-origin\\){transform-origin:var(--radix-select-content-transform-origin)}.tw\\:origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.tw\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:translate-y-0{--tw-translate-y:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rotate-45{rotate:45deg}.tw\\:rotate-180{rotate:180deg}.tw\\:transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.tw\\:animate-none\\!{animation:none!important}.tw\\:animate-pulse{animation:var(--tw-animate-pulse)}.tw\\:animate-spin{animation:var(--tw-animate-spin)}.tw\\:cursor-default{cursor:default}.tw\\:cursor-ew-resize{cursor:ew-resize}.tw\\:cursor-not-allowed{cursor:not-allowed}.tw\\:cursor-pointer{cursor:pointer}.tw\\:cursor-text{cursor:text}.tw\\:touch-none{touch-action:none}.tw\\:resize{resize:both}.tw\\:resize-none{resize:none}.tw\\:scroll-m-20{scroll-margin:calc(calc(var(--spacing)) * 20)}.tw\\:scroll-my-1{scroll-margin-block:calc(calc(var(--spacing)) * 1)}.tw\\:scroll-py-1{scroll-padding-block:calc(calc(var(--spacing)) * 1)}.tw\\:list-inside{list-style-position:inside}.tw\\:list-outside{list-style-position:outside}.tw\\:\\!list-\\[lower-alpha\\]{list-style-type:lower-alpha!important}.tw\\:\\!list-\\[lower-roman\\]{list-style-type:lower-roman!important}.tw\\:\\!list-\\[upper-alpha\\]{list-style-type:upper-alpha!important}.tw\\:\\!list-\\[upper-roman\\]{list-style-type:upper-roman!important}.tw\\:\\!list-decimal{list-style-type:decimal!important}.tw\\:\\!list-disc{list-style-type:disc!important}.tw\\:list-decimal{list-style-type:decimal}.tw\\:list-disc{list-style-type:disc}.tw\\:list-none{list-style-type:none}.tw\\:grid-flow-col{grid-auto-flow:column}.tw\\:auto-rows-min{grid-auto-rows:min-content}.tw\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tw\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.tw\\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.tw\\:grid-cols-\\[25\\%_25\\%_50\\%\\]{grid-template-columns:25% 25% 50%}.tw\\:grid-cols-\\[25\\%_50\\%_25\\%\\]{grid-template-columns:25% 50% 25%}.tw\\:grid-cols-\\[min-content_1fr\\]{grid-template-columns:min-content 1fr}.tw\\:grid-cols-\\[min-content_min-content_1fr\\]{grid-template-columns:min-content min-content 1fr}.tw\\:grid-cols-subgrid{grid-template-columns:subgrid}.tw\\:flex-col{flex-direction:column}.tw\\:flex-col-reverse{flex-direction:column-reverse}.tw\\:flex-row{flex-direction:row}.tw\\:flex-row-reverse{flex-direction:row-reverse}.tw\\:flex-wrap{flex-wrap:wrap}.tw\\:place-content-center{place-content:center}.tw\\:content-center{align-content:center}.tw\\:items-baseline{align-items:baseline}.tw\\:items-center{align-items:center}.tw\\:items-end{align-items:flex-end}.tw\\:items-start{align-items:flex-start}.tw\\:items-stretch{align-items:stretch}.tw\\:justify-between{justify-content:space-between}.tw\\:justify-center{justify-content:center}.tw\\:justify-end{justify-content:flex-end}.tw\\:justify-start{justify-content:flex-start}.tw\\:gap-0{gap:calc(calc(var(--spacing)) * 0)}.tw\\:gap-0\\.5{gap:calc(calc(var(--spacing)) * .5)}.tw\\:gap-1{gap:calc(calc(var(--spacing)) * 1)}.tw\\:gap-1\\.5{gap:calc(calc(var(--spacing)) * 1.5)}.tw\\:gap-2{gap:calc(calc(var(--spacing)) * 2)}.tw\\:gap-2\\.5{gap:calc(calc(var(--spacing)) * 2.5)}.tw\\:gap-3{gap:calc(calc(var(--spacing)) * 3)}.tw\\:gap-4{gap:calc(calc(var(--spacing)) * 4)}.tw\\:gap-5{gap:calc(calc(var(--spacing)) * 5)}.tw\\:gap-6{gap:calc(calc(var(--spacing)) * 6)}.tw\\:gap-16{gap:calc(calc(var(--spacing)) * 16)}.tw\\:gap-\\[--spacing\\(var\\(--gap\\)\\)\\]{gap:calc(calc(var(--spacing)) * var(--gap))}.tw\\:gap-\\[12px\\]{gap:12px}:where(.tw\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 8) * calc(1 - var(--tw-space-y-reverse)))}.tw\\:gap-x-1{column-gap:calc(calc(var(--spacing)) * 1)}.tw\\:gap-x-2{column-gap:calc(calc(var(--spacing)) * 2)}.tw\\:gap-x-3{column-gap:calc(calc(var(--spacing)) * 3)}.tw\\:gap-x-4{column-gap:calc(calc(var(--spacing)) * 4)}:where(.tw\\:-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * -2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * -2) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 3) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 6) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 6) * calc(1 - var(--tw-space-x-reverse)))}.tw\\:gap-y-1{row-gap:calc(calc(var(--spacing)) * 1)}.tw\\:gap-y-2{row-gap:calc(calc(var(--spacing)) * 2)}:where(.tw\\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.tw\\:divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.tw\\:self-start{align-self:flex-start}.tw\\:self-stretch{align-self:stretch}.tw\\:justify-self-end{justify-self:flex-end}.tw\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tw\\:overflow-auto{overflow:auto}.tw\\:overflow-clip{overflow:clip}.tw\\:overflow-hidden{overflow:hidden}.tw\\:overflow-scroll{overflow:scroll}.tw\\:overflow-visible{overflow:visible}.tw\\:overflow-x-auto{overflow-x:auto}.tw\\:overflow-x-hidden{overflow-x:hidden}.tw\\:overflow-y-auto{overflow-y:auto}.tw\\:overflow-y-hidden{overflow-y:hidden}.tw\\:rounded{border-radius:.25rem}.tw\\:rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.tw\\:rounded-4xl{border-radius:calc(var(--radius) * 2.6)}.tw\\:rounded-\\[2px\\]{border-radius:2px}.tw\\:rounded-\\[4px\\]{border-radius:4px}.tw\\:rounded-\\[6px\\]{border-radius:6px}.tw\\:rounded-\\[calc\\(var\\(--radius\\)-3px\\)\\]{border-radius:calc(var(--radius) - 3px)}.tw\\:rounded-\\[min\\(var\\(--tw-radius-md\\)\\,10px\\)\\]{border-radius:min(var(--tw-radius-md), 10px)}.tw\\:rounded-\\[min\\(var\\(--tw-radius-md\\)\\,12px\\)\\]{border-radius:min(var(--tw-radius-md), 12px)}.tw\\:rounded-full{border-radius:3.40282e38px}.tw\\:rounded-lg{border-radius:var(--radius)}.tw\\:rounded-lg\\!{border-radius:var(--radius)!important}.tw\\:rounded-md{border-radius:calc(var(--radius) * .8)}.tw\\:rounded-none{border-radius:0}.tw\\:rounded-sm{border-radius:calc(var(--radius) * .6)}.tw\\:rounded-xl{border-radius:calc(var(--radius) * 1.4)}.tw\\:rounded-xl\\!{border-radius:calc(var(--radius) * 1.4)!important}.tw\\:rounded-s-none{border-start-start-radius:0;border-end-start-radius:0}.tw\\:rounded-e-none{border-start-end-radius:0;border-end-end-radius:0}.tw\\:rounded-t-xl{border-top-left-radius:calc(var(--radius) * 1.4);border-top-right-radius:calc(var(--radius) * 1.4)}.tw\\:rounded-l-lg{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.tw\\:rounded-r-xl{border-top-right-radius:calc(var(--radius) * 1.4);border-bottom-right-radius:calc(var(--radius) * 1.4)}.tw\\:rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.tw\\:border{border-style:var(--tw-border-style);border-width:1px}.tw\\:border-0{border-style:var(--tw-border-style);border-width:0}.tw\\:border-2{border-style:var(--tw-border-style);border-width:2px}.tw\\:border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.tw\\:border-s-0{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.tw\\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.tw\\:border-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.tw\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.tw\\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.tw\\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.tw\\:border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.tw\\:border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.tw\\:border-dashed{--tw-border-style:dashed;border-style:dashed}.tw\\:border-none{--tw-border-style:none;border-style:none}.tw\\:border-solid{--tw-border-style:solid;border-style:solid}.tw\\:border-black{border-color:var(--tw-color-black)}.tw\\:border-blue-400{border-color:var(--tw-color-blue-400)}.tw\\:border-blue-500{border-color:var(--tw-color-blue-500)}.tw\\:border-border,.tw\\:border-border\\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.tw\\:border-border\\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.tw\\:border-gray-300{border-color:var(--tw-color-gray-300)}.tw\\:border-input,.tw\\:border-input\\/30{border-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:border-input\\/30{border-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:border-muted-foreground{border-color:var(--muted-foreground)}.tw\\:border-primary{border-color:var(--primary)}.tw\\:border-red-300{border-color:var(--tw-color-red-300)}.tw\\:border-red-400{border-color:var(--tw-color-red-400)}.tw\\:border-red-500{border-color:var(--tw-color-red-500)}.tw\\:border-red-600{border-color:var(--tw-color-red-600)}.tw\\:border-ring{border-color:var(--ring)}.tw\\:border-sidebar-border{border-color:var(--sidebar-border)}.tw\\:border-slate-300{border-color:var(--tw-color-slate-300)}.tw\\:border-transparent{border-color:#0000}.tw\\:border-yellow-400{border-color:var(--tw-color-yellow-400)}.tw\\:border-yellow-500{border-color:var(--tw-color-yellow-500)}.tw\\:border-s-amber-200{border-inline-start-color:var(--tw-color-amber-200)}.tw\\:border-s-indigo-200{border-inline-start-color:var(--tw-color-indigo-200)}.tw\\:border-s-purple-200{border-inline-start-color:var(--tw-color-purple-200)}.tw\\:border-s-red-200{border-inline-start-color:var(--tw-color-red-200)}.tw\\:\\!bg-destructive\\/50{background-color:var(--destructive)!important}@supports (color:color-mix(in lab, red, red)){.tw\\:\\!bg-destructive\\/50{background-color:color-mix(in oklab, var(--destructive) 50%, transparent)!important}}.tw\\:bg-accent{background-color:var(--accent)}.tw\\:bg-accent-foreground{background-color:var(--accent-foreground)}.tw\\:bg-background,.tw\\:bg-background\\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-background\\/50{background-color:color-mix(in oklab, var(--background) 50%, transparent)}}.tw\\:bg-black\\/10{background-color:var(--tw-color-black)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-black\\/10{background-color:color-mix(in oklab, var(--tw-color-black) 10%, transparent)}}.tw\\:bg-blue-50{background-color:var(--tw-color-blue-50)}.tw\\:bg-blue-100{background-color:var(--tw-color-blue-100)}.tw\\:bg-blue-400{background-color:var(--tw-color-blue-400)}.tw\\:bg-blue-500{background-color:var(--tw-color-blue-500)}.tw\\:bg-border{background-color:var(--border)}.tw\\:bg-card{background-color:var(--card)}.tw\\:bg-card-foreground{background-color:var(--card-foreground)}.tw\\:bg-destructive-foreground{background-color:var(--destructive-foreground)}.tw\\:bg-destructive\\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-destructive\\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.tw\\:bg-foreground{background-color:var(--foreground)}.tw\\:bg-gray-50{background-color:var(--tw-color-gray-50)}.tw\\:bg-gray-100{background-color:var(--tw-color-gray-100)}.tw\\:bg-gray-500{background-color:var(--tw-color-gray-500)}.tw\\:bg-green-50{background-color:var(--tw-color-green-50)}.tw\\:bg-green-100{background-color:var(--tw-color-green-100)}.tw\\:bg-green-500{background-color:var(--tw-color-green-500)}.tw\\:bg-input,.tw\\:bg-input\\/30{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-input\\/30{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:bg-muted{background-color:var(--muted)}.tw\\:bg-muted-foreground{background-color:var(--muted-foreground)}.tw\\:bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-muted\\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:bg-neutral-300{background-color:var(--tw-color-neutral-300)}.tw\\:bg-orange-100{background-color:var(--tw-color-orange-100)}.tw\\:bg-popover{background-color:var(--popover)}.tw\\:bg-popover-foreground{background-color:var(--popover-foreground)}.tw\\:bg-popover\\/70{background-color:var(--popover)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-popover\\/70{background-color:color-mix(in oklab, var(--popover) 70%, transparent)}}.tw\\:bg-primary{background-color:var(--primary)}.tw\\:bg-primary-foreground{background-color:var(--primary-foreground)}.tw\\:bg-purple-50{background-color:var(--tw-color-purple-50)}.tw\\:bg-red-100{background-color:var(--tw-color-red-100)}.tw\\:bg-red-500{background-color:var(--tw-color-red-500)}.tw\\:bg-rose-500,.tw\\:bg-rose-500\\/5{background-color:var(--tw-color-rose-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-rose-500\\/5{background-color:color-mix(in oklab, var(--tw-color-rose-500) 5%, transparent)}}.tw\\:bg-rose-500\\/15{background-color:var(--tw-color-rose-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-rose-500\\/15{background-color:color-mix(in oklab, var(--tw-color-rose-500) 15%, transparent)}}.tw\\:bg-secondary{background-color:var(--secondary)}.tw\\:bg-secondary-foreground{background-color:var(--secondary-foreground)}.tw\\:bg-sidebar{background-color:var(--sidebar)}.tw\\:bg-sidebar-accent{background-color:var(--sidebar-accent)}.tw\\:bg-sidebar-border{background-color:var(--sidebar-border)}.tw\\:bg-sky-500,.tw\\:bg-sky-500\\/5{background-color:var(--tw-color-sky-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-sky-500\\/5{background-color:color-mix(in oklab, var(--tw-color-sky-500) 5%, transparent)}}.tw\\:bg-sky-500\\/15{background-color:var(--tw-color-sky-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-sky-500\\/15{background-color:color-mix(in oklab, var(--tw-color-sky-500) 15%, transparent)}}.tw\\:bg-teal-500,.tw\\:bg-teal-500\\/5{background-color:var(--tw-color-teal-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-teal-500\\/5{background-color:color-mix(in oklab, var(--tw-color-teal-500) 5%, transparent)}}.tw\\:bg-teal-500\\/15{background-color:var(--tw-color-teal-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-teal-500\\/15{background-color:color-mix(in oklab, var(--tw-color-teal-500) 15%, transparent)}}.tw\\:bg-transparent{background-color:#0000}.tw\\:bg-white{background-color:var(--tw-color-white)}.tw\\:bg-yellow-50{background-color:var(--tw-color-yellow-50)}.tw\\:bg-yellow-100{background-color:var(--tw-color-yellow-100)}.tw\\:bg-yellow-500{background-color:var(--tw-color-yellow-500)}.tw\\:bg-zinc-400{background-color:var(--tw-color-zinc-400)}.tw\\:bg-clip-padding{background-clip:padding-box}.tw\\:fill-destructive{fill:var(--destructive)}.tw\\:fill-foreground{fill:var(--foreground)}.tw\\:fill-yellow-400,.tw\\:fill-yellow-400\\/50{fill:var(--tw-color-yellow-400)}@supports (color:color-mix(in lab, red, red)){.tw\\:fill-yellow-400\\/50{fill:color-mix(in oklab, var(--tw-color-yellow-400) 50%, transparent)}}.tw\\:object-cover{object-fit:cover}.tw\\:\\!p-4{padding:calc(calc(var(--spacing)) * 4)!important}.tw\\:p-0{padding:calc(calc(var(--spacing)) * 0)}.tw\\:p-0\\.5{padding:calc(calc(var(--spacing)) * .5)}.tw\\:p-1{padding:calc(calc(var(--spacing)) * 1)}.tw\\:p-2{padding:calc(calc(var(--spacing)) * 2)}.tw\\:p-2\\.5{padding:calc(calc(var(--spacing)) * 2.5)}.tw\\:p-3{padding:calc(calc(var(--spacing)) * 3)}.tw\\:p-4{padding:calc(calc(var(--spacing)) * 4)}.tw\\:p-6{padding:calc(calc(var(--spacing)) * 6)}.tw\\:p-8{padding:calc(calc(var(--spacing)) * 8)}.tw\\:p-\\[1px\\]{padding:1px}.tw\\:p-\\[3px\\]{padding:3px}.tw\\:p-\\[10px\\]{padding:10px}.tw\\:p-\\[16px\\]{padding:16px}.tw\\:px-0{padding-inline:calc(calc(var(--spacing)) * 0)}.tw\\:px-1{padding-inline:calc(calc(var(--spacing)) * 1)}.tw\\:px-1\\.5{padding-inline:calc(calc(var(--spacing)) * 1.5)}.tw\\:px-2{padding-inline:calc(calc(var(--spacing)) * 2)}.tw\\:px-2\\.5{padding-inline:calc(calc(var(--spacing)) * 2.5)}.tw\\:px-3{padding-inline:calc(calc(var(--spacing)) * 3)}.tw\\:px-4{padding-inline:calc(calc(var(--spacing)) * 4)}.tw\\:px-6{padding-inline:calc(calc(var(--spacing)) * 6)}.tw\\:py-0{padding-block:calc(calc(var(--spacing)) * 0)}.tw\\:py-0\\.5{padding-block:calc(calc(var(--spacing)) * .5)}.tw\\:py-1{padding-block:calc(calc(var(--spacing)) * 1)}.tw\\:py-1\\.5{padding-block:calc(calc(var(--spacing)) * 1.5)}.tw\\:py-2{padding-block:calc(calc(var(--spacing)) * 2)}.tw\\:py-3{padding-block:calc(calc(var(--spacing)) * 3)}.tw\\:py-4{padding-block:calc(calc(var(--spacing)) * 4)}.tw\\:py-6{padding-block:calc(calc(var(--spacing)) * 6)}.tw\\:py-8{padding-block:calc(calc(var(--spacing)) * 8)}.tw\\:py-\\[2px\\]{padding-block:2px}.tw\\:ps-1\\.5{padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:ps-2{padding-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:ps-2\\.5{padding-inline-start:calc(calc(var(--spacing)) * 2.5)}.tw\\:ps-4{padding-inline-start:calc(calc(var(--spacing)) * 4)}.tw\\:ps-7{padding-inline-start:calc(calc(var(--spacing)) * 7)}.tw\\:ps-8{padding-inline-start:calc(calc(var(--spacing)) * 8)}.tw\\:ps-9{padding-inline-start:calc(calc(var(--spacing)) * 9)}.tw\\:ps-12{padding-inline-start:calc(calc(var(--spacing)) * 12)}.tw\\:ps-\\[85px\\]{padding-inline-start:85px}.tw\\:pe-1{padding-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:pe-1\\.5{padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:pe-2{padding-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:pe-4{padding-inline-end:calc(calc(var(--spacing)) * 4)}.tw\\:pe-8{padding-inline-end:calc(calc(var(--spacing)) * 8)}.tw\\:pe-9{padding-inline-end:calc(calc(var(--spacing)) * 9)}.tw\\:pe-\\[calc\\(138px\\+1rem\\)\\]{padding-inline-end:calc(138px + 1rem)}.tw\\:pt-1{padding-top:calc(calc(var(--spacing)) * 1)}.tw\\:pt-2{padding-top:calc(calc(var(--spacing)) * 2)}.tw\\:pt-3{padding-top:calc(calc(var(--spacing)) * 3)}.tw\\:pt-6{padding-top:calc(calc(var(--spacing)) * 6)}.tw\\:\\!pr-10{padding-right:calc(calc(var(--spacing)) * 10)!important}.tw\\:pr-0{padding-right:calc(calc(var(--spacing)) * 0)}.tw\\:pr-3{padding-right:calc(calc(var(--spacing)) * 3)}.tw\\:pr-4{padding-right:calc(calc(var(--spacing)) * 4)}.tw\\:pb-0{padding-bottom:calc(calc(var(--spacing)) * 0)}.tw\\:pb-1{padding-bottom:calc(calc(var(--spacing)) * 1)}.tw\\:pb-2{padding-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:pb-3{padding-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:pb-4{padding-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:pb-8{padding-bottom:calc(calc(var(--spacing)) * 8)}.tw\\:pb-16{padding-bottom:calc(calc(var(--spacing)) * 16)}.tw\\:pb-24{padding-bottom:calc(calc(var(--spacing)) * 24)}.tw\\:pl-2{padding-left:calc(calc(var(--spacing)) * 2)}.tw\\:pl-3{padding-left:calc(calc(var(--spacing)) * 3)}.tw\\:pl-4{padding-left:calc(calc(var(--spacing)) * 4)}.tw\\:pl-5{padding-left:calc(calc(var(--spacing)) * 5)}.tw\\:pl-6{padding-left:calc(calc(var(--spacing)) * 6)}.tw\\:pl-8{padding-left:calc(calc(var(--spacing)) * 8)}.tw\\:text-center{text-align:center}.tw\\:text-end{text-align:end}.tw\\:text-left{text-align:left}.tw\\:text-right{text-align:right}.tw\\:text-start{text-align:start}.tw\\:align-middle{vertical-align:middle}.tw\\:font-heading{font-family:var(--font-sans)}.tw\\:font-mono{font-family:var(--tw-font-mono)}.tw\\:font-sans{font-family:IBM Plex Sans Variable,sans-serif}.tw\\:text-2xl{font-size:var(--tw-text-2xl);line-height:var(--tw-leading,var(--tw-text-2xl--line-height))}.tw\\:text-3xl{font-size:var(--tw-text-3xl);line-height:var(--tw-leading,var(--tw-text-3xl--line-height))}.tw\\:text-4xl{font-size:var(--tw-text-4xl);line-height:var(--tw-leading,var(--tw-text-4xl--line-height))}.tw\\:text-base{font-size:var(--tw-text-base);line-height:var(--tw-leading,var(--tw-text-base--line-height))}.tw\\:text-lg{font-size:var(--tw-text-lg);line-height:var(--tw-leading,var(--tw-text-lg--line-height))}.tw\\:text-sm{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:text-xl{font-size:var(--tw-text-xl);line-height:var(--tw-leading,var(--tw-text-xl--line-height))}.tw\\:text-xs{font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}.tw\\:text-\\[0\\.8rem\\]{font-size:.8rem}.tw\\:leading-loose{--tw-leading:var(--tw-leading-loose);line-height:var(--tw-leading-loose)}.tw\\:leading-none{--tw-leading:1;line-height:1}.tw\\:leading-relaxed{--tw-leading:var(--tw-leading-relaxed);line-height:var(--tw-leading-relaxed)}.tw\\:leading-snug{--tw-leading:var(--tw-leading-snug);line-height:var(--tw-leading-snug)}.tw\\:leading-tight{--tw-leading:var(--tw-leading-tight);line-height:var(--tw-leading-tight)}.tw\\:font-bold{--tw-font-weight:var(--tw-font-weight-bold);font-weight:var(--tw-font-weight-bold)}.tw\\:font-extrabold{--tw-font-weight:var(--tw-font-weight-extrabold);font-weight:var(--tw-font-weight-extrabold)}.tw\\:font-medium{--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}.tw\\:font-normal{--tw-font-weight:var(--tw-font-weight-normal);font-weight:var(--tw-font-weight-normal)}.tw\\:font-semibold{--tw-font-weight:var(--tw-font-weight-semibold);font-weight:var(--tw-font-weight-semibold)}.tw\\:tracking-tight{--tw-tracking:var(--tw-tracking-tight);letter-spacing:var(--tw-tracking-tight)}.tw\\:tracking-widest{--tw-tracking:var(--tw-tracking-widest);letter-spacing:var(--tw-tracking-widest)}.tw\\:text-balance{text-wrap:balance}.tw\\:text-nowrap{text-wrap:nowrap}.tw\\:break-words{overflow-wrap:break-word}.tw\\:text-clip{text-overflow:clip}.tw\\:text-ellipsis{text-overflow:ellipsis}.tw\\:whitespace-normal{white-space:normal}.tw\\:whitespace-nowrap{white-space:nowrap}.tw\\:\\[color\\:blue\\]{color:#00f}.tw\\:text-accent{color:var(--accent)}.tw\\:text-accent-foreground{color:var(--accent-foreground)}.tw\\:text-background{color:var(--background)}.tw\\:text-blue-400{color:var(--tw-color-blue-400)}.tw\\:text-blue-500{color:var(--tw-color-blue-500)}.tw\\:text-blue-600{color:var(--tw-color-blue-600)}.tw\\:text-blue-800{color:var(--tw-color-blue-800)}.tw\\:text-card{color:var(--card)}.tw\\:text-card-foreground{color:var(--card-foreground)}.tw\\:text-current{color:currentColor}.tw\\:text-destructive{color:var(--destructive)}.tw\\:text-destructive-foreground{color:var(--destructive-foreground)}.tw\\:text-foreground,.tw\\:text-foreground\\/30{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/30{color:color-mix(in oklab, var(--foreground) 30%, transparent)}}.tw\\:text-foreground\\/50{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/50{color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.tw\\:text-foreground\\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/60{color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.tw\\:text-foreground\\/70{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/70{color:color-mix(in oklab, var(--foreground) 70%, transparent)}}.tw\\:text-gray-300{color:var(--tw-color-gray-300)}.tw\\:text-gray-500{color:var(--tw-color-gray-500)}.tw\\:text-gray-600{color:var(--tw-color-gray-600)}.tw\\:text-gray-700{color:var(--tw-color-gray-700)}.tw\\:text-gray-800{color:var(--tw-color-gray-800)}.tw\\:text-green-600{color:var(--tw-color-green-600)}.tw\\:text-green-700{color:var(--tw-color-green-700)}.tw\\:text-green-800{color:var(--tw-color-green-800)}.tw\\:text-inherit{color:inherit}.tw\\:text-muted{color:var(--muted)}.tw\\:text-muted-foreground,.tw\\:text-muted-foreground\\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-muted-foreground\\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.tw\\:text-orange-800{color:var(--tw-color-orange-800)}.tw\\:text-popover{color:var(--popover)}.tw\\:text-popover-foreground{color:var(--popover-foreground)}.tw\\:text-primary{color:var(--primary)}.tw\\:text-primary-foreground{color:var(--primary-foreground)}.tw\\:text-purple-900{color:var(--tw-color-purple-900)}.tw\\:text-red-500{color:var(--tw-color-red-500)}.tw\\:text-red-600{color:var(--tw-color-red-600)}.tw\\:text-red-700{color:var(--tw-color-red-700)}.tw\\:text-red-800{color:var(--tw-color-red-800)}.tw\\:text-rose-600{color:var(--tw-color-rose-600)}.tw\\:text-secondary{color:var(--secondary)}.tw\\:text-secondary-foreground{color:var(--secondary-foreground)}.tw\\:text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.tw\\:text-sidebar-foreground,.tw\\:text-sidebar-foreground\\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-sidebar-foreground\\/70{color:color-mix(in oklab, var(--sidebar-foreground) 70%, transparent)}}.tw\\:text-sky-600{color:var(--tw-color-sky-600)}.tw\\:text-slate-900{color:var(--tw-color-slate-900)}.tw\\:text-teal-600{color:var(--tw-color-teal-600)}.tw\\:text-white{color:var(--tw-color-white)}.tw\\:text-yellow-400{color:var(--tw-color-yellow-400)}.tw\\:text-yellow-600{color:var(--tw-color-yellow-600)}.tw\\:text-yellow-700{color:var(--tw-color-yellow-700)}.tw\\:capitalize{text-transform:capitalize}.tw\\:uppercase{text-transform:uppercase}.tw\\:italic{font-style:italic}.tw\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tw\\:line-through{text-decoration-line:line-through}.tw\\:underline{text-decoration-line:underline}.tw\\:decoration-destructive{-webkit-text-decoration-color:var(--destructive);-webkit-text-decoration-color:var(--destructive);text-decoration-color:var(--destructive)}.tw\\:underline-offset-4{text-underline-offset:4px}.tw\\:opacity-0{opacity:0}.tw\\:opacity-40{opacity:.4}.tw\\:opacity-50{opacity:.5}.tw\\:opacity-60{opacity:.6}.tw\\:opacity-100{opacity:1}.tw\\:bg-blend-color{background-blend-mode:color}.tw\\:shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-\\[0_0_0_1px_var\\(--sidebar-border\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-none\\!{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.tw\\:shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-background{--tw-ring-color:var(--background)}.tw\\:ring-foreground\\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:ring-foreground\\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.tw\\:ring-primary{--tw-ring-color:var(--primary)}.tw\\:ring-ring\\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.tw\\:ring-ring\\/50{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.tw\\:ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.tw\\:ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.tw\\:ring-offset-background{--tw-ring-offset-color:var(--background)}.tw\\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tw\\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.tw\\:drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--tw-drop-shadow-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.tw\\:transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[left\\,right\\,width\\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[margin\\,opacity\\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[width\\,height\\,padding\\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-none{transition-property:none}.tw\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.tw\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.tw\\:ease-linear{--tw-ease:linear;transition-timing-function:linear}.tw\\:prose-quoteless :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tw\\:prose-quoteless :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.tw\\:outline-none{--tw-outline-style:none;outline-style:none}.tw\\:select-none{-webkit-user-select:none;user-select:none}.tw\\:group-focus-within\\/menu-item\\:opacity-100:is(:where(.tw\\:group\\/menu-item):focus-within *){opacity:1}@media (hover:hover){.tw\\:group-hover\\:visible:is(:where(.tw\\:group):hover *){visibility:visible}.tw\\:group-hover\\:hidden:is(:where(.tw\\:group):hover *){display:none}.tw\\:group-hover\\:opacity-100:is(:where(.tw\\:group):hover *),.tw\\:group-hover\\/menu-item\\:opacity-100:is(:where(.tw\\:group\\/menu-item):hover *){opacity:1}}.tw\\:group-focus\\/context-menu-item\\:text-accent-foreground:is(:where(.tw\\:group\\/context-menu-item):focus *),.tw\\:group-focus\\/dropdown-menu-item\\:text-accent-foreground:is(:where(.tw\\:group\\/dropdown-menu-item):focus *),.tw\\:group-focus\\/menubar-item\\:text-accent-foreground:is(:where(.tw\\:group\\/menubar-item):focus *){color:var(--accent-foreground)}.tw\\:group-has-disabled\\/field\\:opacity-50:is(:where(.tw\\:group\\/field):has(:disabled) *){opacity:.5}.tw\\:group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pe-8:is(:where(.tw\\:group\\/menu-item):has([data-sidebar=menu-action]) *){padding-inline-end:calc(calc(var(--spacing)) * 8)}.tw\\:group-has-data-\\[size\\=lg\\]\\/avatar-group\\:size-10:is(:where(.tw\\:group\\/avatar-group):has([data-size=lg]) *){width:calc(calc(var(--spacing)) * 10);height:calc(calc(var(--spacing)) * 10)}.tw\\:group-has-data-\\[size\\=sm\\]\\/avatar-group\\:size-6:is(:where(.tw\\:group\\/avatar-group):has([data-size=sm]) *){width:calc(calc(var(--spacing)) * 6);height:calc(calc(var(--spacing)) * 6)}.tw\\:group-has-data-\\[slot\\=command-shortcut\\]\\/command-item\\:hidden:is(:where(.tw\\:group\\/command-item):has([data-slot=command-shortcut]) *){display:none}.tw\\:group-has-\\[\\>input\\]\\/input-group\\:pt-2:is(:where(.tw\\:group\\/input-group):has(>input) *){padding-top:calc(calc(var(--spacing)) * 2)}.tw\\:group-has-\\[\\>input\\]\\/input-group\\:pb-2:is(:where(.tw\\:group\\/input-group):has(>input) *){padding-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:group-has-\\[\\>svg\\]\\/alert\\:col-start-2:is(:where(.tw\\:group\\/alert):has(>svg) *){grid-column-start:2}.tw\\:group-data-\\[checked\\=true\\]\\/command-item\\:opacity-100:is(:where(.tw\\:group\\/command-item)[data-checked=true] *){opacity:1}.tw\\:group-data-\\[collapsible\\=icon\\]\\:-mt-8:is(:where(.tw\\:group)[data-collapsible=icon] *){margin-top:calc(calc(var(--spacing)) * -8)}.tw\\:group-data-\\[collapsible\\=icon\\]\\:hidden:is(:where(.tw\\:group)[data-collapsible=icon] *){display:none}.tw\\:group-data-\\[collapsible\\=icon\\]\\:size-8\\!:is(:where(.tw\\:group)[data-collapsible=icon] *){width:calc(calc(var(--spacing)) * 8)!important;height:calc(calc(var(--spacing)) * 8)!important}.tw\\:group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\):is(:where(.tw\\:group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.tw\\:group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\]:is(:where(.tw\\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(calc(var(--spacing)) * 4)))}.tw\\:group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\]:is(:where(.tw\\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(calc(var(--spacing)) * 4)) + 2px)}.tw\\:group-data-\\[collapsible\\=icon\\]\\:overflow-hidden:is(:where(.tw\\:group)[data-collapsible=icon] *){overflow:hidden}.tw\\:group-data-\\[collapsible\\=icon\\]\\:p-0\\!:is(:where(.tw\\:group)[data-collapsible=icon] *){padding:calc(calc(var(--spacing)) * 0)!important}.tw\\:group-data-\\[collapsible\\=icon\\]\\:p-2\\!:is(:where(.tw\\:group)[data-collapsible=icon] *){padding:calc(calc(var(--spacing)) * 2)!important}.tw\\:group-data-\\[collapsible\\=icon\\]\\:opacity-0:is(:where(.tw\\:group)[data-collapsible=icon] *){opacity:0}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:w-0:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){width:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:group-data-\\[disabled\\=true\\]\\:pointer-events-none:is(:where(.tw\\:group)[data-disabled=true] *){pointer-events:none}.tw\\:group-data-\\[disabled\\=true\\]\\:opacity-50:is(:where(.tw\\:group)[data-disabled=true] *),.tw\\:group-data-\\[disabled\\=true\\]\\/input-group\\:opacity-50:is(:where(.tw\\:group\\/input-group)[data-disabled=true] *){opacity:.5}.tw\\:group-data-\\[side\\=primary\\]\\:-right-4:is(:where(.tw\\:group)[data-side=primary] *){right:calc(calc(var(--spacing)) * -4)}.tw\\:group-data-\\[side\\=primary\\]\\:border-e:is(:where(.tw\\:group)[data-side=primary] *){border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.tw\\:group-data-\\[side\\=secondary\\]\\:left-0:is(:where(.tw\\:group)[data-side=secondary] *){left:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-\\[side\\=secondary\\]\\:rotate-180:is(:where(.tw\\:group)[data-side=secondary] *){rotate:180deg}.tw\\:group-data-\\[side\\=secondary\\]\\:border-s:is(:where(.tw\\:group)[data-side=secondary] *){border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.tw\\:group-data-\\[size\\=default\\]\\/avatar\\:size-2\\.5:is(:where(.tw\\:group\\/avatar)[data-size=default] *){width:calc(calc(var(--spacing)) * 2.5);height:calc(calc(var(--spacing)) * 2.5)}.tw\\:group-data-\\[size\\=default\\]\\/switch\\:size-4:is(:where(.tw\\:group\\/switch)[data-size=default] *){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[size\\=lg\\]\\/avatar\\:size-3:is(:where(.tw\\:group\\/avatar)[data-size=lg] *){width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=sm\\]\\/avatar\\:size-2:is(:where(.tw\\:group\\/avatar)[data-size=sm] *){width:calc(calc(var(--spacing)) * 2);height:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[size\\=sm\\]\\/avatar\\:text-xs:is(:where(.tw\\:group\\/avatar)[data-size=sm] *){font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:p-3:is(:where(.tw\\:group\\/card)[data-size=sm] *){padding:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:px-3:is(:where(.tw\\:group\\/card)[data-size=sm] *){padding-inline:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:text-sm:is(:where(.tw\\:group\\/card)[data-size=sm] *){font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:size-3:is(:where(.tw\\:group\\/switch)[data-size=sm] *){width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:rounded-none:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *){border-radius:0}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:px-2:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *){padding-inline:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[variant\\=floating\\]\\:rounded-lg:is(:where(.tw\\:group)[data-variant=floating] *){border-radius:var(--radius)}.tw\\:group-data-\\[variant\\=floating\\]\\:shadow-sm:is(:where(.tw\\:group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:group-data-\\[variant\\=floating\\]\\:ring-1:is(:where(.tw\\:group)[data-variant=floating] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:group-data-\\[variant\\=floating\\]\\:ring-sidebar-border:is(:where(.tw\\:group)[data-variant=floating] *){--tw-ring-color:var(--sidebar-border)}.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:bg-transparent:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *){background-color:#0000}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:mx-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){margin-inline:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:mt-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){margin-top:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:h-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){height:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:w-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){width:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:text-center:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){text-align:center}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:my-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){margin-block:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:me-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){margin-inline-end:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:h-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){height:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:w-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){width:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:my-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){margin-block:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:ms-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){margin-inline-start:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:h-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){height:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:w-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){width:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:mx-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){margin-inline:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:mb-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){margin-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:h-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){height:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:w-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){width:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:text-center:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){text-align:center}.tw\\:group-data-selected\\/command-item\\:text-foreground:is(:where(.tw\\:group\\/command-item):where([data-selected=true]) *){color:var(--foreground)}.tw\\:group-data-horizontal\\/tabs\\:h-8:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *){height:calc(calc(var(--spacing)) * 8)}.tw\\:group-data-vertical\\/tabs\\:h-fit:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){height:fit-content}.tw\\:group-data-vertical\\/tabs\\:w-full:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){width:100%}.tw\\:group-data-vertical\\/tabs\\:flex-col:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.tw\\:group-data-vertical\\/tabs\\:justify-start:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}@media (hover:hover){.tw\\:peer-hover\\/menu-button\\:text-sidebar-accent-foreground:is(:where(.tw\\:peer\\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}.tw\\:peer-focus\\:group-hover\\:text-blue-500:is(:where(.tw\\:peer):focus~*):is(:where(.tw\\:group):hover *){color:var(--tw-color-blue-500)}}.tw\\:peer-disabled\\:cursor-not-allowed:is(:where(.tw\\:peer):disabled~*){cursor:not-allowed}.tw\\:peer-disabled\\:opacity-50:is(:where(.tw\\:peer):disabled~*){opacity:.5}.tw\\:peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5:is(:where(.tw\\:peer\\/menu-button)[data-size=default]~*){top:calc(calc(var(--spacing)) * 1.5)}.tw\\:peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5:is(:where(.tw\\:peer\\/menu-button)[data-size=lg]~*){top:calc(calc(var(--spacing)) * 2.5)}.tw\\:peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1:is(:where(.tw\\:peer\\/menu-button)[data-size=sm]~*){top:calc(calc(var(--spacing)) * 1)}.tw\\:peer-data-active\\/menu-button\\:text-sidebar-accent-foreground:is(:is(:where(.tw\\:peer\\/menu-button):where([data-state=active]),:where(.tw\\:peer\\/menu-button):where([data-active]:not([data-active=false])))~*){color:var(--sidebar-accent-foreground)}.tw\\:file\\:inline-flex::file-selector-button{display:inline-flex}.tw\\:file\\:h-6::file-selector-button{height:calc(calc(var(--spacing)) * 6)}.tw\\:file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.tw\\:file\\:bg-transparent::file-selector-button{background-color:#0000}.tw\\:file\\:text-sm::file-selector-button{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:file\\:font-medium::file-selector-button{--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}.tw\\:file\\:text-foreground::file-selector-button{color:var(--foreground)}.tw\\:placeholder\\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.tw\\:before\\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.tw\\:before\\:absolute:before{content:var(--tw-content);position:absolute}.tw\\:before\\:inset-0:before{content:var(--tw-content);inset:calc(calc(var(--spacing)) * 0)}.tw\\:before\\:top-0\\.5:before{content:var(--tw-content);top:calc(calc(var(--spacing)) * .5)}.tw\\:before\\:left-0:before{content:var(--tw-content);left:calc(calc(var(--spacing)) * 0)}.tw\\:before\\:-z-1:before{content:var(--tw-content);z-index:calc(1 * -1)}.tw\\:before\\:block:before{content:var(--tw-content);display:block}.tw\\:before\\:hidden:before{content:var(--tw-content);display:none}.tw\\:before\\:h-4:before{content:var(--tw-content);height:calc(calc(var(--spacing)) * 4)}.tw\\:before\\:w-4:before{content:var(--tw-content);width:calc(calc(var(--spacing)) * 4)}.tw\\:before\\:cursor-pointer:before{content:var(--tw-content);cursor:pointer}.tw\\:before\\:rounded:before{content:var(--tw-content);border-radius:.25rem}.tw\\:before\\:rounded-\\[inherit\\]:before{content:var(--tw-content);border-radius:inherit}.tw\\:before\\:border:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.tw\\:before\\:border-primary:before{content:var(--tw-content);border-color:var(--primary)}.tw\\:before\\:bg-primary:before{content:var(--tw-content);background-color:var(--primary)}.tw\\:before\\:bg-cover:before{content:var(--tw-content);background-size:cover}.tw\\:before\\:bg-no-repeat:before{content:var(--tw-content);background-repeat:no-repeat}.tw\\:before\\:backdrop-blur-2xl:before{content:var(--tw-content);--tw-backdrop-blur:blur(var(--tw-blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.tw\\:before\\:backdrop-saturate-150:before{content:var(--tw-content);--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.tw\\:before\\:content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.tw\\:after\\:absolute:after{content:var(--tw-content);position:absolute}.tw\\:after\\:-inset-2:after{content:var(--tw-content);inset:calc(calc(var(--spacing)) * -2)}.tw\\:after\\:inset-0:after{content:var(--tw-content);inset:calc(calc(var(--spacing)) * 0)}.tw\\:after\\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(calc(var(--spacing)) * -3)}.tw\\:after\\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(calc(var(--spacing)) * -2)}.tw\\:after\\:inset-y-0:after{content:var(--tw-content);inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:after\\:start-1\\/2:after{content:var(--tw-content);inset-inline-start:50%}.tw\\:after\\:top-\\[6px\\]:after{content:var(--tw-content);top:6px}.tw\\:after\\:right-\\[7px\\]:after{content:var(--tw-content);right:7px}.tw\\:after\\:left-\\[7px\\]:after{content:var(--tw-content);left:7px}.tw\\:after\\:block:after{content:var(--tw-content);display:block}.tw\\:after\\:hidden:after{content:var(--tw-content);display:none}.tw\\:after\\:h-0\\.5:after{content:var(--tw-content);height:calc(calc(var(--spacing)) * .5)}.tw\\:after\\:h-\\[6px\\]:after{content:var(--tw-content);height:6px}.tw\\:after\\:w-1:after{content:var(--tw-content);width:calc(calc(var(--spacing)) * 1)}.tw\\:after\\:w-\\[2px\\]:after{content:var(--tw-content);width:2px}.tw\\:after\\:w-\\[3px\\]:after{content:var(--tw-content);width:3px}.tw\\:after\\:-translate-x-1\\/2:after{content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:after\\:rotate-45:after{content:var(--tw-content);rotate:45deg}.tw\\:after\\:cursor-pointer:after{content:var(--tw-content);cursor:pointer}.tw\\:after\\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.tw\\:after\\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.tw\\:after\\:border-t-0:after{content:var(--tw-content);border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:after\\:border-r-2:after{content:var(--tw-content);border-right-style:var(--tw-border-style);border-right-width:2px}.tw\\:after\\:border-b-2:after{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.tw\\:after\\:border-l-0:after{content:var(--tw-content);border-left-style:var(--tw-border-style);border-left-width:0}.tw\\:after\\:border-solid:after{content:var(--tw-content);--tw-border-style:solid;border-style:solid}.tw\\:after\\:border-border:after{content:var(--tw-content);border-color:var(--border)}.tw\\:after\\:border-white:after{content:var(--tw-content);border-color:var(--tw-color-white)}.tw\\:after\\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.tw\\:after\\:bg-muted:after{content:var(--tw-content);background-color:var(--muted)}.tw\\:after\\:opacity-0:after{content:var(--tw-content);opacity:0}.tw\\:after\\:mix-blend-darken:after{content:var(--tw-content);mix-blend-mode:darken}.tw\\:after\\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:after\\:content-\\[\\"\\"\\]:after{--tw-content:"";content:var(--tw-content)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:after\\:start-full:is(:where(.tw\\:group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);inset-inline-start:100%}.tw\\:group-data-horizontal\\/tabs\\:after\\:inset-x-0:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-horizontal\\/tabs\\:after\\:bottom-\\[-5px\\]:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.tw\\:group-data-horizontal\\/tabs\\:after\\:h-0\\.5:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(calc(var(--spacing)) * .5)}.tw\\:group-data-vertical\\/tabs\\:after\\:inset-y-0:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-vertical\\/tabs\\:after\\:-end-1:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-inline-end:calc(calc(var(--spacing)) * -1)}.tw\\:group-data-vertical\\/tabs\\:after\\:w-0\\.5:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(calc(var(--spacing)) * .5)}.tw\\:first\\:mt-0:first-child{margin-top:calc(calc(var(--spacing)) * 0)}.tw\\:even\\:bg-muted:nth-child(2n){background-color:var(--muted)}@media (hover:hover){.tw\\:hover\\:-mt-4:hover{margin-top:calc(calc(var(--spacing)) * -4)}.tw\\:hover\\:cursor-pointer:hover{cursor:pointer}.tw\\:hover\\:bg-accent:hover,.tw\\:hover\\:bg-accent\\/80:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-accent\\/80:hover{background-color:color-mix(in oklab, var(--accent) 80%, transparent)}}.tw\\:hover\\:bg-blue-600:hover{background-color:var(--tw-color-blue-600)}.tw\\:hover\\:bg-destructive\\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-destructive\\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:hover\\:bg-gray-50:hover{background-color:var(--tw-color-gray-50)}.tw\\:hover\\:bg-input:hover{background-color:var(--input)}.tw\\:hover\\:bg-muted:hover,.tw\\:hover\\:bg-muted\\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-muted\\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:hover\\:bg-muted\\/80:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-muted\\/80:hover{background-color:color-mix(in oklab, var(--muted) 80%, transparent)}}.tw\\:hover\\:bg-primary\\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-primary\\/10:hover{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.tw\\:hover\\:bg-primary\\/70:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-primary\\/70:hover{background-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.tw\\:hover\\:bg-red-500:hover{background-color:var(--tw-color-red-500)}.tw\\:hover\\:bg-secondary:hover,.tw\\:hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.tw\\:hover\\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.tw\\:hover\\:bg-transparent:hover{background-color:#0000}.tw\\:hover\\:text-foreground:hover{color:var(--foreground)}.tw\\:hover\\:text-muted-foreground:hover{color:var(--muted-foreground)}.tw\\:hover\\:text-primary-foreground:hover{color:var(--primary-foreground)}.tw\\:hover\\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.tw\\:hover\\:underline:hover{text-decoration-line:underline}.tw\\:hover\\:opacity-80:hover{opacity:.8}.tw\\:hover\\:opacity-100:hover{opacity:1}.tw\\:hover\\:shadow-\\[0_0_0_1px_var\\(--sidebar-accent\\)\\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-accent));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:hover\\:ring-3:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:hover\\:group-data-\\[collapsible\\=offcanvas\\]\\:bg-sidebar:hover:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.tw\\:hover\\:after\\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.tw\\:focus\\:relative:focus{position:relative}.tw\\:focus\\:z-10:focus{z-index:10}.tw\\:focus\\:bg-accent:focus{background-color:var(--accent)}.tw\\:focus\\:bg-muted:focus{background-color:var(--muted)}.tw\\:focus\\:text-accent-foreground:focus{color:var(--accent-foreground)}.tw\\:focus\\:text-foreground:focus{color:var(--foreground)}.tw\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus\\:ring-ring:focus{--tw-ring-color:var(--ring)}.tw\\:focus\\:ring-offset-1:focus{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.tw\\:focus\\:ring-offset-background:focus{--tw-ring-offset-color:var(--background)}.tw\\:focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tw\\:focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}:is(.tw\\:focus\\:\\*\\*\\:text-accent-foreground:focus *),:is(.tw\\:not-data-\\[variant\\=destructive\\]\\:focus\\:\\*\\*\\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.tw\\:focus-visible\\:relative:focus-visible{position:relative}.tw\\:focus-visible\\:z-10:focus-visible{z-index:10}.tw\\:focus-visible\\:border-destructive\\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:focus-visible\\:border-destructive\\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.tw\\:focus-visible\\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-3:focus-visible,.tw\\:focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-\\[color\\:hsl\\(240\\,5\\%\\,64\\.9\\%\\)\\]:focus-visible{--tw-ring-color:#a1a1aa}.tw\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:focus-visible\\:ring-ring:focus-visible,.tw\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.tw\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.tw\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.tw\\:focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tw\\:focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.tw\\:focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.tw\\:focus-visible\\:outline-ring:focus-visible{outline-color:var(--ring)}:is(.tw\\:\\*\\:focus-visible\\:relative>*):focus-visible{position:relative}:is(.tw\\:\\*\\:focus-visible\\:z-10>*):focus-visible{z-index:10}.tw\\:active\\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.tw\\:active\\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.tw\\:active\\:ring-3:active{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:active\\:not-aria-\\[haspopup\\]\\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.tw\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.tw\\:disabled\\:bg-input\\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:disabled\\:bg-input\\/50:disabled{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.tw\\:disabled\\:bg-transparent:disabled{background-color:#0000}.tw\\:disabled\\:opacity-50:disabled{opacity:.5}:where([data-side=primary]) .tw\\:in-data-\\[side\\=primary\\]\\:cursor-w-resize{cursor:w-resize}:where([data-side=secondary]) .tw\\:in-data-\\[side\\=secondary\\]\\:cursor-e-resize{cursor:e-resize}:where([data-slot=button-group]) .tw\\:in-data-\\[slot\\=button-group\\]\\:rounded-lg{border-radius:var(--radius)}:where([data-slot=combobox-content]) .tw\\:in-data-\\[slot\\=combobox-content\\]\\:focus-within\\:border-inherit:focus-within{border-color:inherit}:where([data-slot=combobox-content]) .tw\\:in-data-\\[slot\\=combobox-content\\]\\:focus-within\\:ring-0:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:where([data-slot=dialog-content]) .tw\\:in-data-\\[slot\\=dialog-content\\]\\:rounded-lg\\!{border-radius:var(--radius)!important}:where([data-slot=tooltip-content]) .tw\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/20{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){:where([data-slot=tooltip-content]) .tw\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/20{background-color:color-mix(in oklab, var(--background) 20%, transparent)}}:where([data-slot=tooltip-content]) .tw\\:in-data-\\[slot\\=tooltip-content\\]\\:text-background{color:var(--background)}.tw\\:has-disabled\\:bg-input\\/50:has(:disabled){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-disabled\\:bg-input\\/50:has(:disabled){background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.tw\\:has-disabled\\:opacity-50:has(:disabled){opacity:.5}.tw\\:has-aria-expanded\\:bg-muted\\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-aria-expanded\\:bg-muted\\/50:has([aria-expanded=true]){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:has-data-\\[icon\\=inline-end\\]\\:pe-1:has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:has-data-\\[icon\\=inline-end\\]\\:pe-1\\.5:has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[icon\\=inline-end\\]\\:pe-2:has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:has-data-\\[icon\\=inline-end\\]\\:pe-1\\.5:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[icon\\=inline-start\\]\\:ps-1:has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 1)}.tw\\:has-data-\\[icon\\=inline-start\\]\\:ps-1\\.5:has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[icon\\=inline-start\\]\\:ps-2:has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:has-data-\\[icon\\=inline-start\\]\\:ps-1\\.5:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[slot\\=alert-action\\]\\:relative:has([data-slot=alert-action]){position:relative}.tw\\:has-data-\\[slot\\=alert-action\\]\\:pe-18:has([data-slot=alert-action]){padding-inline-end:calc(calc(var(--spacing)) * 18)}.tw\\:has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.tw\\:has-data-\\[slot\\=card-description\\]\\:grid-rows-\\[auto_auto\\]:has([data-slot=card-description]){grid-template-rows:auto auto}.tw\\:has-data-\\[slot\\=card-footer\\]\\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(calc(var(--spacing)) * 0)}.tw\\:has-data-\\[slot\\=kbd\\]\\:pe-1\\.5:has([data-slot=kbd]){padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[variant\\=inset\\]\\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:var(--ring)}.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-3:has([data-slot=input-group-control]:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:border-destructive:has([data-slot][aria-invalid=true]){border-color:var(--destructive)}.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-3:has([data-slot][aria-invalid=true]){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:h-auto:has(>[data-align=block-end]){height:auto}.tw\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:flex-col:has(>[data-align=block-end]){flex-direction:column}.tw\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:h-auto:has(>[data-align=block-start]){height:auto}.tw\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:flex-col:has(>[data-align=block-start]){flex-direction:column}.tw\\:has-\\[\\>\\[data-slot\\=button-group\\]\\]\\:gap-2:has(>[data-slot=button-group]){gap:calc(calc(var(--spacing)) * 2)}.tw\\:has-\\[\\>button\\]\\:ms-\\[-0\\.3rem\\]:has(>button){margin-inline-start:-.3rem}.tw\\:has-\\[\\>button\\]\\:me-\\[-0\\.3rem\\]:has(>button){margin-inline-end:-.3rem}.tw\\:has-\\[\\>img\\]\\:grid-cols-\\[auto_1fr\\]:has(>img){grid-template-columns:auto 1fr}.tw\\:has-\\[\\>img\\]\\:gap-x-2:has(>img){column-gap:calc(calc(var(--spacing)) * 2)}.tw\\:has-\\[\\>img\\:first-child\\]\\:pt-0:has(>img:first-child){padding-top:calc(calc(var(--spacing)) * 0)}.tw\\:has-\\[\\>kbd\\]\\:ms-\\[-0\\.15rem\\]:has(>kbd){margin-inline-start:-.15rem}.tw\\:has-\\[\\>kbd\\]\\:me-\\[-0\\.15rem\\]:has(>kbd){margin-inline-end:-.15rem}.tw\\:has-\\[\\>svg\\]\\:grid-cols-\\[auto_1fr\\]:has(>svg){grid-template-columns:auto 1fr}.tw\\:has-\\[\\>svg\\]\\:gap-x-2:has(>svg){column-gap:calc(calc(var(--spacing)) * 2)}.tw\\:has-\\[\\>svg\\]\\:p-0:has(>svg){padding:calc(calc(var(--spacing)) * 0)}.tw\\:has-\\[\\>textarea\\]\\:h-auto:has(>textarea){height:auto}.tw\\:aria-disabled\\:pointer-events-none[aria-disabled=true]{pointer-events:none}.tw\\:aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}.tw\\:aria-expanded\\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.tw\\:aria-expanded\\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.tw\\:aria-expanded\\:text-foreground[aria-expanded=true]{color:var(--foreground)}.tw\\:aria-expanded\\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.tw\\:aria-expanded\\:opacity-100[aria-expanded=true]{opacity:1}.tw\\:aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.tw\\:aria-invalid\\:ring-0[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:aria-invalid\\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:aria-invalid\\:aria-checked\\:border-primary[aria-invalid=true][aria-checked=true]{border-color:var(--primary)}.tw\\:aria-pressed\\:bg-muted[aria-pressed=true]{background-color:var(--muted)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:h-px[aria-orientation=horizontal]{height:1px}.tw\\:aria-\\[orientation\\=horizontal\\]\\:w-full[aria-orientation=horizontal]{width:100%}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:start-0[aria-orientation=horizontal]:after{content:var(--tw-content);inset-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:h-1[aria-orientation=horizontal]:after{content:var(--tw-content);height:calc(calc(var(--spacing)) * 1)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:w-full[aria-orientation=horizontal]:after{content:var(--tw-content);width:100%}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:translate-x-0[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:-translate-y-1\\/2[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:aria-\\[orientation\\=vertical\\]\\:flex-col[aria-orientation=vertical]{flex-direction:column}.tw\\:data-inset\\:ps-7[data-inset]{padding-inline-start:calc(calc(var(--spacing)) * 7)}.tw\\:data-placeholder\\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.tw\\:data-\\[align-trigger\\=false\\]\\:min-w-36[data-align-trigger=false]{min-width:calc(calc(var(--spacing)) * 36)}.tw\\:data-\\[align-trigger\\=true\\]\\:min-w-\\(--radix-select-trigger-width\\)[data-align-trigger=true]{min-width:var(--radix-select-trigger-width)}.tw\\:data-\\[align-trigger\\=true\\]\\:animate-none[data-align-trigger=true]{animation:none}.tw\\:data-\\[disabled\\=true\\]\\:pointer-events-none[data-disabled=true]{pointer-events:none}.tw\\:data-\\[disabled\\=true\\]\\:opacity-50[data-disabled=true]{opacity:.5}.tw\\:data-\\[position\\=popper\\]\\:h-\\(--radix-select-trigger-height\\)[data-position=popper]{height:var(--radix-select-trigger-height)}.tw\\:data-\\[position\\=popper\\]\\:w-full[data-position=popper]{width:100%}.tw\\:data-\\[position\\=popper\\]\\:min-w-\\(--radix-select-trigger-width\\)[data-position=popper]{min-width:var(--radix-select-trigger-width)}.tw\\:data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(calc(var(--spacing)) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.tw\\:data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(calc(var(--spacing)) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.tw\\:data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:calc(calc(var(--spacing)) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.tw\\:data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(calc(var(--spacing)) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.tw\\:data-\\[size\\=default\\]\\:h-8[data-size=default]{height:calc(calc(var(--spacing)) * 8)}.tw\\:data-\\[size\\=default\\]\\:h-\\[18\\.4px\\][data-size=default]{height:18.4px}.tw\\:data-\\[size\\=default\\]\\:w-\\[32px\\][data-size=default]{width:32px}.tw\\:data-\\[size\\=lg\\]\\:size-10[data-size=lg]{width:calc(calc(var(--spacing)) * 10);height:calc(calc(var(--spacing)) * 10)}.tw\\:data-\\[size\\=md\\]\\:text-sm[data-size=md]{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:data-\\[size\\=sm\\]\\:size-6[data-size=sm]{width:calc(calc(var(--spacing)) * 6);height:calc(calc(var(--spacing)) * 6)}.tw\\:data-\\[size\\=sm\\]\\:h-7[data-size=sm]{height:calc(calc(var(--spacing)) * 7)}.tw\\:data-\\[size\\=sm\\]\\:h-\\[14px\\][data-size=sm]{height:14px}.tw\\:data-\\[size\\=sm\\]\\:w-\\[24px\\][data-size=sm]{width:24px}.tw\\:data-\\[size\\=sm\\]\\:gap-3[data-size=sm]{gap:calc(calc(var(--spacing)) * 3)}.tw\\:data-\\[size\\=sm\\]\\:rounded-\\[min\\(var\\(--tw-radius-md\\)\\,10px\\)\\][data-size=sm]{border-radius:min(var(--tw-radius-md), 10px)}.tw\\:data-\\[size\\=sm\\]\\:py-3[data-size=sm]{padding-block:calc(calc(var(--spacing)) * 3)}.tw\\:data-\\[size\\=sm\\]\\:text-xs[data-size=sm]{font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}.tw\\:data-\\[size\\=sm\\]\\:has-data-\\[slot\\=card-footer\\]\\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(calc(var(--spacing)) * 0)}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-item]:focus{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-item]:focus{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:data-highlighted\\:bg-foreground\\/10 *)[data-slot$=-item][data-highlighted]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:data-highlighted\\:bg-foreground\\/10 *)[data-slot$=-item][data-highlighted]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-separator\\]\\:bg-foreground\\/5 *)[data-slot$=-separator]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-separator\\]\\:bg-foreground\\/5 *)[data-slot$=-separator]{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-trigger]:focus{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-trigger]:focus{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:aria-expanded\\:bg-foreground\\/10\\! *)[data-slot$=-trigger][aria-expanded=true]{background-color:var(--foreground)!important}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:aria-expanded\\:bg-foreground\\/10\\! *)[data-slot$=-trigger][aria-expanded=true]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)!important}}:is(.tw\\:\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}:is(.tw\\:\\*\\:data-\\[slot\\=avatar\\]\\:ring-2>*)[data-slot=avatar]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.tw\\:\\*\\:data-\\[slot\\=avatar\\]\\:ring-background>*)[data-slot=avatar]{--tw-ring-color:var(--background)}:is(.tw\\:\\*\\:data-\\[slot\\=input-group-addon\\]\\:ps-2\\!>*)[data-slot=input-group-addon]{padding-inline-start:calc(calc(var(--spacing)) * 2)!important}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:relative *)[data-slot=kbd]{position:relative}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:isolate *)[data-slot=kbd]{isolation:isolate}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:z-50 *)[data-slot=kbd]{z-index:50}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:rounded-sm *)[data-slot=kbd]{border-radius:calc(var(--radius) * .6)}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:flex>*)[data-slot=select-value]{display:flex}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:flex-1>*)[data-slot=select-value]{flex:1}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:gap-1\\.5>*)[data-slot=select-value]{gap:calc(calc(var(--spacing)) * 1.5)}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:text-start>*)[data-slot=select-value]{text-align:start}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:first\\:rounded-s-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:first-child{border-start-start-radius:var(--radius);border-end-start-radius:var(--radius)}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:first\\:rounded-t-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:last\\:rounded-e-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:last-child{border-start-end-radius:var(--radius);border-end-end-radius:var(--radius)}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:last\\:rounded-b-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:last-child{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.tw\\:data-\\[state\\=active\\]\\:bg-background[data-state=active]{background-color:var(--background)}.tw\\:data-\\[state\\=active\\]\\:text-foreground[data-state=active]{color:var(--foreground)}.tw\\:data-\\[state\\=active\\]\\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:data-\\[state\\=closed\\]\\:overflow-hidden[data-state=closed]{overflow:hidden}.tw\\:data-\\[state\\=delayed-open\\]\\:animate-in[data-state=delayed-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tw\\:data-\\[state\\=delayed-open\\]\\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.tw\\:data-\\[state\\=delayed-open\\]\\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.tw\\:data-\\[state\\=on\\]\\:bg-muted[data-state=on]{background-color:var(--muted)}.tw\\:data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.tw\\:data-\\[state\\=open\\]\\:bg-muted[data-state=open]{background-color:var(--muted)}.tw\\:data-\\[state\\=open\\]\\:text-foreground[data-state=open]{color:var(--foreground)}.tw\\:data-\\[state\\=selected\\]\\:bg-muted[data-state=selected]{background-color:var(--muted)}.tw\\:data-\\[variant\\=destructive\\]\\:text-destructive[data-variant=destructive]{color:var(--destructive)}:is(:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:\\*\\*\\:text-accent-foreground\\! *)[data-variant=destructive] *),:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:text-accent-foreground\\! *)[data-variant=destructive]{color:var(--accent-foreground)!important}.tw\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.tw\\:data-\\[variant\\=destructive\\]\\:focus\\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-foreground\\/10\\! *)[data-variant=destructive]:focus{background-color:var(--foreground)!important}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-foreground\\/10\\! *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)!important}}.tw\\:data-\\[variant\\=line\\]\\:rounded-none[data-variant=line]{border-radius:0}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:border-s-0:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:border-t-0:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]{border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:first\\:border-s:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]:first-child{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:first\\:border-t:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(calc(var(--spacing)) * 24)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:max-h-\\[80vh\\][data-vaul-drawer-direction=bottom]{max-height:80vh}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:rounded-t-xl[data-vaul-drawer-direction=bottom]{border-top-left-radius:calc(var(--radius) * 1.4);border-top-right-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:left-0[data-vaul-drawer-direction=left]{left:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:w-3\\/4[data-vaul-drawer-direction=left]{width:75%}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:flex-row[data-vaul-drawer-direction=left]{flex-direction:row}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:rounded-r-xl[data-vaul-drawer-direction=left]{border-top-right-radius:calc(var(--radius) * 1.4);border-bottom-right-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=left\\/right\\]\\:flex-row[data-vaul-drawer-direction=left\\/right]{flex-direction:row}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:right-0[data-vaul-drawer-direction=right]{right:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:w-3\\/4[data-vaul-drawer-direction=right]{width:75%}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:flex-row[data-vaul-drawer-direction=right]{flex-direction:row}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:rounded-l-xl[data-vaul-drawer-direction=right]{border-top-left-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:top-0[data-vaul-drawer-direction=top]{top:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(calc(var(--spacing)) * 24)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:max-h-\\[80vh\\][data-vaul-drawer-direction=top]{max-height:80vh}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:rounded-b-xl[data-vaul-drawer-direction=top]{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.tw\\:supports-backdrop-filter\\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--tw-blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@media (min-width:40rem){.tw\\:sm\\:flex{display:flex}.tw\\:sm\\:max-w-sm{max-width:var(--tw-container-sm)}.tw\\:sm\\:flex-row{flex-direction:row}.tw\\:sm\\:justify-end{justify-content:flex-end}.tw\\:sm\\:p-8{padding:calc(calc(var(--spacing)) * 8)}.tw\\:sm\\:text-start{text-align:start}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:sm\\:max-w-sm[data-vaul-drawer-direction=left],.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:sm\\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--tw-container-sm)}}@media (min-width:48rem){.tw\\:md\\:block{display:block}.tw\\:md\\:flex{display:flex}.tw\\:md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\\:md\\:gap-0\\.5{gap:calc(calc(var(--spacing)) * .5)}.tw\\:md\\:text-start{text-align:start}.tw\\:md\\:text-sm{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:md\\:text-pretty{text-wrap:pretty}.tw\\:md\\:opacity-0{opacity:0}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:m-2:is(:where(.tw\\:peer)[data-variant=inset]~*){margin:calc(calc(var(--spacing)) * 2)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:ms-0:is(:where(.tw\\:peer)[data-variant=inset]~*){margin-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl:is(:where(.tw\\:peer)[data-variant=inset]~*){border-radius:calc(var(--radius) * 1.4)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm:is(:where(.tw\\:peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ms-2:is(:where(.tw\\:peer)[data-variant=inset]~*):is(:where(.tw\\:peer)[data-state=collapsed]~*){margin-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:md\\:after\\:hidden:after{content:var(--tw-content);display:none}}@media (min-width:64rem){.tw\\:lg\\:flex{display:flex}.tw\\:lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}:where(.tw\\:lg\\:space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 8) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 8) * calc(1 - var(--tw-space-x-reverse)))}.tw\\:lg\\:text-5xl{font-size:var(--tw-text-5xl);line-height:var(--tw-leading,var(--tw-text-5xl--line-height))}}@media (min-width:48rem){@media (min-width:64rem){.tw\\:md\\:lg\\:hidden{display:none}}}@container (min-width:24rem){.tw\\:\\@sm\\:basis-auto{flex-basis:auto}}.tw\\:ltr\\:left-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){left:calc(calc(var(--spacing)) * 2)}.tw\\:ltr\\:-translate-x-1\\/2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:right-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(calc(var(--spacing)) * 2)}.tw\\:rtl\\:flex:where(:dir(rtl),[dir=rtl],[dir=rtl] *){display:flex}.tw\\:rtl\\:-translate-x-px:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:translate-x-1\\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:translate-x-px:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:after\\:translate-x-1\\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *):after{content:var(--tw-content);--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}:where([data-side=primary]) .tw\\:rtl\\:in-data-\\[side\\=primary\\]\\:cursor-e-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:e-resize}:where([data-side=secondary]) .tw\\:rtl\\:in-data-\\[side\\=secondary\\]\\:cursor-w-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:w-resize}.tw\\:rtl\\:aria-\\[orientation\\=horizontal\\]\\:after\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:data-\\[side\\=left\\]\\:translate-x-1:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[data-side=left]{--tw-translate-x:calc(calc(var(--spacing)) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:data-\\[side\\=right\\]\\:-translate-x-1:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[data-side=right]{--tw-translate-x:calc(calc(var(--spacing)) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:dark\\:border-input:is(.dark *){border-color:var(--input)}.tw\\:dark\\:bg-destructive\\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:bg-destructive\\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:dark\\:bg-transparent:is(.dark *){background-color:#0000}.tw\\:dark\\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.tw\\:dark\\:text-rose-400:is(.dark *){color:var(--tw-color-rose-400)}.tw\\:dark\\:text-sky-400:is(.dark *){color:var(--tw-color-sky-400)}.tw\\:dark\\:text-teal-400:is(.dark *){color:var(--tw-color-teal-400)}.tw\\:dark\\:after\\:mix-blend-lighten:is(.dark *):after{content:var(--tw-content);mix-blend-mode:lighten}@media (hover:hover){.tw\\:dark\\:hover\\:bg-blue-500:is(.dark *):hover{background-color:var(--tw-color-blue-500)}.tw\\:dark\\:hover\\:bg-destructive\\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:hover\\:bg-destructive\\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.tw\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.tw\\:dark\\:hover\\:bg-muted\\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:hover\\:bg-muted\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:dark\\:hover\\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.tw\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:dark\\:disabled\\:bg-input\\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:disabled\\:bg-input\\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.tw\\:dark\\:disabled\\:bg-transparent:is(.dark *):disabled{background-color:#0000}:where([data-slot=tooltip-content]) .tw\\:dark\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/10:is(.dark *){background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){:where([data-slot=tooltip-content]) .tw\\:dark\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/10:is(.dark *){background-color:color-mix(in oklab, var(--background) 10%, transparent)}}.tw\\:dark\\:has-disabled\\:bg-input\\/80:is(.dark *):has(:disabled){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:has-disabled\\:bg-input\\/80:is(.dark *):has(:disabled){background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.tw\\:dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40:is(.dark *):has([data-slot][aria-invalid=true]){--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40:is(.dark *):has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:dark\\:aria-invalid\\:border-destructive\\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:aria-invalid\\:border-destructive\\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.tw\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:data-open\\:animate-in:where([data-state=open]),.tw\\:data-open\\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tw\\:data-open\\:bg-accent:where([data-state=open]),.tw\\:data-open\\:bg-accent:where([data-open]:not([data-open=false])){background-color:var(--accent)}.tw\\:data-open\\:text-accent-foreground:where([data-state=open]),.tw\\:data-open\\:text-accent-foreground:where([data-open]:not([data-open=false])){color:var(--accent-foreground)}.tw\\:data-open\\:fade-in-0:where([data-state=open]),.tw\\:data-open\\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.tw\\:data-open\\:zoom-in-95:where([data-state=open]),.tw\\:data-open\\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}@media (hover:hover){:is(.tw\\:data-open\\:hover\\:bg-sidebar-accent:where([data-state=open]),.tw\\:data-open\\:hover\\:bg-sidebar-accent:where([data-open]:not([data-open=false]))):hover{background-color:var(--sidebar-accent)}:is(.tw\\:data-open\\:hover\\:text-sidebar-accent-foreground:where([data-state=open]),.tw\\:data-open\\:hover\\:text-sidebar-accent-foreground:where([data-open]:not([data-open=false]))):hover{color:var(--sidebar-accent-foreground)}}.tw\\:data-closed\\:animate-out:where([data-state=closed]),.tw\\:data-closed\\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tw\\:data-closed\\:fade-out-0:where([data-state=closed]),.tw\\:data-closed\\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.tw\\:data-closed\\:zoom-out-95:where([data-state=closed]),.tw\\:data-closed\\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.tw\\:data-checked\\:border-primary:where([data-state=checked]),.tw\\:data-checked\\:border-primary:where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.tw\\:data-checked\\:bg-primary:where([data-state=checked]),.tw\\:data-checked\\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.tw\\:data-checked\\:text-primary-foreground:where([data-state=checked]),.tw\\:data-checked\\:text-primary-foreground:where([data-checked]:not([data-checked=false])){color:var(--primary-foreground)}.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=checked]),.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-checked]:not([data-checked=false])),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=checked]),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-checked]:not([data-checked=false])){--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=checked]),.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-checked]:not([data-checked=false])),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=checked]),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-checked]:not([data-checked=false])){--tw-translate-x:calc(calc(100% - 2px) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:dark\\:data-checked\\:bg-primary:is(.dark *):where([data-state=checked]),.tw\\:dark\\:data-checked\\:bg-primary:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.tw\\:dark\\:data-checked\\:bg-primary-foreground:is(.dark *):where([data-state=checked]),.tw\\:dark\\:data-checked\\:bg-primary-foreground:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary-foreground)}.tw\\:data-unchecked\\:bg-input:where([data-state=unchecked]),.tw\\:data-unchecked\\:bg-input:where([data-unchecked]:not([data-unchecked=false])){background-color:var(--input)}.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=unchecked]),.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-unchecked]:not([data-unchecked=false])),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=unchecked]),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-unchecked]:not([data-unchecked=false])),.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=unchecked]),.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-unchecked]:not([data-unchecked=false])),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=unchecked]),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-unchecked]:not([data-unchecked=false])){--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:dark\\:data-unchecked\\:bg-foreground:is(.dark *):where([data-state=unchecked]),.tw\\:dark\\:data-unchecked\\:bg-foreground:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--foreground)}.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-state=unchecked]),.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-state=unchecked]),.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.tw\\:data-selected\\:bg-muted:where([data-selected=true]){background-color:var(--muted)}.tw\\:data-selected\\:text-foreground:where([data-selected=true]){color:var(--foreground)}.tw\\:data-disabled\\:pointer-events-none:where([data-disabled=true]),.tw\\:data-disabled\\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.tw\\:data-disabled\\:cursor-not-allowed:where([data-disabled=true]),.tw\\:data-disabled\\:cursor-not-allowed:where([data-disabled]:not([data-disabled=false])){cursor:not-allowed}.tw\\:data-disabled\\:opacity-50:where([data-disabled=true]),.tw\\:data-disabled\\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.tw\\:data-active\\:bg-background:where([data-state=active]),.tw\\:data-active\\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.tw\\:data-active\\:bg-sidebar-accent:where([data-state=active]),.tw\\:data-active\\:bg-sidebar-accent:where([data-active]:not([data-active=false])){background-color:var(--sidebar-accent)}.tw\\:data-active\\:font-medium:where([data-state=active]),.tw\\:data-active\\:font-medium:where([data-active]:not([data-active=false])){--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}.tw\\:data-active\\:text-foreground:where([data-state=active]),.tw\\:data-active\\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.tw\\:data-active\\:text-sidebar-accent-foreground:where([data-state=active]),.tw\\:data-active\\:text-sidebar-accent-foreground:where([data-active]:not([data-active=false])){color:var(--sidebar-accent-foreground)}.tw\\:group-data-\\[variant\\=default\\]\\/tabs-list\\:data-active\\:shadow-sm:is(:where(.tw\\:group\\/tabs-list)[data-variant=default] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=default\\]\\/tabs-list\\:data-active\\:shadow-sm:is(:where(.tw\\:group\\/tabs-list)[data-variant=default] *):where([data-active]:not([data-active=false])){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:shadow-none:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:shadow-none:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:after\\:opacity-100:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:after\\:opacity-100:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}.tw\\:dark\\:data-active\\:border-input:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:border-input:is(.dark *):where([data-active]:not([data-active=false])){border-color:var(--input)}.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:dark\\:data-active\\:text-foreground:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:text-foreground:is(.dark *):where([data-active]:not([data-active=false])){color:var(--foreground)}.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:border-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:border-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.tw\\:data-horizontal\\:mx-px:where([data-orientation=horizontal]){margin-inline:1px}.tw\\:data-horizontal\\:h-1:where([data-orientation=horizontal]){height:calc(calc(var(--spacing)) * 1)}.tw\\:data-horizontal\\:h-full:where([data-orientation=horizontal]){height:100%}.tw\\:data-horizontal\\:h-px:where([data-orientation=horizontal]){height:1px}.tw\\:data-horizontal\\:w-auto:where([data-orientation=horizontal]){width:auto}.tw\\:data-horizontal\\:w-full:where([data-orientation=horizontal]){width:100%}.tw\\:data-horizontal\\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.tw\\:data-vertical\\:my-px:where([data-orientation=vertical]){margin-block:1px}.tw\\:data-vertical\\:h-auto:where([data-orientation=vertical]){height:auto}.tw\\:data-vertical\\:h-full:where([data-orientation=vertical]){height:100%}.tw\\:data-vertical\\:min-h-40:where([data-orientation=vertical]){min-height:calc(calc(var(--spacing)) * 40)}.tw\\:data-vertical\\:w-1:where([data-orientation=vertical]){width:calc(calc(var(--spacing)) * 1)}.tw\\:data-vertical\\:w-auto:where([data-orientation=vertical]){width:auto}.tw\\:data-vertical\\:w-full:where([data-orientation=vertical]){width:100%}.tw\\:data-vertical\\:w-px:where([data-orientation=vertical]){width:1px}.tw\\:data-vertical\\:flex-col:where([data-orientation=vertical]){flex-direction:column}.tw\\:data-vertical\\:items-stretch:where([data-orientation=vertical]){align-items:stretch}.tw\\:data-vertical\\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:mt-0 [data-lexical-editor=true]>blockquote{margin-top:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:border-s-0 [data-lexical-editor=true]>blockquote{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:ps-0 [data-lexical-editor=true]>blockquote{padding-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:font-normal [data-lexical-editor=true]>blockquote{--tw-font-weight:var(--tw-font-weight-normal);font-weight:var(--tw-font-weight-normal)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:text-foreground [data-lexical-editor=true]>blockquote{color:var(--foreground)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:not-italic [data-lexical-editor=true]>blockquote{font-style:normal}.tw\\:\\[\\&_a\\]\\:underline a{text-decoration-line:underline}.tw\\:\\[\\&_a\\]\\:underline-offset-3 a{text-underline-offset:3px}@media (hover:hover){.tw\\:\\[\\&_a\\]\\:hover\\:text-foreground a:hover{color:var(--foreground)}}.tw\\:\\[\\&_p\\:not\\(\\:last-child\\)\\]\\:mb-4 p:not(:last-child){margin-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.tw\\:\\[\\&_svg\\]\\:size-4 svg{width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.tw\\:\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3 svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3\\.5 svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&_tr\\]\\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.tw\\:\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.tw\\:\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pe-0:has([role=checkbox]){padding-inline-end:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\.border-b\\]\\:pb-2.border-b{padding-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:\\[\\.border-b\\]\\:pb-4.border-b{padding-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:\\[\\.border-b\\]\\:pb-3:is(:where(.tw\\:group\\/card)[data-size=sm] *).border-b{padding-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:\\[\\.border-t\\]\\:pt-2.border-t{padding-top:calc(calc(var(--spacing)) * 2)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:px-2 *)[cmdk-group-heading]{padding-inline:calc(calc(var(--spacing)) * 2)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:py-1\\.5 *)[cmdk-group-heading]{padding-block:calc(calc(var(--spacing)) * 1.5)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:text-xs *)[cmdk-group-heading]{font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:font-medium *)[cmdk-group-heading]{--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:text-muted-foreground *)[cmdk-group-heading]{color:var(--muted-foreground)}:is(.tw\\:\\*\\:\\[a\\]\\:underline>*):is(a){text-decoration-line:underline}:is(.tw\\:\\*\\:\\[a\\]\\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){.tw\\:\\[a\\]\\:hover\\:bg-destructive\\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:\\[a\\]\\:hover\\:bg-destructive\\/20:is(a):hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:\\[a\\]\\:hover\\:bg-muted:is(a):hover{background-color:var(--muted)}.tw\\:\\[a\\]\\:hover\\:bg-primary\\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tw\\:\\[a\\]\\:hover\\:bg-primary\\/80:is(a):hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.tw\\:\\[a\\]\\:hover\\:bg-secondary\\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.tw\\:\\[a\\]\\:hover\\:bg-secondary\\/80:is(a):hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.tw\\:\\[a\\]\\:hover\\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.tw\\:\\*\\:\\[a\\]\\:hover\\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.tw\\:\\*\\:\\[img\\]\\:row-span-2>*):is(img){grid-row:span 2/span 2}:is(.tw\\:\\*\\:\\[img\\]\\:translate-y-0\\.5>*):is(img){--tw-translate-y:calc(calc(var(--spacing)) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.tw\\:\\*\\:\\[img\\]\\:text-current>*):is(img){color:currentColor}:is(.tw\\:\\*\\:\\[img\\:first-child\\]\\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius) * 1.4);border-top-right-radius:calc(var(--radius) * 1.4)}:is(.tw\\:\\*\\:\\[img\\:last-child\\]\\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}:is(.tw\\:\\*\\:\\[img\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4>*):is(img:not([class*=size-])){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}:is(.tw\\:\\*\\:\\[span\\]\\:last\\:flex>*):is(span):last-child{display:flex}:is(.tw\\:\\*\\:\\[span\\]\\:last\\:items-center>*):is(span):last-child{align-items:center}:is(.tw\\:\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:calc(calc(var(--spacing)) * 2)}:is(.tw\\:\\*\\:\\[svg\\]\\:row-span-2>*):is(svg){grid-row:span 2/span 2}:is(.tw\\:\\*\\:\\[svg\\]\\:translate-y-0\\.5>*):is(svg){--tw-translate-y:calc(calc(var(--spacing)) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.tw\\:\\*\\:\\[svg\\]\\:text-current>*):is(svg){color:currentColor}:is(.tw\\:focus\\:\\*\\:\\[svg\\]\\:text-accent-foreground:focus>*):is(svg){color:var(--accent-foreground)}:is(.tw\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}:is(.tw\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:text-destructive\\![data-variant=destructive]>*):is(svg){color:var(--destructive)!important}:is(.tw\\:data-selected\\:\\*\\:\\[svg\\]\\:text-foreground:where([data-selected=true])>*):is(svg){color:var(--foreground)}:is(.tw\\:\\*\\:\\[svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4>*):is(svg:not([class*=size-])){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-s-none>:not(:first-child){border-start-start-radius:0;border-end-start-radius:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-t-none>:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-s-0>:not(:first-child){border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-t-0>:not(:first-child){border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-e-none>:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-b-none>:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.tw\\:has-\\[select\\[aria-hidden\\=true\\]\\:last-child\\]\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:last-of-type\\]\\:rounded-e-lg:has(:is(select[aria-hidden=true]:last-child))>[data-slot=select-trigger]:last-of-type{border-start-end-radius:var(--radius);border-end-end-radius:var(--radius)}.tw\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:not\\(\\[class\\*\\=w-\\]\\)\\]\\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:fit-content}.tw\\:\\[\\&\\>\\[data-slot\\]\\:not\\(\\:has\\(\\~\\[data-slot\\]\\)\\)\\]\\:rounded-e-lg\\!>[data-slot]:not(:has(~[data-slot])){border-start-end-radius:var(--radius)!important;border-end-end-radius:var(--radius)!important}.tw\\:\\[\\&\\>\\[data-slot\\]\\:not\\(\\:has\\(\\~\\[data-slot\\]\\)\\)\\]\\:rounded-b-lg\\!>[data-slot]:not(:has(~[data-slot])){border-bottom-right-radius:var(--radius)!important;border-bottom-left-radius:var(--radius)!important}.tw\\:\\[\\&\\>blockquote\\]\\:border-s-0>blockquote{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:\\[\\&\\>blockquote\\]\\:p-0>blockquote{padding:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&\\>blockquote\\]\\:ps-0>blockquote{padding-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&\\>blockquote\\]\\:font-normal>blockquote{--tw-font-weight:var(--tw-font-weight-normal);font-weight:var(--tw-font-weight-normal)}.tw\\:\\[\\&\\>blockquote\\]\\:text-foreground>blockquote{color:var(--foreground)}.tw\\:\\[\\&\\>blockquote\\]\\:not-italic>blockquote{font-style:normal}.tw\\:\\[\\&\\>input\\]\\:flex-1>input{flex:1}.tw\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:\\[\\&\\>input\\]\\:pt-3:has(>[data-align=block-end])>input{padding-top:calc(calc(var(--spacing)) * 3)}.tw\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:\\[\\&\\>input\\]\\:pb-3:has(>[data-align=block-start])>input{padding-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:has-\\[\\>\\[data-align\\=inline-end\\]\\]\\:\\[\\&\\>input\\]\\:pe-1\\.5:has(>[data-align=inline-end])>input{padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-\\[\\>\\[data-align\\=inline-start\\]\\]\\:\\[\\&\\>input\\]\\:ps-1\\.5:has(>[data-align=inline-start])>input{padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:\\[\\&\\>kbd\\]\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\]>kbd{border-radius:calc(var(--radius) - 5px)}.tw\\:\\[\\&\\>li\\]\\:mt-2>li{margin-top:calc(calc(var(--spacing)) * 2)}.tw\\:\\[\\&\\>span\\:last-child\\]\\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tw\\:\\[\\&\\>svg\\]\\:pointer-events-none>svg{pointer-events:none}.tw\\:\\[\\&\\>svg\\]\\:size-3\\!>svg{width:calc(calc(var(--spacing)) * 3)!important;height:calc(calc(var(--spacing)) * 3)!important}.tw\\:\\[\\&\\>svg\\]\\:size-3\\.5>svg{width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:\\[\\&\\>svg\\]\\:size-4>svg{width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&\\>svg\\]\\:shrink-0>svg{flex-shrink:0}.tw\\:\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.tw\\:group-has-data-\\[size\\=lg\\]\\/avatar-group\\:\\[\\&\\>svg\\]\\:size-5:is(:where(.tw\\:group\\/avatar-group):has([data-size=lg]) *)>svg{width:calc(calc(var(--spacing)) * 5);height:calc(calc(var(--spacing)) * 5)}.tw\\:group-has-data-\\[size\\=sm\\]\\/avatar-group\\:\\[\\&\\>svg\\]\\:size-3:is(:where(.tw\\:group\\/avatar-group):has([data-size=sm]) *)>svg{width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=default\\]\\/avatar\\:\\[\\&\\>svg\\]\\:size-2:is(:where(.tw\\:group\\/avatar)[data-size=default] *)>svg,.tw\\:group-data-\\[size\\=lg\\]\\/avatar\\:\\[\\&\\>svg\\]\\:size-2:is(:where(.tw\\:group\\/avatar)[data-size=lg] *)>svg{width:calc(calc(var(--spacing)) * 2);height:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[size\\=sm\\]\\/avatar\\:\\[\\&\\>svg\\]\\:hidden:is(:where(.tw\\:group\\/avatar)[data-size=sm] *)>svg{display:none}.tw\\:\\[\\&\\>svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3\\.5>svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:\\[\\&\\>svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4>svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&\\>tr\\]\\:last\\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.tw\\:\\[\\&\\[align\\=center\\]\\]\\:text-center[align=center]{text-align:center}.tw\\:\\[\\&\\[align\\=right\\]\\]\\:text-right[align=right]{text-align:right}.tw\\:\\[\\&\\[aria-orientation\\=horizontal\\]\\>div\\]\\:rotate-90[aria-orientation=horizontal]>div{rotate:90deg}[data-side=primary][data-collapsible=offcanvas] .tw\\:\\[\\[data-side\\=primary\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-end-2{inset-inline-end:calc(calc(var(--spacing)) * -2)}[data-side=primary][data-state=collapsed] .tw\\:\\[\\[data-side\\=primary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize{cursor:e-resize}[data-side=primary][data-state=collapsed] .tw\\:rtl\\:\\[\\[data-side\\=primary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:w-resize}[data-side=secondary][data-collapsible=offcanvas] .tw\\:\\[\\[data-side\\=secondary\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-start-2{inset-inline-start:calc(calc(var(--spacing)) * -2)}[data-side=secondary][data-state=collapsed] .tw\\:\\[\\[data-side\\=secondary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize{cursor:w-resize}[data-side=secondary][data-state=collapsed] .tw\\:rtl\\:\\[\\[data-side\\=secondary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:e-resize}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.light,:root{--radius:.625rem;--spacing:.25rem;--background:oklch(100% 0 0);--foreground:oklch(13.71% .036 258.53);--card:oklch(100% 0 0);--card-foreground:oklch(13.71% .036 258.53);--popover:oklch(98.43% .0018 248.56);--popover-foreground:oklch(13.71% .036 258.53);--primary:oklch(20.79% .0399 265.73);--primary-foreground:oklch(98.38% .0036 248.23);--secondary:oklch(95.89% .011 248.06);--secondary-foreground:oklch(20.79% .0399 265.73);--muted:oklch(95.89% .011 248.06);--muted-foreground:oklch(55.47% .0408 257.45);--accent:oklch(95.89% .011 248.06);--accent-foreground:oklch(20.79% .0399 265.73);--destructive:oklch(63.69% .2077 25.32);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(62.7% .194 149.214);--warning:oklch(84% .16 84);--warning-foreground:oklch(28% .07 46);--border:oklch(92.9% .0127 255.58);--input:oklch(92.9% .0127 255.58);--ring:oklch(13.71% .036 258.53);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.43% .0018 248.56);--sidebar-foreground:oklch(13.71% .036 258.53);--sidebar-primary:oklch(20.79% .0399 265.73);--sidebar-primary-foreground:oklch(98.38% .0036 248.23);--sidebar-accent:oklch(95.89% .011 248.06);--sidebar-accent-foreground:oklch(20.79% .0399 265.73);--sidebar-border:oklch(92.9% .0127 255.58);--sidebar-ring:oklch(13.71% .036 258.53)}.dark{--background:oklch(13.71% .036 258.53);--foreground:oklch(98.38% .0036 248.23);--card:oklch(13.71% .036 258.53);--card-foreground:oklch(98.38% .0036 248.23);--popover:oklch(13.71% .036 258.53);--popover-foreground:oklch(98.38% .0036 248.23);--primary:oklch(98.38% .0036 248.23);--primary-foreground:oklch(20.79% .0399 265.73);--secondary:oklch(28% .037 259.98);--secondary-foreground:oklch(98.38% .0036 248.23);--muted:oklch(28% .037 259.98);--muted-foreground:oklch(71.07% .0351 256.8);--accent:oklch(28% .037 259.98);--accent-foreground:oklch(98.38% .0036 248.23);--destructive:oklch(39.6% .1331 25.71);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(79.2% .209 151.711);--warning:oklch(41% .11 46);--warning-foreground:oklch(99% .02 95);--border:oklch(44.54% .0374 257.3);--input:oklch(44.54% .0374 257.3);--ring:oklch(86.88% .0199 252.89);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(13.71% .036 258.53);--sidebar-foreground:oklch(71.07% .0351 256.8);--sidebar-primary:oklch(98.38% .0036 248.23);--sidebar-primary-foreground:oklch(20.79% .0399 265.73);--sidebar-accent:oklch(28% .037 259.98);--sidebar-accent-foreground:oklch(71.07% .0351 256.8);--sidebar-border:oklch(28% .037 259.98);--sidebar-ring:oklch(86.88% .0199 252.89)}.paratext-light{--background:oklch(100% 0 0);--foreground:oklch(15.3% .006 107.1);--card:oklch(100% 0 0);--card-foreground:oklch(15.3% .006 107.1);--popover:oklch(100% 0 0);--popover-foreground:oklch(15.3% .006 107.1);--primary:oklch(55.5% .163 48.998);--primary-foreground:oklch(98.7% .022 95.277);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.6% .005 106.5);--muted-foreground:oklch(58% .031 107.3);--accent:oklch(96.6% .005 106.5);--accent-foreground:oklch(22.8% .013 107.4);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(62.7% .194 149.214);--warning:oklch(84% .16 84);--warning-foreground:oklch(28% .07 46);--border:oklch(93% .007 106.5);--input:oklch(93% .007 106.5);--ring:oklch(73.7% .021 106.9);--chart-1:oklch(88% .011 106.6);--chart-2:oklch(58% .031 107.3);--chart-3:oklch(46.6% .025 107.3);--chart-4:oklch(39.4% .023 107.4);--chart-5:oklch(28.6% .016 107.4);--sidebar:oklch(98.8% .003 106.5);--sidebar-foreground:oklch(15.3% .006 107.1);--sidebar-primary:oklch(66.6% .179 58.318);--sidebar-primary-foreground:oklch(98.7% .022 95.277);--sidebar-accent:oklch(96.6% .005 106.5);--sidebar-accent-foreground:oklch(22.8% .013 107.4);--sidebar-border:oklch(93% .007 106.5);--sidebar-ring:oklch(73.7% .021 106.9)}.paratext-dark{--background:oklch(15.3% .006 107.1);--foreground:oklch(98.8% .003 106.5);--card:oklch(22.8% .013 107.4);--card-foreground:oklch(98.8% .003 106.5);--popover:oklch(22.8% .013 107.4);--popover-foreground:oklch(98.8% .003 106.5);--primary:oklch(47.3% .137 46.201);--primary-foreground:oklch(98.7% .022 95.277);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(28.6% .016 107.4);--muted-foreground:oklch(73.7% .021 106.9);--accent:oklch(28.6% .016 107.4);--accent-foreground:oklch(98.8% .003 106.5);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(79.2% .209 151.711);--warning:oklch(41% .11 46);--warning-foreground:oklch(99% .02 95);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(58% .031 107.3);--chart-1:oklch(88% .011 106.6);--chart-2:oklch(58% .031 107.3);--chart-3:oklch(46.6% .025 107.3);--chart-4:oklch(39.4% .023 107.4);--chart-5:oklch(28.6% .016 107.4);--sidebar:oklch(22.8% .013 107.4);--sidebar-foreground:oklch(98.8% .003 106.5);--sidebar-primary:oklch(76.9% .188 70.08);--sidebar-primary-foreground:oklch(27.9% .077 45.635);--sidebar-accent:oklch(28.6% .016 107.4);--sidebar-accent-foreground:oklch(98.8% .003 106.5);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(58% .031 107.3)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--tw-font-sans:"IBM Plex Sans Variable", sans-serif;--tw-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--tw-color-red-100:oklch(93.6% .032 17.717);--tw-color-red-200:oklch(88.5% .062 18.334);--tw-color-red-300:oklch(80.8% .114 19.571);--tw-color-red-400:oklch(70.4% .191 22.216);--tw-color-red-500:oklch(63.7% .237 25.331);--tw-color-red-600:oklch(57.7% .245 27.325);--tw-color-red-700:oklch(50.5% .213 27.518);--tw-color-red-800:oklch(44.4% .177 26.899);--tw-color-orange-100:oklch(95.4% .038 75.164);--tw-color-orange-800:oklch(47% .157 37.304);--tw-color-amber-200:oklch(92.4% .12 95.746);--tw-color-yellow-50:oklch(98.7% .026 102.212);--tw-color-yellow-100:oklch(97.3% .071 103.193);--tw-color-yellow-400:oklch(85.2% .199 91.936);--tw-color-yellow-500:oklch(79.5% .184 86.047);--tw-color-yellow-600:oklch(68.1% .162 75.834);--tw-color-yellow-700:oklch(55.4% .135 66.442);--tw-color-green-50:oklch(98.2% .018 155.826);--tw-color-green-100:oklch(96.2% .044 156.743);--tw-color-green-500:oklch(72.3% .219 149.579);--tw-color-green-600:oklch(62.7% .194 149.214);--tw-color-green-700:oklch(52.7% .154 150.069);--tw-color-green-800:oklch(44.8% .119 151.328);--tw-color-teal-400:oklch(77.7% .152 181.912);--tw-color-teal-500:oklch(70.4% .14 182.503);--tw-color-teal-600:oklch(60% .118 184.704);--tw-color-sky-400:oklch(74.6% .16 232.661);--tw-color-sky-500:oklch(68.5% .169 237.323);--tw-color-sky-600:oklch(58.8% .158 241.966);--tw-color-blue-50:oklch(97% .014 254.604);--tw-color-blue-100:oklch(93.2% .032 255.585);--tw-color-blue-400:oklch(70.7% .165 254.624);--tw-color-blue-500:oklch(62.3% .214 259.815);--tw-color-blue-600:oklch(54.6% .245 262.881);--tw-color-blue-800:oklch(42.4% .199 265.638);--tw-color-indigo-200:oklch(87% .065 274.039);--tw-color-purple-50:oklch(97.7% .014 308.299);--tw-color-purple-200:oklch(90.2% .063 306.703);--tw-color-purple-900:oklch(38.1% .176 304.987);--tw-color-rose-400:oklch(71.2% .194 13.428);--tw-color-rose-500:oklch(64.5% .246 16.439);--tw-color-rose-600:oklch(58.6% .253 17.585);--tw-color-slate-300:oklch(86.9% .022 252.894);--tw-color-slate-900:oklch(20.8% .042 265.755);--tw-color-gray-50:oklch(98.5% .002 247.839);--tw-color-gray-100:oklch(96.7% .003 264.542);--tw-color-gray-300:oklch(87.2% .01 258.338);--tw-color-gray-500:oklch(55.1% .027 264.364);--tw-color-gray-600:oklch(44.6% .03 256.802);--tw-color-gray-700:oklch(37.3% .034 259.733);--tw-color-gray-800:oklch(27.8% .033 256.848);--tw-color-zinc-400:oklch(70.5% .015 286.067);--tw-color-neutral-300:oklch(87% 0 0);--tw-color-black:#000;--tw-color-white:#fff;--tw-spacing:calc(var(--spacing));--tw-container-xs:20rem;--tw-container-sm:24rem;--tw-container-md:28rem;--tw-container-lg:32rem;--tw-container-2xl:42rem;--tw-container-3xl:48rem;--tw-container-4xl:56rem;--tw-container-6xl:72rem;--tw-text-xs:.75rem;--tw-text-xs--line-height:calc(1 / .75);--tw-text-sm:.875rem;--tw-text-sm--line-height:calc(1.25 / .875);--tw-text-base:1rem;--tw-text-base--line-height:calc(1.5 / 1);--tw-text-lg:1.125rem;--tw-text-lg--line-height:calc(1.75 / 1.125);--tw-text-xl:1.25rem;--tw-text-xl--line-height:calc(1.75 / 1.25);--tw-text-2xl:1.5rem;--tw-text-2xl--line-height:calc(2 / 1.5);--tw-text-3xl:1.875rem;--tw-text-3xl--line-height:calc(2.25 / 1.875);--tw-text-4xl:2.25rem;--tw-text-4xl--line-height:calc(2.5 / 2.25);--tw-text-5xl:3rem;--tw-text-5xl--line-height:1;--tw-font-weight-normal:400;--tw-font-weight-medium:500;--tw-font-weight-semibold:600;--tw-font-weight-bold:700;--tw-font-weight-extrabold:800;--tw-tracking-tight:-.025em;--tw-tracking-widest:.1em;--tw-leading-tight:1.25;--tw-leading-snug:1.375;--tw-leading-relaxed:1.625;--tw-leading-loose:2;--tw-radius-md:calc(var(--radius) * .8);--tw-radius-xl:calc(var(--radius) * 1.4);--tw-radius-2xl:calc(var(--radius) * 1.8);--tw-drop-shadow-sm:0 1px 2px #00000026;--tw-ease-in-out:cubic-bezier(.4, 0, .2, 1);--tw-animate-spin:spin 1s linear infinite;--tw-animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--tw-blur-xs:4px;--tw-blur-2xl:40px;--tw-default-transition-duration:.15s;--tw-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--tw-default-font-family:"IBM Plex Sans Variable", sans-serif;--tw-default-mono-font-family:var(--tw-font-mono)}}@layer base{.pr-twp,.pr-twp *{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.pr-twp,.pr-twp *{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body.pr-twp{background-color:var(--background);color:var(--foreground)}html.pr-twp{font-family:IBM Plex Sans Variable,sans-serif}:where(.pr-twp,.pr-twp *),:where(.pr-twp,.pr-twp *):after,:where(.pr-twp,.pr-twp *):before,:where(.pr-twp,.pr-twp *) ::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}:where(.pr-twp,.pr-twp *) ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}.pr-twp{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--tw-default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--tw-default-font-feature-settings,normal);font-variation-settings:var(--tw-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr:where(.pr-twp,.pr-twp *){height:0;color:inherit;border-top-width:1px}abbr:where([title]):where(.pr-twp,.pr-twp *){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1:where(.pr-twp,.pr-twp *),h2:where(.pr-twp,.pr-twp *),h3:where(.pr-twp,.pr-twp *),h4:where(.pr-twp,.pr-twp *),h5:where(.pr-twp,.pr-twp *),h6:where(.pr-twp,.pr-twp *){font-size:inherit;font-weight:inherit}a:where(.pr-twp,.pr-twp *){color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b:where(.pr-twp,.pr-twp *),strong:where(.pr-twp,.pr-twp *){font-weight:bolder}code:where(.pr-twp,.pr-twp *),kbd:where(.pr-twp,.pr-twp *),samp:where(.pr-twp,.pr-twp *),pre:where(.pr-twp,.pr-twp *){font-family:var(--tw-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--tw-default-mono-font-feature-settings,normal);font-variation-settings:var(--tw-default-mono-font-variation-settings,normal);font-size:1em}small:where(.pr-twp,.pr-twp *){font-size:80%}sub:where(.pr-twp,.pr-twp *),sup:where(.pr-twp,.pr-twp *){vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub:where(.pr-twp,.pr-twp *){bottom:-.25em}sup:where(.pr-twp,.pr-twp *){top:-.5em}table:where(.pr-twp,.pr-twp *){text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(.pr-twp,.pr-twp *){outline:auto}progress:where(.pr-twp,.pr-twp *){vertical-align:baseline}summary:where(.pr-twp,.pr-twp *){display:list-item}ol:where(.pr-twp,.pr-twp *),ul:where(.pr-twp,.pr-twp *),menu:where(.pr-twp,.pr-twp *){list-style:none}img:where(.pr-twp,.pr-twp *),svg:where(.pr-twp,.pr-twp *),video:where(.pr-twp,.pr-twp *),canvas:where(.pr-twp,.pr-twp *),audio:where(.pr-twp,.pr-twp *),iframe:where(.pr-twp,.pr-twp *),embed:where(.pr-twp,.pr-twp *),object:where(.pr-twp,.pr-twp *){vertical-align:middle;display:block}img:where(.pr-twp,.pr-twp *),video:where(.pr-twp,.pr-twp *){max-width:100%;height:auto}button:where(.pr-twp,.pr-twp *),input:where(.pr-twp,.pr-twp *),select:where(.pr-twp,.pr-twp *),optgroup:where(.pr-twp,.pr-twp *),textarea:where(.pr-twp,.pr-twp *){font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(.pr-twp,.pr-twp *) ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup:where(.pr-twp,.pr-twp *){font-weight:bolder}:where(select:is([multiple],[size])) optgroup option:where(.pr-twp,.pr-twp *){padding-inline-start:20px}:where(.pr-twp,.pr-twp *) ::file-selector-button{margin-inline-end:4px}:where(.pr-twp,.pr-twp *) ::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){:where(.pr-twp,.pr-twp *) ::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){:where(.pr-twp,.pr-twp *) ::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea:where(.pr-twp,.pr-twp *){resize:vertical}:where(.pr-twp,.pr-twp *) ::-webkit-search-decoration{-webkit-appearance:none}:where(.pr-twp,.pr-twp *) ::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit{display:inline-flex}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-fields-wrapper{padding:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-year-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-month-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-day-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-hour-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-minute-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-second-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-millisecond-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-datetime-edit-meridiem-field{padding-block:0}:where(.pr-twp,.pr-twp *) ::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid:where(.pr-twp,.pr-twp *){box-shadow:none}button:where(.pr-twp,.pr-twp *),input:where([type=button],[type=reset],[type=submit]):where(.pr-twp,.pr-twp *){appearance:button}:where(.pr-twp,.pr-twp *) ::file-selector-button{appearance:button}:where(.pr-twp,.pr-twp *) ::-webkit-inner-spin-button{height:auto}:where(.pr-twp,.pr-twp *) ::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])):where(.pr-twp,.pr-twp *){display:none!important}}@layer components;@layer utilities{.tw\\:\\@container\\/card-header{container:card-header/inline-size}.tw\\:\\@container\\/toolbar{container:toolbar/inline-size}.tw\\:pointer-events-auto{pointer-events:auto}.tw\\:pointer-events-none{pointer-events:none}.tw\\:invisible{visibility:hidden}.tw\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tw\\:absolute{position:absolute}.tw\\:fixed{position:fixed}.tw\\:relative{position:relative}.tw\\:sticky{position:sticky}.tw\\:inset-0{inset:calc(calc(var(--spacing)) * 0)}.tw\\:inset-y-0{inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:start-1\\.5{inset-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:start-1\\/2{inset-inline-start:50%}.tw\\:end-0{inset-inline-end:calc(calc(var(--spacing)) * 0)}.tw\\:end-1{inset-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:end-2{inset-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:end-3{inset-inline-end:calc(calc(var(--spacing)) * 3)}.tw\\:-top-\\[1px\\]{top:-1px}.tw\\:top-0{top:calc(calc(var(--spacing)) * 0)}.tw\\:top-1\\.5{top:calc(calc(var(--spacing)) * 1.5)}.tw\\:top-1\\/2{top:50%}.tw\\:top-1\\/3{top:33.3333%}.tw\\:top-2{top:calc(calc(var(--spacing)) * 2)}.tw\\:top-2\\.5{top:calc(calc(var(--spacing)) * 2.5)}.tw\\:top-3\\.5{top:calc(calc(var(--spacing)) * 3.5)}.tw\\:top-\\[-1px\\]{top:-1px}.tw\\:-right-1{right:calc(calc(var(--spacing)) * -1)}.tw\\:right-0{right:calc(calc(var(--spacing)) * 0)}.tw\\:right-1{right:calc(calc(var(--spacing)) * 1)}.tw\\:right-3{right:calc(calc(var(--spacing)) * 3)}.tw\\:bottom-0{bottom:calc(calc(var(--spacing)) * 0)}.tw\\:-left-\\[1px\\]{left:-1px}.tw\\:left-0{left:calc(calc(var(--spacing)) * 0)}.tw\\:left-2{left:calc(calc(var(--spacing)) * 2)}.tw\\:left-3{left:calc(calc(var(--spacing)) * 3)}.tw\\:isolate{isolation:isolate}.tw\\:z-10{z-index:10}.tw\\:z-20{z-index:20}.tw\\:z-50{z-index:50}.tw\\:order-first{order:-9999}.tw\\:order-last{order:9999}.tw\\:col-span-1{grid-column:span 1/span 1}.tw\\:col-span-2{grid-column:span 2/span 2}.tw\\:col-span-3{grid-column:span 3/span 3}.tw\\:col-start-1{grid-column-start:1}.tw\\:col-start-2{grid-column-start:2}.tw\\:row-span-2{grid-row:span 2/span 2}.tw\\:row-start-1{grid-row-start:1}.tw\\:row-start-2{grid-row-start:2}.tw\\:m-0{margin:calc(calc(var(--spacing)) * 0)}.tw\\:m-1{margin:calc(calc(var(--spacing)) * 1)}.tw\\:m-2{margin:calc(calc(var(--spacing)) * 2)}.tw\\:-mx-1{margin-inline:calc(calc(var(--spacing)) * -1)}.tw\\:-mx-4{margin-inline:calc(calc(var(--spacing)) * -4)}.tw\\:mx-0{margin-inline:calc(calc(var(--spacing)) * 0)}.tw\\:mx-1{margin-inline:calc(calc(var(--spacing)) * 1)}.tw\\:mx-2{margin-inline:calc(calc(var(--spacing)) * 2)}.tw\\:mx-3\\.5{margin-inline:calc(calc(var(--spacing)) * 3.5)}.tw\\:mx-8{margin-inline:calc(calc(var(--spacing)) * 8)}.tw\\:my-1{margin-block:calc(calc(var(--spacing)) * 1)}.tw\\:my-2\\.5{margin-block:calc(calc(var(--spacing)) * 2.5)}.tw\\:my-4{margin-block:calc(calc(var(--spacing)) * 4)}.tw\\:ms-1{margin-inline-start:calc(calc(var(--spacing)) * 1)}.tw\\:ms-2{margin-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:ms-5{margin-inline-start:calc(calc(var(--spacing)) * 5)}.tw\\:ms-auto{margin-inline-start:auto}.tw\\:me-1{margin-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:me-2{margin-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:prose{color:var(--tw-prose-body);max-width:65ch}.tw\\:prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.tw\\:prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.tw\\:prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.tw\\:prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.tw\\:prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tw\\:prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.tw\\:prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tw\\:prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tw\\:prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tw\\:prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tw\\:prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tw\\:prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tw\\:prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tw\\:prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tw\\:prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.tw\\:prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.tw\\:prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.tw\\:prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.tw\\:prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.tw\\:prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.tw\\:prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.tw\\:prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.tw\\:prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.tw\\:prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.tw\\:prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.tw\\:prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.tw\\:prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.tw\\:prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.tw\\:prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tw\\:prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.tw\\:prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tw\\:prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.tw\\:prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.tw\\:prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.tw\\:prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.tw\\:prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.tw\\:prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tw\\:prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"\`"}.tw\\:prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tw\\:prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.tw\\:prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.tw\\:prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tw\\:prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.tw\\:prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.tw\\:prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tw\\:prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.tw\\:prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.tw\\:prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.tw\\:prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.tw\\:prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.tw\\:prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.tw\\:prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.tw\\:prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.tw\\:prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.tw\\:prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.tw\\:prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.tw\\:prose{--tw-prose-body:var(--foreground);--tw-prose-headings:var(--foreground);--tw-prose-lead:var(--muted-foreground);--tw-prose-links:var(--primary);--tw-prose-bold:var(--foreground);--tw-prose-counters:var(--muted-foreground);--tw-prose-bullets:var(--muted-foreground);--tw-prose-hr:var(--border);--tw-prose-quotes:var(--foreground);--tw-prose-quote-borders:var(--border);--tw-prose-captions:var(--muted-foreground);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:var(--foreground);--tw-prose-pre-code:var(--muted-foreground);--tw-prose-pre-bg:var(--muted);--tw-prose-th-borders:var(--border);--tw-prose-td-borders:var(--border);--tw-prose-invert-body:var(--foreground);--tw-prose-invert-headings:var(--foreground);--tw-prose-invert-lead:var(--muted-foreground);--tw-prose-invert-links:var(--primary);--tw-prose-invert-bold:var(--foreground);--tw-prose-invert-counters:var(--muted-foreground);--tw-prose-invert-bullets:var(--muted-foreground);--tw-prose-invert-hr:var(--border);--tw-prose-invert-quotes:var(--foreground);--tw-prose-invert-quote-borders:var(--border);--tw-prose-invert-captions:var(--muted-foreground);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:var(--foreground);--tw-prose-invert-pre-code:var(--muted-foreground);--tw-prose-invert-pre-bg:var(--muted);--tw-prose-invert-th-borders:var(--border);--tw-prose-invert-td-borders:var(--border);font-size:1rem;line-height:1.75}.tw\\:prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.tw\\:prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.tw\\:prose :where(.tw\\:prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.tw\\:prose :where(.tw\\:prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tw\\:prose :where(.tw\\:prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tw\\:prose :where(.tw\\:prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tw\\:prose :where(.tw\\:prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tw\\:prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.tw\\:prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.tw\\:prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.tw\\:prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.tw\\:prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.tw\\:prose :where(.tw\\:prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose :where(.tw\\:prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tw\\:prose-sm{font-size:.875rem;line-height:1.71429}.tw\\:prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.tw\\:prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.tw\\:prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.tw\\:prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.tw\\:prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.tw\\:prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.tw\\:prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.tw\\:prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.tw\\:prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.tw\\:prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.tw\\:prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.tw\\:prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.tw\\:prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.tw\\:prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.tw\\:prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.tw\\:prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.tw\\:prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.tw\\:prose-sm :where(.tw\\:prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.tw\\:prose-sm :where(.tw\\:prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.tw\\:prose-sm :where(.tw\\:prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.tw\\:prose-sm :where(.tw\\:prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.tw\\:prose-sm :where(.tw\\:prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.tw\\:prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.tw\\:prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.tw\\:prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.tw\\:prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.tw\\:prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.tw\\:prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tw\\:prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.tw\\:prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.tw\\:prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.tw\\:prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tw\\:prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tw\\:prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.tw\\:prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tw\\:prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.tw\\:prose-sm :where(.tw\\:prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tw\\:prose-sm :where(.tw\\:prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tw\\:-mt-4{margin-top:calc(calc(var(--spacing)) * -4)}.tw\\:mt-1{margin-top:calc(calc(var(--spacing)) * 1)}.tw\\:mt-2{margin-top:calc(calc(var(--spacing)) * 2)}.tw\\:mt-3{margin-top:calc(calc(var(--spacing)) * 3)}.tw\\:mt-4{margin-top:calc(calc(var(--spacing)) * 4)}.tw\\:mt-6{margin-top:calc(calc(var(--spacing)) * 6)}.tw\\:mt-auto{margin-top:auto}.tw\\:mr-1{margin-right:calc(calc(var(--spacing)) * 1)}.tw\\:mr-2{margin-right:calc(calc(var(--spacing)) * 2)}.tw\\:mr-3{margin-right:calc(calc(var(--spacing)) * 3)}.tw\\:-mb-4{margin-bottom:calc(calc(var(--spacing)) * -4)}.tw\\:mb-1{margin-bottom:calc(calc(var(--spacing)) * 1)}.tw\\:mb-2{margin-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:mb-3{margin-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:mb-4{margin-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:ml-2{margin-left:calc(calc(var(--spacing)) * 2)}.tw\\:ml-4{margin-left:calc(calc(var(--spacing)) * 4)}.tw\\:ml-auto{margin-left:auto}.tw\\:box-border{box-sizing:border-box}.tw\\:line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tw\\:no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.tw\\:no-scrollbar::-webkit-scrollbar{display:none}.tw\\:block{display:block}.tw\\:flex{display:flex}.tw\\:grid{display:grid}.tw\\:hidden{display:none}.tw\\:inline-block{display:inline-block}.tw\\:inline-flex{display:inline-flex}.tw\\:inline-grid{display:inline-grid}.tw\\:field-sizing-content{field-sizing:content}.tw\\:aspect-square{aspect-ratio:1}.tw\\:size-2{width:calc(calc(var(--spacing)) * 2);height:calc(calc(var(--spacing)) * 2)}.tw\\:size-2\\.5{width:calc(calc(var(--spacing)) * 2.5);height:calc(calc(var(--spacing)) * 2.5)}.tw\\:size-3{width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:size-3\\.5{width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:size-4{width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:size-6{width:calc(calc(var(--spacing)) * 6);height:calc(calc(var(--spacing)) * 6)}.tw\\:size-7{width:calc(calc(var(--spacing)) * 7);height:calc(calc(var(--spacing)) * 7)}.tw\\:size-8{width:calc(calc(var(--spacing)) * 8);height:calc(calc(var(--spacing)) * 8)}.tw\\:size-9{width:calc(calc(var(--spacing)) * 9);height:calc(calc(var(--spacing)) * 9)}.tw\\:size-full{width:100%;height:100%}.tw\\:h-1{height:calc(calc(var(--spacing)) * 1)}.tw\\:h-2{height:calc(calc(var(--spacing)) * 2)}.tw\\:h-3{height:calc(calc(var(--spacing)) * 3)}.tw\\:h-3\\.5{height:calc(calc(var(--spacing)) * 3.5)}.tw\\:h-4{height:calc(calc(var(--spacing)) * 4)}.tw\\:h-5{height:calc(calc(var(--spacing)) * 5)}.tw\\:h-6{height:calc(calc(var(--spacing)) * 6)}.tw\\:h-7{height:calc(calc(var(--spacing)) * 7)}.tw\\:h-8{height:calc(calc(var(--spacing)) * 8)}.tw\\:h-8\\!{height:calc(calc(var(--spacing)) * 8)!important}.tw\\:h-9{height:calc(calc(var(--spacing)) * 9)}.tw\\:h-10{height:calc(calc(var(--spacing)) * 10)}.tw\\:h-12{height:calc(calc(var(--spacing)) * 12)}.tw\\:h-14{height:calc(calc(var(--spacing)) * 14)}.tw\\:h-20{height:calc(calc(var(--spacing)) * 20)}.tw\\:h-24{height:calc(calc(var(--spacing)) * 24)}.tw\\:h-32{height:calc(calc(var(--spacing)) * 32)}.tw\\:h-40{height:calc(calc(var(--spacing)) * 40)}.tw\\:h-64{height:calc(calc(var(--spacing)) * 64)}.tw\\:h-96{height:calc(calc(var(--spacing)) * 96)}.tw\\:h-\\[1\\.2rem\\]{height:1.2rem}.tw\\:h-\\[5px\\]{height:5px}.tw\\:h-\\[300px\\]{height:300px}.tw\\:h-\\[calc\\(100\\%-1px\\)\\]{height:calc(100% - 1px)}.tw\\:h-\\[calc\\(100\\%-2px\\)\\]{height:calc(100% - 2px)}.tw\\:h-auto{height:auto}.tw\\:h-full{height:100%}.tw\\:h-px{height:1px}.tw\\:h-svh{height:100svh}.tw\\:max-h-\\(--radix-context-menu-content-available-height\\){max-height:var(--radix-context-menu-content-available-height)}.tw\\:max-h-\\(--radix-dropdown-menu-content-available-height\\){max-height:var(--radix-dropdown-menu-content-available-height)}.tw\\:max-h-\\(--radix-select-content-available-height\\){max-height:var(--radix-select-content-available-height)}.tw\\:max-h-5{max-height:calc(calc(var(--spacing)) * 5)}.tw\\:max-h-10{max-height:calc(calc(var(--spacing)) * 10)}.tw\\:max-h-72{max-height:calc(calc(var(--spacing)) * 72)}.tw\\:max-h-80{max-height:calc(calc(var(--spacing)) * 80)}.tw\\:max-h-\\[96\\%\\]{max-height:96%}.tw\\:max-h-\\[300px\\]{max-height:300px}.tw\\:min-h-0{min-height:calc(calc(var(--spacing)) * 0)}.tw\\:min-h-11{min-height:calc(calc(var(--spacing)) * 11)}.tw\\:min-h-16{min-height:calc(calc(var(--spacing)) * 16)}.tw\\:min-h-svh{min-height:100svh}.tw\\:w-\\(--radix-dropdown-menu-trigger-width\\){width:var(--radix-dropdown-menu-trigger-width)}.tw\\:w-\\(--sidebar-width\\){width:var(--sidebar-width)}.tw\\:w-1{width:calc(calc(var(--spacing)) * 1)}.tw\\:w-1\\/2{width:50%}.tw\\:w-2{width:calc(calc(var(--spacing)) * 2)}.tw\\:w-3{width:calc(calc(var(--spacing)) * 3)}.tw\\:w-3\\.5{width:calc(calc(var(--spacing)) * 3.5)}.tw\\:w-3\\/4{width:75%}.tw\\:w-4{width:calc(calc(var(--spacing)) * 4)}.tw\\:w-4\\/5{width:80%}.tw\\:w-4\\/6{width:66.6667%}.tw\\:w-5{width:calc(calc(var(--spacing)) * 5)}.tw\\:w-5\\/6{width:83.3333%}.tw\\:w-6{width:calc(calc(var(--spacing)) * 6)}.tw\\:w-8{width:calc(calc(var(--spacing)) * 8)}.tw\\:w-9{width:calc(calc(var(--spacing)) * 9)}.tw\\:w-9\\/12{width:75%}.tw\\:w-10{width:calc(calc(var(--spacing)) * 10)}.tw\\:w-12{width:calc(calc(var(--spacing)) * 12)}.tw\\:w-20{width:calc(calc(var(--spacing)) * 20)}.tw\\:w-24{width:calc(calc(var(--spacing)) * 24)}.tw\\:w-32{width:calc(calc(var(--spacing)) * 32)}.tw\\:w-48{width:calc(calc(var(--spacing)) * 48)}.tw\\:w-56{width:calc(calc(var(--spacing)) * 56)}.tw\\:w-60{width:calc(calc(var(--spacing)) * 60)}.tw\\:w-64{width:calc(calc(var(--spacing)) * 64)}.tw\\:w-72{width:calc(calc(var(--spacing)) * 72)}.tw\\:w-80{width:calc(calc(var(--spacing)) * 80)}.tw\\:w-96{width:calc(calc(var(--spacing)) * 96)}.tw\\:w-\\[1\\.2rem\\]{width:1.2rem}.tw\\:w-\\[1px\\]{width:1px}.tw\\:w-\\[5px\\]{width:5px}.tw\\:w-\\[70px\\]{width:70px}.tw\\:w-\\[100px\\]{width:100px}.tw\\:w-\\[116px\\]{width:116px}.tw\\:w-\\[124px\\]{width:124px}.tw\\:w-\\[150px\\]{width:150px}.tw\\:w-\\[180px\\]{width:180px}.tw\\:w-\\[200px\\]{width:200px}.tw\\:w-\\[250px\\]{width:250px}.tw\\:w-\\[300px\\]{width:300px}.tw\\:w-\\[320px\\]{width:320px}.tw\\:w-\\[350px\\]{width:350px}.tw\\:w-\\[400px\\]{width:400px}.tw\\:w-\\[500px\\]{width:500px}.tw\\:w-\\[600px\\]{width:600px}.tw\\:w-\\[calc\\(100\\%-2px\\)\\]{width:calc(100% - 2px)}.tw\\:w-\\[var\\(--radix-dropdown-menu-trigger-width\\)\\]{width:var(--radix-dropdown-menu-trigger-width)}.tw\\:w-\\[var\\(--radix-popper-anchor-width\\,280px\\)\\]{width:var(--radix-popper-anchor-width,280px)}.tw\\:w-auto{width:auto}.tw\\:w-fit{width:fit-content}.tw\\:w-full{width:100%}.tw\\:w-max{width:max-content}.tw\\:w-px{width:1px}.tw\\:max-w-\\(--skeleton-width\\){max-width:var(--skeleton-width)}.tw\\:max-w-2xl{max-width:var(--tw-container-2xl)}.tw\\:max-w-3xl{max-width:var(--tw-container-3xl)}.tw\\:max-w-4xl{max-width:var(--tw-container-4xl)}.tw\\:max-w-5{max-width:calc(calc(var(--spacing)) * 5)}.tw\\:max-w-6xl{max-width:var(--tw-container-6xl)}.tw\\:max-w-40{max-width:calc(calc(var(--spacing)) * 40)}.tw\\:max-w-48{max-width:calc(calc(var(--spacing)) * 48)}.tw\\:max-w-64{max-width:calc(calc(var(--spacing)) * 64)}.tw\\:max-w-96{max-width:calc(calc(var(--spacing)) * 96)}.tw\\:max-w-\\[200px\\]{max-width:200px}.tw\\:max-w-\\[220px\\]{max-width:220px}.tw\\:max-w-\\[280px\\]{max-width:280px}.tw\\:max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.tw\\:max-w-\\[calc\\(100vw-2rem\\)\\]{max-width:calc(100vw - 2rem)}.tw\\:max-w-fit{max-width:fit-content}.tw\\:max-w-full{max-width:100%}.tw\\:max-w-lg{max-width:var(--tw-container-lg)}.tw\\:max-w-md{max-width:var(--tw-container-md)}.tw\\:max-w-none{max-width:none}.tw\\:max-w-sm{max-width:var(--tw-container-sm)}.tw\\:max-w-xs{max-width:var(--tw-container-xs)}.tw\\:min-w-0{min-width:calc(calc(var(--spacing)) * 0)}.tw\\:min-w-5{min-width:calc(calc(var(--spacing)) * 5)}.tw\\:min-w-7{min-width:calc(calc(var(--spacing)) * 7)}.tw\\:min-w-8{min-width:calc(calc(var(--spacing)) * 8)}.tw\\:min-w-9{min-width:calc(calc(var(--spacing)) * 9)}.tw\\:min-w-16{min-width:calc(calc(var(--spacing)) * 16)}.tw\\:min-w-32{min-width:calc(calc(var(--spacing)) * 32)}.tw\\:min-w-36{min-width:calc(calc(var(--spacing)) * 36)}.tw\\:min-w-80{min-width:calc(calc(var(--spacing)) * 80)}.tw\\:min-w-\\[14rem\\]{min-width:14rem}.tw\\:min-w-\\[26px\\]{min-width:26px}.tw\\:min-w-\\[96px\\]{min-width:96px}.tw\\:min-w-\\[140px\\]{min-width:140px}.tw\\:min-w-\\[200px\\]{min-width:200px}.tw\\:min-w-\\[215px\\]{min-width:215px}.tw\\:min-w-\\[500px\\]{min-width:500px}.tw\\:min-w-min{min-width:min-content}.tw\\:flex-1{flex:1}.tw\\:shrink{flex-shrink:1}.tw\\:shrink-0{flex-shrink:0}.tw\\:flex-grow,.tw\\:grow,.tw\\:grow-\\[1\\]{flex-grow:1}.tw\\:grow-\\[10\\]{flex-grow:10}.tw\\:basis-0{flex-basis:calc(calc(var(--spacing)) * 0)}.tw\\:caption-bottom{caption-side:bottom}.tw\\:border-collapse{border-collapse:collapse}.tw\\:origin-\\(--radix-context-menu-content-transform-origin\\){transform-origin:var(--radix-context-menu-content-transform-origin)}.tw\\:origin-\\(--radix-dropdown-menu-content-transform-origin\\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.tw\\:origin-\\(--radix-menubar-content-transform-origin\\){transform-origin:var(--radix-menubar-content-transform-origin)}.tw\\:origin-\\(--radix-popover-content-transform-origin\\){transform-origin:var(--radix-popover-content-transform-origin)}.tw\\:origin-\\(--radix-select-content-transform-origin\\){transform-origin:var(--radix-select-content-transform-origin)}.tw\\:origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.tw\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:translate-y-0{--tw-translate-y:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rotate-45{rotate:45deg}.tw\\:rotate-180{rotate:180deg}.tw\\:transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.tw\\:animate-none\\!{animation:none!important}.tw\\:animate-pulse{animation:var(--tw-animate-pulse)}.tw\\:animate-spin{animation:var(--tw-animate-spin)}.tw\\:cursor-default{cursor:default}.tw\\:cursor-ew-resize{cursor:ew-resize}.tw\\:cursor-not-allowed{cursor:not-allowed}.tw\\:cursor-pointer{cursor:pointer}.tw\\:cursor-text{cursor:text}.tw\\:touch-none{touch-action:none}.tw\\:resize{resize:both}.tw\\:resize-none{resize:none}.tw\\:scroll-m-20{scroll-margin:calc(calc(var(--spacing)) * 20)}.tw\\:scroll-my-1{scroll-margin-block:calc(calc(var(--spacing)) * 1)}.tw\\:scroll-py-1{scroll-padding-block:calc(calc(var(--spacing)) * 1)}.tw\\:list-inside{list-style-position:inside}.tw\\:list-outside{list-style-position:outside}.tw\\:\\!list-\\[lower-alpha\\]{list-style-type:lower-alpha!important}.tw\\:\\!list-\\[lower-roman\\]{list-style-type:lower-roman!important}.tw\\:\\!list-\\[upper-alpha\\]{list-style-type:upper-alpha!important}.tw\\:\\!list-\\[upper-roman\\]{list-style-type:upper-roman!important}.tw\\:\\!list-decimal{list-style-type:decimal!important}.tw\\:\\!list-disc{list-style-type:disc!important}.tw\\:list-decimal{list-style-type:decimal}.tw\\:list-disc{list-style-type:disc}.tw\\:list-none{list-style-type:none}.tw\\:grid-flow-col{grid-auto-flow:column}.tw\\:auto-rows-min{grid-auto-rows:min-content}.tw\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tw\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.tw\\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.tw\\:grid-cols-\\[25\\%_25\\%_50\\%\\]{grid-template-columns:25% 25% 50%}.tw\\:grid-cols-\\[25\\%_50\\%_25\\%\\]{grid-template-columns:25% 50% 25%}.tw\\:grid-cols-\\[min-content_1fr\\]{grid-template-columns:min-content 1fr}.tw\\:grid-cols-\\[min-content_min-content_1fr\\]{grid-template-columns:min-content min-content 1fr}.tw\\:grid-cols-subgrid{grid-template-columns:subgrid}.tw\\:flex-col{flex-direction:column}.tw\\:flex-col-reverse{flex-direction:column-reverse}.tw\\:flex-row{flex-direction:row}.tw\\:flex-row-reverse{flex-direction:row-reverse}.tw\\:flex-wrap{flex-wrap:wrap}.tw\\:place-content-center{place-content:center}.tw\\:content-center{align-content:center}.tw\\:items-baseline{align-items:baseline}.tw\\:items-center{align-items:center}.tw\\:items-end{align-items:flex-end}.tw\\:items-start{align-items:flex-start}.tw\\:items-stretch{align-items:stretch}.tw\\:justify-between{justify-content:space-between}.tw\\:justify-center{justify-content:center}.tw\\:justify-end{justify-content:flex-end}.tw\\:justify-start{justify-content:flex-start}.tw\\:gap-0{gap:calc(calc(var(--spacing)) * 0)}.tw\\:gap-0\\.5{gap:calc(calc(var(--spacing)) * .5)}.tw\\:gap-1{gap:calc(calc(var(--spacing)) * 1)}.tw\\:gap-1\\.5{gap:calc(calc(var(--spacing)) * 1.5)}.tw\\:gap-2{gap:calc(calc(var(--spacing)) * 2)}.tw\\:gap-2\\.5{gap:calc(calc(var(--spacing)) * 2.5)}.tw\\:gap-3{gap:calc(calc(var(--spacing)) * 3)}.tw\\:gap-4{gap:calc(calc(var(--spacing)) * 4)}.tw\\:gap-5{gap:calc(calc(var(--spacing)) * 5)}.tw\\:gap-6{gap:calc(calc(var(--spacing)) * 6)}.tw\\:gap-16{gap:calc(calc(var(--spacing)) * 16)}.tw\\:gap-\\[--spacing\\(var\\(--gap\\)\\)\\]{gap:calc(calc(var(--spacing)) * var(--gap))}.tw\\:gap-\\[12px\\]{gap:12px}:where(.tw\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.tw\\:space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(calc(var(--spacing)) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(calc(var(--spacing)) * 8) * calc(1 - var(--tw-space-y-reverse)))}.tw\\:gap-x-1{column-gap:calc(calc(var(--spacing)) * 1)}.tw\\:gap-x-2{column-gap:calc(calc(var(--spacing)) * 2)}.tw\\:gap-x-3{column-gap:calc(calc(var(--spacing)) * 3)}.tw\\:gap-x-4{column-gap:calc(calc(var(--spacing)) * 4)}:where(.tw\\:-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * -2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * -2) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 3) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.tw\\:space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 6) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 6) * calc(1 - var(--tw-space-x-reverse)))}.tw\\:gap-y-1{row-gap:calc(calc(var(--spacing)) * 1)}.tw\\:gap-y-2{row-gap:calc(calc(var(--spacing)) * 2)}:where(.tw\\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.tw\\:divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.tw\\:self-start{align-self:flex-start}.tw\\:self-stretch{align-self:stretch}.tw\\:justify-self-end{justify-self:flex-end}.tw\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tw\\:overflow-auto{overflow:auto}.tw\\:overflow-clip{overflow:clip}.tw\\:overflow-hidden{overflow:hidden}.tw\\:overflow-scroll{overflow:scroll}.tw\\:overflow-visible{overflow:visible}.tw\\:overflow-x-auto{overflow-x:auto}.tw\\:overflow-x-hidden{overflow-x:hidden}.tw\\:overflow-y-auto{overflow-y:auto}.tw\\:overflow-y-hidden{overflow-y:hidden}.tw\\:rounded{border-radius:.25rem}.tw\\:rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.tw\\:rounded-4xl{border-radius:calc(var(--radius) * 2.6)}.tw\\:rounded-\\[2px\\]{border-radius:2px}.tw\\:rounded-\\[4px\\]{border-radius:4px}.tw\\:rounded-\\[6px\\]{border-radius:6px}.tw\\:rounded-\\[calc\\(var\\(--radius\\)-3px\\)\\]{border-radius:calc(var(--radius) - 3px)}.tw\\:rounded-\\[min\\(var\\(--tw-radius-md\\)\\,10px\\)\\]{border-radius:min(var(--tw-radius-md), 10px)}.tw\\:rounded-\\[min\\(var\\(--tw-radius-md\\)\\,12px\\)\\]{border-radius:min(var(--tw-radius-md), 12px)}.tw\\:rounded-full{border-radius:3.40282e38px}.tw\\:rounded-lg{border-radius:var(--radius)}.tw\\:rounded-lg\\!{border-radius:var(--radius)!important}.tw\\:rounded-md{border-radius:calc(var(--radius) * .8)}.tw\\:rounded-none{border-radius:0}.tw\\:rounded-sm{border-radius:calc(var(--radius) * .6)}.tw\\:rounded-xl{border-radius:calc(var(--radius) * 1.4)}.tw\\:rounded-xl\\!{border-radius:calc(var(--radius) * 1.4)!important}.tw\\:rounded-s-none{border-start-start-radius:0;border-end-start-radius:0}.tw\\:rounded-e-none{border-start-end-radius:0;border-end-end-radius:0}.tw\\:rounded-t-xl{border-top-left-radius:calc(var(--radius) * 1.4);border-top-right-radius:calc(var(--radius) * 1.4)}.tw\\:rounded-l-lg{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.tw\\:rounded-r-xl{border-top-right-radius:calc(var(--radius) * 1.4);border-bottom-right-radius:calc(var(--radius) * 1.4)}.tw\\:rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.tw\\:border{border-style:var(--tw-border-style);border-width:1px}.tw\\:border-0{border-style:var(--tw-border-style);border-width:0}.tw\\:border-2{border-style:var(--tw-border-style);border-width:2px}.tw\\:border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.tw\\:border-s-0{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.tw\\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.tw\\:border-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.tw\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.tw\\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.tw\\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.tw\\:border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.tw\\:border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.tw\\:border-dashed{--tw-border-style:dashed;border-style:dashed}.tw\\:border-none{--tw-border-style:none;border-style:none}.tw\\:border-solid{--tw-border-style:solid;border-style:solid}.tw\\:border-black{border-color:var(--tw-color-black)}.tw\\:border-blue-400{border-color:var(--tw-color-blue-400)}.tw\\:border-blue-500{border-color:var(--tw-color-blue-500)}.tw\\:border-border,.tw\\:border-border\\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.tw\\:border-border\\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.tw\\:border-gray-300{border-color:var(--tw-color-gray-300)}.tw\\:border-input,.tw\\:border-input\\/30{border-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:border-input\\/30{border-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:border-muted-foreground{border-color:var(--muted-foreground)}.tw\\:border-primary{border-color:var(--primary)}.tw\\:border-red-300{border-color:var(--tw-color-red-300)}.tw\\:border-red-400{border-color:var(--tw-color-red-400)}.tw\\:border-red-500{border-color:var(--tw-color-red-500)}.tw\\:border-red-600{border-color:var(--tw-color-red-600)}.tw\\:border-ring{border-color:var(--ring)}.tw\\:border-sidebar-border{border-color:var(--sidebar-border)}.tw\\:border-slate-300{border-color:var(--tw-color-slate-300)}.tw\\:border-transparent{border-color:#0000}.tw\\:border-yellow-400{border-color:var(--tw-color-yellow-400)}.tw\\:border-yellow-500{border-color:var(--tw-color-yellow-500)}.tw\\:border-s-amber-200{border-inline-start-color:var(--tw-color-amber-200)}.tw\\:border-s-indigo-200{border-inline-start-color:var(--tw-color-indigo-200)}.tw\\:border-s-purple-200{border-inline-start-color:var(--tw-color-purple-200)}.tw\\:border-s-red-200{border-inline-start-color:var(--tw-color-red-200)}.tw\\:\\!bg-destructive\\/50{background-color:var(--destructive)!important}@supports (color:color-mix(in lab, red, red)){.tw\\:\\!bg-destructive\\/50{background-color:color-mix(in oklab, var(--destructive) 50%, transparent)!important}}.tw\\:bg-accent{background-color:var(--accent)}.tw\\:bg-accent-foreground{background-color:var(--accent-foreground)}.tw\\:bg-background,.tw\\:bg-background\\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-background\\/50{background-color:color-mix(in oklab, var(--background) 50%, transparent)}}.tw\\:bg-black\\/10{background-color:var(--tw-color-black)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-black\\/10{background-color:color-mix(in oklab, var(--tw-color-black) 10%, transparent)}}.tw\\:bg-blue-50{background-color:var(--tw-color-blue-50)}.tw\\:bg-blue-100{background-color:var(--tw-color-blue-100)}.tw\\:bg-blue-400{background-color:var(--tw-color-blue-400)}.tw\\:bg-blue-500{background-color:var(--tw-color-blue-500)}.tw\\:bg-border{background-color:var(--border)}.tw\\:bg-card{background-color:var(--card)}.tw\\:bg-card-foreground{background-color:var(--card-foreground)}.tw\\:bg-destructive-foreground{background-color:var(--destructive-foreground)}.tw\\:bg-destructive\\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-destructive\\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.tw\\:bg-foreground{background-color:var(--foreground)}.tw\\:bg-gray-50{background-color:var(--tw-color-gray-50)}.tw\\:bg-gray-100{background-color:var(--tw-color-gray-100)}.tw\\:bg-gray-500{background-color:var(--tw-color-gray-500)}.tw\\:bg-green-50{background-color:var(--tw-color-green-50)}.tw\\:bg-green-100{background-color:var(--tw-color-green-100)}.tw\\:bg-green-500{background-color:var(--tw-color-green-500)}.tw\\:bg-input,.tw\\:bg-input\\/30{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-input\\/30{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:bg-muted{background-color:var(--muted)}.tw\\:bg-muted-foreground{background-color:var(--muted-foreground)}.tw\\:bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-muted\\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:bg-neutral-300{background-color:var(--tw-color-neutral-300)}.tw\\:bg-orange-100{background-color:var(--tw-color-orange-100)}.tw\\:bg-popover{background-color:var(--popover)}.tw\\:bg-popover-foreground{background-color:var(--popover-foreground)}.tw\\:bg-popover\\/70{background-color:var(--popover)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-popover\\/70{background-color:color-mix(in oklab, var(--popover) 70%, transparent)}}.tw\\:bg-primary{background-color:var(--primary)}.tw\\:bg-primary-foreground{background-color:var(--primary-foreground)}.tw\\:bg-purple-50{background-color:var(--tw-color-purple-50)}.tw\\:bg-red-100{background-color:var(--tw-color-red-100)}.tw\\:bg-red-500{background-color:var(--tw-color-red-500)}.tw\\:bg-rose-500,.tw\\:bg-rose-500\\/5{background-color:var(--tw-color-rose-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-rose-500\\/5{background-color:color-mix(in oklab, var(--tw-color-rose-500) 5%, transparent)}}.tw\\:bg-rose-500\\/15{background-color:var(--tw-color-rose-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-rose-500\\/15{background-color:color-mix(in oklab, var(--tw-color-rose-500) 15%, transparent)}}.tw\\:bg-secondary{background-color:var(--secondary)}.tw\\:bg-secondary-foreground{background-color:var(--secondary-foreground)}.tw\\:bg-sidebar{background-color:var(--sidebar)}.tw\\:bg-sidebar-accent{background-color:var(--sidebar-accent)}.tw\\:bg-sidebar-border{background-color:var(--sidebar-border)}.tw\\:bg-sky-500,.tw\\:bg-sky-500\\/5{background-color:var(--tw-color-sky-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-sky-500\\/5{background-color:color-mix(in oklab, var(--tw-color-sky-500) 5%, transparent)}}.tw\\:bg-sky-500\\/15{background-color:var(--tw-color-sky-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-sky-500\\/15{background-color:color-mix(in oklab, var(--tw-color-sky-500) 15%, transparent)}}.tw\\:bg-teal-500,.tw\\:bg-teal-500\\/5{background-color:var(--tw-color-teal-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-teal-500\\/5{background-color:color-mix(in oklab, var(--tw-color-teal-500) 5%, transparent)}}.tw\\:bg-teal-500\\/15{background-color:var(--tw-color-teal-500)}@supports (color:color-mix(in lab, red, red)){.tw\\:bg-teal-500\\/15{background-color:color-mix(in oklab, var(--tw-color-teal-500) 15%, transparent)}}.tw\\:bg-transparent{background-color:#0000}.tw\\:bg-white{background-color:var(--tw-color-white)}.tw\\:bg-yellow-50{background-color:var(--tw-color-yellow-50)}.tw\\:bg-yellow-100{background-color:var(--tw-color-yellow-100)}.tw\\:bg-yellow-500{background-color:var(--tw-color-yellow-500)}.tw\\:bg-zinc-400{background-color:var(--tw-color-zinc-400)}.tw\\:bg-clip-padding{background-clip:padding-box}.tw\\:fill-destructive{fill:var(--destructive)}.tw\\:fill-foreground{fill:var(--foreground)}.tw\\:fill-yellow-400,.tw\\:fill-yellow-400\\/50{fill:var(--tw-color-yellow-400)}@supports (color:color-mix(in lab, red, red)){.tw\\:fill-yellow-400\\/50{fill:color-mix(in oklab, var(--tw-color-yellow-400) 50%, transparent)}}.tw\\:object-cover{object-fit:cover}.tw\\:\\!p-4{padding:calc(calc(var(--spacing)) * 4)!important}.tw\\:p-0{padding:calc(calc(var(--spacing)) * 0)}.tw\\:p-0\\.5{padding:calc(calc(var(--spacing)) * .5)}.tw\\:p-1{padding:calc(calc(var(--spacing)) * 1)}.tw\\:p-2{padding:calc(calc(var(--spacing)) * 2)}.tw\\:p-2\\.5{padding:calc(calc(var(--spacing)) * 2.5)}.tw\\:p-3{padding:calc(calc(var(--spacing)) * 3)}.tw\\:p-4{padding:calc(calc(var(--spacing)) * 4)}.tw\\:p-6{padding:calc(calc(var(--spacing)) * 6)}.tw\\:p-8{padding:calc(calc(var(--spacing)) * 8)}.tw\\:p-\\[1px\\]{padding:1px}.tw\\:p-\\[3px\\]{padding:3px}.tw\\:p-\\[10px\\]{padding:10px}.tw\\:p-\\[16px\\]{padding:16px}.tw\\:px-0{padding-inline:calc(calc(var(--spacing)) * 0)}.tw\\:px-1{padding-inline:calc(calc(var(--spacing)) * 1)}.tw\\:px-1\\.5{padding-inline:calc(calc(var(--spacing)) * 1.5)}.tw\\:px-2{padding-inline:calc(calc(var(--spacing)) * 2)}.tw\\:px-2\\.5{padding-inline:calc(calc(var(--spacing)) * 2.5)}.tw\\:px-3{padding-inline:calc(calc(var(--spacing)) * 3)}.tw\\:px-4{padding-inline:calc(calc(var(--spacing)) * 4)}.tw\\:px-6{padding-inline:calc(calc(var(--spacing)) * 6)}.tw\\:py-0{padding-block:calc(calc(var(--spacing)) * 0)}.tw\\:py-0\\.5{padding-block:calc(calc(var(--spacing)) * .5)}.tw\\:py-1{padding-block:calc(calc(var(--spacing)) * 1)}.tw\\:py-1\\.5{padding-block:calc(calc(var(--spacing)) * 1.5)}.tw\\:py-2{padding-block:calc(calc(var(--spacing)) * 2)}.tw\\:py-3{padding-block:calc(calc(var(--spacing)) * 3)}.tw\\:py-4{padding-block:calc(calc(var(--spacing)) * 4)}.tw\\:py-6{padding-block:calc(calc(var(--spacing)) * 6)}.tw\\:py-8{padding-block:calc(calc(var(--spacing)) * 8)}.tw\\:py-\\[2px\\]{padding-block:2px}.tw\\:ps-1\\.5{padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:ps-2{padding-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:ps-2\\.5{padding-inline-start:calc(calc(var(--spacing)) * 2.5)}.tw\\:ps-4{padding-inline-start:calc(calc(var(--spacing)) * 4)}.tw\\:ps-7{padding-inline-start:calc(calc(var(--spacing)) * 7)}.tw\\:ps-8{padding-inline-start:calc(calc(var(--spacing)) * 8)}.tw\\:ps-9{padding-inline-start:calc(calc(var(--spacing)) * 9)}.tw\\:ps-12{padding-inline-start:calc(calc(var(--spacing)) * 12)}.tw\\:ps-\\[85px\\]{padding-inline-start:85px}.tw\\:pe-1{padding-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:pe-1\\.5{padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:pe-2{padding-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:pe-4{padding-inline-end:calc(calc(var(--spacing)) * 4)}.tw\\:pe-8{padding-inline-end:calc(calc(var(--spacing)) * 8)}.tw\\:pe-9{padding-inline-end:calc(calc(var(--spacing)) * 9)}.tw\\:pe-\\[calc\\(138px\\+1rem\\)\\]{padding-inline-end:calc(138px + 1rem)}.tw\\:pt-1{padding-top:calc(calc(var(--spacing)) * 1)}.tw\\:pt-2{padding-top:calc(calc(var(--spacing)) * 2)}.tw\\:pt-3{padding-top:calc(calc(var(--spacing)) * 3)}.tw\\:pt-6{padding-top:calc(calc(var(--spacing)) * 6)}.tw\\:\\!pr-10{padding-right:calc(calc(var(--spacing)) * 10)!important}.tw\\:pr-0{padding-right:calc(calc(var(--spacing)) * 0)}.tw\\:pr-3{padding-right:calc(calc(var(--spacing)) * 3)}.tw\\:pr-4{padding-right:calc(calc(var(--spacing)) * 4)}.tw\\:pb-0{padding-bottom:calc(calc(var(--spacing)) * 0)}.tw\\:pb-1{padding-bottom:calc(calc(var(--spacing)) * 1)}.tw\\:pb-2{padding-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:pb-3{padding-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:pb-4{padding-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:pb-8{padding-bottom:calc(calc(var(--spacing)) * 8)}.tw\\:pb-16{padding-bottom:calc(calc(var(--spacing)) * 16)}.tw\\:pb-24{padding-bottom:calc(calc(var(--spacing)) * 24)}.tw\\:pl-2{padding-left:calc(calc(var(--spacing)) * 2)}.tw\\:pl-3{padding-left:calc(calc(var(--spacing)) * 3)}.tw\\:pl-4{padding-left:calc(calc(var(--spacing)) * 4)}.tw\\:pl-5{padding-left:calc(calc(var(--spacing)) * 5)}.tw\\:pl-6{padding-left:calc(calc(var(--spacing)) * 6)}.tw\\:pl-8{padding-left:calc(calc(var(--spacing)) * 8)}.tw\\:text-center{text-align:center}.tw\\:text-end{text-align:end}.tw\\:text-left{text-align:left}.tw\\:text-right{text-align:right}.tw\\:text-start{text-align:start}.tw\\:align-middle{vertical-align:middle}.tw\\:font-heading{font-family:var(--font-sans)}.tw\\:font-mono{font-family:var(--tw-font-mono)}.tw\\:font-sans{font-family:IBM Plex Sans Variable,sans-serif}.tw\\:text-2xl{font-size:var(--tw-text-2xl);line-height:var(--tw-leading,var(--tw-text-2xl--line-height))}.tw\\:text-3xl{font-size:var(--tw-text-3xl);line-height:var(--tw-leading,var(--tw-text-3xl--line-height))}.tw\\:text-4xl{font-size:var(--tw-text-4xl);line-height:var(--tw-leading,var(--tw-text-4xl--line-height))}.tw\\:text-base{font-size:var(--tw-text-base);line-height:var(--tw-leading,var(--tw-text-base--line-height))}.tw\\:text-lg{font-size:var(--tw-text-lg);line-height:var(--tw-leading,var(--tw-text-lg--line-height))}.tw\\:text-sm{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:text-xl{font-size:var(--tw-text-xl);line-height:var(--tw-leading,var(--tw-text-xl--line-height))}.tw\\:text-xs{font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}.tw\\:text-\\[0\\.8rem\\]{font-size:.8rem}.tw\\:leading-loose{--tw-leading:var(--tw-leading-loose);line-height:var(--tw-leading-loose)}.tw\\:leading-none{--tw-leading:1;line-height:1}.tw\\:leading-relaxed{--tw-leading:var(--tw-leading-relaxed);line-height:var(--tw-leading-relaxed)}.tw\\:leading-snug{--tw-leading:var(--tw-leading-snug);line-height:var(--tw-leading-snug)}.tw\\:leading-tight{--tw-leading:var(--tw-leading-tight);line-height:var(--tw-leading-tight)}.tw\\:font-bold{--tw-font-weight:var(--tw-font-weight-bold);font-weight:var(--tw-font-weight-bold)}.tw\\:font-extrabold{--tw-font-weight:var(--tw-font-weight-extrabold);font-weight:var(--tw-font-weight-extrabold)}.tw\\:font-medium{--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}.tw\\:font-normal{--tw-font-weight:var(--tw-font-weight-normal);font-weight:var(--tw-font-weight-normal)}.tw\\:font-semibold{--tw-font-weight:var(--tw-font-weight-semibold);font-weight:var(--tw-font-weight-semibold)}.tw\\:tracking-tight{--tw-tracking:var(--tw-tracking-tight);letter-spacing:var(--tw-tracking-tight)}.tw\\:tracking-widest{--tw-tracking:var(--tw-tracking-widest);letter-spacing:var(--tw-tracking-widest)}.tw\\:text-balance{text-wrap:balance}.tw\\:text-nowrap{text-wrap:nowrap}.tw\\:break-words{overflow-wrap:break-word}.tw\\:text-clip{text-overflow:clip}.tw\\:text-ellipsis{text-overflow:ellipsis}.tw\\:whitespace-normal{white-space:normal}.tw\\:whitespace-nowrap{white-space:nowrap}.tw\\:\\[color\\:blue\\]{color:#00f}.tw\\:text-accent{color:var(--accent)}.tw\\:text-accent-foreground{color:var(--accent-foreground)}.tw\\:text-background{color:var(--background)}.tw\\:text-blue-400{color:var(--tw-color-blue-400)}.tw\\:text-blue-500{color:var(--tw-color-blue-500)}.tw\\:text-blue-600{color:var(--tw-color-blue-600)}.tw\\:text-blue-800{color:var(--tw-color-blue-800)}.tw\\:text-card{color:var(--card)}.tw\\:text-card-foreground{color:var(--card-foreground)}.tw\\:text-current{color:currentColor}.tw\\:text-destructive{color:var(--destructive)}.tw\\:text-destructive-foreground{color:var(--destructive-foreground)}.tw\\:text-foreground,.tw\\:text-foreground\\/30{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/30{color:color-mix(in oklab, var(--foreground) 30%, transparent)}}.tw\\:text-foreground\\/50{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/50{color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.tw\\:text-foreground\\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/60{color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.tw\\:text-foreground\\/70{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-foreground\\/70{color:color-mix(in oklab, var(--foreground) 70%, transparent)}}.tw\\:text-gray-300{color:var(--tw-color-gray-300)}.tw\\:text-gray-500{color:var(--tw-color-gray-500)}.tw\\:text-gray-600{color:var(--tw-color-gray-600)}.tw\\:text-gray-700{color:var(--tw-color-gray-700)}.tw\\:text-gray-800{color:var(--tw-color-gray-800)}.tw\\:text-green-600{color:var(--tw-color-green-600)}.tw\\:text-green-700{color:var(--tw-color-green-700)}.tw\\:text-green-800{color:var(--tw-color-green-800)}.tw\\:text-inherit{color:inherit}.tw\\:text-muted{color:var(--muted)}.tw\\:text-muted-foreground,.tw\\:text-muted-foreground\\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-muted-foreground\\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.tw\\:text-orange-800{color:var(--tw-color-orange-800)}.tw\\:text-popover{color:var(--popover)}.tw\\:text-popover-foreground{color:var(--popover-foreground)}.tw\\:text-primary{color:var(--primary)}.tw\\:text-primary-foreground{color:var(--primary-foreground)}.tw\\:text-purple-900{color:var(--tw-color-purple-900)}.tw\\:text-red-500{color:var(--tw-color-red-500)}.tw\\:text-red-600{color:var(--tw-color-red-600)}.tw\\:text-red-700{color:var(--tw-color-red-700)}.tw\\:text-red-800{color:var(--tw-color-red-800)}.tw\\:text-rose-600{color:var(--tw-color-rose-600)}.tw\\:text-secondary{color:var(--secondary)}.tw\\:text-secondary-foreground{color:var(--secondary-foreground)}.tw\\:text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.tw\\:text-sidebar-foreground,.tw\\:text-sidebar-foreground\\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:text-sidebar-foreground\\/70{color:color-mix(in oklab, var(--sidebar-foreground) 70%, transparent)}}.tw\\:text-sky-600{color:var(--tw-color-sky-600)}.tw\\:text-slate-900{color:var(--tw-color-slate-900)}.tw\\:text-teal-600{color:var(--tw-color-teal-600)}.tw\\:text-white{color:var(--tw-color-white)}.tw\\:text-yellow-400{color:var(--tw-color-yellow-400)}.tw\\:text-yellow-600{color:var(--tw-color-yellow-600)}.tw\\:text-yellow-700{color:var(--tw-color-yellow-700)}.tw\\:capitalize{text-transform:capitalize}.tw\\:uppercase{text-transform:uppercase}.tw\\:italic{font-style:italic}.tw\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tw\\:line-through{text-decoration-line:line-through}.tw\\:underline{text-decoration-line:underline}.tw\\:decoration-destructive{-webkit-text-decoration-color:var(--destructive);-webkit-text-decoration-color:var(--destructive);text-decoration-color:var(--destructive)}.tw\\:underline-offset-4{text-underline-offset:4px}.tw\\:opacity-0{opacity:0}.tw\\:opacity-40{opacity:.4}.tw\\:opacity-50{opacity:.5}.tw\\:opacity-60{opacity:.6}.tw\\:opacity-100{opacity:1}.tw\\:bg-blend-color{background-blend-mode:color}.tw\\:shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-\\[0_0_0_1px_var\\(--sidebar-border\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:shadow-none\\!{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.tw\\:shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:ring-background{--tw-ring-color:var(--background)}.tw\\:ring-foreground\\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.tw\\:ring-foreground\\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.tw\\:ring-primary{--tw-ring-color:var(--primary)}.tw\\:ring-ring\\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.tw\\:ring-ring\\/50{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.tw\\:ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.tw\\:ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.tw\\:ring-offset-background{--tw-ring-offset-color:var(--background)}.tw\\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tw\\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.tw\\:drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--tw-drop-shadow-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.tw\\:transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[left\\,right\\,width\\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[margin\\,opacity\\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[width\\,height\\,padding\\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:transition-none{transition-property:none}.tw\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.tw\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.tw\\:ease-linear{--tw-ease:linear;transition-timing-function:linear}.tw\\:prose-quoteless :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tw\\:prose-quoteless :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.tw\\:outline-none{--tw-outline-style:none;outline-style:none}.tw\\:select-none{-webkit-user-select:none;user-select:none}.tw\\:group-focus-within\\/menu-item\\:opacity-100:is(:where(.tw\\:group\\/menu-item):focus-within *){opacity:1}@media (hover:hover){.tw\\:group-hover\\:visible:is(:where(.tw\\:group):hover *){visibility:visible}.tw\\:group-hover\\:hidden:is(:where(.tw\\:group):hover *){display:none}.tw\\:group-hover\\:opacity-100:is(:where(.tw\\:group):hover *),.tw\\:group-hover\\/menu-item\\:opacity-100:is(:where(.tw\\:group\\/menu-item):hover *){opacity:1}}.tw\\:group-focus\\/context-menu-item\\:text-accent-foreground:is(:where(.tw\\:group\\/context-menu-item):focus *),.tw\\:group-focus\\/dropdown-menu-item\\:text-accent-foreground:is(:where(.tw\\:group\\/dropdown-menu-item):focus *),.tw\\:group-focus\\/menubar-item\\:text-accent-foreground:is(:where(.tw\\:group\\/menubar-item):focus *){color:var(--accent-foreground)}.tw\\:group-has-disabled\\/field\\:opacity-50:is(:where(.tw\\:group\\/field):has(:disabled) *){opacity:.5}.tw\\:group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pe-8:is(:where(.tw\\:group\\/menu-item):has([data-sidebar=menu-action]) *){padding-inline-end:calc(calc(var(--spacing)) * 8)}.tw\\:group-has-data-\\[size\\=lg\\]\\/avatar-group\\:size-10:is(:where(.tw\\:group\\/avatar-group):has([data-size=lg]) *){width:calc(calc(var(--spacing)) * 10);height:calc(calc(var(--spacing)) * 10)}.tw\\:group-has-data-\\[size\\=sm\\]\\/avatar-group\\:size-6:is(:where(.tw\\:group\\/avatar-group):has([data-size=sm]) *){width:calc(calc(var(--spacing)) * 6);height:calc(calc(var(--spacing)) * 6)}.tw\\:group-has-data-\\[slot\\=command-shortcut\\]\\/command-item\\:hidden:is(:where(.tw\\:group\\/command-item):has([data-slot=command-shortcut]) *){display:none}.tw\\:group-has-\\[\\>input\\]\\/input-group\\:pt-2:is(:where(.tw\\:group\\/input-group):has(>input) *){padding-top:calc(calc(var(--spacing)) * 2)}.tw\\:group-has-\\[\\>input\\]\\/input-group\\:pb-2:is(:where(.tw\\:group\\/input-group):has(>input) *){padding-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:group-has-\\[\\>svg\\]\\/alert\\:col-start-2:is(:where(.tw\\:group\\/alert):has(>svg) *){grid-column-start:2}.tw\\:group-data-\\[checked\\=true\\]\\/command-item\\:opacity-100:is(:where(.tw\\:group\\/command-item)[data-checked=true] *){opacity:1}.tw\\:group-data-\\[collapsible\\=icon\\]\\:-mt-8:is(:where(.tw\\:group)[data-collapsible=icon] *){margin-top:calc(calc(var(--spacing)) * -8)}.tw\\:group-data-\\[collapsible\\=icon\\]\\:hidden:is(:where(.tw\\:group)[data-collapsible=icon] *){display:none}.tw\\:group-data-\\[collapsible\\=icon\\]\\:size-8\\!:is(:where(.tw\\:group)[data-collapsible=icon] *){width:calc(calc(var(--spacing)) * 8)!important;height:calc(calc(var(--spacing)) * 8)!important}.tw\\:group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\):is(:where(.tw\\:group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.tw\\:group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\]:is(:where(.tw\\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(calc(var(--spacing)) * 4)))}.tw\\:group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\]:is(:where(.tw\\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(calc(var(--spacing)) * 4)) + 2px)}.tw\\:group-data-\\[collapsible\\=icon\\]\\:overflow-hidden:is(:where(.tw\\:group)[data-collapsible=icon] *){overflow:hidden}.tw\\:group-data-\\[collapsible\\=icon\\]\\:p-0\\!:is(:where(.tw\\:group)[data-collapsible=icon] *){padding:calc(calc(var(--spacing)) * 0)!important}.tw\\:group-data-\\[collapsible\\=icon\\]\\:p-2\\!:is(:where(.tw\\:group)[data-collapsible=icon] *){padding:calc(calc(var(--spacing)) * 2)!important}.tw\\:group-data-\\[collapsible\\=icon\\]\\:opacity-0:is(:where(.tw\\:group)[data-collapsible=icon] *){opacity:0}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:w-0:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){width:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:group-data-\\[disabled\\=true\\]\\:pointer-events-none:is(:where(.tw\\:group)[data-disabled=true] *){pointer-events:none}.tw\\:group-data-\\[disabled\\=true\\]\\:opacity-50:is(:where(.tw\\:group)[data-disabled=true] *),.tw\\:group-data-\\[disabled\\=true\\]\\/input-group\\:opacity-50:is(:where(.tw\\:group\\/input-group)[data-disabled=true] *){opacity:.5}.tw\\:group-data-\\[side\\=primary\\]\\:-right-4:is(:where(.tw\\:group)[data-side=primary] *){right:calc(calc(var(--spacing)) * -4)}.tw\\:group-data-\\[side\\=primary\\]\\:border-e:is(:where(.tw\\:group)[data-side=primary] *){border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.tw\\:group-data-\\[side\\=secondary\\]\\:left-0:is(:where(.tw\\:group)[data-side=secondary] *){left:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-\\[side\\=secondary\\]\\:rotate-180:is(:where(.tw\\:group)[data-side=secondary] *){rotate:180deg}.tw\\:group-data-\\[side\\=secondary\\]\\:border-s:is(:where(.tw\\:group)[data-side=secondary] *){border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.tw\\:group-data-\\[size\\=default\\]\\/avatar\\:size-2\\.5:is(:where(.tw\\:group\\/avatar)[data-size=default] *){width:calc(calc(var(--spacing)) * 2.5);height:calc(calc(var(--spacing)) * 2.5)}.tw\\:group-data-\\[size\\=default\\]\\/switch\\:size-4:is(:where(.tw\\:group\\/switch)[data-size=default] *){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[size\\=lg\\]\\/avatar\\:size-3:is(:where(.tw\\:group\\/avatar)[data-size=lg] *){width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=sm\\]\\/avatar\\:size-2:is(:where(.tw\\:group\\/avatar)[data-size=sm] *){width:calc(calc(var(--spacing)) * 2);height:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[size\\=sm\\]\\/avatar\\:text-xs:is(:where(.tw\\:group\\/avatar)[data-size=sm] *){font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:p-3:is(:where(.tw\\:group\\/card)[data-size=sm] *){padding:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:px-3:is(:where(.tw\\:group\\/card)[data-size=sm] *){padding-inline:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:text-sm:is(:where(.tw\\:group\\/card)[data-size=sm] *){font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:size-3:is(:where(.tw\\:group\\/switch)[data-size=sm] *){width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:rounded-none:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *){border-radius:0}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:px-2:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *){padding-inline:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[variant\\=floating\\]\\:rounded-lg:is(:where(.tw\\:group)[data-variant=floating] *){border-radius:var(--radius)}.tw\\:group-data-\\[variant\\=floating\\]\\:shadow-sm:is(:where(.tw\\:group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:group-data-\\[variant\\=floating\\]\\:ring-1:is(:where(.tw\\:group)[data-variant=floating] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:group-data-\\[variant\\=floating\\]\\:ring-sidebar-border:is(:where(.tw\\:group)[data-variant=floating] *){--tw-ring-color:var(--sidebar-border)}.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:bg-transparent:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *){background-color:#0000}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:mx-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){margin-inline:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:mt-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){margin-top:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:h-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){height:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:w-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){width:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:text-center:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=bottom] *){text-align:center}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:my-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){margin-block:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:me-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){margin-inline-end:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:h-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){height:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=left\\]\\/drawer-content\\:w-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=left] *){width:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:my-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){margin-block:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:ms-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){margin-inline-start:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:h-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){height:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=right\\]\\/drawer-content\\:w-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=right] *){width:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:mx-auto:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){margin-inline:auto}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:mb-4:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){margin-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:block:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){display:block}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:h-1\\.5:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){height:calc(calc(var(--spacing)) * 1.5)}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:w-\\[100px\\]:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){width:100px}.tw\\:group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:text-center:is(:where(.tw\\:group\\/drawer-content)[data-vaul-drawer-direction=top] *){text-align:center}.tw\\:group-data-selected\\/command-item\\:text-foreground:is(:where(.tw\\:group\\/command-item):where([data-selected=true]) *){color:var(--foreground)}.tw\\:group-data-horizontal\\/tabs\\:h-8:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *){height:calc(calc(var(--spacing)) * 8)}.tw\\:group-data-vertical\\/tabs\\:h-fit:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){height:fit-content}.tw\\:group-data-vertical\\/tabs\\:w-full:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){width:100%}.tw\\:group-data-vertical\\/tabs\\:flex-col:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.tw\\:group-data-vertical\\/tabs\\:justify-start:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}@media (hover:hover){.tw\\:peer-hover\\/menu-button\\:text-sidebar-accent-foreground:is(:where(.tw\\:peer\\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}.tw\\:peer-focus\\:group-hover\\:text-blue-500:is(:where(.tw\\:peer):focus~*):is(:where(.tw\\:group):hover *){color:var(--tw-color-blue-500)}}.tw\\:peer-disabled\\:cursor-not-allowed:is(:where(.tw\\:peer):disabled~*){cursor:not-allowed}.tw\\:peer-disabled\\:opacity-50:is(:where(.tw\\:peer):disabled~*){opacity:.5}.tw\\:peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5:is(:where(.tw\\:peer\\/menu-button)[data-size=default]~*){top:calc(calc(var(--spacing)) * 1.5)}.tw\\:peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5:is(:where(.tw\\:peer\\/menu-button)[data-size=lg]~*){top:calc(calc(var(--spacing)) * 2.5)}.tw\\:peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1:is(:where(.tw\\:peer\\/menu-button)[data-size=sm]~*){top:calc(calc(var(--spacing)) * 1)}.tw\\:peer-data-active\\/menu-button\\:text-sidebar-accent-foreground:is(:is(:where(.tw\\:peer\\/menu-button):where([data-state=active]),:where(.tw\\:peer\\/menu-button):where([data-active]:not([data-active=false])))~*){color:var(--sidebar-accent-foreground)}.tw\\:file\\:inline-flex::file-selector-button{display:inline-flex}.tw\\:file\\:h-6::file-selector-button{height:calc(calc(var(--spacing)) * 6)}.tw\\:file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.tw\\:file\\:bg-transparent::file-selector-button{background-color:#0000}.tw\\:file\\:text-sm::file-selector-button{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:file\\:font-medium::file-selector-button{--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}.tw\\:file\\:text-foreground::file-selector-button{color:var(--foreground)}.tw\\:placeholder\\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.tw\\:before\\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.tw\\:before\\:absolute:before{content:var(--tw-content);position:absolute}.tw\\:before\\:inset-0:before{content:var(--tw-content);inset:calc(calc(var(--spacing)) * 0)}.tw\\:before\\:top-0\\.5:before{content:var(--tw-content);top:calc(calc(var(--spacing)) * .5)}.tw\\:before\\:left-0:before{content:var(--tw-content);left:calc(calc(var(--spacing)) * 0)}.tw\\:before\\:-z-1:before{content:var(--tw-content);z-index:calc(1 * -1)}.tw\\:before\\:block:before{content:var(--tw-content);display:block}.tw\\:before\\:hidden:before{content:var(--tw-content);display:none}.tw\\:before\\:h-4:before{content:var(--tw-content);height:calc(calc(var(--spacing)) * 4)}.tw\\:before\\:w-4:before{content:var(--tw-content);width:calc(calc(var(--spacing)) * 4)}.tw\\:before\\:cursor-pointer:before{content:var(--tw-content);cursor:pointer}.tw\\:before\\:rounded:before{content:var(--tw-content);border-radius:.25rem}.tw\\:before\\:rounded-\\[inherit\\]:before{content:var(--tw-content);border-radius:inherit}.tw\\:before\\:border:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.tw\\:before\\:border-primary:before{content:var(--tw-content);border-color:var(--primary)}.tw\\:before\\:bg-primary:before{content:var(--tw-content);background-color:var(--primary)}.tw\\:before\\:bg-cover:before{content:var(--tw-content);background-size:cover}.tw\\:before\\:bg-no-repeat:before{content:var(--tw-content);background-repeat:no-repeat}.tw\\:before\\:backdrop-blur-2xl:before{content:var(--tw-content);--tw-backdrop-blur:blur(var(--tw-blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.tw\\:before\\:backdrop-saturate-150:before{content:var(--tw-content);--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.tw\\:before\\:content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.tw\\:before\\:content-\\[\\\\\\"\\\\\\"\\]:before{--tw-content:\\"\\";content:var(--tw-content)}.tw\\:after\\:absolute:after{content:var(--tw-content);position:absolute}.tw\\:after\\:-inset-2:after{content:var(--tw-content);inset:calc(calc(var(--spacing)) * -2)}.tw\\:after\\:inset-0:after{content:var(--tw-content);inset:calc(calc(var(--spacing)) * 0)}.tw\\:after\\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(calc(var(--spacing)) * -3)}.tw\\:after\\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(calc(var(--spacing)) * -2)}.tw\\:after\\:inset-y-0:after{content:var(--tw-content);inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:after\\:start-1\\/2:after{content:var(--tw-content);inset-inline-start:50%}.tw\\:after\\:top-\\[6px\\]:after{content:var(--tw-content);top:6px}.tw\\:after\\:right-\\[7px\\]:after{content:var(--tw-content);right:7px}.tw\\:after\\:left-\\[7px\\]:after{content:var(--tw-content);left:7px}.tw\\:after\\:block:after{content:var(--tw-content);display:block}.tw\\:after\\:hidden:after{content:var(--tw-content);display:none}.tw\\:after\\:h-0\\.5:after{content:var(--tw-content);height:calc(calc(var(--spacing)) * .5)}.tw\\:after\\:h-\\[6px\\]:after{content:var(--tw-content);height:6px}.tw\\:after\\:w-1:after{content:var(--tw-content);width:calc(calc(var(--spacing)) * 1)}.tw\\:after\\:w-\\[2px\\]:after{content:var(--tw-content);width:2px}.tw\\:after\\:w-\\[3px\\]:after{content:var(--tw-content);width:3px}.tw\\:after\\:-translate-x-1\\/2:after{content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:after\\:rotate-45:after{content:var(--tw-content);rotate:45deg}.tw\\:after\\:cursor-pointer:after{content:var(--tw-content);cursor:pointer}.tw\\:after\\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.tw\\:after\\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.tw\\:after\\:border-t-0:after{content:var(--tw-content);border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:after\\:border-r-2:after{content:var(--tw-content);border-right-style:var(--tw-border-style);border-right-width:2px}.tw\\:after\\:border-b-2:after{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.tw\\:after\\:border-l-0:after{content:var(--tw-content);border-left-style:var(--tw-border-style);border-left-width:0}.tw\\:after\\:border-solid:after{content:var(--tw-content);--tw-border-style:solid;border-style:solid}.tw\\:after\\:border-border:after{content:var(--tw-content);border-color:var(--border)}.tw\\:after\\:border-white:after{content:var(--tw-content);border-color:var(--tw-color-white)}.tw\\:after\\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.tw\\:after\\:bg-muted:after{content:var(--tw-content);background-color:var(--muted)}.tw\\:after\\:opacity-0:after{content:var(--tw-content);opacity:0}.tw\\:after\\:mix-blend-darken:after{content:var(--tw-content);mix-blend-mode:darken}.tw\\:after\\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--tw-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tw-default-transition-duration))}.tw\\:after\\:content-\\[\\"\\"\\]:after{--tw-content:"";content:var(--tw-content)}.tw\\:after\\:content-\\[\\\\\\"\\\\\\"\\]:after{--tw-content:\\"\\";content:var(--tw-content)}.tw\\:group-data-\\[collapsible\\=offcanvas\\]\\:after\\:start-full:is(:where(.tw\\:group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);inset-inline-start:100%}.tw\\:group-data-horizontal\\/tabs\\:after\\:inset-x-0:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-horizontal\\/tabs\\:after\\:bottom-\\[-5px\\]:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.tw\\:group-data-horizontal\\/tabs\\:after\\:h-0\\.5:is(:where(.tw\\:group\\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(calc(var(--spacing)) * .5)}.tw\\:group-data-vertical\\/tabs\\:after\\:inset-y-0:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:group-data-vertical\\/tabs\\:after\\:-end-1:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-inline-end:calc(calc(var(--spacing)) * -1)}.tw\\:group-data-vertical\\/tabs\\:after\\:w-0\\.5:is(:where(.tw\\:group\\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(calc(var(--spacing)) * .5)}.tw\\:first\\:mt-0:first-child{margin-top:calc(calc(var(--spacing)) * 0)}.tw\\:even\\:bg-muted:nth-child(2n){background-color:var(--muted)}@media (hover:hover){.tw\\:hover\\:-mt-4:hover{margin-top:calc(calc(var(--spacing)) * -4)}.tw\\:hover\\:cursor-pointer:hover{cursor:pointer}.tw\\:hover\\:bg-accent:hover,.tw\\:hover\\:bg-accent\\/80:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-accent\\/80:hover{background-color:color-mix(in oklab, var(--accent) 80%, transparent)}}.tw\\:hover\\:bg-blue-600:hover{background-color:var(--tw-color-blue-600)}.tw\\:hover\\:bg-destructive\\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-destructive\\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:hover\\:bg-gray-50:hover{background-color:var(--tw-color-gray-50)}.tw\\:hover\\:bg-input:hover{background-color:var(--input)}.tw\\:hover\\:bg-muted:hover,.tw\\:hover\\:bg-muted\\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-muted\\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:hover\\:bg-muted\\/80:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-muted\\/80:hover{background-color:color-mix(in oklab, var(--muted) 80%, transparent)}}.tw\\:hover\\:bg-primary\\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-primary\\/10:hover{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.tw\\:hover\\:bg-primary\\/70:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-primary\\/70:hover{background-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.tw\\:hover\\:bg-red-500:hover{background-color:var(--tw-color-red-500)}.tw\\:hover\\:bg-secondary:hover,.tw\\:hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.tw\\:hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.tw\\:hover\\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.tw\\:hover\\:bg-transparent:hover{background-color:#0000}.tw\\:hover\\:text-foreground:hover{color:var(--foreground)}.tw\\:hover\\:text-muted-foreground:hover{color:var(--muted-foreground)}.tw\\:hover\\:text-primary-foreground:hover{color:var(--primary-foreground)}.tw\\:hover\\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.tw\\:hover\\:underline:hover{text-decoration-line:underline}.tw\\:hover\\:opacity-80:hover{opacity:.8}.tw\\:hover\\:opacity-100:hover{opacity:1}.tw\\:hover\\:shadow-\\[0_0_0_1px_var\\(--sidebar-accent\\)\\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-accent));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:hover\\:ring-3:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:hover\\:group-data-\\[collapsible\\=offcanvas\\]\\:bg-sidebar:hover:is(:where(.tw\\:group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.tw\\:hover\\:after\\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.tw\\:focus\\:relative:focus{position:relative}.tw\\:focus\\:z-10:focus{z-index:10}.tw\\:focus\\:bg-accent:focus{background-color:var(--accent)}.tw\\:focus\\:bg-muted:focus{background-color:var(--muted)}.tw\\:focus\\:text-accent-foreground:focus{color:var(--accent-foreground)}.tw\\:focus\\:text-foreground:focus{color:var(--foreground)}.tw\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus\\:ring-ring:focus{--tw-ring-color:var(--ring)}.tw\\:focus\\:ring-offset-1:focus{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.tw\\:focus\\:ring-offset-background:focus{--tw-ring-offset-color:var(--background)}.tw\\:focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tw\\:focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}:is(.tw\\:focus\\:\\*\\*\\:text-accent-foreground:focus *),:is(.tw\\:not-data-\\[variant\\=destructive\\]\\:focus\\:\\*\\*\\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.tw\\:focus-visible\\:relative:focus-visible{position:relative}.tw\\:focus-visible\\:z-10:focus-visible{z-index:10}.tw\\:focus-visible\\:border-destructive\\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:focus-visible\\:border-destructive\\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.tw\\:focus-visible\\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-3:focus-visible,.tw\\:focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:focus-visible\\:ring-\\[color\\:hsl\\(240\\,5\\%\\,64\\.9\\%\\)\\]:focus-visible{--tw-ring-color:#a1a1aa}.tw\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:focus-visible\\:ring-ring:focus-visible,.tw\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.tw\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.tw\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.tw\\:focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tw\\:focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.tw\\:focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.tw\\:focus-visible\\:outline-ring:focus-visible{outline-color:var(--ring)}:is(.tw\\:\\*\\:focus-visible\\:relative>*):focus-visible{position:relative}:is(.tw\\:\\*\\:focus-visible\\:z-10>*):focus-visible{z-index:10}.tw\\:active\\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.tw\\:active\\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.tw\\:active\\:ring-3:active{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:active\\:not-aria-\\[haspopup\\]\\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.tw\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.tw\\:disabled\\:bg-input\\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:disabled\\:bg-input\\/50:disabled{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.tw\\:disabled\\:bg-transparent:disabled{background-color:#0000}.tw\\:disabled\\:opacity-50:disabled{opacity:.5}:where([data-side=primary]) .tw\\:in-data-\\[side\\=primary\\]\\:cursor-w-resize{cursor:w-resize}:where([data-side=secondary]) .tw\\:in-data-\\[side\\=secondary\\]\\:cursor-e-resize{cursor:e-resize}:where([data-slot=button-group]) .tw\\:in-data-\\[slot\\=button-group\\]\\:rounded-lg{border-radius:var(--radius)}:where([data-slot=combobox-content]) .tw\\:in-data-\\[slot\\=combobox-content\\]\\:focus-within\\:border-inherit:focus-within{border-color:inherit}:where([data-slot=combobox-content]) .tw\\:in-data-\\[slot\\=combobox-content\\]\\:focus-within\\:ring-0:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:where([data-slot=dialog-content]) .tw\\:in-data-\\[slot\\=dialog-content\\]\\:rounded-lg\\!{border-radius:var(--radius)!important}:where([data-slot=tooltip-content]) .tw\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/20{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){:where([data-slot=tooltip-content]) .tw\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/20{background-color:color-mix(in oklab, var(--background) 20%, transparent)}}:where([data-slot=tooltip-content]) .tw\\:in-data-\\[slot\\=tooltip-content\\]\\:text-background{color:var(--background)}.tw\\:has-disabled\\:bg-input\\/50:has(:disabled){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-disabled\\:bg-input\\/50:has(:disabled){background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.tw\\:has-disabled\\:opacity-50:has(:disabled){opacity:.5}.tw\\:has-aria-expanded\\:bg-muted\\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-aria-expanded\\:bg-muted\\/50:has([aria-expanded=true]){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:has-data-\\[icon\\=inline-end\\]\\:pe-1:has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 1)}.tw\\:has-data-\\[icon\\=inline-end\\]\\:pe-1\\.5:has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[icon\\=inline-end\\]\\:pe-2:has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:has-data-\\[icon\\=inline-end\\]\\:pe-1\\.5:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-end]){padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[icon\\=inline-start\\]\\:ps-1:has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 1)}.tw\\:has-data-\\[icon\\=inline-start\\]\\:ps-1\\.5:has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[icon\\=inline-start\\]\\:ps-2:has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[spacing\\=0\\]\\/toggle-group\\:has-data-\\[icon\\=inline-start\\]\\:ps-1\\.5:is(:where(.tw\\:group\\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-start]){padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[slot\\=alert-action\\]\\:relative:has([data-slot=alert-action]){position:relative}.tw\\:has-data-\\[slot\\=alert-action\\]\\:pe-18:has([data-slot=alert-action]){padding-inline-end:calc(calc(var(--spacing)) * 18)}.tw\\:has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.tw\\:has-data-\\[slot\\=card-description\\]\\:grid-rows-\\[auto_auto\\]:has([data-slot=card-description]){grid-template-rows:auto auto}.tw\\:has-data-\\[slot\\=card-footer\\]\\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(calc(var(--spacing)) * 0)}.tw\\:has-data-\\[slot\\=kbd\\]\\:pe-1\\.5:has([data-slot=kbd]){padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-data-\\[variant\\=inset\\]\\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:var(--ring)}.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-3:has([data-slot=input-group-control]:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:border-destructive:has([data-slot][aria-invalid=true]){border-color:var(--destructive)}.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-3:has([data-slot][aria-invalid=true]){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:h-auto:has(>[data-align=block-end]){height:auto}.tw\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:flex-col:has(>[data-align=block-end]){flex-direction:column}.tw\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:h-auto:has(>[data-align=block-start]){height:auto}.tw\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:flex-col:has(>[data-align=block-start]){flex-direction:column}.tw\\:has-\\[\\>\\[data-slot\\=button-group\\]\\]\\:gap-2:has(>[data-slot=button-group]){gap:calc(calc(var(--spacing)) * 2)}.tw\\:has-\\[\\>button\\]\\:ms-\\[-0\\.3rem\\]:has(>button){margin-inline-start:-.3rem}.tw\\:has-\\[\\>button\\]\\:me-\\[-0\\.3rem\\]:has(>button){margin-inline-end:-.3rem}.tw\\:has-\\[\\>img\\]\\:grid-cols-\\[auto_1fr\\]:has(>img){grid-template-columns:auto 1fr}.tw\\:has-\\[\\>img\\]\\:gap-x-2:has(>img){column-gap:calc(calc(var(--spacing)) * 2)}.tw\\:has-\\[\\>img\\:first-child\\]\\:pt-0:has(>img:first-child){padding-top:calc(calc(var(--spacing)) * 0)}.tw\\:has-\\[\\>kbd\\]\\:ms-\\[-0\\.15rem\\]:has(>kbd){margin-inline-start:-.15rem}.tw\\:has-\\[\\>kbd\\]\\:me-\\[-0\\.15rem\\]:has(>kbd){margin-inline-end:-.15rem}.tw\\:has-\\[\\>svg\\]\\:grid-cols-\\[auto_1fr\\]:has(>svg){grid-template-columns:auto 1fr}.tw\\:has-\\[\\>svg\\]\\:gap-x-2:has(>svg){column-gap:calc(calc(var(--spacing)) * 2)}.tw\\:has-\\[\\>svg\\]\\:p-0:has(>svg){padding:calc(calc(var(--spacing)) * 0)}.tw\\:has-\\[\\>textarea\\]\\:h-auto:has(>textarea){height:auto}.tw\\:aria-disabled\\:pointer-events-none[aria-disabled=true]{pointer-events:none}.tw\\:aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}.tw\\:aria-expanded\\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.tw\\:aria-expanded\\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.tw\\:aria-expanded\\:text-foreground[aria-expanded=true]{color:var(--foreground)}.tw\\:aria-expanded\\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.tw\\:aria-expanded\\:opacity-100[aria-expanded=true]{opacity:1}.tw\\:aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.tw\\:aria-invalid\\:ring-0[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:aria-invalid\\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:aria-invalid\\:aria-checked\\:border-primary[aria-invalid=true][aria-checked=true]{border-color:var(--primary)}.tw\\:aria-pressed\\:bg-muted[aria-pressed=true]{background-color:var(--muted)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:h-px[aria-orientation=horizontal]{height:1px}.tw\\:aria-\\[orientation\\=horizontal\\]\\:w-full[aria-orientation=horizontal]{width:100%}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:start-0[aria-orientation=horizontal]:after{content:var(--tw-content);inset-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:h-1[aria-orientation=horizontal]:after{content:var(--tw-content);height:calc(calc(var(--spacing)) * 1)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:w-full[aria-orientation=horizontal]:after{content:var(--tw-content);width:100%}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:translate-x-0[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:aria-\\[orientation\\=horizontal\\]\\:after\\:-translate-y-1\\/2[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:aria-\\[orientation\\=vertical\\]\\:flex-col[aria-orientation=vertical]{flex-direction:column}.tw\\:data-inset\\:ps-7[data-inset]{padding-inline-start:calc(calc(var(--spacing)) * 7)}.tw\\:data-placeholder\\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.tw\\:data-\\[align-trigger\\=false\\]\\:min-w-36[data-align-trigger=false]{min-width:calc(calc(var(--spacing)) * 36)}.tw\\:data-\\[align-trigger\\=true\\]\\:min-w-\\(--radix-select-trigger-width\\)[data-align-trigger=true]{min-width:var(--radix-select-trigger-width)}.tw\\:data-\\[align-trigger\\=true\\]\\:animate-none[data-align-trigger=true]{animation:none}.tw\\:data-\\[disabled\\=true\\]\\:pointer-events-none[data-disabled=true]{pointer-events:none}.tw\\:data-\\[disabled\\=true\\]\\:opacity-50[data-disabled=true]{opacity:.5}.tw\\:data-\\[position\\=popper\\]\\:h-\\(--radix-select-trigger-height\\)[data-position=popper]{height:var(--radix-select-trigger-height)}.tw\\:data-\\[position\\=popper\\]\\:w-full[data-position=popper]{width:100%}.tw\\:data-\\[position\\=popper\\]\\:min-w-\\(--radix-select-trigger-width\\)[data-position=popper]{min-width:var(--radix-select-trigger-width)}.tw\\:data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(calc(var(--spacing)) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.tw\\:data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(calc(var(--spacing)) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.tw\\:data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:calc(calc(var(--spacing)) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.tw\\:data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(calc(var(--spacing)) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.tw\\:data-\\[size\\=default\\]\\:h-8[data-size=default]{height:calc(calc(var(--spacing)) * 8)}.tw\\:data-\\[size\\=default\\]\\:h-\\[18\\.4px\\][data-size=default]{height:18.4px}.tw\\:data-\\[size\\=default\\]\\:w-\\[32px\\][data-size=default]{width:32px}.tw\\:data-\\[size\\=lg\\]\\:size-10[data-size=lg]{width:calc(calc(var(--spacing)) * 10);height:calc(calc(var(--spacing)) * 10)}.tw\\:data-\\[size\\=md\\]\\:text-sm[data-size=md]{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:data-\\[size\\=sm\\]\\:size-6[data-size=sm]{width:calc(calc(var(--spacing)) * 6);height:calc(calc(var(--spacing)) * 6)}.tw\\:data-\\[size\\=sm\\]\\:h-7[data-size=sm]{height:calc(calc(var(--spacing)) * 7)}.tw\\:data-\\[size\\=sm\\]\\:h-\\[14px\\][data-size=sm]{height:14px}.tw\\:data-\\[size\\=sm\\]\\:w-\\[24px\\][data-size=sm]{width:24px}.tw\\:data-\\[size\\=sm\\]\\:gap-3[data-size=sm]{gap:calc(calc(var(--spacing)) * 3)}.tw\\:data-\\[size\\=sm\\]\\:rounded-\\[min\\(var\\(--tw-radius-md\\)\\,10px\\)\\][data-size=sm]{border-radius:min(var(--tw-radius-md), 10px)}.tw\\:data-\\[size\\=sm\\]\\:py-3[data-size=sm]{padding-block:calc(calc(var(--spacing)) * 3)}.tw\\:data-\\[size\\=sm\\]\\:text-xs[data-size=sm]{font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}.tw\\:data-\\[size\\=sm\\]\\:has-data-\\[slot\\=card-footer\\]\\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(calc(var(--spacing)) * 0)}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-item]:focus{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-item]:focus{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:data-highlighted\\:bg-foreground\\/10 *)[data-slot$=-item][data-highlighted]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-item\\]\\:data-highlighted\\:bg-foreground\\/10 *)[data-slot$=-item][data-highlighted]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-separator\\]\\:bg-foreground\\/5 *)[data-slot$=-separator]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-separator\\]\\:bg-foreground\\/5 *)[data-slot$=-separator]{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-trigger]:focus{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:focus\\:bg-foreground\\/10 *)[data-slot$=-trigger]:focus{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:aria-expanded\\:bg-foreground\\/10\\! *)[data-slot$=-trigger][aria-expanded=true]{background-color:var(--foreground)!important}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[slot\\$\\=-trigger\\]\\:aria-expanded\\:bg-foreground\\/10\\! *)[data-slot$=-trigger][aria-expanded=true]{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)!important}}:is(.tw\\:\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}:is(.tw\\:\\*\\:data-\\[slot\\=avatar\\]\\:ring-2>*)[data-slot=avatar]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.tw\\:\\*\\:data-\\[slot\\=avatar\\]\\:ring-background>*)[data-slot=avatar]{--tw-ring-color:var(--background)}:is(.tw\\:\\*\\:data-\\[slot\\=input-group-addon\\]\\:ps-2\\!>*)[data-slot=input-group-addon]{padding-inline-start:calc(calc(var(--spacing)) * 2)!important}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:relative *)[data-slot=kbd]{position:relative}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:isolate *)[data-slot=kbd]{isolation:isolate}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:z-50 *)[data-slot=kbd]{z-index:50}:is(.tw\\:\\*\\*\\:data-\\[slot\\=kbd\\]\\:rounded-sm *)[data-slot=kbd]{border-radius:calc(var(--radius) * .6)}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:flex>*)[data-slot=select-value]{display:flex}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:flex-1>*)[data-slot=select-value]{flex:1}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:gap-1\\.5>*)[data-slot=select-value]{gap:calc(calc(var(--spacing)) * 1.5)}:is(.tw\\:\\*\\:data-\\[slot\\=select-value\\]\\:text-start>*)[data-slot=select-value]{text-align:start}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:first\\:rounded-s-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:first-child{border-start-start-radius:var(--radius);border-end-start-radius:var(--radius)}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:first\\:rounded-t-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:last\\:rounded-e-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:last-child{border-start-end-radius:var(--radius);border-end-end-radius:var(--radius)}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:last\\:rounded-b-lg:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:last-child{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.tw\\:data-\\[state\\=active\\]\\:bg-background[data-state=active]{background-color:var(--background)}.tw\\:data-\\[state\\=active\\]\\:text-foreground[data-state=active]{color:var(--foreground)}.tw\\:data-\\[state\\=active\\]\\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:data-\\[state\\=closed\\]\\:overflow-hidden[data-state=closed]{overflow:hidden}.tw\\:data-\\[state\\=delayed-open\\]\\:animate-in[data-state=delayed-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tw\\:data-\\[state\\=delayed-open\\]\\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.tw\\:data-\\[state\\=delayed-open\\]\\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.tw\\:data-\\[state\\=on\\]\\:bg-muted[data-state=on]{background-color:var(--muted)}.tw\\:data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.tw\\:data-\\[state\\=open\\]\\:bg-muted[data-state=open]{background-color:var(--muted)}.tw\\:data-\\[state\\=open\\]\\:text-foreground[data-state=open]{color:var(--foreground)}.tw\\:data-\\[state\\=selected\\]\\:bg-muted[data-state=selected]{background-color:var(--muted)}.tw\\:data-\\[variant\\=destructive\\]\\:text-destructive[data-variant=destructive]{color:var(--destructive)}:is(:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:\\*\\*\\:text-accent-foreground\\! *)[data-variant=destructive] *),:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:text-accent-foreground\\! *)[data-variant=destructive]{color:var(--accent-foreground)!important}.tw\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.tw\\:data-\\[variant\\=destructive\\]\\:focus\\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-foreground\\/10\\! *)[data-variant=destructive]:focus{background-color:var(--foreground)!important}@supports (color:color-mix(in lab, red, red)){:is(.tw\\:\\*\\*\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-foreground\\/10\\! *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)!important}}.tw\\:data-\\[variant\\=line\\]\\:rounded-none[data-variant=line]{border-radius:0}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:border-s-0:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:border-t-0:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]{border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:group-data-horizontal\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:first\\:border-s:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]:first-child{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.tw\\:group-data-vertical\\/toggle-group\\:data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:first\\:border-t:is(:where(.tw\\:group\\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(calc(var(--spacing)) * 24)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:max-h-\\[80vh\\][data-vaul-drawer-direction=bottom]{max-height:80vh}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:rounded-t-xl[data-vaul-drawer-direction=bottom]{border-top-left-radius:calc(var(--radius) * 1.4);border-top-right-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=bottom\\]\\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:left-0[data-vaul-drawer-direction=left]{left:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:w-3\\/4[data-vaul-drawer-direction=left]{width:75%}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:flex-row[data-vaul-drawer-direction=left]{flex-direction:row}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:rounded-r-xl[data-vaul-drawer-direction=left]{border-top-right-radius:calc(var(--radius) * 1.4);border-bottom-right-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=left\\/right\\]\\:flex-row[data-vaul-drawer-direction=left\\/right]{flex-direction:row}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:right-0[data-vaul-drawer-direction=right]{right:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:w-3\\/4[data-vaul-drawer-direction=right]{width:75%}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:flex-row[data-vaul-drawer-direction=right]{flex-direction:row}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:rounded-l-xl[data-vaul-drawer-direction=right]{border-top-left-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:top-0[data-vaul-drawer-direction=top]{top:calc(calc(var(--spacing)) * 0)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(calc(var(--spacing)) * 24)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:max-h-\\[80vh\\][data-vaul-drawer-direction=top]{max-height:80vh}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:rounded-b-xl[data-vaul-drawer-direction=top]{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.tw\\:data-\\[vaul-drawer-direction\\=top\\]\\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.tw\\:supports-backdrop-filter\\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--tw-blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@media (min-width:40rem){.tw\\:sm\\:flex{display:flex}.tw\\:sm\\:max-w-sm{max-width:var(--tw-container-sm)}.tw\\:sm\\:flex-row{flex-direction:row}.tw\\:sm\\:justify-end{justify-content:flex-end}.tw\\:sm\\:p-8{padding:calc(calc(var(--spacing)) * 8)}.tw\\:sm\\:text-start{text-align:start}.tw\\:data-\\[vaul-drawer-direction\\=left\\]\\:sm\\:max-w-sm[data-vaul-drawer-direction=left],.tw\\:data-\\[vaul-drawer-direction\\=right\\]\\:sm\\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--tw-container-sm)}}@media (min-width:48rem){.tw\\:md\\:block{display:block}.tw\\:md\\:flex{display:flex}.tw\\:md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\\:md\\:gap-0\\.5{gap:calc(calc(var(--spacing)) * .5)}.tw\\:md\\:text-start{text-align:start}.tw\\:md\\:text-sm{font-size:var(--tw-text-sm);line-height:var(--tw-leading,var(--tw-text-sm--line-height))}.tw\\:md\\:text-pretty{text-wrap:pretty}.tw\\:md\\:opacity-0{opacity:0}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:m-2:is(:where(.tw\\:peer)[data-variant=inset]~*){margin:calc(calc(var(--spacing)) * 2)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:ms-0:is(:where(.tw\\:peer)[data-variant=inset]~*){margin-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl:is(:where(.tw\\:peer)[data-variant=inset]~*){border-radius:calc(var(--radius) * 1.4)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm:is(:where(.tw\\:peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ms-2:is(:where(.tw\\:peer)[data-variant=inset]~*):is(:where(.tw\\:peer)[data-state=collapsed]~*){margin-inline-start:calc(calc(var(--spacing)) * 2)}.tw\\:md\\:after\\:hidden:after{content:var(--tw-content);display:none}}@media (min-width:64rem){.tw\\:lg\\:flex{display:flex}.tw\\:lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}:where(.tw\\:lg\\:space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(calc(var(--spacing)) * 8) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(calc(var(--spacing)) * 8) * calc(1 - var(--tw-space-x-reverse)))}.tw\\:lg\\:text-5xl{font-size:var(--tw-text-5xl);line-height:var(--tw-leading,var(--tw-text-5xl--line-height))}}@media (min-width:48rem){@media (min-width:64rem){.tw\\:md\\:lg\\:hidden{display:none}}}@container (min-width:24rem){.tw\\:\\@sm\\:basis-auto{flex-basis:auto}}.tw\\:ltr\\:left-2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){left:calc(calc(var(--spacing)) * 2)}.tw\\:ltr\\:-translate-x-1\\/2:where(:dir(ltr),[dir=ltr],[dir=ltr] *){--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:right-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){right:calc(calc(var(--spacing)) * 2)}.tw\\:rtl\\:flex:where(:dir(rtl),[dir=rtl],[dir=rtl] *){display:flex}.tw\\:rtl\\:-translate-x-px:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:translate-x-1\\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:translate-x-px:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:after\\:translate-x-1\\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *):after{content:var(--tw-content);--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}:where([data-side=primary]) .tw\\:rtl\\:in-data-\\[side\\=primary\\]\\:cursor-e-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:e-resize}:where([data-side=secondary]) .tw\\:rtl\\:in-data-\\[side\\=secondary\\]\\:cursor-w-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:w-resize}.tw\\:rtl\\:aria-\\[orientation\\=horizontal\\]\\:after\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:data-\\[side\\=left\\]\\:translate-x-1:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[data-side=left]{--tw-translate-x:calc(calc(var(--spacing)) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:data-\\[side\\=right\\]\\:-translate-x-1:where(:dir(rtl),[dir=rtl],[dir=rtl] *)[data-side=right]{--tw-translate-x:calc(calc(var(--spacing)) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:dark\\:border-input:is(.dark *){border-color:var(--input)}.tw\\:dark\\:bg-destructive\\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:bg-destructive\\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:dark\\:bg-transparent:is(.dark *){background-color:#0000}.tw\\:dark\\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.tw\\:dark\\:text-rose-400:is(.dark *){color:var(--tw-color-rose-400)}.tw\\:dark\\:text-sky-400:is(.dark *){color:var(--tw-color-sky-400)}.tw\\:dark\\:text-teal-400:is(.dark *){color:var(--tw-color-teal-400)}.tw\\:dark\\:after\\:mix-blend-lighten:is(.dark *):after{content:var(--tw-content);mix-blend-mode:lighten}@media (hover:hover){.tw\\:dark\\:hover\\:bg-blue-500:is(.dark *):hover{background-color:var(--tw-color-blue-500)}.tw\\:dark\\:hover\\:bg-destructive\\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:hover\\:bg-destructive\\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.tw\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.tw\\:dark\\:hover\\:bg-muted\\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:hover\\:bg-muted\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.tw\\:dark\\:hover\\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.tw\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:dark\\:disabled\\:bg-input\\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:disabled\\:bg-input\\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.tw\\:dark\\:disabled\\:bg-transparent:is(.dark *):disabled{background-color:#0000}:where([data-slot=tooltip-content]) .tw\\:dark\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/10:is(.dark *){background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){:where([data-slot=tooltip-content]) .tw\\:dark\\:in-data-\\[slot\\=tooltip-content\\]\\:bg-background\\/10:is(.dark *){background-color:color-mix(in oklab, var(--background) 10%, transparent)}}.tw\\:dark\\:has-disabled\\:bg-input\\/80:is(.dark *):has(:disabled){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:has-disabled\\:bg-input\\/80:is(.dark *):has(:disabled){background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.tw\\:dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40:is(.dark *):has([data-slot][aria-invalid=true]){--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40:is(.dark *):has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:dark\\:aria-invalid\\:border-destructive\\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:aria-invalid\\:border-destructive\\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.tw\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.tw\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:data-open\\:animate-in:where([data-state=open]),.tw\\:data-open\\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tw\\:data-open\\:bg-accent:where([data-state=open]),.tw\\:data-open\\:bg-accent:where([data-open]:not([data-open=false])){background-color:var(--accent)}.tw\\:data-open\\:text-accent-foreground:where([data-state=open]),.tw\\:data-open\\:text-accent-foreground:where([data-open]:not([data-open=false])){color:var(--accent-foreground)}.tw\\:data-open\\:fade-in-0:where([data-state=open]),.tw\\:data-open\\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.tw\\:data-open\\:zoom-in-95:where([data-state=open]),.tw\\:data-open\\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}@media (hover:hover){:is(.tw\\:data-open\\:hover\\:bg-sidebar-accent:where([data-state=open]),.tw\\:data-open\\:hover\\:bg-sidebar-accent:where([data-open]:not([data-open=false]))):hover{background-color:var(--sidebar-accent)}:is(.tw\\:data-open\\:hover\\:text-sidebar-accent-foreground:where([data-state=open]),.tw\\:data-open\\:hover\\:text-sidebar-accent-foreground:where([data-open]:not([data-open=false]))):hover{color:var(--sidebar-accent-foreground)}}.tw\\:data-closed\\:animate-out:where([data-state=closed]),.tw\\:data-closed\\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tw\\:data-closed\\:fade-out-0:where([data-state=closed]),.tw\\:data-closed\\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.tw\\:data-closed\\:zoom-out-95:where([data-state=closed]),.tw\\:data-closed\\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.tw\\:data-checked\\:border-primary:where([data-state=checked]),.tw\\:data-checked\\:border-primary:where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.tw\\:data-checked\\:bg-primary:where([data-state=checked]),.tw\\:data-checked\\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.tw\\:data-checked\\:text-primary-foreground:where([data-state=checked]),.tw\\:data-checked\\:text-primary-foreground:where([data-checked]:not([data-checked=false])){color:var(--primary-foreground)}.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=checked]),.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-checked]:not([data-checked=false])),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=checked]),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:translate-x-\\[calc\\(100\\%-2px\\)\\]:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-checked]:not([data-checked=false])){--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=checked]),.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-checked]:not([data-checked=false])),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=checked]),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-checked\\:-translate-x-\\[calc\\(100\\%-2px\\)\\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-checked]:not([data-checked=false])){--tw-translate-x:calc(calc(100% - 2px) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:dark\\:data-checked\\:bg-primary:is(.dark *):where([data-state=checked]),.tw\\:dark\\:data-checked\\:bg-primary:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.tw\\:dark\\:data-checked\\:bg-primary-foreground:is(.dark *):where([data-state=checked]),.tw\\:dark\\:data-checked\\:bg-primary-foreground:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary-foreground)}.tw\\:data-unchecked\\:bg-input:where([data-state=unchecked]),.tw\\:data-unchecked\\:bg-input:where([data-unchecked]:not([data-unchecked=false])){background-color:var(--input)}.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=unchecked]),.tw\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-unchecked]:not([data-unchecked=false])),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=unchecked]),.tw\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:translate-x-0:is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-unchecked]:not([data-unchecked=false])),.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-state=unchecked]),.tw\\:rtl\\:group-data-\\[size\\=default\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=default] *):where([data-unchecked]:not([data-unchecked=false])),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-state=unchecked]),.tw\\:rtl\\:group-data-\\[size\\=sm\\]\\/switch\\:data-unchecked\\:-translate-x-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *):is(:where(.tw\\:group\\/switch)[data-size=sm] *):where([data-unchecked]:not([data-unchecked=false])){--tw-translate-x:calc(calc(var(--spacing)) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tw\\:dark\\:data-unchecked\\:bg-foreground:is(.dark *):where([data-state=unchecked]),.tw\\:dark\\:data-unchecked\\:bg-foreground:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--foreground)}.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-state=unchecked]),.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-state=unchecked]),.tw\\:dark\\:data-unchecked\\:bg-input\\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.tw\\:data-selected\\:bg-muted:where([data-selected=true]){background-color:var(--muted)}.tw\\:data-selected\\:text-foreground:where([data-selected=true]){color:var(--foreground)}.tw\\:data-disabled\\:pointer-events-none:where([data-disabled=true]),.tw\\:data-disabled\\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.tw\\:data-disabled\\:cursor-not-allowed:where([data-disabled=true]),.tw\\:data-disabled\\:cursor-not-allowed:where([data-disabled]:not([data-disabled=false])){cursor:not-allowed}.tw\\:data-disabled\\:opacity-50:where([data-disabled=true]),.tw\\:data-disabled\\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.tw\\:data-active\\:bg-background:where([data-state=active]),.tw\\:data-active\\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.tw\\:data-active\\:bg-sidebar-accent:where([data-state=active]),.tw\\:data-active\\:bg-sidebar-accent:where([data-active]:not([data-active=false])){background-color:var(--sidebar-accent)}.tw\\:data-active\\:font-medium:where([data-state=active]),.tw\\:data-active\\:font-medium:where([data-active]:not([data-active=false])){--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}.tw\\:data-active\\:text-foreground:where([data-state=active]),.tw\\:data-active\\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.tw\\:data-active\\:text-sidebar-accent-foreground:where([data-state=active]),.tw\\:data-active\\:text-sidebar-accent-foreground:where([data-active]:not([data-active=false])){color:var(--sidebar-accent-foreground)}.tw\\:group-data-\\[variant\\=default\\]\\/tabs-list\\:data-active\\:shadow-sm:is(:where(.tw\\:group\\/tabs-list)[data-variant=default] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=default\\]\\/tabs-list\\:data-active\\:shadow-sm:is(:where(.tw\\:group\\/tabs-list)[data-variant=default] *):where([data-active]:not([data-active=false])){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:shadow-none:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:shadow-none:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:after\\:opacity-100:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:after\\:opacity-100:is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}.tw\\:dark\\:data-active\\:border-input:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:border-input:is(.dark *):where([data-active]:not([data-active=false])){border-color:var(--input)}.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:bg-input\\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.tw\\:dark\\:data-active\\:text-foreground:is(.dark *):where([data-state=active]),.tw\\:dark\\:data-active\\:text-foreground:is(.dark *):where([data-active]:not([data-active=false])){color:var(--foreground)}.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:border-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:border-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-state=active]),.tw\\:dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent:is(.dark *):is(:where(.tw\\:group\\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.tw\\:data-horizontal\\:mx-px:where([data-orientation=horizontal]){margin-inline:1px}.tw\\:data-horizontal\\:h-1:where([data-orientation=horizontal]){height:calc(calc(var(--spacing)) * 1)}.tw\\:data-horizontal\\:h-full:where([data-orientation=horizontal]){height:100%}.tw\\:data-horizontal\\:h-px:where([data-orientation=horizontal]){height:1px}.tw\\:data-horizontal\\:w-auto:where([data-orientation=horizontal]){width:auto}.tw\\:data-horizontal\\:w-full:where([data-orientation=horizontal]){width:100%}.tw\\:data-horizontal\\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.tw\\:data-vertical\\:my-px:where([data-orientation=vertical]){margin-block:1px}.tw\\:data-vertical\\:h-auto:where([data-orientation=vertical]){height:auto}.tw\\:data-vertical\\:h-full:where([data-orientation=vertical]){height:100%}.tw\\:data-vertical\\:min-h-40:where([data-orientation=vertical]){min-height:calc(calc(var(--spacing)) * 40)}.tw\\:data-vertical\\:w-1:where([data-orientation=vertical]){width:calc(calc(var(--spacing)) * 1)}.tw\\:data-vertical\\:w-auto:where([data-orientation=vertical]){width:auto}.tw\\:data-vertical\\:w-full:where([data-orientation=vertical]){width:100%}.tw\\:data-vertical\\:w-px:where([data-orientation=vertical]){width:1px}.tw\\:data-vertical\\:flex-col:where([data-orientation=vertical]){flex-direction:column}.tw\\:data-vertical\\:items-stretch:where([data-orientation=vertical]){align-items:stretch}.tw\\:data-vertical\\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:mt-0 [data-lexical-editor=true]>blockquote{margin-top:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:border-s-0 [data-lexical-editor=true]>blockquote{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:ps-0 [data-lexical-editor=true]>blockquote{padding-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:font-normal [data-lexical-editor=true]>blockquote{--tw-font-weight:var(--tw-font-weight-normal);font-weight:var(--tw-font-weight-normal)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:text-foreground [data-lexical-editor=true]>blockquote{color:var(--foreground)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\"true\\"\\]\\>blockquote\\]\\:not-italic [data-lexical-editor=true]>blockquote{font-style:normal}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\\\\\"true\\\\\\"\\]\\>blockquote\\]\\:mt-0 [data-lexical-editor=\\"true\\"]>blockquote{margin-top:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\\\\\"true\\\\\\"\\]\\>blockquote\\]\\:border-s-0 [data-lexical-editor=\\"true\\"]>blockquote{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\\\\\"true\\\\\\"\\]\\>blockquote\\]\\:ps-0 [data-lexical-editor=\\"true\\"]>blockquote{padding-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\\\\\"true\\\\\\"\\]\\>blockquote\\]\\:font-normal [data-lexical-editor=\\"true\\"]>blockquote{--tw-font-weight:var(--tw-font-weight-normal);font-weight:var(--tw-font-weight-normal)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\\\\\"true\\\\\\"\\]\\>blockquote\\]\\:text-foreground [data-lexical-editor=\\"true\\"]>blockquote{color:var(--foreground)}.tw\\:\\[\\&_\\[data-lexical-editor\\=\\\\\\"true\\\\\\"\\]\\>blockquote\\]\\:not-italic [data-lexical-editor=\\"true\\"]>blockquote{font-style:normal}.tw\\:\\[\\&_a\\]\\:underline a{text-decoration-line:underline}.tw\\:\\[\\&_a\\]\\:underline-offset-3 a{text-underline-offset:3px}@media (hover:hover){.tw\\:\\[\\&_a\\]\\:hover\\:text-foreground a:hover{color:var(--foreground)}}.tw\\:\\[\\&_p\\:not\\(\\:last-child\\)\\]\\:mb-4 p:not(:last-child){margin-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.tw\\:\\[\\&_svg\\]\\:size-4 svg{width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.tw\\:\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3 svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3\\.5 svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&_tr\\]\\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.tw\\:\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.tw\\:\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pe-0:has([role=checkbox]){padding-inline-end:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\.border-b\\]\\:pb-2.border-b{padding-bottom:calc(calc(var(--spacing)) * 2)}.tw\\:\\[\\.border-b\\]\\:pb-4.border-b{padding-bottom:calc(calc(var(--spacing)) * 4)}.tw\\:group-data-\\[size\\=sm\\]\\/card\\:\\[\\.border-b\\]\\:pb-3:is(:where(.tw\\:group\\/card)[data-size=sm] *).border-b{padding-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:\\[\\.border-t\\]\\:pt-2.border-t{padding-top:calc(calc(var(--spacing)) * 2)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:px-2 *)[cmdk-group-heading]{padding-inline:calc(calc(var(--spacing)) * 2)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:py-1\\.5 *)[cmdk-group-heading]{padding-block:calc(calc(var(--spacing)) * 1.5)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:text-xs *)[cmdk-group-heading]{font-size:var(--tw-text-xs);line-height:var(--tw-leading,var(--tw-text-xs--line-height))}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:font-medium *)[cmdk-group-heading]{--tw-font-weight:var(--tw-font-weight-medium);font-weight:var(--tw-font-weight-medium)}:is(.tw\\:\\*\\*\\:\\[\\[cmdk-group-heading\\]\\]\\:text-muted-foreground *)[cmdk-group-heading]{color:var(--muted-foreground)}:is(.tw\\:\\*\\:\\[a\\]\\:underline>*):is(a){text-decoration-line:underline}:is(.tw\\:\\*\\:\\[a\\]\\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){.tw\\:\\[a\\]\\:hover\\:bg-destructive\\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.tw\\:\\[a\\]\\:hover\\:bg-destructive\\/20:is(a):hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.tw\\:\\[a\\]\\:hover\\:bg-muted:is(a):hover{background-color:var(--muted)}.tw\\:\\[a\\]\\:hover\\:bg-primary\\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tw\\:\\[a\\]\\:hover\\:bg-primary\\/80:is(a):hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.tw\\:\\[a\\]\\:hover\\:bg-secondary\\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.tw\\:\\[a\\]\\:hover\\:bg-secondary\\/80:is(a):hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.tw\\:\\[a\\]\\:hover\\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.tw\\:\\*\\:\\[a\\]\\:hover\\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.tw\\:\\*\\:\\[img\\]\\:row-span-2>*):is(img){grid-row:span 2/span 2}:is(.tw\\:\\*\\:\\[img\\]\\:translate-y-0\\.5>*):is(img){--tw-translate-y:calc(calc(var(--spacing)) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.tw\\:\\*\\:\\[img\\]\\:text-current>*):is(img){color:currentColor}:is(.tw\\:\\*\\:\\[img\\:first-child\\]\\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius) * 1.4);border-top-right-radius:calc(var(--radius) * 1.4)}:is(.tw\\:\\*\\:\\[img\\:last-child\\]\\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}:is(.tw\\:\\*\\:\\[img\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4>*):is(img:not([class*=size-])){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}:is(.tw\\:\\*\\:\\[span\\]\\:last\\:flex>*):is(span):last-child{display:flex}:is(.tw\\:\\*\\:\\[span\\]\\:last\\:items-center>*):is(span):last-child{align-items:center}:is(.tw\\:\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:calc(calc(var(--spacing)) * 2)}:is(.tw\\:\\*\\:\\[svg\\]\\:row-span-2>*):is(svg){grid-row:span 2/span 2}:is(.tw\\:\\*\\:\\[svg\\]\\:translate-y-0\\.5>*):is(svg){--tw-translate-y:calc(calc(var(--spacing)) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.tw\\:\\*\\:\\[svg\\]\\:text-current>*):is(svg){color:currentColor}:is(.tw\\:focus\\:\\*\\:\\[svg\\]\\:text-accent-foreground:focus>*):is(svg){color:var(--accent-foreground)}:is(.tw\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}:is(.tw\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:text-destructive\\![data-variant=destructive]>*):is(svg){color:var(--destructive)!important}:is(.tw\\:data-selected\\:\\*\\:\\[svg\\]\\:text-foreground:where([data-selected=true])>*):is(svg){color:var(--foreground)}:is(.tw\\:\\*\\:\\[svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4>*):is(svg:not([class*=size-])){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-s-none>:not(:first-child){border-start-start-radius:0;border-end-start-radius:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-t-none>:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-s-0>:not(:first-child){border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-t-0>:not(:first-child){border-top-style:var(--tw-border-style);border-top-width:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-e-none>:not(:last-child){border-start-end-radius:0;border-end-end-radius:0}.tw\\:\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-b-none>:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.tw\\:has-\\[select\\[aria-hidden\\=true\\]\\:last-child\\]\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:last-of-type\\]\\:rounded-e-lg:has(:is(select[aria-hidden=true]:last-child))>[data-slot=select-trigger]:last-of-type{border-start-end-radius:var(--radius);border-end-end-radius:var(--radius)}.tw\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:not\\(\\[class\\*\\=w-\\]\\)\\]\\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:fit-content}.tw\\:\\[\\&\\>\\[data-slot\\]\\:not\\(\\:has\\(\\~\\[data-slot\\]\\)\\)\\]\\:rounded-e-lg\\!>[data-slot]:not(:has(~[data-slot])){border-start-end-radius:var(--radius)!important;border-end-end-radius:var(--radius)!important}.tw\\:\\[\\&\\>\\[data-slot\\]\\:not\\(\\:has\\(\\~\\[data-slot\\]\\)\\)\\]\\:rounded-b-lg\\!>[data-slot]:not(:has(~[data-slot])){border-bottom-right-radius:var(--radius)!important;border-bottom-left-radius:var(--radius)!important}.tw\\:\\[\\&\\>blockquote\\]\\:border-s-0>blockquote{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.tw\\:\\[\\&\\>blockquote\\]\\:p-0>blockquote{padding:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&\\>blockquote\\]\\:ps-0>blockquote{padding-inline-start:calc(calc(var(--spacing)) * 0)}.tw\\:\\[\\&\\>blockquote\\]\\:font-normal>blockquote{--tw-font-weight:var(--tw-font-weight-normal);font-weight:var(--tw-font-weight-normal)}.tw\\:\\[\\&\\>blockquote\\]\\:text-foreground>blockquote{color:var(--foreground)}.tw\\:\\[\\&\\>blockquote\\]\\:not-italic>blockquote{font-style:normal}.tw\\:\\[\\&\\>input\\]\\:flex-1>input{flex:1}.tw\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:\\[\\&\\>input\\]\\:pt-3:has(>[data-align=block-end])>input{padding-top:calc(calc(var(--spacing)) * 3)}.tw\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:\\[\\&\\>input\\]\\:pb-3:has(>[data-align=block-start])>input{padding-bottom:calc(calc(var(--spacing)) * 3)}.tw\\:has-\\[\\>\\[data-align\\=inline-end\\]\\]\\:\\[\\&\\>input\\]\\:pe-1\\.5:has(>[data-align=inline-end])>input{padding-inline-end:calc(calc(var(--spacing)) * 1.5)}.tw\\:has-\\[\\>\\[data-align\\=inline-start\\]\\]\\:\\[\\&\\>input\\]\\:ps-1\\.5:has(>[data-align=inline-start])>input{padding-inline-start:calc(calc(var(--spacing)) * 1.5)}.tw\\:\\[\\&\\>kbd\\]\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\]>kbd{border-radius:calc(var(--radius) - 5px)}.tw\\:\\[\\&\\>li\\]\\:mt-2>li{margin-top:calc(calc(var(--spacing)) * 2)}.tw\\:\\[\\&\\>span\\:last-child\\]\\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tw\\:\\[\\&\\>svg\\]\\:pointer-events-none>svg{pointer-events:none}.tw\\:\\[\\&\\>svg\\]\\:size-3\\!>svg{width:calc(calc(var(--spacing)) * 3)!important;height:calc(calc(var(--spacing)) * 3)!important}.tw\\:\\[\\&\\>svg\\]\\:size-3\\.5>svg{width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:\\[\\&\\>svg\\]\\:size-4>svg{width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&\\>svg\\]\\:shrink-0>svg{flex-shrink:0}.tw\\:\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.tw\\:group-has-data-\\[size\\=lg\\]\\/avatar-group\\:\\[\\&\\>svg\\]\\:size-5:is(:where(.tw\\:group\\/avatar-group):has([data-size=lg]) *)>svg{width:calc(calc(var(--spacing)) * 5);height:calc(calc(var(--spacing)) * 5)}.tw\\:group-has-data-\\[size\\=sm\\]\\/avatar-group\\:\\[\\&\\>svg\\]\\:size-3:is(:where(.tw\\:group\\/avatar-group):has([data-size=sm]) *)>svg{width:calc(calc(var(--spacing)) * 3);height:calc(calc(var(--spacing)) * 3)}.tw\\:group-data-\\[size\\=default\\]\\/avatar\\:\\[\\&\\>svg\\]\\:size-2:is(:where(.tw\\:group\\/avatar)[data-size=default] *)>svg,.tw\\:group-data-\\[size\\=lg\\]\\/avatar\\:\\[\\&\\>svg\\]\\:size-2:is(:where(.tw\\:group\\/avatar)[data-size=lg] *)>svg{width:calc(calc(var(--spacing)) * 2);height:calc(calc(var(--spacing)) * 2)}.tw\\:group-data-\\[size\\=sm\\]\\/avatar\\:\\[\\&\\>svg\\]\\:hidden:is(:where(.tw\\:group\\/avatar)[data-size=sm] *)>svg{display:none}.tw\\:\\[\\&\\>svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3\\.5>svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 3.5);height:calc(calc(var(--spacing)) * 3.5)}.tw\\:\\[\\&\\>svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4>svg:not([class*=size-]){width:calc(calc(var(--spacing)) * 4);height:calc(calc(var(--spacing)) * 4)}.tw\\:\\[\\&\\>tr\\]\\:last\\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.tw\\:\\[\\&\\[align\\=center\\]\\]\\:text-center[align=center]{text-align:center}.tw\\:\\[\\&\\[align\\=right\\]\\]\\:text-right[align=right]{text-align:right}.tw\\:\\[\\&\\[aria-orientation\\=horizontal\\]\\>div\\]\\:rotate-90[aria-orientation=horizontal]>div{rotate:90deg}[data-side=primary][data-collapsible=offcanvas] .tw\\:\\[\\[data-side\\=primary\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-end-2{inset-inline-end:calc(calc(var(--spacing)) * -2)}[data-side=primary][data-state=collapsed] .tw\\:\\[\\[data-side\\=primary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize{cursor:e-resize}[data-side=primary][data-state=collapsed] .tw\\:rtl\\:\\[\\[data-side\\=primary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:w-resize}[data-side=secondary][data-collapsible=offcanvas] .tw\\:\\[\\[data-side\\=secondary\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-start-2{inset-inline-start:calc(calc(var(--spacing)) * -2)}[data-side=secondary][data-state=collapsed] .tw\\:\\[\\[data-side\\=secondary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize{cursor:w-resize}[data-side=secondary][data-state=collapsed] .tw\\:rtl\\:\\[\\[data-side\\=secondary\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize:where(:dir(rtl),[dir=rtl],[dir=rtl] *){cursor:e-resize}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./files/ibm-plex-sans-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.light,:root{--radius:.625rem;--spacing:.25rem;--background:oklch(100% 0 0);--foreground:oklch(13.71% .036 258.53);--card:oklch(100% 0 0);--card-foreground:oklch(13.71% .036 258.53);--popover:oklch(98.43% .0018 248.56);--popover-foreground:oklch(13.71% .036 258.53);--primary:oklch(20.79% .0399 265.73);--primary-foreground:oklch(98.38% .0036 248.23);--secondary:oklch(95.89% .011 248.06);--secondary-foreground:oklch(20.79% .0399 265.73);--muted:oklch(95.89% .011 248.06);--muted-foreground:oklch(55.47% .0408 257.45);--accent:oklch(95.89% .011 248.06);--accent-foreground:oklch(20.79% .0399 265.73);--destructive:oklch(63.69% .2077 25.32);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(62.7% .194 149.214);--warning:oklch(84% .16 84);--warning-foreground:oklch(28% .07 46);--border:oklch(92.9% .0127 255.58);--input:oklch(92.9% .0127 255.58);--ring:oklch(13.71% .036 258.53);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.43% .0018 248.56);--sidebar-foreground:oklch(13.71% .036 258.53);--sidebar-primary:oklch(20.79% .0399 265.73);--sidebar-primary-foreground:oklch(98.38% .0036 248.23);--sidebar-accent:oklch(95.89% .011 248.06);--sidebar-accent-foreground:oklch(20.79% .0399 265.73);--sidebar-border:oklch(92.9% .0127 255.58);--sidebar-ring:oklch(13.71% .036 258.53)}.dark{--background:oklch(13.71% .036 258.53);--foreground:oklch(98.38% .0036 248.23);--card:oklch(13.71% .036 258.53);--card-foreground:oklch(98.38% .0036 248.23);--popover:oklch(13.71% .036 258.53);--popover-foreground:oklch(98.38% .0036 248.23);--primary:oklch(98.38% .0036 248.23);--primary-foreground:oklch(20.79% .0399 265.73);--secondary:oklch(28% .037 259.98);--secondary-foreground:oklch(98.38% .0036 248.23);--muted:oklch(28% .037 259.98);--muted-foreground:oklch(71.07% .0351 256.8);--accent:oklch(28% .037 259.98);--accent-foreground:oklch(98.38% .0036 248.23);--destructive:oklch(39.6% .1331 25.71);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(79.2% .209 151.711);--warning:oklch(41% .11 46);--warning-foreground:oklch(99% .02 95);--border:oklch(44.54% .0374 257.3);--input:oklch(44.54% .0374 257.3);--ring:oklch(86.88% .0199 252.89);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(13.71% .036 258.53);--sidebar-foreground:oklch(71.07% .0351 256.8);--sidebar-primary:oklch(98.38% .0036 248.23);--sidebar-primary-foreground:oklch(20.79% .0399 265.73);--sidebar-accent:oklch(28% .037 259.98);--sidebar-accent-foreground:oklch(71.07% .0351 256.8);--sidebar-border:oklch(28% .037 259.98);--sidebar-ring:oklch(86.88% .0199 252.89)}.paratext-light{--background:oklch(100% 0 0);--foreground:oklch(15.3% .006 107.1);--card:oklch(100% 0 0);--card-foreground:oklch(15.3% .006 107.1);--popover:oklch(100% 0 0);--popover-foreground:oklch(15.3% .006 107.1);--primary:oklch(55.5% .163 48.998);--primary-foreground:oklch(98.7% .022 95.277);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.6% .005 106.5);--muted-foreground:oklch(58% .031 107.3);--accent:oklch(96.6% .005 106.5);--accent-foreground:oklch(22.8% .013 107.4);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(62.7% .194 149.214);--warning:oklch(84% .16 84);--warning-foreground:oklch(28% .07 46);--border:oklch(93% .007 106.5);--input:oklch(93% .007 106.5);--ring:oklch(73.7% .021 106.9);--chart-1:oklch(88% .011 106.6);--chart-2:oklch(58% .031 107.3);--chart-3:oklch(46.6% .025 107.3);--chart-4:oklch(39.4% .023 107.4);--chart-5:oklch(28.6% .016 107.4);--sidebar:oklch(98.8% .003 106.5);--sidebar-foreground:oklch(15.3% .006 107.1);--sidebar-primary:oklch(66.6% .179 58.318);--sidebar-primary-foreground:oklch(98.7% .022 95.277);--sidebar-accent:oklch(96.6% .005 106.5);--sidebar-accent-foreground:oklch(22.8% .013 107.4);--sidebar-border:oklch(93% .007 106.5);--sidebar-ring:oklch(73.7% .021 106.9)}.paratext-dark{--background:oklch(15.3% .006 107.1);--foreground:oklch(98.8% .003 106.5);--card:oklch(22.8% .013 107.4);--card-foreground:oklch(98.8% .003 106.5);--popover:oklch(22.8% .013 107.4);--popover-foreground:oklch(98.8% .003 106.5);--primary:oklch(47.3% .137 46.201);--primary-foreground:oklch(98.7% .022 95.277);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(28.6% .016 107.4);--muted-foreground:oklch(73.7% .021 106.9);--accent:oklch(28.6% .016 107.4);--accent-foreground:oklch(98.8% .003 106.5);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.38% .0036 248.23);--success-foreground:oklch(79.2% .209 151.711);--warning:oklch(41% .11 46);--warning-foreground:oklch(99% .02 95);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(58% .031 107.3);--chart-1:oklch(88% .011 106.6);--chart-2:oklch(58% .031 107.3);--chart-3:oklch(46.6% .025 107.3);--chart-4:oklch(39.4% .023 107.4);--chart-5:oklch(28.6% .016 107.4);--sidebar:oklch(22.8% .013 107.4);--sidebar-foreground:oklch(98.8% .003 106.5);--sidebar-primary:oklch(76.9% .188 70.08);--sidebar-primary-foreground:oklch(27.9% .077 45.635);--sidebar-accent:oklch(28.6% .016 107.4);--sidebar-accent-foreground:oklch(98.8% .003 106.5);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(58% .031 107.3)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} `,"after-all"); //# sourceMappingURL=index.cjs.map diff --git a/lib/platform-bible-react/dist/index.cjs.map b/lib/platform-bible-react/dist/index.cjs.map index 3ce51e9b5ce..847c13a348f 100644 --- a/lib/platform-bible-react/dist/index.cjs.map +++ b/lib/platform-bible-react/dist/index.cjs.map @@ -1 +1 @@ -{"version":3,"file":"index.cjs","sources":["../src/utils/shadcn-ui/utils.ts","../src/components/z-index.ts","../src/components/shadcn-ui/button.tsx","../src/utils/dir-helper.util.ts","../src/components/shadcn-ui/dialog.tsx","../src/components/shadcn-ui/input.tsx","../src/components/shadcn-ui/textarea.tsx","../src/components/shadcn-ui/input-group.tsx","../src/components/shadcn-ui/command.tsx","../src/components/shared/book.utils.ts","../src/components/shared/book-item.component.tsx","../src/components/shadcn-ui/popover.tsx","../src/components/shared/book-item.utils.ts","../src/components/advanced/recent-searches.component.tsx","../src/components/advanced/book-chapter-control/book-chapter-control.utils.ts","../src/components/advanced/book-chapter-control/book-chapter-control.navigation.ts","../src/components/advanced/book-chapter-control/numbered-item-grid.component.tsx","../src/components/advanced/book-chapter-control/chapter-grid.component.tsx","../src/components/advanced/book-chapter-control/verse-grid.component.tsx","../src/components/advanced/book-chapter-control/book-chapter-control.component.tsx","../src/components/advanced/book-chapter-control/book-chapter-control.types.ts","../src/components/shadcn-ui/label.tsx","../src/components/shadcn-ui/radio-group.tsx","../src/components/basics/combo-box.component.tsx","../src/components/basics/chapter-range-selector.component.tsx","../src/components/advanced/book-selector.component.tsx","../../../node_modules/@lexical/react/LexicalComposerContext.prod.mjs","../../../node_modules/@lexical/react/LexicalComposer.prod.mjs","../../../node_modules/@lexical/react/LexicalOnChangePlugin.prod.mjs","../src/components/advanced/editor/themes/editor-theme.ts","../src/components/shadcn-ui/tooltip.tsx","../src/components/advanced/editor/nodes.ts","../../../node_modules/react-error-boundary/dist/react-error-boundary.js","../../../node_modules/@lexical/react/LexicalErrorBoundary.prod.mjs","../../../node_modules/@lexical/react/useLexicalEditable.prod.mjs","../../../node_modules/@lexical/selection/LexicalSelection.prod.mjs","../../../node_modules/@lexical/utils/LexicalUtils.prod.mjs","../../../node_modules/@lexical/extension/LexicalExtension.prod.mjs","../../../node_modules/@lexical/react/LexicalReactProviderExtension.prod.mjs","../../../node_modules/@lexical/text/LexicalText.prod.mjs","../../../node_modules/@lexical/dragon/LexicalDragon.prod.mjs","../../../node_modules/@lexical/react/LexicalRichTextPlugin.prod.mjs","../../../node_modules/@lexical/react/LexicalAutoFocusPlugin.prod.mjs","../../../node_modules/@lexical/react/LexicalClearEditorPlugin.prod.mjs","../../../node_modules/@lexical/react/LexicalContentEditable.prod.mjs","../src/components/advanced/editor/editor-ui/content-editable.tsx","../src/components/advanced/editor/context/toolbar-context.tsx","../src/components/advanced/editor/editor-hooks/use-modal.tsx","../src/components/advanced/editor/plugins/toolbar/toolbar-plugin.tsx","../src/components/advanced/editor/editor-hooks/use-update-toolbar.ts","../src/components/shadcn-ui/toggle.tsx","../src/components/shadcn-ui/toggle-group.tsx","../src/components/advanced/editor/plugins/toolbar/font-format-toolbar-plugin.tsx","../src/components/advanced/editor/plugins.tsx","../src/components/advanced/editor/editor.tsx","../../../node_modules/@lexical/html/LexicalHtml.prod.mjs","../src/components/advanced/editor/editor-utils.ts","../src/components/shadcn-ui/separator.tsx","../src/components/shadcn-ui/button-group.tsx","../src/components/basics/cancel-accept-buttons.component.tsx","../src/components/advanced/comment-list/comment-list.utils.ts","../src/components/advanced/comment-editor/comment-editor.component.tsx","../src/components/advanced/comment-editor/comment-editor.types.ts","../src/components/advanced/comment-list/comment-list.types.ts","../src/hooks/listbox-keyboard-navigation.hook.ts","../src/components/shadcn-ui/badge.tsx","../src/components/shadcn-ui/card.tsx","../src/components/shadcn-ui/avatar.tsx","../src/context/menu.context.ts","../src/components/shadcn-ui/dropdown-menu.tsx","../src/components/advanced/comment-list/comment-item.component.tsx","../src/components/advanced/comment-list/comment-thread.component.tsx","../src/components/advanced/comment-list/comment-list.component.tsx","../src/components/advanced/data-table/data-table-column-toggle.component.tsx","../src/components/shadcn-ui/select.tsx","../src/components/advanced/data-table/data-table-pagination.component.tsx","../src/utils/focus.util.ts","../src/components/shadcn-ui/table.tsx","../src/components/shadcn-ui/skeleton.tsx","../src/components/advanced/data-table/data-table.component.tsx","../src/components/advanced/project-selector/project-selector.rows.ts","../src/components/advanced/project-selector/project-selector.component.tsx","../src/components/advanced/extension-marketplace/markdown-renderer.component.tsx","../src/components/basics/error-dump.component.tsx","../src/components/advanced/error-popover.component.tsx","../src/components/advanced/extension-marketplace/filter-dropdown.component.tsx","../src/components/advanced/extension-marketplace/more-info.component.tsx","../src/components/advanced/extension-marketplace/version-history.component.tsx","../src/components/advanced/extension-marketplace/footer.component.tsx","../src/components/advanced/multi-select-combo-box.component.tsx","../src/components/advanced/filter.component.tsx","../src/components/shadcn-ui/kbd.tsx","../src/components/basics/undo-redo-buttons.component.tsx","../src/components/basics/editor-keyboard-shortcuts.component.tsx","../src/components/advanced/footnote-editor/footnote-caller-dropdown.component.tsx","../src/components/advanced/footnote-editor/footnote-type-dropdown.component.tsx","../src/components/advanced/marker-menu.component.tsx","../src/components/advanced/footnote-editor/footnote-editor.utils.ts","../src/components/advanced/footnote-editor/footnote-editor.component.tsx","../src/components/advanced/footnote-editor/footnote-editor.types.ts","../src/components/advanced/footnotes/footnote-item.component.tsx","../src/components/advanced/footnotes/footnote-list.component.tsx","../src/components/advanced/inventory/occurrences-table.component.tsx","../src/components/shadcn-ui/checkbox.tsx","../src/components/advanced/inventory/inventory-columns.tsx","../src/components/advanced/inventory/inventory-utils.ts","../src/components/advanced/inventory/inventory.component.tsx","../src/components/shadcn-ui/sidebar.tsx","../src/components/advanced/settings-components/settings-sidebar.component.tsx","../src/components/basics/search-bar.component.tsx","../src/components/advanced/settings-components/settings-sidebar-content-search.component.tsx","../src/components/advanced/scripture-results-viewer/scripture-results-viewer.component.tsx","../src/components/advanced/scope-selector/scope-selector.utils.ts","../src/components/advanced/scope-selector/section-button.component.tsx","../src/components/advanced/scope-selector/book-selector.component.tsx","../src/components/advanced/scope-selector/scope-selector.component.tsx","../src/components/advanced/scroll-group-selector.component.tsx","../src/components/advanced/settings-components/settings-list.component.tsx","../src/components/advanced/menus/menu.util.ts","../src/components/advanced/menus/menu-icon.component.tsx","../src/components/advanced/menus/tab-dropdown-menu.component.tsx","../src/components/advanced/tab-toolbar/tab-toolbar-container.component.tsx","../src/components/advanced/tab-toolbar/tab-toolbar.component.tsx","../src/components/advanced/tab-toolbar/tab-floating-menu.component.tsx","../src/components/basics/tabs-vertical.tsx","../src/components/advanced/tab-navigation-content-search.component.tsx","../src/components/shadcn-ui/menubar.tsx","../src/components/advanced/menus/platform-menubar.component.tsx","../src/components/advanced/toolbar.component.tsx","../src/components/advanced/ui-language-selector.component.tsx","../src/components/basics/smart-label.component.tsx","../src/components/basics/checklist.component.tsx","../src/components/basics/linked-scr-ref-button.component.tsx","../src/components/basics/results-card.component.tsx","../src/components/basics/spinner.component.tsx","../src/components/basics/text-field.component.tsx","../src/components/shadcn-ui/alert.tsx","../src/components/shadcn-ui/context-menu.tsx","../src/components/shadcn-ui/drawer.tsx","../src/components/shadcn-ui/progress.tsx","../src/components/shadcn-ui/resizable.tsx","../src/components/shadcn-ui/sonner.tsx","../src/components/shadcn-ui/slider.tsx","../src/components/shadcn-ui/switch.tsx","../src/components/shadcn-ui/tabs.tsx","../src/hooks/use-event.hook.ts","../src/hooks/use-promise.hook.ts","../src/hooks/use-event-async.hook.ts","../src/hooks/use-stylesheet.hook.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { extendTailwindMerge, twMerge } from 'tailwind-merge';\n\n// Used only on the all-TW4 fast path in `cn` below. Configured with `prefix:\n// 'tw'` so it understands the `tw` prefix the shadcn classes are authored\n// with. The slow path keeps using plain `twMerge` because it first normalizes\n// tokens to the `tw:` modifier form.\nconst twMergeWithTwPrefix = extendTailwindMerge({ prefix: 'tw' });\n\n// --- Internal types ---\n\ntype PrefixInfo = {\n /** The class normalized to tw: (TW4) format for tailwind-merge */\n normalized: string;\n /** The original class string as authored */\n original: string;\n};\n\n// --- Helpers ---\n\n/**\n * Split a class string on `:` but respect brackets so that arbitrary values like `[color:red]` are\n * not split.\n */\nfunction splitClassSegments(cls: string): string[] {\n const segments: string[] = [];\n let current = '';\n let bracketDepth = 0;\n\n for (let i = 0; i < cls.length; i++) {\n const char = cls[i];\n if (char === '[') bracketDepth += 1;\n else if (char === ']') bracketDepth -= 1;\n\n if (char === ':' && bracketDepth === 0) {\n segments.push(current);\n current = '';\n } else {\n current += char;\n }\n }\n segments.push(current);\n return segments;\n}\n\n/**\n * Normalize a TW3-style (`tw-*`) class to TW4-style (`tw:*`) so that tailwind-merge (which treats\n * `tw` as a modifier) can deduplicate across both prefix formats.\n *\n * Handles four TW3 input forms:\n *\n * - `tw-utility` → `tw:utility`\n * - `tw--utility` (negative form A) → `tw:-utility`\n * - `-tw-utility` (negative form B, with optional variant prefixes) → `tw:-utility` (variants moved\n * before `tw:`)\n * - `!tw-utility` (important form, with optional variant prefixes) → `tw:!utility` (variants moved\n * before `tw:`)\n *\n * TW4-style classes (`tw:*`) pass through unchanged.\n */\nfunction normalizeTw3ToTw4(token: string): PrefixInfo {\n // Already TW4 format — pass through\n if (token.startsWith('tw:')) {\n return { normalized: token, original: token };\n }\n\n const segments = splitClassSegments(token);\n\n // Negative form B: variants may precede `-tw-utility`\n // e.g. `hover:-tw-mt-4` → segments = ['hover', '-tw-mt-4']\n const negFormBIndex = segments.findIndex((s) => s.startsWith('-tw-'));\n if (negFormBIndex !== -1) {\n const utility = segments[negFormBIndex].slice(4); // strip `-tw-`\n const variants = segments.filter((_, i) => i !== negFormBIndex);\n const normalized = `tw:${[...variants, `-${utility}`].join(':')}`;\n return { normalized, original: token };\n }\n\n // Important form: variants may precede `!tw-utility`\n // e.g. `hover:!tw-p-4` → segments = ['hover', '!tw-p-4']\n const importantFormIndex = segments.findIndex((s) => s.startsWith('!tw-'));\n if (importantFormIndex !== -1) {\n const utility = segments[importantFormIndex].slice(4); // strip `!tw-`\n const variants = segments.filter((_, i) => i !== importantFormIndex);\n const normalized = `tw:${[...variants, `!${utility}`].join(':')}`;\n return { normalized, original: token };\n }\n\n // Standard tw- prefix (last segment) — handles both positive and negative form A (tw--X)\n const lastSegment = segments[segments.length - 1];\n if (lastSegment.startsWith('tw-')) {\n const utility = lastSegment.slice(3); // strip `tw-`\n const variants = segments.slice(0, -1);\n // `tw-mt-4` → utility='mt-4' → `tw:mt-4`\n // `tw--mt-4` → utility='-mt-4' → `tw:-mt-4`\n const normalized = `tw:${[...variants, utility].join(':')}`;\n return { normalized, original: token };\n }\n\n // Not a tw-prefixed class\n return { normalized: token, original: token };\n}\n\n/**\n * Convert a normalized TW4 class (`tw:*`) back to the original TW3 format based on the format of\n * the winning original class.\n */\nfunction restoreToOriginalFormat(normalizedClass: string, originalFormat: string): string {\n // If the winner was already TW4, keep as-is\n if (originalFormat.startsWith('tw:')) {\n return normalizedClass;\n }\n\n const segments = splitClassSegments(normalizedClass);\n // Must start with `tw` modifier to be restorable\n if (segments[0] !== 'tw') return normalizedClass;\n\n const variants = segments.slice(1, -1);\n const utility = segments[segments.length - 1];\n\n // Detect which TW3 form the original used\n const origSegments = splitClassSegments(originalFormat);\n const wasNegFormB = origSegments.some((s) => s.startsWith('-tw-'));\n const wasImportantForm = origSegments.some((s) => s.startsWith('!tw-'));\n\n if (wasNegFormB && utility.startsWith('-')) {\n // `-tw-mt-4` form: strip the leading `-` from utility and wrap with `-tw-`\n const positiveUtility = utility.slice(1);\n return [...variants, `-tw-${positiveUtility}`].join(':');\n }\n\n if (wasImportantForm && utility.startsWith('!')) {\n // `!tw-p-4` form: strip the leading `!` from utility and wrap with `!tw-`\n const bareUtility = utility.slice(1);\n return [...variants, `!tw-${bareUtility}`].join(':');\n }\n\n // Standard `tw-` form (covers both positive and negative form A `tw--mt-4`)\n return [...variants, `tw-${utility}`].join(':');\n}\n\n// --- Public API ---\n\n/**\n * Tailwind and CSS class application helper function. Uses\n * [`clsx`](https://www.npmjs.com/package/clsx) to make it easy to apply classes conditionally using\n * object syntax, and uses [`tailwind-merge`](https://www.npmjs.com/package/tailwind-merge) to make\n * it easy to merge/overwrite Tailwind classes in a programmer-logic-friendly way.\n *\n * Supports both TW3 (`tw-*`) and TW4 (`tw:*`) prefix formats. When classes using different prefix\n * formats conflict (e.g. `tw-p-4` vs `tw:p-4`), the last one specified wins (standard\n * tailwind-merge behavior), and the result preserves the winning class's original prefix format.\n *\n * This backwards compatibility allows extensions still using TW3's `tw-` prefix to interoperate\n * with PBR components that have migrated to TW4's `tw:` prefix.\n *\n * This function was popularized by\n * [shadcn/ui](https://ui.shadcn.com/docs/installation/manual#add-a-cn-helper). See [ByteGrad's\n * explanation video](https://www.youtube.com/watch?v=re2JFITR7TI) for more information.\n *\n * @example\n *\n * ```typescript\n * const borderShouldBeBlue = true;\n * const textShouldBeRed = true;\n * const heightShouldBe20 = false;\n * const classString = cn(\n * 'tw:bg-primary tw:h-10 tw:text-primary-foreground',\n * 'tw:bg-secondary',\n * {\n * 'tw:border-blue-500': borderShouldBeBlue,\n * 'tw:text-red-500': textShouldBeRed,\n * 'tw:h-20': heightShouldBe20,\n * },\n * 'some-class',\n * );\n * ```\n *\n * The resulting `classString` is `'tw:h-10 tw:bg-secondary tw:border-blue-500 tw:text-red-500\n * some-class'`\n *\n * - Notice that `'tw:bg-secondary'`, specified later, overwrote `'tw:bg-primary'`, specified earlier,\n * because they are Tailwind classes that affect the same css property\n * - Notice that `'tw:text-red-500'`, specified later, overwrote `'tw:text-primary-foreground'`,\n * specified earlier, because they are Tailwind classes that affect the same css property\n * - Notice that `'tw:h-20'`, specified later, did not overwrite `'tw:h-10'`, specified earlier,\n * because `'tw:h-20'` is part of a conditional class object and its value evaluated to `false`;\n * therefore it was not applied\n * - Notice that `'some-class'` was applied. This function is not limited only to Tailwind classes.\n *\n *\n * @param inputs Class strings or `clsx` conditional class objects to merge. Tailwind classes\n * specified later in the arguments overwrite similar Tailwind classes specified earlier in the\n * arguments\n * @returns Class string containing all applicable classes from the arguments based on the rules\n * described above\n */\nexport function cn(...inputs: ClassValue[]) {\n const resolved = clsx(inputs);\n if (!resolved) return resolved;\n\n // Fast path: when no TW3 (`tw-`) prefix appears anywhere in the resolved\n // string, skip the per-token normalize/restore round-trip. All four TW3\n // forms (`tw-X`, `-tw-X`, `!tw-X`, `tw--X`) contain the substring `tw-`,\n // so a single `indexOf` rules them all out. This brings the common\n // all-TW4 case to within ~1.5x of plain twMerge instead of ~8x.\n if (resolved.indexOf('tw-') === -1) return twMergeWithTwPrefix(resolved);\n\n const tokens = resolved.split(' ').filter(Boolean);\n\n // Track the last-seen original form for each normalized class so we can restore after merge\n const lastSeenOriginal = new Map();\n const normalizedTokens: string[] = [];\n\n tokens.forEach((token) => {\n const info = normalizeTw3ToTw4(token);\n lastSeenOriginal.set(info.normalized, info.original);\n normalizedTokens.push(info.normalized);\n });\n\n // twMerge (no prefix config) treats `tw:` as a modifier — dedup works correctly\n const merged = twMerge(normalizedTokens.join(' '));\n\n // Restore surviving tokens to their original prefix format\n const mergedTokens = merged.split(' ').filter(Boolean);\n const restored = mergedTokens.map((mergedToken) => {\n const original = lastSeenOriginal.get(mergedToken);\n if (!original) return mergedToken;\n return restoreToOriginalFormat(mergedToken, original);\n });\n\n return restored.join(' ');\n}\n","// Z-INDEX SCALE — see also src/renderer/styles/_vars.scss for SCSS consumers\n// rc-dock floating tabs manage their own z-index up to ~200\n\n/** Z-index for elements that need to appear above rc-dock floating tabs (~200) */\nexport const Z_INDEX_ABOVE_DOCK = 250;\n/** Z-index for the footnote editor layer */\nexport const Z_INDEX_FOOTNOTE_EDITOR = 300;\n/** Z-index for overlay popovers and context menus */\nexport const Z_INDEX_OVERLAY = 400;\n/** Z-index for the semi-transparent backdrop behind modal dialogs */\nexport const Z_INDEX_MODAL_BACKDROP = 450;\n/** Z-index for modal dialog content */\nexport const Z_INDEX_MODAL = 500;\n/**\n * Z-index for tooltips — must render above modal dialogs since tooltips can be triggered from\n * elements inside a modal (e.g. help icons in form fields).\n */\nexport const Z_INDEX_TOOLTIP = 550;\n","import React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\n\nimport { cn } from '@/utils/shadcn-ui/utils';\n\n/**\n * Style variants for the Button component.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/button}\n */\n// CUSTOM: Added TSDoc comment with link to upstream shadcn/ui documentation.\nconst buttonVariants = cva(\n // CUSTOM: Added 'pr-twp' at the front of the base class string to apply Platform.Bible's\n // Tailwind CSS scope isolation. All Button instances inherit this via buttonVariants.\n 'pr-twp tw:group/button tw:inline-flex tw:shrink-0 tw:items-center tw:justify-center tw:rounded-lg tw:border tw:border-transparent tw:bg-clip-padding tw:text-sm tw:font-medium tw:whitespace-nowrap tw:transition-all tw:outline-none tw:select-none tw:focus-visible:border-ring tw:focus-visible:ring-3 tw:focus-visible:ring-ring/50 tw:active:not-aria-[haspopup]:translate-y-px tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:aria-invalid:border-destructive tw:aria-invalid:ring-3 tw:aria-invalid:ring-destructive/20 tw:dark:aria-invalid:border-destructive/50 tw:dark:aria-invalid:ring-destructive/40 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*=size-])]:size-4',\n {\n variants: {\n variant: {\n default: 'tw:bg-primary tw:text-primary-foreground tw:[a]:hover:bg-primary/80',\n outline:\n 'tw:border-border tw:bg-background tw:hover:bg-muted tw:hover:text-foreground tw:aria-expanded:bg-muted tw:aria-expanded:text-foreground tw:dark:border-input tw:dark:bg-input/30 tw:dark:hover:bg-input/50',\n secondary:\n 'tw:bg-secondary tw:text-secondary-foreground tw:hover:bg-secondary/80 tw:aria-expanded:bg-secondary tw:aria-expanded:text-secondary-foreground',\n ghost:\n 'tw:hover:bg-muted tw:hover:text-foreground tw:aria-expanded:bg-muted tw:aria-expanded:text-foreground tw:dark:hover:bg-muted/50',\n destructive:\n 'tw:bg-destructive/10 tw:text-destructive tw:hover:bg-destructive/20 tw:focus-visible:border-destructive/40 tw:focus-visible:ring-destructive/20 tw:dark:bg-destructive/20 tw:dark:hover:bg-destructive/30 tw:dark:focus-visible:ring-destructive/40',\n link: 'tw:text-primary tw:underline-offset-4 tw:hover:underline',\n },\n size: {\n default:\n 'tw:h-8 tw:gap-1.5 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2',\n xs: 'tw:h-6 tw:gap-1 tw:rounded-[min(var(--tw-radius-md),10px)] tw:px-2 tw:text-xs tw:in-data-[slot=button-group]:rounded-lg tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3',\n sm: 'tw:h-7 tw:gap-1 tw:rounded-[min(var(--tw-radius-md),12px)] tw:px-2.5 tw:text-[0.8rem] tw:in-data-[slot=button-group]:rounded-lg tw:has-data-[icon=inline-end]:pe-1.5 tw:has-data-[icon=inline-start]:ps-1.5 tw:[&_svg:not([class*=size-])]:size-3.5',\n lg: 'tw:h-9 tw:gap-1.5 tw:px-2.5 tw:has-data-[icon=inline-end]:pe-2 tw:has-data-[icon=inline-start]:ps-2',\n icon: 'tw:size-8',\n 'icon-xs':\n 'tw:size-6 tw:rounded-[min(var(--tw-radius-md),10px)] tw:in-data-[slot=button-group]:rounded-lg tw:[&_svg:not([class*=size-])]:size-3',\n 'icon-sm':\n 'tw:size-7 tw:rounded-[min(var(--tw-radius-md),12px)] tw:in-data-[slot=button-group]:rounded-lg',\n 'icon-lg': 'tw:size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\n/**\n * Props for the Button component.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/button}\n */\n// CUSTOM: Added ButtonProps interface exporting the combined props type so callers can type\n// button-related props without importing VariantProps directly.\nexport interface ButtonProps\n extends React.ComponentProps<'button'>,\n VariantProps {\n asChild?: boolean;\n}\n\n/**\n * The Button component displays a button or a component that looks like a button. The component is\n * built and styled by Shadcn UI.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/button}\n */\n// CUSTOM: Added TSDoc comment with link to upstream shadcn/ui documentation.\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot.Root : 'button';\n\n return (\n \n );\n}\n\nexport { Button, buttonVariants };\n","/** Text and layout direction */\nexport type Direction = 'rtl' | 'ltr';\n\nconst STORAGE_KEY: string = 'layoutDirection';\n\n/** Read layout direction from localStorage or return 'ltr' */\nexport function readDirection(): Direction {\n const retrieved = localStorage.getItem(STORAGE_KEY);\n if (retrieved === 'rtl') {\n return retrieved;\n }\n return 'ltr';\n}\n\n/** Write layout direction to localStorage */\nexport function persistDirection(dir: Direction): void {\n localStorage.setItem(STORAGE_KEY, dir);\n}\n","import React from 'react';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\n// CUSTOM: Import shared z-index constants so modals stack above rc-dock and other overlay layers\nimport { Z_INDEX_MODAL, Z_INDEX_MODAL_BACKDROP } from '@/components/z-index';\nimport { cn } from '@/utils/shadcn-ui/utils';\nimport { Button } from '@/components/shadcn-ui/button';\n// CUSTOM: Import readDirection for RTL support\nimport { readDirection } from '@/utils/dir-helper.util';\nimport { IconX } from '@tabler/icons-react';\n\n/**\n * The Dialog component displays a modal dialog window. Built on Radix UI's Dialog primitive and\n * styled by Shadcn UI.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction Dialog({ ...props }: React.ComponentProps) {\n return ;\n}\n\n/**\n * Button or element that opens the dialog when clicked.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogTrigger({ ...props }: React.ComponentProps) {\n return ;\n}\n\n/**\n * Portals the dialog content into `document.body` to avoid z-index and overflow issues.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogPortal({ ...props }: React.ComponentProps) {\n return ;\n}\n\n/**\n * Button or element that closes the dialog when clicked.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogClose({ ...props }: React.ComponentProps) {\n return ;\n}\n\n/**\n * Semi-transparent backdrop rendered behind the dialog content. Animates on open/close.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogOverlay({\n className,\n // CUSTOM: Destructure style to allow merging with shared z-index constant\n style,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/**\n * Props for {@link DialogContent}. Extends the Radix UI Dialog.Content props with an optional\n * `overlayClassName` for per-instance backdrop styling and `showCloseButton` to control the close\n * button visibility.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\n// CUSTOM: Extend DialogContentProps with overlayClassName prop to allow per-call backdrop styling\nexport type DialogContentProps = React.ComponentProps & {\n /**\n * Additional CSS classes for the backdrop (`DialogOverlay`). Use when one dialog needs different\n * overlay styling than the default.\n */\n overlayClassName?: string;\n showCloseButton?: boolean;\n};\n\n/**\n * Main container for dialog content. Renders inside a portal with an overlay backdrop, centered on\n * screen. Includes an optional close button in the top corner.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n // CUSTOM: Destructure overlayClassName to forward to DialogOverlay for per-call backdrop styling\n overlayClassName,\n // CUSTOM: Destructure style to allow merging with shared z-index constant\n style,\n ...props\n}: DialogContentProps) {\n // CUSTOM: Use readDirection for RTL support — sets dir on dialog content so text direction is correct\n const dir = readDirection();\n return (\n \n {/* CUSTOM: Pass overlayClassName to DialogOverlay for per-call backdrop styling */}\n \n \n {children}\n {showCloseButton && (\n \n \n \n )}\n \n \n );\n}\n\n/**\n * Container for the dialog's header area. Stacks title and description vertically.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n );\n}\n\n/**\n * Container for the dialog's footer area. Lays out action buttons in a row on larger screens.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n showCloseButton?: boolean;\n}) {\n return (\n \n {children}\n {showCloseButton && (\n \n \n \n )}\n \n );\n}\n\n/**\n * Renders the dialog's title as a styled heading. Used inside DialogHeader.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogTitle({ className, ...props }: React.ComponentProps) {\n return (\n \n );\n}\n\n/**\n * Renders the dialog's description text in a muted style. Used inside DialogHeader.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/dialog}\n * @see Radix UI Documentation: {@link https://www.radix-ui.com/primitives/docs/components/dialog}\n */\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","import React from 'react';\n\nimport { cn } from '@/utils/shadcn-ui/utils';\n\n/**\n * Input component displays a form input field or a component that looks like an input field. Built\n * and styled with Shadcn UI.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n \n );\n}\n\nexport { Input };\n","import React from 'react';\n\nimport { cn } from '@/utils/shadcn-ui/utils';\n\n// CUSTOM: Added TSDoc with link to shadcn/ui documentation for this component\n/**\n * Displays a form textarea or a component that looks like a textarea. This component is from Shadcn\n * UI.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/textarea}\n */\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n \n );\n}\n\nexport { Textarea };\n","import React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/utils/shadcn-ui/utils';\nimport { Button } from '@/components/shadcn-ui/button';\nimport { Input } from '@/components/shadcn-ui/input';\nimport { Textarea } from '@/components/shadcn-ui/textarea';\n\n/**\n * A compound input group component that wraps an input with optional addons, buttons, or text.\n * Provides focus-ring coordination and layout management for inline input decorations.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n [data-align=block-end]]:h-auto tw:has-[>[data-align=block-end]]:flex-col tw:has-[>[data-align=block-start]]:h-auto tw:has-[>[data-align=block-start]]:flex-col tw:has-[>textarea]:h-auto tw:dark:bg-input/30 tw:dark:has-disabled:bg-input/80 tw:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 tw:has-[>[data-align=block-end]]:[&>input]:pt-3 tw:has-[>[data-align=block-start]]:[&>input]:pb-3 tw:has-[>[data-align=inline-end]]:[&>input]:pe-1.5 tw:has-[>[data-align=inline-start]]:[&>input]:ps-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Variants for the {@link InputGroupAddon} component controlling its inline or block placement.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nconst inputGroupAddonVariants = cva(\n 'tw:flex tw:h-auto tw:cursor-text tw:items-center tw:justify-center tw:gap-2 tw:py-1.5 tw:text-sm tw:font-medium tw:text-muted-foreground tw:select-none tw:group-data-[disabled=true]/input-group:opacity-50 tw:[&>kbd]:rounded-[calc(var(--radius)-5px)] tw:[&>svg:not([class*=size-])]:size-4',\n {\n variants: {\n align: {\n 'inline-start':\n 'tw:order-first tw:ps-2 tw:has-[>button]:ms-[-0.3rem] tw:has-[>kbd]:ms-[-0.15rem]',\n 'inline-end':\n 'tw:order-last tw:pe-2 tw:has-[>button]:me-[-0.3rem] tw:has-[>kbd]:me-[-0.15rem]',\n 'block-start':\n 'tw:order-first tw:w-full tw:justify-start tw:px-2.5 tw:pt-2 tw:group-has-[>input]/input-group:pt-2 tw:[.border-b]:pb-2',\n 'block-end':\n 'tw:order-last tw:w-full tw:justify-start tw:px-2.5 tw:pb-2 tw:group-has-[>input]/input-group:pb-2 tw:[.border-t]:pt-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\n/**\n * An addon placed inside an {@link InputGroup}, used to display icons, buttons, or text adjacent to\n * the input. Clicking the addon area proxies focus to the associated input.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps) {\n return (\n // CUSTOM: Clicking anywhere in the addon area proxies focus to the associated input — a\n // deliberate UX enhancement. The a11y rules flag a non-interactive role=\"group\" element having\n // a click handler, but removing the handler would degrade the UX. Keyboard focus on the input\n // itself is still accessible and not affected by this handler.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n {\n // CUSTOM: Use instanceof guard instead of 'as HTMLElement' type assertion to safely access .closest()\n if (e.target instanceof HTMLElement && e.target.closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\n/**\n * Variants for the {@link InputGroupButton} component controlling size.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nconst inputGroupButtonVariants = cva('tw:flex tw:items-center tw:gap-2 tw:text-sm tw:shadow-none', {\n variants: {\n size: {\n xs: 'tw:h-6 tw:gap-1 tw:rounded-[calc(var(--radius)-3px)] tw:px-1.5 tw:[&>svg:not([class*=size-])]:size-3.5',\n sm: 'tw:',\n 'icon-xs': 'tw:size-6 tw:rounded-[calc(var(--radius)-3px)] tw:p-0 tw:has-[>svg]:p-0',\n 'icon-sm': 'tw:size-8 tw:p-0 tw:has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\n/**\n * A ghost button sized to fit inside an {@link InputGroup}.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit, 'size'> &\n VariantProps) {\n return (\n \n );\n}\n\n/**\n * A plain text span styled to fit inline inside an {@link InputGroup}.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n \n );\n}\n\n/**\n * An `` styled to occupy its slot inside an {@link InputGroup}, with borders and rings\n * suppressed so the group provides the visual boundary.\n *\n * @see Shadcn UI Documentation: {@link https://ui.shadcn.com/docs/components/input}\n */\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n \n );\n}\n\n/**\n * A `