@buoy-gg/shared-ui 7.0.77 → 7.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/commonjs/JsModal.js +1 -1
  2. package/lib/commonjs/dataViewer/SplitDiffViewer.js +1 -1
  3. package/lib/commonjs/dataViewer/ThemedSplitView.js +1 -1
  4. package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +1 -1
  5. package/lib/commonjs/history/components/HistoryList.js +1 -1
  6. package/lib/commonjs/license/FreeAccountPrompt.js +1 -1
  7. package/lib/commonjs/settings/components/BubbleSettingsSection.js +1 -1
  8. package/lib/commonjs/ui/components/ChipStrip.js +1 -1
  9. package/lib/commonjs/ui/components/DataInspector.js +1 -1
  10. package/lib/commonjs/ui/components/DetailView.js +1 -1
  11. package/lib/commonjs/ui/components/DynamicFilterView.js +1 -1
  12. package/lib/commonjs/ui/components/EntityFilterView.js +1 -1
  13. package/lib/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -1
  14. package/lib/commonjs/ui/components/EventHistoryViewer/EventPickerModal.js +1 -1
  15. package/lib/module/JsModal.js +1 -1
  16. package/lib/module/dataViewer/SplitDiffViewer.js +1 -1
  17. package/lib/module/dataViewer/ThemedSplitView.js +1 -1
  18. package/lib/module/dataViewer/VirtualizedDataExplorer.js +1 -1
  19. package/lib/module/history/components/HistoryList.js +1 -1
  20. package/lib/module/license/FreeAccountPrompt.js +1 -1
  21. package/lib/module/settings/components/BubbleSettingsSection.js +1 -1
  22. package/lib/module/ui/components/ChipStrip.js +1 -1
  23. package/lib/module/ui/components/DataInspector.js +1 -1
  24. package/lib/module/ui/components/DetailView.js +1 -1
  25. package/lib/module/ui/components/DynamicFilterView.js +1 -1
  26. package/lib/module/ui/components/EntityFilterView.js +1 -1
  27. package/lib/module/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -1
  28. package/lib/module/ui/components/EventHistoryViewer/EventPickerModal.js +1 -1
  29. package/lib/typescript/commonjs/JsModal.d.ts +7 -0
  30. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  31. package/lib/typescript/module/JsModal.d.ts +7 -0
  32. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  33. package/lib/web/chunks/chunk-BMITMQVB.mjs +3 -3
  34. package/lib/web/chunks/chunk-GTRVOJUH.mjs +1 -1
  35. package/lib/web/chunks/chunk-HE5ONCAL.mjs +6 -0
  36. package/lib/web/chunks/chunk-OQB3GW44.mjs +1 -0
  37. package/lib/web/dataViewer.mjs +2 -2
  38. package/lib/web/history.mjs +1 -1
  39. package/lib/web/index.mjs +2 -2
  40. package/lib/web/ui.mjs +1 -1
  41. package/package.json +5 -5
