@lokalise/harmony 1.3.0 → 1.4.0-exp-sidebarComponent.1
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/README.md +3 -0
- package/dist/harmony.cjs +1 -1
- package/dist/harmony.mjs +72 -69
- package/dist/types/fixtures/sidebar/profileMenu.d.ts +2 -0
- package/dist/types/fixtures/sidebar/tasks.d.ts +2 -0
- package/dist/types/src/components/Sidebar/Sidebar.d.ts +45 -0
- package/dist/types/src/components/Sidebar/Sidebar.stories.d.ts +7 -0
- package/dist/types/src/components/Sidebar/UpgradeIcon/UpgradeIcon.d.ts +5 -0
- package/dist/types/src/components/Sidebar/Widgets/Avatar/Avatar.d.ts +8 -0
- package/dist/types/src/components/Sidebar/Widgets/IconLink/IconLink.d.ts +8 -0
- package/dist/types/src/components/Sidebar/Widgets/Menu/Menu.d.ts +2 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.d.ts +8 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContent.d.ts +6 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContext.d.ts +3 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuProvider.d.ts +7 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.d.ts +7 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.d.ts +8 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.d.ts +6 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.d.ts +5 -0
- package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/types.d.ts +22 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/TaskLanguage/TaskLanguage.d.ts +6 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/TaskLanguageCompleted/TaskLanguageCompleted.d.ts +7 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/TaskOverview/TaskOverview.d.ts +5 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/Tasks.d.ts +3 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/TasksContext.d.ts +2 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/TasksPopover/TasksPopover.d.ts +1 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/TasksProvider.d.ts +10 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/index.d.ts +2 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/types.d.ts +85 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/utils/content.d.ts +16 -0
- package/dist/types/src/components/Sidebar/Widgets/Tasks/utils/taskEvents.d.ts +23 -0
- package/dist/types/src/components/Sidebar/Widgets/index.d.ts +5 -0
- package/dist/types/src/components/Sidebar/types.d.ts +14 -0
- package/dist/types/src/components/Sidebar/utils/index.d.ts +4 -0
- package/dist/types/src/node.d.ts +1 -7
- package/dist/types/src/utils/hooks/useEffectOnce.d.ts +5 -0
- package/dist/types/src/utils/node.d.ts +6 -0
- package/dist/types/src/utils/typeUtils.d.ts +3 -0
- package/dist/types/vite.config.d.ts +2 -0
- package/package.json +3 -2
package/README.md
CHANGED
@@ -1,2 +1,5 @@
|
|
1
1
|
# harmony
|
2
2
|
A temporary shared library designed to house reusable components, such as molecules and organisms, exclusively for the Expert and Flow platforms during the migration period. This library will be retired upon the completion of the migration and the establishment of the unified next-gen platform.
|
3
|
+
|
4
|
+
## Storybook
|
5
|
+
https://lokalise.github.io/harmony/?path=/story/app-shell-navigationpanel--default&args=sticky:!true
|
package/dist/harmony.cjs
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("react/jsx-runtime"),_=require("react"),Te=require("date-fns"),qe=require("date-fns-tz");function Le(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,t.get?t:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const O=Le(_);var x=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Se(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var L,re;function Y(){if(re)return L;re=1;function e(r){var n=typeof r;return r!=null&&(n=="object"||n=="function")}return L=e,L}var A,te;function Ae(){if(te)return A;te=1;var e=typeof x=="object"&&x&&x.Object===Object&&x;return A=e,A}var D,ne;function Ee(){if(ne)return D;ne=1;var e=Ae(),r=typeof self=="object"&&self&&self.Object===Object&&self,n=e||r||Function("return this")();return D=n,D}var k,ie;function De(){if(ie)return k;ie=1;var e=Ee(),r=function(){return e.Date.now()};return k=r,k}var C,oe;function ke(){if(oe)return C;oe=1;var e=/\s/;function r(n){for(var t=n.length;t--&&e.test(n.charAt(t)););return t}return C=r,C}var z,ae;function Ce(){if(ae)return z;ae=1;var e=ke(),r=/^\s+/;function n(t){return t&&t.slice(0,e(t)+1).replace(r,"")}return z=n,z}var M,se;function ye(){if(se)return M;se=1;var e=Ee(),r=e.Symbol;return M=r,M}var F,ue;function ze(){if(ue)return F;ue=1;var e=ye(),r=Object.prototype,n=r.hasOwnProperty,t=r.toString,i=e?e.toStringTag:void 0;function a(s){var u=n.call(s,i),c=s[i];try{s[i]=void 0;var o=!0}catch{}var l=t.call(s);return o&&(u?s[i]=c:delete s[i]),l}return F=a,F}var G,ce;function Me(){if(ce)return G;ce=1;var e=Object.prototype,r=e.toString;function n(t){return r.call(t)}return G=n,G}var B,le;function Fe(){if(le)return B;le=1;var e=ye(),r=ze(),n=Me(),t="[object Null]",i="[object Undefined]",a=e?e.toStringTag:void 0;function s(u){return u==null?u===void 0?i:t:a&&a in Object(u)?r(u):n(u)}return B=s,B}var U,fe;function Ge(){if(fe)return U;fe=1;function e(r){return r!=null&&typeof r=="object"}return U=e,U}var H,de;function Be(){if(de)return H;de=1;var e=Fe(),r=Ge(),n="[object Symbol]";function t(i){return typeof i=="symbol"||r(i)&&e(i)==n}return H=t,H}var W,be;function Ue(){if(be)return W;be=1;var e=Ce(),r=Y(),n=Be(),t=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,u=parseInt;function c(o){if(typeof o=="number")return o;if(n(o))return t;if(r(o)){var l=typeof o.valueOf=="function"?o.valueOf():o;o=r(l)?l+"":l}if(typeof o!="string")return o===0?o:+o;o=e(o);var g=a.test(o);return g||s.test(o)?u(o.slice(2),g?2:8):i.test(o)?t:+o}return W=c,W}var $,ge;function Pe(){if(ge)return $;ge=1;var e=Y(),r=De(),n=Ue(),t="Expected a function",i=Math.max,a=Math.min;function s(u,c,o){var l,g,R,E,d,m,y=0,j=!1,b=!1,T=!0;if(typeof u!="function")throw new TypeError(t);c=n(c)||0,e(o)&&(j=!!o.leading,b="maxWait"in o,R=b?i(n(o.maxWait)||0,c):R,T="trailing"in o?!!o.trailing:T);function v(f){var P=l,p=g;return l=g=void 0,y=f,E=u.apply(p,P),E}function h(f){return y=f,d=setTimeout(N,c),j?v(f):E}function I(f){var P=f-m,p=f-y,ee=c-P;return b?a(ee,R-p):ee}function Q(f){var P=f-m,p=f-y;return m===void 0||P>=c||P<0||b&&p>=R}function N(){var f=r();if(Q(f))return V(f);d=setTimeout(N,I(f))}function V(f){return d=void 0,T&&l?v(f):(l=g=void 0,E)}function Ne(){d!==void 0&&clearTimeout(d),y=0,l=m=g=d=void 0}function xe(){return d===void 0?E:V(r())}function q(){var f=r(),P=Q(f);if(l=arguments,g=this,m=f,P){if(d===void 0)return h(m);if(b)return clearTimeout(d),d=setTimeout(N,c),v(m)}return d===void 0&&(d=setTimeout(N,c)),E}return q.cancel=Ne,q.flush=xe,q}return $=s,$}var He=Pe();const We=Se(He);var Z,he;function $e(){if(he)return Z;he=1;var e=Pe(),r=Y(),n="Expected a function";function t(i,a,s){var u=!0,c=!0;if(typeof i!="function")throw new TypeError(n);return r(s)&&(u="leading"in s?!!s.leading:u,c="trailing"in s?!!s.trailing:c),e(i,a,{leading:u,maxWait:a,trailing:c})}return Z=t,Z}var Ze=$e();const Xe=Se(Ze),Ye=(e,r,n,t)=>{switch(r){case"debounce":return We(e,n,t);case"throttle":return Xe(e,n,t);default:return e}},Je=e=>{const r=O.useRef(e);return O.useEffect(()=>{r.current=e}),O.useMemo(()=>(...n)=>{var t;return(t=r.current)===null||t===void 0?void 0:t.call(r,...n)},[])},Ke=e=>{const[r,n]=O.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==r&&n(e.current)},0),{refProxy:O.useMemo(()=>new Proxy(i=>{i!==r&&n(i)},{get(i,a){return a==="current"?r:i[a]},set(i,a,s){return a==="current"?n(s):i[a]=s,!0}}),[r]),refElement:r,setRefElement:n}},Qe=(e,r)=>r==="border-box"?{width:e.borderBoxSize[0].inlineSize,height:e.borderBoxSize[0].blockSize}:r==="content-box"?{width:e.contentBoxSize[0].inlineSize,height:e.contentBoxSize[0].blockSize}:{width:e.contentRect.width,height:e.contentRect.height};function Ve({skipOnMount:e=!1,refreshMode:r,refreshRate:n=1e3,refreshOptions:t,handleWidth:i=!0,handleHeight:a=!0,targetRef:s,observerOptions:u,onResize:c}={}){const o=_.useRef(e),l=Je(c),[g,R]=_.useState({width:void 0,height:void 0}),{refProxy:E,refElement:d}=Ke(s),{box:m}=u||{},y=_.useCallback(b=>{if(!i&&!a)return;if(o.current){o.current=!1;return}const T=(v,h)=>i&&v.width!==h.width||a&&v.height!==h.height;b.forEach(v=>{const h=Qe(v,m);R(I=>T(I,h)?(l==null||l({width:h.width,height:h.height,entry:v}),h):I)})},[i,a,o,m]),j=_.useCallback(Ye(y,r,n,t),[y,r,n,t]);return _.useEffect(()=>{let b;return d?(b=new window.ResizeObserver(j),b.observe(d,u)):(g.width||g.height)&&(l==null||l({width:null,height:null,entry:null}),R({width:void 0,height:void 0})),()=>{var T,v,h;(T=b==null?void 0:b.disconnect)===null||T===void 0||T.call(b),(h=(v=j).cancel)===null||h===void 0||h.call(v)}},[j,d]),Object.assign({ref:E},g)}function Re(e){var r,n,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(r=0;r<i;r++)e[r]&&(n=Re(e[r]))&&(t&&(t+=" "),t+=n)}else for(n in e)e[n]&&(t&&(t+=" "),t+=n);return t}function er(){for(var e,r,n=0,t="",i=arguments.length;n<i;n++)(e=arguments[n])&&(r=Re(e))&&(t&&(t+=" "),t+=r);return t}const rr="_headerContainer_1cubo_1",tr="_headerContent_1cubo_34",nr="_staticEnabled_1cubo_50",X={headerContainer:rr,headerContent:tr,staticEnabled:nr},ir=77,w=({sticky:e,children:r})=>{const{ref:n,height:t}=Ve({refreshMode:"debounce",refreshRate:0}),[i,a]=_.useState(!1),s=()=>i?!e:!0;_.useEffect(()=>{const c=()=>{a(window.scrollY>0)};return window.addEventListener("scroll",c),()=>window.removeEventListener("scroll",c)},[]);const u=`${t||ir}px`;return S.jsx("div",{style:{minHeight:u},children:S.jsx("div",{children:S.jsxs("div",{ref:n,className:er(X.headerContent,{[X.staticEnabled]:s()}),children:[S.jsx(w.Header,{}),S.jsx(w.Tabs,{}),r]})})})};w.Header=({children:e})=>S.jsx("div",{className:X.headerContainer,children:e});w.Tabs=({children:e})=>S.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const J=0,je=9999,pe=[150,151,250,251],Oe=[152,153,252,253],we=[154,155,157,158,254,255,258,354,355,358],Ie=[156,159,160,256,259,260],K=9998,or=e=>e===J,ar=e=>e===je,sr=e=>pe.includes(e),ur=e=>Oe.includes(e),cr=e=>we.includes(e),lr=e=>Ie.includes(e),fr=e=>e>J&&e<K,dr=e=>e===K,br=/\n/,ve=(e,r,n)=>e.split(r).flatMap((t,i)=>i!==0?[_.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),t]:t),gr=(e,r,n)=>typeof e=="string"?ve(e,r,n):e.flatMap(t=>typeof t=="string"?ve(t,r,n):t),hr=e=>gr(e,br,S.jsx("br",{})),vr=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,mr=e=>e.match(vr)??[],me=(e,r,n)=>{const t=e.split(r);if(t.length===1)return e;const i=[];return t[0]!==""&&i.push(t[0]),t.shift(),t[t.length-1]===""&&t.pop(),i.push(S.jsx("a",{href:r,target:"_blank",rel:"noreferrer noopener",children:r},r+n)),i.push(t.join(r)),i.filter(a=>a!=="")},_e=e=>{const r=mr(e);return r!=null&&r.length?r.reduce((n,t,i)=>typeof n=="string"?me(n,t,i):n.flatMap(a=>typeof a=="string"?me(a,t,i):a),e):e},_r=e=>typeof e=="string"?_e(e):e.flatMap(r=>typeof r=="string"?_e(r):r,e),Tr=(e,r="PP")=>Te.format(e,r),Sr=(e,r,n="PP")=>Te.format(qe.toZonedTime(e,r),n),Er=e=>{_.useEffect(e,[])};exports.ENTERPRISE_OPENSOURCE_PLAN_ID=K;exports.ENTERPRISE_PLAN_IDS=Ie;exports.ESSENTIAL_PLAN_IDS=Oe;exports.FREE_PLAN_ID=J;exports.NavigationPanel=w;exports.PRO_PLAN_IDS=we;exports.START_PLAN_IDS=pe;exports.TRIAL_PLAN_ID=je;exports.convertNewLineToBreakTag=hr;exports.formatDate=Tr;exports.formatDateTz=Sr;exports.isEnterpriseOpenSourcePlan=dr;exports.isEnterprisePlan=lr;exports.isEssentialPlan=ur;exports.isFreePlan=or;exports.isPaidPlan=fr;exports.isProPlan=cr;exports.isStartPlan=sr;exports.isTrialPlan=ar;exports.makeUrlClickable=_r;exports.useEffectOnce=Er;
|
package/dist/harmony.mjs
CHANGED
@@ -1,49 +1,49 @@
|
|
1
1
|
import { jsx as E, jsxs as Ie } from "react/jsx-runtime";
|
2
2
|
import * as w from "react";
|
3
|
-
import { useRef as qe, useState as
|
3
|
+
import { useRef as qe, useState as _e, useCallback as V, useEffect as X, cloneElement as xe } from "react";
|
4
4
|
import { format as Te } from "date-fns";
|
5
5
|
import { toZonedTime as Ne } from "date-fns-tz";
|
6
6
|
var I = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
|
7
7
|
function Se(e) {
|
8
8
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
9
9
|
}
|
10
|
-
var N,
|
11
|
-
function
|
12
|
-
if (
|
13
|
-
|
10
|
+
var N, ee;
|
11
|
+
function Y() {
|
12
|
+
if (ee) return N;
|
13
|
+
ee = 1;
|
14
14
|
function e(r) {
|
15
15
|
var n = typeof r;
|
16
16
|
return r != null && (n == "object" || n == "function");
|
17
17
|
}
|
18
18
|
return N = e, N;
|
19
19
|
}
|
20
|
-
var L,
|
20
|
+
var L, re;
|
21
21
|
function Le() {
|
22
|
-
if (
|
23
|
-
|
22
|
+
if (re) return L;
|
23
|
+
re = 1;
|
24
24
|
var e = typeof I == "object" && I && I.Object === Object && I;
|
25
25
|
return L = e, L;
|
26
26
|
}
|
27
|
-
var A,
|
27
|
+
var A, te;
|
28
28
|
function ye() {
|
29
|
-
if (
|
30
|
-
|
29
|
+
if (te) return A;
|
30
|
+
te = 1;
|
31
31
|
var e = Le(), r = typeof self == "object" && self && self.Object === Object && self, n = e || r || Function("return this")();
|
32
32
|
return A = n, A;
|
33
33
|
}
|
34
|
-
var k,
|
34
|
+
var k, ne;
|
35
35
|
function Ae() {
|
36
|
-
if (
|
37
|
-
|
36
|
+
if (ne) return k;
|
37
|
+
ne = 1;
|
38
38
|
var e = ye(), r = function() {
|
39
39
|
return e.Date.now();
|
40
40
|
};
|
41
41
|
return k = r, k;
|
42
42
|
}
|
43
|
-
var C,
|
43
|
+
var C, ie;
|
44
44
|
function ke() {
|
45
|
-
if (
|
46
|
-
|
45
|
+
if (ie) return C;
|
46
|
+
ie = 1;
|
47
47
|
var e = /\s/;
|
48
48
|
function r(n) {
|
49
49
|
for (var t = n.length; t-- && e.test(n.charAt(t)); )
|
@@ -52,27 +52,27 @@ function ke() {
|
|
52
52
|
}
|
53
53
|
return C = r, C;
|
54
54
|
}
|
55
|
-
var z,
|
55
|
+
var z, oe;
|
56
56
|
function Ce() {
|
57
|
-
if (
|
58
|
-
|
57
|
+
if (oe) return z;
|
58
|
+
oe = 1;
|
59
59
|
var e = ke(), r = /^\s+/;
|
60
60
|
function n(t) {
|
61
61
|
return t && t.slice(0, e(t) + 1).replace(r, "");
|
62
62
|
}
|
63
63
|
return z = n, z;
|
64
64
|
}
|
65
|
-
var D,
|
65
|
+
var D, ae;
|
66
66
|
function Ee() {
|
67
|
-
if (
|
68
|
-
|
67
|
+
if (ae) return D;
|
68
|
+
ae = 1;
|
69
69
|
var e = ye(), r = e.Symbol;
|
70
70
|
return D = r, D;
|
71
71
|
}
|
72
|
-
var G,
|
72
|
+
var G, ue;
|
73
73
|
function ze() {
|
74
|
-
if (
|
75
|
-
|
74
|
+
if (ue) return G;
|
75
|
+
ue = 1;
|
76
76
|
var e = Ee(), r = Object.prototype, n = r.hasOwnProperty, t = r.toString, i = e ? e.toStringTag : void 0;
|
77
77
|
function a(u) {
|
78
78
|
var s = n.call(u, i), c = u[i];
|
@@ -86,50 +86,50 @@ function ze() {
|
|
86
86
|
}
|
87
87
|
return G = a, G;
|
88
88
|
}
|
89
|
-
var M,
|
89
|
+
var M, se;
|
90
90
|
function De() {
|
91
|
-
if (
|
92
|
-
|
91
|
+
if (se) return M;
|
92
|
+
se = 1;
|
93
93
|
var e = Object.prototype, r = e.toString;
|
94
94
|
function n(t) {
|
95
95
|
return r.call(t);
|
96
96
|
}
|
97
97
|
return M = n, M;
|
98
98
|
}
|
99
|
-
var B,
|
99
|
+
var B, ce;
|
100
100
|
function Ge() {
|
101
|
-
if (
|
102
|
-
|
101
|
+
if (ce) return B;
|
102
|
+
ce = 1;
|
103
103
|
var e = Ee(), r = ze(), n = De(), t = "[object Null]", i = "[object Undefined]", a = e ? e.toStringTag : void 0;
|
104
104
|
function u(s) {
|
105
105
|
return s == null ? s === void 0 ? i : t : a && a in Object(s) ? r(s) : n(s);
|
106
106
|
}
|
107
107
|
return B = u, B;
|
108
108
|
}
|
109
|
-
var F,
|
109
|
+
var F, fe;
|
110
110
|
function Me() {
|
111
|
-
if (
|
112
|
-
|
111
|
+
if (fe) return F;
|
112
|
+
fe = 1;
|
113
113
|
function e(r) {
|
114
114
|
return r != null && typeof r == "object";
|
115
115
|
}
|
116
116
|
return F = e, F;
|
117
117
|
}
|
118
|
-
var H,
|
118
|
+
var H, le;
|
119
119
|
function Be() {
|
120
|
-
if (
|
121
|
-
|
120
|
+
if (le) return H;
|
121
|
+
le = 1;
|
122
122
|
var e = Ge(), r = Me(), n = "[object Symbol]";
|
123
123
|
function t(i) {
|
124
124
|
return typeof i == "symbol" || r(i) && e(i) == n;
|
125
125
|
}
|
126
126
|
return H = t, H;
|
127
127
|
}
|
128
|
-
var U,
|
128
|
+
var U, de;
|
129
129
|
function Fe() {
|
130
|
-
if (
|
131
|
-
|
132
|
-
var e = Ce(), r =
|
130
|
+
if (de) return U;
|
131
|
+
de = 1;
|
132
|
+
var e = Ce(), r = Y(), n = Be(), t = NaN, i = /^[-+]0x[0-9a-f]+$/i, a = /^0b[01]+$/i, u = /^0o[0-7]+$/i, s = parseInt;
|
133
133
|
function c(o) {
|
134
134
|
if (typeof o == "number")
|
135
135
|
return o;
|
@@ -147,11 +147,11 @@ function Fe() {
|
|
147
147
|
}
|
148
148
|
return U = c, U;
|
149
149
|
}
|
150
|
-
var W,
|
150
|
+
var W, be;
|
151
151
|
function pe() {
|
152
|
-
if (
|
153
|
-
|
154
|
-
var e =
|
152
|
+
if (be) return W;
|
153
|
+
be = 1;
|
154
|
+
var e = Y(), r = Ae(), n = Fe(), t = "Expected a function", i = Math.max, a = Math.min;
|
155
155
|
function u(s, c, o) {
|
156
156
|
var f, h, p, T, d, v, S = 0, R = !1, b = !1, _ = !0;
|
157
157
|
if (typeof s != "function")
|
@@ -165,30 +165,30 @@ function pe() {
|
|
165
165
|
return S = l, d = setTimeout(O, c), R ? m(l) : T;
|
166
166
|
}
|
167
167
|
function P(l) {
|
168
|
-
var y = l - v, j = l - S,
|
169
|
-
return b ? a(
|
168
|
+
var y = l - v, j = l - S, Q = c - y;
|
169
|
+
return b ? a(Q, p - j) : Q;
|
170
170
|
}
|
171
|
-
function
|
171
|
+
function J(l) {
|
172
172
|
var y = l - v, j = l - S;
|
173
173
|
return v === void 0 || y >= c || y < 0 || b && j >= p;
|
174
174
|
}
|
175
175
|
function O() {
|
176
176
|
var l = r();
|
177
|
-
if (
|
178
|
-
return
|
177
|
+
if (J(l))
|
178
|
+
return K(l);
|
179
179
|
d = setTimeout(O, P(l));
|
180
180
|
}
|
181
|
-
function
|
181
|
+
function K(l) {
|
182
182
|
return d = void 0, _ && f ? m(l) : (f = h = void 0, T);
|
183
183
|
}
|
184
184
|
function Pe() {
|
185
185
|
d !== void 0 && clearTimeout(d), S = 0, f = v = h = d = void 0;
|
186
186
|
}
|
187
187
|
function Oe() {
|
188
|
-
return d === void 0 ? T :
|
188
|
+
return d === void 0 ? T : K(r());
|
189
189
|
}
|
190
190
|
function x() {
|
191
|
-
var l = r(), y =
|
191
|
+
var l = r(), y = J(l);
|
192
192
|
if (f = arguments, h = this, v = l, y) {
|
193
193
|
if (d === void 0)
|
194
194
|
return g(v);
|
@@ -203,11 +203,11 @@ function pe() {
|
|
203
203
|
}
|
204
204
|
var He = pe();
|
205
205
|
const Ue = /* @__PURE__ */ Se(He);
|
206
|
-
var $,
|
206
|
+
var $, he;
|
207
207
|
function We() {
|
208
|
-
if (
|
209
|
-
|
210
|
-
var e = pe(), r =
|
208
|
+
if (he) return $;
|
209
|
+
he = 1;
|
210
|
+
var e = pe(), r = Y(), n = "Expected a function";
|
211
211
|
function t(i, a, u) {
|
212
212
|
var s = !0, c = !0;
|
213
213
|
if (typeof i != "function")
|
@@ -269,10 +269,10 @@ const Ze = /* @__PURE__ */ Se($e), Xe = (e, r, n, t) => {
|
|
269
269
|
height: e.contentRect.height
|
270
270
|
};
|
271
271
|
function Qe({ skipOnMount: e = !1, refreshMode: r, refreshRate: n = 1e3, refreshOptions: t, handleWidth: i = !0, handleHeight: a = !0, targetRef: u, observerOptions: s, onResize: c } = {}) {
|
272
|
-
const o = qe(e), f = Ye(c), [h, p] =
|
272
|
+
const o = qe(e), f = Ye(c), [h, p] = _e({
|
273
273
|
width: void 0,
|
274
274
|
height: void 0
|
275
|
-
}), { refProxy: T, refElement: d } = Je(u), { box: v } = s || {}, S =
|
275
|
+
}), { refProxy: T, refElement: d } = Je(u), { box: v } = s || {}, S = V((b) => {
|
276
276
|
if (!i && !a)
|
277
277
|
return;
|
278
278
|
if (o.current) {
|
@@ -288,13 +288,13 @@ function Qe({ skipOnMount: e = !1, refreshMode: r, refreshRate: n = 1e3, refresh
|
|
288
288
|
entry: m
|
289
289
|
}), g) : P);
|
290
290
|
});
|
291
|
-
}, [i, a, o, v]), R =
|
291
|
+
}, [i, a, o, v]), R = V(Xe(S, r, n, t), [
|
292
292
|
S,
|
293
293
|
r,
|
294
294
|
n,
|
295
295
|
t
|
296
296
|
]);
|
297
|
-
return
|
297
|
+
return X(() => {
|
298
298
|
let b;
|
299
299
|
return d ? (b = new window.ResizeObserver(R), b.observe(d, s)) : (h.width || h.height) && (f == null || f({
|
300
300
|
width: null,
|
@@ -327,8 +327,8 @@ const er = "_headerContainer_1cubo_1", rr = "_headerContent_1cubo_34", tr = "_st
|
|
327
327
|
const { ref: n, height: t } = Qe({
|
328
328
|
refreshMode: "debounce",
|
329
329
|
refreshRate: 0
|
330
|
-
}), [i, a] =
|
331
|
-
|
330
|
+
}), [i, a] = _e(!1), u = () => i ? !e : !0;
|
331
|
+
X(() => {
|
332
332
|
const c = () => {
|
333
333
|
a(window.scrollY > 0);
|
334
334
|
};
|
@@ -352,7 +352,7 @@ const er = "_headerContainer_1cubo_1", rr = "_headerContent_1cubo_34", tr = "_st
|
|
352
352
|
};
|
353
353
|
q.Header = ({ children: e }) => /* @__PURE__ */ E("div", { className: Z.headerContainer, children: e });
|
354
354
|
q.Tabs = ({ children: e }) => /* @__PURE__ */ E("div", { className: "flex justify-between gap-2 nowrap", children: e });
|
355
|
-
const je = 0, ir = 9999, or = [150, 151, 250, 251], ar = [152, 153, 252, 253], ur = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], sr = [156, 159, 160, 256, 259, 260], we = 9998, vr = (e) => e === je, _r = (e) => e === ir, Tr = (e) => or.includes(e), Sr = (e) => ar.includes(e), yr = (e) => ur.includes(e), Er = (e) => sr.includes(e), pr = (e) => e > je && e < we, Rr = (e) => e === we, cr = /\n/,
|
355
|
+
const je = 0, ir = 9999, or = [150, 151, 250, 251], ar = [152, 153, 252, 253], ur = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], sr = [156, 159, 160, 256, 259, 260], we = 9998, vr = (e) => e === je, _r = (e) => e === ir, Tr = (e) => or.includes(e), Sr = (e) => ar.includes(e), yr = (e) => ur.includes(e), Er = (e) => sr.includes(e), pr = (e) => e > je && e < we, Rr = (e) => e === we, cr = /\n/, ge = (e, r, n) => e.split(r).flatMap((t, i) => i !== 0 ? [xe(n, { key: Math.random().toString(32).slice(0, 10) }), t] : t), fr = (e, r, n) => typeof e == "string" ? ge(e, r, n) : e.flatMap((t) => typeof t == "string" ? ge(t, r, n) : t), jr = (e) => fr(e, cr, /* @__PURE__ */ E("br", {})), lr = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi, dr = (e) => e.match(lr) ?? [], me = (e, r, n) => {
|
356
356
|
const t = e.split(r);
|
357
357
|
if (t.length === 1)
|
358
358
|
return e;
|
@@ -360,10 +360,12 @@ const je = 0, ir = 9999, or = [150, 151, 250, 251], ar = [152, 153, 252, 253], u
|
|
360
360
|
return t[0] !== "" && i.push(t[0]), t.shift(), t[t.length - 1] === "" && t.pop(), i.push(
|
361
361
|
/* @__PURE__ */ E("a", { href: r, target: "_blank", rel: "noreferrer noopener", children: r }, r + n)
|
362
362
|
), i.push(t.join(r)), i.filter((a) => a !== "");
|
363
|
-
},
|
363
|
+
}, ve = (e) => {
|
364
364
|
const r = dr(e);
|
365
|
-
return r != null && r.length ? r.reduce((n, t, i) => typeof n == "string" ?
|
366
|
-
}, wr = (e) => typeof e == "string" ?
|
365
|
+
return r != null && r.length ? r.reduce((n, t, i) => typeof n == "string" ? me(n, t, i) : n.flatMap((a) => typeof a == "string" ? me(a, t, i) : a), e) : e;
|
366
|
+
}, wr = (e) => typeof e == "string" ? ve(e) : e.flatMap((r) => typeof r == "string" ? ve(r) : r, e), Pr = (e, r = "PP") => Te(e, r), Or = (e, r, n = "PP") => Te(Ne(e, r), n), Ir = (e) => {
|
367
|
+
X(e, []);
|
368
|
+
};
|
367
369
|
export {
|
368
370
|
we as ENTERPRISE_OPENSOURCE_PLAN_ID,
|
369
371
|
sr as ENTERPRISE_PLAN_IDS,
|
@@ -384,5 +386,6 @@ export {
|
|
384
386
|
yr as isProPlan,
|
385
387
|
Tr as isStartPlan,
|
386
388
|
_r as isTrialPlan,
|
387
|
-
wr as makeUrlClickable
|
389
|
+
wr as makeUrlClickable,
|
390
|
+
Ir as useEffectOnce
|
388
391
|
};
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { HTMLProps, PropsWithChildren, ReactNode } from 'react';
|
2
|
+
type SidebarProps = HTMLProps<HTMLElement> & {
|
3
|
+
children: ReactNode;
|
4
|
+
};
|
5
|
+
declare const Sidebar: {
|
6
|
+
({ children, ...navProps }: SidebarProps): import("react/jsx-runtime").JSX.Element;
|
7
|
+
Top({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
8
|
+
Bottom({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
9
|
+
Avatar: ({ src, href, ariaLabel, alt }: {
|
10
|
+
src: string;
|
11
|
+
href?: string;
|
12
|
+
ariaLabel?: string;
|
13
|
+
alt?: string;
|
14
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
15
|
+
IconLink: ({ label, to, icon }: {
|
16
|
+
to: string;
|
17
|
+
label: string;
|
18
|
+
icon: ReactNode;
|
19
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
20
|
+
Menu: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
|
21
|
+
Tasks: (props: {
|
22
|
+
config: import('./Widgets/Tasks/types').SidebarTasksConfig;
|
23
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
24
|
+
ProfileMenu: ({ config, children }: {
|
25
|
+
config: import('./Widgets/ProfileMenu/types').SidebarProfileMenuConfig;
|
26
|
+
children: import('./Widgets/ProfileMenu/ProfileMenuContent').ProfileMenuContentProps["children"];
|
27
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
28
|
+
TeamSwitch: ({ onSwitchTeam }: {
|
29
|
+
onSwitchTeam: (team: import('./types').SidebarTeam) => void;
|
30
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
31
|
+
TeamMenuItem: ({ team, onClick, hidePlanLabel }: {
|
32
|
+
team?: import('./types').SidebarTeam;
|
33
|
+
onClick?: (team: import('./types').SidebarTeam) => void;
|
34
|
+
hidePlanLabel?: boolean;
|
35
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
36
|
+
UpgradeMenuItem: ({ upgradeOptionHref }: {
|
37
|
+
upgradeOptionHref: string;
|
38
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
39
|
+
ProfileSettingsMenuItem: ({ href, onClick, userEmail }: {
|
40
|
+
href: string;
|
41
|
+
userEmail: string;
|
42
|
+
onClick?: () => void;
|
43
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
44
|
+
};
|
45
|
+
export { Sidebar };
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
2
|
+
import { Sidebar } from './Sidebar';
|
3
|
+
declare const meta: Meta<typeof Sidebar>;
|
4
|
+
export default meta;
|
5
|
+
type Story = StoryObj<typeof Sidebar>;
|
6
|
+
export declare const TopSectionOnly: Story;
|
7
|
+
export declare const FullSidebar: Story;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { SidebarProfileMenuConfig } from './types';
|
2
|
+
import { ProfileMenuContentProps } from './ProfileMenuContent';
|
3
|
+
type ProfileMenuProps = {
|
4
|
+
config: SidebarProfileMenuConfig;
|
5
|
+
children: ProfileMenuContentProps['children'];
|
6
|
+
};
|
7
|
+
export declare const ProfileMenu: ({ config, children }: ProfileMenuProps) => import("react/jsx-runtime").JSX.Element;
|
8
|
+
export {};
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { ReactNode } from 'react';
|
2
|
+
import { SidebarProfileMenuRenderProps } from './types';
|
3
|
+
export type ProfileMenuContentProps = {
|
4
|
+
children: (props: SidebarProfileMenuRenderProps) => ReactNode;
|
5
|
+
};
|
6
|
+
export declare const ProfileMenuContent: ({ children }: ProfileMenuContentProps) => import("react/jsx-runtime").JSX.Element;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
2
|
+
import { SidebarProfileMenuConfig } from './types';
|
3
|
+
type ProfileMenuProviderProps = PropsWithChildren<{
|
4
|
+
config: SidebarProfileMenuConfig;
|
5
|
+
}>;
|
6
|
+
export declare const ProfileMenuProvider: ({ children, config }: ProfileMenuProviderProps) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export {};
|
@@ -0,0 +1,7 @@
|
|
1
|
+
type ProfileSettingsMenuItemProps = {
|
2
|
+
href: string;
|
3
|
+
userEmail: string;
|
4
|
+
onClick?: () => void;
|
5
|
+
};
|
6
|
+
export declare const ProfileSettingsMenuItem: ({ href, onClick, userEmail }: ProfileSettingsMenuItemProps) => import("react/jsx-runtime").JSX.Element | null;
|
7
|
+
export {};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { SidebarTeam } from '../../../types';
|
2
|
+
type TeamMenuItemProps = {
|
3
|
+
team?: SidebarTeam;
|
4
|
+
onClick?: (team: SidebarTeam) => void;
|
5
|
+
hidePlanLabel?: boolean;
|
6
|
+
};
|
7
|
+
export declare const TeamMenuItem: ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => import("react/jsx-runtime").JSX.Element | null;
|
8
|
+
export {};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { SidebarTeam } from '../../types';
|
2
|
+
export type SidebarProfileMenuConfig = {
|
3
|
+
teams: SidebarTeam[];
|
4
|
+
currentTeamId: number;
|
5
|
+
planId: number;
|
6
|
+
isLimitedView: boolean;
|
7
|
+
isTeamSuspended: boolean;
|
8
|
+
canAccessTeamSettings: boolean;
|
9
|
+
isEndOfTrialActive: boolean;
|
10
|
+
trialDaysLeft: number;
|
11
|
+
isProviderAlpha: boolean;
|
12
|
+
};
|
13
|
+
export type SidebarProfileMenuContextProps = SidebarProfileMenuConfig & {
|
14
|
+
currentTeam?: SidebarTeam;
|
15
|
+
otherTeams: SidebarTeam[];
|
16
|
+
canChangeBilling: boolean;
|
17
|
+
isOnFreeOrTrialPlan: boolean;
|
18
|
+
showUpgradeCta: boolean;
|
19
|
+
showBillingButton: boolean;
|
20
|
+
allowTeamCreation: boolean;
|
21
|
+
};
|
22
|
+
export type SidebarProfileMenuRenderProps = Pick<SidebarProfileMenuContextProps, 'otherTeams' | 'allowTeamCreation' | 'isLimitedView' | 'canAccessTeamSettings' | 'isEndOfTrialActive' | 'isTeamSuspended' | 'showBillingButton' | 'isProviderAlpha'>;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { SidebarLanguage, SidebarTask } from '../types';
|
2
|
+
type TaskLanguageCompletedProps = {
|
3
|
+
task: SidebarTask;
|
4
|
+
language: SidebarLanguage;
|
5
|
+
};
|
6
|
+
export declare const TaskLanguageCompleted: ({ task, language }: TaskLanguageCompletedProps) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const TasksPopover: () => import("react/jsx-runtime").JSX.Element;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { FC, PropsWithChildren } from 'react';
|
2
|
+
import { SidebarTasksConfig } from './types';
|
3
|
+
type TasksProviderProps = PropsWithChildren<{
|
4
|
+
config: SidebarTasksConfig;
|
5
|
+
}>;
|
6
|
+
export declare const TasksProvider: ({ children, config }: TasksProviderProps) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export declare const withTasksContext: <P extends {
|
8
|
+
config: SidebarTasksConfig;
|
9
|
+
}>(WrappedComponent: FC<Omit<P, "config">>) => (props: P) => import("react/jsx-runtime").JSX.Element;
|
10
|
+
export {};
|
@@ -0,0 +1,85 @@
|
|
1
|
+
import { TypesFromMap } from '../../../../utils/node.ts/typeUtils';
|
2
|
+
export declare const SidebarTaskStatuses: {
|
3
|
+
readonly Completed: "completed";
|
4
|
+
readonly InProgress: "in_progress";
|
5
|
+
readonly Created: "created";
|
6
|
+
readonly Queued: "queued";
|
7
|
+
};
|
8
|
+
export type SidebarTaskStatus = TypesFromMap<typeof SidebarTaskStatuses>;
|
9
|
+
export declare const SidebarTaskLanguageStatuses: {
|
10
|
+
readonly Completed: "completed";
|
11
|
+
readonly InProgress: "in_progress";
|
12
|
+
readonly Created: "created";
|
13
|
+
readonly Queued: "queued";
|
14
|
+
};
|
15
|
+
export type SidebarTaskLanguageStatus = TypesFromMap<typeof SidebarTaskLanguageStatuses>;
|
16
|
+
export declare const SidebarTaskTypeOptions: {
|
17
|
+
readonly translation: "translation";
|
18
|
+
readonly review: "review";
|
19
|
+
readonly lqa_by_ai: "lqa_by_ai";
|
20
|
+
readonly automatic_translation: "automatic_translation";
|
21
|
+
};
|
22
|
+
export type SidebarTaskTypeOption = TypesFromMap<typeof SidebarTaskTypeOptions>;
|
23
|
+
export type SidebarTaskStyleGuide = {
|
24
|
+
id: string;
|
25
|
+
name: string;
|
26
|
+
};
|
27
|
+
export type SidebarTaskLanguage = {
|
28
|
+
lang_id: string;
|
29
|
+
name: string;
|
30
|
+
progress?: number;
|
31
|
+
status: SidebarTaskLanguageStatus;
|
32
|
+
base_words_total: `${number}`;
|
33
|
+
base_words_done: `${number}`;
|
34
|
+
};
|
35
|
+
export type SidebarTask = {
|
36
|
+
id: string;
|
37
|
+
title: string;
|
38
|
+
status: SidebarTaskStatus;
|
39
|
+
langs: SidebarTaskLanguage[];
|
40
|
+
team_id: number;
|
41
|
+
created_by_fullname: string;
|
42
|
+
source_lang_name: string;
|
43
|
+
task_type: SidebarTaskTypeOption;
|
44
|
+
style_guides: SidebarTaskStyleGuide[];
|
45
|
+
description?: string;
|
46
|
+
project_name: string;
|
47
|
+
master_branching_enabled: '0' | '1';
|
48
|
+
branch_name: string | null;
|
49
|
+
due_date: string | null;
|
50
|
+
};
|
51
|
+
export type SidebarDefaultFnArgs = {
|
52
|
+
task: SidebarTask;
|
53
|
+
language: SidebarTaskLanguage;
|
54
|
+
};
|
55
|
+
export type SidebarDefaultFn = (props: SidebarDefaultFnArgs) => void;
|
56
|
+
export type SidebarTasksGetProjectUrlFnArgs = {
|
57
|
+
task: SidebarTask;
|
58
|
+
language?: SidebarTaskLanguage;
|
59
|
+
view?: 'single' | 'multi';
|
60
|
+
taskUncompleted?: boolean;
|
61
|
+
};
|
62
|
+
export type SidebarTasksGetProjectUrlFn = (props: SidebarTasksGetProjectUrlFnArgs) => string;
|
63
|
+
export type SidebarTaskTitleOnClickFn = (props: Pick<SidebarDefaultFnArgs, 'task'>) => void;
|
64
|
+
export type SidebarOnLanguageCompleteConfirmFnArgs = SidebarDefaultFnArgs & {
|
65
|
+
closePrompt: () => void;
|
66
|
+
};
|
67
|
+
export type SidebarOnLanguageCompleteConfirmFn = (props: SidebarOnLanguageCompleteConfirmFnArgs) => Promise<void>;
|
68
|
+
export type SidebarTasksConfig = {
|
69
|
+
getTasksCount: () => Promise<number>;
|
70
|
+
getTasks: () => Promise<SidebarTask[]>;
|
71
|
+
getProjectUrl: SidebarTasksGetProjectUrlFn;
|
72
|
+
onLanguageCompleteConfirm: SidebarOnLanguageCompleteConfirmFn;
|
73
|
+
onTasksWidgetOpen?: ({ tasks }: {
|
74
|
+
tasks: SidebarTask[];
|
75
|
+
}) => void;
|
76
|
+
taskTitleOnClick?: SidebarTaskTitleOnClickFn;
|
77
|
+
langNameOnClick?: SidebarDefaultFn;
|
78
|
+
langProgressOnClick?: SidebarDefaultFn;
|
79
|
+
};
|
80
|
+
export type SidebarTasksContextProps = Pick<SidebarTasksConfig, 'onTasksWidgetOpen' | 'getProjectUrl' | 'taskTitleOnClick' | 'langNameOnClick' | 'langProgressOnClick' | 'onLanguageCompleteConfirm'> & {
|
81
|
+
fetchTasks: () => Promise<void>;
|
82
|
+
tasks: SidebarTask[];
|
83
|
+
tasksCount: number;
|
84
|
+
loadingTasks: boolean;
|
85
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { SidebarLanguage, SidebarLanguageStatus, SidebarTask, SidebarTaskTypeOption } from '../types';
|
2
|
+
export declare const getStatusText: (status: SidebarLanguageStatus, progressValue: number) => "Closed" | "Completed" | "In progress" | "Not started" | "Queued" | "-";
|
3
|
+
export declare const resolveStatus: (language: SidebarLanguage) => SidebarLanguageStatus;
|
4
|
+
export declare const statusSortOrder: string[];
|
5
|
+
/**
|
6
|
+
* TODO - these should be taken from louis
|
7
|
+
*/
|
8
|
+
export declare const tagColor: Record<SidebarTaskTypeOption, string>;
|
9
|
+
export declare const getTaskLanguages: (langs: SidebarTask["langs"]) => {
|
10
|
+
status: SidebarLanguageStatus;
|
11
|
+
lang_id: string;
|
12
|
+
name: string;
|
13
|
+
progress?: number;
|
14
|
+
base_words_total: `${number}`;
|
15
|
+
base_words_done: `${number}`;
|
16
|
+
}[];
|
@@ -0,0 +1,23 @@
|
|
1
|
+
export declare const TaskEvents: {
|
2
|
+
readonly TaskCompleted: "task_completed";
|
3
|
+
readonly TaskClosed: "task_closed";
|
4
|
+
readonly Refresh: "refresh";
|
5
|
+
readonly ShowDialog: "show_dialog";
|
6
|
+
};
|
7
|
+
export type TaskEvent = (typeof TaskEvents)[keyof typeof TaskEvents];
|
8
|
+
type SingleTaskPayload = {
|
9
|
+
taskId: string | number;
|
10
|
+
};
|
11
|
+
type DispatchTaskEventPayload = {
|
12
|
+
name: typeof TaskEvents.TaskCompleted;
|
13
|
+
detail: SingleTaskPayload;
|
14
|
+
} | {
|
15
|
+
name: typeof TaskEvents.TaskClosed;
|
16
|
+
detail: SingleTaskPayload;
|
17
|
+
} | {
|
18
|
+
name: typeof TaskEvents.Refresh;
|
19
|
+
} | {
|
20
|
+
name: typeof TaskEvents.ShowDialog;
|
21
|
+
};
|
22
|
+
export declare const dispatchTaskEvent: (props: DispatchTaskEventPayload) => void;
|
23
|
+
export {};
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { TypesFromMap } from '../../utils/node.ts';
|
2
|
+
export declare const SidebarTeamRoles: {
|
3
|
+
readonly member: "member";
|
4
|
+
readonly admin: "admin";
|
5
|
+
readonly biller: "biller";
|
6
|
+
readonly owner: "owner";
|
7
|
+
};
|
8
|
+
export type SidebarTeamRole = TypesFromMap<typeof SidebarTeamRoles>;
|
9
|
+
export type SidebarTeam = {
|
10
|
+
id: number;
|
11
|
+
name: string;
|
12
|
+
role: SidebarTeamRole;
|
13
|
+
logoUrl: string;
|
14
|
+
};
|
package/dist/types/src/node.d.ts
CHANGED
@@ -2,10 +2,4 @@
|
|
2
2
|
* COMPONENTS EXPORTS
|
3
3
|
*/
|
4
4
|
export { NavigationPanel } from './components/NavigationPanel/NavigationPanel';
|
5
|
-
|
6
|
-
* UTILITIES EXPORTS
|
7
|
-
*/
|
8
|
-
export { isPaidPlan, isProPlan, isEnterpriseOpenSourcePlan, isEnterprisePlan, isEssentialPlan, isStartPlan, isFreePlan, isTrialPlan, ENTERPRISE_PLAN_IDS, START_PLAN_IDS, ESSENTIAL_PLAN_IDS, PRO_PLAN_IDS, FREE_PLAN_ID, TRIAL_PLAN_ID, ENTERPRISE_OPENSOURCE_PLAN_ID, } from './utils/billing/plan/plan';
|
9
|
-
export { convertNewLineToBreakTag } from './utils/content/text/text';
|
10
|
-
export { makeUrlClickable } from './utils/content/url/url';
|
11
|
-
export { formatDate, formatDateTz } from './utils/i18n/date/date';
|
5
|
+
export * from './utils/node';
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export { isPaidPlan, isProPlan, isEnterpriseOpenSourcePlan, isEnterprisePlan, isEssentialPlan, isStartPlan, isFreePlan, isTrialPlan, ENTERPRISE_PLAN_IDS, START_PLAN_IDS, ESSENTIAL_PLAN_IDS, PRO_PLAN_IDS, FREE_PLAN_ID, TRIAL_PLAN_ID, ENTERPRISE_OPENSOURCE_PLAN_ID, } from './billing/plan/plan';
|
2
|
+
export { convertNewLineToBreakTag } from './content/text/text';
|
3
|
+
export { makeUrlClickable } from './content/url/url';
|
4
|
+
export { formatDate, formatDateTz } from './i18n/date/date';
|
5
|
+
export { useEffectOnce } from './hooks/useEffectOnce';
|
6
|
+
export type { TypesFromMap } from './typeUtils';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lokalise/harmony",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.4.0-exp-sidebarComponent.1",
|
4
4
|
"author": {
|
5
5
|
"name": "Lokalise",
|
6
6
|
"url": "https://lokalise.com/"
|
@@ -30,7 +30,7 @@
|
|
30
30
|
"storybook:build": "storybook build"
|
31
31
|
},
|
32
32
|
"peerDependencies": {
|
33
|
-
"@lokalise/louis": ">=26.
|
33
|
+
"@lokalise/louis": ">=26.1.1",
|
34
34
|
"@lokalise/styled": ">=3.0.0",
|
35
35
|
"@lokalise/token-dictionary": ">=2.42.1",
|
36
36
|
"date-fns": ">=4.1",
|
@@ -41,6 +41,7 @@
|
|
41
41
|
"devDependencies": {
|
42
42
|
"@biomejs/biome": "^1.9.4",
|
43
43
|
"@chromatic-com/storybook": "^3.2.4",
|
44
|
+
"@faker-js/faker": "^9.5.0",
|
44
45
|
"@lokalise/biome-config": "^1.6.1",
|
45
46
|
"@semantic-release/changelog": "^6.0.3",
|
46
47
|
"@semantic-release/commit-analyzer": "^13.0.1",
|