@ankhorage/zora 0.0.4 → 0.1.0

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 (153) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +335 -4
  3. package/dist/components/card/types.d.ts +1 -1
  4. package/dist/components/card/types.d.ts.map +1 -1
  5. package/dist/components/icon-button/IconButton.d.ts +4 -0
  6. package/dist/components/icon-button/IconButton.d.ts.map +1 -0
  7. package/dist/components/icon-button/IconButton.js +8 -0
  8. package/dist/components/icon-button/IconButton.js.map +1 -0
  9. package/dist/components/icon-button/index.d.ts +3 -0
  10. package/dist/components/icon-button/index.d.ts.map +1 -0
  11. package/dist/components/icon-button/index.js +3 -0
  12. package/dist/components/icon-button/index.js.map +1 -0
  13. package/dist/components/icon-button/types.d.ts +14 -0
  14. package/dist/components/icon-button/types.d.ts.map +1 -0
  15. package/dist/components/icon-button/types.js +2 -0
  16. package/dist/components/icon-button/types.js.map +1 -0
  17. package/dist/components/select/Select.d.ts +4 -0
  18. package/dist/components/select/Select.d.ts.map +1 -0
  19. package/dist/components/select/Select.js +18 -0
  20. package/dist/components/select/Select.js.map +1 -0
  21. package/dist/components/select/index.d.ts +3 -0
  22. package/dist/components/select/index.d.ts.map +1 -0
  23. package/dist/components/select/index.js +3 -0
  24. package/dist/components/select/index.js.map +1 -0
  25. package/dist/components/select/types.d.ts +14 -0
  26. package/dist/components/select/types.d.ts.map +1 -0
  27. package/dist/components/select/types.js +2 -0
  28. package/dist/components/select/types.js.map +1 -0
  29. package/dist/components/tabs/Tabs.d.ts +4 -0
  30. package/dist/components/tabs/Tabs.d.ts.map +1 -0
  31. package/dist/components/tabs/Tabs.js +37 -0
  32. package/dist/components/tabs/Tabs.js.map +1 -0
  33. package/dist/components/tabs/index.d.ts +3 -0
  34. package/dist/components/tabs/index.d.ts.map +1 -0
  35. package/dist/components/tabs/index.js +3 -0
  36. package/dist/components/tabs/index.js.map +1 -0
  37. package/dist/components/tabs/types.d.ts +22 -0
  38. package/dist/components/tabs/types.d.ts.map +1 -0
  39. package/dist/components/tabs/types.js +2 -0
  40. package/dist/components/tabs/types.js.map +1 -0
  41. package/dist/components/toolbar/Toolbar.d.ts +4 -0
  42. package/dist/components/toolbar/Toolbar.d.ts.map +1 -0
  43. package/dist/components/toolbar/Toolbar.js +20 -0
  44. package/dist/components/toolbar/Toolbar.js.map +1 -0
  45. package/dist/components/toolbar/ToolbarAction.d.ts +4 -0
  46. package/dist/components/toolbar/ToolbarAction.d.ts.map +1 -0
  47. package/dist/components/toolbar/ToolbarAction.js +6 -0
  48. package/dist/components/toolbar/ToolbarAction.js.map +1 -0
  49. package/dist/components/toolbar/index.d.ts +4 -0
  50. package/dist/components/toolbar/index.d.ts.map +1 -0
  51. package/dist/components/toolbar/index.js +4 -0
  52. package/dist/components/toolbar/index.js.map +1 -0
  53. package/dist/components/toolbar/types.d.ts +19 -0
  54. package/dist/components/toolbar/types.d.ts.map +1 -0
  55. package/dist/components/toolbar/types.js +2 -0
  56. package/dist/components/toolbar/types.js.map +1 -0
  57. package/dist/index.d.ts +22 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +11 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/patterns/collection-editor/CollectionEditor.d.ts +4 -0
  62. package/dist/patterns/collection-editor/CollectionEditor.d.ts.map +1 -0
  63. package/dist/patterns/collection-editor/CollectionEditor.js +41 -0
  64. package/dist/patterns/collection-editor/CollectionEditor.js.map +1 -0
  65. package/dist/patterns/collection-editor/index.d.ts +3 -0
  66. package/dist/patterns/collection-editor/index.d.ts.map +1 -0
  67. package/dist/patterns/collection-editor/index.js +3 -0
  68. package/dist/patterns/collection-editor/index.js.map +1 -0
  69. package/dist/patterns/collection-editor/types.d.ts +24 -0
  70. package/dist/patterns/collection-editor/types.d.ts.map +1 -0
  71. package/dist/patterns/collection-editor/types.js +2 -0
  72. package/dist/patterns/collection-editor/types.js.map +1 -0
  73. package/dist/patterns/disclosure-section/DisclosureSection.d.ts +4 -0
  74. package/dist/patterns/disclosure-section/DisclosureSection.d.ts.map +1 -0
  75. package/dist/patterns/disclosure-section/DisclosureSection.js +27 -0
  76. package/dist/patterns/disclosure-section/DisclosureSection.js.map +1 -0
  77. package/dist/patterns/disclosure-section/index.d.ts +3 -0
  78. package/dist/patterns/disclosure-section/index.d.ts.map +1 -0
  79. package/dist/patterns/disclosure-section/index.js +3 -0
  80. package/dist/patterns/disclosure-section/index.js.map +1 -0
  81. package/dist/patterns/disclosure-section/types.d.ts +15 -0
  82. package/dist/patterns/disclosure-section/types.d.ts.map +1 -0
  83. package/dist/patterns/disclosure-section/types.js +2 -0
  84. package/dist/patterns/disclosure-section/types.js.map +1 -0
  85. package/dist/patterns/inspector-field/InspectorField.d.ts +4 -0
  86. package/dist/patterns/inspector-field/InspectorField.d.ts.map +1 -0
  87. package/dist/patterns/inspector-field/InspectorField.js +12 -0
  88. package/dist/patterns/inspector-field/InspectorField.js.map +1 -0
  89. package/dist/patterns/inspector-field/index.d.ts +3 -0
  90. package/dist/patterns/inspector-field/index.d.ts.map +1 -0
  91. package/dist/patterns/inspector-field/index.js +3 -0
  92. package/dist/patterns/inspector-field/index.js.map +1 -0
  93. package/dist/patterns/inspector-field/types.d.ts +15 -0
  94. package/dist/patterns/inspector-field/types.d.ts.map +1 -0
  95. package/dist/patterns/inspector-field/types.js +2 -0
  96. package/dist/patterns/inspector-field/types.js.map +1 -0
  97. package/dist/patterns/responsive-panel/ResponsivePanel.d.ts +4 -0
  98. package/dist/patterns/responsive-panel/ResponsivePanel.d.ts.map +1 -0
  99. package/dist/patterns/responsive-panel/ResponsivePanel.js +25 -0
  100. package/dist/patterns/responsive-panel/ResponsivePanel.js.map +1 -0
  101. package/dist/patterns/responsive-panel/index.d.ts +3 -0
  102. package/dist/patterns/responsive-panel/index.d.ts.map +1 -0
  103. package/dist/patterns/responsive-panel/index.js +3 -0
  104. package/dist/patterns/responsive-panel/index.js.map +1 -0
  105. package/dist/patterns/responsive-panel/types.d.ts +19 -0
  106. package/dist/patterns/responsive-panel/types.d.ts.map +1 -0
  107. package/dist/patterns/responsive-panel/types.js +2 -0
  108. package/dist/patterns/responsive-panel/types.js.map +1 -0
  109. package/dist/patterns/switch-field/SwitchField.d.ts +4 -0
  110. package/dist/patterns/switch-field/SwitchField.d.ts.map +1 -0
  111. package/dist/patterns/switch-field/SwitchField.js +7 -0
  112. package/dist/patterns/switch-field/SwitchField.js.map +1 -0
  113. package/dist/patterns/switch-field/index.d.ts +3 -0
  114. package/dist/patterns/switch-field/index.d.ts.map +1 -0
  115. package/dist/patterns/switch-field/index.js +3 -0
  116. package/dist/patterns/switch-field/index.js.map +1 -0
  117. package/dist/patterns/switch-field/types.d.ts +10 -0
  118. package/dist/patterns/switch-field/types.d.ts.map +1 -0
  119. package/dist/patterns/switch-field/types.js +2 -0
  120. package/dist/patterns/switch-field/types.js.map +1 -0
  121. package/dist/patterns/tile-grid/PaletteItem.d.ts +4 -0
  122. package/dist/patterns/tile-grid/PaletteItem.d.ts.map +1 -0
  123. package/dist/patterns/tile-grid/PaletteItem.js +24 -0
  124. package/dist/patterns/tile-grid/PaletteItem.js.map +1 -0
  125. package/dist/patterns/tile-grid/TileGrid.d.ts +4 -0
  126. package/dist/patterns/tile-grid/TileGrid.d.ts.map +1 -0
  127. package/dist/patterns/tile-grid/TileGrid.js +26 -0
  128. package/dist/patterns/tile-grid/TileGrid.js.map +1 -0
  129. package/dist/patterns/tile-grid/index.d.ts +4 -0
  130. package/dist/patterns/tile-grid/index.d.ts.map +1 -0
  131. package/dist/patterns/tile-grid/index.js +4 -0
  132. package/dist/patterns/tile-grid/index.js.map +1 -0
  133. package/dist/patterns/tile-grid/types.d.ts +19 -0
  134. package/dist/patterns/tile-grid/types.d.ts.map +1 -0
  135. package/dist/patterns/tile-grid/types.js +2 -0
  136. package/dist/patterns/tile-grid/types.js.map +1 -0
  137. package/dist/patterns/tree-view/TreeItem.d.ts +14 -0
  138. package/dist/patterns/tree-view/TreeItem.d.ts.map +1 -0
  139. package/dist/patterns/tree-view/TreeItem.js +31 -0
  140. package/dist/patterns/tree-view/TreeItem.js.map +1 -0
  141. package/dist/patterns/tree-view/TreeView.d.ts +4 -0
  142. package/dist/patterns/tree-view/TreeView.d.ts.map +1 -0
  143. package/dist/patterns/tree-view/TreeView.js +20 -0
  144. package/dist/patterns/tree-view/TreeView.js.map +1 -0
  145. package/dist/patterns/tree-view/index.d.ts +4 -0
  146. package/dist/patterns/tree-view/index.d.ts.map +1 -0
  147. package/dist/patterns/tree-view/index.js +4 -0
  148. package/dist/patterns/tree-view/index.js.map +1 -0
  149. package/dist/patterns/tree-view/types.d.ts +29 -0
  150. package/dist/patterns/tree-view/types.d.ts.map +1 -0
  151. package/dist/patterns/tree-view/types.js +2 -0
  152. package/dist/patterns/tree-view/types.js.map +1 -0
  153. package/package.json +6 -1
