@apipass/design-system 7.4.7 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/lib/embedded-styles.js +2 -2
  2. package/dist/lib/lib.index.cjs +1 -1
  3. package/dist/lib/lib.index.js +808 -796
  4. package/dist/lib/lib.index.js.map +1 -1
  5. package/dist/lib/style.css +1 -1
  6. package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.cjs +1 -1
  7. package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
  8. package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.js +27 -25
  9. package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.js.map +1 -1
  10. package/dist/lib/ui/components/DataTable/DataTable.cjs +1 -1
  11. package/dist/lib/ui/components/DataTable/DataTable.cjs.map +1 -1
  12. package/dist/lib/ui/components/DataTable/DataTable.js +210 -174
  13. package/dist/lib/ui/components/DataTable/DataTable.js.map +1 -1
  14. package/dist/lib/ui/components/FormModal/FormModal.cjs +1 -1
  15. package/dist/lib/ui/components/FormModal/FormModal.cjs.map +1 -1
  16. package/dist/lib/ui/components/FormModal/FormModal.js +22 -21
  17. package/dist/lib/ui/components/FormModal/FormModal.js.map +1 -1
  18. package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.cjs +2 -0
  19. package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -0
  20. package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.js +36 -0
  21. package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.js.map +1 -0
  22. package/dist/lib/ui/components/PageLoadingState/PageLoadingState.cjs +2 -0
  23. package/dist/lib/ui/components/PageLoadingState/PageLoadingState.cjs.map +1 -0
  24. package/dist/lib/ui/components/PageLoadingState/PageLoadingState.js +18 -0
  25. package/dist/lib/ui/components/PageLoadingState/PageLoadingState.js.map +1 -0
  26. package/dist/lib/ui/hooks/useAnimationFrame.cjs +2 -0
  27. package/dist/lib/ui/hooks/useAnimationFrame.cjs.map +1 -0
  28. package/dist/lib/ui/hooks/useAnimationFrame.js +24 -0
  29. package/dist/lib/ui/hooks/useAnimationFrame.js.map +1 -0
  30. package/dist/lib/ui/hooks/useLoadingVisibility.cjs +2 -0
  31. package/dist/lib/ui/hooks/useLoadingVisibility.cjs.map +1 -0
  32. package/dist/lib/ui/hooks/useLoadingVisibility.js +34 -0
  33. package/dist/lib/ui/hooks/useLoadingVisibility.js.map +1 -0
  34. package/dist/lib/ui/hooks/useMediaQuery.cjs +1 -1
  35. package/dist/lib/ui/hooks/useMediaQuery.cjs.map +1 -1
  36. package/dist/lib/ui/hooks/useMediaQuery.js +5 -2
  37. package/dist/lib/ui/hooks/useMediaQuery.js.map +1 -1
  38. package/dist/lib/ui/primitives/BrandLoader/BrandLoader.cjs +2 -0
  39. package/dist/lib/ui/primitives/BrandLoader/BrandLoader.cjs.map +1 -0
  40. package/dist/lib/ui/primitives/BrandLoader/BrandLoader.js +165 -0
  41. package/dist/lib/ui/primitives/BrandLoader/BrandLoader.js.map +1 -0
  42. package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.cjs +2 -0
  43. package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.cjs.map +1 -0
  44. package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.js +9 -0
  45. package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.js.map +1 -0
  46. package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.cjs +2 -0
  47. package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.cjs.map +1 -0
  48. package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.js +10 -0
  49. package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.js.map +1 -0
  50. package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.cjs +2 -0
  51. package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.cjs.map +1 -0
  52. package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.js +166 -0
  53. package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.js.map +1 -0
  54. package/dist/lib/ui/primitives/Button/Button.cjs +1 -1
  55. package/dist/lib/ui/primitives/Button/Button.cjs.map +1 -1
  56. package/dist/lib/ui/primitives/Button/Button.js +72 -49
  57. package/dist/lib/ui/primitives/Button/Button.js.map +1 -1
  58. package/dist/lib/ui/primitives/IconButton/IconButton.cjs +1 -1
  59. package/dist/lib/ui/primitives/IconButton/IconButton.cjs.map +1 -1
  60. package/dist/lib/ui/primitives/IconButton/IconButton.js +11 -11
  61. package/dist/lib/ui/primitives/IconButton/IconButton.js.map +1 -1
  62. package/dist/lib/ui/primitives/LoadingState/LoadingState.cjs +2 -0
  63. package/dist/lib/ui/primitives/LoadingState/LoadingState.cjs.map +1 -0
  64. package/dist/lib/ui/primitives/LoadingState/LoadingState.js +33 -0
  65. package/dist/lib/ui/primitives/LoadingState/LoadingState.js.map +1 -0
  66. package/dist/lib/ui/primitives/PermissionGate/PermissionGate.cjs +1 -1
  67. package/dist/lib/ui/primitives/PermissionGate/PermissionGate.cjs.map +1 -1
  68. package/dist/lib/ui/primitives/PermissionGate/PermissionGate.js +14 -9
  69. package/dist/lib/ui/primitives/PermissionGate/PermissionGate.js.map +1 -1
  70. package/dist/lib/ui/primitives/Tree/Tree.cjs +1 -1
  71. package/dist/lib/ui/primitives/Tree/Tree.cjs.map +1 -1
  72. package/dist/lib/ui/primitives/Tree/Tree.js +31 -24
  73. package/dist/lib/ui/primitives/Tree/Tree.js.map +1 -1
  74. package/dist/types/ui/components/DataTable/DataTable.d.ts +31 -8
  75. package/dist/types/ui/components/LoadingOverlay/LoadingOverlay.d.ts +13 -0
  76. package/dist/types/ui/components/PageLoadingState/PageLoadingState.d.ts +4 -0
  77. package/dist/types/ui/components/index.d.ts +2 -1
  78. package/dist/types/ui/hooks/index.d.ts +1 -0
  79. package/dist/types/ui/hooks/useAnimationFrame.d.ts +3 -0
  80. package/dist/types/ui/hooks/useLoadingVisibility.d.ts +7 -0
  81. package/dist/types/ui/primitives/BrandLoader/BrandLoader.d.ts +25 -0
  82. package/dist/types/ui/primitives/BrandLoader/BrandLoaderProvider.d.ts +7 -0
  83. package/dist/types/ui/primitives/BrandLoader/brandLoaderSymbolContext.d.ts +3 -0
  84. package/dist/types/ui/primitives/BrandLoader/brandLoaderVariants.d.ts +33 -0
  85. package/dist/types/ui/primitives/Button/Button.d.ts +1 -0
  86. package/dist/types/ui/primitives/LoadingState/LoadingState.d.ts +10 -0
  87. package/dist/types/ui/primitives/PermissionGate/PermissionGate.d.ts +16 -6
  88. package/dist/types/ui/primitives/index.d.ts +2 -0
  89. package/package.json +1 -1
  90. package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.cjs +0 -2
  91. package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.cjs.map +0 -1
  92. package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.js +0 -27
  93. package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.js.map +0 -1
  94. package/dist/types/ui/components/WidgetLoadingState/WidgetLoadingState.d.ts +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandLoaderProvider.js","sources":["../../../../../src/ui/primitives/BrandLoader/BrandLoaderProvider.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport { BrandLoaderSymbolContext, type BrandLoaderSymbol } from \"./brandLoaderSymbolContext\";\n\nexport type BrandLoaderProviderProps = {\n symbol: BrandLoaderSymbol;\n children: ReactNode;\n};\n\nexport function BrandLoaderProvider({ symbol, children }: BrandLoaderProviderProps) {\n return (\n <BrandLoaderSymbolContext.Provider value={symbol}>\n {children}\n </BrandLoaderSymbolContext.Provider>\n );\n}\n"],"names":["BrandLoaderProvider","symbol","children","BrandLoaderSymbolContext"],"mappings":";;AAQO,SAASA,EAAoB,EAAE,QAAAC,GAAQ,UAAAC,KAAsC;AAClF,2BACGC,EAAyB,UAAzB,EAAkC,OAAOF,GACvC,UAAAC,GACH;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=e.createContext("apipass");function o(){return e.useContext(t)}exports.BrandLoaderSymbolContext=t;exports.useBrandLoaderSymbol=o;
2
+ //# sourceMappingURL=brandLoaderSymbolContext.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandLoaderSymbolContext.cjs","sources":["../../../../../src/ui/primitives/BrandLoader/brandLoaderSymbolContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type BrandLoaderSymbol = \"apipass\" | \"neutral\";\n\nexport const BrandLoaderSymbolContext = createContext<BrandLoaderSymbol>(\"apipass\");\n\nexport function useBrandLoaderSymbol() {\n return useContext(BrandLoaderSymbolContext);\n}\n"],"names":["BrandLoaderSymbolContext","createContext","useBrandLoaderSymbol","useContext"],"mappings":"yGAIaA,EAA2BC,EAAAA,cAAiC,SAAS,EAE3E,SAASC,GAAuB,CACrC,OAAOC,EAAAA,WAAWH,CAAwB,CAC5C"}
@@ -0,0 +1,10 @@
1
+ import { createContext as o, useContext as t } from "react";
2
+ const e = o("apipass");
3
+ function n() {
4
+ return t(e);
5
+ }
6
+ export {
7
+ e as BrandLoaderSymbolContext,
8
+ n as useBrandLoaderSymbol
9
+ };
10
+ //# sourceMappingURL=brandLoaderSymbolContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandLoaderSymbolContext.js","sources":["../../../../../src/ui/primitives/BrandLoader/brandLoaderSymbolContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type BrandLoaderSymbol = \"apipass\" | \"neutral\";\n\nexport const BrandLoaderSymbolContext = createContext<BrandLoaderSymbol>(\"apipass\");\n\nexport function useBrandLoaderSymbol() {\n return useContext(BrandLoaderSymbolContext);\n}\n"],"names":["BrandLoaderSymbolContext","createContext","useBrandLoaderSymbol","useContext"],"mappings":";AAIO,MAAMA,IAA2BC,EAAiC,SAAS;AAE3E,SAASC,IAAuB;AACrC,SAAOC,EAAWH,CAAwB;AAC5C;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R="-4 -4 48 40",O={slash:22.1695,big:60.049,tri:38.7669},I={slash:"M1.36 30.63 L11.47 10.9",big:"M8.02 30.65 L22.13 2.78 Q24.43 0 26.78 2.72 L37.9 23.12",tri:"M18.6 23.2 L24.7 11.4 L30.8 23.2 Z"},L=(t,i=0,n=1)=>Math.min(n,Math.max(i,t)),d=(t,i,n)=>L((t-i)/(n-i)),f=(t,i,n)=>t+(i-t)*n,u={inOut:t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,out:t=>1-Math.pow(1-t,3),in:t=>t*t*t,quadIn:t=>t*t,back:t=>1+(1.70158+1)*Math.pow(t-1,3)+1.70158*Math.pow(t-1,2)},p=1.75,V=5e-4;function $(t,i,n,o){const a=L(i),s=L(n);if(s-a<=V){t.style.opacity="0";return}t.style.opacity="1",t.style.strokeDasharray=`${(s-a)*o} ${o*2+10}`,t.style.strokeDashoffset=`${-a*o}`}function X(t){t.style.strokeDasharray="",t.style.strokeDashoffset="",t.style.opacity="1"}function B(t,i,n,o=1,a=1){t.setAttribute("cx",`${i}`),t.setAttribute("cy",`${n}`),t.setAttribute("rx",`${p*o}`),t.setAttribute("ry",`${p*a}`)}function x(t,i){const n=(c,e)=>u.inOut(d(t,c,e)),{slash:o,big:a,tri:s,lengths:r}=i;$(o,n(.6,.78),n(0,.22),r.slash),$(a,n(.64,.9),n(.08,.44),r.big),$(s,n(.7,.95),n(.24,.5),r.tri)}function D(t,i,n){let o,a,s=1,r=1,c=!0;if(t<.18){const e=u.quadIn(d(t,0,.18));o=1.36,a=f(-14,30.63,e),r=1+.25*e,s=1-.12*e}else if(t<.22){const e=Math.sin(d(t,.18,.22)*Math.PI);o=1.36,a=30.63+.6*e,s=1+.45*e,r=1-.35*e}else if(t<.38){const e=d(t,.22,.38),h=Math.abs(.5-e)*2;o=f(1.36,8.02,e),a=30.65-36*e*(1-e),r=1+.15*h,s=1-.08*h}else if(t<.64){const e=i.getPointAtLength(n);o=e.x,a=e.y}else if(t<.74){const e=d(t,.64,.74);o=f(37.9,24.7,e),a=f(23.12,19.3,e)-32*e*(1-e)}else{const e=d(t,.74,.8);o=24.7,a=19.3,s=r=1-u.out(e),c=e<1}if(t>=.36&&t<.4){const e=Math.sin(d(t,.36,.4)*Math.PI);s*=1+.3*e,r*=1-.25*e}return{x:o,y:a,scaleX:s,scaleY:r,isVisible:c}}function P(t,i){const{strokes:n,slash:o,big:a,tri:s,ball:r,lengths:c}=i;if(!r)return;const e=1-u.in(d(t,.9,1));n.style.opacity=`${e}`,$(o,0,u.out(d(t,.2,.34)),c.slash);const h=u.inOut(d(t,.38,.64));$(a,0,h,c.big);const y=d(t,.74,.86);s.style.opacity=y>0?"1":"0",s.style.transform=`scale(${u.back(y)})`;const l=D(t,a,h*c.big);r.style.opacity=`${l.isVisible?e:0}`,B(r,l.x,l.y,l.scaleX,l.scaleY)}function k(t,i){const n={x:-.456,y:.89},o={x:0,y:-.9},a=12,s=(r,c,e,h)=>{const y=d(t,c,c+.26),l=d(t,h,h+.2),b=u.in(l),M=a*(1-u.back(y)-b);r.style.transform=`translate(${e.x*M}px, ${e.y*M}px)`,r.style.opacity=`${Math.min(u.out(y),1-b)}`};s(i.slash,0,n,.66),s(i.big,.1,n,.71),s(i.tri,.22,o,.76)}function E(t,i){const{slash:n,big:o,tri:a,lengths:s}=i,r=9,c=s.slash+s.big+s.tri+r,e=u.inOut(t)*c;let h=0;[{path:n,length:s.slash},{path:o,length:s.big},{path:a,length:s.tri}].forEach(({path:y,length:l})=>{const b=e-h;$(y,(b-r)/l,b/l,l),h+=l})}function q({slash:t,big:i,tri:n}){[t,i,n].forEach(X)}function C(t,i){const{slash:n,big:o,tri:a}=i;[n,o,a].forEach((s,r)=>{const c=(t-r/3)*Math.PI*2-Math.PI/2,e=(Math.sin(c)+1)/2;s.style.opacity=`${.22+.78*e}`,s.style.transform=`scale(${.86+.14*e})`})}function T({slash:t,big:i,tri:n}){[t,i,n].forEach(o=>{o.style.opacity="1",o.style.transform=""})}function w(t,i){const{sweepClip:n,sweepEdge:o}=i;if(!n||!o)return;const a=.513,s=(S,v)=>S+(36-v)*a,r=-22,c=42,e=d(t,0,.45),h=d(t,.55,.98),y=f(r,c,u.inOut(e)),l=f(r,c,u.inOut(h));n.setAttribute("points",`${s(l,36)},36 ${s(y,36)},36 ${s(y,-4)},-4 ${s(l,-4)},-4`);const b=t<.45,M=t>.55;if(!b&&!M){o.style.opacity="0";return}const m=b?y:l,A=b?e:h;o.setAttribute("x1",`${s(m,33)}`),o.setAttribute("y1","33"),o.setAttribute("x2",`${s(m,-1)}`),o.setAttribute("y2","-1"),o.style.opacity=`${Math.sin(A*Math.PI)*.85}`}const g=(t,i)=>n=>i(t,n),j={trace:{period:2400,render:x,renderRest:g(.55,x)},bounce:{period:3e3,render:P,renderRest:g(.88,P)},assemble:{period:2300,render:k,renderRest:g(.5,k)},comet:{period:1900,render:E,renderRest:q},pulse:{period:1500,render:C,renderRest:T},sweep:{period:2100,render:w,renderRest:g(.5,w)}};exports.brandLoaderPathLengths=O;exports.brandLoaderSymbolPaths=I;exports.brandLoaderVariants=j;exports.brandLoaderViewBox=R;
2
+ //# sourceMappingURL=brandLoaderVariants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandLoaderVariants.cjs","sources":["../../../../../src/ui/primitives/BrandLoader/brandLoaderVariants.ts"],"sourcesContent":["export type BrandLoaderVariant =\n | \"trace\"\n | \"bounce\"\n | \"assemble\"\n | \"comet\"\n | \"pulse\"\n | \"sweep\";\n\nexport type BrandLoaderElements = {\n strokes: SVGGElement;\n slash: SVGPathElement;\n big: SVGPathElement;\n tri: SVGPathElement;\n ball: SVGEllipseElement | null;\n sweepClip: SVGPolygonElement | null;\n sweepEdge: SVGLineElement | null;\n lengths: { slash: number; big: number; tri: number };\n};\n\ntype BrandLoaderVariantDefinition = {\n period: number;\n render: (progress: number, elements: BrandLoaderElements) => void;\n renderRest: (elements: BrandLoaderElements) => void;\n};\n\nexport const brandLoaderViewBox = \"-4 -4 48 40\";\n\nexport const brandLoaderPathLengths = {\n slash: 22.1695,\n big: 60.049,\n tri: 38.7669,\n};\n\nexport const brandLoaderSymbolPaths = {\n slash: \"M1.36 30.63 L11.47 10.9\",\n big: \"M8.02 30.65 L22.13 2.78 Q24.43 0 26.78 2.72 L37.9 23.12\",\n tri: \"M18.6 23.2 L24.7 11.4 L30.8 23.2 Z\",\n};\n\nconst clamp = (value: number, min = 0, max = 1) =>\n Math.min(max, Math.max(min, value));\nconst segment = (progress: number, start: number, end: number) =>\n clamp((progress - start) / (end - start));\nconst lerp = (from: number, to: number, amount: number) =>\n from + (to - from) * amount;\n\nconst easing = {\n inOut: (t: number) =>\n t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2,\n out: (t: number) => 1 - Math.pow(1 - t, 3),\n in: (t: number) => t * t * t,\n quadIn: (t: number) => t * t,\n back: (t: number) => {\n const overshoot = 1.70158;\n return (\n 1 +\n (overshoot + 1) * Math.pow(t - 1, 3) +\n overshoot * Math.pow(t - 1, 2)\n );\n },\n};\n\nconst ballRadius = 1.75;\nconst invisibleStrokeLength = 0.0005;\n\nfunction drawStrokeSegment(\n path: SVGPathElement,\n start: number,\n end: number,\n length: number,\n) {\n const from = clamp(start);\n const to = clamp(end);\n if (to - from <= invisibleStrokeLength) {\n path.style.opacity = \"0\";\n return;\n }\n path.style.opacity = \"1\";\n path.style.strokeDasharray = `${(to - from) * length} ${length * 2 + 10}`;\n path.style.strokeDashoffset = `${-from * length}`;\n}\n\nfunction clearStrokeSegment(path: SVGPathElement) {\n path.style.strokeDasharray = \"\";\n path.style.strokeDashoffset = \"\";\n path.style.opacity = \"1\";\n}\n\nfunction placeBall(\n ball: SVGEllipseElement,\n x: number,\n y: number,\n scaleX = 1,\n scaleY = 1,\n) {\n ball.setAttribute(\"cx\", `${x}`);\n ball.setAttribute(\"cy\", `${y}`);\n ball.setAttribute(\"rx\", `${ballRadius * scaleX}`);\n ball.setAttribute(\"ry\", `${ballRadius * scaleY}`);\n}\n\nfunction renderTrace(progress: number, elements: BrandLoaderElements) {\n const drawn = (start: number, end: number) =>\n easing.inOut(segment(progress, start, end));\n const { slash, big, tri, lengths } = elements;\n drawStrokeSegment(slash, drawn(0.6, 0.78), drawn(0, 0.22), lengths.slash);\n drawStrokeSegment(big, drawn(0.64, 0.9), drawn(0.08, 0.44), lengths.big);\n drawStrokeSegment(tri, drawn(0.7, 0.95), drawn(0.24, 0.5), lengths.tri);\n}\n\nfunction bouncingBallPosition(\n progress: number,\n bigStroke: SVGPathElement,\n bigStrokeTravel: number,\n) {\n let x: number;\n let y: number;\n let scaleX = 1;\n let scaleY = 1;\n let isVisible = true;\n\n if (progress < 0.18) {\n const fall = easing.quadIn(segment(progress, 0, 0.18));\n x = 1.36;\n y = lerp(-14, 30.63, fall);\n scaleY = 1 + 0.25 * fall;\n scaleX = 1 - 0.12 * fall;\n } else if (progress < 0.22) {\n const squash = Math.sin(segment(progress, 0.18, 0.22) * Math.PI);\n x = 1.36;\n y = 30.63 + 0.6 * squash;\n scaleX = 1 + 0.45 * squash;\n scaleY = 1 - 0.35 * squash;\n } else if (progress < 0.38) {\n const hop = segment(progress, 0.22, 0.38);\n const stretch = Math.abs(0.5 - hop) * 2;\n x = lerp(1.36, 8.02, hop);\n y = 30.65 - 9 * 4 * hop * (1 - hop);\n scaleY = 1 + 0.15 * stretch;\n scaleX = 1 - 0.08 * stretch;\n } else if (progress < 0.64) {\n const point = bigStroke.getPointAtLength(bigStrokeTravel);\n x = point.x;\n y = point.y;\n } else if (progress < 0.74) {\n const jump = segment(progress, 0.64, 0.74);\n x = lerp(37.9, 24.7, jump);\n y = lerp(23.12, 19.3, jump) - 8 * 4 * jump * (1 - jump);\n } else {\n const shrink = segment(progress, 0.74, 0.8);\n x = 24.7;\n y = 19.3;\n scaleX = scaleY = 1 - easing.out(shrink);\n isVisible = shrink < 1;\n }\n\n if (progress >= 0.36 && progress < 0.4) {\n const landing = Math.sin(segment(progress, 0.36, 0.4) * Math.PI);\n scaleX *= 1 + 0.3 * landing;\n scaleY *= 1 - 0.25 * landing;\n }\n\n return { x, y, scaleX, scaleY, isVisible };\n}\n\nfunction renderBounce(progress: number, elements: BrandLoaderElements) {\n const { strokes, slash, big, tri, ball, lengths } = elements;\n if (!ball) return;\n\n const fade = 1 - easing.in(segment(progress, 0.9, 1));\n strokes.style.opacity = `${fade}`;\n\n drawStrokeSegment(slash, 0, easing.out(segment(progress, 0.2, 0.34)), lengths.slash);\n\n const ride = easing.inOut(segment(progress, 0.38, 0.64));\n drawStrokeSegment(big, 0, ride, lengths.big);\n\n const triangleGrowth = segment(progress, 0.74, 0.86);\n tri.style.opacity = triangleGrowth > 0 ? \"1\" : \"0\";\n tri.style.transform = `scale(${easing.back(triangleGrowth)})`;\n\n const position = bouncingBallPosition(progress, big, ride * lengths.big);\n ball.style.opacity = `${position.isVisible ? fade : 0}`;\n placeBall(ball, position.x, position.y, position.scaleX, position.scaleY);\n}\n\nfunction renderAssemble(progress: number, elements: BrandLoaderElements) {\n const strokeAxis = { x: -0.456, y: 0.89 };\n const triangleAxis = { x: 0, y: -0.9 };\n const slideDistance = 12;\n\n const slidePiece = (\n piece: SVGPathElement,\n enterAt: number,\n axis: { x: number; y: number },\n exitAt: number,\n ) => {\n const entering = segment(progress, enterAt, enterAt + 0.26);\n const exiting = segment(progress, exitAt, exitAt + 0.2);\n const departed = easing.in(exiting);\n const offset = slideDistance * (1 - easing.back(entering) - departed);\n piece.style.transform = `translate(${axis.x * offset}px, ${axis.y * offset}px)`;\n piece.style.opacity = `${Math.min(easing.out(entering), 1 - departed)}`;\n };\n\n slidePiece(elements.slash, 0, strokeAxis, 0.66);\n slidePiece(elements.big, 0.1, strokeAxis, 0.71);\n slidePiece(elements.tri, 0.22, triangleAxis, 0.76);\n}\n\nfunction renderComet(progress: number, elements: BrandLoaderElements) {\n const { slash, big, tri, lengths } = elements;\n const tailLength = 9;\n const pathLength = lengths.slash + lengths.big + lengths.tri + tailLength;\n const head = easing.inOut(progress) * pathLength;\n\n let travelled = 0;\n [\n { path: slash, length: lengths.slash },\n { path: big, length: lengths.big },\n { path: tri, length: lengths.tri },\n ].forEach(({ path, length }) => {\n const headOnPath = head - travelled;\n drawStrokeSegment(\n path,\n (headOnPath - tailLength) / length,\n headOnPath / length,\n length,\n );\n travelled += length;\n });\n}\n\nfunction renderCometRest({ slash, big, tri }: BrandLoaderElements) {\n [slash, big, tri].forEach(clearStrokeSegment);\n}\n\nfunction renderPulse(progress: number, elements: BrandLoaderElements) {\n const { slash, big, tri } = elements;\n [slash, big, tri].forEach((piece, index) => {\n const phase = (progress - index / 3) * Math.PI * 2 - Math.PI / 2;\n const wave = (Math.sin(phase) + 1) / 2;\n piece.style.opacity = `${0.22 + 0.78 * wave}`;\n piece.style.transform = `scale(${0.86 + 0.14 * wave})`;\n });\n}\n\nfunction renderPulseRest({ slash, big, tri }: BrandLoaderElements) {\n [slash, big, tri].forEach((piece) => {\n piece.style.opacity = \"1\";\n piece.style.transform = \"\";\n });\n}\n\nfunction renderSweep(progress: number, elements: BrandLoaderElements) {\n const { sweepClip, sweepEdge } = elements;\n if (!sweepClip || !sweepEdge) return;\n\n const strokeSlope = 0.513;\n const slantedX = (x: number, y: number) => x + (36 - y) * strokeSlope;\n const startX = -22;\n const endX = 42;\n\n const revealing = segment(progress, 0, 0.45);\n const hiding = segment(progress, 0.55, 0.98);\n const lead = lerp(startX, endX, easing.inOut(revealing));\n const trail = lerp(startX, endX, easing.inOut(hiding));\n\n sweepClip.setAttribute(\n \"points\",\n `${slantedX(trail, 36)},36 ${slantedX(lead, 36)},36 ${slantedX(lead, -4)},-4 ${slantedX(trail, -4)},-4`,\n );\n\n const isRevealing = progress < 0.45;\n const isHiding = progress > 0.55;\n if (!isRevealing && !isHiding) {\n sweepEdge.style.opacity = \"0\";\n return;\n }\n\n const edgeX = isRevealing ? lead : trail;\n const edgeTravel = isRevealing ? revealing : hiding;\n sweepEdge.setAttribute(\"x1\", `${slantedX(edgeX, 33)}`);\n sweepEdge.setAttribute(\"y1\", \"33\");\n sweepEdge.setAttribute(\"x2\", `${slantedX(edgeX, -1)}`);\n sweepEdge.setAttribute(\"y2\", \"-1\");\n sweepEdge.style.opacity = `${Math.sin(edgeTravel * Math.PI) * 0.85}`;\n}\n\nconst restingAt =\n (progress: number, render: BrandLoaderVariantDefinition[\"render\"]) =>\n (elements: BrandLoaderElements) =>\n render(progress, elements);\n\nexport const brandLoaderVariants: Record<\n BrandLoaderVariant,\n BrandLoaderVariantDefinition\n> = {\n trace: {\n period: 2400,\n render: renderTrace,\n renderRest: restingAt(0.55, renderTrace),\n },\n bounce: {\n period: 3000,\n render: renderBounce,\n renderRest: restingAt(0.88, renderBounce),\n },\n assemble: {\n period: 2300,\n render: renderAssemble,\n renderRest: restingAt(0.5, renderAssemble),\n },\n comet: {\n period: 1900,\n render: renderComet,\n renderRest: renderCometRest,\n },\n pulse: {\n period: 1500,\n render: renderPulse,\n renderRest: renderPulseRest,\n },\n sweep: {\n period: 2100,\n render: renderSweep,\n renderRest: restingAt(0.5, renderSweep),\n },\n};\n"],"names":["brandLoaderViewBox","brandLoaderPathLengths","brandLoaderSymbolPaths","clamp","value","min","max","segment","progress","start","end","lerp","from","to","amount","easing","ballRadius","invisibleStrokeLength","drawStrokeSegment","path","length","clearStrokeSegment","placeBall","ball","x","y","scaleX","scaleY","renderTrace","elements","drawn","slash","big","tri","lengths","bouncingBallPosition","bigStroke","bigStrokeTravel","isVisible","fall","squash","hop","stretch","point","jump","shrink","landing","renderBounce","strokes","fade","ride","triangleGrowth","position","renderAssemble","strokeAxis","triangleAxis","slideDistance","slidePiece","piece","enterAt","axis","exitAt","entering","exiting","departed","offset","renderComet","tailLength","pathLength","head","travelled","headOnPath","renderCometRest","renderPulse","index","phase","wave","renderPulseRest","renderSweep","sweepClip","sweepEdge","strokeSlope","slantedX","startX","endX","revealing","hiding","lead","trail","isRevealing","isHiding","edgeX","edgeTravel","restingAt","render","brandLoaderVariants"],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ const q = "-4 -4 48 40", C = {
2
+ slash: 22.1695,
3
+ big: 60.049,
4
+ tri: 38.7669
5
+ }, T = {
6
+ slash: "M1.36 30.63 L11.47 10.9",
7
+ big: "M8.02 30.65 L22.13 2.78 Q24.43 0 26.78 2.72 L37.9 23.12",
8
+ tri: "M18.6 23.2 L24.7 11.4 L30.8 23.2 Z"
9
+ }, p = (t, i = 0, n = 1) => Math.min(n, Math.max(i, t)), d = (t, i, n) => p((t - i) / (n - i)), b = (t, i, n) => t + (i - t) * n, u = {
10
+ inOut: (t) => t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2,
11
+ out: (t) => 1 - Math.pow(1 - t, 3),
12
+ in: (t) => t * t * t,
13
+ quadIn: (t) => t * t,
14
+ back: (t) => 1 + (1.70158 + 1) * Math.pow(t - 1, 3) + 1.70158 * Math.pow(t - 1, 2)
15
+ }, x = 1.75, S = 5e-4;
16
+ function $(t, i, n, o) {
17
+ const a = p(i), s = p(n);
18
+ if (s - a <= S) {
19
+ t.style.opacity = "0";
20
+ return;
21
+ }
22
+ t.style.opacity = "1", t.style.strokeDasharray = `${(s - a) * o} ${o * 2 + 10}`, t.style.strokeDashoffset = `${-a * o}`;
23
+ }
24
+ function I(t) {
25
+ t.style.strokeDasharray = "", t.style.strokeDashoffset = "", t.style.opacity = "1";
26
+ }
27
+ function O(t, i, n, o = 1, a = 1) {
28
+ t.setAttribute("cx", `${i}`), t.setAttribute("cy", `${n}`), t.setAttribute("rx", `${x * o}`), t.setAttribute("ry", `${x * a}`);
29
+ }
30
+ function k(t, i) {
31
+ const n = (r, e) => u.inOut(d(t, r, e)), { slash: o, big: a, tri: s, lengths: c } = i;
32
+ $(o, n(0.6, 0.78), n(0, 0.22), c.slash), $(a, n(0.64, 0.9), n(0.08, 0.44), c.big), $(s, n(0.7, 0.95), n(0.24, 0.5), c.tri);
33
+ }
34
+ function X(t, i, n) {
35
+ let o, a, s = 1, c = 1, r = !0;
36
+ if (t < 0.18) {
37
+ const e = u.quadIn(d(t, 0, 0.18));
38
+ o = 1.36, a = b(-14, 30.63, e), c = 1 + 0.25 * e, s = 1 - 0.12 * e;
39
+ } else if (t < 0.22) {
40
+ const e = Math.sin(d(t, 0.18, 0.22) * Math.PI);
41
+ o = 1.36, a = 30.63 + 0.6 * e, s = 1 + 0.45 * e, c = 1 - 0.35 * e;
42
+ } else if (t < 0.38) {
43
+ const e = d(t, 0.22, 0.38), h = Math.abs(0.5 - e) * 2;
44
+ o = b(1.36, 8.02, e), a = 30.65 - 36 * e * (1 - e), c = 1 + 0.15 * h, s = 1 - 0.08 * h;
45
+ } else if (t < 0.64) {
46
+ const e = i.getPointAtLength(n);
47
+ o = e.x, a = e.y;
48
+ } else if (t < 0.74) {
49
+ const e = d(t, 0.64, 0.74);
50
+ o = b(37.9, 24.7, e), a = b(23.12, 19.3, e) - 32 * e * (1 - e);
51
+ } else {
52
+ const e = d(t, 0.74, 0.8);
53
+ o = 24.7, a = 19.3, s = c = 1 - u.out(e), r = e < 1;
54
+ }
55
+ if (t >= 0.36 && t < 0.4) {
56
+ const e = Math.sin(d(t, 0.36, 0.4) * Math.PI);
57
+ s *= 1 + 0.3 * e, c *= 1 - 0.25 * e;
58
+ }
59
+ return { x: o, y: a, scaleX: s, scaleY: c, isVisible: r };
60
+ }
61
+ function L(t, i) {
62
+ const { strokes: n, slash: o, big: a, tri: s, ball: c, lengths: r } = i;
63
+ if (!c) return;
64
+ const e = 1 - u.in(d(t, 0.9, 1));
65
+ n.style.opacity = `${e}`, $(o, 0, u.out(d(t, 0.2, 0.34)), r.slash);
66
+ const h = u.inOut(d(t, 0.38, 0.64));
67
+ $(a, 0, h, r.big);
68
+ const y = d(t, 0.74, 0.86);
69
+ s.style.opacity = y > 0 ? "1" : "0", s.style.transform = `scale(${u.back(y)})`;
70
+ const l = X(t, a, h * r.big);
71
+ c.style.opacity = `${l.isVisible ? e : 0}`, O(c, l.x, l.y, l.scaleX, l.scaleY);
72
+ }
73
+ function w(t, i) {
74
+ const n = { x: -0.456, y: 0.89 }, o = { x: 0, y: -0.9 }, a = 12, s = (c, r, e, h) => {
75
+ const y = d(t, r, r + 0.26), l = d(t, h, h + 0.2), f = u.in(l), M = a * (1 - u.back(y) - f);
76
+ c.style.transform = `translate(${e.x * M}px, ${e.y * M}px)`, c.style.opacity = `${Math.min(u.out(y), 1 - f)}`;
77
+ };
78
+ s(i.slash, 0, n, 0.66), s(i.big, 0.1, n, 0.71), s(i.tri, 0.22, o, 0.76);
79
+ }
80
+ function D(t, i) {
81
+ const { slash: n, big: o, tri: a, lengths: s } = i, c = 9, r = s.slash + s.big + s.tri + c, e = u.inOut(t) * r;
82
+ let h = 0;
83
+ [
84
+ { path: n, length: s.slash },
85
+ { path: o, length: s.big },
86
+ { path: a, length: s.tri }
87
+ ].forEach(({ path: y, length: l }) => {
88
+ const f = e - h;
89
+ $(
90
+ y,
91
+ (f - c) / l,
92
+ f / l,
93
+ l
94
+ ), h += l;
95
+ });
96
+ }
97
+ function E({ slash: t, big: i, tri: n }) {
98
+ [t, i, n].forEach(I);
99
+ }
100
+ function B(t, i) {
101
+ const { slash: n, big: o, tri: a } = i;
102
+ [n, o, a].forEach((s, c) => {
103
+ const r = (t - c / 3) * Math.PI * 2 - Math.PI / 2, e = (Math.sin(r) + 1) / 2;
104
+ s.style.opacity = `${0.22 + 0.78 * e}`, s.style.transform = `scale(${0.86 + 0.14 * e})`;
105
+ });
106
+ }
107
+ function V({ slash: t, big: i, tri: n }) {
108
+ [t, i, n].forEach((o) => {
109
+ o.style.opacity = "1", o.style.transform = "";
110
+ });
111
+ }
112
+ function P(t, i) {
113
+ const { sweepClip: n, sweepEdge: o } = i;
114
+ if (!n || !o) return;
115
+ const a = 0.513, s = (R, v) => R + (36 - v) * a, c = -22, r = 42, e = d(t, 0, 0.45), h = d(t, 0.55, 0.98), y = b(c, r, u.inOut(e)), l = b(c, r, u.inOut(h));
116
+ n.setAttribute(
117
+ "points",
118
+ `${s(l, 36)},36 ${s(y, 36)},36 ${s(y, -4)},-4 ${s(l, -4)},-4`
119
+ );
120
+ const f = t < 0.45, M = t > 0.55;
121
+ if (!f && !M) {
122
+ o.style.opacity = "0";
123
+ return;
124
+ }
125
+ const m = f ? y : l, A = f ? e : h;
126
+ o.setAttribute("x1", `${s(m, 33)}`), o.setAttribute("y1", "33"), o.setAttribute("x2", `${s(m, -1)}`), o.setAttribute("y2", "-1"), o.style.opacity = `${Math.sin(A * Math.PI) * 0.85}`;
127
+ }
128
+ const g = (t, i) => (n) => i(t, n), Y = {
129
+ trace: {
130
+ period: 2400,
131
+ render: k,
132
+ renderRest: g(0.55, k)
133
+ },
134
+ bounce: {
135
+ period: 3e3,
136
+ render: L,
137
+ renderRest: g(0.88, L)
138
+ },
139
+ assemble: {
140
+ period: 2300,
141
+ render: w,
142
+ renderRest: g(0.5, w)
143
+ },
144
+ comet: {
145
+ period: 1900,
146
+ render: D,
147
+ renderRest: E
148
+ },
149
+ pulse: {
150
+ period: 1500,
151
+ render: B,
152
+ renderRest: V
153
+ },
154
+ sweep: {
155
+ period: 2100,
156
+ render: P,
157
+ renderRest: g(0.5, P)
158
+ }
159
+ };
160
+ export {
161
+ C as brandLoaderPathLengths,
162
+ T as brandLoaderSymbolPaths,
163
+ Y as brandLoaderVariants,
164
+ q as brandLoaderViewBox
165
+ };
166
+ //# sourceMappingURL=brandLoaderVariants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandLoaderVariants.js","sources":["../../../../../src/ui/primitives/BrandLoader/brandLoaderVariants.ts"],"sourcesContent":["export type BrandLoaderVariant =\n | \"trace\"\n | \"bounce\"\n | \"assemble\"\n | \"comet\"\n | \"pulse\"\n | \"sweep\";\n\nexport type BrandLoaderElements = {\n strokes: SVGGElement;\n slash: SVGPathElement;\n big: SVGPathElement;\n tri: SVGPathElement;\n ball: SVGEllipseElement | null;\n sweepClip: SVGPolygonElement | null;\n sweepEdge: SVGLineElement | null;\n lengths: { slash: number; big: number; tri: number };\n};\n\ntype BrandLoaderVariantDefinition = {\n period: number;\n render: (progress: number, elements: BrandLoaderElements) => void;\n renderRest: (elements: BrandLoaderElements) => void;\n};\n\nexport const brandLoaderViewBox = \"-4 -4 48 40\";\n\nexport const brandLoaderPathLengths = {\n slash: 22.1695,\n big: 60.049,\n tri: 38.7669,\n};\n\nexport const brandLoaderSymbolPaths = {\n slash: \"M1.36 30.63 L11.47 10.9\",\n big: \"M8.02 30.65 L22.13 2.78 Q24.43 0 26.78 2.72 L37.9 23.12\",\n tri: \"M18.6 23.2 L24.7 11.4 L30.8 23.2 Z\",\n};\n\nconst clamp = (value: number, min = 0, max = 1) =>\n Math.min(max, Math.max(min, value));\nconst segment = (progress: number, start: number, end: number) =>\n clamp((progress - start) / (end - start));\nconst lerp = (from: number, to: number, amount: number) =>\n from + (to - from) * amount;\n\nconst easing = {\n inOut: (t: number) =>\n t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2,\n out: (t: number) => 1 - Math.pow(1 - t, 3),\n in: (t: number) => t * t * t,\n quadIn: (t: number) => t * t,\n back: (t: number) => {\n const overshoot = 1.70158;\n return (\n 1 +\n (overshoot + 1) * Math.pow(t - 1, 3) +\n overshoot * Math.pow(t - 1, 2)\n );\n },\n};\n\nconst ballRadius = 1.75;\nconst invisibleStrokeLength = 0.0005;\n\nfunction drawStrokeSegment(\n path: SVGPathElement,\n start: number,\n end: number,\n length: number,\n) {\n const from = clamp(start);\n const to = clamp(end);\n if (to - from <= invisibleStrokeLength) {\n path.style.opacity = \"0\";\n return;\n }\n path.style.opacity = \"1\";\n path.style.strokeDasharray = `${(to - from) * length} ${length * 2 + 10}`;\n path.style.strokeDashoffset = `${-from * length}`;\n}\n\nfunction clearStrokeSegment(path: SVGPathElement) {\n path.style.strokeDasharray = \"\";\n path.style.strokeDashoffset = \"\";\n path.style.opacity = \"1\";\n}\n\nfunction placeBall(\n ball: SVGEllipseElement,\n x: number,\n y: number,\n scaleX = 1,\n scaleY = 1,\n) {\n ball.setAttribute(\"cx\", `${x}`);\n ball.setAttribute(\"cy\", `${y}`);\n ball.setAttribute(\"rx\", `${ballRadius * scaleX}`);\n ball.setAttribute(\"ry\", `${ballRadius * scaleY}`);\n}\n\nfunction renderTrace(progress: number, elements: BrandLoaderElements) {\n const drawn = (start: number, end: number) =>\n easing.inOut(segment(progress, start, end));\n const { slash, big, tri, lengths } = elements;\n drawStrokeSegment(slash, drawn(0.6, 0.78), drawn(0, 0.22), lengths.slash);\n drawStrokeSegment(big, drawn(0.64, 0.9), drawn(0.08, 0.44), lengths.big);\n drawStrokeSegment(tri, drawn(0.7, 0.95), drawn(0.24, 0.5), lengths.tri);\n}\n\nfunction bouncingBallPosition(\n progress: number,\n bigStroke: SVGPathElement,\n bigStrokeTravel: number,\n) {\n let x: number;\n let y: number;\n let scaleX = 1;\n let scaleY = 1;\n let isVisible = true;\n\n if (progress < 0.18) {\n const fall = easing.quadIn(segment(progress, 0, 0.18));\n x = 1.36;\n y = lerp(-14, 30.63, fall);\n scaleY = 1 + 0.25 * fall;\n scaleX = 1 - 0.12 * fall;\n } else if (progress < 0.22) {\n const squash = Math.sin(segment(progress, 0.18, 0.22) * Math.PI);\n x = 1.36;\n y = 30.63 + 0.6 * squash;\n scaleX = 1 + 0.45 * squash;\n scaleY = 1 - 0.35 * squash;\n } else if (progress < 0.38) {\n const hop = segment(progress, 0.22, 0.38);\n const stretch = Math.abs(0.5 - hop) * 2;\n x = lerp(1.36, 8.02, hop);\n y = 30.65 - 9 * 4 * hop * (1 - hop);\n scaleY = 1 + 0.15 * stretch;\n scaleX = 1 - 0.08 * stretch;\n } else if (progress < 0.64) {\n const point = bigStroke.getPointAtLength(bigStrokeTravel);\n x = point.x;\n y = point.y;\n } else if (progress < 0.74) {\n const jump = segment(progress, 0.64, 0.74);\n x = lerp(37.9, 24.7, jump);\n y = lerp(23.12, 19.3, jump) - 8 * 4 * jump * (1 - jump);\n } else {\n const shrink = segment(progress, 0.74, 0.8);\n x = 24.7;\n y = 19.3;\n scaleX = scaleY = 1 - easing.out(shrink);\n isVisible = shrink < 1;\n }\n\n if (progress >= 0.36 && progress < 0.4) {\n const landing = Math.sin(segment(progress, 0.36, 0.4) * Math.PI);\n scaleX *= 1 + 0.3 * landing;\n scaleY *= 1 - 0.25 * landing;\n }\n\n return { x, y, scaleX, scaleY, isVisible };\n}\n\nfunction renderBounce(progress: number, elements: BrandLoaderElements) {\n const { strokes, slash, big, tri, ball, lengths } = elements;\n if (!ball) return;\n\n const fade = 1 - easing.in(segment(progress, 0.9, 1));\n strokes.style.opacity = `${fade}`;\n\n drawStrokeSegment(slash, 0, easing.out(segment(progress, 0.2, 0.34)), lengths.slash);\n\n const ride = easing.inOut(segment(progress, 0.38, 0.64));\n drawStrokeSegment(big, 0, ride, lengths.big);\n\n const triangleGrowth = segment(progress, 0.74, 0.86);\n tri.style.opacity = triangleGrowth > 0 ? \"1\" : \"0\";\n tri.style.transform = `scale(${easing.back(triangleGrowth)})`;\n\n const position = bouncingBallPosition(progress, big, ride * lengths.big);\n ball.style.opacity = `${position.isVisible ? fade : 0}`;\n placeBall(ball, position.x, position.y, position.scaleX, position.scaleY);\n}\n\nfunction renderAssemble(progress: number, elements: BrandLoaderElements) {\n const strokeAxis = { x: -0.456, y: 0.89 };\n const triangleAxis = { x: 0, y: -0.9 };\n const slideDistance = 12;\n\n const slidePiece = (\n piece: SVGPathElement,\n enterAt: number,\n axis: { x: number; y: number },\n exitAt: number,\n ) => {\n const entering = segment(progress, enterAt, enterAt + 0.26);\n const exiting = segment(progress, exitAt, exitAt + 0.2);\n const departed = easing.in(exiting);\n const offset = slideDistance * (1 - easing.back(entering) - departed);\n piece.style.transform = `translate(${axis.x * offset}px, ${axis.y * offset}px)`;\n piece.style.opacity = `${Math.min(easing.out(entering), 1 - departed)}`;\n };\n\n slidePiece(elements.slash, 0, strokeAxis, 0.66);\n slidePiece(elements.big, 0.1, strokeAxis, 0.71);\n slidePiece(elements.tri, 0.22, triangleAxis, 0.76);\n}\n\nfunction renderComet(progress: number, elements: BrandLoaderElements) {\n const { slash, big, tri, lengths } = elements;\n const tailLength = 9;\n const pathLength = lengths.slash + lengths.big + lengths.tri + tailLength;\n const head = easing.inOut(progress) * pathLength;\n\n let travelled = 0;\n [\n { path: slash, length: lengths.slash },\n { path: big, length: lengths.big },\n { path: tri, length: lengths.tri },\n ].forEach(({ path, length }) => {\n const headOnPath = head - travelled;\n drawStrokeSegment(\n path,\n (headOnPath - tailLength) / length,\n headOnPath / length,\n length,\n );\n travelled += length;\n });\n}\n\nfunction renderCometRest({ slash, big, tri }: BrandLoaderElements) {\n [slash, big, tri].forEach(clearStrokeSegment);\n}\n\nfunction renderPulse(progress: number, elements: BrandLoaderElements) {\n const { slash, big, tri } = elements;\n [slash, big, tri].forEach((piece, index) => {\n const phase = (progress - index / 3) * Math.PI * 2 - Math.PI / 2;\n const wave = (Math.sin(phase) + 1) / 2;\n piece.style.opacity = `${0.22 + 0.78 * wave}`;\n piece.style.transform = `scale(${0.86 + 0.14 * wave})`;\n });\n}\n\nfunction renderPulseRest({ slash, big, tri }: BrandLoaderElements) {\n [slash, big, tri].forEach((piece) => {\n piece.style.opacity = \"1\";\n piece.style.transform = \"\";\n });\n}\n\nfunction renderSweep(progress: number, elements: BrandLoaderElements) {\n const { sweepClip, sweepEdge } = elements;\n if (!sweepClip || !sweepEdge) return;\n\n const strokeSlope = 0.513;\n const slantedX = (x: number, y: number) => x + (36 - y) * strokeSlope;\n const startX = -22;\n const endX = 42;\n\n const revealing = segment(progress, 0, 0.45);\n const hiding = segment(progress, 0.55, 0.98);\n const lead = lerp(startX, endX, easing.inOut(revealing));\n const trail = lerp(startX, endX, easing.inOut(hiding));\n\n sweepClip.setAttribute(\n \"points\",\n `${slantedX(trail, 36)},36 ${slantedX(lead, 36)},36 ${slantedX(lead, -4)},-4 ${slantedX(trail, -4)},-4`,\n );\n\n const isRevealing = progress < 0.45;\n const isHiding = progress > 0.55;\n if (!isRevealing && !isHiding) {\n sweepEdge.style.opacity = \"0\";\n return;\n }\n\n const edgeX = isRevealing ? lead : trail;\n const edgeTravel = isRevealing ? revealing : hiding;\n sweepEdge.setAttribute(\"x1\", `${slantedX(edgeX, 33)}`);\n sweepEdge.setAttribute(\"y1\", \"33\");\n sweepEdge.setAttribute(\"x2\", `${slantedX(edgeX, -1)}`);\n sweepEdge.setAttribute(\"y2\", \"-1\");\n sweepEdge.style.opacity = `${Math.sin(edgeTravel * Math.PI) * 0.85}`;\n}\n\nconst restingAt =\n (progress: number, render: BrandLoaderVariantDefinition[\"render\"]) =>\n (elements: BrandLoaderElements) =>\n render(progress, elements);\n\nexport const brandLoaderVariants: Record<\n BrandLoaderVariant,\n BrandLoaderVariantDefinition\n> = {\n trace: {\n period: 2400,\n render: renderTrace,\n renderRest: restingAt(0.55, renderTrace),\n },\n bounce: {\n period: 3000,\n render: renderBounce,\n renderRest: restingAt(0.88, renderBounce),\n },\n assemble: {\n period: 2300,\n render: renderAssemble,\n renderRest: restingAt(0.5, renderAssemble),\n },\n comet: {\n period: 1900,\n render: renderComet,\n renderRest: renderCometRest,\n },\n pulse: {\n period: 1500,\n render: renderPulse,\n renderRest: renderPulseRest,\n },\n sweep: {\n period: 2100,\n render: renderSweep,\n renderRest: restingAt(0.5, renderSweep),\n },\n};\n"],"names":["brandLoaderViewBox","brandLoaderPathLengths","brandLoaderSymbolPaths","clamp","value","min","max","segment","progress","start","end","lerp","from","to","amount","easing","ballRadius","invisibleStrokeLength","drawStrokeSegment","path","length","clearStrokeSegment","placeBall","ball","x","y","scaleX","scaleY","renderTrace","elements","drawn","slash","big","tri","lengths","bouncingBallPosition","bigStroke","bigStrokeTravel","isVisible","fall","squash","hop","stretch","point","jump","shrink","landing","renderBounce","strokes","fade","ride","triangleGrowth","position","renderAssemble","strokeAxis","triangleAxis","slideDistance","slidePiece","piece","enterAt","axis","exitAt","entering","exiting","departed","offset","renderComet","tailLength","pathLength","head","travelled","headOnPath","renderCometRest","renderPulse","index","phase","wave","renderPulseRest","renderSweep","sweepClip","sweepEdge","strokeSlope","slantedX","startX","endX","revealing","hiding","lead","trail","isRevealing","isHiding","edgeX","edgeTravel","restingAt","render","brandLoaderVariants"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),l=require("../../../vendor/clsx/dist/clsx.cjs"),d=require("react"),i=require("react-aria-components");;/* empty css */const b=d.forwardRef(function({className:e,size:r="medium",variant:s="primary",...t},o){const c=l.clsx(e,"button",`button-size-${r}`,`button-variant-${s}`),{style:h,...u}=t;return m(t)?a.jsx(i.Link,{...u,className:c,ref:o,children:t.children}):a.jsx(i.Button,{...u,className:c,ref:o,children:t.children})}),x=d.forwardRef(function({className:e,size:r="medium",variant:s="danger-primary",...t},o){const c=l.clsx(e,"button",`button-size-${r}`,`button-variant-${s}`),{style:h,...u}=t;return m(t)?a.jsx(i.Link,{...u,className:c,ref:o,children:t.children}):a.jsx(i.Button,{...u,className:c,ref:o,children:t.children})});function m(n){return"href"in n}const B=({align:n="start",className:e,...r})=>{const s=l.clsx(e,"button-group",`button-group-align-${n}`);return a.jsx("div",{className:s,...r})};exports.Button=b;exports.ButtonDanger=x;exports.ButtonGroup=B;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),m=require("../../../vendor/clsx/dist/clsx.cjs"),h=require("react"),d=require("react-aria-components"),g=require("../BrandLoader/BrandLoader.cjs");;/* empty css */const j=r.jsx(g.BrandLoader,{"aria-hidden":!0,variant:"pulse",size:"16",tone:"current"});function x(t,e){return e?o=>r.jsxs(r.Fragment,{children:[j,typeof t=="function"?t(o):t]}):t}const b=h.forwardRef(function({className:e,size:o="medium",variant:s="primary",isPending:u,isDisabled:a,...n},c){const i=m.clsx(e,"button",`button-size-${o}`,`button-variant-${s}`),{style:f,...l}=n;return B(n)?r.jsx(d.Link,{...l,isDisabled:a,className:i,ref:c,children:n.children}):r.jsx(d.Button,{...l,className:i,isPending:u,isDisabled:a,ref:c,children:x(n.children,u)})}),N=h.forwardRef(function({className:e,size:o="medium",variant:s="danger-primary",isPending:u,isDisabled:a,...n},c){const i=m.clsx(e,"button",`button-size-${o}`,`button-variant-${s}`),{style:f,...l}=n;return B(n)?r.jsx(d.Link,{...l,isDisabled:a,className:i,ref:c,children:n.children}):r.jsx(d.Button,{...l,className:i,isPending:u,isDisabled:a,ref:c,children:x(n.children,u)})});function B(t){return"href"in t}const y=({align:t="start",className:e,...o})=>{const s=m.clsx(e,"button-group",`button-group-align-${t}`);return r.jsx("div",{className:s,...o})};exports.Button=b;exports.ButtonDanger=N;exports.ButtonGroup=y;
2
2
  //# sourceMappingURL=Button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs","sources":["../../../../../src/ui/primitives/Button/Button.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React, { ComponentPropsWithoutRef } from \"react\";\nimport { Button as RACButton, Link as RACLink } from \"react-aria-components\";\nimport { type AnchorOrButtonProps } from \"utils\";\nimport \"./button.css\";\n\nexport type ButtonProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"danger-primary\" | \"danger-subtle\"\n >;\n};\nexport const Button = React.forwardRef(function Button(\n { className, size = \"medium\", variant = \"primary\", ...props }: ButtonProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {props.children}\n </RACButton>\n );\n});\n\nexport type ButtonDangerProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"primary\" | \"subtle\" | \"neutral\" | \"text\"\n >;\n};\n/**\n * Only used for destructive actions\n */\nexport const ButtonDanger = React.forwardRef(function Button(\n {\n className,\n size = \"medium\",\n variant = \"danger-primary\",\n ...props\n }: ButtonDangerProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {props.children}\n </RACButton>\n );\n});\n\ntype ButtonBaseProps = {\n type?: ComponentPropsWithoutRef<\"button\">[\"type\"];\n size?: \"small\" | \"medium\";\n variant?:\n | \"primary\"\n | \"neutral\"\n | \"subtle\"\n | \"text\"\n | \"danger-primary\"\n | \"danger-subtle\";\n} & AnchorOrButtonProps;\n\nfunction isAnchorProps(\n props: ButtonBaseProps | ButtonDangerProps,\n): props is (ButtonBaseProps | ButtonDangerProps) &\n ComponentPropsWithoutRef<typeof RACLink> {\n return \"href\" in props;\n}\n\nexport type ButtonGroupProps = React.ComponentPropsWithoutRef<\"div\"> & {\n align?: \"start\" | \"end\" | \"center\" | \"justify\" | \"stack\";\n};\nexport const ButtonGroup = ({\n align = \"start\",\n className,\n ...props\n}: ButtonGroupProps) => {\n const classNames = clsx(\n className,\n \"button-group\",\n `button-group-align-${align}`,\n );\n return <div className={classNames} {...props} />;\n};\n"],"names":["Button","React","className","size","variant","props","ref","classNames","clsx","style","sharedProps","isAnchorProps","jsx","RACLink","RACButton","ButtonDanger","ButtonGroup","align"],"mappings":"uPAYO,MAAMA,EAASC,EAAM,WAAW,SACrC,CAAE,UAAAC,EAAW,KAAAC,EAAO,SAAU,QAAAC,EAAU,UAAW,GAAGC,CAAA,EACtDC,EACA,CACA,MAAMC,EAAaC,EAAAA,KACjBN,EACA,SACA,eAAeC,CAAI,GACnB,kBAAkBC,CAAO,EAAA,EAGrB,CAAE,MAAAK,EAAO,GAAGC,CAAA,EAAgBL,EAElC,OAAOM,EAAcN,CAAK,EACxBO,EAAAA,IAACC,EAAAA,KAAA,CACE,GAAGH,EACJ,UAAWH,EACX,IAAAD,EAEC,SAAAD,EAAM,QAAA,CAAA,EAGTO,EAAAA,IAACE,EAAAA,OAAA,CACE,GAAGJ,EACJ,UAAWH,EACX,IAAAD,EAEC,SAAAD,EAAM,QAAA,CAAA,CAGb,CAAC,EAWYU,EAAed,EAAM,WAAW,SAC3C,CACE,UAAAC,EACA,KAAAC,EAAO,SACP,QAAAC,EAAU,iBACV,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAaC,EAAAA,KACjBN,EACA,SACA,eAAeC,CAAI,GACnB,kBAAkBC,CAAO,EAAA,EAGrB,CAAE,MAAAK,EAAO,GAAGC,CAAA,EAAgBL,EAElC,OAAOM,EAAcN,CAAK,EACxBO,EAAAA,IAACC,EAAAA,KAAA,CACE,GAAGH,EACJ,UAAWH,EACX,IAAAD,EAEC,SAAAD,EAAM,QAAA,CAAA,EAGTO,EAAAA,IAACE,EAAAA,OAAA,CACE,GAAGJ,EACJ,UAAWH,EACX,IAAAD,EAEC,SAAAD,EAAM,QAAA,CAAA,CAGb,CAAC,EAcD,SAASM,EACPN,EAEyC,CACzC,MAAO,SAAUA,CACnB,CAKO,MAAMW,EAAc,CAAC,CAC1B,MAAAC,EAAQ,QACR,UAAAf,EACA,GAAGG,CACL,IAAwB,CACtB,MAAME,EAAaC,EAAAA,KACjBN,EACA,eACA,sBAAsBe,CAAK,EAAA,EAE7B,OAAOL,EAAAA,IAAC,MAAA,CAAI,UAAWL,EAAa,GAAGF,EAAO,CAChD"}
1
+ {"version":3,"file":"Button.cjs","sources":["../../../../../src/ui/primitives/Button/Button.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React, { ComponentPropsWithoutRef } from \"react\";\nimport {\n Button as RACButton,\n Link as RACLink,\n type ButtonProps as RACButtonProps,\n} from \"react-aria-components\";\nimport { type AnchorOrButtonProps } from \"utils\";\nimport { BrandLoader } from \"../BrandLoader/BrandLoader\";\nimport \"./button.css\";\n\nconst pendingIndicator = (\n <BrandLoader aria-hidden variant=\"pulse\" size=\"16\" tone=\"current\" />\n);\n\nfunction withPendingIndicator(\n children: RACButtonProps[\"children\"],\n isPending: boolean | undefined,\n): RACButtonProps[\"children\"] {\n if (!isPending) return children;\n return (renderProps) => (\n <>\n {pendingIndicator}\n {typeof children === \"function\" ? children(renderProps) : children}\n </>\n );\n}\n\nexport type ButtonProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"danger-primary\" | \"danger-subtle\"\n >;\n};\nexport const Button = React.forwardRef(function Button(\n {\n className,\n size = \"medium\",\n variant = \"primary\",\n isPending,\n isDisabled,\n ...props\n }: ButtonProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n isDisabled={isDisabled}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n isPending={isPending}\n isDisabled={isDisabled}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {withPendingIndicator(props.children, isPending)}\n </RACButton>\n );\n});\n\nexport type ButtonDangerProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"primary\" | \"subtle\" | \"neutral\" | \"text\"\n >;\n};\n/**\n * Only used for destructive actions\n */\nexport const ButtonDanger = React.forwardRef(function Button(\n {\n className,\n size = \"medium\",\n variant = \"danger-primary\",\n isPending,\n isDisabled,\n ...props\n }: ButtonDangerProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n isDisabled={isDisabled}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n isPending={isPending}\n isDisabled={isDisabled}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {withPendingIndicator(props.children, isPending)}\n </RACButton>\n );\n});\n\ntype ButtonBaseProps = {\n type?: ComponentPropsWithoutRef<\"button\">[\"type\"];\n isPending?: boolean;\n size?: \"small\" | \"medium\";\n variant?:\n | \"primary\"\n | \"neutral\"\n | \"subtle\"\n | \"text\"\n | \"danger-primary\"\n | \"danger-subtle\";\n} & AnchorOrButtonProps;\n\nfunction isAnchorProps(\n props: ButtonBaseProps | ButtonDangerProps,\n): props is (ButtonBaseProps | ButtonDangerProps) &\n ComponentPropsWithoutRef<typeof RACLink> {\n return \"href\" in props;\n}\n\nexport type ButtonGroupProps = React.ComponentPropsWithoutRef<\"div\"> & {\n align?: \"start\" | \"end\" | \"center\" | \"justify\" | \"stack\";\n};\nexport const ButtonGroup = ({\n align = \"start\",\n className,\n ...props\n}: ButtonGroupProps) => {\n const classNames = clsx(\n className,\n \"button-group\",\n `button-group-align-${align}`,\n );\n return <div className={classNames} {...props} />;\n};\n"],"names":["pendingIndicator","jsx","BrandLoader","withPendingIndicator","children","isPending","renderProps","jsxs","Fragment","Button","React","className","size","variant","isDisabled","props","ref","classNames","clsx","style","sharedProps","isAnchorProps","RACLink","RACButton","ButtonDanger","ButtonGroup","align"],"mappings":"mSAWA,MAAMA,EACJC,EAAAA,IAACC,cAAA,CAAY,cAAW,GAAC,QAAQ,QAAQ,KAAK,KAAK,KAAK,SAAA,CAAU,EAGpE,SAASC,EACPC,EACAC,EAC4B,CAC5B,OAAKA,EACGC,GACNC,EAAAA,KAAAC,EAAAA,SAAA,CACG,SAAA,CAAAR,EACA,OAAOI,GAAa,WAAaA,EAASE,CAAW,EAAIF,CAAA,EAC5D,EALqBA,CAOzB,CAQO,MAAMK,EAASC,EAAM,WAAW,SACrC,CACE,UAAAC,EACA,KAAAC,EAAO,SACP,QAAAC,EAAU,UACV,UAAAR,EACA,WAAAS,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAaC,EAAAA,KACjBP,EACA,SACA,eAAeC,CAAI,GACnB,kBAAkBC,CAAO,EAAA,EAGrB,CAAE,MAAAM,EAAO,GAAGC,CAAA,EAAgBL,EAElC,OAAOM,EAAcN,CAAK,EACxBd,EAAAA,IAACqB,EAAAA,KAAA,CACE,GAAGF,EACJ,WAAAN,EACA,UAAWG,EACX,IAAAD,EAEC,SAAAD,EAAM,QAAA,CAAA,EAGTd,EAAAA,IAACsB,EAAAA,OAAA,CACE,GAAGH,EACJ,UAAWH,EACX,UAAAZ,EACA,WAAAS,EACA,IAAAE,EAEC,SAAAb,EAAqBY,EAAM,SAAUV,CAAS,CAAA,CAAA,CAGrD,CAAC,EAWYmB,EAAed,EAAM,WAAW,SAC3C,CACE,UAAAC,EACA,KAAAC,EAAO,SACP,QAAAC,EAAU,iBACV,UAAAR,EACA,WAAAS,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAaC,EAAAA,KACjBP,EACA,SACA,eAAeC,CAAI,GACnB,kBAAkBC,CAAO,EAAA,EAGrB,CAAE,MAAAM,EAAO,GAAGC,CAAA,EAAgBL,EAElC,OAAOM,EAAcN,CAAK,EACxBd,EAAAA,IAACqB,EAAAA,KAAA,CACE,GAAGF,EACJ,WAAAN,EACA,UAAWG,EACX,IAAAD,EAEC,SAAAD,EAAM,QAAA,CAAA,EAGTd,EAAAA,IAACsB,EAAAA,OAAA,CACE,GAAGH,EACJ,UAAWH,EACX,UAAAZ,EACA,WAAAS,EACA,IAAAE,EAEC,SAAAb,EAAqBY,EAAM,SAAUV,CAAS,CAAA,CAAA,CAGrD,CAAC,EAeD,SAASgB,EACPN,EAEyC,CACzC,MAAO,SAAUA,CACnB,CAKO,MAAMU,EAAc,CAAC,CAC1B,MAAAC,EAAQ,QACR,UAAAf,EACA,GAAGI,CACL,IAAwB,CACtB,MAAME,EAAaC,EAAAA,KACjBP,EACA,eACA,sBAAsBe,CAAK,EAAA,EAE7B,OAAOzB,EAAAA,IAAC,MAAA,CAAI,UAAWgB,EAAa,GAAGF,EAAO,CAChD"}
@@ -1,80 +1,103 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { clsx as u } from "../../../vendor/clsx/dist/clsx.js";
3
- import m from "react";
4
- import { Link as l, Button as d } from "react-aria-components";
1
+ import { jsx as e, jsxs as g, Fragment as p } from "react/jsx-runtime";
2
+ import { clsx as d } from "../../../vendor/clsx/dist/clsx.js";
3
+ import l from "react";
4
+ import { Link as f, Button as h } from "react-aria-components";
5
+ import { BrandLoader as $ } from "../BrandLoader/BrandLoader.js";
5
6
  /* empty css */