@@ -1 +1 @@
1
- "use strict";import{useState as b}from"react";import{View as i,Text as c,StyleSheet as w,ScrollView as y,TouchableOpacity as x}from"react-native";import{gameUIColors as o}from"../gameUI/index.js";import{ModalHeader as g}from"./ModalHeader.js";import{CopyButton as C}from"./CopyButton.js";import{monoFont as S}from"../fonts.js";import{jsx as t,jsxs as d}from"react/jsx-runtime";export function DetailView({children:u,style:r}){return t(i,{style:[e.container,r],children:u})}DetailView.Header=function u({title:r,subtitle:n,onClose:l,onBack:s,actions:a}){return d(g,{children:[t(g.Navigation,{onBack:s,onClose:l}),t(g.Content,{title:r,subtitle:n}),a&&t(g.Actions,{children:a})]})};DetailView.Section=function u({title:r,icon:n,children:l,defaultOpen:s=true,collapsible:a=true,style:f,badge:m}){const[h,p]=b(s);if(!a){return d(i,{style:[e.section,f],children:[d(i,{style:e.sectionHeader,children:[n&&t(n,{size:14,color:o.primary}),t(c,{style:e.sectionTitle,children:r}),m!==void 0&&t(i,{style:e.sectionBadge,children:t(c,{style:e.sectionBadgeText,children:m})})]}),t(i,{style:e.sectionContent,children:l})]})}return d(i,{style:[e.section,f],children:[t(x,{style:e.sectionHeaderTouchable,onPress:()=>p(!h),children:d(i,{style:e.sectionHeader,children:[n&&t(n,{size:14,color:o.primary}),t(c,{style:e.sectionTitle,children:r}),m!==void 0&&t(i,{style:e.sectionBadge,children:t(c,{style:e.sectionBadgeText,children:m})})]})}),h&&t(i,{style:e.sectionContent,children:l})]})};DetailView.Row=function u({label:r,value:n,copyable:l=false,style:s,labelStyle:a,valueStyle:f}){const m=typeof n==="string"||typeof n==="number"?String(n):null;return d(i,{style:[e.row,s],children:[t(c,{style:[e.rowLabel,a],children:r}),d(i,{style:e.rowValueContainer,children:[typeof n==="string"||typeof n==="number"?t(c,{style:[e.rowValue,f],numberOfLines:1,children:n}):n,l&&m&&t(C,{value:m,size:12})]})]})};DetailView.DataSection=function u({title:r,data:n,icon:l,defaultOpen:s=false,style:a}){return t(DetailView.Section,{title:r,icon:l,defaultOpen:s,style:a,children:t(i,{style:e.dataContainer,children:t(y,{horizontal:true,showsHorizontalScrollIndicator:false,children:t(c,{style:e.dataText,children:JSON.stringify(n,null,2)})})})})};DetailView.StatusBar=function u({status:r,message:n,style:l}){const s={success:o.success,error:o.error,warning:o.warning,pending:o.warning,info:o.primary};const a=s[r];return d(i,{style:[e.statusBar,{backgroundColor:a+"20",borderColor:a+"40"},l],children:[t(i,{style:[e.statusDot,{backgroundColor:a}]}),n&&t(c,{style:[e.statusMessage,{color:a}],children:n})]})};DetailView.Timeline=function u({items:r,style:n}){return t(i,{style:[e.timeline,n],children:r.map((l,s)=>d(i,{style:e.timelineItem,children:[t(i,{style:e.timelineDot}),s<r.length-1&&t(i,{style:e.timelineLine}),d(i,{style:e.timelineContent,children:[t(c,{style:e.timelineLabel,children:l.label}),t(c,{style:e.timelineValue,children:l.value})]})]},s))})};DetailView.Content=function u({children:r,scrollable:n=true,style:l}){if(n){return t(y,{style:[e.content,l],children:r})}return t(i,{style:[e.content,l],children:r})};const e=w.create({container:{flex:1,backgroundColor:o.background},content:{flex:1,padding:16},section:{marginBottom:16,backgroundColor:o.panel,borderRadius:8,overflow:"hidden"},sectionHeader:{flexDirection:"row",alignItems:"center",padding:12,gap:8},sectionHeaderTouchable:{},sectionTitle:{flex:1,fontSize:14,fontWeight:"600",color:o.text},sectionBadge:{backgroundColor:o.primary+"20",paddingHorizontal:8,paddingVertical:2,borderRadius:4},sectionBadgeText:{fontSize:11,fontWeight:"600",color:o.primary},sectionContent:{padding:12,paddingTop:0},row:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingVertical:8,borderBottomWidth:1,borderBottomColor:o.border+"20"},rowLabel:{flex:1,fontSize:13,color:o.secondary},rowValueContainer:{flexDirection:"row",alignItems:"center",flex:2,gap:8},rowValue:{flex:1,fontSize:13,color:o.text,textAlign:"right"},dataContainer:{backgroundColor:o.background,borderRadius:6,padding:12},dataText:{fontSize:12,fontFamily:S,color:o.text},statusBar:{flexDirection:"row",alignItems:"center",padding:12,borderWidth:1,borderRadius:8,gap:8,marginVertical:8},statusDot:{width:8,height:8,borderRadius:4},statusMessage:{fontSize:13,fontWeight:"500"},timeline:{paddingVertical:8},timelineItem:{flexDirection:"row",position:"relative"},timelineDot:{width:8,height:8,borderRadius:4,backgroundColor:o.primary,marginTop:4,marginRight:12},timelineLine:{position:"absolute",left:3.5,top:12,bottom:-4,width:1,backgroundColor:o.border+"40"},timelineContent:{flex:1,marginBottom:12},timelineLabel:{fontSize:12,color:o.secondary,marginBottom:2},timelineValue:{fontSize:13,color:o.text}});
1
+ "use strict";import{useState as b}from"react";import{View as i,Text as c,StyleSheet as w,ScrollView as y,TouchableOpacity as x}from"react-native";import{gameUIColors as o}from"../gameUI/index.js";import{ModalHeader as g}from"./ModalHeader.js";import{CopyButton as C}from"./CopyButton.js";import{monoFont as S}from"../fonts.js";import{jsx as t,jsxs as d}from"react/jsx-runtime";export function DetailView({children:u,style:r}){return t(i,{style:[e.container,r],children:u})}DetailView.Header=function u({title:r,subtitle:n,onClose:l,onBack:s,actions:a}){return d(g,{children:[t(g.Navigation,{onBack:s,onClose:l}),t(g.Content,{title:r,subtitle:n}),a&&t(g.Actions,{children:a})]})};DetailView.Section=function u({title:r,icon:n,children:l,defaultOpen:s=true,collapsible:a=true,style:f,badge:m}){const[h,p]=b(s);if(!a){return d(i,{style:[e.section,f],children:[d(i,{style:e.sectionHeader,children:[n&&t(n,{size:14,color:o.primary}),t(c,{style:e.sectionTitle,children:r}),m!==void 0&&t(i,{style:e.sectionBadge,children:t(c,{style:e.sectionBadgeText,children:m})})]}),t(i,{style:e.sectionContent,children:l})]})}return d(i,{style:[e.section,f],children:[t(x,{style:e.sectionHeaderTouchable,onPress:()=>p(!h),children:d(i,{style:e.sectionHeader,children:[n&&t(n,{size:14,color:o.primary}),t(c,{style:e.sectionTitle,children:r}),m!==void 0&&t(i,{style:e.sectionBadge,children:t(c,{style:e.sectionBadgeText,children:m})})]})}),h&&t(i,{style:e.sectionContent,children:l})]})};DetailView.Row=function u({label:r,value:n,copyable:l=false,style:s,labelStyle:a,valueStyle:f}){const m=typeof n==="string"||typeof n==="number"?String(n):null;return d(i,{style:[e.row,s],children:[t(c,{style:[e.rowLabel,a],children:r}),d(i,{style:e.rowValueContainer,children:[typeof n==="string"||typeof n==="number"?t(c,{style:[e.rowValue,f],numberOfLines:1,children:n}):n,l&&m&&t(C,{value:m,size:12})]})]})};DetailView.DataSection=function u({title:r,data:n,icon:l,defaultOpen:s=false,style:a}){return t(DetailView.Section,{title:r,icon:l,defaultOpen:s,style:a,children:t(i,{style:e.dataContainer,children:t(y,{horizontal:true,showsHorizontalScrollIndicator:false,children:t(c,{style:e.dataText,children:JSON.stringify(n,null,2)})})})})};DetailView.StatusBar=function u({status:r,message:n,style:l}){const s={success:o.success,error:o.error,warning:o.warning,pending:o.warning,info:o.primary};const a=s[r];return d(i,{style:[e.statusBar,{backgroundColor:a+"20",borderColor:a+"40"},l],children:[t(i,{style:[e.statusDot,{backgroundColor:a}]}),n&&t(c,{style:[e.statusMessage,{color:a}],children:n})]})};DetailView.Timeline=function u({items:r,style:n}){return t(i,{style:[e.timeline,n],children:r.map((l,s)=>d(i,{style:e.timelineItem,children:[t(i,{style:e.timelineDot}),s<r.length-1&&t(i,{style:e.timelineLine}),d(i,{style:e.timelineContent,children:[t(c,{style:e.timelineLabel,children:l.label}),t(c,{style:e.timelineValue,children:l.value})]})]},s))})};DetailView.Content=function u({children:r,scrollable:n=true,style:l}){if(n){return t(y,{keyboardShouldPersistTaps:"handled",style:[e.content,l],children:r})}return t(i,{style:[e.content,l],children:r})};const e=w.create({container:{flex:1,backgroundColor:o.background},content:{flex:1,padding:16},section:{marginBottom:16,backgroundColor:o.panel,borderRadius:8,overflow:"hidden"},sectionHeader:{flexDirection:"row",alignItems:"center",padding:12,gap:8},sectionHeaderTouchable:{},sectionTitle:{flex:1,fontSize:14,fontWeight:"600",color:o.text},sectionBadge:{backgroundColor:o.primary+"20",paddingHorizontal:8,paddingVertical:2,borderRadius:4},sectionBadgeText:{fontSize:11,fontWeight:"600",color:o.primary},sectionContent:{padding:12,paddingTop:0},row:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingVertical:8,borderBottomWidth:1,borderBottomColor:o.border+"20"},rowLabel:{flex:1,fontSize:13,color:o.secondary},rowValueContainer:{flexDirection:"row",alignItems:"center",flex:2,gap:8},rowValue:{flex:1,fontSize:13,color:o.text,textAlign:"right"},dataContainer:{backgroundColor:o.background,borderRadius:6,padding:12},dataText:{fontSize:12,fontFamily:S,color:o.text},statusBar:{flexDirection:"row",alignItems:"center",padding:12,borderWidth:1,borderRadius:8,gap:8,marginVertical:8},statusDot:{width:8,height:8,borderRadius:4},statusMessage:{fontSize:13,fontWeight:"500"},timeline:{paddingVertical:8},timelineItem:{flexDirection:"row",position:"relative"},timelineDot:{width:8,height:8,borderRadius:4,backgroundColor:o.primary,marginTop:4,marginRight:12},timelineLine:{position:"absolute",left:3.5,top:12,bottom:-4,width:1,backgroundColor:o.border+"40"},timelineContent:{flex:1,marginBottom:12},timelineLabel:{fontSize:12,color:o.secondary,marginBottom:2},timelineValue:{fontSize:13,color:o.text}});
@@ -1 +1 @@
1
- "use strict";import{View as c,Text as a,TouchableOpacity as F,StyleSheet as U,ScrollView as w}from"react-native";import{useEffect as X,useState as Y}from"react";import{Filter as A,Plus as v,Copy as J,Eye as Q,Info as ee}from"../../icons/index.js";import{SectionHeader as d}from"./SectionHeader.js";import{FilterList as H,AddFilterInput as W,AddFilterButton as E}from"./FilterComponents.js";import{useFilterManager as R}from"../../hooks/useFilterManager.js";import{buoyColors as i}from"../gameUI/constants/gameUIColors.js";import{night as o}from"../night/nightTheme.js";import{monoFont as f}from"../fonts.js";import{jsx as e,jsxs as n,Fragment as D}from"react/jsx-runtime";export function DynamicFilterView({sections:L=[],filterSummarySection:p,addFilterSection:T,includeOnlySection:s,availableItemsSection:x,howItWorksSection:h,previewSection:b,onFilterChange:V,onPatternToggle:k,onPatternAdd:z,activePatterns:g=new Set,renderPatternMeta:j,tabs:y,activeTab:K,onTabChange:B}){const u=R(g);const m=R(s?.patterns||new Set);const[M,P]=Y(y?.[0]?.id||"");const C=K||M;X(()=>{if(g.size!==u.filters.size||!Array.from(g).every(t=>u.filters.has(t))){}},[g,u.filters]);const N=()=>{if(u.newFilter.trim()&&z){z(u.newFilter.trim());u.addFilter(u.newFilter)}};const O=()=>{if(m.newFilter.trim()&&s?.onPatternAdd){s.onPatternAdd(m.newFilter.trim());m.addFilter(m.newFilter)}};const I=x?.items?.filter(t=>{return!Array.from(g).some(l=>t.includes(l))})||[];const $=()=>{if(!y||y.length===0)return null;return e(c,{style:r.tabContainer,children:y.map(t=>n(F,{onPress:()=>{if(B)B(t.id);else P(t.id)},style:[r.tabButton,C===t.id?r.tabButtonActive:r.tabButtonInactive],children:[t.icon&&e(t.icon,{size:14,color:C===t.id?i.primary:o.color.textTertiary}),e(a,{style:[r.tabButtonText,C===t.id?r.tabButtonTextActive:r.tabButtonTextInactive],children:t.label}),t.count!==void 0&&t.count>0&&e(c,{style:r.tabBadge,children:e(a,{style:r.tabBadgeText,children:t.count})})]},t.id))})};const Z=t=>{if(t.type==="custom"&&t.renderCustom){return t.renderCustom()}if(t.type==="patterns"){return null}if(!t.data||t.data.length===0)return null;return n(c,{style:r.section,children:[n(d,{children:[t.icon&&e(d.Icon,{icon:t.icon,color:t.color||i.primary,size:12}),e(d.Title,{children:t.title})]}),t.description&&e(a,{style:r.sectionDescription,children:t.description}),e(c,{style:r.filterGrid,children:t.data.map(l=>{const S=l.count!==void 0;const q=S&&l.count===0;const G=t.type!=="method"||l.icon;return n(F,{testID:`buoy-filter-option-${l.id}`,accessibilityRole:"button",accessibilityLabel:String(l.label??l.id),style:[r.filterCard,l.isActive&&r.activeFilterCard],onPress:()=>V?.(l.id,l.value),children:[l.icon?e(l.icon,{size:24,color:l.color,style:r.filterIcon}):t.type==="method"?e(c,{style:[r.methodBadgeCompact,{backgroundColor:`${l.color}20`}],children:e(a,{style:[r.methodTextCompact,{color:l.color}],numberOfLines:1,adjustsFontSizeToFit:true,minimumFontScale:.8,children:l.label})}):null,S&&e(a,{style:[q?r.filterCountZero:r.filterCountActive],children:l.count}),G&&e(a,{style:r.filterLabelCompact,children:l.label}),l.description&&e(a,{style:r.filterDescriptionBottom,children:l.description})]},l.id)})})]},t.id)};const _=()=>{if(y&&C){const t=y.find(l=>l.id===C);if(t?.content){return t.content()}}return n(D,{children:[p?.enabled&&(p.includePatterns?.size||p.excludePatterns?.size)?n(c,{style:r.filterSummarySection,children:[n(c,{style:r.filterSummaryHeader,children:[e(ee,{size:14,color:i.warning}),e(a,{style:r.filterSummaryTitle,children:"Filters Active"})]}),n(a,{style:r.filterSummaryText,children:["Showing ",p.filteredCount," of ",p.totalCount," queries",p.includePatterns?.size?n(a,{style:r.filterSummaryInclude,children:[" ","\u2022 Including: ",Array.from(p.includePatterns).join(", ")]}):null,p.excludePatterns?.size?n(a,{style:r.filterSummaryExclude,children:[" ","\u2022 Excluding: ",Array.from(p.excludePatterns).join(", ")]}):null]})]}):null,L.map(Z),s?.enabled&&n(c,{style:r.includeOnlySection,children:[n(d,{children:[e(d.Icon,{icon:s.icon||Q,color:i.success,size:12}),e(d.Title,{children:s.title||"INCLUDE ONLY FILTERS"}),s.patterns.size>0&&e(d.Badge,{count:s.patterns.size,color:i.success})]}),s.description&&e(a,{style:r.includeOnlyDescription,children:s.description}),e(c,{style:r.includeOnlyInputWrapper,children:!m.showAddInput?e(E,{onPress:()=>m.setShowAddInput(true),color:i.success,label:"Add include pattern",testID:"buoy-filter-include-add-open"}):e(W,{value:m.newFilter,onChange:m.setNewFilter,onSubmit:O,onCancel:()=>{m.setShowAddInput(false);m.setNewFilter("")},placeholder:s.placeholder||"Enter pattern to include...",color:i.success,testID:"buoy-filter-include-input"})}),s.patterns.size>0&&e(w,{testID:"buoy-filter-include-scroll",style:r.includeOnlyFiltersContent,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,children:e(H,{filters:s.patterns,onRemoveFilter:s.onPatternToggle,color:i.success,renderItemMeta:s.renderPatternMeta})})]}),T?.enabled&&n(c,{style:r.excludeFiltersSection,children:[n(d,{children:[e(d.Icon,{icon:A,color:i.primary,size:12}),e(d.Title,{children:T.title||"EXCLUDE FILTERS"}),g.size>0&&e(d.Badge,{count:g.size,color:i.primary})]}),e(a,{style:r.excludeFiltersDescription,children:"Hide queries matching these patterns from the list."}),e(c,{style:r.excludeFiltersInputWrapper,children:!u.showAddInput?e(E,{onPress:()=>u.setShowAddInput(true),color:i.primary,label:"Add exclude pattern"}):n(D,{children:[T.renderExtra?.(),e(W,{value:u.newFilter,onChange:u.setNewFilter,onSubmit:N,onCancel:()=>{u.setShowAddInput(false);u.setNewFilter("")},placeholder:T.placeholder||"Enter pattern to exclude...",color:i.primary})]})}),g.size>0&&e(w,{testID:"buoy-filter-active-scroll",style:r.excludeFiltersContent,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,children:e(H,{filters:g,onRemoveFilter:k,color:i.primary,renderItemMeta:j})})]}),x?.enabled&&n(c,{style:r.availableKeysSection,children:[n(d,{children:[e(d.Icon,{icon:x.icon||v,color:i.primary,size:12}),e(d.Title,{children:x.title||"AVAILABLE ITEMS"}),e(d.Badge,{count:I.length,color:i.primary})]}),e(w,{style:r.availableKeysScroll,horizontal:false,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,scrollEnabled:true,children:I.length>0?I.map(t=>n(F,{onPress:()=>{if(z){z(t);u.addFilter(t)}},style:r.availableKeyItem,"sentry-label":"ignore-touchable-opacity",testID:`buoy-filter-available-${t}`,accessibilityRole:"button",accessibilityLabel:`Add filter ${t}`,children:[e(a,{style:r.availableKeyText,numberOfLines:1,children:t}),e(v,{size:12,color:i.primary})]},t)):e(a,{style:r.emptyStateText,children:x.emptyMessage||"No items available"})})]}),h?.enabled&&n(c,{style:r.howItWorksSection,children:[n(d,{children:[e(d.Icon,{icon:h.icon||A,color:o.color.textSecondary,size:12}),e(d.Title,{children:h.title||"HOW FILTERS WORK"})]}),e(a,{style:r.howItWorksText,children:h.description||"Filters help you focus on relevant data by hiding unwanted items."}),h.examples&&h.examples.length>0&&n(c,{style:r.examplesContainer,children:[e(a,{style:r.examplesTitle,children:"EXAMPLES:"}),h.examples.map((t,l)=>e(a,{style:r.exampleItem,children:t},l))]})]}),b?.enabled&&n(c,{style:r.previewSection,children:[n(d,{children:[e(d.Icon,{icon:b.icon||J,color:i.primary,size:12}),e(d.Title,{children:b.title||"PREVIEW"}),b.headerActions&&e(d.Actions,{children:b.headerActions()})]}),e(c,{style:r.previewContent,children:b.content()})]})]})};return n(c,{style:r.container,children:[$(),e(w,{testID:"buoy-filter-scroll",style:r.content,contentContainerStyle:r.scrollContent,showsVerticalScrollIndicator:false,"sentry-label":"ignore-scrollview",children:_()})]})}const r=U.create({container:{flex:1,backgroundColor:"transparent"},content:{flex:1},scrollContent:{paddingTop:16,paddingHorizontal:16,paddingBottom:24},tabContainer:{flexDirection:"row",paddingHorizontal:16,paddingVertical:12,gap:8,backgroundColor:o.color.surface,borderBottomWidth:1,borderBottomColor:o.color.border},tabButton:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:10,paddingHorizontal:16,borderRadius:8,borderWidth:1},tabButtonActive:{backgroundColor:i.primary+"20",borderColor:i.primary,borderWidth:2},tabButtonInactive:{backgroundColor:o.color.surfaceElevated,borderColor:o.color.border},tabButtonText:{fontSize:11,fontWeight:"600",letterSpacing:.5},tabButtonTextActive:{color:i.primary},tabButtonTextInactive:{color:o.color.textTertiary},tabBadge:{backgroundColor:i.primary+"40",paddingHorizontal:6,paddingVertical:1,borderRadius:8,minWidth:18,alignItems:"center"},tabBadgeText:{fontSize:9,color:i.primary,fontWeight:"700"},section:{marginBottom:8},filterInputWrapper:{marginBottom:4},filterGrid:{flexDirection:"row",flexWrap:"wrap",gap:8,marginTop:8},filterCard:{backgroundColor:o.color.surface,borderRadius:12,paddingHorizontal:8,paddingVertical:10,flexDirection:"column",alignItems:"center",justifyContent:"center",borderWidth:1,borderColor:o.color.border,width:72,minHeight:68},activeFilterCard:{backgroundColor:i.primary+"33",borderColor:i.primary,borderWidth:2,shadowColor:i.primary,shadowOffset:{width:0,height:0},shadowOpacity:.3,shadowRadius:8,elevation:4},filterIcon:{marginBottom:0},filterCountActive:{fontSize:14,fontWeight:"700",color:o.color.text,fontFamily:f,marginTop:3,marginBottom:1,textShadowColor:"rgba(0, 0, 0, 0.2)",textShadowOffset:{width:0,height:.5},textShadowRadius:1},filterCountZero:{fontSize:11,fontWeight:"500",color:o.color.textTertiary,fontFamily:f,marginTop:3,marginBottom:1},filterLabelCompact:{fontSize:10,color:o.color.text,fontWeight:"600",textAlign:"center",textTransform:"capitalize",textShadowColor:"rgba(0, 0, 0, 0.3)",textShadowOffset:{width:0,height:.5},textShadowRadius:1},filterDescriptionBottom:{fontSize:8,color:o.color.textTertiary,textAlign:"center",marginTop:2,lineHeight:11},sectionDescription:{fontSize:10,color:o.color.textSecondary,marginTop:4,marginBottom:4,lineHeight:14},methodBadgeCompact:{paddingHorizontal:8,paddingVertical:4,borderRadius:5,minWidth:48,maxWidth:60,alignItems:"center",justifyContent:"center"},methodTextCompact:{fontSize:13,fontWeight:"700",letterSpacing:.3,fontFamily:f},activeFiltersSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},activeFiltersContent:{paddingHorizontal:16,paddingTop:8,paddingBottom:16,maxHeight:200},includeOnlySection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},includeOnlyDescription:{fontSize:10,color:o.color.textSecondary,paddingHorizontal:16,paddingTop:8,lineHeight:14},includeOnlyInputWrapper:{paddingHorizontal:16,paddingTop:8,paddingBottom:8},includeOnlyFiltersContent:{paddingHorizontal:16,paddingBottom:16,maxHeight:150},excludeFiltersSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},excludeFiltersDescription:{fontSize:10,color:o.color.textSecondary,paddingHorizontal:16,paddingTop:8,lineHeight:14},excludeFiltersInputWrapper:{paddingHorizontal:16,paddingTop:8,paddingBottom:8},excludeFiltersContent:{paddingHorizontal:16,paddingBottom:16,maxHeight:150},filterSummarySection:{backgroundColor:i.warning+"15",borderRadius:8,borderWidth:1,borderColor:i.warning+"40",padding:12,marginBottom:12},filterSummaryHeader:{flexDirection:"row",alignItems:"center",gap:6,marginBottom:6},filterSummaryTitle:{fontSize:12,fontWeight:"600",color:i.warning},filterSummaryText:{fontSize:11,color:o.color.text,lineHeight:16},filterSummaryInclude:{color:i.success,fontWeight:"500"},filterSummaryExclude:{color:i.primary,fontWeight:"500"},emptyStateText:{fontSize:11,color:o.color.textTertiary,fontStyle:"italic",textAlign:"center",paddingVertical:12},availableKeysSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},availableKeysScroll:{maxHeight:150,paddingHorizontal:16,paddingTop:8,paddingBottom:16},availableKeyItem:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:10,paddingHorizontal:12,backgroundColor:o.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:o.color.border,marginBottom:8},availableKeyText:{flex:1,fontSize:11,color:o.color.text,fontFamily:f,marginRight:8},howItWorksSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},howItWorksText:{fontSize:11,color:o.color.textSecondary,lineHeight:16,marginBottom:12,marginTop:8,paddingHorizontal:16,fontFamily:f},examplesContainer:{paddingTop:8,paddingHorizontal:16,paddingBottom:16,borderTopWidth:1,borderTopColor:o.color.border},examplesTitle:{fontSize:10,fontWeight:"600",color:o.color.textTertiary,fontFamily:f,letterSpacing:.5,marginBottom:6},exampleItem:{fontSize:10,color:o.color.textTertiary,fontFamily:f,lineHeight:16},previewSection:{backgroundColor:o.color.surfaceElevated,borderRadius:16,borderWidth:1,borderColor:o.color.fillTertiary,marginTop:16,overflow:"hidden"},previewContent:{paddingHorizontal:16,paddingTop:12,paddingBottom:16,backgroundColor:o.color.bg,marginHorizontal:12,marginBottom:12,borderRadius:8,borderWidth:1,borderColor:o.color.border}});
1
+ "use strict";import{View as c,Text as a,TouchableOpacity as F,StyleSheet as U,ScrollView as w}from"react-native";import{useEffect as X,useState as Y}from"react";import{Filter as A,Plus as v,Copy as J,Eye as Q,Info as ee}from"../../icons/index.js";import{SectionHeader as d}from"./SectionHeader.js";import{FilterList as H,AddFilterInput as W,AddFilterButton as E}from"./FilterComponents.js";import{useFilterManager as R}from"../../hooks/useFilterManager.js";import{buoyColors as i}from"../gameUI/constants/gameUIColors.js";import{night as o}from"../night/nightTheme.js";import{monoFont as f}from"../fonts.js";import{jsx as e,jsxs as n,Fragment as D}from"react/jsx-runtime";export function DynamicFilterView({sections:k=[],filterSummarySection:m,addFilterSection:T,includeOnlySection:s,availableItemsSection:x,howItWorksSection:g,previewSection:b,onFilterChange:L,onPatternToggle:V,onPatternAdd:z,activePatterns:h=new Set,renderPatternMeta:P,tabs:y,activeTab:j,onTabChange:B}){const u=R(h);const p=R(s?.patterns||new Set);const[K,M]=Y(y?.[0]?.id||"");const C=j||K;X(()=>{if(h.size!==u.filters.size||!Array.from(h).every(t=>u.filters.has(t))){}},[h,u.filters]);const N=()=>{if(u.newFilter.trim()&&z){z(u.newFilter.trim());u.addFilter(u.newFilter)}};const O=()=>{if(p.newFilter.trim()&&s?.onPatternAdd){s.onPatternAdd(p.newFilter.trim());p.addFilter(p.newFilter)}};const I=x?.items?.filter(t=>{return!Array.from(h).some(l=>t.includes(l))})||[];const $=()=>{if(!y||y.length===0)return null;return e(c,{style:r.tabContainer,children:y.map(t=>n(F,{onPress:()=>{if(B)B(t.id);else M(t.id)},style:[r.tabButton,C===t.id?r.tabButtonActive:r.tabButtonInactive],children:[t.icon&&e(t.icon,{size:14,color:C===t.id?i.primary:o.color.textTertiary}),e(a,{style:[r.tabButtonText,C===t.id?r.tabButtonTextActive:r.tabButtonTextInactive],children:t.label}),t.count!==void 0&&t.count>0&&e(c,{style:r.tabBadge,children:e(a,{style:r.tabBadgeText,children:t.count})})]},t.id))})};const Z=t=>{if(t.type==="custom"&&t.renderCustom){return t.renderCustom()}if(t.type==="patterns"){return null}if(!t.data||t.data.length===0)return null;return n(c,{style:r.section,children:[n(d,{children:[t.icon&&e(d.Icon,{icon:t.icon,color:t.color||i.primary,size:12}),e(d.Title,{children:t.title})]}),t.description&&e(a,{style:r.sectionDescription,children:t.description}),e(c,{style:r.filterGrid,children:t.data.map(l=>{const S=l.count!==void 0;const q=S&&l.count===0;const G=t.type!=="method"||l.icon;return n(F,{testID:`buoy-filter-option-${l.id}`,accessibilityRole:"button",accessibilityLabel:String(l.label??l.id),style:[r.filterCard,l.isActive&&r.activeFilterCard],onPress:()=>L?.(l.id,l.value),children:[l.icon?e(l.icon,{size:24,color:l.color,style:r.filterIcon}):t.type==="method"?e(c,{style:[r.methodBadgeCompact,{backgroundColor:`${l.color}20`}],children:e(a,{style:[r.methodTextCompact,{color:l.color}],numberOfLines:1,adjustsFontSizeToFit:true,minimumFontScale:.8,children:l.label})}):null,S&&e(a,{style:[q?r.filterCountZero:r.filterCountActive],children:l.count}),G&&e(a,{style:r.filterLabelCompact,children:l.label}),l.description&&e(a,{style:r.filterDescriptionBottom,children:l.description})]},l.id)})})]},t.id)};const _=()=>{if(y&&C){const t=y.find(l=>l.id===C);if(t?.content){return t.content()}}return n(D,{children:[m?.enabled&&(m.includePatterns?.size||m.excludePatterns?.size)?n(c,{style:r.filterSummarySection,children:[n(c,{style:r.filterSummaryHeader,children:[e(ee,{size:14,color:i.warning}),e(a,{style:r.filterSummaryTitle,children:"Filters Active"})]}),n(a,{style:r.filterSummaryText,children:["Showing ",m.filteredCount," of ",m.totalCount," queries",m.includePatterns?.size?n(a,{style:r.filterSummaryInclude,children:[" ","\u2022 Including: ",Array.from(m.includePatterns).join(", ")]}):null,m.excludePatterns?.size?n(a,{style:r.filterSummaryExclude,children:[" ","\u2022 Excluding: ",Array.from(m.excludePatterns).join(", ")]}):null]})]}):null,k.map(Z),s?.enabled&&n(c,{style:r.includeOnlySection,children:[n(d,{children:[e(d.Icon,{icon:s.icon||Q,color:i.success,size:12}),e(d.Title,{children:s.title||"INCLUDE ONLY FILTERS"}),s.patterns.size>0&&e(d.Badge,{count:s.patterns.size,color:i.success})]}),s.description&&e(a,{style:r.includeOnlyDescription,children:s.description}),e(c,{style:r.includeOnlyInputWrapper,children:!p.showAddInput?e(E,{onPress:()=>p.setShowAddInput(true),color:i.success,label:"Add include pattern",testID:"buoy-filter-include-add-open"}):e(W,{value:p.newFilter,onChange:p.setNewFilter,onSubmit:O,onCancel:()=>{p.setShowAddInput(false);p.setNewFilter("")},placeholder:s.placeholder||"Enter pattern to include...",color:i.success,testID:"buoy-filter-include-input"})}),s.patterns.size>0&&e(w,{keyboardShouldPersistTaps:"handled",testID:"buoy-filter-include-scroll",style:r.includeOnlyFiltersContent,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,children:e(H,{filters:s.patterns,onRemoveFilter:s.onPatternToggle,color:i.success,renderItemMeta:s.renderPatternMeta})})]}),T?.enabled&&n(c,{style:r.excludeFiltersSection,children:[n(d,{children:[e(d.Icon,{icon:A,color:i.primary,size:12}),e(d.Title,{children:T.title||"EXCLUDE FILTERS"}),h.size>0&&e(d.Badge,{count:h.size,color:i.primary})]}),e(a,{style:r.excludeFiltersDescription,children:"Hide queries matching these patterns from the list."}),e(c,{style:r.excludeFiltersInputWrapper,children:!u.showAddInput?e(E,{onPress:()=>u.setShowAddInput(true),color:i.primary,label:"Add exclude pattern"}):n(D,{children:[T.renderExtra?.(),e(W,{value:u.newFilter,onChange:u.setNewFilter,onSubmit:N,onCancel:()=>{u.setShowAddInput(false);u.setNewFilter("")},placeholder:T.placeholder||"Enter pattern to exclude...",color:i.primary})]})}),h.size>0&&e(w,{keyboardShouldPersistTaps:"handled",testID:"buoy-filter-active-scroll",style:r.excludeFiltersContent,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,children:e(H,{filters:h,onRemoveFilter:V,color:i.primary,renderItemMeta:P})})]}),x?.enabled&&n(c,{style:r.availableKeysSection,children:[n(d,{children:[e(d.Icon,{icon:x.icon||v,color:i.primary,size:12}),e(d.Title,{children:x.title||"AVAILABLE ITEMS"}),e(d.Badge,{count:I.length,color:i.primary})]}),e(w,{style:r.availableKeysScroll,horizontal:false,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,scrollEnabled:true,children:I.length>0?I.map(t=>n(F,{onPress:()=>{if(z){z(t);u.addFilter(t)}},style:r.availableKeyItem,"sentry-label":"ignore-touchable-opacity",testID:`buoy-filter-available-${t}`,accessibilityRole:"button",accessibilityLabel:`Add filter ${t}`,children:[e(a,{style:r.availableKeyText,numberOfLines:1,children:t}),e(v,{size:12,color:i.primary})]},t)):e(a,{style:r.emptyStateText,children:x.emptyMessage||"No items available"})})]}),g?.enabled&&n(c,{style:r.howItWorksSection,children:[n(d,{children:[e(d.Icon,{icon:g.icon||A,color:o.color.textSecondary,size:12}),e(d.Title,{children:g.title||"HOW FILTERS WORK"})]}),e(a,{style:r.howItWorksText,children:g.description||"Filters help you focus on relevant data by hiding unwanted items."}),g.examples&&g.examples.length>0&&n(c,{style:r.examplesContainer,children:[e(a,{style:r.examplesTitle,children:"EXAMPLES:"}),g.examples.map((t,l)=>e(a,{style:r.exampleItem,children:t},l))]})]}),b?.enabled&&n(c,{style:r.previewSection,children:[n(d,{children:[e(d.Icon,{icon:b.icon||J,color:i.primary,size:12}),e(d.Title,{children:b.title||"PREVIEW"}),b.headerActions&&e(d.Actions,{children:b.headerActions()})]}),e(c,{style:r.previewContent,children:b.content()})]})]})};return n(c,{style:r.container,children:[$(),e(w,{keyboardShouldPersistTaps:"handled",testID:"buoy-filter-scroll",style:r.content,contentContainerStyle:r.scrollContent,showsVerticalScrollIndicator:false,"sentry-label":"ignore-scrollview",children:_()})]})}const r=U.create({container:{flex:1,backgroundColor:"transparent"},content:{flex:1},scrollContent:{paddingTop:16,paddingHorizontal:16,paddingBottom:24},tabContainer:{flexDirection:"row",paddingHorizontal:16,paddingVertical:12,gap:8,backgroundColor:o.color.surface,borderBottomWidth:1,borderBottomColor:o.color.border},tabButton:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:10,paddingHorizontal:16,borderRadius:8,borderWidth:1},tabButtonActive:{backgroundColor:i.primary+"20",borderColor:i.primary,borderWidth:2},tabButtonInactive:{backgroundColor:o.color.surfaceElevated,borderColor:o.color.border},tabButtonText:{fontSize:11,fontWeight:"600",letterSpacing:.5},tabButtonTextActive:{color:i.primary},tabButtonTextInactive:{color:o.color.textTertiary},tabBadge:{backgroundColor:i.primary+"40",paddingHorizontal:6,paddingVertical:1,borderRadius:8,minWidth:18,alignItems:"center"},tabBadgeText:{fontSize:9,color:i.primary,fontWeight:"700"},section:{marginBottom:8},filterInputWrapper:{marginBottom:4},filterGrid:{flexDirection:"row",flexWrap:"wrap",gap:8,marginTop:8},filterCard:{backgroundColor:o.color.surface,borderRadius:12,paddingHorizontal:8,paddingVertical:10,flexDirection:"column",alignItems:"center",justifyContent:"center",borderWidth:1,borderColor:o.color.border,width:72,minHeight:68},activeFilterCard:{backgroundColor:i.primary+"33",borderColor:i.primary,borderWidth:2,shadowColor:i.primary,shadowOffset:{width:0,height:0},shadowOpacity:.3,shadowRadius:8,elevation:4},filterIcon:{marginBottom:0},filterCountActive:{fontSize:14,fontWeight:"700",color:o.color.text,fontFamily:f,marginTop:3,marginBottom:1,textShadowColor:"rgba(0, 0, 0, 0.2)",textShadowOffset:{width:0,height:.5},textShadowRadius:1},filterCountZero:{fontSize:11,fontWeight:"500",color:o.color.textTertiary,fontFamily:f,marginTop:3,marginBottom:1},filterLabelCompact:{fontSize:10,color:o.color.text,fontWeight:"600",textAlign:"center",textTransform:"capitalize",textShadowColor:"rgba(0, 0, 0, 0.3)",textShadowOffset:{width:0,height:.5},textShadowRadius:1},filterDescriptionBottom:{fontSize:8,color:o.color.textTertiary,textAlign:"center",marginTop:2,lineHeight:11},sectionDescription:{fontSize:10,color:o.color.textSecondary,marginTop:4,marginBottom:4,lineHeight:14},methodBadgeCompact:{paddingHorizontal:8,paddingVertical:4,borderRadius:5,minWidth:48,maxWidth:60,alignItems:"center",justifyContent:"center"},methodTextCompact:{fontSize:13,fontWeight:"700",letterSpacing:.3,fontFamily:f},activeFiltersSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},activeFiltersContent:{paddingHorizontal:16,paddingTop:8,paddingBottom:16,maxHeight:200},includeOnlySection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},includeOnlyDescription:{fontSize:10,color:o.color.textSecondary,paddingHorizontal:16,paddingTop:8,lineHeight:14},includeOnlyInputWrapper:{paddingHorizontal:16,paddingTop:8,paddingBottom:8},includeOnlyFiltersContent:{paddingHorizontal:16,paddingBottom:16,maxHeight:150},excludeFiltersSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},excludeFiltersDescription:{fontSize:10,color:o.color.textSecondary,paddingHorizontal:16,paddingTop:8,lineHeight:14},excludeFiltersInputWrapper:{paddingHorizontal:16,paddingTop:8,paddingBottom:8},excludeFiltersContent:{paddingHorizontal:16,paddingBottom:16,maxHeight:150},filterSummarySection:{backgroundColor:i.warning+"15",borderRadius:8,borderWidth:1,borderColor:i.warning+"40",padding:12,marginBottom:12},filterSummaryHeader:{flexDirection:"row",alignItems:"center",gap:6,marginBottom:6},filterSummaryTitle:{fontSize:12,fontWeight:"600",color:i.warning},filterSummaryText:{fontSize:11,color:o.color.text,lineHeight:16},filterSummaryInclude:{color:i.success,fontWeight:"500"},filterSummaryExclude:{color:i.primary,fontWeight:"500"},emptyStateText:{fontSize:11,color:o.color.textTertiary,fontStyle:"italic",textAlign:"center",paddingVertical:12},availableKeysSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},availableKeysScroll:{maxHeight:150,paddingHorizontal:16,paddingTop:8,paddingBottom:16},availableKeyItem:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:10,paddingHorizontal:12,backgroundColor:o.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:o.color.border,marginBottom:8},availableKeyText:{flex:1,fontSize:11,color:o.color.text,fontFamily:f,marginRight:8},howItWorksSection:{backgroundColor:o.color.surface,borderRadius:16,borderWidth:1,borderColor:o.color.border,marginTop:16,overflow:"hidden"},howItWorksText:{fontSize:11,color:o.color.textSecondary,lineHeight:16,marginBottom:12,marginTop:8,paddingHorizontal:16,fontFamily:f},examplesContainer:{paddingTop:8,paddingHorizontal:16,paddingBottom:16,borderTopWidth:1,borderTopColor:o.color.border},examplesTitle:{fontSize:10,fontWeight:"600",color:o.color.textTertiary,fontFamily:f,letterSpacing:.5,marginBottom:6},exampleItem:{fontSize:10,color:o.color.textTertiary,fontFamily:f,lineHeight:16},previewSection:{backgroundColor:o.color.surfaceElevated,borderRadius:16,borderWidth:1,borderColor:o.color.fillTertiary,marginTop:16,overflow:"hidden"},previewContent:{paddingHorizontal:16,paddingTop:12,paddingBottom:16,backgroundColor:o.color.bg,marginHorizontal:12,marginBottom:12,borderRadius:8,borderWidth:1,borderColor:o.color.border}});
@@ -1 +1 @@
1
- "use strict";import{useState as w}from"react";import{ScrollView as z,StyleSheet as W,Text as p,TouchableOpacity as L,View as s}from"react-native";import{Filter as I,X as B}from"../../icons/index.js";import{night as t}from"../night/nightTheme.js";import{SectionHeader as n}from"./SectionHeader.js";import{AddFilterButton as V,AddFilterInput as A}from"./FilterComponents.js";import{monoFont as m}from"../fonts.js";import{jsxs as l,jsx as r}from"react/jsx-runtime";function k(d,a){return Array.from(a).some(h=>d.name.toLowerCase().includes(h.toLowerCase()))}function v(d,a){const h=a.find(f=>f.name.toLowerCase()===d.toLowerCase());return h?h.color:null}export function EntityFilterView({entities:d,ignoredPatterns:a,onTogglePattern:h,onAddPattern:f,entityNoun:T,entitySingular:y,entityKey:u,testIDPrefix:c,slug:x,howItWorks:H,examples:R,addPlaceholder:E,emptyMessage:S}){const[$,g]=w(false);const[C,b]=w("");const F=()=>{const e=C.trim();if(e){f(e);b("");g(false)}};return l(z,{style:o.container,contentContainerStyle:o.scrollContent,showsVerticalScrollIndicator:false,nestedScrollEnabled:true,testID:`${c}-filters-scroll`,children:[d.length===0&&S?l(s,{style:o.section,children:[r(n,{children:l(n.Title,{children:["REGISTERED ",T]})}),r(p,{style:o.emptyText,testID:`${c}-filters-${u}s-empty`,children:S})]}):null,d.length>0&&l(s,{style:o.section,children:[l(n,{children:[l(n.Title,{children:["REGISTERED ",T]}),r(n.Badge,{count:d.length,color:t.color.accent,testID:`${c}-filters-${u}-count`})]}),r(z,{style:o.entityList,contentContainerStyle:o.entityListContent,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,testID:`${c}-filters-${u}-list`,children:d.map(e=>{const i=k(e,a);return l(L,{style:[o.entityRow,i&&o.entityRowHidden],onPress:()=>f(e.name),disabled:i,testID:`${c}-filters-${u}-${x(e.name)}`,accessibilityRole:"button",accessibilityLabel:`Hide ${e.name}`,accessibilityState:{disabled:i},children:[r(s,{style:[o.dot,{backgroundColor:i?t.color.textTertiary:e.color}]}),r(p,{style:[o.entityText,i?o.entityTextHidden:{color:e.color}],numberOfLines:1,children:e.name}),i?r(p,{style:o.hiddenLabel,children:"hidden"}):r(p,{style:[o.addLabel,{color:e.color+"99"}],children:"+ hide"})]},e.name)})})]}),l(s,{style:o.section,children:[l(n,{children:[r(n.Icon,{icon:I,color:t.color.accent,size:12}),l(n.Title,{children:[y.toUpperCase()," NAME FILTERS"]}),a.size>0&&r(n.Badge,{count:a.size,color:t.color.accent,testID:`${c}-filters-count`})]}),r(s,{style:o.addInputWrapper,children:!$?r(V,{onPress:()=>g(true),color:t.color.accent,label:`Add ${y} name pattern`,testID:`${c}-filters-add-open`}):r(A,{value:C,onChange:b,onSubmit:F,onCancel:()=>{g(false);b("")},placeholder:E??`Enter ${y} name pattern to hide...`,color:t.color.accent,testID:`${c}-filters-add-input`})}),a.size>0&&r(s,{style:o.patternList,children:Array.from(a).map(e=>{const i=v(e,d);return l(L,{style:o.patternRow,onPress:()=>h(e),activeOpacity:.8,testID:`${c}-filters-chip-${x(e)}`,accessibilityRole:"button",accessibilityLabel:`Remove filter ${e}`,children:[i?r(s,{style:[o.dot,{backgroundColor:i}]}):null,r(p,{style:[o.patternText,i?{color:i}:null],numberOfLines:1,children:e}),r(B,{size:12,color:t.color.accent+"80"})]},e)})})]}),l(s,{style:o.section,children:[l(n,{children:[r(n.Icon,{icon:I,color:t.color.textSecondary,size:12}),r(n.Title,{children:"HOW EVENT FILTERS WORK"})]}),r(p,{style:o.howItWorksText,children:H}),l(s,{style:o.examplesContainer,children:[r(p,{style:o.examplesTitle,children:"EXAMPLES:"}),R.map(e=>r(p,{style:o.exampleItem,children:e},e))]})]})]})}const o=W.create({container:{flex:1,backgroundColor:"transparent"},scrollContent:{paddingTop:16,paddingHorizontal:16,paddingBottom:24,gap:16},section:{backgroundColor:t.color.surface,borderRadius:16,borderWidth:1,borderColor:t.color.border,overflow:"hidden"},entityList:{maxHeight:180},entityListContent:{paddingHorizontal:16,paddingTop:8,paddingBottom:16,gap:10},entityRow:{flexDirection:"row",alignItems:"center",gap:10,paddingVertical:10,paddingHorizontal:12,backgroundColor:t.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:t.color.border},entityRowHidden:{opacity:.45},dot:{width:7,height:7,borderRadius:3.5},entityText:{flex:1,fontSize:12,fontWeight:"600",fontFamily:m},entityTextHidden:{color:t.color.textTertiary,textDecorationLine:"line-through"},hiddenLabel:{fontSize:10,fontWeight:"500",color:t.color.textTertiary,fontFamily:m},addLabel:{fontSize:10,fontWeight:"600",fontFamily:m},addInputWrapper:{paddingHorizontal:16,paddingTop:8,paddingBottom:8},patternList:{paddingHorizontal:16,paddingBottom:16,gap:8},patternRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:10,paddingHorizontal:12,backgroundColor:t.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:t.color.border,gap:8},patternText:{flex:1,fontSize:12,fontFamily:m,color:t.color.text},emptyText:{fontSize:11,color:t.color.textTertiary,paddingHorizontal:16,paddingTop:8,paddingBottom:16,fontFamily:m},howItWorksText:{fontSize:11,color:t.color.textSecondary,lineHeight:16,marginTop:8,paddingHorizontal:16,fontFamily:m},examplesContainer:{paddingTop:8,paddingHorizontal:16,paddingBottom:16,borderTopWidth:1,borderTopColor:t.color.border,marginTop:12},examplesTitle:{fontSize:10,fontWeight:"600",color:t.color.textTertiary,fontFamily:m,letterSpacing:.5,marginBottom:6},exampleItem:{fontSize:10,color:t.color.textTertiary,fontFamily:m,lineHeight:16}});
1
+ "use strict";import{useState as w}from"react";import{ScrollView as z,StyleSheet as W,Text as p,TouchableOpacity as L,View as s}from"react-native";import{Filter as I,X as k}from"../../icons/index.js";import{night as t}from"../night/nightTheme.js";import{SectionHeader as n}from"./SectionHeader.js";import{AddFilterButton as B,AddFilterInput as V}from"./FilterComponents.js";import{monoFont as h}from"../fonts.js";import{jsxs as l,jsx as r}from"react/jsx-runtime";function A(d,a){return Array.from(a).some(m=>d.name.toLowerCase().includes(m.toLowerCase()))}function v(d,a){const m=a.find(u=>u.name.toLowerCase()===d.toLowerCase());return m?m.color:null}export function EntityFilterView({entities:d,ignoredPatterns:a,onTogglePattern:m,onAddPattern:u,entityNoun:T,entitySingular:y,entityKey:f,testIDPrefix:c,slug:S,howItWorks:H,examples:R,addPlaceholder:E,emptyMessage:x}){const[$,b]=w(false);const[C,g]=w("");const F=()=>{const e=C.trim();if(e){u(e);g("");b(false)}};return l(z,{keyboardShouldPersistTaps:"handled",style:o.container,contentContainerStyle:o.scrollContent,showsVerticalScrollIndicator:false,nestedScrollEnabled:true,testID:`${c}-filters-scroll`,children:[d.length===0&&x?l(s,{style:o.section,children:[r(n,{children:l(n.Title,{children:["REGISTERED ",T]})}),r(p,{style:o.emptyText,testID:`${c}-filters-${f}s-empty`,children:x})]}):null,d.length>0&&l(s,{style:o.section,children:[l(n,{children:[l(n.Title,{children:["REGISTERED ",T]}),r(n.Badge,{count:d.length,color:t.color.accent,testID:`${c}-filters-${f}-count`})]}),r(z,{keyboardShouldPersistTaps:"handled",style:o.entityList,contentContainerStyle:o.entityListContent,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,testID:`${c}-filters-${f}-list`,children:d.map(e=>{const i=A(e,a);return l(L,{style:[o.entityRow,i&&o.entityRowHidden],onPress:()=>u(e.name),disabled:i,testID:`${c}-filters-${f}-${S(e.name)}`,accessibilityRole:"button",accessibilityLabel:`Hide ${e.name}`,accessibilityState:{disabled:i},children:[r(s,{style:[o.dot,{backgroundColor:i?t.color.textTertiary:e.color}]}),r(p,{style:[o.entityText,i?o.entityTextHidden:{color:e.color}],numberOfLines:1,children:e.name}),i?r(p,{style:o.hiddenLabel,children:"hidden"}):r(p,{style:[o.addLabel,{color:e.color+"99"}],children:"+ hide"})]},e.name)})})]}),l(s,{style:o.section,children:[l(n,{children:[r(n.Icon,{icon:I,color:t.color.accent,size:12}),l(n.Title,{children:[y.toUpperCase()," NAME FILTERS"]}),a.size>0&&r(n.Badge,{count:a.size,color:t.color.accent,testID:`${c}-filters-count`})]}),r(s,{style:o.addInputWrapper,children:!$?r(B,{onPress:()=>b(true),color:t.color.accent,label:`Add ${y} name pattern`,testID:`${c}-filters-add-open`}):r(V,{value:C,onChange:g,onSubmit:F,onCancel:()=>{b(false);g("")},placeholder:E??`Enter ${y} name pattern to hide...`,color:t.color.accent,testID:`${c}-filters-add-input`})}),a.size>0&&r(s,{style:o.patternList,children:Array.from(a).map(e=>{const i=v(e,d);return l(L,{style:o.patternRow,onPress:()=>m(e),activeOpacity:.8,testID:`${c}-filters-chip-${S(e)}`,accessibilityRole:"button",accessibilityLabel:`Remove filter ${e}`,children:[i?r(s,{style:[o.dot,{backgroundColor:i}]}):null,r(p,{style:[o.patternText,i?{color:i}:null],numberOfLines:1,children:e}),r(k,{size:12,color:t.color.accent+"80"})]},e)})})]}),l(s,{style:o.section,children:[l(n,{children:[r(n.Icon,{icon:I,color:t.color.textSecondary,size:12}),r(n.Title,{children:"HOW EVENT FILTERS WORK"})]}),r(p,{style:o.howItWorksText,children:H}),l(s,{style:o.examplesContainer,children:[r(p,{style:o.examplesTitle,children:"EXAMPLES:"}),R.map(e=>r(p,{style:o.exampleItem,children:e},e))]})]})]})}const o=W.create({container:{flex:1,backgroundColor:"transparent"},scrollContent:{paddingTop:16,paddingHorizontal:16,paddingBottom:24,gap:16},section:{backgroundColor:t.color.surface,borderRadius:16,borderWidth:1,borderColor:t.color.border,overflow:"hidden"},entityList:{maxHeight:180},entityListContent:{paddingHorizontal:16,paddingTop:8,paddingBottom:16,gap:10},entityRow:{flexDirection:"row",alignItems:"center",gap:10,paddingVertical:10,paddingHorizontal:12,backgroundColor:t.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:t.color.border},entityRowHidden:{opacity:.45},dot:{width:7,height:7,borderRadius:3.5},entityText:{flex:1,fontSize:12,fontWeight:"600",fontFamily:h},entityTextHidden:{color:t.color.textTertiary,textDecorationLine:"line-through"},hiddenLabel:{fontSize:10,fontWeight:"500",color:t.color.textTertiary,fontFamily:h},addLabel:{fontSize:10,fontWeight:"600",fontFamily:h},addInputWrapper:{paddingHorizontal:16,paddingTop:8,paddingBottom:8},patternList:{paddingHorizontal:16,paddingBottom:16,gap:8},patternRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:10,paddingHorizontal:12,backgroundColor:t.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:t.color.border,gap:8},patternText:{flex:1,fontSize:12,fontFamily:h,color:t.color.text},emptyText:{fontSize:11,color:t.color.textTertiary,paddingHorizontal:16,paddingTop:8,paddingBottom:16,fontFamily:h},howItWorksText:{fontSize:11,color:t.color.textSecondary,lineHeight:16,marginTop:8,paddingHorizontal:16,fontFamily:h},examplesContainer:{paddingTop:8,paddingHorizontal:16,paddingBottom:16,borderTopWidth:1,borderTopColor:t.color.border,marginTop:12},examplesTitle:{fontSize:10,fontWeight:"600",color:t.color.textTertiary,fontFamily:h,letterSpacing:.5,marginBottom:6},exampleItem:{fontSize:10,color:t.color.textTertiary,fontFamily:h,lineHeight:16}});
@@ -1 +1 @@
1
- "use strict";import T,{memo as A}from"react";import{View as l,ScrollView as h,StyleSheet as J}from"react-native";import{macOSColors as K}from"../../gameUI/constants/macOSDesignSystemColors.js";import{EventStepperFooter as Q}from"../EventStepperFooter.js";import{ViewToggleCards as U}from"./ViewToggleCards.js";import{DiffModeTabs as W}from"./DiffModeTabs.js";import{CompareBar as X}from"./CompareBar.js";import{jsx as t,jsxs as s,Fragment as Y}from"react/jsx-runtime";function Z({scrolls:a,style:n,children:r}){if(!a)return t(l,{style:n,children:r});return t(h,{style:e.contentScroll,contentContainerStyle:e.contentScrollInner,showsVerticalScrollIndicator:true,children:r})}export const EventHistoryViewer=A(function a({activeView:n,onViewChange:r,currentViewLabel:p,currentViewDescription:S,currentViewIcon:x,diffViewLabel:y,diffViewDescription:v,diffViewIcon:b,renderCurrentView:f,diffModeTabs:o,activeDiffMode:w,onDiffModeChange:m,renderDiffContent:u,leftEvent:C,rightEvent:V,showCompareNavigation:L,onLeftPrevious:P,onLeftNext:H,onRightPrevious:I,onRightNext:N,canLeftPrevious:R,canLeftNext:E,canRightPrevious:j,canRightNext:k,onLeftPickerOpen:D,onRightPickerOpen:_,scrollDiffSection:d,disableInternalFooter:g,footerCurrentIndex:z,footerTotalItems:i,footerItemLabel:B,footerSubtitle:F,onFooterPrevious:G,onFooterNext:O}){const c=f!=null;const q=i<=1;return s(Y,{children:[s(l,{style:[e.container,{paddingBottom:!g&&i>1?96:0}],children:[c&&t(U,{activeView:n,onViewChange:r??(()=>{}),currentLabel:p??"",currentDescription:S??"",currentIcon:x,diffLabel:y,diffDescription:v,diffIcon:b,diffDisabled:q}),c&&n==="current"&&t(h,{style:e.contentScroll,contentContainerStyle:e.contentScrollInner,showsVerticalScrollIndicator:true,children:f?.()}),(!c||n==="diff")&&s(Z,{scrolls:d,style:e.contentSection,children:[o&&o.length>0&&m&&t(W,{tabs:o,activeTab:w??o[0]?.key??"",onTabChange:m}),t(X,{leftEvent:C,rightEvent:V,showNavigation:L,onLeftPrevious:P,onLeftNext:H,onRightPrevious:I,onRightNext:N,canLeftPrevious:R,canLeftNext:E,canRightPrevious:j,canRightNext:k,onLeftPress:D,onRightPress:_}),d?u():t(l,{style:e.diffContent,children:u()})]})]}),!g&&t(Q,{currentIndex:z,totalItems:i,onPrevious:G,onNext:O,itemLabel:B,subtitle:F,absolute:true})]})});const e=J.create({container:{flex:1,backgroundColor:K.background.base},contentSection:{flex:1,minHeight:0,paddingHorizontal:14,paddingVertical:10},contentScroll:{flex:1},contentScrollInner:{flexGrow:1,paddingHorizontal:14,paddingVertical:10},diffContent:{flex:1,minHeight:0}});
1
+ "use strict";import $,{memo as q}from"react";import{View as l,ScrollView as g,StyleSheet as A}from"react-native";import{macOSColors as J}from"../../gameUI/constants/macOSDesignSystemColors.js";import{EventStepperFooter as K}from"../EventStepperFooter.js";import{ViewToggleCards as Q}from"./ViewToggleCards.js";import{DiffModeTabs as U}from"./DiffModeTabs.js";import{CompareBar as W}from"./CompareBar.js";import{jsx as t,jsxs as s,Fragment as X}from"react/jsx-runtime";function Y({scrolls:a,style:n,children:r}){if(!a)return t(l,{style:n,children:r});return t(g,{keyboardShouldPersistTaps:"handled",style:e.contentScroll,contentContainerStyle:e.contentScrollInner,showsVerticalScrollIndicator:true,children:r})}export const EventHistoryViewer=q(function a({activeView:n,onViewChange:r,currentViewLabel:p,currentViewDescription:S,currentViewIcon:x,diffViewLabel:y,diffViewDescription:b,diffViewIcon:v,renderCurrentView:d,diffModeTabs:o,activeDiffMode:w,onDiffModeChange:f,renderDiffContent:u,leftEvent:C,rightEvent:P,showCompareNavigation:V,onLeftPrevious:L,onLeftNext:H,onRightPrevious:I,onRightNext:N,canLeftPrevious:R,canLeftNext:k,canRightPrevious:E,canRightNext:j,onLeftPickerOpen:D,onRightPickerOpen:_,scrollDiffSection:h,disableInternalFooter:m,footerCurrentIndex:z,footerTotalItems:i,footerItemLabel:B,footerSubtitle:F,onFooterPrevious:G,onFooterNext:O}){const c=d!=null;const T=i<=1;return s(X,{children:[s(l,{style:[e.container,{paddingBottom:!m&&i>1?96:0}],children:[c&&t(Q,{activeView:n,onViewChange:r??(()=>{}),currentLabel:p??"",currentDescription:S??"",currentIcon:x,diffLabel:y,diffDescription:b,diffIcon:v,diffDisabled:T}),c&&n==="current"&&t(g,{keyboardShouldPersistTaps:"handled",style:e.contentScroll,contentContainerStyle:e.contentScrollInner,showsVerticalScrollIndicator:true,children:d?.()}),(!c||n==="diff")&&s(Y,{scrolls:h,style:e.contentSection,children:[o&&o.length>0&&f&&t(U,{tabs:o,activeTab:w??o[0]?.key??"",onTabChange:f}),t(W,{leftEvent:C,rightEvent:P,showNavigation:V,onLeftPrevious:L,onLeftNext:H,onRightPrevious:I,onRightNext:N,canLeftPrevious:R,canLeftNext:k,canRightPrevious:E,canRightNext:j,onLeftPress:D,onRightPress:_}),h?u():t(l,{style:e.diffContent,children:u()})]})]}),!m&&t(K,{currentIndex:z,totalItems:i,onPrevious:G,onNext:O,itemLabel:B,subtitle:F,absolute:true})]})});const e=A.create({container:{flex:1,backgroundColor:J.background.base},contentSection:{flex:1,minHeight:0,paddingHorizontal:14,paddingVertical:10},contentScroll:{flex:1},contentScrollInner:{flexGrow:1,paddingHorizontal:14,paddingVertical:10},diffContent:{flex:1,minHeight:0}});
@@ -1 +1 @@
1
- "use strict";import k,{memo as y}from"react";import{View as a,Text as l,TouchableOpacity as c,ScrollView as p,StyleSheet as w}from"react-native";import{absoluteFill as m}from"../../../utils/absoluteFill.js";import{macOSColors as e}from"../../gameUI/constants/macOSDesignSystemColors.js";import{X as x}from"../../../icons/lucide-icons.js";import{monoFont as s}from"../../fonts.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";export const EventPickerModal=y(function C({isOpen:b,onClose:n,title:h,position:g,items:u,onSelect:f}){if(!b)return null;const d=g==="left";return i(a,{style:t.overlay,children:[r(c,{style:t.backdrop,activeOpacity:1,onPress:n}),i(a,{style:[t.card,d?t.cardLeft:t.cardRight],children:[i(a,{style:t.header,children:[r(l,{style:[t.title,d?t.titleLeft:t.titleRight],children:h}),r(c,{onPress:n,style:t.closeBtn,accessibilityLabel:"Close event picker",children:r(x,{size:16,color:e.text.secondary})})]}),r(a,{style:t.divider}),r(p,{style:t.scroll,contentContainerStyle:t.list,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,children:u.map(o=>i(c,{disabled:o.disabled,onPress:()=>f(o.index),style:[t.item,o.selected&&t.itemSelected,o.selected&&d&&t.itemSelectedLeft,o.selected&&!d&&t.itemSelectedRight,o.disabled&&t.itemDisabled],children:[r(l,{style:t.itemIndex,children:o.label}),r(l,{style:t.itemTime,children:o.timestamp}),i(l,{style:t.itemRelative,children:["(",o.relativeTime,")"]}),o.badge,o.diffPreview]},o.index))})]})]})});const t=w.create({overlay:{...m,zIndex:20,justifyContent:"center",alignItems:"center"},backdrop:{...m,backgroundColor:"rgba(0,0,0,0.65)"},card:{width:"86%",maxHeight:320,backgroundColor:e.background.card,borderRadius:16,borderWidth:2,padding:16,shadowOffset:{width:0,height:0},shadowOpacity:.5,shadowRadius:40,elevation:15},cardLeft:{borderColor:e.semantic.debug,shadowColor:e.semantic.debug},cardRight:{borderColor:e.semantic.success,shadowColor:e.semantic.success},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},title:{fontSize:13,fontWeight:"700",fontFamily:s,textTransform:"uppercase",marginBottom:8,letterSpacing:.6},titleLeft:{color:e.semantic.debug},titleRight:{color:e.semantic.success},closeBtn:{padding:6,borderRadius:6,backgroundColor:e.background.card,borderWidth:1,borderColor:e.border.default},divider:{height:1,backgroundColor:e.background.input,marginVertical:8},scroll:{maxHeight:260},list:{gap:4},item:{paddingVertical:10,paddingHorizontal:12,borderRadius:10,backgroundColor:e.background.base,borderWidth:1,borderColor:e.border.default,flexDirection:"row",alignItems:"center",gap:8,marginBottom:6},itemSelected:{borderWidth:1.5,shadowOffset:{width:0,height:2},shadowOpacity:.25,shadowRadius:12,elevation:4},itemSelectedLeft:{backgroundColor:e.semantic.debug+"1A",borderColor:e.semantic.debug,shadowColor:e.semantic.debug},itemSelectedRight:{backgroundColor:e.semantic.successBackground+"30",borderColor:e.semantic.success,shadowColor:e.semantic.success},itemDisabled:{opacity:.4},itemIndex:{fontSize:10,color:e.text.secondary,fontFamily:s,width:40},itemTime:{fontSize:11,color:e.text.primary,fontFamily:s,flex:1},itemRelative:{fontSize:10,color:e.text.secondary,fontFamily:s}});
1
+ "use strict";import k,{memo as y}from"react";import{View as a,Text as l,TouchableOpacity as c,ScrollView as p,StyleSheet as w}from"react-native";import{absoluteFill as m}from"../../../utils/absoluteFill.js";import{macOSColors as e}from"../../gameUI/constants/macOSDesignSystemColors.js";import{X as x}from"../../../icons/lucide-icons.js";import{monoFont as s}from"../../fonts.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";export const EventPickerModal=y(function C({isOpen:b,onClose:n,title:h,position:g,items:u,onSelect:f}){if(!b)return null;const d=g==="left";return i(a,{style:t.overlay,children:[r(c,{style:t.backdrop,activeOpacity:1,onPress:n}),i(a,{style:[t.card,d?t.cardLeft:t.cardRight],children:[i(a,{style:t.header,children:[r(l,{style:[t.title,d?t.titleLeft:t.titleRight],children:h}),r(c,{onPress:n,style:t.closeBtn,accessibilityLabel:"Close event picker",children:r(x,{size:16,color:e.text.secondary})})]}),r(a,{style:t.divider}),r(p,{keyboardShouldPersistTaps:"handled",style:t.scroll,contentContainerStyle:t.list,showsVerticalScrollIndicator:true,nestedScrollEnabled:true,children:u.map(o=>i(c,{disabled:o.disabled,onPress:()=>f(o.index),style:[t.item,o.selected&&t.itemSelected,o.selected&&d&&t.itemSelectedLeft,o.selected&&!d&&t.itemSelectedRight,o.disabled&&t.itemDisabled],children:[r(l,{style:t.itemIndex,children:o.label}),r(l,{style:t.itemTime,children:o.timestamp}),i(l,{style:t.itemRelative,children:["(",o.relativeTime,")"]}),o.badge,o.diffPreview]},o.index))})]})]})});const t=w.create({overlay:{...m,zIndex:20,justifyContent:"center",alignItems:"center"},backdrop:{...m,backgroundColor:"rgba(0,0,0,0.65)"},card:{width:"86%",maxHeight:320,backgroundColor:e.background.card,borderRadius:16,borderWidth:2,padding:16,shadowOffset:{width:0,height:0},shadowOpacity:.5,shadowRadius:40,elevation:15},cardLeft:{borderColor:e.semantic.debug,shadowColor:e.semantic.debug},cardRight:{borderColor:e.semantic.success,shadowColor:e.semantic.success},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},title:{fontSize:13,fontWeight:"700",fontFamily:s,textTransform:"uppercase",marginBottom:8,letterSpacing:.6},titleLeft:{color:e.semantic.debug},titleRight:{color:e.semantic.success},closeBtn:{padding:6,borderRadius:6,backgroundColor:e.background.card,borderWidth:1,borderColor:e.border.default},divider:{height:1,backgroundColor:e.background.input,marginVertical:8},scroll:{maxHeight:260},list:{gap:4},item:{paddingVertical:10,paddingHorizontal:12,borderRadius:10,backgroundColor:e.background.base,borderWidth:1,borderColor:e.border.default,flexDirection:"row",alignItems:"center",gap:8,marginBottom:6},itemSelected:{borderWidth:1.5,shadowOffset:{width:0,height:2},shadowOpacity:.25,shadowRadius:12,elevation:4},itemSelectedLeft:{backgroundColor:e.semantic.debug+"1A",borderColor:e.semantic.debug,shadowColor:e.semantic.debug},itemSelectedRight:{backgroundColor:e.semantic.successBackground+"30",borderColor:e.semantic.success,shadowColor:e.semantic.success},itemDisabled:{opacity:.4},itemIndex:{fontSize:10,color:e.text.secondary,fontFamily:s,width:40},itemTime:{fontSize:11,color:e.text.primary,fontFamily:s,flex:1},itemRelative:{fontSize:10,color:e.text.secondary,fontFamily:s}});
@@ -99,6 +99,13 @@ interface JsModalProps {
99
99
  background?: boolean;
100
100
  /** Chrome variant — see {@link ModalVariant}. */
101
101
  variant?: ModalVariant;
102
+ /**
103
+ * iOS, bottom sheet only: move the sheet up while the keyboard is open, so
104
+ * a field in the sheet and the buttons under it stay in view. On by
105
+ * default. Pass false when the body handles the keyboard itself (Ask
106
+ * Buoy's composer pads for it), or the two would lift it twice.
107
+ */
108
+ avoidKeyboard?: boolean;
102
109
  }
103
110
  /**
104
111
  * JsModal - Ultra-optimized modal component for true 60FPS performance
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-10-23T02:40:12.661Z
4
+ * Generated at: 2026-10-23T07:23:13.273Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *
@@ -99,6 +99,13 @@ interface JsModalProps {
99
99
  background?: boolean;
100
100
  /** Chrome variant — see {@link ModalVariant}. */
101
101
  variant?: ModalVariant;
102
+ /**
103
+ * iOS, bottom sheet only: move the sheet up while the keyboard is open, so
104
+ * a field in the sheet and the buttons under it stay in view. On by
105
+ * default. Pass false when the body handles the keyboard itself (Ask
106
+ * Buoy's composer pads for it), or the two would lift it twice.
107
+ */
108
+ avoidKeyboard?: boolean;
102
109
  }
103
110
  /**
104
111
  * JsModal - Ultra-optimized modal component for true 60FPS performance
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-10-23T02:40:12.661Z
4
+ * Generated at: 2026-10-23T07:23:13.273Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *