@forgedevstack/ink 1.2.1 → 1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.1
4
+
5
+ ### Added
6
+ - Ink Pro is the $10 license. It unlocks theme tokens, toolbar icons, rich paste, image upload, WYSIWYG mode, and split editors.
7
+ - Split view in `InkWorkspace` follows that license. The single editor stays available without it.
8
+
3
9
  ## 1.2.0
4
10
 
5
11
  ### Added
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),H=require("../InkTabs/InkTabs.cjs"),j=require("../InkEditor/InkEditor.cjs"),f=require("../InkEditor/components/PresenceStack/PresenceStack.cjs"),X=require("./hooks/useInkWorkspace.cjs"),t=require("./components/WorkspaceIcons.cjs"),P=require("../../constants/numbers.cjs"),A=require("../../constants/generals.const.cjs");require("../../constants/openai.const.cjs");const d=require("../../utils/cn.utils.cjs");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const i=require("../../common-components/Button/Button.cjs");require("react");require("react-dom");const n=require("../../constants/workspace.const.cjs"),G=p=>{const{documents:E,activeDocumentId:O,onActiveDocumentChange:T,onDocumentChange:r,onDocumentDelete:N,onDocumentRename:b,onDocumentSave:u,folders:S=[],onFolderCreate:K,onFolderDelete:m,collaboration:o,editorProps:C={},className:W=A.EMPTY_STRING,style:D}=p,{sidebarOpen:k,setSidebarOpen:v,splitMode:_,setSplitMode:I,setSecondaryDocId:w,searchQuery:y,setSearchQuery:B,editingDocId:g,editTitle:q,setEditTitle:M,activeDocument:l,secondaryDocument:c,filteredDocs:F,handleCreateDocument:R,handleStartRename:x,handleSaveRename:h,handleCancelRename:U}=X.useInkWorkspace(p);return e.jsxs("div",{className:d.cn("ink-workspace-root",W),style:D,"data-split-mode":_,children:[e.jsxs("header",{className:"ink-workspace-header",children:[e.jsxs("div",{className:"ink-workspace-header-left",children:[e.jsx(i.Button,{type:"button",className:"ink-workspace-toggle-btn",onClick:()=>v(!k),title:k?n.INK_WORKSPACE_HIDE_EXPLORER_TITLE:n.INK_WORKSPACE_SHOW_EXPLORER_TITLE,"aria-label":k?n.INK_WORKSPACE_HIDE_EXPLORER_TITLE:n.INK_WORKSPACE_SHOW_EXPLORER_TITLE,children:e.jsx(t.SidebarToggleIcon,{})}),e.jsx("span",{className:"ink-workspace-title",children:n.INK_WORKSPACE_TITLE}),e.jsxs("span",{className:"ink-workspace-count",children:["(",E.length," ",n.INK_WORKSPACE_DOCS_SUFFIX,")"]})]}),e.jsxs("div",{className:"ink-workspace-header-right",children:[e.jsxs("div",{className:"ink-workspace-split-controls",role:"group","aria-label":n.INK_WORKSPACE_SPLIT_VIEW_LABEL,children:[e.jsx(i.Button,{type:"button",className:d.cn("ink-workspace-icon-btn",_===n.INK_SPLIT_MODE_NONE&&"ink-active"),onClick:()=>I(n.INK_SPLIT_MODE_NONE),title:n.INK_WORKSPACE_SINGLE_VIEW_TITLE,children:e.jsx(t.SingleViewIcon,{})}),e.jsx(i.Button,{type:"button",className:d.cn("ink-workspace-icon-btn",_===n.INK_SPLIT_MODE_VERTICAL&&"ink-active"),onClick:()=>I(n.INK_SPLIT_MODE_VERTICAL),title:n.INK_WORKSPACE_SPLIT_SIDE_TITLE,children:e.jsx(t.SplitVerticalIcon,{})}),e.jsx(i.Button,{type:"button",className:d.cn("ink-workspace-icon-btn",_===n.INK_SPLIT_MODE_HORIZONTAL&&"ink-active"),onClick:()=>I(n.INK_SPLIT_MODE_HORIZONTAL),title:n.INK_WORKSPACE_SPLIT_STACKED_TITLE,children:e.jsx(t.SplitHorizontalIcon,{})})]}),u&&l&&e.jsx(i.Button,{type:"button",className:"ink-workspace-icon-btn",onClick:()=>u(l.id),title:n.INK_WORKSPACE_SAVE_TITLE,"aria-label":n.INK_WORKSPACE_SAVE_TITLE,children:e.jsx(t.SaveDocIcon,{})}),(o==null?void 0:o.collaborators)&&e.jsx(f.PresenceStack,{collaborators:o.collaborators,maxAvatars:o.maxAvatars})]})]}),e.jsxs("div",{className:"ink-workspace-body",children:[k&&e.jsxs("aside",{className:"ink-workspace-sidebar","aria-label":n.INK_WORKSPACE_TITLE,children:[e.jsxs("div",{className:"ink-workspace-sidebar-toolbar",children:[e.jsx("input",{type:"text",className:"ink-workspace-search-input",placeholder:n.INK_WORKSPACE_SEARCH_PLACEHOLDER,value:y,onChange:s=>B(s.target.value)}),e.jsx(i.Button,{type:"button",className:"ink-workspace-new-doc-btn",onClick:R,title:n.INK_WORKSPACE_NEW_DOC_BUTTON,"aria-label":n.INK_WORKSPACE_NEW_DOC_BUTTON,children:n.INK_WORKSPACE_NEW_DOC_BUTTON}),K&&e.jsx(i.Button,{type:"button",className:"ink-workspace-icon-btn",onClick:()=>K(n.INK_WORKSPACE_NEW_FOLDER),title:n.INK_WORKSPACE_NEW_FOLDER,"aria-label":n.INK_WORKSPACE_NEW_FOLDER,children:e.jsx(t.NewFolderIcon,{})})]}),S.length>P.NUMBER_ZERO&&e.jsx("div",{className:"ink-workspace-folders-section",children:S.map(s=>e.jsxs("div",{className:"ink-workspace-folder-item",children:[e.jsx("span",{className:"ink-doc-icon",children:"📁"}),e.jsx("span",{className:"ink-doc-title",children:s.name}),m&&e.jsx(i.Button,{type:"button",className:"ink-doc-action-btn ink-delete",onClick:()=>m(s.id),title:n.INK_WORKSPACE_CLOSE_FOLDER_BUTTON,"aria-label":n.INK_WORKSPACE_CLOSE_FOLDER_BUTTON,children:n.INK_WORKSPACE_CLOSE_FOLDER_BUTTON})]},s.id))}),e.jsx("div",{className:"ink-workspace-doc-list",role:"tree",children:F.map(s=>{const L=s.id===O,V=g===s.id;return e.jsxs("div",{role:"treeitem","aria-selected":L,className:d.cn("ink-workspace-doc-item",L&&"ink-doc-active"),onClick:()=>T(s.id),children:[e.jsx("span",{className:"ink-doc-icon",children:s.icon||e.jsx(t.FileDocumentIcon,{})}),V?e.jsx("input",{type:"text",className:"ink-doc-title-input",value:q,autoFocus:!0,onChange:a=>M(a.target.value),onBlur:()=>h(s.id),onKeyDown:a=>{a.key==="Enter"&&h(s.id),a.key==="Escape"&&U()},onClick:a=>a.stopPropagation()}):e.jsx("span",{className:"ink-doc-title",onDoubleClick:a=>x(s.id,s.title,a),children:s.title||n.INK_WORKSPACE_UNTITLED_FALLBACK}),s.isDirty&&e.jsx("span",{className:"ink-doc-dirty-dot"}),e.jsxs("div",{className:"ink-doc-actions",children:[e.jsx(i.Button,{type:"button",className:"ink-doc-action-btn",onClick:a=>x(s.id,s.title,a),title:n.INK_WORKSPACE_RENAME_TITLE,"aria-label":n.INK_WORKSPACE_RENAME_TITLE,children:e.jsx(t.RenamePencilIcon,{})}),E.length>P.NUMBER_ONE&&N&&e.jsx(i.Button,{type:"button",className:"ink-doc-action-btn ink-delete",onClick:a=>{a.stopPropagation(),N(s.id)},title:n.INK_WORKSPACE_DELETE_TITLE,"aria-label":n.INK_WORKSPACE_DELETE_TITLE,children:e.jsx(t.CloseCrossIcon,{})})]})]},s.id)})})]}),e.jsxs("main",{className:d.cn("ink-workspace-main-area",`ink-split-${_}`),children:[e.jsxs("section",{className:"ink-workspace-pane ink-primary-pane",children:[e.jsx(H.InkTabs,{documents:E,activeDocumentId:O,onTabSelect:T,onTabClose:N,onTabAdd:R,onTabRename:b}),l&&e.jsx("div",{className:"ink-workspace-editor-wrapper",children:e.jsx(j.InkEditor,{value:l.content,onChange:s=>r==null?void 0:r(l.id,s),readOnly:l.readOnly,collaboration:o,...C},l.id)})]}),_!==n.INK_SPLIT_MODE_NONE&&e.jsxs("section",{className:"ink-workspace-pane ink-secondary-pane",children:[e.jsxs("div",{className:"ink-secondary-pane-header",children:[e.jsx("span",{className:"ink-secondary-pane-label",children:n.INK_WORKSPACE_SPLIT_VIEW_LABEL}),e.jsx("select",{className:"ink-secondary-pane-select",value:(c==null?void 0:c.id)||A.EMPTY_STRING,onChange:s=>w(s.target.value),"aria-label":n.INK_WORKSPACE_SPLIT_VIEW_LABEL,children:E.map(s=>e.jsx("option",{value:s.id,children:s.title},s.id))})]}),c&&e.jsx("div",{className:"ink-workspace-editor-wrapper",children:e.jsx(j.InkEditor,{value:c.content,onChange:s=>r==null?void 0:r(c.id,s),readOnly:c.readOnly,...C},`sec-${c.id}`)})]})]})]})]})};exports.InkWorkspace=G;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),G=require("../InkTabs/InkTabs.cjs"),j=require("../InkEditor/InkEditor.cjs"),Z=require("../InkEditor/components/PresenceStack/PresenceStack.cjs"),Q=require("./hooks/useInkWorkspace.cjs"),t=require("./components/WorkspaceIcons.cjs"),b=require("../../constants/numbers.cjs"),A=require("../../constants/generals.const.cjs");require("../../constants/openai.const.cjs");const E=require("../../utils/cn.utils.cjs"),W=require("../../utils/premium.utils.cjs");require("../../utils/paste.utils.cjs");require("../../utils/exportDocument.utils.cjs");const i=require("../../common-components/Button/Button.cjs");require("react");require("react-dom");const n=require("../../constants/workspace.const.cjs"),Y=O=>{const{documents:k,activeDocumentId:T,onActiveDocumentChange:m,onDocumentChange:o,onDocumentDelete:I,onDocumentRename:D,onDocumentSave:S,folders:K=[],onFolderCreate:C,onFolderDelete:R,collaboration:_,editorProps:p={},className:v=A.EMPTY_STRING,style:w}=O,{sidebarOpen:N,setSidebarOpen:y,splitMode:B,setSplitMode:u,setSecondaryDocId:g,searchQuery:M,setSearchQuery:q,editingDocId:F,editTitle:U,setEditTitle:V,activeDocument:r,secondaryDocument:c,filteredDocs:H,handleCreateDocument:P,handleStartRename:h,handleSaveRename:x,handleCancelRename:f}=Q.useInkWorkspace(O),l=W.hasInkPremiumFeature(W.resolveInkPremium(p.premium),"splitEditors"),d=l?B:n.INK_SPLIT_MODE_NONE;return e.jsxs("div",{className:E.cn("ink-workspace-root",v),style:w,"data-split-mode":d,children:[e.jsxs("header",{className:"ink-workspace-header",children:[e.jsxs("div",{className:"ink-workspace-header-left",children:[e.jsx(i.Button,{type:"button",className:"ink-workspace-toggle-btn",onClick:()=>y(!N),title:N?n.INK_WORKSPACE_HIDE_EXPLORER_TITLE:n.INK_WORKSPACE_SHOW_EXPLORER_TITLE,"aria-label":N?n.INK_WORKSPACE_HIDE_EXPLORER_TITLE:n.INK_WORKSPACE_SHOW_EXPLORER_TITLE,children:e.jsx(t.SidebarToggleIcon,{})}),e.jsx("span",{className:"ink-workspace-title",children:n.INK_WORKSPACE_TITLE}),e.jsxs("span",{className:"ink-workspace-count",children:["(",k.length," ",n.INK_WORKSPACE_DOCS_SUFFIX,")"]})]}),e.jsxs("div",{className:"ink-workspace-header-right",children:[e.jsxs("div",{className:"ink-workspace-split-controls",role:"group","aria-label":n.INK_WORKSPACE_SPLIT_VIEW_LABEL,children:[e.jsx(i.Button,{type:"button",className:E.cn("ink-workspace-icon-btn",d===n.INK_SPLIT_MODE_NONE&&"ink-active"),onClick:()=>u(n.INK_SPLIT_MODE_NONE),title:n.INK_WORKSPACE_SINGLE_VIEW_TITLE,children:e.jsx(t.SingleViewIcon,{})}),e.jsx(i.Button,{type:"button",className:E.cn("ink-workspace-icon-btn",d===n.INK_SPLIT_MODE_VERTICAL&&"ink-active"),onClick:()=>l&&u(n.INK_SPLIT_MODE_VERTICAL),disabled:!l,title:l?n.INK_WORKSPACE_SPLIT_SIDE_TITLE:"Ink Pro",children:e.jsx(t.SplitVerticalIcon,{})}),e.jsx(i.Button,{type:"button",className:E.cn("ink-workspace-icon-btn",d===n.INK_SPLIT_MODE_HORIZONTAL&&"ink-active"),onClick:()=>l&&u(n.INK_SPLIT_MODE_HORIZONTAL),disabled:!l,title:l?n.INK_WORKSPACE_SPLIT_STACKED_TITLE:"Ink Pro",children:e.jsx(t.SplitHorizontalIcon,{})})]}),S&&r&&e.jsx(i.Button,{type:"button",className:"ink-workspace-icon-btn",onClick:()=>S(r.id),title:n.INK_WORKSPACE_SAVE_TITLE,"aria-label":n.INK_WORKSPACE_SAVE_TITLE,children:e.jsx(t.SaveDocIcon,{})}),(_==null?void 0:_.collaborators)&&e.jsx(Z.PresenceStack,{collaborators:_.collaborators,maxAvatars:_.maxAvatars})]})]}),e.jsxs("div",{className:"ink-workspace-body",children:[N&&e.jsxs("aside",{className:"ink-workspace-sidebar","aria-label":n.INK_WORKSPACE_TITLE,children:[e.jsxs("div",{className:"ink-workspace-sidebar-toolbar",children:[e.jsx("input",{type:"text",className:"ink-workspace-search-input",placeholder:n.INK_WORKSPACE_SEARCH_PLACEHOLDER,value:M,onChange:s=>q(s.target.value)}),e.jsx(i.Button,{type:"button",className:"ink-workspace-new-doc-btn",onClick:P,title:n.INK_WORKSPACE_NEW_DOC_BUTTON,"aria-label":n.INK_WORKSPACE_NEW_DOC_BUTTON,children:n.INK_WORKSPACE_NEW_DOC_BUTTON}),C&&e.jsx(i.Button,{type:"button",className:"ink-workspace-icon-btn",onClick:()=>C(n.INK_WORKSPACE_NEW_FOLDER),title:n.INK_WORKSPACE_NEW_FOLDER,"aria-label":n.INK_WORKSPACE_NEW_FOLDER,children:e.jsx(t.NewFolderIcon,{})})]}),K.length>b.NUMBER_ZERO&&e.jsx("div",{className:"ink-workspace-folders-section",children:K.map(s=>e.jsxs("div",{className:"ink-workspace-folder-item",children:[e.jsx("span",{className:"ink-doc-icon",children:"📁"}),e.jsx("span",{className:"ink-doc-title",children:s.name}),R&&e.jsx(i.Button,{type:"button",className:"ink-doc-action-btn ink-delete",onClick:()=>R(s.id),title:n.INK_WORKSPACE_CLOSE_FOLDER_BUTTON,"aria-label":n.INK_WORKSPACE_CLOSE_FOLDER_BUTTON,children:n.INK_WORKSPACE_CLOSE_FOLDER_BUTTON})]},s.id))}),e.jsx("div",{className:"ink-workspace-doc-list",role:"tree",children:H.map(s=>{const L=s.id===T,X=F===s.id;return e.jsxs("div",{role:"treeitem","aria-selected":L,className:E.cn("ink-workspace-doc-item",L&&"ink-doc-active"),onClick:()=>m(s.id),children:[e.jsx("span",{className:"ink-doc-icon",children:s.icon||e.jsx(t.FileDocumentIcon,{})}),X?e.jsx("input",{type:"text",className:"ink-doc-title-input",value:U,autoFocus:!0,onChange:a=>V(a.target.value),onBlur:()=>x(s.id),onKeyDown:a=>{a.key==="Enter"&&x(s.id),a.key==="Escape"&&f()},onClick:a=>a.stopPropagation()}):e.jsx("span",{className:"ink-doc-title",onDoubleClick:a=>h(s.id,s.title,a),children:s.title||n.INK_WORKSPACE_UNTITLED_FALLBACK}),s.isDirty&&e.jsx("span",{className:"ink-doc-dirty-dot"}),e.jsxs("div",{className:"ink-doc-actions",children:[e.jsx(i.Button,{type:"button",className:"ink-doc-action-btn",onClick:a=>h(s.id,s.title,a),title:n.INK_WORKSPACE_RENAME_TITLE,"aria-label":n.INK_WORKSPACE_RENAME_TITLE,children:e.jsx(t.RenamePencilIcon,{})}),k.length>b.NUMBER_ONE&&I&&e.jsx(i.Button,{type:"button",className:"ink-doc-action-btn ink-delete",onClick:a=>{a.stopPropagation(),I(s.id)},title:n.INK_WORKSPACE_DELETE_TITLE,"aria-label":n.INK_WORKSPACE_DELETE_TITLE,children:e.jsx(t.CloseCrossIcon,{})})]})]},s.id)})})]}),e.jsxs("main",{className:E.cn("ink-workspace-main-area",`ink-split-${d}`),children:[e.jsxs("section",{className:"ink-workspace-pane ink-primary-pane",children:[e.jsx(G.InkTabs,{documents:k,activeDocumentId:T,onTabSelect:m,onTabClose:I,onTabAdd:P,onTabRename:D}),r&&e.jsx("div",{className:"ink-workspace-editor-wrapper",children:e.jsx(j.InkEditor,{value:r.content,onChange:s=>o==null?void 0:o(r.id,s),readOnly:r.readOnly,collaboration:_,...p},r.id)})]}),d!==n.INK_SPLIT_MODE_NONE&&e.jsxs("section",{className:"ink-workspace-pane ink-secondary-pane",children:[e.jsxs("div",{className:"ink-secondary-pane-header",children:[e.jsx("span",{className:"ink-secondary-pane-label",children:n.INK_WORKSPACE_SPLIT_VIEW_LABEL}),e.jsx("select",{className:"ink-secondary-pane-select",value:(c==null?void 0:c.id)||A.EMPTY_STRING,onChange:s=>g(s.target.value),"aria-label":n.INK_WORKSPACE_SPLIT_VIEW_LABEL,children:k.map(s=>e.jsx("option",{value:s.id,children:s.title},s.id))})]}),c&&e.jsx("div",{className:"ink-workspace-editor-wrapper",children:e.jsx(j.InkEditor,{value:c.content,onChange:s=>o==null?void 0:o(c.id,s),readOnly:c.readOnly,...p},`sec-${c.id}`)})]})]})]})]})};exports.InkWorkspace=Y;
@@ -1 +1 @@
1
- {"version":3,"file":"InkWorkspace.d.ts","sourceRoot":"","sources":["../../../src/components/InkWorkspace/InkWorkspace.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2CjD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0SpD,CAAC"}
1
+ {"version":3,"file":"InkWorkspace.d.ts","sourceRoot":"","sources":["../../../src/components/InkWorkspace/InkWorkspace.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2CjD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8SpD,CAAC"}
@@ -1,60 +1,61 @@
1
1
  import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
- import { InkTabs as ae } from "../InkTabs/InkTabs.js";
3
- import { InkEditor as y } from "../InkEditor/InkEditor.js";
4
- import { PresenceStack as ie } from "../InkEditor/components/PresenceStack/PresenceStack.js";
5
- import { useInkWorkspace as ne } from "./hooks/useInkWorkspace.js";
6
- import { SidebarToggleIcon as te, SingleViewIcon as le, SplitVerticalIcon as ce, SplitHorizontalIcon as oe, SaveDocIcon as re, NewFolderIcon as se, FileDocumentIcon as de, RenamePencilIcon as pe, CloseCrossIcon as ke } from "./components/WorkspaceIcons.js";
7
- import { NUMBER_ZERO as me, NUMBER_ONE as Ne } from "../../constants/numbers.js";
8
- import { EMPTY_STRING as D } from "../../constants/generals.const.js";
2
+ import { InkTabs as ne } from "../InkTabs/InkTabs.js";
3
+ import { InkEditor as D } from "../InkEditor/InkEditor.js";
4
+ import { PresenceStack as te } from "../InkEditor/components/PresenceStack/PresenceStack.js";
5
+ import { useInkWorkspace as le } from "./hooks/useInkWorkspace.js";
6
+ import { SidebarToggleIcon as oe, SingleViewIcon as ce, SplitVerticalIcon as re, SplitHorizontalIcon as se, SaveDocIcon as de, NewFolderIcon as pe, FileDocumentIcon as ke, RenamePencilIcon as me, CloseCrossIcon as Ne } from "./components/WorkspaceIcons.js";
7
+ import { NUMBER_ZERO as Ee, NUMBER_ONE as _e } from "../../constants/numbers.js";
8
+ import { EMPTY_STRING as W } from "../../constants/generals.const.js";
9
9
  import "../../constants/openai.const.js";
10
- import { cn as d } from "../../utils/cn.utils.js";
10
+ import { cn as p } from "../../utils/cn.utils.js";
11
+ import { hasInkPremiumFeature as Ie, resolveInkPremium as he } from "../../utils/premium.utils.js";
11
12
  import "../../utils/paste.utils.js";
12
13
  import "../../utils/exportDocument.utils.js";
13
14
  import { Button as t } from "../../common-components/Button/Button.js";
14
15
  import "react";
15
16
  import "react-dom";
16
- import { INK_WORKSPACE_HIDE_EXPLORER_TITLE as W, INK_WORKSPACE_SHOW_EXPLORER_TITLE as g, INK_WORKSPACE_TITLE as f, INK_WORKSPACE_DOCS_SUFFIX as _e, INK_WORKSPACE_SPLIT_VIEW_LABEL as _, INK_WORKSPACE_SINGLE_VIEW_TITLE as Ee, INK_SPLIT_MODE_NONE as E, INK_WORKSPACE_SPLIT_SIDE_TITLE as Ie, INK_SPLIT_MODE_VERTICAL as F, INK_WORKSPACE_SPLIT_STACKED_TITLE as he, INK_SPLIT_MODE_HORIZONTAL as M, INK_WORKSPACE_SAVE_TITLE as B, INK_WORKSPACE_SEARCH_PLACEHOLDER as be, INK_WORKSPACE_NEW_DOC_BUTTON as I, INK_WORKSPACE_NEW_FOLDER as h, INK_WORKSPACE_CLOSE_FOLDER_BUTTON as b, INK_WORKSPACE_UNTITLED_FALLBACK as Ce, INK_WORKSPACE_RENAME_TITLE as x, INK_WORKSPACE_DELETE_TITLE as H } from "../../constants/workspace.const.js";
17
- const Fe = (C) => {
17
+ import { INK_SPLIT_MODE_NONE as N, INK_WORKSPACE_HIDE_EXPLORER_TITLE as g, INK_WORKSPACE_SHOW_EXPLORER_TITLE as f, INK_WORKSPACE_TITLE as F, INK_WORKSPACE_DOCS_SUFFIX as be, INK_WORKSPACE_SPLIT_VIEW_LABEL as h, INK_WORKSPACE_SINGLE_VIEW_TITLE as Se, INK_WORKSPACE_SPLIT_SIDE_TITLE as Ce, INK_SPLIT_MODE_VERTICAL as M, INK_WORKSPACE_SPLIT_STACKED_TITLE as ue, INK_SPLIT_MODE_HORIZONTAL as B, INK_WORKSPACE_SAVE_TITLE as x, INK_WORKSPACE_SEARCH_PLACEHOLDER as Te, INK_WORKSPACE_NEW_DOC_BUTTON as b, INK_WORKSPACE_NEW_FOLDER as S, INK_WORKSPACE_CLOSE_FOLDER_BUTTON as C, INK_WORKSPACE_UNTITLED_FALLBACK as Oe, INK_WORKSPACE_RENAME_TITLE as H, INK_WORKSPACE_DELETE_TITLE as U } from "../../constants/workspace.const.js";
18
+ const Ue = (u) => {
18
19
  const {
19
- documents: p,
20
- activeDocumentId: S,
21
- onActiveDocumentChange: T,
22
- onDocumentChange: o,
23
- onDocumentDelete: m,
24
- onDocumentRename: U,
25
- onDocumentSave: u,
26
- folders: O = [],
27
- onFolderCreate: K,
28
- onFolderDelete: R,
29
- collaboration: r,
30
- editorProps: v = {},
31
- className: V = D,
32
- style: X
33
- } = C, {
34
- sidebarOpen: k,
35
- setSidebarOpen: j,
36
- splitMode: s,
37
- setSplitMode: N,
38
- setSecondaryDocId: G,
39
- searchQuery: Q,
40
- setSearchQuery: Z,
41
- editingDocId: $,
42
- editTitle: z,
43
- setEditTitle: Y,
44
- activeDocument: c,
20
+ documents: k,
21
+ activeDocumentId: T,
22
+ onActiveDocumentChange: O,
23
+ onDocumentChange: r,
24
+ onDocumentDelete: E,
25
+ onDocumentRename: V,
26
+ onDocumentSave: K,
27
+ folders: v = [],
28
+ onFolderCreate: R,
29
+ onFolderDelete: P,
30
+ collaboration: s,
31
+ editorProps: _ = {},
32
+ className: X = W,
33
+ style: j
34
+ } = u, {
35
+ sidebarOpen: m,
36
+ setSidebarOpen: G,
37
+ splitMode: Q,
38
+ setSplitMode: I,
39
+ setSecondaryDocId: Z,
40
+ searchQuery: $,
41
+ setSearchQuery: z,
42
+ editingDocId: Y,
43
+ editTitle: q,
44
+ setEditTitle: J,
45
+ activeDocument: o,
45
46
  secondaryDocument: l,
46
- filteredDocs: q,
47
+ filteredDocs: ee,
47
48
  handleCreateDocument: w,
48
49
  handleStartRename: A,
49
50
  handleSaveRename: L,
50
- handleCancelRename: J
51
- } = ne(C);
51
+ handleCancelRename: ae
52
+ } = le(u), c = Ie(he(_.premium), "splitEditors"), d = c ? Q : N;
52
53
  return /* @__PURE__ */ i(
53
54
  "div",
54
55
  {
55
- className: d("ink-workspace-root", V),
56
- style: X,
57
- "data-split-mode": s,
56
+ className: p("ink-workspace-root", X),
57
+ style: j,
58
+ "data-split-mode": d,
58
59
  children: [
59
60
  /* @__PURE__ */ i("header", { className: "ink-workspace-header", children: [
60
61
  /* @__PURE__ */ i("div", { className: "ink-workspace-header-left", children: [
@@ -63,85 +64,87 @@ const Fe = (C) => {
63
64
  {
64
65
  type: "button",
65
66
  className: "ink-workspace-toggle-btn",
66
- onClick: () => j(!k),
67
- title: k ? W : g,
68
- "aria-label": k ? W : g,
69
- children: /* @__PURE__ */ e(te, {})
67
+ onClick: () => G(!m),
68
+ title: m ? g : f,
69
+ "aria-label": m ? g : f,
70
+ children: /* @__PURE__ */ e(oe, {})
70
71
  }
71
72
  ),
72
- /* @__PURE__ */ e("span", { className: "ink-workspace-title", children: f }),
73
+ /* @__PURE__ */ e("span", { className: "ink-workspace-title", children: F }),
73
74
  /* @__PURE__ */ i("span", { className: "ink-workspace-count", children: [
74
75
  "(",
75
- p.length,
76
+ k.length,
76
77
  " ",
77
- _e,
78
+ be,
78
79
  ")"
79
80
  ] })
80
81
  ] }),
81
82
  /* @__PURE__ */ i("div", { className: "ink-workspace-header-right", children: [
82
- /* @__PURE__ */ i("div", { className: "ink-workspace-split-controls", role: "group", "aria-label": _, children: [
83
+ /* @__PURE__ */ i("div", { className: "ink-workspace-split-controls", role: "group", "aria-label": h, children: [
83
84
  /* @__PURE__ */ e(
84
85
  t,
85
86
  {
86
87
  type: "button",
87
- className: d("ink-workspace-icon-btn", s === E && "ink-active"),
88
- onClick: () => N(E),
89
- title: Ee,
90
- children: /* @__PURE__ */ e(le, {})
88
+ className: p("ink-workspace-icon-btn", d === N && "ink-active"),
89
+ onClick: () => I(N),
90
+ title: Se,
91
+ children: /* @__PURE__ */ e(ce, {})
91
92
  }
92
93
  ),
93
94
  /* @__PURE__ */ e(
94
95
  t,
95
96
  {
96
97
  type: "button",
97
- className: d("ink-workspace-icon-btn", s === F && "ink-active"),
98
- onClick: () => N(F),
99
- title: Ie,
100
- children: /* @__PURE__ */ e(ce, {})
98
+ className: p("ink-workspace-icon-btn", d === M && "ink-active"),
99
+ onClick: () => c && I(M),
100
+ disabled: !c,
101
+ title: c ? Ce : "Ink Pro",
102
+ children: /* @__PURE__ */ e(re, {})
101
103
  }
102
104
  ),
103
105
  /* @__PURE__ */ e(
104
106
  t,
105
107
  {
106
108
  type: "button",
107
- className: d("ink-workspace-icon-btn", s === M && "ink-active"),
108
- onClick: () => N(M),
109
- title: he,
110
- children: /* @__PURE__ */ e(oe, {})
109
+ className: p("ink-workspace-icon-btn", d === B && "ink-active"),
110
+ onClick: () => c && I(B),
111
+ disabled: !c,
112
+ title: c ? ue : "Ink Pro",
113
+ children: /* @__PURE__ */ e(se, {})
111
114
  }
112
115
  )
113
116
  ] }),
114
- u && c && /* @__PURE__ */ e(
117
+ K && o && /* @__PURE__ */ e(
115
118
  t,
116
119
  {
117
120
  type: "button",
118
121
  className: "ink-workspace-icon-btn",
119
- onClick: () => u(c.id),
120
- title: B,
121
- "aria-label": B,
122
- children: /* @__PURE__ */ e(re, {})
122
+ onClick: () => K(o.id),
123
+ title: x,
124
+ "aria-label": x,
125
+ children: /* @__PURE__ */ e(de, {})
123
126
  }
124
127
  ),
125
- (r == null ? void 0 : r.collaborators) && /* @__PURE__ */ e(
126
- ie,
128
+ (s == null ? void 0 : s.collaborators) && /* @__PURE__ */ e(
129
+ te,
127
130
  {
128
- collaborators: r.collaborators,
129
- maxAvatars: r.maxAvatars
131
+ collaborators: s.collaborators,
132
+ maxAvatars: s.maxAvatars
130
133
  }
131
134
  )
132
135
  ] })
133
136
  ] }),
134
137
  /* @__PURE__ */ i("div", { className: "ink-workspace-body", children: [
135
- k && /* @__PURE__ */ i("aside", { className: "ink-workspace-sidebar", "aria-label": f, children: [
138
+ m && /* @__PURE__ */ i("aside", { className: "ink-workspace-sidebar", "aria-label": F, children: [
136
139
  /* @__PURE__ */ i("div", { className: "ink-workspace-sidebar-toolbar", children: [
137
140
  /* @__PURE__ */ e(
138
141
  "input",
139
142
  {
140
143
  type: "text",
141
144
  className: "ink-workspace-search-input",
142
- placeholder: be,
143
- value: Q,
144
- onChange: (a) => Z(a.target.value)
145
+ placeholder: Te,
146
+ value: $,
147
+ onChange: (a) => z(a.target.value)
145
148
  }
146
149
  ),
147
150
  /* @__PURE__ */ e(
@@ -150,60 +153,60 @@ const Fe = (C) => {
150
153
  type: "button",
151
154
  className: "ink-workspace-new-doc-btn",
152
155
  onClick: w,
153
- title: I,
154
- "aria-label": I,
155
- children: I
156
+ title: b,
157
+ "aria-label": b,
158
+ children: b
156
159
  }
157
160
  ),
158
- K && /* @__PURE__ */ e(
161
+ R && /* @__PURE__ */ e(
159
162
  t,
160
163
  {
161
164
  type: "button",
162
165
  className: "ink-workspace-icon-btn",
163
- onClick: () => K(h),
164
- title: h,
165
- "aria-label": h,
166
- children: /* @__PURE__ */ e(se, {})
166
+ onClick: () => R(S),
167
+ title: S,
168
+ "aria-label": S,
169
+ children: /* @__PURE__ */ e(pe, {})
167
170
  }
168
171
  )
169
172
  ] }),
170
- O.length > me && /* @__PURE__ */ e("div", { className: "ink-workspace-folders-section", children: O.map((a) => /* @__PURE__ */ i("div", { className: "ink-workspace-folder-item", children: [
173
+ v.length > Ee && /* @__PURE__ */ e("div", { className: "ink-workspace-folders-section", children: v.map((a) => /* @__PURE__ */ i("div", { className: "ink-workspace-folder-item", children: [
171
174
  /* @__PURE__ */ e("span", { className: "ink-doc-icon", children: "📁" }),
172
175
  /* @__PURE__ */ e("span", { className: "ink-doc-title", children: a.name }),
173
- R && /* @__PURE__ */ e(
176
+ P && /* @__PURE__ */ e(
174
177
  t,
175
178
  {
176
179
  type: "button",
177
180
  className: "ink-doc-action-btn ink-delete",
178
- onClick: () => R(a.id),
179
- title: b,
180
- "aria-label": b,
181
- children: b
181
+ onClick: () => P(a.id),
182
+ title: C,
183
+ "aria-label": C,
184
+ children: C
182
185
  }
183
186
  )
184
187
  ] }, a.id)) }),
185
- /* @__PURE__ */ e("div", { className: "ink-workspace-doc-list", role: "tree", children: q.map((a) => {
186
- const P = a.id === S, ee = $ === a.id;
188
+ /* @__PURE__ */ e("div", { className: "ink-workspace-doc-list", role: "tree", children: ee.map((a) => {
189
+ const y = a.id === T, ie = Y === a.id;
187
190
  return /* @__PURE__ */ i(
188
191
  "div",
189
192
  {
190
193
  role: "treeitem",
191
- "aria-selected": P,
192
- className: d("ink-workspace-doc-item", P && "ink-doc-active"),
193
- onClick: () => T(a.id),
194
+ "aria-selected": y,
195
+ className: p("ink-workspace-doc-item", y && "ink-doc-active"),
196
+ onClick: () => O(a.id),
194
197
  children: [
195
- /* @__PURE__ */ e("span", { className: "ink-doc-icon", children: a.icon || /* @__PURE__ */ e(de, {}) }),
196
- ee ? /* @__PURE__ */ e(
198
+ /* @__PURE__ */ e("span", { className: "ink-doc-icon", children: a.icon || /* @__PURE__ */ e(ke, {}) }),
199
+ ie ? /* @__PURE__ */ e(
197
200
  "input",
198
201
  {
199
202
  type: "text",
200
203
  className: "ink-doc-title-input",
201
- value: z,
204
+ value: q,
202
205
  autoFocus: !0,
203
- onChange: (n) => Y(n.target.value),
206
+ onChange: (n) => J(n.target.value),
204
207
  onBlur: () => L(a.id),
205
208
  onKeyDown: (n) => {
206
- n.key === "Enter" && L(a.id), n.key === "Escape" && J();
209
+ n.key === "Enter" && L(a.id), n.key === "Escape" && ae();
207
210
  },
208
211
  onClick: (n) => n.stopPropagation()
209
212
  }
@@ -212,7 +215,7 @@ const Fe = (C) => {
212
215
  {
213
216
  className: "ink-doc-title",
214
217
  onDoubleClick: (n) => A(a.id, a.title, n),
215
- children: a.title || Ce
218
+ children: a.title || Oe
216
219
  }
217
220
  ),
218
221
  a.isDirty && /* @__PURE__ */ e("span", { className: "ink-doc-dirty-dot" }),
@@ -223,22 +226,22 @@ const Fe = (C) => {
223
226
  type: "button",
224
227
  className: "ink-doc-action-btn",
225
228
  onClick: (n) => A(a.id, a.title, n),
226
- title: x,
227
- "aria-label": x,
228
- children: /* @__PURE__ */ e(pe, {})
229
+ title: H,
230
+ "aria-label": H,
231
+ children: /* @__PURE__ */ e(me, {})
229
232
  }
230
233
  ),
231
- p.length > Ne && m && /* @__PURE__ */ e(
234
+ k.length > _e && E && /* @__PURE__ */ e(
232
235
  t,
233
236
  {
234
237
  type: "button",
235
238
  className: "ink-doc-action-btn ink-delete",
236
239
  onClick: (n) => {
237
- n.stopPropagation(), m(a.id);
240
+ n.stopPropagation(), E(a.id);
238
241
  },
239
- title: H,
240
- "aria-label": H,
241
- children: /* @__PURE__ */ e(ke, {})
242
+ title: U,
243
+ "aria-label": U,
244
+ children: /* @__PURE__ */ e(Ne, {})
242
245
  }
243
246
  )
244
247
  ] })
@@ -248,52 +251,52 @@ const Fe = (C) => {
248
251
  );
249
252
  }) })
250
253
  ] }),
251
- /* @__PURE__ */ i("main", { className: d("ink-workspace-main-area", `ink-split-${s}`), children: [
254
+ /* @__PURE__ */ i("main", { className: p("ink-workspace-main-area", `ink-split-${d}`), children: [
252
255
  /* @__PURE__ */ i("section", { className: "ink-workspace-pane ink-primary-pane", children: [
253
256
  /* @__PURE__ */ e(
254
- ae,
257
+ ne,
255
258
  {
256
- documents: p,
257
- activeDocumentId: S,
258
- onTabSelect: T,
259
- onTabClose: m,
259
+ documents: k,
260
+ activeDocumentId: T,
261
+ onTabSelect: O,
262
+ onTabClose: E,
260
263
  onTabAdd: w,
261
- onTabRename: U
264
+ onTabRename: V
262
265
  }
263
266
  ),
264
- c && /* @__PURE__ */ e("div", { className: "ink-workspace-editor-wrapper", children: /* @__PURE__ */ e(
265
- y,
267
+ o && /* @__PURE__ */ e("div", { className: "ink-workspace-editor-wrapper", children: /* @__PURE__ */ e(
268
+ D,
266
269
  {
267
- value: c.content,
268
- onChange: (a) => o == null ? void 0 : o(c.id, a),
269
- readOnly: c.readOnly,
270
- collaboration: r,
271
- ...v
270
+ value: o.content,
271
+ onChange: (a) => r == null ? void 0 : r(o.id, a),
272
+ readOnly: o.readOnly,
273
+ collaboration: s,
274
+ ..._
272
275
  },
273
- c.id
276
+ o.id
274
277
  ) })
275
278
  ] }),
276
- s !== E && /* @__PURE__ */ i("section", { className: "ink-workspace-pane ink-secondary-pane", children: [
279
+ d !== N && /* @__PURE__ */ i("section", { className: "ink-workspace-pane ink-secondary-pane", children: [
277
280
  /* @__PURE__ */ i("div", { className: "ink-secondary-pane-header", children: [
278
- /* @__PURE__ */ e("span", { className: "ink-secondary-pane-label", children: _ }),
281
+ /* @__PURE__ */ e("span", { className: "ink-secondary-pane-label", children: h }),
279
282
  /* @__PURE__ */ e(
280
283
  "select",
281
284
  {
282
285
  className: "ink-secondary-pane-select",
283
- value: (l == null ? void 0 : l.id) || D,
284
- onChange: (a) => G(a.target.value),
285
- "aria-label": _,
286
- children: p.map((a) => /* @__PURE__ */ e("option", { value: a.id, children: a.title }, a.id))
286
+ value: (l == null ? void 0 : l.id) || W,
287
+ onChange: (a) => Z(a.target.value),
288
+ "aria-label": h,
289
+ children: k.map((a) => /* @__PURE__ */ e("option", { value: a.id, children: a.title }, a.id))
287
290
  }
288
291
  )
289
292
  ] }),
290
293
  l && /* @__PURE__ */ e("div", { className: "ink-workspace-editor-wrapper", children: /* @__PURE__ */ e(
291
- y,
294
+ D,
292
295
  {
293
296
  value: l.content,
294
- onChange: (a) => o == null ? void 0 : o(l.id, a),
297
+ onChange: (a) => r == null ? void 0 : r(l.id, a),
295
298
  readOnly: l.readOnly,
296
- ...v
299
+ ..._
297
300
  },
298
301
  `sec-${l.id}`
299
302
  ) })
@@ -305,5 +308,5 @@ const Fe = (C) => {
305
308
  );
306
309
  };
307
310
  export {
308
- Fe as InkWorkspace
311
+ Ue as InkWorkspace
309
312
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../constants/openai.const.cjs");const s=require("../constants/premium.const.cjs");require("react/jsx-runtime");require("./paste.utils.cjs");require("./exportDocument.utils.cjs");require("react");require("react-dom");const E=()=>Object.fromEntries(s.INK_PREMIUM_FEATURES.map(e=>[e,!1])),n=()=>Object.fromEntries(s.INK_PREMIUM_FEATURES.map(e=>[e,!0])),l=/^[A-Z0-9]{4}(?:_[A-Z0-9]{4}){3}$/,a=e=>{if(!e)return!1;const r=e.trim();if(!r.startsWith(s.INK_PREMIUM_LICENSE_PREFIX))return!1;const t=r.slice(s.INK_PREMIUM_LICENSE_PREFIX.length);return l.test(t)},I=e=>{const r=!!(e!=null&&e.enabled||a(e==null?void 0:e.licenseKey));if(!r)return{active:!1,features:E()};const t=n();if(e!=null&&e.features)for(const u of s.INK_PREMIUM_FEATURES)e.features[u]===!1&&(t[u]=!1);return{active:r,features:t}},_=(e,r)=>e.active&&e.features[r],i=e=>{if(!e)return{};const r={};return Object.keys(s.INK_THEME_CSS_VARS).forEach(t=>{const u=e[t];u&&(r[s.INK_THEME_CSS_VARS[t]]=u)}),r};exports.hasInkPremiumFeature=_;exports.isInkPremiumLicenseKey=a;exports.resolveInkPremium=I;exports.themeTokensToStyle=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../constants/openai.const.cjs");const s=require("../constants/premium.const.cjs");require("react/jsx-runtime");require("./paste.utils.cjs");require("./exportDocument.utils.cjs");require("react");require("react-dom");const E=()=>Object.fromEntries(s.INK_PREMIUM_FEATURES.map(e=>[e,!1])),n=()=>Object.fromEntries(s.INK_PREMIUM_FEATURES.map(e=>[e,!0])),I=/^[A-Z0-9]{4}(?:_[A-Z0-9]{4}){3}$/,_=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,u=e=>{if(!e)return!1;const t=e.trim();if(_.test(t))return!0;if(!t.startsWith(s.INK_PREMIUM_LICENSE_PREFIX))return!1;const r=t.slice(s.INK_PREMIUM_LICENSE_PREFIX.length);return I.test(r)},i=e=>{const t=!!(e!=null&&e.enabled||u(e==null?void 0:e.licenseKey));if(!t)return{active:!1,features:E()};const r=n();if(e!=null&&e.features)for(const a of s.INK_PREMIUM_FEATURES)e.features[a]===!1&&(r[a]=!1);return{active:t,features:r}},l=(e,t)=>e.active&&e.features[t],m=e=>{if(!e)return{};const t={};return Object.keys(s.INK_THEME_CSS_VARS).forEach(r=>{const a=e[r];a&&(t[s.INK_THEME_CSS_VARS[r]]=a)}),t};exports.hasInkPremiumFeature=l;exports.isInkPremiumLicenseKey=u;exports.resolveInkPremium=i;exports.themeTokensToStyle=m;
@@ -1 +1 @@
1
- {"version":3,"file":"premium.utils.d.ts","sourceRoot":"","sources":["../../src/utils/premium.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACf,MAAM,UAAU,CAAC;AAqBlB,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,KAAG,OAM5D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,gBAAgB,KAAG,kBAc7D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,kBAAkB,EAC3B,SAAS,iBAAiB,KACzB,OAAsD,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAUhF,CAAC"}
1
+ {"version":3,"file":"premium.utils.d.ts","sourceRoot":"","sources":["../../src/utils/premium.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACf,MAAM,UAAU,CAAC;AAsBlB,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,KAAG,OAO5D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,gBAAgB,KAAG,kBAc7D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,kBAAkB,EAC3B,SAAS,iBAAiB,KACzB,OAAsD,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAUhF,CAAC"}
@@ -1,36 +1,37 @@
1
1
  import "../constants/openai.const.js";
2
- import { INK_PREMIUM_LICENSE_PREFIX as u, INK_PREMIUM_FEATURES as a, INK_THEME_CSS_VARS as m } from "../constants/premium.const.js";
2
+ import { INK_PREMIUM_LICENSE_PREFIX as u, INK_PREMIUM_FEATURES as a, INK_THEME_CSS_VARS as o } from "../constants/premium.const.js";
3
3
  import "react/jsx-runtime";
4
4
  import "./paste.utils.js";
5
5
  import "./exportDocument.utils.js";
6
6
  import "react";
7
7
  import "react-dom";
8
- const o = () => Object.fromEntries(a.map((e) => [e, !1])), l = () => Object.fromEntries(a.map((e) => [e, !0])), n = /^[A-Z0-9]{4}(?:_[A-Z0-9]{4}){3}$/, E = (e) => {
8
+ const m = () => Object.fromEntries(a.map((e) => [e, !1])), n = () => Object.fromEntries(a.map((e) => [e, !0])), E = /^[A-Z0-9]{4}(?:_[A-Z0-9]{4}){3}$/, f = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, l = (e) => {
9
9
  if (!e) return !1;
10
10
  const t = e.trim();
11
+ if (f.test(t)) return !0;
11
12
  if (!t.startsWith(u)) return !1;
12
13
  const r = t.slice(u.length);
13
- return n.test(r);
14
+ return E.test(r);
14
15
  }, S = (e) => {
15
- const t = !!(e != null && e.enabled || E(e == null ? void 0 : e.licenseKey));
16
+ const t = !!(e != null && e.enabled || l(e == null ? void 0 : e.licenseKey));
16
17
  if (!t)
17
- return { active: !1, features: o() };
18
- const r = l();
18
+ return { active: !1, features: m() };
19
+ const r = n();
19
20
  if (e != null && e.features)
20
21
  for (const s of a)
21
22
  e.features[s] === !1 && (r[s] = !1);
22
23
  return { active: t, features: r };
23
- }, N = (e, t) => e.active && e.features[t], O = (e) => {
24
+ }, T = (e, t) => e.active && e.features[t], O = (e) => {
24
25
  if (!e) return {};
25
26
  const t = {};
26
- return Object.keys(m).forEach((r) => {
27
+ return Object.keys(o).forEach((r) => {
27
28
  const s = e[r];
28
- s && (t[m[r]] = s);
29
+ s && (t[o[r]] = s);
29
30
  }), t;
30
31
  };
31
32
  export {
32
- N as hasInkPremiumFeature,
33
- E as isInkPremiumLicenseKey,
33
+ T as hasInkPremiumFeature,
34
+ l as isInkPremiumLicenseKey,
34
35
  S as resolveInkPremium,
35
36
  O as themeTokensToStyle
36
37
  };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=premium.utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"premium.utils.test.d.ts","sourceRoot":"","sources":["../../src/utils/premium.utils.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgedevstack/ink",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "ForgeStack rich text editor for React — WYSIWYG with tables, track changes, comments, block handles, sign pad, and pluggable Ink AI (BYO LLM). The writing layer of ForgeStack.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",