@ankhorage/zora 3.2.0 → 3.3.2

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 (107) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/card/meta.d.ts +1 -1
  3. package/dist/foundation/meta.d.ts +4 -4
  4. package/dist/index.d.ts +5 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/layout/screen/meta.d.ts +1 -1
  9. package/dist/layout/screen-section/meta.d.ts +1 -1
  10. package/dist/metadata/allowedChildren.d.ts +4 -3
  11. package/dist/metadata/allowedChildren.d.ts.map +1 -1
  12. package/dist/metadata/allowedChildren.js +14 -0
  13. package/dist/metadata/allowedChildren.js.map +1 -1
  14. package/dist/metadata/bindableComponentMeta.d.ts +2 -2
  15. package/dist/metadata/componentMeta.d.ts.map +1 -1
  16. package/dist/metadata/componentMeta.js +4 -0
  17. package/dist/metadata/componentMeta.js.map +1 -1
  18. package/dist/metadata/index.d.ts +1 -1
  19. package/dist/metadata/index.d.ts.map +1 -1
  20. package/dist/metadata/index.js.map +1 -1
  21. package/dist/metadata/types.d.ts +6 -0
  22. package/dist/metadata/types.d.ts.map +1 -1
  23. package/dist/metadata/types.js.map +1 -1
  24. package/dist/patterns/content-rail/ContentRail.d.ts +10 -0
  25. package/dist/patterns/content-rail/ContentRail.d.ts.map +1 -0
  26. package/dist/patterns/content-rail/ContentRail.js +175 -0
  27. package/dist/patterns/content-rail/ContentRail.js.map +1 -0
  28. package/dist/patterns/content-rail/index.d.ts +3 -0
  29. package/dist/patterns/content-rail/index.d.ts.map +1 -0
  30. package/dist/patterns/content-rail/index.js +2 -0
  31. package/dist/patterns/content-rail/index.js.map +1 -0
  32. package/dist/patterns/content-rail/meta.d.ts +143 -0
  33. package/dist/patterns/content-rail/meta.d.ts.map +1 -0
  34. package/dist/patterns/content-rail/meta.js +130 -0
  35. package/dist/patterns/content-rail/meta.js.map +1 -0
  36. package/dist/patterns/content-rail/resolveContentRailItemWidth.d.ts +10 -0
  37. package/dist/patterns/content-rail/resolveContentRailItemWidth.d.ts.map +1 -0
  38. package/dist/patterns/content-rail/resolveContentRailItemWidth.js +25 -0
  39. package/dist/patterns/content-rail/resolveContentRailItemWidth.js.map +1 -0
  40. package/dist/patterns/content-rail/resolveContentRailPhysicalOffset.d.ts +6 -0
  41. package/dist/patterns/content-rail/resolveContentRailPhysicalOffset.d.ts.map +1 -0
  42. package/dist/patterns/content-rail/resolveContentRailPhysicalOffset.js +5 -0
  43. package/dist/patterns/content-rail/resolveContentRailPhysicalOffset.js.map +1 -0
  44. package/dist/patterns/content-rail/resolveContentRailState.d.ts +18 -0
  45. package/dist/patterns/content-rail/resolveContentRailState.d.ts.map +1 -0
  46. package/dist/patterns/content-rail/resolveContentRailState.js +21 -0
  47. package/dist/patterns/content-rail/resolveContentRailState.js.map +1 -0
  48. package/dist/patterns/content-rail/types.d.ts +31 -0
  49. package/dist/patterns/content-rail/types.d.ts.map +1 -0
  50. package/dist/patterns/content-rail/types.js +2 -0
  51. package/dist/patterns/content-rail/types.js.map +1 -0
  52. package/dist/patterns/content-rail/useContentRailReducedMotion.d.ts +3 -0
  53. package/dist/patterns/content-rail/useContentRailReducedMotion.d.ts.map +1 -0
  54. package/dist/patterns/content-rail/useContentRailReducedMotion.js +21 -0
  55. package/dist/patterns/content-rail/useContentRailReducedMotion.js.map +1 -0
  56. package/dist/patterns/message-bubble/meta.d.ts +1 -1
  57. package/dist/patterns/missing-element/MissingElement.d.ts +10 -0
  58. package/dist/patterns/missing-element/MissingElement.d.ts.map +1 -0
  59. package/dist/patterns/missing-element/MissingElement.js +41 -0
  60. package/dist/patterns/missing-element/MissingElement.js.map +1 -0
  61. package/dist/patterns/missing-element/index.d.ts +3 -0
  62. package/dist/patterns/missing-element/index.d.ts.map +1 -0
  63. package/dist/patterns/missing-element/index.js +2 -0
  64. package/dist/patterns/missing-element/index.js.map +1 -0
  65. package/dist/patterns/missing-element/meta.d.ts +68 -0
  66. package/dist/patterns/missing-element/meta.d.ts.map +1 -0
  67. package/dist/patterns/missing-element/meta.js +59 -0
  68. package/dist/patterns/missing-element/meta.js.map +1 -0
  69. package/dist/patterns/missing-element/types.d.ts +9 -0
  70. package/dist/patterns/missing-element/types.d.ts.map +1 -0
  71. package/dist/patterns/missing-element/types.js +2 -0
  72. package/dist/patterns/missing-element/types.js.map +1 -0
  73. package/dist/patterns/notice/meta.d.ts +1 -1
  74. package/dist/patterns/panel/meta.d.ts +1 -1
  75. package/dist/patterns/post-card/meta.d.ts +1 -1
  76. package/dist/patterns/reader/meta.d.ts +2 -2
  77. package/dist/patterns/scanner/meta.d.ts +2 -2
  78. package/dist/registry.d.ts.map +1 -1
  79. package/dist/registry.js +4 -0
  80. package/dist/registry.js.map +1 -1
  81. package/package.json +3 -3
  82. package/src/expo57Migration.test.ts +16 -1
  83. package/src/index.ts +13 -0
  84. package/src/interactionPolicy.test.ts +22 -0
  85. package/src/metadata/allowedChildren.ts +15 -0
  86. package/src/metadata/componentMeta.test.ts +50 -0
  87. package/src/metadata/componentMeta.ts +4 -0
  88. package/src/metadata/index.ts +1 -0
  89. package/src/metadata/types.ts +7 -0
  90. package/src/patterns/content-rail/ContentRail.test.ts +44 -0
  91. package/src/patterns/content-rail/ContentRail.tsx +245 -0
  92. package/src/patterns/content-rail/index.ts +10 -0
  93. package/src/patterns/content-rail/meta.ts +133 -0
  94. package/src/patterns/content-rail/resolveContentRailItemWidth.test.ts +77 -0
  95. package/src/patterns/content-rail/resolveContentRailItemWidth.ts +39 -0
  96. package/src/patterns/content-rail/resolveContentRailPhysicalOffset.test.ts +29 -0
  97. package/src/patterns/content-rail/resolveContentRailPhysicalOffset.ts +12 -0
  98. package/src/patterns/content-rail/resolveContentRailState.test.ts +68 -0
  99. package/src/patterns/content-rail/resolveContentRailState.ts +36 -0
  100. package/src/patterns/content-rail/types.ts +35 -0
  101. package/src/patterns/content-rail/useContentRailReducedMotion.ts +28 -0
  102. package/src/patterns/missing-element/MissingElement.test.ts +66 -0
  103. package/src/patterns/missing-element/MissingElement.tsx +73 -0
  104. package/src/patterns/missing-element/index.ts +2 -0
  105. package/src/patterns/missing-element/meta.ts +62 -0
  106. package/src/patterns/missing-element/types.ts +9 -0
  107. package/src/registry.ts +4 -0