6
- const y = m.forwardRef(function({ className: r, size: o = "medium", variant: s = "primary", ...t }, e) {
7
- const a = u(
7
+ const y = /* @__PURE__ */ e($, { "aria-hidden": !0, variant: "pulse", size: "16", tone: "current" });
8
+ function B(t, r) {
9
+ return r ? (o) => /* @__PURE__ */ g(p, { children: [
10
+ y,
11
+ typeof t == "function" ? t(o) : t
12
+ ] }) : t;
13
+ }
14
+ const I = l.forwardRef(function({
15
+ className: r,
16
+ size: o = "medium",
17
+ variant: a = "primary",
18
+ isPending: c,
19
+ isDisabled: s,
20
+ ...n
21
+ }, u) {
22
+ const i = d(
8
23
  r,
9
24
  "button",
10
25
  `button-size-${o}`,
11
- `button-variant-${s}`
12
- ), { style: f, ...c } = t;
13
- return h(t) ? /* @__PURE__ */ i(
14
- l,
26
+ `button-variant-${a}`
27
+ ), { style: b, ...m } = n;
28
+ return N(n) ? /* @__PURE__ */ e(
29
+ f,
15
30
  {
16
- ...c,
17
- className: a,
18
- ref: e,
19
- children: t.children
31
+ ...m,
32
+ isDisabled: s,
33
+ className: i,
34
+ ref: u,
35
+ children: n.children
20
36
  }
21
- ) : /* @__PURE__ */ i(
22
- d,
37
+ ) : /* @__PURE__ */ e(
38
+ h,
23
39
  {
24
- ...c,
25
- className: a,
26
- ref: e,
27
- children: t.children
40
+ ...m,
41
+ className: i,
42
+ isPending: c,
43
+ isDisabled: s,
44
+ ref: u,
45
+ children: B(n.children, c)
28
46
  }
29
47
  );
30
- }), v = m.forwardRef(function({
48
+ }), L = l.forwardRef(function({
31
49
  className: r,
32
50
  size: o = "medium",
33
- variant: s = "danger-primary",
34
- ...t
35
- }, e) {
36
- const a = u(
51
+ variant: a = "danger-primary",
52
+ isPending: c,
53
+ isDisabled: s,
54
+ ...n
55
+ }, u) {
56
+ const i = d(
37
57
  r,
38
58
  "button",
39
59
  `button-size-${o}`,
40
- `button-variant-${s}`
41
- ), { style: f, ...c } = t;
42
- return h(t) ? /* @__PURE__ */ i(
43
- l,
60
+ `button-variant-${a}`
61
+ ), { style: b, ...m } = n;
62
+ return N(n) ? /* @__PURE__ */ e(
63
+ f,
44
64
  {
45
- ...c,
46
- className: a,
47
- ref: e,
48
- children: t.children
65
+ ...m,
66
+ isDisabled: s,
67
+ className: i,
68
+ ref: u,
69
+ children: n.children
49
70
  }
50
- ) : /* @__PURE__ */ i(
51
- d,
71
+ ) : /* @__PURE__ */ e(
72
+ h,
52
73
  {
53
- ...c,
54
- className: a,
55
- ref: e,
56
- children: t.children
74
+ ...m,
75
+ className: i,
76
+ isPending: c,
77
+ isDisabled: s,
78
+ ref: u,
79
+ children: B(n.children, c)
57
80
  }
58
81
  );
59
82
  });
60
- function h(n) {
61
- return "href" in n;
83
+ function N(t) {
84
+ return "href" in t;
62
85
  }
63
- const x = ({
64
- align: n = "start",
86
+ const P = ({
87
+ align: t = "start",
65
88
  className: r,
66
89
  ...o
67
90
  }) => {
68
- const s = u(
91
+ const a = d(
69
92
  r,
70
93
  "button-group",
71
- `button-group-align-${n}`
94
+ `button-group-align-${t}`
72
95
  );
73
- return /* @__PURE__ */ i("div", { className: s, ...o });
96
+ return /* @__PURE__ */ e("div", { className: a, ...o });
74
97
  };
75
98
  export {
76
- y as Button,
77
- v as ButtonDanger,
78
- x as ButtonGroup
99
+ I as Button,
100
+ L as ButtonDanger,
101
+ P as ButtonGroup
79
102
  };
80
103
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../../src/ui/primitives/Button/Button.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React, { ComponentPropsWithoutRef } from \"react\";\nimport { Button as RACButton, Link as RACLink } from \"react-aria-components\";\nimport { type AnchorOrButtonProps } from \"utils\";\nimport \"./button.css\";\n\nexport type ButtonProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"danger-primary\" | \"danger-subtle\"\n >;\n};\nexport const Button = React.forwardRef(function Button(\n { className, size = \"medium\", variant = \"primary\", ...props }: ButtonProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {props.children}\n </RACButton>\n );\n});\n\nexport type ButtonDangerProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"primary\" | \"subtle\" | \"neutral\" | \"text\"\n >;\n};\n/**\n * Only used for destructive actions\n */\nexport const ButtonDanger = React.forwardRef(function Button(\n {\n className,\n size = \"medium\",\n variant = \"danger-primary\",\n ...props\n }: ButtonDangerProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {props.children}\n </RACButton>\n );\n});\n\ntype ButtonBaseProps = {\n type?: ComponentPropsWithoutRef<\"button\">[\"type\"];\n size?: \"small\" | \"medium\";\n variant?:\n | \"primary\"\n | \"neutral\"\n | \"subtle\"\n | \"text\"\n | \"danger-primary\"\n | \"danger-subtle\";\n} & AnchorOrButtonProps;\n\nfunction isAnchorProps(\n props: ButtonBaseProps | ButtonDangerProps,\n): props is (ButtonBaseProps | ButtonDangerProps) &\n ComponentPropsWithoutRef<typeof RACLink> {\n return \"href\" in props;\n}\n\nexport type ButtonGroupProps = React.ComponentPropsWithoutRef<\"div\"> & {\n align?: \"start\" | \"end\" | \"center\" | \"justify\" | \"stack\";\n};\nexport const ButtonGroup = ({\n align = \"start\",\n className,\n ...props\n}: ButtonGroupProps) => {\n const classNames = clsx(\n className,\n \"button-group\",\n `button-group-align-${align}`,\n );\n return <div className={classNames} {...props} />;\n};\n"],"names":["Button","React","className","size","variant","props","ref","classNames","clsx","style","sharedProps","isAnchorProps","jsx","RACLink","RACButton","ButtonDanger","ButtonGroup","align"],"mappings":";;;;;AAYO,MAAMA,IAASC,EAAM,WAAW,SACrC,EAAE,WAAAC,GAAW,MAAAC,IAAO,UAAU,SAAAC,IAAU,WAAW,GAAGC,EAAA,GACtDC,GACA;AACA,QAAMC,IAAaC;AAAA,IACjBN;AAAA,IACA;AAAA,IACA,eAAeC,CAAI;AAAA,IACnB,kBAAkBC,CAAO;AAAA,EAAA,GAGrB,EAAE,OAAAK,GAAO,GAAGC,EAAA,IAAgBL;AAElC,SAAOM,EAAcN,CAAK,IACxB,gBAAAO;AAAA,IAACC;AAAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,WAAWH;AAAA,MACX,KAAAD;AAAA,MAEC,UAAAD,EAAM;AAAA,IAAA;AAAA,EAAA,IAGT,gBAAAO;AAAA,IAACE;AAAAA,IAAA;AAAA,MACE,GAAGJ;AAAA,MACJ,WAAWH;AAAA,MACX,KAAAD;AAAA,MAEC,UAAAD,EAAM;AAAA,IAAA;AAAA,EAAA;AAGb,CAAC,GAWYU,IAAed,EAAM,WAAW,SAC3C;AAAA,EACE,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAaC;AAAA,IACjBN;AAAA,IACA;AAAA,IACA,eAAeC,CAAI;AAAA,IACnB,kBAAkBC,CAAO;AAAA,EAAA,GAGrB,EAAE,OAAAK,GAAO,GAAGC,EAAA,IAAgBL;AAElC,SAAOM,EAAcN,CAAK,IACxB,gBAAAO;AAAA,IAACC;AAAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,WAAWH;AAAA,MACX,KAAAD;AAAA,MAEC,UAAAD,EAAM;AAAA,IAAA;AAAA,EAAA,IAGT,gBAAAO;AAAA,IAACE;AAAAA,IAAA;AAAA,MACE,GAAGJ;AAAA,MACJ,WAAWH;AAAA,MACX,KAAAD;AAAA,MAEC,UAAAD,EAAM;AAAA,IAAA;AAAA,EAAA;AAGb,CAAC;AAcD,SAASM,EACPN,GAEyC;AACzC,SAAO,UAAUA;AACnB;AAKO,MAAMW,IAAc,CAAC;AAAA,EAC1B,OAAAC,IAAQ;AAAA,EACR,WAAAf;AAAA,EACA,GAAGG;AACL,MAAwB;AACtB,QAAME,IAAaC;AAAA,IACjBN;AAAA,IACA;AAAA,IACA,sBAAsBe,CAAK;AAAA,EAAA;AAE7B,SAAO,gBAAAL,EAAC,OAAA,EAAI,WAAWL,GAAa,GAAGF,GAAO;AAChD;"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../../src/ui/primitives/Button/Button.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React, { ComponentPropsWithoutRef } from \"react\";\nimport {\n Button as RACButton,\n Link as RACLink,\n type ButtonProps as RACButtonProps,\n} from \"react-aria-components\";\nimport { type AnchorOrButtonProps } from \"utils\";\nimport { BrandLoader } from \"../BrandLoader/BrandLoader\";\nimport \"./button.css\";\n\nconst pendingIndicator = (\n <BrandLoader aria-hidden variant=\"pulse\" size=\"16\" tone=\"current\" />\n);\n\nfunction withPendingIndicator(\n children: RACButtonProps[\"children\"],\n isPending: boolean | undefined,\n): RACButtonProps[\"children\"] {\n if (!isPending) return children;\n return (renderProps) => (\n <>\n {pendingIndicator}\n {typeof children === \"function\" ? children(renderProps) : children}\n </>\n );\n}\n\nexport type ButtonProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"danger-primary\" | \"danger-subtle\"\n >;\n};\nexport const Button = React.forwardRef(function Button(\n {\n className,\n size = \"medium\",\n variant = \"primary\",\n isPending,\n isDisabled,\n ...props\n }: ButtonProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n isDisabled={isDisabled}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n isPending={isPending}\n isDisabled={isDisabled}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {withPendingIndicator(props.children, isPending)}\n </RACButton>\n );\n});\n\nexport type ButtonDangerProps = Omit<ButtonBaseProps, \"variant\"> & {\n variant?: Exclude<\n ButtonBaseProps[\"variant\"],\n \"primary\" | \"subtle\" | \"neutral\" | \"text\"\n >;\n};\n/**\n * Only used for destructive actions\n */\nexport const ButtonDanger = React.forwardRef(function Button(\n {\n className,\n size = \"medium\",\n variant = \"danger-primary\",\n isPending,\n isDisabled,\n ...props\n }: ButtonDangerProps,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(\n className,\n \"button\",\n `button-size-${size}`,\n `button-variant-${variant}`,\n );\n\n const { style, ...sharedProps } = props;\n\n return isAnchorProps(props) ? (\n <RACLink\n {...sharedProps}\n isDisabled={isDisabled}\n className={classNames}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\n {props.children}\n </RACLink>\n ) : (\n <RACButton\n {...sharedProps}\n className={classNames}\n isPending={isPending}\n isDisabled={isDisabled}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n >\n {withPendingIndicator(props.children, isPending)}\n </RACButton>\n );\n});\n\ntype ButtonBaseProps = {\n type?: ComponentPropsWithoutRef<\"button\">[\"type\"];\n isPending?: boolean;\n size?: \"small\" | \"medium\";\n variant?:\n | \"primary\"\n | \"neutral\"\n | \"subtle\"\n | \"text\"\n | \"danger-primary\"\n | \"danger-subtle\";\n} & AnchorOrButtonProps;\n\nfunction isAnchorProps(\n props: ButtonBaseProps | ButtonDangerProps,\n): props is (ButtonBaseProps | ButtonDangerProps) &\n ComponentPropsWithoutRef<typeof RACLink> {\n return \"href\" in props;\n}\n\nexport type ButtonGroupProps = React.ComponentPropsWithoutRef<\"div\"> & {\n align?: \"start\" | \"end\" | \"center\" | \"justify\" | \"stack\";\n};\nexport const ButtonGroup = ({\n align = \"start\",\n className,\n ...props\n}: ButtonGroupProps) => {\n const classNames = clsx(\n className,\n \"button-group\",\n `button-group-align-${align}`,\n );\n return <div className={classNames} {...props} />;\n};\n"],"names":["pendingIndicator","jsx","BrandLoader","withPendingIndicator","children","isPending","renderProps","jsxs","Fragment","Button","React","className","size","variant","isDisabled","props","ref","classNames","clsx","style","sharedProps","isAnchorProps","RACLink","RACButton","ButtonDanger","ButtonGroup","align"],"mappings":";;;;;;AAWA,MAAMA,IACJ,gBAAAC,EAACC,GAAA,EAAY,eAAW,IAAC,SAAQ,SAAQ,MAAK,MAAK,MAAK,UAAA,CAAU;AAGpE,SAASC,EACPC,GACAC,GAC4B;AAC5B,SAAKA,IACE,CAACC,MACN,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAR;AAAA,IACA,OAAOI,KAAa,aAAaA,EAASE,CAAW,IAAIF;AAAA,EAAA,GAC5D,IALqBA;AAOzB;AAQO,MAAMK,IAASC,EAAM,WAAW,SACrC;AAAA,EACE,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,WAAAR;AAAA,EACA,YAAAS;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAaC;AAAA,IACjBP;AAAA,IACA;AAAA,IACA,eAAeC,CAAI;AAAA,IACnB,kBAAkBC,CAAO;AAAA,EAAA,GAGrB,EAAE,OAAAM,GAAO,GAAGC,EAAA,IAAgBL;AAElC,SAAOM,EAAcN,CAAK,IACxB,gBAAAd;AAAA,IAACqB;AAAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,YAAAN;AAAA,MACA,WAAWG;AAAA,MACX,KAAAD;AAAA,MAEC,UAAAD,EAAM;AAAA,IAAA;AAAA,EAAA,IAGT,gBAAAd;AAAA,IAACsB;AAAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,WAAWH;AAAA,MACX,WAAAZ;AAAA,MACA,YAAAS;AAAA,MACA,KAAAE;AAAA,MAEC,UAAAb,EAAqBY,EAAM,UAAUV,CAAS;AAAA,IAAA;AAAA,EAAA;AAGrD,CAAC,GAWYmB,IAAed,EAAM,WAAW,SAC3C;AAAA,EACE,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,WAAAR;AAAA,EACA,YAAAS;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAaC;AAAA,IACjBP;AAAA,IACA;AAAA,IACA,eAAeC,CAAI;AAAA,IACnB,kBAAkBC,CAAO;AAAA,EAAA,GAGrB,EAAE,OAAAM,GAAO,GAAGC,EAAA,IAAgBL;AAElC,SAAOM,EAAcN,CAAK,IACxB,gBAAAd;AAAA,IAACqB;AAAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,YAAAN;AAAA,MACA,WAAWG;AAAA,MACX,KAAAD;AAAA,MAEC,UAAAD,EAAM;AAAA,IAAA;AAAA,EAAA,IAGT,gBAAAd;AAAA,IAACsB;AAAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,WAAWH;AAAA,MACX,WAAAZ;AAAA,MACA,YAAAS;AAAA,MACA,KAAAE;AAAA,MAEC,UAAAb,EAAqBY,EAAM,UAAUV,CAAS;AAAA,IAAA;AAAA,EAAA;AAGrD,CAAC;AAeD,SAASgB,EACPN,GAEyC;AACzC,SAAO,UAAUA;AACnB;AAKO,MAAMU,IAAc,CAAC;AAAA,EAC1B,OAAAC,IAAQ;AAAA,EACR,WAAAf;AAAA,EACA,GAAGI;AACL,MAAwB;AACtB,QAAME,IAAaC;AAAA,IACjBP;AAAA,IACA;AAAA,IACA,sBAAsBe,CAAK;AAAA,EAAA;AAE7B,SAAO,gBAAAzB,EAAC,OAAA,EAAI,WAAWgB,GAAa,GAAGF,GAAO;AAChD;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),i=require("../../../vendor/clsx/dist/clsx.cjs"),e=require("react");;/* empty css */const c=require("../Button/Button.cjs"),a=e.forwardRef(function({className:t,...n},r){const s=i.clsx(t,"icon-button");return o.jsx(c.Button,{...n,...r,className:s})}),B=e.forwardRef(function(t,n){return o.jsx(c.ButtonDanger,{...t,...n,className:"icon-button"})});exports.DestructiveIconButton=B;exports.IconButton=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("../../../vendor/clsx/dist/clsx.cjs"),c=require("react");;/* empty css */const o=require("../Button/Button.cjs"),l=c.forwardRef(function({className:n,...t},r){const i=s.clsx(n,"icon-button");return e.jsx(o.Button,{...t,ref:r,className:i,children:t.isPending?null:t.children})}),a=c.forwardRef(function(n,t){return e.jsx(o.ButtonDanger,{...n,ref:t,className:"icon-button",children:n.isPending?null:n.children})});exports.DestructiveIconButton=a;exports.IconButton=l;
2
2
  //# sourceMappingURL=IconButton.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.cjs","sources":["../../../../../src/ui/primitives/IconButton/IconButton.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport {\n Button,\n ButtonDanger,\n ButtonDangerProps,\n type ButtonProps,\n} from \"primitives\";\nimport { ForwardedRef, forwardRef } from \"react\";\nimport \"./iconButton.css\";\n\nexport type IconButtonProps = Omit<ButtonProps, \"aria-label\"> & {\n \"aria-label\": string;\n};\nexport const IconButton = forwardRef(function IconButton(\n { className, ...props }: IconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(className, \"icon-button\");\n return <Button {...props} {...ref} className={classNames} />;\n});\n\nexport type DestructiveIconButtonProps = Omit<\n ButtonDangerProps,\n \"aria-label\"\n> & {\n \"aria-label\": string;\n};\nexport const DestructiveIconButton = forwardRef(function IconButton(\n props: DestructiveIconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n return <ButtonDanger {...props} {...ref} className=\"icon-button\" />;\n});\n"],"names":["IconButton","forwardRef","className","props","ref","classNames","clsx","Button","DestructiveIconButton","ButtonDanger"],"mappings":"gQAaaA,EAAaC,EAAAA,WAAW,SACnC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAChBC,EACA,CACA,MAAMC,EAAaC,EAAAA,KAAKJ,EAAW,aAAa,EAChD,aAAQK,EAAAA,OAAA,CAAQ,GAAGJ,EAAQ,GAAGC,EAAK,UAAWC,EAAY,CAC5D,CAAC,EAQYG,EAAwBP,EAAAA,WAAW,SAC9CE,EACAC,EACA,CACA,aAAQK,EAAAA,aAAA,CAAc,GAAGN,EAAQ,GAAGC,EAAK,UAAU,cAAc,CACnE,CAAC"}
1
+ {"version":3,"file":"IconButton.cjs","sources":["../../../../../src/ui/primitives/IconButton/IconButton.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport {\n Button,\n ButtonDanger,\n ButtonDangerProps,\n type ButtonProps,\n} from \"primitives\";\nimport { ForwardedRef, forwardRef } from \"react\";\nimport \"./iconButton.css\";\n\nexport type IconButtonProps = Omit<ButtonProps, \"aria-label\"> & {\n \"aria-label\": string;\n};\nexport const IconButton = forwardRef(function IconButton(\n { className, ...props }: IconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(className, \"icon-button\");\n return (\n <Button {...props} ref={ref} className={classNames}>\n {props.isPending ? null : props.children}\n </Button>\n );\n});\n\nexport type DestructiveIconButtonProps = Omit<\n ButtonDangerProps,\n \"aria-label\"\n> & {\n \"aria-label\": string;\n};\nexport const DestructiveIconButton = forwardRef(function IconButton(\n props: DestructiveIconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n return (\n <ButtonDanger {...props} ref={ref} className=\"icon-button\">\n {props.isPending ? null : props.children}\n </ButtonDanger>\n );\n});\n"],"names":["IconButton","forwardRef","className","props","ref","classNames","clsx","jsx","Button","DestructiveIconButton","ButtonDanger"],"mappings":"gQAaaA,EAAaC,EAAAA,WAAW,SACnC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAChBC,EACA,CACA,MAAMC,EAAaC,EAAAA,KAAKJ,EAAW,aAAa,EAChD,OACEK,EAAAA,IAACC,EAAAA,OAAA,CAAQ,GAAGL,EAAO,IAAAC,EAAU,UAAWC,EACrC,SAAAF,EAAM,UAAY,KAAOA,EAAM,QAAA,CAClC,CAEJ,CAAC,EAQYM,EAAwBR,EAAAA,WAAW,SAC9CE,EACAC,EACA,CACA,OACEG,EAAAA,IAACG,EAAAA,aAAA,CAAc,GAAGP,EAAO,IAAAC,EAAU,UAAU,cAC1C,SAAAD,EAAM,UAAY,KAAOA,EAAM,QAAA,CAClC,CAEJ,CAAC"}
@@ -1,16 +1,16 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import { clsx as m } from "../../../vendor/clsx/dist/clsx.js";
3
- import { forwardRef as r } from "react";
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { clsx as u } from "../../../vendor/clsx/dist/clsx.js";
3
+ import { forwardRef as c } from "react";
4
4
  /* empty css */
5
- import { Button as e, ButtonDanger as i } from "../Button/Button.js";
6
- const I = r(function({ className: t, ...o }, s) {
7
- const u = m(t, "icon-button");
8
- return /* @__PURE__ */ n(e, { ...o, ...s, className: u });
9
- }), x = r(function(t, o) {
10
- return /* @__PURE__ */ n(i, { ...t, ...o, className: "icon-button" });
5
+ import { Button as l, ButtonDanger as m } from "../Button/Button.js";
6
+ const h = c(function({ className: n, ...t }, r) {
7
+ const e = u(n, "icon-button");
8
+ return /* @__PURE__ */ o(l, { ...t, ref: r, className: e, children: t.isPending ? null : t.children });
9
+ }), I = c(function(n, t) {
10
+ return /* @__PURE__ */ o(m, { ...n, ref: t, className: "icon-button", children: n.isPending ? null : n.children });
11
11
  });
12
12
  export {
13
- x as DestructiveIconButton,
14
- I as IconButton
13
+ I as DestructiveIconButton,
14
+ h as IconButton
15
15
  };
16
16
  //# sourceMappingURL=IconButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","sources":["../../../../../src/ui/primitives/IconButton/IconButton.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport {\n Button,\n ButtonDanger,\n ButtonDangerProps,\n type ButtonProps,\n} from \"primitives\";\nimport { ForwardedRef, forwardRef } from \"react\";\nimport \"./iconButton.css\";\n\nexport type IconButtonProps = Omit<ButtonProps, \"aria-label\"> & {\n \"aria-label\": string;\n};\nexport const IconButton = forwardRef(function IconButton(\n { className, ...props }: IconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(className, \"icon-button\");\n return <Button {...props} {...ref} className={classNames} />;\n});\n\nexport type DestructiveIconButtonProps = Omit<\n ButtonDangerProps,\n \"aria-label\"\n> & {\n \"aria-label\": string;\n};\nexport const DestructiveIconButton = forwardRef(function IconButton(\n props: DestructiveIconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n return <ButtonDanger {...props} {...ref} className=\"icon-button\" />;\n});\n"],"names":["IconButton","forwardRef","className","props","ref","classNames","clsx","Button","DestructiveIconButton","ButtonDanger"],"mappings":";;;;;AAaO,MAAMA,IAAaC,EAAW,SACnC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAChBC,GACA;AACA,QAAMC,IAAaC,EAAKJ,GAAW,aAAa;AAChD,2BAAQK,GAAA,EAAQ,GAAGJ,GAAQ,GAAGC,GAAK,WAAWC,GAAY;AAC5D,CAAC,GAQYG,IAAwBP,EAAW,SAC9CE,GACAC,GACA;AACA,2BAAQK,GAAA,EAAc,GAAGN,GAAQ,GAAGC,GAAK,WAAU,eAAc;AACnE,CAAC;"}
1
+ {"version":3,"file":"IconButton.js","sources":["../../../../../src/ui/primitives/IconButton/IconButton.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport {\n Button,\n ButtonDanger,\n ButtonDangerProps,\n type ButtonProps,\n} from \"primitives\";\nimport { ForwardedRef, forwardRef } from \"react\";\nimport \"./iconButton.css\";\n\nexport type IconButtonProps = Omit<ButtonProps, \"aria-label\"> & {\n \"aria-label\": string;\n};\nexport const IconButton = forwardRef(function IconButton(\n { className, ...props }: IconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const classNames = clsx(className, \"icon-button\");\n return (\n <Button {...props} ref={ref} className={classNames}>\n {props.isPending ? null : props.children}\n </Button>\n );\n});\n\nexport type DestructiveIconButtonProps = Omit<\n ButtonDangerProps,\n \"aria-label\"\n> & {\n \"aria-label\": string;\n};\nexport const DestructiveIconButton = forwardRef(function IconButton(\n props: DestructiveIconButtonProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n return (\n <ButtonDanger {...props} ref={ref} className=\"icon-button\">\n {props.isPending ? null : props.children}\n </ButtonDanger>\n );\n});\n"],"names":["IconButton","forwardRef","className","props","ref","classNames","clsx","jsx","Button","DestructiveIconButton","ButtonDanger"],"mappings":";;;;;AAaO,MAAMA,IAAaC,EAAW,SACnC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAChBC,GACA;AACA,QAAMC,IAAaC,EAAKJ,GAAW,aAAa;AAChD,SACE,gBAAAK,EAACC,GAAA,EAAQ,GAAGL,GAAO,KAAAC,GAAU,WAAWC,GACrC,UAAAF,EAAM,YAAY,OAAOA,EAAM,SAAA,CAClC;AAEJ,CAAC,GAQYM,IAAwBR,EAAW,SAC9CE,GACAC,GACA;AACA,SACE,gBAAAG,EAACG,GAAA,EAAc,GAAGP,GAAO,KAAAC,GAAU,WAAU,eAC1C,UAAAD,EAAM,YAAY,OAAOA,EAAM,SAAA,CAClC;AAEJ,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("../../../vendor/clsx/dist/clsx.cjs"),u=require("../BrandLoader/BrandLoader.cjs");;/* empty css */const a=require("../../hooks/useLoadingVisibility.cjs");function c({message:i,variant:s="trace",size:t="32",delayMs:r=a.defaultLoadingDelayMs,className:n,...l}){const o=a.useLoadingVisibility(!0,{delayMs:r,minVisibleMs:0});return e.jsx("div",{role:"status","aria-live":"polite","aria-label":i,className:d.clsx("loading-state",n),...l,children:o&&e.jsxs(e.Fragment,{children:[e.jsx(u.BrandLoader,{"aria-hidden":!0,variant:s,size:t,tone:"brand"}),e.jsx("span",{className:"loading-state-message",children:i})]})})}exports.LoadingState=c;
2
+ //# sourceMappingURL=LoadingState.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingState.cjs","sources":["../../../../../src/ui/primitives/LoadingState/LoadingState.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { defaultLoadingDelayMs, useLoadingVisibility } from \"hooks\";\nimport { type ComponentPropsWithoutRef } from \"react\";\nimport {\n BrandLoader,\n type BrandLoaderSize,\n type BrandLoaderVariant,\n} from \"../BrandLoader/BrandLoader\";\nimport \"./loading-state.css\";\n\nexport type LoadingStateProps = ComponentPropsWithoutRef<\"div\"> & {\n message: string;\n variant?: BrandLoaderVariant;\n size?: BrandLoaderSize;\n delayMs?: number;\n};\n\nexport function LoadingState({\n message,\n variant = \"trace\",\n size = \"32\",\n delayMs = defaultLoadingDelayMs,\n className,\n ...props\n}: LoadingStateProps) {\n const isVisible = useLoadingVisibility(true, { delayMs, minVisibleMs: 0 });\n\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-label={message}\n className={clsx(\"loading-state\", className)}\n {...props}\n >\n {isVisible && (\n <>\n <BrandLoader aria-hidden variant={variant} size={size} tone=\"brand\" />\n <span className=\"loading-state-message\">{message}</span>\n </>\n )}\n </div>\n );\n}\n"],"names":["LoadingState","message","variant","size","delayMs","defaultLoadingDelayMs","className","props","isVisible","useLoadingVisibility","jsx","clsx","jsxs","Fragment","BrandLoader"],"mappings":"4SAiBO,SAASA,EAAa,CAC3B,QAAAC,EACA,QAAAC,EAAU,QACV,KAAAC,EAAO,KACP,QAAAC,EAAUC,EAAAA,sBACV,UAAAC,EACA,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAYC,EAAAA,qBAAqB,GAAM,CAAE,QAAAL,EAAS,aAAc,EAAG,EAEzE,OACEM,EAAAA,IAAC,MAAA,CACC,KAAK,SACL,YAAU,SACV,aAAYT,EACZ,UAAWU,EAAAA,KAAK,gBAAiBL,CAAS,EACzC,GAAGC,EAEH,YACCK,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAH,MAACI,EAAAA,aAAY,cAAW,GAAC,QAAAZ,EAAkB,KAAAC,EAAY,KAAK,QAAQ,EACpEO,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAyB,SAAAT,CAAA,CAAQ,CAAA,CAAA,CACnD,CAAA,CAAA,CAIR"}