@@ -0,0 +1,3 @@
1
+ export * from './ResponsivePanel';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './ResponsivePanel';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type React from 'react';
2
+ export type ResponsivePanelSide = 'left' | 'right';
3
+ export type ResponsivePanelDesktopMode = 'inline' | 'floating';
4
+ export type ResponsivePanelMobileMode = 'drawer' | 'modal';
5
+ export interface ResponsivePanelProps {
6
+ title?: React.ReactNode;
7
+ description?: React.ReactNode;
8
+ actions?: React.ReactNode;
9
+ footer?: React.ReactNode;
10
+ children?: React.ReactNode;
11
+ open: boolean;
12
+ onOpenChange: (open: boolean) => void;
13
+ side?: ResponsivePanelSide;
14
+ desktopMode?: ResponsivePanelDesktopMode;
15
+ mobileMode?: ResponsivePanelMobileMode;
16
+ compact?: boolean;
17
+ testID?: string;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,CAAC;AACnD,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC/D,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { SwitchFieldProps } from './types';
3
+ export declare function SwitchField({ label, description, value, onValueChange, disabled, testID, }: SwitchFieldProps): React.JSX.Element;
4
+ //# sourceMappingURL=SwitchField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchField.d.ts","sourceRoot":"","sources":["../../../src/patterns/switch-field/SwitchField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,MAAM,GACP,EAAE,gBAAgB,qBAUlB"}
@@ -0,0 +1,7 @@
1
+ import { Switch } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { SettingsRow } from '../settings-row';
4
+ export function SwitchField({ label, description, value, onValueChange, disabled, testID, }) {
5
+ return (<SettingsRow title={label} description={description} disabled={disabled} testID={testID} control={<Switch checked={value} onCheckedChange={onValueChange} disabled={disabled}/>}/>);
6
+ }
7
+ //# sourceMappingURL=SwitchField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchField.js","sourceRoot":"","sources":["../../../src/patterns/switch-field/SwitchField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,MAAM,GACW;IACjB,OAAO,CACL,CAAC,WAAW,CACV,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAC,EACxF,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './SwitchField';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/switch-field/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './SwitchField';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/switch-field/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface SwitchFieldProps {
3
+ label: ReactNode;
4
+ description?: ReactNode;
5
+ value: boolean;
6
+ onValueChange: (value: boolean) => void;
7
+ disabled?: boolean;
8
+ testID?: string;
9
+ }
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/switch-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/switch-field/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { PaletteItemProps } from './types';
3
+ export declare function PaletteItem({ title, description, icon, badge, selected, disabled, onPress, testID, }: PaletteItemProps): React.JSX.Element;
4
+ //# sourceMappingURL=PaletteItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaletteItem.d.ts","sourceRoot":"","sources":["../../../src/patterns/tile-grid/PaletteItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE,gBAAgB,qBAiClB"}
@@ -0,0 +1,24 @@
1
+ import { Box, Heading, Text, useTheme } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { Card } from '../../components/card';
4
+ export function PaletteItem({ title, description, icon, badge, selected, disabled, onPress, testID, }) {
5
+ const { theme } = useTheme();
6
+ return (<Card compact disabled={disabled} onPress={onPress} testID={testID} tone={selected ? 'default' : 'subtle'} style={selected
7
+ ? {
8
+ borderColor: theme.colors.primary,
9
+ borderWidth: 2,
10
+ }
11
+ : undefined}>
12
+ <Box p="xs" style={{ alignItems: 'center' }}>
13
+ {icon ? <Box pb="s">{/* Icon spec here */}</Box> : null}
14
+ <Heading level={5} align="center">
15
+ {title}
16
+ </Heading>
17
+ {description ? (<Text align="center" tone="muted" variant="caption">
18
+ {description}
19
+ </Text>) : null}
20
+ {badge ? <Box pt="xs">{badge}</Box> : null}
21
+ </Box>
22
+ </Card>);
23
+ }
24
+ //# sourceMappingURL=PaletteItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaletteItem.js","sourceRoot":"","sources":["../../../src/patterns/tile-grid/PaletteItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,GACW;IACjB,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,OAAO,CACL,CAAC,IAAI,CACH,OAAO,CACP,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CACtC,KAAK,CAAC,CACJ,QAAQ;YACN,CAAC,CAAC;gBACE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;gBACjC,WAAW,EAAE,CAAC;aACf;YACH,CAAC,CAAC,SACN,CAAC,CAED;MAAA,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAC1C;QAAA,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CACvD;QAAA,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAC/B;UAAA,CAAC,KAAK,CACR;QAAA,EAAE,OAAO,CACT;QAAA,CAAC,WAAW,CAAC,CAAC,CAAC,CACb,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CACjD;YAAA,CAAC,WAAW,CACd;UAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACR;QAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5C;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { TileGridProps } from './types';
3
+ export declare function TileGrid({ children, columns, compact, testID, }: TileGridProps): React.JSX.Element;
4
+ //# sourceMappingURL=TileGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileGrid.d.ts","sourceRoot":"","sources":["../../../src/patterns/tile-grid/TileGrid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAsB,EACtB,OAAe,EACf,MAAM,GACP,EAAE,aAAa,qBAiCf"}
@@ -0,0 +1,26 @@
1
+ import { Box } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ export function TileGrid({ children, columns = 'responsive', compact = false, testID, }) {
4
+ return (<Box testID={testID} style={{
5
+ flexDirection: 'row',
6
+ flexWrap: 'wrap',
7
+ gap: compact ? 8 : 16,
8
+ }}>
9
+ {React.Children.map(children, (child) => {
10
+ if (!child)
11
+ return null;
12
+ return (<Box style={columns === 'responsive'
13
+ ? {
14
+ flexBasis: '30%',
15
+ flexGrow: 1,
16
+ minWidth: 120,
17
+ }
18
+ : {
19
+ width: `${100 / columns}%`,
20
+ }}>
21
+ {child}
22
+ </Box>);
23
+ })}
24
+ </Box>);
25
+ }
26
+ //# sourceMappingURL=TileGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileGrid.js","sourceRoot":"","sources":["../../../src/patterns/tile-grid/TileGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,OAAO,GAAG,YAAY,EACtB,OAAO,GAAG,KAAK,EACf,MAAM,GACQ;IACd,OAAO,CACL,CAAC,GAAG,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC;YACL,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,MAAM;YAChB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SACtB,CAAC,CAEF;MAAA,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,OAAO,CACL,CAAC,GAAG,CACF,KAAK,CAAC,CACJ,OAAO,KAAK,YAAY;oBACtB,CAAC,CAAC;wBACE,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,GAAG;qBACd;oBACH,CAAC,CAAC;wBACE,KAAK,EAAE,GAAG,GAAG,GAAG,OAAO,GAAG;qBAElC,CAAC,CAED;YAAA,CAAC,KAAK,CACR;UAAA,EAAE,GAAG,CAAC,CACP,CAAC;QACJ,CAAC,CAAC,CACJ;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './PaletteItem';
2
+ export * from './TileGrid';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/tile-grid/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './PaletteItem';
2
+ export * from './TileGrid';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/tile-grid/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ButtonIconSpec } from '@ankhorage/surface';
2
+ import type { ReactNode } from 'react';
3
+ export interface TileGridProps {
4
+ children?: ReactNode;
5
+ columns?: number | 'responsive';
6
+ compact?: boolean;
7
+ testID?: string;
8
+ }
9
+ export interface PaletteItemProps {
10
+ title: ReactNode;
11
+ description?: ReactNode;
12
+ icon?: ButtonIconSpec;
13
+ badge?: ReactNode;
14
+ selected?: boolean;
15
+ disabled?: boolean;
16
+ onPress?: () => void;
17
+ testID?: string;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/tile-grid/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/tile-grid/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type { TreeItemNode, TreeItemRenderProps } from './types';
3
+ interface TreeItemProps<TId extends string = string> {
4
+ node: TreeItemNode<TId>;
5
+ depth: number;
6
+ selectedId?: TId;
7
+ expandedIds: readonly TId[];
8
+ onSelect?: (id: TId) => void;
9
+ onToggleExpand: (id: TId) => void;
10
+ renderItem?: (props: TreeItemRenderProps<TId>) => React.ReactNode;
11
+ }
12
+ export declare function TreeItem<TId extends string = string>({ node, depth, selectedId, expandedIds, onSelect, onToggleExpand, renderItem, }: TreeItemProps<TId>): React.JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=TreeItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeItem.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEjE,UAAU,aAAa,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IACjD,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CACnE;AAED,wBAAgB,QAAQ,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,EAAE,EACpD,IAAI,EACJ,KAAK,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,UAAU,GACX,EAAE,aAAa,CAAC,GAAG,CAAC,qBA6DpB"}
@@ -0,0 +1,31 @@
1
+ import { Box, Stack } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { IconButton } from '../../components/icon-button';
4
+ import { SettingsRow } from '../settings-row';
5
+ export function TreeItem({ node, depth, selectedId, expandedIds, onSelect, onToggleExpand, renderItem, }) {
6
+ const hasChildren = node.children !== undefined && node.children.length > 0;
7
+ const isExpanded = expandedIds.includes(node.id);
8
+ const isSelected = selectedId === node.id;
9
+ const renderContent = () => {
10
+ if (renderItem) {
11
+ return renderItem({
12
+ node,
13
+ depth,
14
+ selected: isSelected,
15
+ expanded: isExpanded,
16
+ hasChildren,
17
+ });
18
+ }
19
+ return (<SettingsRow title={node.label} control={<Stack direction="row" gap="xs" align="center">
20
+ {node.actions}
21
+ {hasChildren ? (<IconButton icon={{ name: isExpanded ? 'chevron-down-outline' : 'chevron-forward-outline' }} label={isExpanded ? 'Collapse' : 'Expand'} onPress={() => onToggleExpand(node.id)} size="s" emphasis="ghost"/>) : null}
22
+ </Stack>} meta={node.meta} onPress={() => onSelect?.(node.id)} disabled={node.disabled}/>);
23
+ };
24
+ return (<Box>
25
+ <Box style={{ paddingLeft: depth * 16 }}>{renderContent()}</Box>
26
+ {hasChildren && isExpanded ? (<Box>
27
+ {node.children?.map((child) => (<TreeItem key={child.id} depth={depth + 1} expandedIds={expandedIds} node={child} onSelect={onSelect} onToggleExpand={onToggleExpand} renderItem={renderItem} selectedId={selectedId}/>))}
28
+ </Box>) : null}
29
+ </Box>);
30
+ }
31
+ //# sourceMappingURL=TreeItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeItem.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeItem.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { TreeViewProps } from './types';
3
+ export declare function TreeView<TId extends string = string>({ nodes, selectedId, expandedIds: controlledExpandedIds, defaultExpandedIds, onSelect, onExpandedChange, renderItem, testID, }: TreeViewProps<TId>): React.JSX.Element;
4
+ //# sourceMappingURL=TreeView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,EAAE,EACpD,KAAK,EACL,UAAU,EACV,WAAW,EAAE,qBAAqB,EAClC,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,MAAM,GACP,EAAE,aAAa,CAAC,GAAG,CAAC,qBAkCpB"}
@@ -0,0 +1,20 @@
1
+ import { Stack } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { TreeItem } from './TreeItem';
4
+ export function TreeView({ nodes, selectedId, expandedIds: controlledExpandedIds, defaultExpandedIds, onSelect, onExpandedChange, renderItem, testID, }) {
5
+ const [internalExpandedIds, setInternalExpandedIds] = React.useState(defaultExpandedIds ?? []);
6
+ const isControlled = controlledExpandedIds !== undefined;
7
+ const expandedIds = isControlled ? controlledExpandedIds : internalExpandedIds;
8
+ const handleToggleExpand = (id) => {
9
+ const isExpanded = expandedIds.includes(id);
10
+ const newIds = isExpanded ? expandedIds.filter((eid) => eid !== id) : [...expandedIds, id];
11
+ if (!isControlled) {
12
+ setInternalExpandedIds(newIds);
13
+ }
14
+ onExpandedChange?.(newIds);
15
+ };
16
+ return (<Stack gap="none" testID={testID}>
17
+ {nodes.map((node) => (<TreeItem key={node.id} depth={0} expandedIds={expandedIds} node={node} onSelect={onSelect} onToggleExpand={handleToggleExpand} renderItem={renderItem} selectedId={selectedId}/>))}
18
+ </Stack>);
19
+ }
20
+ //# sourceMappingURL=TreeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,UAAU,QAAQ,CAA8B,EACpD,KAAK,EACL,UAAU,EACV,WAAW,EAAE,qBAAqB,EAClC,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,MAAM,GACa;IACnB,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAClE,kBAAkB,IAAI,EAAE,CACzB,CAAC;IAEF,MAAM,YAAY,GAAG,qBAAqB,KAAK,SAAS,CAAC;IACzD,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE/E,MAAM,kBAAkB,GAAG,CAAC,EAAO,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3F,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC/B;MAAA,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,CAAC,QAAQ,CACP,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,KAAK,CAAC,CAAC,CAAC,CAAC,CACT,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,cAAc,CAAC,CAAC,kBAAkB,CAAC,CACnC,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,UAAU,CAAC,CAAC,UAAU,CAAC,EACvB,CACH,CAAC,CACJ;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './TreeItem';
2
+ export * from './TreeView';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './TreeItem';
2
+ export * from './TreeView';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ButtonIconSpec } from '@ankhorage/surface';
2
+ import type { ReactNode } from 'react';
3
+ export interface TreeItemNode<TId extends string = string> {
4
+ id: TId;
5
+ label: ReactNode;
6
+ icon?: ButtonIconSpec;
7
+ children?: readonly TreeItemNode<TId>[];
8
+ disabled?: boolean;
9
+ meta?: ReactNode;
10
+ actions?: ReactNode;
11
+ }
12
+ export interface TreeItemRenderProps<TId extends string = string> {
13
+ node: TreeItemNode<TId>;
14
+ depth: number;
15
+ selected: boolean;
16
+ expanded: boolean;
17
+ hasChildren: boolean;
18
+ }
19
+ export interface TreeViewProps<TId extends string = string> {
20
+ nodes: readonly TreeItemNode<TId>[];
21
+ selectedId?: TId;
22
+ expandedIds?: readonly TId[];
23
+ defaultExpandedIds?: readonly TId[];
24
+ onSelect?: (id: TId) => void;
25
+ onExpandedChange?: (ids: readonly TId[]) => void;
26
+ renderItem?: (props: TreeItemRenderProps<TId>) => ReactNode;
27
+ testID?: string;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,YAAY,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IACvD,EAAE,EAAE,GAAG,CAAC;IACR,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IAC9D,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IACxD,KAAK,EAAE,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,KAAK,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "0.0.4",
4
+ "version": "0.1.0",
5
5
  "description": "Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.",
6
6
  "homepage": "https://github.com/ankhorage/zora#readme",
7
7
  "bugs": {
@@ -26,6 +26,7 @@
26
26
  ],
27
27
  "peerDependencies": {
28
28
  "@expo/vector-icons": ">=14.0.0",
29
+ "@react-native-picker/picker": ">=2.0.0",
29
30
  "expo-font": ">=14.0.4",
30
31
  "react": ">=18.2.0",
31
32
  "react-native": ">=0.72.0"
@@ -34,6 +35,9 @@
34
35
  "@expo/vector-icons": {
35
36
  "optional": true
36
37
  },
38
+ "@react-native-picker/picker": {
39
+ "optional": true
40
+ },
37
41
  "expo-font": {
38
42
  "optional": true
39
43
  }
@@ -75,6 +79,7 @@
75
79
  "@ankhorage/devtools": "^1.0.0",
76
80
  "@changesets/cli": "^2.30.0",
77
81
  "@expo/vector-icons": "^15.0.3",
82
+ "@react-native-picker/picker": "^2.11.0",
78
83
  "@types/bun": "^1.3.8",
79
84
  "@types/node": "^25.2.3",
80
85
  "@types/react": "^19.2.14",