@ankhorage/zora 0.0.3 → 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.
- package/CHANGELOG.md +12 -0
- package/README.md +1207 -18
- package/dist/components/card/types.d.ts +1 -1
- package/dist/components/card/types.d.ts.map +1 -1
- package/dist/components/icon-button/IconButton.d.ts +4 -0
- package/dist/components/icon-button/IconButton.d.ts.map +1 -0
- package/dist/components/icon-button/IconButton.js +8 -0
- package/dist/components/icon-button/IconButton.js.map +1 -0
- package/dist/components/icon-button/index.d.ts +3 -0
- package/dist/components/icon-button/index.d.ts.map +1 -0
- package/dist/components/icon-button/index.js +3 -0
- package/dist/components/icon-button/index.js.map +1 -0
- package/dist/components/icon-button/types.d.ts +14 -0
- package/dist/components/icon-button/types.d.ts.map +1 -0
- package/dist/components/icon-button/types.js +2 -0
- package/dist/components/icon-button/types.js.map +1 -0
- package/dist/components/select/Select.d.ts +4 -0
- package/dist/components/select/Select.d.ts.map +1 -0
- package/dist/components/select/Select.js +18 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +3 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/types.d.ts +14 -0
- package/dist/components/select/types.d.ts.map +1 -0
- package/dist/components/select/types.js +2 -0
- package/dist/components/select/types.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +4 -0
- package/dist/components/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/tabs/Tabs.js +37 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tabs/index.d.ts +3 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js +3 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/types.d.ts +22 -0
- package/dist/components/tabs/types.d.ts.map +1 -0
- package/dist/components/tabs/types.js +2 -0
- package/dist/components/tabs/types.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +4 -0
- package/dist/components/toolbar/Toolbar.d.ts.map +1 -0
- package/dist/components/toolbar/Toolbar.js +20 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/toolbar/ToolbarAction.d.ts +4 -0
- package/dist/components/toolbar/ToolbarAction.d.ts.map +1 -0
- package/dist/components/toolbar/ToolbarAction.js +6 -0
- package/dist/components/toolbar/ToolbarAction.js.map +1 -0
- package/dist/components/toolbar/index.d.ts +4 -0
- package/dist/components/toolbar/index.d.ts.map +1 -0
- package/dist/components/toolbar/index.js +4 -0
- package/dist/components/toolbar/index.js.map +1 -0
- package/dist/components/toolbar/types.d.ts +19 -0
- package/dist/components/toolbar/types.d.ts.map +1 -0
- package/dist/components/toolbar/types.js +2 -0
- package/dist/components/toolbar/types.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/patterns/collection-editor/CollectionEditor.d.ts +4 -0
- package/dist/patterns/collection-editor/CollectionEditor.d.ts.map +1 -0
- package/dist/patterns/collection-editor/CollectionEditor.js +41 -0
- package/dist/patterns/collection-editor/CollectionEditor.js.map +1 -0
- package/dist/patterns/collection-editor/index.d.ts +3 -0
- package/dist/patterns/collection-editor/index.d.ts.map +1 -0
- package/dist/patterns/collection-editor/index.js +3 -0
- package/dist/patterns/collection-editor/index.js.map +1 -0
- package/dist/patterns/collection-editor/types.d.ts +24 -0
- package/dist/patterns/collection-editor/types.d.ts.map +1 -0
- package/dist/patterns/collection-editor/types.js +2 -0
- package/dist/patterns/collection-editor/types.js.map +1 -0
- package/dist/patterns/disclosure-section/DisclosureSection.d.ts +4 -0
- package/dist/patterns/disclosure-section/DisclosureSection.d.ts.map +1 -0
- package/dist/patterns/disclosure-section/DisclosureSection.js +27 -0
- package/dist/patterns/disclosure-section/DisclosureSection.js.map +1 -0
- package/dist/patterns/disclosure-section/index.d.ts +3 -0
- package/dist/patterns/disclosure-section/index.d.ts.map +1 -0
- package/dist/patterns/disclosure-section/index.js +3 -0
- package/dist/patterns/disclosure-section/index.js.map +1 -0
- package/dist/patterns/disclosure-section/types.d.ts +15 -0
- package/dist/patterns/disclosure-section/types.d.ts.map +1 -0
- package/dist/patterns/disclosure-section/types.js +2 -0
- package/dist/patterns/disclosure-section/types.js.map +1 -0
- package/dist/patterns/inspector-field/InspectorField.d.ts +4 -0
- package/dist/patterns/inspector-field/InspectorField.d.ts.map +1 -0
- package/dist/patterns/inspector-field/InspectorField.js +12 -0
- package/dist/patterns/inspector-field/InspectorField.js.map +1 -0
- package/dist/patterns/inspector-field/index.d.ts +3 -0
- package/dist/patterns/inspector-field/index.d.ts.map +1 -0
- package/dist/patterns/inspector-field/index.js +3 -0
- package/dist/patterns/inspector-field/index.js.map +1 -0
- package/dist/patterns/inspector-field/types.d.ts +15 -0
- package/dist/patterns/inspector-field/types.d.ts.map +1 -0
- package/dist/patterns/inspector-field/types.js +2 -0
- package/dist/patterns/inspector-field/types.js.map +1 -0
- package/dist/patterns/responsive-panel/ResponsivePanel.d.ts +4 -0
- package/dist/patterns/responsive-panel/ResponsivePanel.d.ts.map +1 -0
- package/dist/patterns/responsive-panel/ResponsivePanel.js +25 -0
- package/dist/patterns/responsive-panel/ResponsivePanel.js.map +1 -0
- package/dist/patterns/responsive-panel/index.d.ts +3 -0
- package/dist/patterns/responsive-panel/index.d.ts.map +1 -0
- package/dist/patterns/responsive-panel/index.js +3 -0
- package/dist/patterns/responsive-panel/index.js.map +1 -0
- package/dist/patterns/responsive-panel/types.d.ts +19 -0
- package/dist/patterns/responsive-panel/types.d.ts.map +1 -0
- package/dist/patterns/responsive-panel/types.js +2 -0
- package/dist/patterns/responsive-panel/types.js.map +1 -0
- package/dist/patterns/switch-field/SwitchField.d.ts +4 -0
- package/dist/patterns/switch-field/SwitchField.d.ts.map +1 -0
- package/dist/patterns/switch-field/SwitchField.js +7 -0
- package/dist/patterns/switch-field/SwitchField.js.map +1 -0
- package/dist/patterns/switch-field/index.d.ts +3 -0
- package/dist/patterns/switch-field/index.d.ts.map +1 -0
- package/dist/patterns/switch-field/index.js +3 -0
- package/dist/patterns/switch-field/index.js.map +1 -0
- package/dist/patterns/switch-field/types.d.ts +10 -0
- package/dist/patterns/switch-field/types.d.ts.map +1 -0
- package/dist/patterns/switch-field/types.js +2 -0
- package/dist/patterns/switch-field/types.js.map +1 -0
- package/dist/patterns/tile-grid/PaletteItem.d.ts +4 -0
- package/dist/patterns/tile-grid/PaletteItem.d.ts.map +1 -0
- package/dist/patterns/tile-grid/PaletteItem.js +24 -0
- package/dist/patterns/tile-grid/PaletteItem.js.map +1 -0
- package/dist/patterns/tile-grid/TileGrid.d.ts +4 -0
- package/dist/patterns/tile-grid/TileGrid.d.ts.map +1 -0
- package/dist/patterns/tile-grid/TileGrid.js +26 -0
- package/dist/patterns/tile-grid/TileGrid.js.map +1 -0
- package/dist/patterns/tile-grid/index.d.ts +4 -0
- package/dist/patterns/tile-grid/index.d.ts.map +1 -0
- package/dist/patterns/tile-grid/index.js +4 -0
- package/dist/patterns/tile-grid/index.js.map +1 -0
- package/dist/patterns/tile-grid/types.d.ts +19 -0
- package/dist/patterns/tile-grid/types.d.ts.map +1 -0
- package/dist/patterns/tile-grid/types.js +2 -0
- package/dist/patterns/tile-grid/types.js.map +1 -0
- package/dist/patterns/tree-view/TreeItem.d.ts +14 -0
- package/dist/patterns/tree-view/TreeItem.d.ts.map +1 -0
- package/dist/patterns/tree-view/TreeItem.js +31 -0
- package/dist/patterns/tree-view/TreeItem.js.map +1 -0
- package/dist/patterns/tree-view/TreeView.d.ts +4 -0
- package/dist/patterns/tree-view/TreeView.d.ts.map +1 -0
- package/dist/patterns/tree-view/TreeView.js +20 -0
- package/dist/patterns/tree-view/TreeView.js.map +1 -0
- package/dist/patterns/tree-view/index.d.ts +4 -0
- package/dist/patterns/tree-view/index.d.ts.map +1 -0
- package/dist/patterns/tree-view/index.js +4 -0
- package/dist/patterns/tree-view/index.js.map +1 -0
- package/dist/patterns/tree-view/types.d.ts +29 -0
- package/dist/patterns/tree-view/types.d.ts.map +1 -0
- package/dist/patterns/tree-view/types.js +2 -0
- package/dist/patterns/tree-view/types.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface CollectionEditorRenderItemProps<TItem> {
|
|
3
|
+
item: TItem;
|
|
4
|
+
index: number;
|
|
5
|
+
remove: () => void;
|
|
6
|
+
moveUp: () => void;
|
|
7
|
+
moveDown: () => void;
|
|
8
|
+
canMoveUp: boolean;
|
|
9
|
+
canMoveDown: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface CollectionEditorProps<TItem> {
|
|
12
|
+
title?: React.ReactNode;
|
|
13
|
+
description?: React.ReactNode;
|
|
14
|
+
items: readonly TItem[];
|
|
15
|
+
renderItem: (props: CollectionEditorRenderItemProps<TItem>) => React.ReactNode;
|
|
16
|
+
onAdd?: () => void;
|
|
17
|
+
onRemove?: (index: number) => void;
|
|
18
|
+
onMove?: (from: number, to: number) => void;
|
|
19
|
+
addLabel?: React.ReactNode;
|
|
20
|
+
emptyLabel?: React.ReactNode;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
testID?: string;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/collection-editor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,+BAA+B,CAAC,KAAK;IACpD,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,KAAK,EAAE,SAAS,KAAK,EAAE,CAAC;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,+BAA+B,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC/E,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/collection-editor/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DisclosureSectionProps } from './types';
|
|
3
|
+
export declare function DisclosureSection({ title, description, icon, defaultOpen, open: controlledOpen, onOpenChange, actions, children, disabled, testID, }: DisclosureSectionProps): React.JSX.Element;
|
|
4
|
+
//# sourceMappingURL=DisclosureSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DisclosureSection.d.ts","sourceRoot":"","sources":["../../../src/patterns/disclosure-section/DisclosureSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,IAAI,EACJ,WAAkB,EAClB,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,sBAAsB,qBA0CxB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Box, Stack } from '@ankhorage/surface';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { IconButton } from '../../components/icon-button';
|
|
4
|
+
import { Panel } from '../panel';
|
|
5
|
+
export function DisclosureSection({ title, description, icon, defaultOpen = true, open: controlledOpen, onOpenChange, actions, children, disabled, testID, }) {
|
|
6
|
+
const [internalOpen, setInternalOpen] = React.useState(defaultOpen);
|
|
7
|
+
const isControlled = controlledOpen !== undefined;
|
|
8
|
+
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
9
|
+
const toggleOpen = () => {
|
|
10
|
+
if (disabled)
|
|
11
|
+
return;
|
|
12
|
+
if (isControlled) {
|
|
13
|
+
onOpenChange?.(!controlledOpen);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
setInternalOpen(!internalOpen);
|
|
17
|
+
onOpenChange?.(!internalOpen);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
return (<Panel compact description={description} testID={testID} title={title} eyebrow={icon ? <Box pb="xs">{/* Surface icon spec would go here */}</Box> : null} actions={<Stack direction="row" gap="xs" align="center">
|
|
21
|
+
{actions}
|
|
22
|
+
<IconButton icon={{ name: isOpen ? 'chevron-up-outline' : 'chevron-down-outline' }} label={isOpen ? 'Collapse' : 'Expand'} emphasis="ghost" tone="neutral" size="s" disabled={disabled} onPress={toggleOpen}/>
|
|
23
|
+
</Stack>}>
|
|
24
|
+
{isOpen ? <Box pt="m">{children}</Box> : null}
|
|
25
|
+
</Panel>);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=DisclosureSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DisclosureSection.js","sourceRoot":"","sources":["../../../src/patterns/disclosure-section/DisclosureSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,IAAI,EACJ,WAAW,GAAG,IAAI,EAClB,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,GACiB;IACvB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,cAAc,KAAK,SAAS,CAAC;IAClD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC;IAE5D,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,QAAQ;YAAE,OAAO;QAErB,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC;YAC/B,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,KAAK,CACJ,OAAO,CACP,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAClF,OAAO,CAAC,CACN,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC5C;UAAA,CAAC,OAAO,CACR;UAAA,CAAC,UAAU,CACT,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CACvE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CACtC,QAAQ,CAAC,OAAO,CAChB,IAAI,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CACR,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,OAAO,CAAC,CAAC,UAAU,CAAC,EAExB;QAAA,EAAE,KAAK,CACT,CAAC,CAED;MAAA,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/C;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/disclosure-section/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/disclosure-section/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ButtonIconSpec } from '@ankhorage/surface';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export interface DisclosureSectionProps {
|
|
4
|
+
title: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
icon?: ButtonIconSpec;
|
|
7
|
+
defaultOpen?: boolean;
|
|
8
|
+
open?: boolean;
|
|
9
|
+
onOpenChange?: (open: boolean) => void;
|
|
10
|
+
actions?: ReactNode;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
testID?: string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/disclosure-section/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,sBAAsB;IACrC,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/disclosure-section/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InspectorField.d.ts","sourceRoot":"","sources":["../../../src/patterns/inspector-field/InspectorField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,qBASzF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Box, Stack } from '@ankhorage/surface';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { FormField } from '../form-field';
|
|
4
|
+
export function InspectorField({ label, control, children, ...props }) {
|
|
5
|
+
return (<FormField {...props} label={label}>
|
|
6
|
+
<Stack direction="row" gap="s" align="center">
|
|
7
|
+
<Box flex={1}>{children}</Box>
|
|
8
|
+
{control ? <Box>{control}</Box> : null}
|
|
9
|
+
</Stack>
|
|
10
|
+
</FormField>);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=InspectorField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InspectorField.js","sourceRoot":"","sources":["../../../src/patterns/inspector-field/InspectorField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAuB;IACxF,OAAO,CACL,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjC;MAAA,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAC3C;QAAA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAC7B;QAAA,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CACxC;MAAA,EAAE,KAAK,CACT;IAAA,EAAE,SAAS,CAAC,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/inspector-field/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/inspector-field/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface InspectorFieldProps {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
description?: ReactNode;
|
|
5
|
+
helperText?: ReactNode;
|
|
6
|
+
errorText?: ReactNode;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
invalid?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
control?: ReactNode;
|
|
12
|
+
children?: ReactNode;
|
|
13
|
+
testID?: string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/inspector-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/inspector-field/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ResponsivePanelProps } from './types';
|
|
3
|
+
export declare function ResponsivePanel({ title, description, actions, footer, children, open, onOpenChange, side, desktopMode, mobileMode, compact, testID, }: ResponsivePanelProps): React.JSX.Element | null;
|
|
4
|
+
//# sourceMappingURL=ResponsivePanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsivePanel.d.ts","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/ResponsivePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,IAAc,EACd,WAAsB,EACtB,UAAqB,EACrB,OAAc,EACd,MAAM,GACP,EAAE,oBAAoB,4BAiDtB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Drawer } from '../../components/drawer';
|
|
3
|
+
import { Modal } from '../../components/modal';
|
|
4
|
+
import { Panel } from '../panel';
|
|
5
|
+
export function ResponsivePanel({ title, description, actions, footer, children, open, onOpenChange, side = 'right', desktopMode = 'inline', mobileMode = 'drawer', compact = true, testID, }) {
|
|
6
|
+
if (!open)
|
|
7
|
+
return null;
|
|
8
|
+
// For now, we assume desktopMode determines the rendering.
|
|
9
|
+
// In a real app, this would react to window size.
|
|
10
|
+
if (desktopMode === 'floating') {
|
|
11
|
+
if (mobileMode === 'modal') {
|
|
12
|
+
return (<Modal description={description} footer={footer} onDismiss={() => onOpenChange(false)} testID={testID} title={title} visible={open}>
|
|
13
|
+
{children}
|
|
14
|
+
</Modal>);
|
|
15
|
+
}
|
|
16
|
+
return (<Drawer description={description} footer={footer} onDismiss={() => onOpenChange(false)} position={side} testID={testID} title={title} visible={open}>
|
|
17
|
+
{children}
|
|
18
|
+
</Drawer>);
|
|
19
|
+
}
|
|
20
|
+
// default: inline -> Panel
|
|
21
|
+
return (<Panel actions={actions} compact={compact} description={description} footer={footer} testID={testID} title={title}>
|
|
22
|
+
{children}
|
|
23
|
+
</Panel>);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ResponsivePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsivePanel.js","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/ResponsivePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,IAAI,GAAG,OAAO,EACd,WAAW,GAAG,QAAQ,EACtB,UAAU,GAAG,QAAQ,EACrB,OAAO,GAAG,IAAI,EACd,MAAM,GACe;IACrB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,2DAA2D;IAC3D,kDAAkD;IAClD,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/B,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CACL,CAAC,KAAK,CACJ,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACrC,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,OAAO,CAAC,CAAC,IAAI,CAAC,CAEd;UAAA,CAAC,QAAQ,CACX;QAAA,EAAE,KAAK,CAAC,CACT,CAAC;QACJ,CAAC;QAED,OAAO,CACL,CAAC,MAAM,CACL,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CACrC,QAAQ,CAAC,CAAC,IAAI,CAAC,CACf,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,OAAO,CAAC,CAAC,IAAI,CAAC,CAEd;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,MAAM,CAAC,CACV,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,OAAO,CACL,CAAC,KAAK,CACJ,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CAEb;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/types.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/switch-field/types.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|