@sealpixel/plugin-frame 1.0.0-rc.13 → 1.0.0-rc.15

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/index.d.ts CHANGED
@@ -91,4 +91,3 @@ export declare const framePlugin: import("@sealpixel/plugin-sdk").ConfigurablePl
91
91
  };
92
92
  enforce: boolean;
93
93
  }>;
94
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color, OperationBase, SourcePx } from '@sealpixel/core';\nimport { defineOperation, definePlugin } from '@sealpixel/plugin-sdk';\nimport { z } from 'zod';\n\nexport type FrameStyle = 'solid' | 'inset' | 'polaroid';\n\nexport interface FrameDoc {\n frame: { style: FrameStyle; color: Color; thickness: SourcePx; radius: SourcePx } | null;\n}\n\nexport interface FrameSetOp extends OperationBase<'frame.set'> {\n style?: FrameStyle | undefined;\n color?: Color | undefined;\n thickness?: SourcePx | undefined;\n radius?: SourcePx | undefined;\n}\nexport type FrameClearOp = OperationBase<'frame.clear'>;\n\ndeclare module '@sealpixel/core' {\n interface OperationRegistry {\n 'frame.set': FrameSetOp;\n 'frame.clear': FrameClearOp;\n }\n interface DocumentRegistry {\n frame: FrameDoc;\n }\n}\n\nconst channel = z.number().min(0).max(1);\nconst px = z.number().finite().min(0).max(4096);\nconst base = { id: z.string().min(1), at: z.number().optional() };\n\nexport const DEFAULT_FRAME = {\n style: 'solid' as FrameStyle,\n color: [1, 1, 1, 1] as Color,\n thickness: 24,\n radius: 0,\n};\n\nexport const frameSet = defineOperation<FrameDoc, FrameSetOp>({\n type: 'frame.set',\n schema: z\n .object({\n type: z.literal('frame.set'),\n ...base,\n style: z.enum(['solid', 'inset', 'polaroid']).optional(),\n color: z.tuple([channel, channel, channel, channel]).optional(),\n thickness: px.optional(),\n radius: px.optional(),\n })\n .strict(),\n reduce: (slice, op) => {\n const prev = slice.frame ?? DEFAULT_FRAME;\n return {\n frame: {\n style: op.style ?? prev.style,\n color: op.color ?? prev.color,\n thickness: op.thickness ?? prev.thickness,\n radius: op.radius ?? prev.radius,\n },\n };\n },\n});\nexport const frameClear = defineOperation<FrameDoc, FrameClearOp>({\n type: 'frame.clear',\n schema: z.object({ type: z.literal('frame.clear'), ...base }).strict(),\n reduce: () => ({ frame: null }),\n});\n\nconst hex = z.string().regex(/^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/, 'hex colour');\nconst range = z\n .object({ min: px, max: px, step: z.number().positive() })\n .strict()\n .refine((r) => r.min < r.max, 'min must be below max');\nconst StyleSchema = z.enum(['solid', 'inset', 'polaroid']);\nexport const FrameOptionsSchema = z\n .object({\n styles: z.array(StyleSchema).min(1),\n palette: z.array(hex),\n thicknessRange: range,\n radiusRange: range,\n defaults: z.object({ style: StyleSchema, color: hex, thickness: px, radius: px }).strict(),\n enforce: z.boolean(),\n })\n .strict()\n .refine((o) => o.styles.includes(o.defaults.style), 'defaults.style must be one of styles');\n\n/**\n * `styles`: frame styles offered. `palette`: hex swatches for the colour\n * (empty shows the free picker only). `radiusRange`: slider bounds in source px;\n * `thicknessRange`: accepted thicknesses (no slider, `defaults.thickness` applies).\n * `defaults`: values a new frame starts with.\n */\nexport type FrameOptions = z.infer<typeof FrameOptionsSchema>;\n\nexport const FRAME_DEFAULT_OPTIONS: FrameOptions = {\n styles: ['solid', 'inset', 'polaroid'],\n palette: [],\n thicknessRange: { min: 0, max: 512, step: 1 },\n radiusRange: { min: 0, max: 512, step: 1 },\n defaults: { style: 'solid', color: '#ffffff', thickness: 24, radius: 0 },\n enforce: false,\n};\n\nexport const framePlugin = definePlugin({\n id: 'frame',\n version: 1,\n operations: [frameSet, frameClear],\n initialDocument: { frame: null } as FrameDoc,\n stage: { name: 'frame', order: 600 },\n toPlan: (doc) => (doc.frame === null || doc.frame.thickness === 0 ? null : { ...doc.frame }),\n kernel: { kind: 'core' },\n options: {\n schema: FrameOptionsSchema,\n defaults: FRAME_DEFAULT_OPTIONS,\n describe: {\n styles: 'Frame styles offered (solid, inset, polaroid).',\n palette: 'Hex swatches for the frame colour; empty shows the free picker only.',\n thicknessRange:\n 'Thicknesses accepted with enforce, in source px; the UI has no slider, defaults.thickness applies.',\n radiusRange: 'Bounds and step of the corner radius slider, in source px.',\n defaults: 'Values a new frame starts with.',\n enforce: 'Reject styles, thickness or radius outside the options.',\n },\n },\n validate: (op, { options }) => {\n if (op.type !== 'frame.set' || !options.enforce) return null;\n const o = op as FrameSetOp;\n if (o.style !== undefined && !options.styles.includes(o.style))\n return `style \"${o.style}\" is not offered`;\n const t = options.thicknessRange;\n if (o.thickness !== undefined && (o.thickness < t.min - 1e-9 || o.thickness > t.max + 1e-9))\n return `thickness must stay within ${t.min}..${t.max}`;\n const r = options.radiusRange;\n if (o.radius !== undefined && (o.radius < r.min - 1e-9 || o.radius > r.max + 1e-9))\n return `radius must stay within ${r.min}..${r.max}`;\n return null;\n },\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sealpixel/plugin-frame",
3
- "version": "1.0.0-rc.13",
3
+ "version": "1.0.0-rc.15",
4
4
  "description": "Solid, inset and polaroid frames drawn inside the image bounds.",
5
5
  "license": "BUSL-1.1",
6
6
  "repository": {
@@ -27,15 +27,15 @@
27
27
  "./package.json": "./package.json"
28
28
  },
29
29
  "dependencies": {
30
- "@sealpixel/plugin-sdk": "1.0.0-rc.13"
30
+ "@sealpixel/plugin-sdk": "1.0.0-rc.15"
31
31
  },
32
32
  "peerDependencies": {
33
- "@sealpixel/core": "1.0.0-rc.13",
33
+ "@sealpixel/core": "1.0.0-rc.15",
34
34
  "zod": "^4.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@sealpixel/config": "0.0.0",
38
- "@sealpixel/core": "1.0.0-rc.13",
38
+ "@sealpixel/core": "1.0.0-rc.15",
39
39
  "@types/node": "^24.0.0",
40
40
  "typescript": "^6.0.0",
41
41
  "vitest": "^5.0.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1F;AAED,MAAM,WAAW,UAAW,SAAQ,aAAa,CAAC,WAAW,CAAC;IAC5D,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AACD,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAExD,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,iBAAiB;QACzB,WAAW,EAAE,UAAU,CAAC;QACxB,aAAa,EAAE,YAAY,CAAC;KAC7B;IACD,UAAU,gBAAgB;QACxB,KAAK,EAAE,QAAQ,CAAC;KACjB;CACF;AAMD,eAAO,MAAM,aAAa;WACN,UAAU;WACL,KAAK;;;CAG7B,CAAC;AAEF,eAAO,MAAM,QAAQ,8DAuBnB,CAAC;AACH,eAAO,MAAM,UAAU,gEAIrB,CAAC;AAQH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAU8D,CAAC;AAE9F;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB,EAAE,YAOnC,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;EAkCtB,CAAC"}