@@ -0,0 +1,21 @@
1
+ export function resolveContentRailState({ contentWidth, gap, itemCount, itemWidth, logicalOffset, viewportWidth, }) {
2
+ const maxOffset = Math.max(0, contentWidth - viewportWidth);
3
+ const offset = Math.min(Math.max(0, logicalOffset), maxOffset);
4
+ const stride = itemWidth + gap;
5
+ const firstVisibleIndex = stride > 0 ? Math.min(itemCount - 1, Math.floor(offset / stride)) : 0;
6
+ const lastVisibleIndex = stride > 0
7
+ ? Math.min(itemCount - 1, Math.max(0, Math.ceil((offset + viewportWidth) / stride) - 1))
8
+ : 0;
9
+ const anchorIndex = stride > 0 ? Math.round(offset / stride) : 0;
10
+ return {
11
+ anchorIndex: Math.min(Math.max(0, anchorIndex), Math.max(0, itemCount - 1)),
12
+ canGoNext: itemCount > 0 && offset < maxOffset - 1,
13
+ canGoPrevious: itemCount > 0 && offset > 1,
14
+ firstVisibleIndex: itemCount === 0 ? -1 : firstVisibleIndex,
15
+ lastVisibleIndex: itemCount === 0 ? -1 : lastVisibleIndex,
16
+ maxOffset,
17
+ offset,
18
+ stride,
19
+ };
20
+ }
21
+ //# sourceMappingURL=resolveContentRailState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveContentRailState.js","sourceRoot":"","sources":["../../../src/patterns/content-rail/resolveContentRailState.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CAAC,EACtC,YAAY,EACZ,GAAG,EACH,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,GAQd;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC;IAC/B,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,gBAAgB,GACpB,MAAM,GAAG,CAAC;QACR,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;QAC3E,SAAS,EAAE,SAAS,GAAG,CAAC,IAAI,MAAM,GAAG,SAAS,GAAG,CAAC;QAClD,aAAa,EAAE,SAAS,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;QAC1C,iBAAiB,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAC3D,gBAAgB,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QACzD,SAAS;QACT,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC","sourcesContent":["export function resolveContentRailState({\n contentWidth,\n gap,\n itemCount,\n itemWidth,\n logicalOffset,\n viewportWidth,\n}: {\n contentWidth: number;\n gap: number;\n itemCount: number;\n itemWidth: number;\n logicalOffset: number;\n viewportWidth: number;\n}) {\n const maxOffset = Math.max(0, contentWidth - viewportWidth);\n const offset = Math.min(Math.max(0, logicalOffset), maxOffset);\n const stride = itemWidth + gap;\n const firstVisibleIndex = stride > 0 ? Math.min(itemCount - 1, Math.floor(offset / stride)) : 0;\n const lastVisibleIndex =\n stride > 0\n ? Math.min(itemCount - 1, Math.max(0, Math.ceil((offset + viewportWidth) / stride) - 1))\n : 0;\n const anchorIndex = stride > 0 ? Math.round(offset / stride) : 0;\n\n return {\n anchorIndex: Math.min(Math.max(0, anchorIndex), Math.max(0, itemCount - 1)),\n canGoNext: itemCount > 0 && offset < maxOffset - 1,\n canGoPrevious: itemCount > 0 && offset > 1,\n firstVisibleIndex: itemCount === 0 ? -1 : firstVisibleIndex,\n lastVisibleIndex: itemCount === 0 ? -1 : lastVisibleIndex,\n maxOffset,\n offset,\n stride,\n };\n}\n"]}
@@ -0,0 +1,31 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';
3
+ export type ContentRailDirection = 'auto' | 'ltr' | 'rtl';
4
+ export type ContentRailItemSize = 'compact' | 'regular' | 'wide' | 'responsive';
5
+ export type ContentRailMotion = 'system' | 'animated' | 'reduced';
6
+ export type ContentRailSpacing = 'none' | 'xs' | 's' | 'm' | 'l' | 'xl';
7
+ export interface ContentRailControlPressEvent {
8
+ direction: 'previous' | 'next';
9
+ targetIndex: number;
10
+ }
11
+ export interface ContentRailVisibleRangeChangeEvent {
12
+ firstVisibleIndex: number;
13
+ lastVisibleIndex: number;
14
+ itemCount: number;
15
+ }
16
+ export interface ContentRailProps extends ZoraBaseProps {
17
+ children?: ReactNode;
18
+ itemSize?: ContentRailItemSize;
19
+ gap?: ContentRailSpacing;
20
+ padding?: ContentRailSpacing;
21
+ peek?: number;
22
+ showControls?: boolean;
23
+ direction?: ContentRailDirection;
24
+ motion?: ContentRailMotion;
25
+ accessibilityLabel?: string;
26
+ previousLabel?: string;
27
+ nextLabel?: string;
28
+ onControlPress?: (event: ContentRailControlPressEvent) => void | Promise<void>;
29
+ onVisibleRangeChange?: (event: ContentRailVisibleRangeChangeEvent) => void | Promise<void>;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/content-rail/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC1D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;AAChF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAExE,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kCAAkC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,kCAAkC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/content-rail/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ReactNode } from 'react';\n\nimport type { ZoraBaseProps } from '../../theme/ZoraBaseProps';\n\nexport type ContentRailDirection = 'auto' | 'ltr' | 'rtl';\nexport type ContentRailItemSize = 'compact' | 'regular' | 'wide' | 'responsive';\nexport type ContentRailMotion = 'system' | 'animated' | 'reduced';\nexport type ContentRailSpacing = 'none' | 'xs' | 's' | 'm' | 'l' | 'xl';\n\nexport interface ContentRailControlPressEvent {\n direction: 'previous' | 'next';\n targetIndex: number;\n}\n\nexport interface ContentRailVisibleRangeChangeEvent {\n firstVisibleIndex: number;\n lastVisibleIndex: number;\n itemCount: number;\n}\n\nexport interface ContentRailProps extends ZoraBaseProps {\n children?: ReactNode;\n itemSize?: ContentRailItemSize;\n gap?: ContentRailSpacing;\n padding?: ContentRailSpacing;\n peek?: number;\n showControls?: boolean;\n direction?: ContentRailDirection;\n motion?: ContentRailMotion;\n accessibilityLabel?: string;\n previousLabel?: string;\n nextLabel?: string;\n onControlPress?: (event: ContentRailControlPressEvent) => void | Promise<void>;\n onVisibleRangeChange?: (event: ContentRailVisibleRangeChangeEvent) => void | Promise<void>;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ContentRailMotion } from './types';
2
+ export declare function useContentRailReducedMotion(motion: ContentRailMotion): boolean;
3
+ //# sourceMappingURL=useContentRailReducedMotion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useContentRailReducedMotion.d.ts","sourceRoot":"","sources":["../../../src/patterns/content-rail/useContentRailReducedMotion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAsB9E"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { AccessibilityInfo } from 'react-native';
3
+ export function useContentRailReducedMotion(motion) {
4
+ const [systemReducedMotion, setSystemReducedMotion] = React.useState(false);
5
+ React.useEffect(() => {
6
+ if (motion !== 'system')
7
+ return;
8
+ let active = true;
9
+ void AccessibilityInfo.isReduceMotionEnabled().then((enabled) => {
10
+ if (active)
11
+ setSystemReducedMotion(enabled);
12
+ });
13
+ const subscription = AccessibilityInfo.addEventListener('reduceMotionChanged', setSystemReducedMotion);
14
+ return () => {
15
+ active = false;
16
+ subscription.remove();
17
+ };
18
+ }, [motion]);
19
+ return motion === 'reduced' || (motion === 'system' && systemReducedMotion);
20
+ }
21
+ //# sourceMappingURL=useContentRailReducedMotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useContentRailReducedMotion.js","sourceRoot":"","sources":["../../../src/patterns/content-rail/useContentRailReducedMotion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAIjD,MAAM,UAAU,2BAA2B,CAAC,MAAyB;IACnE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO;QAEhC,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9D,IAAI,MAAM;gBAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,gBAAgB,CACrD,qBAAqB,EACrB,sBAAsB,CACvB,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;YACf,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,mBAAmB,CAAC,CAAC;AAC9E,CAAC","sourcesContent":["import React from 'react';\nimport { AccessibilityInfo } from 'react-native';\n\nimport type { ContentRailMotion } from './types';\n\nexport function useContentRailReducedMotion(motion: ContentRailMotion): boolean {\n const [systemReducedMotion, setSystemReducedMotion] = React.useState(false);\n\n React.useEffect(() => {\n if (motion !== 'system') return;\n\n let active = true;\n void AccessibilityInfo.isReduceMotionEnabled().then((enabled) => {\n if (active) setSystemReducedMotion(enabled);\n });\n const subscription = AccessibilityInfo.addEventListener(\n 'reduceMotionChanged',\n setSystemReducedMotion,\n );\n\n return () => {\n active = false;\n subscription.remove();\n };\n }, [motion]);\n\n return motion === 'reduced' || (motion === 'system' && systemReducedMotion);\n}\n"]}
@@ -3,7 +3,7 @@ export declare const messageBubbleMeta: {
3
3
  readonly category: "pattern";
4
4
  readonly description: "Chat/message bubble with direction, author, text, meta, and delivery status presentation.";
5
5
  readonly directManifestNode: true;
6
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
6
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
7
7
  readonly blueprint: {
8
8
  readonly label: "Message bubble";
9
9
  readonly icon: {
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { MissingElementProps } from './types';
3
+ /***
4
+ * Draft-only marker that preserves an unsupported manifest region without faking its capability.
5
+ *
6
+ * `MissingElement` is intentionally non-interactive and release-blocking in component metadata.
7
+ * Replace it with a released semantic ZORA element before publishing a production template.
8
+ */
9
+ export declare const MissingElement: (props: MissingElementProps) => React.ReactElement | null;
10
+ //# sourceMappingURL=MissingElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingElement.d.ts","sourceRoot":"","sources":["../../../src/patterns/missing-element/MissingElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA0DnD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,2DAA0C,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+ import { Badge } from '../../components/badge';
4
+ import { Text } from '../../components/text';
5
+ import { Box, Stack } from '../../foundation';
6
+ import { useZoraTheme } from '../../theme/useZoraTheme';
7
+ import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
8
+ /***
9
+ * Renders the visible, non-interactive body of a draft missing-element marker.
10
+ */
11
+ function MissingElementInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, requestedCapability, reason, evidenceId, minimumWidth, minimumHeight, testID, }) {
12
+ const { theme } = useZoraTheme();
13
+ const accessibilityLabel = `Missing element: ${requestedCapability}. ${reason}`;
14
+ return (<Box accessibilityLabel={accessibilityLabel} accessibilityRole="text" accessible bg={theme.semantics.warning.softBg} borderColor={theme.semantics.warning.base} borderWidth={1} minHeight={minimumHeight} minWidth={minimumWidth} p="m" radius="m" style={styles.root} testID={testID}>
15
+ <Stack gap="xs">
16
+ <Badge color="warning">Missing element</Badge>
17
+ <Text variant="label" weight="semiBold">
18
+ {requestedCapability}
19
+ </Text>
20
+ <Text emphasis="muted" variant="bodySmall">
21
+ {reason}
22
+ </Text>
23
+ {evidenceId ? (<Text emphasis="subtle" variant="caption">
24
+ Evidence: {evidenceId}
25
+ </Text>) : null}
26
+ </Stack>
27
+ </Box>);
28
+ }
29
+ const styles = StyleSheet.create({
30
+ root: {
31
+ borderStyle: 'dashed',
32
+ },
33
+ });
34
+ /***
35
+ * Draft-only marker that preserves an unsupported manifest region without faking its capability.
36
+ *
37
+ * `MissingElement` is intentionally non-interactive and release-blocking in component metadata.
38
+ * Replace it with a released semantic ZORA element before publishing a production template.
39
+ */
40
+ export const MissingElement = withZoraThemeScope(MissingElementInner);
41
+ //# sourceMappingURL=MissingElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingElement.js","sourceRoot":"","sources":["../../../src/patterns/missing-element/MissingElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE;;GAEG;AACH,SAAS,mBAAmB,CAAC,EAC3B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,mBAAmB,EACnB,MAAM,EACN,UAAU,EACV,YAAY,EACZ,aAAa,EACb,MAAM,GACc;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,kBAAkB,GAAG,oBAAoB,mBAAmB,KAAK,MAAM,EAAE,CAAC;IAEhF,OAAO,CACL,CAAC,GAAG,CACF,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CACvC,iBAAiB,CAAC,MAAM,CACxB,UAAU,CACV,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CACnC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAC1C,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,SAAS,CAAC,CAAC,aAAa,CAAC,CACzB,QAAQ,CAAC,CAAC,YAAY,CAAC,CACvB,CAAC,CAAC,GAAG,CACL,MAAM,CAAC,GAAG,CACV,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACnB,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CACb;QAAA,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAC7C;QAAA,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CACrC;UAAA,CAAC,mBAAmB,CACtB;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CACxC;UAAA,CAAC,MAAM,CACT;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,UAAU,CAAC,CAAC,CAAC,CACZ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CACvC;sBAAU,CAAC,UAAU,CACvB;UAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACV;MAAA,EAAE,KAAK,CACT;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,WAAW,EAAE,QAAQ;KACtB;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { StyleSheet } from 'react-native';\n\nimport { Badge } from '../../components/badge';\nimport { Text } from '../../components/text';\nimport { Box, Stack } from '../../foundation';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { MissingElementProps } from './types';\n\n/***\n * Renders the visible, non-interactive body of a draft missing-element marker.\n */\nfunction MissingElementInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n requestedCapability,\n reason,\n evidenceId,\n minimumWidth,\n minimumHeight,\n testID,\n}: MissingElementProps) {\n const { theme } = useZoraTheme();\n const accessibilityLabel = `Missing element: ${requestedCapability}. ${reason}`;\n\n return (\n <Box\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"text\"\n accessible\n bg={theme.semantics.warning.softBg}\n borderColor={theme.semantics.warning.base}\n borderWidth={1}\n minHeight={minimumHeight}\n minWidth={minimumWidth}\n p=\"m\"\n radius=\"m\"\n style={styles.root}\n testID={testID}\n >\n <Stack gap=\"xs\">\n <Badge color=\"warning\">Missing element</Badge>\n <Text variant=\"label\" weight=\"semiBold\">\n {requestedCapability}\n </Text>\n <Text emphasis=\"muted\" variant=\"bodySmall\">\n {reason}\n </Text>\n {evidenceId ? (\n <Text emphasis=\"subtle\" variant=\"caption\">\n Evidence: {evidenceId}\n </Text>\n ) : null}\n </Stack>\n </Box>\n );\n}\n\nconst styles = StyleSheet.create({\n root: {\n borderStyle: 'dashed',\n },\n});\n\n/***\n * Draft-only marker that preserves an unsupported manifest region without faking its capability.\n *\n * `MissingElement` is intentionally non-interactive and release-blocking in component metadata.\n * Replace it with a released semantic ZORA element before publishing a production template.\n */\nexport const MissingElement = withZoraThemeScope(MissingElementInner);\n"]}
@@ -0,0 +1,3 @@
1
+ export { MissingElement } from './MissingElement';
2
+ export type { MissingElementProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/missing-element/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MissingElement } from './MissingElement';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/missing-element/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["export { MissingElement } from './MissingElement';\nexport type { MissingElementProps } from './types';\n"]}
@@ -0,0 +1,68 @@
1
+ export declare const missingElementMeta: {
2
+ readonly name: "MissingElement";
3
+ readonly category: "pattern";
4
+ readonly description: "Draft-only marker for an unresolved semantic ZORA capability that must be replaced before release.";
5
+ readonly directManifestNode: true;
6
+ readonly allowedChildren: readonly [];
7
+ readonly manifestPolicy: {
8
+ readonly kind: "unresolved-element";
9
+ readonly availability: "draft-only";
10
+ readonly releaseGate: "blocked";
11
+ };
12
+ readonly blueprint: {
13
+ readonly label: "Missing element";
14
+ readonly defaultProps: {
15
+ readonly requestedCapability: "Unresolved interface capability";
16
+ readonly reason: "No matching ZORA element is available.";
17
+ readonly minimumWidth: 240;
18
+ readonly minimumHeight: 160;
19
+ };
20
+ };
21
+ readonly props: {
22
+ readonly requestedCapability: {
23
+ readonly type: "string";
24
+ readonly category: "Gap";
25
+ readonly label: "Requested capability";
26
+ readonly default: "Unresolved interface capability";
27
+ readonly authoring: {
28
+ readonly authority: "instance";
29
+ };
30
+ };
31
+ readonly reason: {
32
+ readonly type: "string";
33
+ readonly category: "Gap";
34
+ readonly label: "Reason";
35
+ readonly default: "No matching ZORA element is available.";
36
+ readonly authoring: {
37
+ readonly authority: "instance";
38
+ };
39
+ };
40
+ readonly evidenceId: {
41
+ readonly type: "string";
42
+ readonly category: "Evidence";
43
+ readonly label: "Evidence ID";
44
+ readonly authoring: {
45
+ readonly authority: "instance";
46
+ };
47
+ };
48
+ readonly minimumWidth: {
49
+ readonly type: "number";
50
+ readonly category: "Layout";
51
+ readonly label: "Minimum width";
52
+ readonly default: 240;
53
+ readonly authoring: {
54
+ readonly authority: "instance";
55
+ };
56
+ };
57
+ readonly minimumHeight: {
58
+ readonly type: "number";
59
+ readonly category: "Layout";
60
+ readonly label: "Minimum height";
61
+ readonly default: 160;
62
+ readonly authoring: {
63
+ readonly authority: "instance";
64
+ };
65
+ };
66
+ };
67
+ };
68
+ //# sourceMappingURL=meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/patterns/missing-element/meta.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDO,CAAC"}
@@ -0,0 +1,59 @@
1
+ const instanceAuthoring = { authority: 'instance' };
2
+ export const missingElementMeta = {
3
+ name: 'MissingElement',
4
+ category: 'pattern',
5
+ description: 'Draft-only marker for an unresolved semantic ZORA capability that must be replaced before release.',
6
+ directManifestNode: true,
7
+ allowedChildren: [],
8
+ manifestPolicy: {
9
+ kind: 'unresolved-element',
10
+ availability: 'draft-only',
11
+ releaseGate: 'blocked',
12
+ },
13
+ blueprint: {
14
+ label: 'Missing element',
15
+ defaultProps: {
16
+ requestedCapability: 'Unresolved interface capability',
17
+ reason: 'No matching ZORA element is available.',
18
+ minimumWidth: 240,
19
+ minimumHeight: 160,
20
+ },
21
+ },
22
+ props: {
23
+ requestedCapability: {
24
+ type: 'string',
25
+ category: 'Gap',
26
+ label: 'Requested capability',
27
+ default: 'Unresolved interface capability',
28
+ authoring: instanceAuthoring,
29
+ },
30
+ reason: {
31
+ type: 'string',
32
+ category: 'Gap',
33
+ label: 'Reason',
34
+ default: 'No matching ZORA element is available.',
35
+ authoring: instanceAuthoring,
36
+ },
37
+ evidenceId: {
38
+ type: 'string',
39
+ category: 'Evidence',
40
+ label: 'Evidence ID',
41
+ authoring: instanceAuthoring,
42
+ },
43
+ minimumWidth: {
44
+ type: 'number',
45
+ category: 'Layout',
46
+ label: 'Minimum width',
47
+ default: 240,
48
+ authoring: instanceAuthoring,
49
+ },
50
+ minimumHeight: {
51
+ type: 'number',
52
+ category: 'Layout',
53
+ label: 'Minimum height',
54
+ default: 160,
55
+ authoring: instanceAuthoring,
56
+ },
57
+ },
58
+ };
59
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/patterns/missing-element/meta.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,EAAE,SAAS,EAAE,UAAU,EAAW,CAAC;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,SAAS;IACnB,WAAW,EACT,oGAAoG;IACtG,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE;QACd,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,SAAS;KACvB;IACD,SAAS,EAAE;QACT,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE;YACZ,mBAAmB,EAAE,iCAAiC;YACtD,MAAM,EAAE,wCAAwC;YAChD,YAAY,EAAE,GAAG;YACjB,aAAa,EAAE,GAAG;SACnB;KACF;IACD,KAAK,EAAE;QACL,mBAAmB,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,iCAAiC;YAC1C,SAAS,EAAE,iBAAiB;SAC7B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,wCAAwC;YACjD,SAAS,EAAE,iBAAiB;SAC7B;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,iBAAiB;SAC7B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,iBAAiB;SAC7B;QACD,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,iBAAiB;SAC7B;KACF;CACmC,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../metadata';\n\nconst instanceAuthoring = { authority: 'instance' } as const;\n\nexport const missingElementMeta = {\n name: 'MissingElement',\n category: 'pattern',\n description:\n 'Draft-only marker for an unresolved semantic ZORA capability that must be replaced before release.',\n directManifestNode: true,\n allowedChildren: [],\n manifestPolicy: {\n kind: 'unresolved-element',\n availability: 'draft-only',\n releaseGate: 'blocked',\n },\n blueprint: {\n label: 'Missing element',\n defaultProps: {\n requestedCapability: 'Unresolved interface capability',\n reason: 'No matching ZORA element is available.',\n minimumWidth: 240,\n minimumHeight: 160,\n },\n },\n props: {\n requestedCapability: {\n type: 'string',\n category: 'Gap',\n label: 'Requested capability',\n default: 'Unresolved interface capability',\n authoring: instanceAuthoring,\n },\n reason: {\n type: 'string',\n category: 'Gap',\n label: 'Reason',\n default: 'No matching ZORA element is available.',\n authoring: instanceAuthoring,\n },\n evidenceId: {\n type: 'string',\n category: 'Evidence',\n label: 'Evidence ID',\n authoring: instanceAuthoring,\n },\n minimumWidth: {\n type: 'number',\n category: 'Layout',\n label: 'Minimum width',\n default: 240,\n authoring: instanceAuthoring,\n },\n minimumHeight: {\n type: 'number',\n category: 'Layout',\n label: 'Minimum height',\n default: 160,\n authoring: instanceAuthoring,\n },\n },\n} as const satisfies ZoraComponentMeta;\n"]}
@@ -0,0 +1,9 @@
1
+ import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';
2
+ export interface MissingElementProps extends ZoraBaseProps {
3
+ requestedCapability: string;
4
+ reason: string;
5
+ evidenceId?: string;
6
+ minimumWidth?: number;
7
+ minimumHeight?: number;
8
+ }
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/missing-element/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/missing-element/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';\n\nexport interface MissingElementProps extends ZoraBaseProps {\n requestedCapability: string;\n reason: string;\n evidenceId?: string;\n minimumWidth?: number;\n minimumHeight?: number;\n}\n"]}
@@ -2,7 +2,7 @@ export declare const noticeMeta: {
2
2
  readonly name: "Notice";
3
3
  readonly category: "pattern";
4
4
  readonly directManifestNode: true;
5
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
5
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
6
6
  readonly blueprint: {
7
7
  readonly label: "Notice";
8
8
  readonly defaultProps: {
@@ -2,7 +2,7 @@ export declare const panelMeta: {
2
2
  readonly name: "Panel";
3
3
  readonly category: "pattern";
4
4
  readonly directManifestNode: true;
5
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
5
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
6
6
  readonly blueprint: {
7
7
  readonly label: "Panel";
8
8
  readonly defaultProps: {
@@ -3,7 +3,7 @@ export declare const postCardMeta: {
3
3
  readonly category: "pattern";
4
4
  readonly description: "Social/content post card with author identity, body, media, actions, and comment previews.";
5
5
  readonly directManifestNode: true;
6
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
6
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
7
7
  readonly blueprint: {
8
8
  readonly label: "Post card";
9
9
  readonly icon: {
@@ -125,11 +125,11 @@ export declare const readerSurfaceMeta: {
125
125
  };
126
126
  readonly headerActions: {
127
127
  readonly label: "Header actions";
128
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
128
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
129
129
  };
130
130
  readonly footerActions: {
131
131
  readonly label: "Footer actions";
132
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
132
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
133
133
  };
134
134
  };
135
135
  readonly props: {
@@ -105,7 +105,7 @@ export declare const barcodeScannerViewMeta: {
105
105
  readonly category: "pattern";
106
106
  readonly description: "Composed scanner shell with permission, camera slot, scan overlay, and manual entry affordance.";
107
107
  readonly directManifestNode: true;
108
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
108
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
109
109
  readonly requirements: {
110
110
  readonly permissions: readonly [{
111
111
  readonly permission: "camera";
@@ -145,7 +145,7 @@ export declare const barcodeScannerViewMeta: {
145
145
  };
146
146
  readonly children: {
147
147
  readonly label: "Scanner footer";
148
- readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface"];
148
+ readonly allowedChildren: readonly ["Box", "Stack", "Grid", "Container", "Divider", "Text", "Heading", "Button", "ButtonGroup", "ThemeModeToggle", "Input", "Textarea", "FormField", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
149
149
  };
150
150
  };
151
151
  readonly props: {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqG/B,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AA4IhF,eAAO,MAAM,uBAAuB,EAAE,qBAAgD,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuG/B,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AA8IhF,eAAO,MAAM,uBAAuB,EAAE,qBAAgD,CAAC"}
package/dist/registry.js CHANGED
@@ -51,6 +51,7 @@ import { ForgotPasswordForm, OAuthProviderButton, OAuthProviderList, OtpForm, Si
51
51
  import { ChatListItem } from './patterns/chat-list-item';
52
52
  import { CollectionEditor } from './patterns/collection-editor';
53
53
  import { ConfirmDialog } from './patterns/confirm-dialog';
54
+ import { ContentRail } from './patterns/content-rail';
54
55
  import { DisclosureSection } from './patterns/disclosure-section';
55
56
  import { EmptyState } from './patterns/empty-state';
56
57
  import { FilterBar } from './patterns/filter-bar';
@@ -60,6 +61,7 @@ import { ImageUploadField } from './patterns/image-upload-field';
60
61
  import { InspectorField } from './patterns/inspector-field';
61
62
  import { List, ListRow, ListSection } from './patterns/list';
62
63
  import { MessageBubble } from './patterns/message-bubble';
64
+ import { MissingElement } from './patterns/missing-element';
63
65
  import { Notice } from './patterns/notice';
64
66
  import { Panel } from './patterns/panel';
65
67
  import { PostCard } from './patterns/post-card';
@@ -159,6 +161,7 @@ const _ZORA_COMPONENT_REGISTRY = {
159
161
  ChatListItem,
160
162
  CollectionEditor,
161
163
  ConfirmDialog,
164
+ ContentRail,
162
165
  DisclosureSection,
163
166
  EmptyState,
164
167
  FilterBar,
@@ -170,6 +173,7 @@ const _ZORA_COMPONENT_REGISTRY = {
170
173
  ListRow,
171
174
  ListSection,
172
175
  MessageBubble,
176
+ MissingElement,
173
177
  Notice,
174
178
  Panel,
175
179
  PostCard,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InteractionPolicyProps } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport { ActionSheet, ActionSheetItem } from './components/action-sheet';\nimport { AppBar } from './components/app-bar';\nimport { Avatar } from './components/avatar';\nimport { AvatarGroup } from './components/avatar-group';\nimport { Badge } from './components/badge';\nimport { Breadcrumbs } from './components/breadcrumbs';\nimport { Button } from './components/button';\nimport { ButtonGroup } from './components/button-group';\nimport { Card } from './components/card';\nimport { Checkbox, CheckboxGroup } from './components/checkbox';\nimport { Chip } from './components/chip';\nimport { ChipGroup } from './components/chip-group';\nimport { DataTable } from './components/data-table';\nimport { DatePicker } from './components/date-picker';\nimport { Drawer } from './components/drawer';\nimport { Form, FormActions, FormError, FormField } from './components/form';\nimport { Gradient } from './components/gradient';\nimport { Heading } from './components/heading';\nimport { Icon } from './components/icon';\nimport { IconButton } from './components/icon-button';\nimport { Image } from './components/image';\nimport { Input } from './components/input';\nimport { MediaCard } from './components/media-card';\nimport { DropdownMenu, Menu } from './components/menu';\nimport { MetricCard } from './components/metric-card';\nimport { Modal } from './components/modal';\nimport { NavigationItem } from './components/navigation-item';\nimport { NavigationList } from './components/navigation-list';\nimport { Pagination } from './components/pagination';\nimport { Progress, ProgressRing } from './components/progress';\nimport { Radio, RadioGroup } from './components/radio';\nimport { Rating } from './components/rating';\nimport { SearchBar } from './components/search-bar';\nimport { Select } from './components/select';\nimport { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from './components/skeleton';\nimport { SplashScreen } from './components/splash-screen';\nimport { Tabs } from './components/tabs';\nimport { Text } from './components/text';\nimport { Textarea } from './components/textarea';\nimport { TimePicker } from './components/time-picker';\nimport { Toast } from './components/toast';\nimport { Toolbar, ToolbarAction } from './components/toolbar';\nimport {\n Box,\n Center,\n Container,\n Divider,\n Grid,\n Inline,\n Show,\n Spacer,\n Stack,\n Surface,\n} from './foundation';\nimport { AppShell } from './layout/app-shell';\nimport { Screen } from './layout/screen';\nimport { ScreenSection } from './layout/screen-section';\nimport { SettingsLayout } from './layout/settings-layout';\nimport { SidebarLayout } from './layout/sidebar-layout';\nimport { TopbarLayout } from './layout/topbar-layout';\nimport {\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n} from './patterns/auth';\nimport { ChatListItem } from './patterns/chat-list-item';\nimport { CollectionEditor } from './patterns/collection-editor';\nimport { ConfirmDialog } from './patterns/confirm-dialog';\nimport { DisclosureSection } from './patterns/disclosure-section';\nimport { EmptyState } from './patterns/empty-state';\nimport { FilterBar } from './patterns/filter-bar';\nimport { Hero } from './patterns/hero';\nimport { ImagePreview } from './patterns/image-preview';\nimport { ImageUploadField } from './patterns/image-upload-field';\nimport { InspectorField } from './patterns/inspector-field';\nimport { List, ListRow, ListSection } from './patterns/list';\nimport { MessageBubble } from './patterns/message-bubble';\nimport { Notice } from './patterns/notice';\nimport { Panel } from './patterns/panel';\nimport { PostCard } from './patterns/post-card';\nimport { ProductCard } from './patterns/product-card';\nimport { ReaderSurface } from './patterns/reader';\nimport { ResponsivePanel } from './patterns/responsive-panel';\nimport { BarcodeScannerView, CameraPermissionView, ScanOverlay } from './patterns/scanner';\nimport { SectionHeader } from './patterns/section-header';\nimport { SelectableItem } from './patterns/selection';\nimport { SettingsRow } from './patterns/settings-row';\nimport { SwitchField } from './patterns/switch-field';\nimport { ThemeComposer } from './patterns/theme-composer';\nimport { PaletteItem, TileGrid } from './patterns/tile-grid';\nimport { Timeline } from './patterns/timeline';\nimport { TreeItem, TreeView } from './patterns/tree-view';\nimport { ZoraDrawerContent } from './patterns/zora-drawer-content';\nimport { ZoraTabBar } from './patterns/zora-tab-bar';\nimport { ThemeModeToggle } from './theme/ThemeModeToggle';\n\nexport type ZoraComponentRegistry = Readonly<Record<string, React.ElementType>>;\n\ntype ComponentPropsFor<K extends keyof typeof _ZORA_COMPONENT_REGISTRY> = React.ComponentProps<\n (typeof _ZORA_COMPONENT_REGISTRY)[K]\n>;\n\ntype AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P\n ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>\n ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps\n ? true\n : false\n : false\n : false;\n\ntype RegistryInteractionPolicyContract = {\n [K in keyof typeof _ZORA_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<\n ComponentPropsFor<K>\n >;\n};\n\ntype _AssertTrue<T extends true> = T;\ntype _RegistryInteractionPolicyCheck = _AssertTrue<\n RegistryInteractionPolicyContract[keyof typeof _ZORA_COMPONENT_REGISTRY]\n>;\n\nconst _ZORA_COMPONENT_REGISTRY = {\n ActionSheet,\n ActionSheetItem,\n AppBar,\n Avatar,\n AvatarGroup,\n Badge,\n Breadcrumbs,\n Button,\n ButtonGroup,\n Card,\n Checkbox,\n CheckboxGroup,\n Chip,\n ChipGroup,\n DataTable,\n DatePicker,\n Drawer,\n DropdownMenu,\n Form,\n FormActions,\n FormError,\n FormField,\n Gradient,\n Heading,\n Icon,\n IconButton,\n Image,\n Input,\n MediaCard,\n Menu,\n MetricCard,\n Modal,\n NavigationItem,\n NavigationList,\n Pagination,\n Progress,\n ProgressRing,\n Radio,\n RadioGroup,\n Rating,\n SearchBar,\n Select,\n Skeleton,\n SkeletonCard,\n SkeletonList,\n SkeletonText,\n SplashScreen,\n Tabs,\n Text,\n Textarea,\n TimePicker,\n Toast,\n Toolbar,\n ToolbarAction,\n ThemeModeToggle,\n Box,\n Center,\n Container,\n Divider,\n Grid,\n Inline,\n Show,\n Spacer,\n Stack,\n Surface,\n AppShell,\n Screen,\n ScreenSection,\n SettingsLayout,\n SidebarLayout,\n TopbarLayout,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n ChatListItem,\n CollectionEditor,\n ConfirmDialog,\n DisclosureSection,\n EmptyState,\n FilterBar,\n Hero,\n ImagePreview,\n ImageUploadField,\n InspectorField,\n List,\n ListRow,\n ListSection,\n MessageBubble,\n Notice,\n Panel,\n PostCard,\n ProductCard,\n ResponsivePanel,\n ReaderSurface,\n BarcodeScannerView,\n CameraPermissionView,\n ScanOverlay,\n SectionHeader,\n SelectableItem,\n SettingsRow,\n SwitchField,\n ThemeComposer,\n PaletteItem,\n TileGrid,\n Timeline,\n TreeItem,\n TreeView,\n ZoraDrawerContent,\n ZoraTabBar,\n} as const satisfies ZoraComponentRegistry;\n\nexport const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_COMPONENT_REGISTRY;\n"]}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InteractionPolicyProps } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport { ActionSheet, ActionSheetItem } from './components/action-sheet';\nimport { AppBar } from './components/app-bar';\nimport { Avatar } from './components/avatar';\nimport { AvatarGroup } from './components/avatar-group';\nimport { Badge } from './components/badge';\nimport { Breadcrumbs } from './components/breadcrumbs';\nimport { Button } from './components/button';\nimport { ButtonGroup } from './components/button-group';\nimport { Card } from './components/card';\nimport { Checkbox, CheckboxGroup } from './components/checkbox';\nimport { Chip } from './components/chip';\nimport { ChipGroup } from './components/chip-group';\nimport { DataTable } from './components/data-table';\nimport { DatePicker } from './components/date-picker';\nimport { Drawer } from './components/drawer';\nimport { Form, FormActions, FormError, FormField } from './components/form';\nimport { Gradient } from './components/gradient';\nimport { Heading } from './components/heading';\nimport { Icon } from './components/icon';\nimport { IconButton } from './components/icon-button';\nimport { Image } from './components/image';\nimport { Input } from './components/input';\nimport { MediaCard } from './components/media-card';\nimport { DropdownMenu, Menu } from './components/menu';\nimport { MetricCard } from './components/metric-card';\nimport { Modal } from './components/modal';\nimport { NavigationItem } from './components/navigation-item';\nimport { NavigationList } from './components/navigation-list';\nimport { Pagination } from './components/pagination';\nimport { Progress, ProgressRing } from './components/progress';\nimport { Radio, RadioGroup } from './components/radio';\nimport { Rating } from './components/rating';\nimport { SearchBar } from './components/search-bar';\nimport { Select } from './components/select';\nimport { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from './components/skeleton';\nimport { SplashScreen } from './components/splash-screen';\nimport { Tabs } from './components/tabs';\nimport { Text } from './components/text';\nimport { Textarea } from './components/textarea';\nimport { TimePicker } from './components/time-picker';\nimport { Toast } from './components/toast';\nimport { Toolbar, ToolbarAction } from './components/toolbar';\nimport {\n Box,\n Center,\n Container,\n Divider,\n Grid,\n Inline,\n Show,\n Spacer,\n Stack,\n Surface,\n} from './foundation';\nimport { AppShell } from './layout/app-shell';\nimport { Screen } from './layout/screen';\nimport { ScreenSection } from './layout/screen-section';\nimport { SettingsLayout } from './layout/settings-layout';\nimport { SidebarLayout } from './layout/sidebar-layout';\nimport { TopbarLayout } from './layout/topbar-layout';\nimport {\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n} from './patterns/auth';\nimport { ChatListItem } from './patterns/chat-list-item';\nimport { CollectionEditor } from './patterns/collection-editor';\nimport { ConfirmDialog } from './patterns/confirm-dialog';\nimport { ContentRail } from './patterns/content-rail';\nimport { DisclosureSection } from './patterns/disclosure-section';\nimport { EmptyState } from './patterns/empty-state';\nimport { FilterBar } from './patterns/filter-bar';\nimport { Hero } from './patterns/hero';\nimport { ImagePreview } from './patterns/image-preview';\nimport { ImageUploadField } from './patterns/image-upload-field';\nimport { InspectorField } from './patterns/inspector-field';\nimport { List, ListRow, ListSection } from './patterns/list';\nimport { MessageBubble } from './patterns/message-bubble';\nimport { MissingElement } from './patterns/missing-element';\nimport { Notice } from './patterns/notice';\nimport { Panel } from './patterns/panel';\nimport { PostCard } from './patterns/post-card';\nimport { ProductCard } from './patterns/product-card';\nimport { ReaderSurface } from './patterns/reader';\nimport { ResponsivePanel } from './patterns/responsive-panel';\nimport { BarcodeScannerView, CameraPermissionView, ScanOverlay } from './patterns/scanner';\nimport { SectionHeader } from './patterns/section-header';\nimport { SelectableItem } from './patterns/selection';\nimport { SettingsRow } from './patterns/settings-row';\nimport { SwitchField } from './patterns/switch-field';\nimport { ThemeComposer } from './patterns/theme-composer';\nimport { PaletteItem, TileGrid } from './patterns/tile-grid';\nimport { Timeline } from './patterns/timeline';\nimport { TreeItem, TreeView } from './patterns/tree-view';\nimport { ZoraDrawerContent } from './patterns/zora-drawer-content';\nimport { ZoraTabBar } from './patterns/zora-tab-bar';\nimport { ThemeModeToggle } from './theme/ThemeModeToggle';\n\nexport type ZoraComponentRegistry = Readonly<Record<string, React.ElementType>>;\n\ntype ComponentPropsFor<K extends keyof typeof _ZORA_COMPONENT_REGISTRY> = React.ComponentProps<\n (typeof _ZORA_COMPONENT_REGISTRY)[K]\n>;\n\ntype AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P\n ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>\n ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps\n ? true\n : false\n : false\n : false;\n\ntype RegistryInteractionPolicyContract = {\n [K in keyof typeof _ZORA_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<\n ComponentPropsFor<K>\n >;\n};\n\ntype _AssertTrue<T extends true> = T;\ntype _RegistryInteractionPolicyCheck = _AssertTrue<\n RegistryInteractionPolicyContract[keyof typeof _ZORA_COMPONENT_REGISTRY]\n>;\n\nconst _ZORA_COMPONENT_REGISTRY = {\n ActionSheet,\n ActionSheetItem,\n AppBar,\n Avatar,\n AvatarGroup,\n Badge,\n Breadcrumbs,\n Button,\n ButtonGroup,\n Card,\n Checkbox,\n CheckboxGroup,\n Chip,\n ChipGroup,\n DataTable,\n DatePicker,\n Drawer,\n DropdownMenu,\n Form,\n FormActions,\n FormError,\n FormField,\n Gradient,\n Heading,\n Icon,\n IconButton,\n Image,\n Input,\n MediaCard,\n Menu,\n MetricCard,\n Modal,\n NavigationItem,\n NavigationList,\n Pagination,\n Progress,\n ProgressRing,\n Radio,\n RadioGroup,\n Rating,\n SearchBar,\n Select,\n Skeleton,\n SkeletonCard,\n SkeletonList,\n SkeletonText,\n SplashScreen,\n Tabs,\n Text,\n Textarea,\n TimePicker,\n Toast,\n Toolbar,\n ToolbarAction,\n ThemeModeToggle,\n Box,\n Center,\n Container,\n Divider,\n Grid,\n Inline,\n Show,\n Spacer,\n Stack,\n Surface,\n AppShell,\n Screen,\n ScreenSection,\n SettingsLayout,\n SidebarLayout,\n TopbarLayout,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n ChatListItem,\n CollectionEditor,\n ConfirmDialog,\n ContentRail,\n DisclosureSection,\n EmptyState,\n FilterBar,\n Hero,\n ImagePreview,\n ImageUploadField,\n InspectorField,\n List,\n ListRow,\n ListSection,\n MessageBubble,\n MissingElement,\n Notice,\n Panel,\n PostCard,\n ProductCard,\n ResponsivePanel,\n ReaderSurface,\n BarcodeScannerView,\n CameraPermissionView,\n ScanOverlay,\n SectionHeader,\n SelectableItem,\n SettingsRow,\n SwitchField,\n ThemeComposer,\n PaletteItem,\n TileGrid,\n Timeline,\n TreeItem,\n TreeView,\n ZoraDrawerContent,\n ZoraTabBar,\n} as const satisfies ZoraComponentRegistry;\n\nexport const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_COMPONENT_REGISTRY;\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "3.2.0",
4
+ "version": "3.3.2",
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": {
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@ankhorage/color-theory": "^0.0.8",
40
40
  "@ankhorage/contracts": "^8.0.1",
41
- "@ankhorage/surface": "^3.1.0"
41
+ "@ankhorage/surface": "^3.1.1"
42
42
  },
43
43
  "files": [
44
44
  "dist",
@@ -86,7 +86,7 @@
86
86
  "version-packages": "ankhorage-changeset version"
87
87
  },
88
88
  "devDependencies": {
89
- "@ankhorage/devtools": "^1.8.3",
89
+ "@ankhorage/devtools": "^1.9.4",
90
90
  "@ankhorage/paradox": "^0.1.24",
91
91
  "@react-native-picker/picker": "2.11.4",
92
92
  "@react-native-vector-icons/fontawesome": "^13.1.3",