@ablehi/automation-app-ui 0.2.0 → 0.2.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.
- package/dist/catalog.js +1 -1
- package/package.json +3 -3
package/dist/catalog.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var r={name:"@ablehi/automation-app-ui",version:"0.2.0",description:"Iframe-native public UI Foundation for Ablehi Automation Apps.",license:"UNLICENSED",private:!1,type:"module",main:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./styles.css":"./dist/styles.css","./catalog":{types:"./dist/catalog.d.ts",import:"./dist/catalog.js"},"./package.json":"./package.json"},files:["dist"],sideEffects:["./dist/styles.css"],publishConfig:{access:"public",registry:"https://registry.npmjs.org/"},scripts:{build:"tsup && esbuild styles.css --bundle --minify --outfile=dist/styles.css",typecheck:"tsc --noEmit -p tsconfig.json",lint:"eslint src --ext .ts,.tsx",test:"vitest run",check:"pnpm build && pnpm typecheck && pnpm lint && pnpm test"},dependencies:{"@ablehi/automation-app-host-bridge":"0.2.0","@base-ui/react":"1.6.0","class-variance-authority":"0.7.1",clsx:"2.1.1","lucide-react":"1.16.0","tailwind-merge":"3.6.0"},peerDependencies:{react:"19.2.4","react-dom":"19.2.4"},devDependencies:{"@ablehi/server-api-contract":"0.6.0","@types/react":"19.2.14","@types/react-dom":"19.2.3",esbuild:"0.27.7",eslint:"9.39.2",jsdom:"27.4.0",react:"19.2.4","react-dom":"19.2.4",tsup:"8.5.1",typescript:"5.9.3",vitest:"4.1.7"}};var t=(o,a,i,n)=>({name:o,type:a,required:i,description:n}),e=()=>(o,a,i,n,p,s,u=[])=>({exportName:o,category:a,summary:i,nativeElement:n,props:p,variants:s??{},accessibility:u}),c=[["--aaui-background","Frame and page background"],["--aaui-foreground","Primary text and icon color"],["--aaui-card","Section surface"],["--aaui-popover","Floating overlay surface"],["--aaui-muted","Subdued surface"],["--aaui-muted-foreground","Secondary text"],["--aaui-border","Structural border"],["--aaui-input","Input border and surface"],["--aaui-primary","Primary action"],["--aaui-primary-foreground","Text on primary action"],["--aaui-secondary","Secondary action surface"],["--aaui-secondary-foreground","Text on secondary action"],["--aaui-accent","Interactive highlight"],["--aaui-destructive","Destructive or error emphasis"],["--aaui-success","Success emphasis"],["--aaui-warning","Warning emphasis"],["--aaui-info","Informational emphasis"],["--aaui-ring","Keyboard focus ring"],["--aaui-radius","Foundation corner radius"],["--aaui-shadow","Floating-surface shadow"],["--aaui-font-sans","Frame sans-serif font stack"],["--aaui-space-1","4px spacing step"],["--aaui-space-2","8px spacing step"],["--aaui-space-3","12px spacing step"],["--aaui-space-4","16px spacing step"],["--aaui-space-6","24px spacing step"],["--aaui-space-8","32px spacing step"]],d=[e()("AutomationAppGrid","layout","Responsive grid for peer surfaces.","div",[t("columns","1 | 2 | 3 | 4",!1,"Maximum desktop column count."),t("gap",'"sm" | "md" | "lg"',!1,"Foundation gap step.")],{columns:["1","2","3","4"],gap:["sm","md","lg"]}),e()("AutomationAppHeader","layout","Page heading with description and actions.","header",[t("title","ReactNode",!0,"Unique page title."),t("description","ReactNode",!1,"Supporting page copy."),t("actions","ReactNode",!1,"Primary page actions.")],{},["Keep one h1-level header per mounted mode."]),e()("AutomationAppLayout","layout","Top-level frame layout.","main",[],{},["Use once as the mode's main landmark."]),e()("AutomationAppSection","layout","Titled card-like content surface.","section",[t("title","ReactNode",!1,"Section heading."),t("description","ReactNode",!1,"Section description."),t("actions","ReactNode",!1,"Section-scoped actions.")],{},["Use a title when the section needs a navigable heading."]),e()("AutomationAppStack","layout","Horizontal or vertical flex stack.","div",[t("direction",'"horizontal" | "vertical"',!1,"Stack direction."),t("align",'"start" | "center" | "end" | "stretch"',!1,"Cross-axis alignment."),t("gap",'"sm" | "md" | "lg"',!1,"Foundation gap step.")],{direction:["horizontal","vertical"],align:["start","center","end","stretch"],gap:["sm","md","lg"]}),e()("AutomationAppButton","form","Accessible action button.","button",[t("variant",'"primary" | "secondary" | "ghost" | "destructive"',!1,"Action hierarchy."),t("size",'"sm" | "md" | "lg"',!1,"Control size."),t("disabled","boolean",!1,"Prevents activation.")],{variant:["primary","secondary","ghost","destructive"],size:["sm","md","lg"]},["Buttons with icons only require an aria-label."]),e()("AutomationAppField","form","Label, description and error wrapper for one control.","div",[t("label","ReactNode",!0,"Visible control label."),t("children","ReactElement",!0,"Single form control."),t("description","ReactNode",!1,"Helpful input guidance."),t("error","ReactNode",!1,"Validation message announced as an alert."),t("required","boolean",!1,"Marks and wires a required control.")],{},["Do not use placeholder text as the only label."]),e()("AutomationAppInput","form","Single-line text input.","input",[t("type","HTMLInputTypeAttribute",!1,"Native input type."),t("value","string | number",!1,"Controlled value.")]),e()("AutomationAppSelect","form","Portal-safe single-value select.",null,[t("options","readonly AutomationAppSelectOption[]",!0,"Closed option inventory."),t("value","string | null",!1,"Controlled selection."),t("onValueChange","(value: string | null) => void",!1,"Selection callback."),t("placeholder","ReactNode",!1,"No-selection prompt.")],{},["Provide a visible AutomationAppField label."]),e()("AutomationAppTextarea","form","Multi-line text input.","textarea",[t("value","string",!1,"Controlled value."),t("rows","number",!1,"Visible line count.")]),e()("AutomationAppCheckbox","form","Native boolean checkbox.","input",[t("checked","boolean",!1,"Controlled checked state."),t("onChange","ChangeEventHandler<HTMLInputElement>",!1,"Change callback.")],{},["Pair with visible label text through AutomationAppField or label."]),e()("AutomationAppRadioGroup","form","Single selection from visible radio options.","fieldset",[t("legend","ReactNode",!0,"Visible group label."),t("name","string",!0,"Native radio group name."),t("options","readonly AutomationAppRadioOption[]",!0,"Closed option inventory."),t("value","string",!1,"Controlled selection."),t("onValueChange","(value: string) => void",!1,"Selection callback.")],{},["The legend must describe the decision represented by the options."]),e()("AutomationAppSwitch","form","Immediate boolean setting switch.","button",[t("label","ReactNode",!0,"Visible setting label."),t("checked","boolean",!1,"Controlled checked state."),t("onCheckedChange","(checked: boolean) => void",!1,"State callback.")],{},["Use for immediate settings, not form submission consent."]),e()("AutomationAppTabs","navigation","Keyboard-operable local view tabs.",null,[t("label","string",!0,"Accessible tab-list label."),t("tabs","readonly AutomationAppTabItem[]",!0,"Tab and panel inventory."),t("value","string",!1,"Controlled tab id."),t("onValueChange","(value: string) => void",!1,"Tab callback.")],{},["Tab ids must be unique and stable."]),e()("AutomationAppDialog","feedback","Modal confirmation or focused task overlay.",null,[t("trigger","ReactElement",!0,"Element that opens the dialog."),t("title","ReactNode",!0,"Dialog title."),t("description","ReactNode",!1,"Dialog purpose and consequence."),t("footer","ReactNode",!1,"Confirmation and cancel actions.")],{},["Destructive confirmation must state the consequence and offer cancel."]),e()("AutomationAppPopover","feedback","Non-modal contextual overlay.",null,[t("trigger","ReactElement",!0,"Element that opens the popover."),t("title","ReactNode",!1,"Popover title."),t("description","ReactNode",!1,"Popover description.")]),e()("AutomationAppToast","feedback","Transient portal-safe notification.","div",[t("title","ReactNode",!0,"Concise outcome."),t("description","ReactNode",!1,"Supporting detail."),t("intent",'"info" | "success" | "warning" | "error"',!1,"Semantic tone.")],{intent:["info","success","warning","error"]},["Do not use a toast as the only record of a blocking error."]),e()("AutomationAppTooltip","feedback","Short supplemental label or explanation.",null,[t("children","ReactElement",!0,"Focusable trigger."),t("content","ReactNode",!0,"Supplemental text."),t("side",'"bottom" | "left" | "right" | "top"',!1,"Preferred placement.")],{},["Never hide required instructions only in a tooltip."]),e()("AutomationAppAlert","feedback","Persistent inline feedback.","div",[t("children","ReactNode",!0,"Alert details."),t("title","ReactNode",!1,"Concise feedback title."),t("intent",'"info" | "success" | "warning" | "error"',!1,"Semantic tone."),t("action","ReactNode",!1,"Recovery action.")],{intent:["info","success","warning","error"]}),e()("AutomationAppEmptyState","status","Full-surface no-content state.","div",[t("title","ReactNode",!0,"State summary."),t("description","ReactNode",!1,"Why no content exists."),t("action","ReactNode",!1,"Available next action.")]),e()("AutomationAppErrorState","status","Full-surface failed state.","div",[t("title","ReactNode",!0,"Failure summary."),t("description","ReactNode",!1,"Safe failure detail."),t("action","ReactNode",!1,"Recovery action."),t("severity",'"error" | "warning"',!1,"Failure severity.")],{severity:["error","warning"]}),e()("AutomationAppLoadingState","status","Full-surface loading state.","div",[t("title","ReactNode",!0,"Current activity."),t("description","ReactNode",!1,"Expected next state.")],{},["Use a specific loading title instead of an unlabeled spinner."]),e()("AutomationAppStatus","status","Live workflow or application state label.","span",[t("intent",'"neutral" | "info" | "success" | "warning" | "error"',!1,"Semantic state tone.")],{intent:["neutral","info","success","warning","error"]},["Include state text; color is supplemental."]),e()("AutomationAppBadge","status","Non-live categorical label.","span",[t("intent",'"neutral" | "info" | "success" | "warning" | "error"',!1,"Category tone.")],{intent:["neutral","info","success","warning","error"]}),e()("AutomationAppSkeleton","status","Decorative content placeholder.","div",[],{},["Pair with nearby loading text or a loading landmark."]),e()("AutomationAppProgress","status","Labeled determinate or indeterminate progress.","progress",[t("label","string",!0,"Visible progress label."),t("value","number",!1,"Omit for indeterminate progress."),t("max","number",!1,"Maximum progress value.")]),e()("AutomationAppSeparator","data-display","Semantic content separator.","hr",[]),e()("AutomationAppTable","data-display","Responsive semantic table shell with horizontal overflow.","table",[t("caption","ReactNode",!1,"Visible table description."),t("captionPosition",'"bottom" | "top"',!1,"Caption placement."),t("children","ReactNode",!1,"Semantic thead/tbody/tr/th/td content.")],{},["Use scope on header cells and a caption for unfamiliar data."])],m=[{id:"form-action",description:"A labeled form with inline validation and one primary action.",source:'<AutomationAppSection title="Create profile"><AutomationAppStack><AutomationAppField label="Name" error={error}><AutomationAppInput value={name} onChange={onNameChange} /></AutomationAppField><AutomationAppButton onClick={save}>Save</AutomationAppButton></AutomationAppStack></AutomationAppSection>'},{id:"collection",description:"A collection with loading, empty, error and populated branches.",source:'{loading ? <AutomationAppLoadingState title="Loading runs" /> : error ? <AutomationAppErrorState title="Runs unavailable" action={<AutomationAppButton onClick={retry}>Retry</AutomationAppButton>} /> : rows.length === 0 ? <AutomationAppEmptyState title="No runs yet" /> : <AutomationAppTable caption="Recent runs"><tbody>{rows.map(renderRow)}</tbody></AutomationAppTable>}'},{id:"detail-status",description:"A detail page with categorical metadata and live status.",source:'<AutomationAppLayout><AutomationAppHeader title={title} actions={<AutomationAppStatus intent={intent}>{status}</AutomationAppStatus>} /><AutomationAppSection title="Details"><AutomationAppBadge>{category}</AutomationAppBadge>{content}</AutomationAppSection></AutomationAppLayout>'},{id:"confirmation",description:"An explicit confirmation for a consequential command.",source:'<AutomationAppDialog trigger={<AutomationAppButton variant="destructive">Delete</AutomationAppButton>} title="Delete profile?" description="Runs stop and this cannot be undone." footer={<><AutomationAppButton variant="secondary">Cancel</AutomationAppButton><AutomationAppButton variant="destructive" onClick={confirm}>Delete</AutomationAppButton></>}>{detail}</AutomationAppDialog>'}],f={schemaVersion:"automation.app-ui-foundation-catalog.v1",packageName:"@ablehi/automation-app-ui",packageVersion:r.version,styleEntry:"@ablehi/automation-app-ui/styles.css",runtimeExports:["AutomationAppPortalProvider","useAutomationAppOverlayRoot"],tokens:c.map(([o,a])=>({name:o,role:a})),components:d,patterns:m};export{f as AUTOMATION_APP_UI_FOUNDATION_CATALOG};
|
|
1
|
+
var r={name:"@ablehi/automation-app-ui",version:"0.2.2",description:"Iframe-native public UI Foundation for Ablehi Automation Apps.",license:"UNLICENSED",private:!1,type:"module",main:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./styles.css":"./dist/styles.css","./catalog":{types:"./dist/catalog.d.ts",import:"./dist/catalog.js"},"./package.json":"./package.json"},files:["dist"],sideEffects:["./dist/styles.css"],publishConfig:{access:"public",registry:"https://registry.npmjs.org/"},scripts:{build:"tsup && esbuild styles.css --bundle --minify --outfile=dist/styles.css",typecheck:"tsc --noEmit -p tsconfig.json",lint:"eslint src --ext .ts,.tsx",test:"vitest run",check:"pnpm build && pnpm typecheck && pnpm lint && pnpm test"},dependencies:{"@ablehi/automation-app-host-bridge":"0.2.2","@base-ui/react":"1.6.0","class-variance-authority":"0.7.1",clsx:"2.1.1","lucide-react":"1.16.0","tailwind-merge":"3.6.0"},peerDependencies:{react:"19.2.4","react-dom":"19.2.4"},devDependencies:{"@ablehi/server-api-contract":"0.6.2","@types/node":"20.19.41","@types/react":"19.2.14","@types/react-dom":"19.2.3",esbuild:"0.27.7",eslint:"9.39.2",jsdom:"27.4.0",react:"19.2.4","react-dom":"19.2.4",tsup:"8.5.1",typescript:"5.9.3",vitest:"4.1.7"}};var t=(o,a,i,n)=>({name:o,type:a,required:i,description:n}),e=()=>(o,a,i,n,p,s,u=[])=>({exportName:o,category:a,summary:i,nativeElement:n,props:p,variants:s??{},accessibility:u}),c=[["--aaui-background","Frame and page background"],["--aaui-foreground","Primary text and icon color"],["--aaui-card","Section surface"],["--aaui-popover","Floating overlay surface"],["--aaui-muted","Subdued surface"],["--aaui-muted-foreground","Secondary text"],["--aaui-border","Structural border"],["--aaui-input","Input border and surface"],["--aaui-primary","Primary action"],["--aaui-primary-foreground","Text on primary action"],["--aaui-secondary","Secondary action surface"],["--aaui-secondary-foreground","Text on secondary action"],["--aaui-accent","Interactive highlight"],["--aaui-destructive","Destructive or error emphasis"],["--aaui-success","Success emphasis"],["--aaui-warning","Warning emphasis"],["--aaui-info","Informational emphasis"],["--aaui-ring","Keyboard focus ring"],["--aaui-radius","Foundation corner radius"],["--aaui-shadow","Floating-surface shadow"],["--aaui-font-sans","Frame sans-serif font stack"],["--aaui-space-1","4px spacing step"],["--aaui-space-2","8px spacing step"],["--aaui-space-3","12px spacing step"],["--aaui-space-4","16px spacing step"],["--aaui-space-6","24px spacing step"],["--aaui-space-8","32px spacing step"]],d=[e()("AutomationAppGrid","layout","Responsive grid for peer surfaces.","div",[t("columns","1 | 2 | 3 | 4",!1,"Maximum desktop column count."),t("gap",'"sm" | "md" | "lg"',!1,"Foundation gap step.")],{columns:["1","2","3","4"],gap:["sm","md","lg"]}),e()("AutomationAppHeader","layout","Page heading with description and actions.","header",[t("title","ReactNode",!0,"Unique page title."),t("description","ReactNode",!1,"Supporting page copy."),t("actions","ReactNode",!1,"Primary page actions.")],{},["Keep one h1-level header per mounted mode."]),e()("AutomationAppLayout","layout","Top-level frame layout.","main",[],{},["Use once as the mode's main landmark."]),e()("AutomationAppSection","layout","Titled card-like content surface.","section",[t("title","ReactNode",!1,"Section heading."),t("description","ReactNode",!1,"Section description."),t("actions","ReactNode",!1,"Section-scoped actions.")],{},["Use a title when the section needs a navigable heading."]),e()("AutomationAppStack","layout","Horizontal or vertical flex stack.","div",[t("direction",'"horizontal" | "vertical"',!1,"Stack direction."),t("align",'"start" | "center" | "end" | "stretch"',!1,"Cross-axis alignment."),t("gap",'"sm" | "md" | "lg"',!1,"Foundation gap step.")],{direction:["horizontal","vertical"],align:["start","center","end","stretch"],gap:["sm","md","lg"]}),e()("AutomationAppButton","form","Accessible action button.","button",[t("variant",'"primary" | "secondary" | "ghost" | "destructive"',!1,"Action hierarchy."),t("size",'"sm" | "md" | "lg"',!1,"Control size."),t("disabled","boolean",!1,"Prevents activation.")],{variant:["primary","secondary","ghost","destructive"],size:["sm","md","lg"]},["Buttons with icons only require an aria-label."]),e()("AutomationAppField","form","Label, description and error wrapper for one control.","div",[t("label","ReactNode",!0,"Visible control label."),t("children","ReactElement",!0,"Single form control."),t("description","ReactNode",!1,"Helpful input guidance."),t("error","ReactNode",!1,"Validation message announced as an alert."),t("required","boolean",!1,"Marks and wires a required control.")],{},["Do not use placeholder text as the only label."]),e()("AutomationAppInput","form","Single-line text input.","input",[t("type","HTMLInputTypeAttribute",!1,"Native input type."),t("value","string | number",!1,"Controlled value.")]),e()("AutomationAppSelect","form","Portal-safe single-value select.",null,[t("options","readonly AutomationAppSelectOption[]",!0,"Closed option inventory."),t("value","string | null",!1,"Controlled selection."),t("onValueChange","(value: string | null) => void",!1,"Selection callback."),t("placeholder","ReactNode",!1,"No-selection prompt.")],{},["Provide a visible AutomationAppField label."]),e()("AutomationAppTextarea","form","Multi-line text input.","textarea",[t("value","string",!1,"Controlled value."),t("rows","number",!1,"Visible line count.")]),e()("AutomationAppCheckbox","form","Native boolean checkbox.","input",[t("checked","boolean",!1,"Controlled checked state."),t("onChange","ChangeEventHandler<HTMLInputElement>",!1,"Change callback.")],{},["Pair with visible label text through AutomationAppField or label."]),e()("AutomationAppRadioGroup","form","Single selection from visible radio options.","fieldset",[t("legend","ReactNode",!0,"Visible group label."),t("name","string",!0,"Native radio group name."),t("options","readonly AutomationAppRadioOption[]",!0,"Closed option inventory."),t("value","string",!1,"Controlled selection."),t("onValueChange","(value: string) => void",!1,"Selection callback.")],{},["The legend must describe the decision represented by the options."]),e()("AutomationAppSwitch","form","Immediate boolean setting switch.","button",[t("label","ReactNode",!0,"Visible setting label."),t("checked","boolean",!1,"Controlled checked state."),t("onCheckedChange","(checked: boolean) => void",!1,"State callback.")],{},["Use for immediate settings, not form submission consent."]),e()("AutomationAppTabs","navigation","Keyboard-operable local view tabs.",null,[t("label","string",!0,"Accessible tab-list label."),t("tabs","readonly AutomationAppTabItem[]",!0,"Tab and panel inventory."),t("value","string",!1,"Controlled tab id."),t("onValueChange","(value: string) => void",!1,"Tab callback.")],{},["Tab ids must be unique and stable."]),e()("AutomationAppDialog","feedback","Modal confirmation or focused task overlay.",null,[t("trigger","ReactElement",!0,"Element that opens the dialog."),t("title","ReactNode",!0,"Dialog title."),t("description","ReactNode",!1,"Dialog purpose and consequence."),t("footer","ReactNode",!1,"Confirmation and cancel actions.")],{},["Destructive confirmation must state the consequence and offer cancel."]),e()("AutomationAppPopover","feedback","Non-modal contextual overlay.",null,[t("trigger","ReactElement",!0,"Element that opens the popover."),t("title","ReactNode",!1,"Popover title."),t("description","ReactNode",!1,"Popover description.")]),e()("AutomationAppToast","feedback","Transient portal-safe notification.","div",[t("title","ReactNode",!0,"Concise outcome."),t("description","ReactNode",!1,"Supporting detail."),t("intent",'"info" | "success" | "warning" | "error"',!1,"Semantic tone.")],{intent:["info","success","warning","error"]},["Do not use a toast as the only record of a blocking error."]),e()("AutomationAppTooltip","feedback","Short supplemental label or explanation.",null,[t("children","ReactElement",!0,"Focusable trigger."),t("content","ReactNode",!0,"Supplemental text."),t("side",'"bottom" | "left" | "right" | "top"',!1,"Preferred placement.")],{},["Never hide required instructions only in a tooltip."]),e()("AutomationAppAlert","feedback","Persistent inline feedback.","div",[t("children","ReactNode",!0,"Alert details."),t("title","ReactNode",!1,"Concise feedback title."),t("intent",'"info" | "success" | "warning" | "error"',!1,"Semantic tone."),t("action","ReactNode",!1,"Recovery action.")],{intent:["info","success","warning","error"]}),e()("AutomationAppEmptyState","status","Full-surface no-content state.","div",[t("title","ReactNode",!0,"State summary."),t("description","ReactNode",!1,"Why no content exists."),t("action","ReactNode",!1,"Available next action.")]),e()("AutomationAppErrorState","status","Full-surface failed state.","div",[t("title","ReactNode",!0,"Failure summary."),t("description","ReactNode",!1,"Safe failure detail."),t("action","ReactNode",!1,"Recovery action."),t("severity",'"error" | "warning"',!1,"Failure severity.")],{severity:["error","warning"]}),e()("AutomationAppLoadingState","status","Full-surface loading state.","div",[t("title","ReactNode",!0,"Current activity."),t("description","ReactNode",!1,"Expected next state.")],{},["Use a specific loading title instead of an unlabeled spinner."]),e()("AutomationAppStatus","status","Live workflow or application state label.","span",[t("intent",'"neutral" | "info" | "success" | "warning" | "error"',!1,"Semantic state tone.")],{intent:["neutral","info","success","warning","error"]},["Include state text; color is supplemental."]),e()("AutomationAppBadge","status","Non-live categorical label.","span",[t("intent",'"neutral" | "info" | "success" | "warning" | "error"',!1,"Category tone.")],{intent:["neutral","info","success","warning","error"]}),e()("AutomationAppSkeleton","status","Decorative content placeholder.","div",[],{},["Pair with nearby loading text or a loading landmark."]),e()("AutomationAppProgress","status","Labeled determinate or indeterminate progress.","progress",[t("label","string",!0,"Visible progress label."),t("value","number",!1,"Omit for indeterminate progress."),t("max","number",!1,"Maximum progress value.")]),e()("AutomationAppSeparator","data-display","Semantic content separator.","hr",[]),e()("AutomationAppTable","data-display","Responsive semantic table shell with horizontal overflow.","table",[t("caption","ReactNode",!1,"Visible table description."),t("captionPosition",'"bottom" | "top"',!1,"Caption placement."),t("children","ReactNode",!1,"Semantic thead/tbody/tr/th/td content.")],{},["Use scope on header cells and a caption for unfamiliar data."])],m=[{id:"form-action",description:"A labeled form with inline validation and one primary action.",source:'<AutomationAppSection title="Create profile"><AutomationAppStack><AutomationAppField label="Name" error={error}><AutomationAppInput value={name} onChange={onNameChange} /></AutomationAppField><AutomationAppButton onClick={save}>Save</AutomationAppButton></AutomationAppStack></AutomationAppSection>'},{id:"collection",description:"A collection with loading, empty, error and populated branches.",source:'{loading ? <AutomationAppLoadingState title="Loading runs" /> : error ? <AutomationAppErrorState title="Runs unavailable" action={<AutomationAppButton onClick={retry}>Retry</AutomationAppButton>} /> : rows.length === 0 ? <AutomationAppEmptyState title="No runs yet" /> : <AutomationAppTable caption="Recent runs"><tbody>{rows.map(renderRow)}</tbody></AutomationAppTable>}'},{id:"detail-status",description:"A detail page with categorical metadata and live status.",source:'<AutomationAppLayout><AutomationAppHeader title={title} actions={<AutomationAppStatus intent={intent}>{status}</AutomationAppStatus>} /><AutomationAppSection title="Details"><AutomationAppBadge>{category}</AutomationAppBadge>{content}</AutomationAppSection></AutomationAppLayout>'},{id:"confirmation",description:"An explicit confirmation for a consequential command.",source:'<AutomationAppDialog trigger={<AutomationAppButton variant="destructive">Delete</AutomationAppButton>} title="Delete profile?" description="Runs stop and this cannot be undone." footer={<><AutomationAppButton variant="secondary">Cancel</AutomationAppButton><AutomationAppButton variant="destructive" onClick={confirm}>Delete</AutomationAppButton></>}>{detail}</AutomationAppDialog>'}],f={schemaVersion:"automation.app-ui-foundation-catalog.v1",packageName:"@ablehi/automation-app-ui",packageVersion:r.version,styleEntry:"@ablehi/automation-app-ui/styles.css",runtimeExports:["AutomationAppPortalProvider","useAutomationAppOverlayRoot"],tokens:c.map(([o,a])=>({name:o,role:a})),components:d,patterns:m};export{f as AUTOMATION_APP_UI_FOUNDATION_CATALOG};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ablehi/automation-app-ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Iframe-native public UI Foundation for Ablehi Automation Apps.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"registry": "https://registry.npmjs.org/"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@ablehi/automation-app-host-bridge": "0.2.
|
|
33
|
+
"@ablehi/automation-app-host-bridge": "0.2.2",
|
|
34
34
|
"@base-ui/react": "1.6.0",
|
|
35
35
|
"class-variance-authority": "0.7.1",
|
|
36
36
|
"clsx": "2.1.1",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"react-dom": "19.2.4"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@ablehi/server-api-contract": "0.6.
|
|
45
|
+
"@ablehi/server-api-contract": "0.6.2",
|
|
46
46
|
"@types/node": "20.19.41",
|
|
47
47
|
"@types/react": "19.2.14",
|
|
48
48
|
"@types/react-dom": "19.2.3",
|