@webority/mobile-ui 0.110.3 → 0.112.3
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.
- package/dist/canvas-kit/kit.js +8106 -7940
- package/dist/canvas-kit/manifest.json +25 -60
- package/dist/canvas-kit/release.json +6 -6
- package/lib/commonjs/components/Markdown/Markdown.js +1 -1
- package/lib/commonjs/components/MessageBubble/MessageBubble.js +1 -1
- package/lib/commonjs/components/NumberInput/NumberInput.js +1 -1
- package/lib/commonjs/components/Screen/Screen.js +1 -1
- package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/commonjs/components/Skeleton/Skeleton.js +1 -1
- package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -1
- package/lib/commonjs/components/Skeleton/SkeletonList.js +1 -1
- package/lib/commonjs/components/SortableList/SortableList.js +1 -1
- package/lib/module/components/Markdown/Markdown.js +1 -1
- package/lib/module/components/MessageBubble/MessageBubble.js +1 -1
- package/lib/module/components/NumberInput/NumberInput.js +1 -1
- package/lib/module/components/Screen/Screen.js +1 -1
- package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/module/components/Skeleton/Skeleton.js +1 -1
- package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
- package/lib/module/components/Skeleton/SkeletonList.js +1 -1
- package/lib/module/components/SortableList/SortableList.js +1 -1
- package/lib/typescript/commonjs/components/Markdown/Markdown.d.ts +17 -10
- package/lib/typescript/commonjs/components/MessageBubble/MessageBubble.d.ts +4 -1
- package/lib/typescript/commonjs/components/NumberInput/NumberInput.d.ts +1 -1
- package/lib/typescript/commonjs/components/RichTextEditor/markdownActions.d.ts +2 -2
- package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +0 -2
- package/lib/typescript/commonjs/components/Skeleton/SkeletonContent.d.ts +1 -3
- package/lib/typescript/commonjs/components/Skeleton/SkeletonList.d.ts +1 -3
- package/lib/typescript/module/components/Markdown/Markdown.d.ts +17 -10
- package/lib/typescript/module/components/MessageBubble/MessageBubble.d.ts +4 -1
- package/lib/typescript/module/components/NumberInput/NumberInput.d.ts +1 -1
- package/lib/typescript/module/components/RichTextEditor/markdownActions.d.ts +2 -2
- package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +0 -2
- package/lib/typescript/module/components/Skeleton/SkeletonContent.d.ts +1 -3
- package/lib/typescript/module/components/Skeleton/SkeletonList.d.ts +1 -3
- package/package.json +10 -7
- package/lib/commonjs/components/Markdown/parse.js +0 -1
- package/lib/module/components/Markdown/parse.js +0 -1
- package/lib/typescript/commonjs/components/Markdown/parse.d.ts +0 -58
- package/lib/typescript/module/components/Markdown/parse.d.ts +0 -58
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"kind": "WeborityPhone",
|
|
3
3
|
"library": {
|
|
4
4
|
"name": "@webority/mobile-ui",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.112.3"
|
|
6
6
|
},
|
|
7
7
|
"rendererProtocolVersion": 13,
|
|
8
8
|
"platform": "Phone",
|
|
@@ -9335,6 +9335,28 @@
|
|
|
9335
9335
|
"marker": null,
|
|
9336
9336
|
"acceptsChildren": true,
|
|
9337
9337
|
"props": [
|
|
9338
|
+
{
|
|
9339
|
+
"name": "headings",
|
|
9340
|
+
"type": "enum",
|
|
9341
|
+
"enum": [
|
|
9342
|
+
"outline",
|
|
9343
|
+
"text"
|
|
9344
|
+
],
|
|
9345
|
+
"required": false,
|
|
9346
|
+
"description": "outline sizes each heading by its level; text draws every heading as bold body text.",
|
|
9347
|
+
"default": "outline"
|
|
9348
|
+
},
|
|
9349
|
+
{
|
|
9350
|
+
"name": "links",
|
|
9351
|
+
"type": "enum",
|
|
9352
|
+
"enum": [
|
|
9353
|
+
"app",
|
|
9354
|
+
"web"
|
|
9355
|
+
],
|
|
9356
|
+
"required": false,
|
|
9357
|
+
"description": "web makes web and contact addresses pressable; app makes the links resolveLink maps pressable.",
|
|
9358
|
+
"default": "web"
|
|
9359
|
+
},
|
|
9338
9360
|
{
|
|
9339
9361
|
"name": "loading",
|
|
9340
9362
|
"type": "boolean",
|
|
@@ -9687,8 +9709,7 @@
|
|
|
9687
9709
|
"name": "markdown",
|
|
9688
9710
|
"type": "boolean",
|
|
9689
9711
|
"required": false,
|
|
9690
|
-
"description": "Draws the text as Markdown. Ignored when the bubble has children."
|
|
9691
|
-
"default": false
|
|
9712
|
+
"description": "Draws the text as Markdown. Defaults to on for theirs and off for mine; an error draws plain text. Ignored when the bubble has children."
|
|
9692
9713
|
},
|
|
9693
9714
|
{
|
|
9694
9715
|
"name": "replyTo",
|
|
@@ -10376,8 +10397,7 @@
|
|
|
10376
10397
|
"type": "enum",
|
|
10377
10398
|
"enum": [
|
|
10378
10399
|
"horizontal",
|
|
10379
|
-
"inline"
|
|
10380
|
-
"stacked"
|
|
10400
|
+
"inline"
|
|
10381
10401
|
],
|
|
10382
10402
|
"required": false,
|
|
10383
10403
|
"description": "How the label sits relative to the field.",
|
|
@@ -14792,17 +14812,6 @@
|
|
|
14792
14812
|
"description": "The shape of the placeholder: square corners, rounded corners, a circle or a line of text.",
|
|
14793
14813
|
"default": "rect"
|
|
14794
14814
|
},
|
|
14795
|
-
{
|
|
14796
|
-
"name": "speed",
|
|
14797
|
-
"type": "enum",
|
|
14798
|
-
"enum": [
|
|
14799
|
-
"fast",
|
|
14800
|
-
"normal",
|
|
14801
|
-
"slow"
|
|
14802
|
-
],
|
|
14803
|
-
"required": false,
|
|
14804
|
-
"description": "How fast the shimmer sweeps."
|
|
14805
|
-
},
|
|
14806
14815
|
{
|
|
14807
14816
|
"name": "variant",
|
|
14808
14817
|
"type": "enum",
|
|
@@ -14944,17 +14953,6 @@
|
|
|
14944
14953
|
"required": true,
|
|
14945
14954
|
"description": "The diameter in points."
|
|
14946
14955
|
},
|
|
14947
|
-
{
|
|
14948
|
-
"name": "speed",
|
|
14949
|
-
"type": "enum",
|
|
14950
|
-
"enum": [
|
|
14951
|
-
"fast",
|
|
14952
|
-
"normal",
|
|
14953
|
-
"slow"
|
|
14954
|
-
],
|
|
14955
|
-
"required": false,
|
|
14956
|
-
"description": "How fast the shimmer sweeps."
|
|
14957
|
-
},
|
|
14958
14956
|
{
|
|
14959
14957
|
"name": "variant",
|
|
14960
14958
|
"type": "enum",
|
|
@@ -15061,17 +15059,6 @@
|
|
|
15061
15059
|
"required": false,
|
|
15062
15060
|
"description": "A placeholder drawn as written while loading; left out, the content is turned into placeholder shapes."
|
|
15063
15061
|
},
|
|
15064
|
-
{
|
|
15065
|
-
"name": "speed",
|
|
15066
|
-
"type": "enum",
|
|
15067
|
-
"enum": [
|
|
15068
|
-
"fast",
|
|
15069
|
-
"normal",
|
|
15070
|
-
"slow"
|
|
15071
|
-
],
|
|
15072
|
-
"required": false,
|
|
15073
|
-
"description": "How fast the shimmer sweeps."
|
|
15074
|
-
},
|
|
15075
15062
|
{
|
|
15076
15063
|
"name": "variant",
|
|
15077
15064
|
"type": "enum",
|
|
@@ -15170,17 +15157,6 @@
|
|
|
15170
15157
|
"required": false,
|
|
15171
15158
|
"description": "How many placeholder rows to draw while loading; left out, the provider default or 3 is used."
|
|
15172
15159
|
},
|
|
15173
|
-
{
|
|
15174
|
-
"name": "speed",
|
|
15175
|
-
"type": "enum",
|
|
15176
|
-
"enum": [
|
|
15177
|
-
"fast",
|
|
15178
|
-
"normal",
|
|
15179
|
-
"slow"
|
|
15180
|
-
],
|
|
15181
|
-
"required": false,
|
|
15182
|
-
"description": "How fast the shimmer sweeps."
|
|
15183
|
-
},
|
|
15184
15160
|
{
|
|
15185
15161
|
"name": "variant",
|
|
15186
15162
|
"type": "enum",
|
|
@@ -15303,17 +15279,6 @@
|
|
|
15303
15279
|
"required": false,
|
|
15304
15280
|
"description": "The gap between lines in points."
|
|
15305
15281
|
},
|
|
15306
|
-
{
|
|
15307
|
-
"name": "speed",
|
|
15308
|
-
"type": "enum",
|
|
15309
|
-
"enum": [
|
|
15310
|
-
"fast",
|
|
15311
|
-
"normal",
|
|
15312
|
-
"slow"
|
|
15313
|
-
],
|
|
15314
|
-
"required": false,
|
|
15315
|
-
"description": "How fast the shimmer sweeps."
|
|
15316
|
-
},
|
|
15317
15282
|
{
|
|
15318
15283
|
"name": "variant",
|
|
15319
15284
|
"type": "enum",
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webority-phone",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.112.3",
|
|
4
4
|
"platform": "Phone",
|
|
5
5
|
"kitModuleVersion": 2,
|
|
6
6
|
"rendererProtocolVersion": 13,
|
|
7
7
|
"library": {
|
|
8
8
|
"name": "@webority/mobile-ui",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.112.3"
|
|
10
10
|
},
|
|
11
11
|
"files": {
|
|
12
12
|
"manifest.json": {
|
|
13
|
-
"sha256": "
|
|
14
|
-
"bytes":
|
|
13
|
+
"sha256": "fe4432fcd914dc8a71a527c09ef12d7651ed0ff1bddd7a33942a094b64eebf96",
|
|
14
|
+
"bytes": 636210
|
|
15
15
|
},
|
|
16
16
|
"kit.js": {
|
|
17
|
-
"sha256": "
|
|
18
|
-
"bytes":
|
|
17
|
+
"sha256": "7951b50758a28d49ec77a27e7f94d60e3501672e236b8e68e0ca84a0373243b2",
|
|
18
|
+
"bytes": 5956881
|
|
19
19
|
},
|
|
20
20
|
"kit.css": {
|
|
21
21
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Markdown=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Markdown=Markdown;var _markdownCore=require("@webority/markdown-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Skeleton/index.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const MONO=_reactNative.Platform.select({ios:"Menlo",android:"monospace",default:"monospace"}),HEADING_SCALE={1:"3xl",2:"2xl",3:"xl",4:"lg",5:"base",6:"sm"},createStyles=e=>_reactNative.StyleSheet.create({block:{marginBottom:e.space.sm},listRow:{flexDirection:"row",marginBottom:e.space.xs},marker:{width:e.space.lg},listText:{flex:1},quote:{borderLeftWidth:3,borderLeftColor:e.colors["border-subtle"],paddingLeft:e.space.sm,marginBottom:e.space.sm},quoteText:{color:e.colors["text-muted"],fontStyle:"italic"},code:{backgroundColor:e.colors["bg-subtle"],borderRadius:e.radius.sm,..._corners.smoothCorners,padding:e.space.sm,marginBottom:e.space.sm},codeText:{fontFamily:MONO},inlineCode:{fontFamily:MONO,backgroundColor:e.colors["bg-subtle"],color:e.colors["text-body"]},link:{color:e.colors.link,textDecorationLine:"underline"},strong:{fontWeight:e.weight.bold},em:{fontStyle:"italic"},strike:{textDecorationLine:"line-through"},table:{borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:e.colors.border},row:{flexDirection:"row"},headerRow:{backgroundColor:e.colors["bg-subtle"]},cell:{minWidth:96,maxWidth:220,padding:e.space.xs,borderRightWidth:_reactNative.StyleSheet.hairlineWidth,borderBottomWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:e.colors.border},rule:{height:_reactNative.StyleSheet.hairlineWidth,backgroundColor:e.colors.border,marginVertical:e.space.md}}),withPositionKeys=e=>e.map((e,t)=>({key:t,value:e})),openHref=(e,t)=>{t?t(e):_reactNative.Linking.openURL(e).catch(()=>{})};function Inline({tokens:e,ctx:t}){const{styles:i}=t;return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:e.map(e=>{switch(e.type){case"text":return(0,_jsxRuntime.jsx)(_reactNative.Text,{children:e.text},e.key);case"code":return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.inlineCode,children:e.text},e.key);case"strong":return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.strong,children:(0,_jsxRuntime.jsx)(Inline,{tokens:e.children,ctx:t})},e.key);case"em":return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.em,children:(0,_jsxRuntime.jsx)(Inline,{tokens:e.children,ctx:t})},e.key);case"strike":return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.strike,children:(0,_jsxRuntime.jsx)(Inline,{tokens:e.children,ctx:t})},e.key);case"image":return(0,_jsxRuntime.jsxs)(_reactNative.Text,{children:["[",(0,_jsxRuntime.jsx)(Inline,{tokens:e.children,ctx:t}),"]"]},e.key);case"link":return renderLink(e.key,e.href,e.children,t);default:return null}})})}function renderLink(e,t,i,n){const{styles:r,links:s,resolveLink:o,onAppLinkPress:l,onLinkPress:a}=n,c=(0,_jsxRuntime.jsx)(Inline,{tokens:i,ctx:n}),x=(0,_markdownCore.linkTarget)(t,s,o);return null===x?(0,_jsxRuntime.jsx)(_reactNative.Text,{children:c},e):"app"===x.kind?l?(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityRole:"link",style:r.link,onPress:()=>l(x.target),children:c},e):(0,_jsxRuntime.jsx)(_reactNative.Text,{children:c},e):(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityRole:"link",style:r.link,onPress:()=>openHref(x.href,a),children:c},e)}function RenderBlock({block:e,ctx:t}){const{theme:i,styles:n,textStyle:r,headings:s}=t;switch(e.type){case"heading":return(0,_jsxRuntime.jsx)(_index3.Text,{variant:"body",weight:"outline"===s?"semibold":"bold",size:"outline"===s?HEADING_SCALE[e.level]:void 0,accessibilityRole:"header",style:[n.block,r],children:(0,_jsxRuntime.jsx)(Inline,{tokens:(0,_markdownCore.parseInline)(e.text),ctx:t})});case"paragraph":return(0,_jsxRuntime.jsx)(_index3.Text,{variant:"body",style:[n.block,r],children:(0,_jsxRuntime.jsx)(Inline,{tokens:(0,_markdownCore.parseInline)(e.lines.join("\n")),ctx:t})});case"list":return(0,_jsxRuntime.jsx)(_reactNative.View,{children:withPositionKeys(e.items).map(({key:e,value:s})=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[n.listRow,{marginLeft:s.depth*i.space.md}],children:[(0,_jsxRuntime.jsx)(_index3.Text,{variant:"body",style:[n.marker,r],children:s.ordered?`${s.number}.`:"•"}),(0,_jsxRuntime.jsx)(_index3.Text,{variant:"body",style:[n.listText,r],children:(0,_jsxRuntime.jsx)(Inline,{tokens:(0,_markdownCore.parseInline)(s.text),ctx:t})})]},e))});case"table":return(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,style:n.block,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:n.table,children:withPositionKeys([e.header,...e.rows]).map(({key:i,value:s})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[n.row,0===i&&n.headerRow],children:withPositionKeys(e.header).map(({key:e})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:n.cell,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"bodySmall",weight:0===i?"semibold":void 0,style:r,children:(0,_jsxRuntime.jsx)(Inline,{tokens:(0,_markdownCore.parseInline)(s[e]??""),ctx:t})})},e))},i))})});case"code":return(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,style:n.code,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"body",size:"sm",selectable:!0,style:n.codeText,children:e.text})});case"quote":return(0,_jsxRuntime.jsx)(_reactNative.View,{style:n.quote,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"body",style:[n.quoteText,r],children:(0,_jsxRuntime.jsx)(Inline,{tokens:(0,_markdownCore.parseInline)(e.lines.join("\n")),ctx:t})})});case"rule":return(0,_jsxRuntime.jsx)(_reactNative.View,{style:n.rule});default:return null}}const MarkdownSkeleton=({style:e,testID:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:e,testID:t,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"70%",height:20,style:{marginBottom:i.space.sm}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"100%",height:14,style:{marginBottom:i.space.xs}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"92%",height:14,style:{marginBottom:i.space.xs}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:14})]})};function Markdown({children:e,links:t="web",headings:i="outline",resolveLink:n,onAppLinkPress:r,onLinkPress:s,loading:o=!1,style:l,textStyle:a,testID:c}){const x=(0,_index.useTheme)(),d=(0,_react.useMemo)(()=>createStyles(x),[x]),u=(0,_react.useMemo)(()=>(0,_markdownCore.parseMarkdown)(e??""),[e]);if(o)return(0,_jsxRuntime.jsx)(MarkdownSkeleton,{style:l,testID:c});if(0===u.length)return null;const m={theme:x,styles:d,links:t,headings:i,textStyle:a,resolveLink:n,onAppLinkPress:r,onLinkPress:s};return(0,_jsxRuntime.jsx)(_reactNative.View,{style:l,testID:c,children:u.map(e=>(0,_jsxRuntime.jsx)(RenderBlock,{block:e,ctx:m},e.key))})}Markdown.displayName="Markdown";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.MessageBubble=exports.DEFAULT_MESSAGE_BUBBLE_LABELS=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_index2=require("../AppIcon/index.js"),_index3=require("../Button/index.js"),_index4=require("../Markdown/index.js"),_useContextMenu=require("../Menu/useContextMenu.js"),_index5=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_MESSAGE_BUBBLE_LABELS=exports.DEFAULT_MESSAGE_BUBBLE_LABELS=Object.freeze({you:"You",sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",retry:"Try again",copy:"Copy",replyTo:e=>e?`Reply to ${e}`:"Reply"}),MAX_WIDTH="85%",STATUS_ICON=14,statusIcon=e=>{switch(e){case"sending":return"clock";case"sent":return"check";case"failed":return"alert-circle";default:return"check-check"}},statusColour=(e,t)=>{switch(t){case"read":return e.colors["info-text"];case"failed":return e.colors["danger-text"];default:return e.colors["text-subtle"]}},MessageBubble=({side:e,text:t,children:s,markdown:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.MessageBubble=exports.DEFAULT_MESSAGE_BUBBLE_LABELS=void 0;var _markdownCore=require("@webority/markdown-core"),_mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_index2=require("../AppIcon/index.js"),_index3=require("../Button/index.js"),_index4=require("../Markdown/index.js"),_useContextMenu=require("../Menu/useContextMenu.js"),_index5=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_MESSAGE_BUBBLE_LABELS=exports.DEFAULT_MESSAGE_BUBBLE_LABELS=Object.freeze({you:"You",sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",retry:"Try again",copy:"Copy",replyTo:e=>e?`Reply to ${e}`:"Reply"}),MAX_WIDTH="85%",STATUS_ICON=14,statusIcon=e=>{switch(e){case"sending":return"clock";case"sent":return"check";case"failed":return"alert-circle";default:return"check-check"}},statusColour=(e,t)=>{switch(t){case"read":return e.colors["info-text"];case"failed":return e.colors["danger-text"];default:return e.colors["text-subtle"]}},MessageBubble=({side:e,text:t,children:s,markdown:r,groupPosition:n="single",author:i,time:a,status:o,replyTo:l,streaming:u=!1,error:c,onRetry:d,actions:x,onCopy:b,onLongPress:m,footer:_,labels:p,haptic:y,style:h,testID:g})=>{(0,_warnInvalidValue.warnInvalidValue)("MessageBubble","side",e,["mine","theirs"]),(0,_warnInvalidValue.warnInvalidValue)("MessageBubble","groupPosition",n,["single","first","middle","last"]),(0,_warnInvalidValue.warnInvalidValue)("MessageBubble","status",o,["sending","sent","delivered","read","failed"]);const f=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(f),[f]),v=p?{...DEFAULT_MESSAGE_BUBBLE_LABELS,...p}:DEFAULT_MESSAGE_BUBBLE_LABELS,B="mine"===e,L=!c&&(r??"theirs"===e),T="single"===n||"first"===n,R="single"===n||"last"===n,E=null==a?"":(0,_mobileCore.formatTime)(a),M=("failed"===o||Boolean(c))&&Boolean(d),S=B?v.you:i??"",w=(0,_react.useMemo)(()=>{const e=[];return b&&!x?.some(e=>"copy"===e.name)&&e.push({name:"copy",label:v.copy,onPress:()=>b(t)}),x&&e.push(...x),l?.onPress&&e.push({name:"openReply",label:v.replyTo(l.author),onPress:l.onPress}),M&&d&&e.push({name:"retry",label:v.retry,onPress:d}),e},[x,b,t,l,M,d,v]),A=(x?.length??0)>0||Boolean(b),I=(0,_react.useMemo)(()=>A?{items:w.map(({name:e,label:t,onPress:s})=>({key:e,label:t,onPress:s}))}:void 0,[A,w]),P=(0,_useContextMenu.useContextMenu)(I,{haptic:y,testID:g}),C=P.hostProps.onLongPress,k=!s||(x?.length??0)>0,q=o&&B?v[o]:"",D=(0,_react.useMemo)(()=>L&&null==s?(0,_markdownCore.markdownToPlainText)(t):t,[L,s,t]),V=[S,E,D,l?`${v.replyTo(l.author)}: ${l.text}`:"",q].filter(Boolean).join(", "),$=(0,_react.useRef)(u);(0,_react.useEffect)(()=>{$.current&&!u&&!c&&t&&(0,_announce.announce)(S?`${S}, ${D}`:D),$.current=u},[u,c,t,D,S]);const U=(0,_react.useRef)(c);(0,_react.useEffect)(()=>{c&&c!==U.current&&(0,_announce.announce)(c,{polite:!1}),U.current=c},[c]);const N=(0,_react.useCallback)(e=>{C?.(e),m?.()},[C,m]),F=(0,_react.useCallback)(e=>{w.find(t=>t.name===e.nativeEvent.actionName)?.onPress()},[w]),z=f.radius.xl,H=f.radius.sm,O=B?{borderTopRightRadius:T?z:H,borderBottomRightRadius:R?z:H}:{borderTopLeftRadius:T?z:H,borderBottomLeftRadius:R?z:H},G=s??(L?(0,_jsxRuntime.jsx)(_index4.Markdown,{children:t}):(0,_jsxRuntime.jsx)(_index5.Text,{variant:"body",children:t})),W=l?(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:l.onPress,disabled:!l.onPress,accessibilityRole:l.onPress?"button":void 0,accessibilityLabel:`${v.replyTo(l.author)}: ${l.text}`,style:j.quote,children:[l.author?(0,_jsxRuntime.jsx)(_index5.Text,{variant:"caption",weight:"semibold",color:"link",numberOfLines:1,children:l.author}):null,(0,_jsxRuntime.jsx)(_index5.Text,{variant:"bodySmall",color:"secondary",numberOfLines:2,children:l.text})]}):null,X=[j.bubble,B?j.mine:j.theirs,O],Y=k?{accessible:!0,accessibilityLabel:V,accessibilityState:{busy:u},"aria-busy":u,accessibilityActions:w.map(({name:e,label:t})=>({name:e,label:t})),onAccessibilityAction:F}:{accessible:!1},J=A?(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:P.hostRef,...P.hostProps,onLongPress:N,delayLongPress:350,style:X,testID:g?`${g}-bubble`:void 0,...Y,children:[W,G]}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:X,testID:g?`${g}-bubble`:void 0,...Y,children:[W,G]}),K=R&&(""!==E||B&&o);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[j.root,B?j.rootMine:j.rootTheirs,{marginTop:T?f.space.sm:f.space.xxs},h],testID:g,children:[!B&&T&&i?(0,_jsxRuntime.jsx)(_index5.Text,{variant:"caption",color:"secondary",style:j.author,numberOfLines:1,importantForAccessibility:k?"no-hide-descendants":"auto",accessibilityElementsHidden:k,children:i}):null,J,P.renderSurface(),K?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[j.meta,B?j.metaMine:null],importantForAccessibility:k?"no-hide-descendants":"auto",accessibilityElementsHidden:k,children:[E?(0,_jsxRuntime.jsx)(_index5.Text,{variant:"caption",color:"tertiary",children:E}):null,B&&o?(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:statusIcon(o),size:14,color:statusColour(f,o),accessibilityLabel:v[o],testID:g?`${g}-status-${o}`:void 0}):null]}):null,c?(0,_jsxRuntime.jsx)(_index5.Text,{variant:"bodySmall",color:"danger",style:B?j.endText:null,children:c}):null,M?(0,_jsxRuntime.jsx)(_index3.Button,{label:v.retry,variant:"link",size:"sm",leftIcon:"refresh-cw",onPress:d,testID:g?`${g}-retry`:void 0}):null,_]})};exports.MessageBubble=MessageBubble;const buildStyles=e=>_reactNative.StyleSheet.create({root:{maxWidth:"85%",gap:e.space.xs},rootMine:{alignSelf:"flex-end",alignItems:"flex-end"},rootTheirs:{alignSelf:"flex-start",alignItems:"flex-start"},author:{paddingHorizontal:e.space.md},bubble:{borderRadius:e.radius.xl,..._corners.smoothCorners,paddingHorizontal:e.space.md,paddingVertical:e.space.sm,gap:e.space.xs},mine:{backgroundColor:e.colors["primary-soft"]},theirs:{backgroundColor:e.colors["bg-subtle"]},quote:{borderLeftWidth:3,borderLeftColor:e.colors.primary,paddingLeft:e.space.sm,paddingVertical:e.space.xs},meta:{flexDirection:"row",alignItems:"center",gap:e.space.xs,paddingHorizontal:e.space.xs},metaMine:{justifyContent:"flex-end"},endText:{textAlign:"right"}});var _default=exports.default=MessageBubble;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.NumberInput=exports.DEFAULT_NUMBER_INPUT_LABELS=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index4=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,r,a=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((i=a&&Object.getOwnPropertyDescriptor(e,r))&&(i.get||i.set)?a(n,r,i):n[r]=e[r]);return n}const NUMBER_INPUT_SIZES=["sm","md","lg"],NUMBER_INPUT_VARIANTS=["inline","horizontal"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.NumberInput=exports.DEFAULT_NUMBER_INPUT_LABELS=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index4=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,r,a=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((i=a&&Object.getOwnPropertyDescriptor(e,r))&&(i.get||i.set)?a(n,r,i):n[r]=e[r]);return n}const NUMBER_INPUT_SIZES=["sm","md","lg"],NUMBER_INPUT_VARIANTS=["inline","horizontal"],DEFAULT_NUMBER_INPUT_LABELS=exports.DEFAULT_NUMBER_INPUT_LABELS=Object.freeze({decrease:"Decrease",increase:"Increase",input:"Number input"}),DEFAULT_LONG_PRESS_DELAY=500,DEFAULT_LONG_PRESS_INTERVAL=80,roundToPrecision=(e,t)=>{if(!Number.isFinite(e))return 0;if(t<=0)return Math.round(e);const i=10**t;return Math.round(e*i)/i},clamp=(e,t,i)=>e<t?t:e>i?i:e,formatValue=(e,t,i)=>Number.isFinite(e)?t&&i>0?e.toFixed(i):String(Math.trunc(e)):"",sanitizeTyped=(e,t)=>{if(!e)return"";let i=e.replace(/[^0-9.-]/g,"");if(i=i.replace(/(?!^)-/g,""),t){const e=i.indexOf(".");-1!==e&&(i=i.slice(0,e+1)+i.slice(e+1).replace(/\./g,""))}else i=i.replace(/\./g,"");return i},NumberInput=exports.NumberInput=(0,_react.forwardRef)((e,t)=>{const{value:i,defaultValue:r,onChange:a,min:n=Number.NEGATIVE_INFINITY,max:s=Number.POSITIVE_INFINITY,step:l=1,allowDecimal:c=!1,precision:u=0,label:o,help:d,helperText:_,error:b,disabled:m=!1,size:p="md",variant:x="inline",unit:f,haptic:N,labels:h,accessibilityLabel:y,style:I,containerStyle:T,inputStyle:j,buttonStyle:S,unitStyle:g,labelStyle:v,textInputProps:R,testID:F}=e;(0,_warnInvalidValue.warnInvalidValue)("NumberInput","size",e.size,NUMBER_INPUT_SIZES),(0,_warnInvalidValue.warnInvalidValue)("NumberInput","variant",e.variant,NUMBER_INPUT_VARIANTS);const E=(0,_react.useMemo)(()=>({...DEFAULT_NUMBER_INPUT_LABELS,...h}),[h]),[L,P]=(0,_index.useControllableState)({value:i,defaultValue:r??e.min??0,onChange:a}),w=(0,_index2.useTheme)(),B=(0,_index2.resolveFieldSize)(w,p),V=(0,_FieldBase.resolveFieldTextStyle)(w,{disabled:m}),A=(0,_react.useMemo)(()=>buildStyles(w),[w]),U=(0,_react.useRef)(null),[C,z]=(0,_react.useState)(formatValue(L,c,u)),[M,k]=(0,_react.useState)(!1),[D,O]=(0,_react.useState)(!1),q=(0,_react.useCallback)(()=>{m||U.current?.focus()},[m]),W=(0,_react.useRef)(null),H=(0,_react.useRef)(null),G=(0,_react.useCallback)(()=>{null!==W.current&&(clearTimeout(W.current),W.current=null),null!==H.current&&(clearInterval(H.current),H.current=null)},[]);(0,_react.useEffect)(()=>G,[G]),(0,_react.useEffect)(()=>{M||z(formatValue(L,c,u))},[L,c,u,M]);const Y=L<=n,Z=L>=s,$=!m,J=(0,_react.useCallback)(e=>{const t=roundToPrecision(e,c?u:0),i=clamp(t,n,s);i!==L&&P(i)},[c,s,n,P,u,L]),K=(0,_react.useCallback)(()=>{if(!$||Y)return;const e=(0,_index3.resolveHaptic)(N,"selection");e&&(0,_index3.triggerHaptic)(e),J(L-l)},[Y,$,N,J,l,L]),Q=(0,_react.useCallback)(()=>{if(!$||Z)return;const e=(0,_index3.resolveHaptic)(N,"selection");e&&(0,_index3.triggerHaptic)(e),J(L+l)},[Z,$,N,J,l,L]);_react.default.useImperativeHandle(t,()=>({focus:()=>U.current?.focus(),blur:()=>U.current?.blur(),clear:()=>{z(""),Number.isFinite(n)&&n>0?P(n):P(0<n?n:0>s?s:0)}}),[s,n,P]);const X=(0,_react.useCallback)(e=>{$&&(G(),W.current=setTimeout(()=>{H.current=setInterval(()=>{"inc"===e?Q():K()},80)},500))},[G,K,Q,$]),ee=(0,_react.useCallback)(e=>{const t=sanitizeTyped(e,c);z(t);const i=Number(t);""!==t&&"-"!==t&&"."!==t&&Number.isFinite(i)&&i>=n&&i<=s&&i!==L&&P(roundToPrecision(i,c?u:0))},[c,s,n,P,u,L]),te=(0,_react.useCallback)(()=>{k(!1),O(!1);const e=Number(C);if(""===C||!Number.isFinite(e))return void z(formatValue(L,c,u));const t=roundToPrecision(e,c?u:0),i=clamp(t,n,s);i!==L&&P(i),z(formatValue(i,c,u))},[c,C,s,n,P,u,L]),ie=(0,_react.useCallback)(()=>{k(!0),O(!0)},[]),re=Y||m?w.colors["text-disabled"]:w.colors["text-body"],ae=Z||m?w.colors["text-disabled"]:w.colors["text-body"],ne=B.icon+8,renderStepper=(e,t,i,r,a,n)=>(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:t,onLongPress:()=>X(e),onPressOut:G,delayLongPress:500,disabled:i,accessibilityRole:"button",accessibilityLabel:r,accessibilityState:{disabled:i},"aria-disabled":i,style:({pressed:e})=>[{width:ne,height:ne,alignItems:"center",justifyContent:"center",borderRadius:w.radius.pill,..._corners.smoothCorners},e&&!i?{backgroundColor:w.colors["surface-pressed"]}:null,S],testID:`${F??"numberinput"}-${"inc"===e?"plus":"minus"}`,children:(0,_jsxRuntime.jsx)(_index4.Text,{variant:"body",weight:"semibold",style:{fontSize:B.icon,color:a,fontWeight:w.weight.semibold,lineHeight:B.icon+2},children:n})}),se=y??(0,_FieldBase.fieldTextAsString)(o)??E.input,le=!0===b||(0,_FieldBase.hasFieldText)(b),ce=(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:p,disabled:m,error:le,filled:!0,focused:D,onPress:q,pressFeedback:!1,leading:renderStepper("dec",K,Y||m,E.decrease,re,"−"),trailing:renderStepper("inc",Q,Z||m,E.increase,ae,"+"),children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:A.inputRow,children:[(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:U,value:C,onChangeText:ee,onFocus:ie,onBlur:te,editable:!m,keyboardType:c?"decimal-pad":"number-pad",selectTextOnFocus:!0,accessibilityRole:"adjustable",accessibilityLabel:se,accessibilityValue:{now:Number.isFinite(L)?L:0},accessibilityState:{disabled:m},"aria-disabled":m,accessibilityActions:[{name:"increment",label:E.increase},{name:"decrement",label:E.decrease}],onAccessibilityAction:e=>{"increment"===e.nativeEvent.actionName&&Q(),"decrement"===e.nativeEvent.actionName&&K()},style:[A.input,{fontSize:B.text,color:V.color,...V.weightStyle},j],...R}),f?(0,_jsxRuntime.jsx)(_index4.Text,{variant:"bodySmall",style:[A.unit,{fontSize:B.text,color:V.placeholderColor},g],children:f}):null]})}),ue=(0,_FieldBase.hasFieldText)(o)?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:p,help:d,style:v,children:o}):null,oe=(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{size:p,error:le,text:le?b:_});return"horizontal"===x?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[A.horizontalContainer,I,T],testID:F,accessibilityState:{disabled:m},"aria-disabled":m,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:A.horizontalLabelWrap,children:ue}),(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[ce,oe]})]}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[I,T],testID:F,accessibilityState:{disabled:m},"aria-disabled":m,children:[ue,ce,oe]})});NumberInput.displayName="NumberInput";const buildStyles=e=>_reactNative.StyleSheet.create({inputRow:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center"},input:{flex:1,textAlign:"center",padding:e.space.none,margin:e.space.none,includeFontPadding:!1},unit:{marginLeft:e.space.xs},label:{marginBottom:e.space.xs},helper:{marginTop:e.space.xs},horizontalContainer:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},horizontalLabelWrap:{flexShrink:1,paddingRight:e.space.md}});var _default=exports.default=NumberInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Screen=Screen;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeReanimated=require("react-native-reanimated"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useRefreshControl=require("../../hooks/useRefreshControl.js"),_index=require("../../theme/index.js"),_index2=require("../AppBar/index.js"),_index3=require("../AsyncBlock/index.js"),_index4=require("../EmptyState/index.js"),_index5=require("../KeyboardAwareScrollView/index.js"),_index6=require("../KeyboardToolbar/index.js"),_index7=require("../PagedListFooter/index.js"),_ScrollHost=require("./ScrollHost.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_EDGES=["top","bottom"],SCROLL_EVENT_THROTTLE=16,noop=()=>{};function renderFooter(e){return(0,_react.isValidElement)(e)?e:e?(0,_react.createElement)(e):null}const buildStyles=e=>_reactNative.StyleSheet.create({flex:{flex:1},root:{flex:1,backgroundColor:e.colors.bg},overlay:{position:"absolute",top:0,left:0,right:0},footer:{backgroundColor:e.colors.bg,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:e.colors.border}});function Screen(e){const{title:t,subtitle:r,largeTitle:o=!0,onBack:n,rightActions:a,leading:i,children:l,onRefresh:s,refreshing:c=!1,footer:d,scroll:u=!0,list:_,edges:x=DEFAULT_EDGES,keyboardToolbar:f=!0,bottomInset:v=0,scrollRef:h,onScroll:m,contentContainerStyle:g,testID:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Screen=Screen;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeReanimated=require("react-native-reanimated"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useRefreshControl=require("../../hooks/useRefreshControl.js"),_index=require("../../theme/index.js"),_index2=require("../AppBar/index.js"),_index3=require("../AsyncBlock/index.js"),_index4=require("../EmptyState/index.js"),_index5=require("../KeyboardAwareScrollView/index.js"),_index6=require("../KeyboardToolbar/index.js"),_index7=require("../PagedListFooter/index.js"),_ScrollHost=require("./ScrollHost.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_EDGES=["top","bottom"],SCROLL_EVENT_THROTTLE=16,noop=()=>{};function renderFooter(e){return(0,_react.isValidElement)(e)?e:e?(0,_react.createElement)(e):null}const buildStyles=e=>_reactNative.StyleSheet.create({flex:{flex:1},root:{flex:1,backgroundColor:e.colors.bg},overlay:{position:"absolute",top:0,left:0,right:0},footer:{backgroundColor:e.colors.bg,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:e.colors.border}});function Screen(e){const{title:t,subtitle:r,largeTitle:o=!0,onBack:n,rightActions:a,leading:i,children:l,onRefresh:s,refreshing:c=!1,footer:d,scroll:u=!0,list:_,edges:x=DEFAULT_EDGES,keyboardToolbar:f=!0,bottomInset:v=0,scrollRef:h,onScroll:m,contentContainerStyle:g,testID:R}=e,p=(0,_index.useTheme)(),y=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),S=(0,_react.useMemo)(()=>buildStyles(p),[p]),[j]=(0,_react.useState)(()=>new _reactNative.Animated.Value(0)),[C,b]=(0,_react.useState)(0),E=void 0!==n,T=(0,_react.useRef)(n);T.current=n;const L=Boolean(t||r||n||i||a?.length),N=o&&void 0!==t,k=N&&(void 0!==_||u),V=k?C:0,A=void 0!==d,{refreshControl:q}=(0,_useRefreshControl.useRefreshControl)({onRefresh:s??noop,refreshing:c}),w=s?(0,_react.cloneElement)(q,{progressViewOffset:V}):void 0,B=(0,_reactNativeReanimated.useSharedValue)(0),F=(0,_reactNativeReanimated.useSharedValue)(0),O=(0,_reactNativeReanimated.useSharedValue)(0),H=(0,_reactNativeReanimated.useSharedValue)(0),M=(0,_react.useRef)(null),D=(0,_react.useRef)(0),K=(0,_react.useRef)(0),P=(0,_react.useMemo)(()=>({top:B,bottom:F,offset:O,maxOffset:H,scrollTo:e=>{const t=M.current;t instanceof _reactNative.FlatList?t.scrollToOffset({offset:e,animated:!1}):t?.scrollTo({y:e,animated:!1})}}),[B,F,O,H]),I=(0,_react.useCallback)(e=>{M.current=e,"function"==typeof h?h(e):h&&(h.current=e)},[h]),z=(0,_react.useCallback)(()=>{H.value=Math.max(0,D.current-K.current)},[H]),W=(0,_react.useRef)(m);W.current=m;const G=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:j}}}],{useNativeDriver:!1,listener:e=>{O.value=e.nativeEvent.contentOffset.y,W.current?.(e)}}),[j,O]),U=(0,_react.useCallback)(e=>{const{height:t}=e.nativeEvent.layout;b(e=>Math.max(e,t))},[]);(0,_react.useEffect)(()=>{if(!E)return;const e=_reactNative.BackHandler.addEventListener("hardwareBackPress",()=>(T.current?.(),!0));return()=>e.remove()},[E]);const Y=x.includes("left")?y.left:0,J=x.includes("right")?y.right:0,Q=x.includes("bottom")?y.bottom:0,X=x.includes("top")&&!L?y.top:0,Z=x.filter(e=>"top"!==e&&!("bottom"===e&&A)),$=L?(0,_jsxRuntime.jsx)(_reactNative.View,{style:k?S.overlay:void 0,onLayout:k?U:void 0,children:(0,_jsxRuntime.jsx)(_index2.AppBar,{title:t,subtitle:r,variant:N?"large":"default",scrollY:k?j:void 0,onBack:n,rightActions:a,leading:i})}):null,ee=(0,_react.useCallback)(()=>{const e=M.current?.getNativeScrollRef();e&&e.measureInWindow((e,t,r,o)=>{K.current=o,B.value=t+V,F.value=t+o,z()})},[V,B,F,z]);(0,_react.useEffect)(()=>{ee()},[ee]);const te=(0,_react.useCallback)((e,t)=>{D.current=t,z()},[z]);let re;if(void 0!==_){const{state:e,paging:t,...r}=_,handleEndReached=e=>{t?.hasMore&&!t.loadingMore&&null==t.errorMore&&t.loadMore(),r.onEndReached?.(e)},o=(0,_jsxRuntime.jsx)(_reactNative.FlatList,{keyboardShouldPersistTaps:"handled",onEndReachedThreshold:t?.5:void 0,...r,ref:I,refreshControl:w,onScroll:G,onLayout:e=>{ee(),r.onLayout?.(e)},onContentSizeChange:(e,t)=>{te(e,t),r.onContentSizeChange?.(e,t)},onEndReached:t?handleEndReached:r.onEndReached,ListEmptyComponent:e?.empty?(0,_jsxRuntime.jsx)(_index4.EmptyState,{...e.empty}):void 0,ListFooterComponent:t||r.ListFooterComponent?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[renderFooter(r.ListFooterComponent),t?(0,_jsxRuntime.jsx)(_index7.PagedListFooter,{paging:t}):null]}):void 0,scrollEventThrottle:SCROLL_EVENT_THROTTLE,style:S.flex,contentContainerStyle:[{paddingTop:V,paddingLeft:Y,paddingRight:J},{paddingBottom:(A?0:Q)+v},r.contentContainerStyle,g]});re=(0,_jsxRuntime.jsx)(_ScrollHost.ScrollHostContext.Provider,{value:P,children:e?(0,_jsxRuntime.jsx)(_index3.AsyncBlock,{loading:e.loading,error:e.error,errorTitle:e.errorTitle,onRetry:e.onRetry,skeleton:e.skeleton,style:[S.flex,{paddingTop:V}],children:o}):o})}else re=u?(0,_jsxRuntime.jsx)(_ScrollHost.ScrollHostContext.Provider,{value:P,children:(0,_jsxRuntime.jsxs)(_index5.KeyboardAwareScrollView,{ref:I,refreshControl:w,onScroll:G,scrollEventThrottle:SCROLL_EVENT_THROTTLE,onLayout:ee,onContentSizeChange:te,safeAreaEdges:Z,style:S.flex,contentContainerStyle:[{paddingTop:V},g],children:[l,v>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{height:v}}):null]})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.flex,{paddingLeft:Y,paddingRight:J,paddingBottom:(A?0:Q)+v},g],children:l});const oe=A?(0,_jsxRuntime.jsx)(_reactNativeKeyboardController.KeyboardStickyView,{style:[S.footer,{paddingLeft:Y,paddingRight:J,paddingBottom:Q+v}],children:d}):null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{testID:R,style:[S.root,{paddingTop:X}],children:[k?null:$,re,oe,void 0!==_?l:null,k?$:null,f?(0,_jsxRuntime.jsx)(_index6.KeyboardToolbar,{}):null]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SegmentedControl=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index4=require("../FieldBase/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index5=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const LABEL_LINE_HEIGHT_RATIO=1.25,activeInkFor=(e,t)=>{switch(t){case"primary":return e.colors.primary;case"neutral":return e.colors["text-body"];case"success":return e.colors["success-text"];case"warning":return e.colors["warning-text"];case"danger":return e.colors["danger-text"];default:return e.colors["info-text"]}},SegmentedControl=exports.SegmentedControl=(0,_react.forwardRef)((e,t)=>{const{segments:r,label:i,helperText:n,error:l,value:s,defaultValue:a,onChange:o,size:d="md",fullWidth:c=!0,disabled:u=!1,tone:m="primary",variant:x="segmented",radius:g,labelLines:h=1,haptic:_,accessibilityLabel:p,style:b,containerStyle:v,segmentStyle:f,selectedIndicatorStyle:y,textStyle:S,labelStyle:j,testID:w}=e;(0,_warnInvalidValue.warnInvalidValue)("SegmentedControl","size",e.size,["sm","md","lg"]),(0,_warnInvalidValue.warnInvalidValue)("SegmentedControl","tone",e.tone,["primary","success","warning","danger","info","neutral"]),(0,_warnInvalidValue.warnInvalidValue)("SegmentedControl","variant",e.variant,["underline","pills","segmented"]);const[I,C]=(0,_index.useControllableState)({value:s,defaultValue:a??r[0]?.value,onChange:o}),R=(0,_index2.useTheme)(),V=R.components["segmented-control"],q=(0,_react.useMemo)(()=>buildStyles(R),[R]),k=(0,_react.useMemo)(()=>(0,_index2.resolveSegmentedControlSize)(R,d),[R,d]),F=h>=2?2:1,L=F>1,N="segmented"===x,z="underline"===x,M="pills"===x,T=N?R.space[V["track-padding"]]:0,A=Math.ceil(1.25*k.text)*(F-1),E=V["underline-height"],D=R.space[V["pill-inset"]],H="number"==typeof g?g:g?R.radius[g]:void 0,W=H??R.radius.md,B=void 0===H?R.radius.sm:Math.max(H-T,0),P=H??R.radius.pill,O=H??R.radius.none,[G,X]=(0,_react.useState)(0),J=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,K=Math.max(0,r.findIndex(e=>e.value===I)),Q=G>0?(G-2*T)/Math.max(r.length,1):0,U=(0,_react.useCallback)((e,t)=>{if(t<=0)return;const r=t*e,i=R.motion.spring.snappy,n=_reactNative.Animated.spring(J,{toValue:r,damping:i.damping,stiffness:i.stiffness,mass:i.mass,overshootClamping:!0,useNativeDriver:!0});return n.start(),n},[R.motion.spring.snappy,J]),Y=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{if(Q<=0)return;const e=null!==Y.current&&Y.current!==K;if(Y.current=K,!e)return void J.setValue(Q*K);const t=U(K,Q);return()=>t?.stop()},[K,Q,U,J]);const Z=(0,_react.useCallback)(e=>{const t=e.nativeEvent.layout.width;t!==G&&X(t)},[G]),$=(0,_react.useCallback)(e=>{if(u)return;if(e.value===I)return;const t=(0,_index3.resolveHaptic)(_,"selection");t&&(0,_index3.triggerHaptic)(t),C(e.value)},[u,C,I,_]),ee=N?R.colors.surface:M?R.colors["primary-soft"]:R.colors.primary,te=N?B:M?P:O,re=activeInkFor(R,m),ie=R.colors["bg-muted"],ne=(0,_SquircleFill.useSquircle)(N,W,Z),le=!0===l||(0,_index4.hasFieldText)(l),se=le&&!u,ae=R.colors["field-border-error"],oe=R.size.border,de=(0,_index4.hasFieldText)(i),ce=le?l:n,ue=(0,_index4.hasFieldText)(ce),me=p??("string"==typeof i?i:void 0),xe=(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"radiogroup",accessibilityLabel:me,testID:w,style:[q.track,{...L?{minHeight:k.height+A}:{height:k.height},opacity:u?.55:1,alignSelf:c?"stretch":"flex-start"},N?{borderRadius:W,..._corners.smoothCorners,backgroundColor:ne.active?"transparent":ie,padding:T}:z?{borderBottomColor:se?ae:R.colors["border-subtle"],borderBottomWidth:_reactNative.StyleSheet.hairlineWidth}:null,v,b],onLayout:ne.onLayout,children:[ne.active&&ne.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:ne.size.width,height:ne.size.height,radius:W,fill:ie,stroke:se?ae:void 0,strokeWidth:oe}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:q.row,children:[Q>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[q.thumb,N?L?{top:0,bottom:0}:{top:0,height:k.height-2*T}:M?{top:D,bottom:D}:{bottom:0,height:E},{width:Q,borderRadius:te,..._corners.smoothCorners,backgroundColor:ee,transform:[{translateX:J}]},y]}):null,r.map(e=>{const t=e.value===I,r=t?re:R.colors["text-subtle"],i=(0,_slotIcon.renderSlotIcon)(e.icon,{color:r,size:k.icon,selected:t,disabled:u});return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>$(e),disabled:u,accessibilityRole:"radio",accessibilityLabel:e.label,accessibilityState:{checked:t,selected:t,disabled:u},"aria-checked":t,"aria-disabled":u,style:({pressed:e})=>[q.segment,L?q.segmentMultiline:null,{paddingHorizontal:k["padding-x"],opacity:e&&!t?.7:1},f],children:[i?(0,_jsxRuntime.jsx)(_reactNative.View,{style:q.segmentIcon,children:i}):null,(0,_jsxRuntime.jsx)(_index5.Text,{variant:"label",weight:t?"semibold":"medium",style:[q.segmentLabel,L?q.segmentLabelMultiline:null,{color:r,fontSize:k.text},S,j],numberOfLines:F,children:e.label})]},String(e.value))})]}),!se||z||ne.active?null:(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{borderWidth:oe,borderColor:ae,borderRadius:N?W:P,..._corners.smoothCorners}]})]});return de||ue?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{alignSelf:c?"stretch":"flex-start"},children:[de?(0,_jsxRuntime.jsx)(_index4.FieldLabel,{size:d,children:i}):null,xe,ue?(0,_jsxRuntime.jsx)(_index4.FieldMessage,{size:d,text:ce,error:le}):null]}):xe});SegmentedControl.displayName="SegmentedControl";const buildStyles=e=>_reactNative.StyleSheet.create({track:{flexDirection:"row",alignItems:"stretch",position:"relative"},row:{flex:1,flexDirection:"row",alignItems:"stretch",position:"relative",overflow:"hidden"},thumb:{position:"absolute",left:0},segment:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center"},segmentIcon:{marginRight:e.space.xs},segmentMultiline:{paddingVertical:e.space.xs},segmentLabel:{includeFontPadding:!1},segmentLabelMultiline:{flexShrink:1,textAlign:"center"}});var _default=exports.default=SegmentedControl;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SegmentedControl=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index4=require("../FieldBase/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index5=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const LABEL_LINE_HEIGHT_RATIO=1.25,activeInkFor=(e,t)=>{switch(t){case"primary":return e.colors.primary;case"neutral":return e.colors["text-body"];case"success":return e.colors["success-text"];case"warning":return e.colors["warning-text"];case"danger":return e.colors["danger-text"];default:return e.colors["info-text"]}},SegmentedControl=exports.SegmentedControl=(0,_react.forwardRef)((e,t)=>{const{segments:r,label:i,helperText:n,error:l,value:s,defaultValue:a,onChange:o,size:d="md",fullWidth:c=!0,disabled:u=!1,tone:m="primary",variant:x="segmented",radius:g,labelLines:h=1,haptic:_,accessibilityLabel:p,style:b,containerStyle:v,segmentStyle:f,selectedIndicatorStyle:y,textStyle:S,labelStyle:j,testID:w}=e;(0,_warnInvalidValue.warnInvalidValue)("SegmentedControl","size",e.size,["sm","md","lg"]),(0,_warnInvalidValue.warnInvalidValue)("SegmentedControl","tone",e.tone,["primary","success","warning","danger","info","neutral"]),(0,_warnInvalidValue.warnInvalidValue)("SegmentedControl","variant",e.variant,["underline","pills","segmented"]);const[I,C]=(0,_index.useControllableState)({value:s,defaultValue:a??r[0]?.value,onChange:o}),R=(0,_index2.useTheme)(),V=R.components["segmented-control"],q=(0,_react.useMemo)(()=>buildStyles(R),[R]),k=(0,_react.useMemo)(()=>(0,_index2.resolveSegmentedControlSize)(R,d),[R,d]),F=h>=2?2:1,L=F>1,N="segmented"===x,z="underline"===x,M="pills"===x,T=N?R.space[V["track-padding"]]:0,A=Math.ceil(1.25*k.text)*(F-1),E=V["underline-height"],D=R.space[V["pill-inset"]],H="number"==typeof g?g:g?R.radius[g]:void 0,W=H??R.radius.md,B=void 0===H?R.radius.sm:Math.max(H-T,0),P=H??R.radius.pill,O=H??R.radius.none,[G,X]=(0,_react.useState)(0),J=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,K=Math.max(0,r.findIndex(e=>e.value===I)),Q=G>0?(G-2*T)/Math.max(r.length,1):0,U=(0,_react.useCallback)((e,t)=>{if(t<=0)return;const r=t*e,i=R.motion.spring.snappy,n=_reactNative.Animated.spring(J,{toValue:r,damping:i.damping,stiffness:i.stiffness,mass:i.mass,overshootClamping:!0,useNativeDriver:!0});return n.start(),n},[R.motion.spring.snappy,J]),Y=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{if(Q<=0)return;const e=null!==Y.current&&Y.current!==K;if(Y.current=K,!e)return void J.setValue(Q*K);const t=U(K,Q);return()=>t?.stop()},[K,Q,U,J]);const Z=(0,_react.useCallback)(e=>{const t=e.nativeEvent.layout.width;t!==G&&X(t)},[G]),$=(0,_react.useCallback)(e=>{if(u)return;if(e.value===I)return;const t=(0,_index3.resolveHaptic)(_,"selection");t&&(0,_index3.triggerHaptic)(t),C(e.value)},[u,C,I,_]),ee=N?R.colors.surface:M?R.colors["primary-soft"]:R.colors.primary,te=N?B:M?P:O,re=activeInkFor(R,m),ie=R.colors["bg-muted"],ne=(0,_SquircleFill.useSquircle)(N,W,Z),le=!0===l||(0,_index4.hasFieldText)(l),se=le&&!u,ae=R.colors["field-border-error"],oe=R.size.border,de=(0,_index4.hasFieldText)(i),ce=le?l:n,ue=(0,_index4.hasFieldText)(ce),me=p??("string"==typeof i?i:void 0),xe=(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"radiogroup",accessibilityLabel:me,testID:w,style:[q.track,{...L?{minHeight:k.height+A}:{height:k.height},opacity:u?.55:1,alignSelf:c?"stretch":"flex-start"},N?{borderRadius:W,..._corners.smoothCorners,backgroundColor:ne.active?"transparent":ie,padding:T}:z?{borderBottomColor:se?ae:R.colors["border-subtle"],borderBottomWidth:_reactNative.StyleSheet.hairlineWidth}:null,v,b],onLayout:ne.onLayout,children:[ne.active&&ne.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:ne.size.width,height:ne.size.height,radius:W,fill:ie,stroke:se?ae:void 0,strokeWidth:oe}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:q.row,children:[Q>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[q.thumb,N?L?{top:0,bottom:0}:{top:0,height:k.height-2*T}:M?{top:D,bottom:D,left:D}:{bottom:0,height:E},{width:M?Math.max(Q-2*D,0):Q,borderRadius:te,..._corners.smoothCorners,backgroundColor:ee,transform:[{translateX:J}]},y]}):null,r.map(e=>{const t=e.value===I,r=t?re:R.colors["text-subtle"],i=(0,_slotIcon.renderSlotIcon)(e.icon,{color:r,size:k.icon,selected:t,disabled:u});return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>$(e),disabled:u,accessibilityRole:"radio",accessibilityLabel:e.label,accessibilityState:{checked:t,selected:t,disabled:u},"aria-checked":t,"aria-disabled":u,style:({pressed:e})=>[q.segment,L?q.segmentMultiline:null,{paddingHorizontal:k["padding-x"],opacity:e&&!t?.7:1},f],children:[i?(0,_jsxRuntime.jsx)(_reactNative.View,{style:q.segmentIcon,children:i}):null,(0,_jsxRuntime.jsx)(_index5.Text,{variant:"label",weight:t?"semibold":"medium",style:[q.segmentLabel,L?q.segmentLabelMultiline:null,{color:r,fontSize:k.text},S,j],numberOfLines:F,children:e.label})]},String(e.value))})]}),!se||z||ne.active?null:(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{borderWidth:oe,borderColor:ae,borderRadius:N?W:P,..._corners.smoothCorners}]})]});return de||ue?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{alignSelf:c?"stretch":"flex-start"},children:[de?(0,_jsxRuntime.jsx)(_index4.FieldLabel,{size:d,children:i}):null,xe,ue?(0,_jsxRuntime.jsx)(_index4.FieldMessage,{size:d,text:ce,error:le}):null]}):xe});SegmentedControl.displayName="SegmentedControl";const buildStyles=e=>_reactNative.StyleSheet.create({track:{flexDirection:"row",alignItems:"stretch",position:"relative"},row:{flex:1,flexDirection:"row",alignItems:"stretch",position:"relative",overflow:"hidden"},thumb:{position:"absolute",left:0},segment:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center"},segmentIcon:{marginRight:e.space.xs},segmentMultiline:{paddingVertical:e.space.xs},segmentLabel:{includeFontPadding:!1},segmentLabelMultiline:{flexShrink:1,textAlign:"center"}});var _default=exports.default=SegmentedControl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonText=exports.SkeletonCircle=exports.Skeleton=exports.DEFAULT_SKELETON_LABELS=void 0;var _react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_Gradient=require("../../theme/Gradient.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_SkeletonClock=require("./SkeletonClock.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_SKELETON_LABELS=exports.DEFAULT_SKELETON_LABELS=Object.freeze({loading:"Loading"}),resolveRadius=(e,t)=>"number"==typeof t?t:e.radius[t],resolveWidth=e=>void 0===e?"100%":e,radiusForShape=(e,t,s,r,i)=>{if(void 0!==i)return resolveRadius(e,i);switch(t){case"circle":return"number"==typeof s?Math.min(s,r)/2:r/2;case"rounded":return e.radius.md;default:return e.radius.sm}},Skeleton=e=>{const{shape:t="rect",width:s="100%",height:r=16,radius:i,variant:n,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonText=exports.SkeletonCircle=exports.Skeleton=exports.DEFAULT_SKELETON_LABELS=void 0;var _react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_Gradient=require("../../theme/Gradient.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_SkeletonClock=require("./SkeletonClock.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_SKELETON_LABELS=exports.DEFAULT_SKELETON_LABELS=Object.freeze({loading:"Loading"}),resolveRadius=(e,t)=>"number"==typeof t?t:e.radius[t],resolveWidth=e=>void 0===e?"100%":e,radiusForShape=(e,t,s,r,i)=>{if(void 0!==i)return resolveRadius(e,i);switch(t){case"circle":return"number"==typeof s?Math.min(s,r)/2:r/2;case"rounded":return e.radius.md;default:return e.radius.sm}},Skeleton=e=>{const{shape:t="rect",width:s="100%",height:r=16,radius:i,variant:n,colors:o,labels:a,style:l,testID:u}=e;(0,_warnInvalidValue.warnInvalidValue)("Skeleton","shape",e.shape,["rect","rounded","circle","text"]),(0,_warnInvalidValue.warnInvalidValue)("Skeleton","variant",e.variant,["shimmer","pulse","none"]);const c=(0,_index.useTheme)(),d=(0,_SkeletonProvider.useSkeletonDefaults)(),m=(0,_SkeletonClock.useSkeletonClock)(),h=(0,_useReducedMotion.useReducedMotion)(),S=n??d.variant??"shimmer",_=h&&"auto"===(d.animation??"auto");let p=S;m.enabled?_&&"shimmer"===S&&(p="pulse"):p="none";const x=o?.background??d.colors?.background??c.colors.skeleton,k=o?.highlight??d.colors?.highlight??c.colors["skeleton-highlight"],{responsive:v}=(0,_index2.useScreenDimensions)(),b=(0,_react.useMemo)(()=>buildStyles(),[]),y=(0,_react.useMemo)(()=>({...DEFAULT_SKELETON_LABELS,...a}),[a]),g=resolveWidth(s),j=v.size(r),L=radiusForShape(c,t,g,j,i),[R,w]=(0,_react.useState)(0),E=(0,_react.useMemo)(()=>R<=0?0:Math.max(48,.7*R),[R]),T=(0,_react.useMemo)(()=>R<=0?0:m.shimmer.interpolate({inputRange:[0,1],outputRange:[-E,R]}),[m.shimmer,E,R]),f=(0,_react.useMemo)(()=>"none"===p?null:"pulse"===p?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{backgroundColor:k,opacity:m.pulse.interpolate({inputRange:[0,1],outputRange:[0,.55]})}]}):R<=0?null:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[b.shimmerBand,{width:E,transform:[{translateX:T}],experimental_backgroundImage:[(0,_Gradient.toBackgroundImage)({colors:["transparent",k,"transparent"],locations:[0,.5,1],start:{x:0,y:.5},end:{x:1,y:.5}})]}]}),[p,k,m.pulse,R,b.shimmerBand,E,T]);return(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:e=>{const t=e.nativeEvent.layout.width;t!==R&&w(t)},accessible:!0,accessibilityLabel:y.loading,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",testID:u,style:[b.base,{width:g,height:j,borderRadius:L,..._corners.smoothCorners,backgroundColor:x},l],children:f})};exports.Skeleton=Skeleton,Skeleton.displayName="Skeleton";const SkeletonCircle=({size:e,style:t,...s})=>{const{responsive:r}=(0,_index2.useScreenDimensions)(),i=r.size(e);return(0,_jsxRuntime.jsx)(Skeleton,{...s,shape:"circle",width:i,height:e,style:t})};exports.SkeletonCircle=SkeletonCircle,SkeletonCircle.displayName="SkeletonCircle";const SkeletonText=({lines:e=3,lastLineWidth:t="60%",spacing:s,fontSize:r,variant:i,radius:n="sm",width:o="100%",labels:a,style:l,testID:u})=>{const c=(0,_index.useTheme)(),d=s??c.space.xs,m=Math.max(1,e);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:l,testID:u,children:Array.from({length:m}).map((e,s)=>{const l=s===m-1&&m>1?t:o;return(0,_jsxRuntime.jsx)(Skeleton,{shape:"text",width:l,height:r??c.text.base.size,radius:n,variant:i,labels:a,style:s<m-1?{marginBottom:d}:void 0},s)})})};exports.SkeletonText=SkeletonText,SkeletonText.displayName="SkeletonText";const buildStyles=()=>_reactNative.StyleSheet.create({base:{overflow:"hidden"},shimmerBand:{position:"absolute",top:0,bottom:0,left:0}});var _default=exports.default=Skeleton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonContent=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_index2=require("../Text/index.js"),_Skeleton=require("./Skeleton.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_SkeletonSkip=require("./SkeletonSkip.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,n
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonContent=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_index2=require("../Text/index.js"),_Skeleton=require("./Skeleton.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_SkeletonSkip=require("./SkeletonSkip.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,i,n=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,a)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((r=n&&Object.getOwnPropertyDescriptor(e,i))&&(r.get||r.set)?n(a,i,r):a[i]=e[i]);return a}const DEFAULT_REVEAL_FADE_MS=300,flattenStyle=e=>{if(!e)return{};return _reactNative.StyleSheet.flatten(e)??{}},resolveWidth=(e,t)=>"number"==typeof e?e:"string"!=typeof e||"auto"!==e&&"100%"!==e&&!/^\d+(\.\d+)?%$/.test(e)?t:e,resolveRadius=(e,t)=>"number"==typeof e?e:t,skeletonizeNode=(e,t,r,i,n="r")=>{if(null==t||"boolean"==typeof t)return null;if("string"==typeof t||"number"==typeof t)return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:"60%",height:14,variant:r,colors:i},`${n}-text`);if(Array.isArray(t))return _react.Children.map(t,(t,a)=>skeletonizeNode(e,t,r,i,`${n}-${a}`));if(!(0,_react.isValidElement)(t))return null;const a=t,s=a.props??{},o=a.type;if(o===_SkeletonSkip.SkeletonSkip)return(0,_react.cloneElement)(a,{key:`${n}-skip`});if("function"==typeof o||"object"==typeof o){const e=o.Skeleton;if(e){const t=e;return(0,_jsxRuntime.jsx)(t,{...s},`${n}-self`)}}if(o===_reactNative.Image){const e=flattenStyle(s.style),t=resolveWidth(e.width,"100%"),a="number"==typeof e.height?e.height:120,o=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:t,height:a,radius:o,variant:r,colors:i,style:{margin:"number"==typeof e.margin?e.margin:void 0}},`${n}-img`)}if(o===_reactNative.Text||o===_index2.Text){const t=flattenStyle(s.style),a="number"==typeof t.fontSize?t.fontSize:e.text.base.size,o=resolveWidth(t.width,"85%");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:o,height:Math.round(1.15*a),variant:r,colors:i,style:{marginVertical:e.space.xxs}},`${n}-txt`)}if(null!=s.children)return(0,_react.cloneElement)(a,{key:`${n}-w`},skeletonizeNode(e,s.children,r,i,`${n}-c`));if(o===_reactNative.View){const e=flattenStyle(s.style);if(null!=e.width||null!=e.height){const t=resolveWidth(e.width,"100%"),a="number"==typeof e.height?e.height:20,s=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:t,height:a,radius:s,variant:r,colors:i},`${n}-vw`)}}return(0,_react.cloneElement)(a,{key:`${n}-leaf`})},SkeletonContent=e=>{const{loading:t,children:r,placeholder:i,variant:n,count:a=1,colors:s,labels:o,fadeDuration:l,style:u,testID:c}=e;(0,_warnInvalidValue.warnInvalidValue)("SkeletonContent","variant",e.variant,["shimmer","pulse","none"]);const d=(0,_index.useTheme)(),_=(0,_react.useMemo)(()=>({..._Skeleton.DEFAULT_SKELETON_LABELS,...o}),[o]),f=(0,_SkeletonProvider.useSkeletonDefaults)(),h=(0,_usePresenceMotion.usePresenceMotion)(),y=l??f.fadeDuration??(h.reduced?h.duration("default"):300),p=(0,_react.useRef)(t),m=(0,_react.useRef)((0,_index.createAnimatedValue)(t?0:1)).current;if((0,_react.useEffect)(()=>{let e;return p.current&&!t?(m.setValue(0),e=_reactNative.Animated.timing(m,{toValue:1,duration:y,useNativeDriver:!0}),e.start()):!p.current&&t&&m.setValue(1),p.current=t,()=>e?.stop()},[t,m,y]),!t)return y<=0?(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:r}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[u,{opacity:m}],testID:c,children:r});if(void 0!==i){const e=a>1?Array.from({length:a},(e,t)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:i},`sk-ph-${t}`)):i;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:u,testID:c,accessible:!0,accessibilityLabel:_.loading,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",children:e})}const x=a>1?Array.from({length:a},(e,t)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:r},`sk-rep-${t}`)):r;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:u,testID:c,accessible:!0,accessibilityLabel:_.loading,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",children:skeletonizeNode(d,x,n,s)})};exports.SkeletonContent=SkeletonContent,SkeletonContent.displayName="SkeletonContent";var _default=exports.default=SkeletonContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SkeletonList=void 0;var _react=_interopRequireDefault(require("react")),_reactNative=require("react-native"),_SkeletonContent=require("./SkeletonContent.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function SkeletonListInner(e){const{loading:t,data:n,renderItem:r,renderPlaceholder:o,placeholderCount:l,variant:i,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SkeletonList=void 0;var _react=_interopRequireDefault(require("react")),_reactNative=require("react-native"),_SkeletonContent=require("./SkeletonContent.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function SkeletonListInner(e){const{loading:t,data:n,renderItem:r,renderPlaceholder:o,placeholderCount:l,variant:i,colors:s,labels:a,placeholderContainerStyle:u,horizontal:c,contentContainerStyle:d,style:_,testID:x,...S}=e,k=(0,_SkeletonProvider.useSkeletonDefaults)(),m=l??k.placeholderCount??3;if(t){const e=Array.from({length:Math.max(0,m)},(e,t)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:o?o(t):null},`sk-list-${t}`));return(0,_jsxRuntime.jsx)(_SkeletonContent.SkeletonContent,{loading:!0,variant:i,colors:s,labels:a,style:_,testID:x,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[c?styles.row:styles.column,u],children:e})})}return(0,_jsxRuntime.jsx)(_reactNative.FlatList,{data:n??[],renderItem:r,horizontal:c,contentContainerStyle:d,style:_,testID:x,...S})}const styles={row:{flexDirection:"row"},column:{flexDirection:"column"}},SkeletonList=exports.SkeletonList=SkeletonListInner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_SORTABLE_LIST_LABELS=void 0,exports.SortableList=SortableList,exports.default=void 0,exports.dropIndex=dropIndex,exports.moveItem=moveItem,exports.rowShifts=rowShifts,exports.slotTop=slotTop,exports.topOf=topOf;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_ScrollHost=require("../Screen/ScrollHost.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var a,r,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_SORTABLE_LIST_LABELS=void 0,exports.SortableList=SortableList,exports.default=void 0,exports.dropIndex=dropIndex,exports.moveItem=moveItem,exports.rowShifts=rowShifts,exports.slotTop=slotTop,exports.topOf=topOf;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_ScrollHost=require("../Screen/ScrollHost.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var a,r,l=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((a=l&&Object.getOwnPropertyDescriptor(e,r))&&(a.get||a.set)?l(n,r,a):n[r]=e[r]);return n}const DEFAULT_SORTABLE_LIST_LABELS=exports.DEFAULT_SORTABLE_LIST_LABELS=Object.freeze({moveUp:"Move up",moveDown:"Move down"}),LONG_PRESS_MS=350,EDGE_PX=48,SCROLL_STEP_PX=12,SCROLL_SLACK_PX=1,SPRING_CONFIG={damping:22,stiffness:260,mass:1},ACTION_STEP={moveUp:-1,moveDown:1},noop=e=>{};function moveItem(e,t,a){const r=e.slice();if(t<0||t>=r.length)return r;const[l]=r.splice(t,1);return r.splice(a,0,l),r}function topOf(e,t){"worklet";let a=0;for(let r=0;r<t;r++)a+=e[r]??0;return a}function slotTop(e,t,a){"worklet";let r=0,l=0;for(let n=0;n<e.length&&l<a;n++)n!==t&&(r+=e[n]??0,l++);return r}function dropIndex(e,t,a){"worklet";const r=topOf(e,t)+(e[t]??0)/2+a;let l=0,n=0;for(let a=0;a<e.length;a++){const i=e[a]??0;a!==t&&n+i/2<r&&l++,n+=i}return l}function rowShifts(e,t,a){const r=[];let l=0;for(const t of e)r.push(l),l+=t;const n=e.map(()=>0),i=moveItem(e.map((e,t)=>t),t,a);let o=0;for(const t of i)n[t]=o-(r[t]??0),o+=e[t]??0;return n}const buildStyles=e=>_reactNative.StyleSheet.create({handleRow:{flexDirection:"row",alignItems:"center"},handle:{paddingHorizontal:e.space.sm,paddingVertical:e.space.md,gap:e.space.xxs},bar:{width:e.space.md,height:e.space.xxs,backgroundColor:e.colors["text-muted"]},body:{flex:1}});function SortableRow({rowKey:e,index:t,count:a,shift:r,isActive:l,dragging:n,handle:i,disabled:o,shared:s,callbacks:c,labels:u,children:d}){const v=(0,_index.useTheme)(),_=(0,_react.useMemo)(()=>buildStyles(v),[v]),m=(0,_reactNativeReanimated.useSharedValue)(0);(0,_react.useEffect)(()=>{m.value=n&&!l?(0,_reactNativeReanimated.withSpring)(r,SPRING_CONFIG):r},[n,l,r,m]),(0,_react.useEffect)(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(m)},[m]);const S=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateY:l?s.dragY.value:m.value}],zIndex:l?1:0})),h=(0,_react.useMemo)(()=>{const{dragIndex:e,dropTo:a,dragY:r,translation:l,absoluteY:n,scrollY:u,scrollStart:d,hostOffset:v,hostStart:_,hostTarget:m,heights:S}=s,{onLift:h,onDrop:f,onSettled:p}=c,R=_reactNativeGestureHandler.Gesture.Pan().enabled(!o).onStart(i=>{"worklet";n.value=i.absoluteY,e.value=t,a.value=t,d.value=u.value,_.value=v.value,m.value=v.value,l.value=0,r.value=0,(0,_reactNativeReanimated.runOnJS)(h)(t)}).onUpdate(a=>{"worklet";e.value===t&&(l.value=a.translationY,n.value=a.absoluteY)}).onFinalize(()=>{"worklet";if(e.value!==t)return;const l=a.value,n=S.value;e.value=-1,r.value=topOf(n,t)+r.value-slotTop(n,t,l),r.value=(0,_reactNativeReanimated.withSpring)(0,SPRING_CONFIG,e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(p)()}),(0,_reactNativeReanimated.runOnJS)(f)(t,l)});return i?R:R.activateAfterLongPress(350)},[o,i,t,c,s]),f=o?[]:[...t>0?[{name:"moveUp",label:u.moveUp}]:[],...t<a-1?[{name:"moveDown",label:u.moveDown}]:[]];return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:S,onLayout:t=>c.onHeight(e,t.nativeEvent.layout.height),accessibilityActions:f,onAccessibilityAction:e=>{if(o)return;const r=t+(ACTION_STEP[e.nativeEvent.actionName]??0);r!==t&&r>=0&&r<a&&c.onMove(t,r)},testID:`sortable-row-${e}`,children:i?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_.handleRow,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:h,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_.handle,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:_.bar}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:_.bar}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:_.bar})]})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:_.body,children:d})]}):(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:h,children:(0,_jsxRuntime.jsx)(_reactNative.View,{children:d})})})}function SortableList(e){const{data:t,keyExtractor:a,renderItem:r,onReorder:l,handle:n=!1,disabled:i=!1,accessibilityLabel:o,labels:s,testID:c}=e,u=(0,_react.useMemo)(()=>({...DEFAULT_SORTABLE_LIST_LABELS,...s}),[s]),d=(0,_react.useMemo)(()=>t.map((e,t)=>({key:a(e,t),item:e})),[t,a]),v=(0,_react.useMemo)(()=>d.map(e=>e.key),[d]),_=(0,_reactNativeReanimated.useAnimatedRef)(),m=(0,_reactNativeReanimated.useSharedValue)(0),S=(0,_reactNativeReanimated.useSharedValue)(0),h=(0,_reactNativeReanimated.useSharedValue)(0),f=(0,_ScrollHost.useScrollHost)(),p=(0,_reactNativeReanimated.useSharedValue)(0),R=null!==f,g=f?.top??p,x=f?.bottom??p,N=f?.offset??p,b=f?.maxOffset??p,L=f?.scrollTo??noop,w=(0,_reactNativeReanimated.useSharedValue)(0),O=(0,_reactNativeReanimated.useSharedValue)(0),y=(0,_reactNativeReanimated.useSharedValue)(0),E=(0,_reactNativeReanimated.useSharedValue)(0),j=(0,_reactNativeReanimated.useSharedValue)(-1),T=(0,_reactNativeReanimated.useSharedValue)(-1),k=(0,_reactNativeReanimated.useSharedValue)(0),A=(0,_reactNativeReanimated.useSharedValue)([]),I=(0,_react.useRef)(new Map),P=(0,_react.useRef)(v),[C,M]=(0,_react.useState)(null),V=(0,_react.useCallback)(()=>{A.value=P.current.map(e=>I.current.get(e)??0)},[A]);(0,_react.useEffect)(()=>{P.current=v,V()},[v,V]),(0,_react.useEffect)(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(k)},[k]);const D=(0,_react.useCallback)(e=>{M(t=>t?.dragging?{...t,to:e}:t)},[]),G=(0,_reactNativeReanimated.useFrameCallback)(()=>{"worklet";const e=j.value;if(e<0)return;const t=(0,_reactNativeReanimated.measure)(_);if(t){const e=R?Math.max(t.pageY,g.value):t.pageY,a=R?Math.min(t.pageY+t.height,x.value):t.pageY+t.height,r=Math.max(0,h.value-t.height-SCROLL_SLACK_PX);E.value<e+EDGE_PX?m.value>SCROLL_SLACK_PX?(0,_reactNativeReanimated.scrollTo)(_,0,Math.max(0,m.value-SCROLL_STEP_PX),!1):R&&O.value>0&&(O.value=Math.max(0,O.value-SCROLL_STEP_PX),(0,_reactNativeReanimated.runOnJS)(L)(O.value)):E.value>a-EDGE_PX&&(m.value<r?(0,_reactNativeReanimated.scrollTo)(_,0,Math.min(r,m.value+SCROLL_STEP_PX),!1):R&&O.value<b.value&&(O.value=Math.min(b.value,O.value+SCROLL_STEP_PX),(0,_reactNativeReanimated.runOnJS)(L)(O.value)))}k.value=y.value+m.value-S.value+N.value-w.value;const a=dropIndex(A.value,e,k.value);a!==T.value&&(T.value=a,(0,_reactNativeReanimated.runOnJS)(D)(a))},!1),Y=(0,_react.useCallback)(e=>{(0,_index2.triggerHaptic)("longPress"),G.setActive(!0),M({key:v[e]??"",from:e,to:e,dragging:!0})},[G,v]),H=(0,_react.useCallback)((e,t)=>{G.setActive(!1),M(e=>e?{...e,to:t,dragging:!1}:e),t!==e&&l(moveItem(v,e,t))},[G,v,l]),X=(0,_react.useCallback)(()=>{M(e=>e&&!e.dragging?null:e)},[]),q=(0,_react.useCallback)((e,t)=>{l(moveItem(v,e,t))},[v,l]),F=(0,_react.useCallback)((e,t)=>{I.current.set(e,t),V()},[V]),U=(0,_reactNativeReanimated.useAnimatedScrollHandler)({onScroll:e=>{"worklet";m.value=e.contentOffset.y}}),B=(0,_react.useCallback)((e,t)=>{h.value=t},[h]),J=(0,_react.useMemo)(()=>({scrollRef:_,scrollY:m,scrollStart:S,hostOffset:N,hostStart:w,hostTarget:O,translation:y,absoluteY:E,dragIndex:j,dropTo:T,dragY:k,heights:A}),[_,m,S,N,w,O,y,E,j,T,k,A]),z=(0,_react.useMemo)(()=>({onLift:Y,onDrop:H,onSettled:X,onMove:q,onHeight:F}),[Y,H,X,q,F]),K=!0===C?.dragging,W=K&&C?rowShifts(v.map(e=>I.current.get(e)??0),C.from,C.to):null;return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.ScrollView,{ref:_,onScroll:U,onContentSizeChange:B,scrollEventThrottle:16,scrollEnabled:!K,accessibilityLabel:o,testID:c,children:d.map((e,t)=>{const a=C?.key===e.key;return(0,_jsxRuntime.jsx)(SortableRow,{rowKey:e.key,index:t,count:d.length,shift:W?.[t]??0,isActive:a,dragging:K,handle:n,disabled:i,shared:J,callbacks:z,labels:u,children:r({item:e.item,index:t,isActive:a})},e.key)})})}SortableList.displayName="SortableList";var _default=exports.default=SortableList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import{useMemo}from"react";import{Linking,Platform,StyleSheet,
|
|
1
|
+
"use strict";import{linkTarget,parseInline,parseMarkdown}from"@webority/markdown-core";import{useMemo}from"react";import{Linking,Platform,Text as RNText,ScrollView,StyleSheet,View}from"react-native";import{useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{Skeleton}from"../Skeleton/index.js";import{Text}from"../Text/index.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const MONO=Platform.select({ios:"Menlo",android:"monospace",default:"monospace"}),HEADING_SCALE={1:"3xl",2:"2xl",3:"xl",4:"lg",5:"base",6:"sm"},createStyles=e=>StyleSheet.create({block:{marginBottom:e.space.sm},listRow:{flexDirection:"row",marginBottom:e.space.xs},marker:{width:e.space.lg},listText:{flex:1},quote:{borderLeftWidth:3,borderLeftColor:e.colors["border-subtle"],paddingLeft:e.space.sm,marginBottom:e.space.sm},quoteText:{color:e.colors["text-muted"],fontStyle:"italic"},code:{backgroundColor:e.colors["bg-subtle"],borderRadius:e.radius.sm,...smoothCorners,padding:e.space.sm,marginBottom:e.space.sm},codeText:{fontFamily:MONO},inlineCode:{fontFamily:MONO,backgroundColor:e.colors["bg-subtle"],color:e.colors["text-body"]},link:{color:e.colors.link,textDecorationLine:"underline"},strong:{fontWeight:e.weight.bold},em:{fontStyle:"italic"},strike:{textDecorationLine:"line-through"},table:{borderWidth:StyleSheet.hairlineWidth,borderColor:e.colors.border},row:{flexDirection:"row"},headerRow:{backgroundColor:e.colors["bg-subtle"]},cell:{minWidth:96,maxWidth:220,padding:e.space.xs,borderRightWidth:StyleSheet.hairlineWidth,borderBottomWidth:StyleSheet.hairlineWidth,borderColor:e.colors.border},rule:{height:StyleSheet.hairlineWidth,backgroundColor:e.colors.border,marginVertical:e.space.md}}),withPositionKeys=e=>e.map((e,t)=>({key:t,value:e})),openHref=(e,t)=>{t?t(e):Linking.openURL(e).catch(()=>{})};function Inline({tokens:e,ctx:t}){const{styles:s}=t;return _jsx(_Fragment,{children:e.map(e=>{switch(e.type){case"text":return _jsx(RNText,{children:e.text},e.key);case"code":return _jsx(RNText,{style:s.inlineCode,children:e.text},e.key);case"strong":return _jsx(RNText,{style:s.strong,children:_jsx(Inline,{tokens:e.children,ctx:t})},e.key);case"em":return _jsx(RNText,{style:s.em,children:_jsx(Inline,{tokens:e.children,ctx:t})},e.key);case"strike":return _jsx(RNText,{style:s.strike,children:_jsx(Inline,{tokens:e.children,ctx:t})},e.key);case"image":return _jsxs(RNText,{children:["[",_jsx(Inline,{tokens:e.children,ctx:t}),"]"]},e.key);case"link":return renderLink(e.key,e.href,e.children,t);default:return null}})})}function renderLink(e,t,s,r){const{styles:n,links:o,resolveLink:i,onAppLinkPress:l,onLinkPress:a}=r,c=_jsx(Inline,{tokens:s,ctx:r}),d=linkTarget(t,o,i);return null===d?_jsx(RNText,{children:c},e):"app"===d.kind?_jsx(RNText,l?{accessibilityRole:"link",style:n.link,onPress:()=>l(d.target),children:c}:{children:c},e):_jsx(RNText,{accessibilityRole:"link",style:n.link,onPress:()=>openHref(d.href,a),children:c},e)}function RenderBlock({block:e,ctx:t}){const{theme:s,styles:r,textStyle:n,headings:o}=t;switch(e.type){case"heading":return _jsx(Text,{variant:"body",weight:"outline"===o?"semibold":"bold",size:"outline"===o?HEADING_SCALE[e.level]:void 0,accessibilityRole:"header",style:[r.block,n],children:_jsx(Inline,{tokens:parseInline(e.text),ctx:t})});case"paragraph":return _jsx(Text,{variant:"body",style:[r.block,n],children:_jsx(Inline,{tokens:parseInline(e.lines.join("\n")),ctx:t})});case"list":return _jsx(View,{children:withPositionKeys(e.items).map(({key:e,value:o})=>_jsxs(View,{style:[r.listRow,{marginLeft:o.depth*s.space.md}],children:[_jsx(Text,{variant:"body",style:[r.marker,n],children:o.ordered?`${o.number}.`:"•"}),_jsx(Text,{variant:"body",style:[r.listText,n],children:_jsx(Inline,{tokens:parseInline(o.text),ctx:t})})]},e))});case"table":return _jsx(ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,style:r.block,children:_jsx(View,{style:r.table,children:withPositionKeys([e.header,...e.rows]).map(({key:s,value:o})=>_jsx(View,{style:[r.row,0===s&&r.headerRow],children:withPositionKeys(e.header).map(({key:e})=>_jsx(View,{style:r.cell,children:_jsx(Text,{variant:"bodySmall",weight:0===s?"semibold":void 0,style:n,children:_jsx(Inline,{tokens:parseInline(o[e]??""),ctx:t})})},e))},s))})});case"code":return _jsx(ScrollView,{horizontal:!0,style:r.code,children:_jsx(Text,{variant:"body",size:"sm",selectable:!0,style:r.codeText,children:e.text})});case"quote":return _jsx(View,{style:r.quote,children:_jsx(Text,{variant:"body",style:[r.quoteText,n],children:_jsx(Inline,{tokens:parseInline(e.lines.join("\n")),ctx:t})})});case"rule":return _jsx(View,{style:r.rule});default:return null}}const MarkdownSkeleton=({style:e,testID:t})=>{const s=useTheme();return _jsxs(View,{style:e,testID:t,children:[_jsx(Skeleton,{shape:"text",width:"70%",height:20,style:{marginBottom:s.space.sm}}),_jsx(Skeleton,{shape:"text",width:"100%",height:14,style:{marginBottom:s.space.xs}}),_jsx(Skeleton,{shape:"text",width:"92%",height:14,style:{marginBottom:s.space.xs}}),_jsx(Skeleton,{shape:"text",width:"60%",height:14})]})};export function Markdown({children:e,links:t="web",headings:s="outline",resolveLink:r,onAppLinkPress:n,onLinkPress:o,loading:i=!1,style:l,textStyle:a,testID:c}){const d=useTheme(),x=useMemo(()=>createStyles(d),[d]),h=useMemo(()=>parseMarkdown(e??""),[e]);if(i)return _jsx(MarkdownSkeleton,{style:l,testID:c});if(0===h.length)return null;const m={theme:d,styles:x,links:t,headings:s,textStyle:a,resolveLink:r,onAppLinkPress:n,onLinkPress:o};return _jsx(View,{style:l,testID:c,children:h.map(e=>_jsx(RenderBlock,{block:e,ctx:m},e.key))})}Markdown.displayName="Markdown";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import{formatTime}from"@webority/mobile-core";import{useCallback,useEffect,useMemo,useRef}from"react";import{Pressable,StyleSheet,View}from"react-native";import{useTheme}from"../../theme/index.js";import{announce}from"../../utils/announce.js";import{smoothCorners}from"../../utils/corners.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{AppIcon}from"../AppIcon/index.js";import{Button}from"../Button/index.js";import{Markdown}from"../Markdown/index.js";import{useContextMenu}from"../Menu/useContextMenu.js";import{Text}from"../Text/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_MESSAGE_BUBBLE_LABELS=Object.freeze({you:"You",sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",retry:"Try again",copy:"Copy",replyTo:e=>e?`Reply to ${e}`:"Reply"});const MAX_WIDTH="85%",STATUS_ICON=14,statusIcon=e=>{switch(e){case"sending":return"clock";case"sent":return"check";case"failed":return"alert-circle";default:return"check-check"}},statusColour=(e,s)=>{switch(s){case"read":return e.colors["info-text"];case"failed":return e.colors["danger-text"];default:return e.colors["text-subtle"]}};export const MessageBubble=({side:e,text:s,children:t,markdown:o
|
|
1
|
+
"use strict";import{markdownToPlainText}from"@webority/markdown-core";import{formatTime}from"@webority/mobile-core";import{useCallback,useEffect,useMemo,useRef}from"react";import{Pressable,StyleSheet,View}from"react-native";import{useTheme}from"../../theme/index.js";import{announce}from"../../utils/announce.js";import{smoothCorners}from"../../utils/corners.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{AppIcon}from"../AppIcon/index.js";import{Button}from"../Button/index.js";import{Markdown}from"../Markdown/index.js";import{useContextMenu}from"../Menu/useContextMenu.js";import{Text}from"../Text/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_MESSAGE_BUBBLE_LABELS=Object.freeze({you:"You",sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",retry:"Try again",copy:"Copy",replyTo:e=>e?`Reply to ${e}`:"Reply"});const MAX_WIDTH="85%",STATUS_ICON=14,statusIcon=e=>{switch(e){case"sending":return"clock";case"sent":return"check";case"failed":return"alert-circle";default:return"check-check"}},statusColour=(e,s)=>{switch(s){case"read":return e.colors["info-text"];case"failed":return e.colors["danger-text"];default:return e.colors["text-subtle"]}};export const MessageBubble=({side:e,text:s,children:t,markdown:o,groupPosition:r="single",author:n,time:i,status:a,replyTo:l,streaming:c=!1,error:u,onRetry:d,actions:m,onCopy:b,onLongPress:p,footer:x,labels:f,haptic:y,style:h,testID:g})=>{warnInvalidValue("MessageBubble","side",e,["mine","theirs"]),warnInvalidValue("MessageBubble","groupPosition",r,["single","first","middle","last"]),warnInvalidValue("MessageBubble","status",a,["sending","sent","delivered","read","failed"]);const T=useTheme(),j=useMemo(()=>buildStyles(T),[T]),L=f?{...DEFAULT_MESSAGE_BUBBLE_LABELS,...f}:DEFAULT_MESSAGE_BUBBLE_LABELS,_="mine"===e,B=!u&&(o??"theirs"===e),P="single"===r||"first"===r,M="single"===r||"last"===r,S=null==i?"":formatTime(i),v=("failed"===a||Boolean(u))&&Boolean(d),w=_?L.you:n??"",I=useMemo(()=>{const e=[];return b&&!m?.some(e=>"copy"===e.name)&&e.push({name:"copy",label:L.copy,onPress:()=>b(s)}),m&&e.push(...m),l?.onPress&&e.push({name:"openReply",label:L.replyTo(l.author),onPress:l.onPress}),v&&d&&e.push({name:"retry",label:L.retry,onPress:d}),e},[m,b,s,l,v,d,L]),E=(m?.length??0)>0||Boolean(b),A=useMemo(()=>E?{items:I.map(({name:e,label:s,onPress:t})=>({key:e,label:s,onPress:t}))}:void 0,[E,I]),k=useContextMenu(A,{haptic:y,testID:g}),C=k.hostProps.onLongPress,R=!t||(m?.length??0)>0,D=a&&_?L[a]:"",$=useMemo(()=>B&&null==t?markdownToPlainText(s):s,[B,t,s]),V=[w,S,$,l?`${L.replyTo(l.author)}: ${l.text}`:"",D].filter(Boolean).join(", "),U=useRef(c);useEffect(()=>{U.current&&!c&&!u&&s&&announce(w?`${w}, ${$}`:$),U.current=c},[c,u,s,$,w]);const z=useRef(u);useEffect(()=>{u&&u!==z.current&&announce(u,{polite:!1}),z.current=u},[u]);const H=useCallback(e=>{C?.(e),p?.()},[C,p]),F=useCallback(e=>{I.find(s=>s.name===e.nativeEvent.actionName)?.onPress()},[I]),O=T.radius.xl,G=T.radius.sm,N=_?{borderTopRightRadius:P?O:G,borderBottomRightRadius:M?O:G}:{borderTopLeftRadius:P?O:G,borderBottomLeftRadius:M?O:G},W=t??(B?_jsx(Markdown,{children:s}):_jsx(Text,{variant:"body",children:s})),q=l?_jsxs(Pressable,{onPress:l.onPress,disabled:!l.onPress,accessibilityRole:l.onPress?"button":void 0,accessibilityLabel:`${L.replyTo(l.author)}: ${l.text}`,style:j.quote,children:[l.author?_jsx(Text,{variant:"caption",weight:"semibold",color:"link",numberOfLines:1,children:l.author}):null,_jsx(Text,{variant:"bodySmall",color:"secondary",numberOfLines:2,children:l.text})]}):null,X=[j.bubble,_?j.mine:j.theirs,N],Y=R?{accessible:!0,accessibilityLabel:V,accessibilityState:{busy:c},"aria-busy":c,accessibilityActions:I.map(({name:e,label:s})=>({name:e,label:s})),onAccessibilityAction:F}:{accessible:!1},J=E?_jsxs(Pressable,{ref:k.hostRef,...k.hostProps,onLongPress:H,delayLongPress:350,style:X,testID:g?`${g}-bubble`:void 0,...Y,children:[q,W]}):_jsxs(View,{style:X,testID:g?`${g}-bubble`:void 0,...Y,children:[q,W]}),K=M&&(""!==S||_&&a);return _jsxs(View,{style:[j.root,_?j.rootMine:j.rootTheirs,{marginTop:P?T.space.sm:T.space.xxs},h],testID:g,children:[!_&&P&&n?_jsx(Text,{variant:"caption",color:"secondary",style:j.author,numberOfLines:1,importantForAccessibility:R?"no-hide-descendants":"auto",accessibilityElementsHidden:R,children:n}):null,J,k.renderSurface(),K?_jsxs(View,{style:[j.meta,_?j.metaMine:null],importantForAccessibility:R?"no-hide-descendants":"auto",accessibilityElementsHidden:R,children:[S?_jsx(Text,{variant:"caption",color:"tertiary",children:S}):null,_&&a?_jsx(AppIcon,{name:statusIcon(a),size:14,color:statusColour(T,a),accessibilityLabel:L[a],testID:g?`${g}-status-${a}`:void 0}):null]}):null,u?_jsx(Text,{variant:"bodySmall",color:"danger",style:_?j.endText:null,children:u}):null,v?_jsx(Button,{label:L.retry,variant:"link",size:"sm",leftIcon:"refresh-cw",onPress:d,testID:g?`${g}-retry`:void 0}):null,x]})};const buildStyles=e=>StyleSheet.create({root:{maxWidth:"85%",gap:e.space.xs},rootMine:{alignSelf:"flex-end",alignItems:"flex-end"},rootTheirs:{alignSelf:"flex-start",alignItems:"flex-start"},author:{paddingHorizontal:e.space.md},bubble:{borderRadius:e.radius.xl,...smoothCorners,paddingHorizontal:e.space.md,paddingVertical:e.space.sm,gap:e.space.xs},mine:{backgroundColor:e.colors["primary-soft"]},theirs:{backgroundColor:e.colors["bg-subtle"]},quote:{borderLeftWidth:3,borderLeftColor:e.colors.primary,paddingLeft:e.space.sm,paddingVertical:e.space.xs},meta:{flexDirection:"row",alignItems:"center",gap:e.space.xs,paddingHorizontal:e.space.xs},metaMine:{justifyContent:"flex-end"},endText:{textAlign:"right"}});export default MessageBubble;
|