@flexkit/studio 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/astro.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { F as FlexkitHandlerContext, a as FlexkitHandlerResult, h as handleFlexkitRequest } from './core-handler-B07aYFJi.js';
1
+ export { F as FlexkitHandlerContext, a as FlexkitHandlerResult, h as handleFlexkitRequest } from './core-handler-XAVVKLhV.js';
2
2
 
3
3
  /**
4
4
  * Types for Astro API context
package/dist/astro.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  handleFlexkitRequest
3
- } from "./chunk-BUWJY7WB.js";
3
+ } from "./chunk-TL6JXN6O.js";
4
4
 
5
5
  // src/auth/astro-api.ts
6
6
  function resultToResponse(result) {
@@ -14,6 +14,9 @@ function resultToResponse(result) {
14
14
  if (result.type === "text") {
15
15
  return new Response(result.body, { status: result.status, headers });
16
16
  }
17
+ if (result.type === "response") {
18
+ return new Response(result.body, { status: result.status, headers });
19
+ }
17
20
  headers.set("Content-Type", "application/json");
18
21
  return new Response(JSON.stringify(result.body), { status: result.status, headers });
19
22
  }
@@ -0,0 +1,2 @@
1
+ import'./index.css';import {generateText}from'@tiptap/core';import {TiptapLink,TiptapImage,UploadImagesPlugin,TaskList,TaskItem,HorizontalRule,StarterKit,CodeBlockLowlight,Youtube,Twitter,Mathematics,CharacterCount,Placeholder,AIHighlight,TiptapUnderline,HighlightExtension,TextStyle,Color,CustomKeymap,GlobalDragHandle}from'novel';import {Markdown}from'tiptap-markdown';import {cx}from'class-variance-authority';import {createLowlight,common}from'lowlight';import {jsx}from'react/jsx-runtime';var C=AIHighlight,I=Placeholder,B=TiptapLink.configure({HTMLAttributes:{class:cx("fk-text-muted-foreground fk-underline fk-underline-offset-[3px] hover:fk-text-primary fk-transition-colors fk-cursor-pointer")}}),P=Markdown.configure({html:true,tightLists:true,tightListClass:"tight",bulletListMarker:"-",linkify:false,breaks:false,transformPastedText:false,transformCopiedText:false}),v=TiptapImage.extend({addProseMirrorPlugins(){return [UploadImagesPlugin({imageClass:cx("fk-opacity-40 fk-rounded-lg fk-border fk-border-stone-200")})]}}).configure({allowBase64:true,HTMLAttributes:{class:cx("fk-rounded-lg fk-border fk-border-muted")}}),z=TaskList.configure({HTMLAttributes:{class:cx("fk-not-prose fk-pl-2 ")}}),K=TaskItem.configure({HTMLAttributes:{class:cx("fk-flex gap-2 fk-items-start fk-my-2")},nested:true}),N=HorizontalRule.configure({HTMLAttributes:{class:cx("mt-4 mb-6 border-t border-muted-foreground")}}),O=StarterKit.configure({bulletList:{HTMLAttributes:{class:cx("fk-list-disc fk-list-outside fk-leading-3 -fk-mt-2")}},orderedList:{HTMLAttributes:{class:cx("fk-list-decimal fk-list-outside fk-leading-3 -fk-mt-2")}},listItem:{HTMLAttributes:{class:cx("fk-leading-normal -fk-mb-2")}},blockquote:{HTMLAttributes:{class:cx("fk-border-l-4 fk-border-primary")}},codeBlock:false,code:{HTMLAttributes:{class:cx("fk-rounded-md fk-bg-muted fk-px-1.5 fk-py-1 fk-font-mono fk-font-medium"),spellcheck:"false"}},horizontalRule:false,dropcursor:{color:"#DBEAFE",width:4},gapcursor:false}),R=CodeBlockLowlight.configure({lowlight:createLowlight(common)}),S=Youtube.configure({HTMLAttributes:{class:cx("fk-rounded-lg fk-border fk-border-muted")},inline:false}),D=Twitter.configure({HTMLAttributes:{class:cx("fk-not-prose")},inline:false}),G=Mathematics.configure({HTMLAttributes:{class:cx("fk-text-foreground fk-rounded fk-p-1 hover:fk-bg-muted fk-cursor-pointer")},katexOptions:{throwOnError:false}}),U=CharacterCount.configure(),o=[O,I,B,v,z,K,N,C,R,S,D,G,U,TiptapUnderline,P,HighlightExtension,TextStyle,Color,CustomKeymap,GlobalDragHandle];var s=100;function $({value:r}){let e;try{e=generateText(JSON.parse(r),o).substring(0,s);}catch{e=r?.substring(0,s)??"";}return jsx("div",{className:"fk-truncate",children:e})}export{o as a,$ as b};//# sourceMappingURL=chunk-HC5NUUAJ.js.map
2
+ //# sourceMappingURL=chunk-HC5NUUAJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/form/fields/editor/extensions.ts","../src/data-grid/preview-components/editor.tsx"],"names":["aiHighlight","AIHighlight","placeholder","Placeholder","tiptapLink","TiptapLink","cx","markdownExtension","Markdown","tiptapImage","TiptapImage","UploadImagesPlugin","taskList","TaskList","taskItem","TaskItem","horizontalRule","HorizontalRule","starterKit","StarterKit","codeBlockLowlight","CodeBlockLowlight","createLowlight","common","youtube","Youtube","twitter","Twitter","mathematics","Mathematics","characterCount","CharacterCount","defaultExtensions","TiptapUnderline","HighlightExtension","TextStyle","Color","CustomKeymap","GlobalDragHandle","MAX_LENGTH","Editor","value","textValue","generateText","jsx"],"mappings":"kfA4BMA,CAAAA,CAAcC,WAAAA,CAEdC,EAAcC,WAAAA,CACdC,CAAAA,CAAaC,WAAW,SAAA,CAAU,CACtC,eAAgB,CACd,KAAA,CAASC,GACP,8HACF,CACF,CACF,CAAC,CAAA,CAEKC,EAAoBC,QAAAA,CAAS,SAAA,CAAU,CAC3C,IAAA,CAAM,IAAA,CACN,WAAY,IAAA,CACZ,cAAA,CAAgB,QAChB,gBAAA,CAAkB,GAAA,CAClB,QAAS,KAAA,CACT,MAAA,CAAQ,KAAA,CACR,mBAAA,CAAqB,MACrB,mBAAA,CAAqB,KACvB,CAAC,CAAA,CAEKC,CAAAA,CAAcC,YAAY,MAAA,CAAO,CACrC,uBAAwB,CACtB,OAAO,CACLC,kBAAAA,CAAmB,CACjB,WAAYL,EAAAA,CAAG,2DAA2D,CAC5E,CAAC,CACH,CACF,CACF,CAAC,EAAE,SAAA,CAAU,CACX,YAAa,IAAA,CACb,cAAA,CAAgB,CACd,KAAA,CAAOA,EAAAA,CAAG,yCAAyC,CACrD,CACF,CAAC,CAAA,CAEKM,CAAAA,CAAWC,SAAS,SAAA,CAAU,CAClC,eAAgB,CACd,KAAA,CAAOP,GAAG,uBAAuB,CACnC,CACF,CAAC,CAAA,CACKQ,EAAWC,QAAAA,CAAS,SAAA,CAAU,CAClC,cAAA,CAAgB,CACd,MAAST,EAAAA,CAAG,sCAAsC,CACpD,CAAA,CACA,MAAA,CAAQ,IACV,CAAC,CAAA,CAEKU,EAAiBC,cAAAA,CAAe,SAAA,CAAU,CAC9C,cAAA,CAAgB,CACd,MAASX,EAAAA,CAAG,4CAA4C,CAC1D,CACF,CAAC,EAEKY,CAAAA,CAAaC,UAAAA,CAAW,UAAU,CACtC,UAAA,CAAY,CACV,cAAA,CAAgB,CACd,MAASb,EAAAA,CAAG,oDAAoD,CAClE,CACF,CAAA,CACA,WAAA,CAAa,CACX,eAAgB,CACd,KAAA,CAASA,GAAG,uDAAuD,CACrE,CACF,CAAA,CACA,QAAA,CAAU,CACR,cAAA,CAAgB,CACd,MAASA,EAAAA,CAAG,4BAA4B,CAC1C,CACF,CAAA,CACA,WAAY,CACV,cAAA,CAAgB,CACd,KAAA,CAASA,EAAAA,CAAG,iCAAiC,CAC/C,CACF,EACA,SAAA,CAAW,KAAA,CACX,KAAM,CACJ,cAAA,CAAgB,CACd,KAAA,CAASA,EAAAA,CAAG,yEAAyE,CAAA,CACrF,UAAA,CAAY,OACd,CACF,CAAA,CACA,eAAgB,KAAA,CAChB,UAAA,CAAY,CACV,KAAA,CAAO,SAAA,CACP,MAAO,CACT,CAAA,CACA,UAAW,KACb,CAAC,EAEKc,CAAAA,CAAoBC,iBAAAA,CAAkB,UAAU,CAGpD,QAAA,CAAUC,eAAeC,MAAM,CACjC,CAAC,CAAA,CAEKC,CAAAA,CAAUC,QAAQ,SAAA,CAAU,CAChC,eAAgB,CACd,KAAA,CAASnB,GAAG,yCAAyC,CACvD,EACA,MAAA,CAAQ,KACV,CAAC,CAAA,CAEKoB,CAAAA,CAAUC,QAAQ,SAAA,CAAU,CAChC,eAAgB,CACd,KAAA,CAASrB,GAAG,cAAc,CAC5B,EACA,MAAA,CAAQ,KACV,CAAC,CAAA,CAEKsB,EAAcC,WAAAA,CAAY,SAAA,CAAU,CACxC,cAAA,CAAgB,CACd,MAASvB,EAAAA,CAAG,0EAA0E,CACxF,CAAA,CACA,YAAA,CAAc,CACZ,YAAA,CAAc,KAChB,CACF,CAAC,CAAA,CAEKwB,EAAiBC,cAAAA,CAAe,SAAA,GAEzBC,CAAAA,CAAgC,CAC3Cd,EACAhB,CAAAA,CACAE,CAAAA,CACAK,EACAG,CAAAA,CACAE,CAAAA,CACAE,EACAhB,CAAAA,CACAoB,CAAAA,CACAI,EACAE,CAAAA,CACAE,CAAAA,CACAE,EACAG,eAAAA,CACA1B,CAAAA,CACA2B,mBACAC,SAAAA,CACAC,KAAAA,CACAC,aACAC,gBACF,ECxKA,IAAMC,CAAAA,CAAa,GAAA,CAKZ,SAASC,CAAAA,CAAO,CAAE,MAAAC,CAAM,CAAA,CAAsB,CACnD,IAAIC,CAAAA,CAEJ,GAAI,CACFA,CAAAA,CAAYC,aAAa,IAAA,CAAK,KAAA,CAAMF,CAAK,CAAA,CAAGT,CAAiB,EAAE,SAAA,CAAU,CAAA,CAAGO,CAAU,EACxF,CAAA,KAAY,CACVG,CAAAA,CAAYD,CAAAA,EAAO,UAAU,CAAA,CAAGF,CAAU,GAAK,GACjD,CAEA,OAAOK,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,aAAA,CAAe,QAAA,CAAAF,EAAU,CACjD","file":"chunk-HC5NUUAJ.js","sourcesContent":["import {\n AIHighlight,\n CharacterCount,\n CodeBlockLowlight,\n Color,\n CustomKeymap,\n GlobalDragHandle,\n HighlightExtension,\n HorizontalRule,\n Placeholder,\n StarterKit,\n TaskItem,\n TaskList,\n TextStyle,\n TiptapImage,\n TiptapLink,\n TiptapUnderline,\n Twitter,\n Youtube,\n Mathematics,\n UploadImagesPlugin,\n} from 'novel';\nimport { Extensions } from '@tiptap/core';\nimport { Markdown } from 'tiptap-markdown';\nimport { cx } from 'class-variance-authority';\nimport { common, createLowlight } from 'lowlight';\n\n//TODO I am using cx here to get tailwind autocomplete working, idk if someone else can write a regex to just capture the class key in objects\nconst aiHighlight = AIHighlight;\n//You can overwrite the placeholder with your own configuration\nconst placeholder = Placeholder;\nconst tiptapLink = TiptapLink.configure({\n HTMLAttributes: {\n 'class': cx(\n 'fk-text-muted-foreground fk-underline fk-underline-offset-[3px] hover:fk-text-primary fk-transition-colors fk-cursor-pointer'\n ),\n },\n});\n\nconst markdownExtension = Markdown.configure({\n html: true,\n tightLists: true,\n tightListClass: 'tight',\n bulletListMarker: '-',\n linkify: false,\n breaks: false,\n transformPastedText: false,\n transformCopiedText: false,\n});\n\nconst tiptapImage = TiptapImage.extend({\n addProseMirrorPlugins() {\n return [\n UploadImagesPlugin({\n imageClass: cx('fk-opacity-40 fk-rounded-lg fk-border fk-border-stone-200'),\n }),\n ];\n },\n}).configure({\n allowBase64: true,\n HTMLAttributes: {\n class: cx('fk-rounded-lg fk-border fk-border-muted'),\n },\n});\n\nconst taskList = TaskList.configure({\n HTMLAttributes: {\n class: cx('fk-not-prose fk-pl-2 '),\n },\n});\nconst taskItem = TaskItem.configure({\n HTMLAttributes: {\n 'class': cx('fk-flex gap-2 fk-items-start fk-my-2'),\n },\n nested: true,\n});\n\nconst horizontalRule = HorizontalRule.configure({\n HTMLAttributes: {\n 'class': cx('mt-4 mb-6 border-t border-muted-foreground'),\n },\n});\n\nconst starterKit = StarterKit.configure({\n bulletList: {\n HTMLAttributes: {\n 'class': cx('fk-list-disc fk-list-outside fk-leading-3 -fk-mt-2'),\n },\n },\n orderedList: {\n HTMLAttributes: {\n 'class': cx('fk-list-decimal fk-list-outside fk-leading-3 -fk-mt-2'),\n },\n },\n listItem: {\n HTMLAttributes: {\n 'class': cx('fk-leading-normal -fk-mb-2'),\n },\n },\n blockquote: {\n HTMLAttributes: {\n 'class': cx('fk-border-l-4 fk-border-primary'),\n },\n },\n codeBlock: false,\n code: {\n HTMLAttributes: {\n 'class': cx('fk-rounded-md fk-bg-muted fk-px-1.5 fk-py-1 fk-font-mono fk-font-medium'),\n spellcheck: 'false',\n },\n },\n horizontalRule: false,\n dropcursor: {\n color: '#DBEAFE',\n width: 4,\n },\n gapcursor: false,\n});\n\nconst codeBlockLowlight = CodeBlockLowlight.configure({\n // configure lowlight: common / all / use highlightJS in case there is a need to specify certain language grammars only\n // common: covers 37 language grammars which should be good enough in most cases\n lowlight: createLowlight(common),\n});\n\nconst youtube = Youtube.configure({\n HTMLAttributes: {\n 'class': cx('fk-rounded-lg fk-border fk-border-muted'),\n },\n inline: false,\n});\n\nconst twitter = Twitter.configure({\n HTMLAttributes: {\n 'class': cx('fk-not-prose'),\n },\n inline: false,\n});\n\nconst mathematics = Mathematics.configure({\n HTMLAttributes: {\n 'class': cx('fk-text-foreground fk-rounded fk-p-1 hover:fk-bg-muted fk-cursor-pointer'),\n },\n katexOptions: {\n throwOnError: false,\n },\n});\n\nconst characterCount = CharacterCount.configure();\n\nexport const defaultExtensions: Extensions = [\n starterKit,\n placeholder,\n tiptapLink,\n tiptapImage,\n taskList,\n taskItem,\n horizontalRule,\n aiHighlight,\n codeBlockLowlight,\n youtube,\n twitter,\n mathematics,\n characterCount,\n TiptapUnderline,\n markdownExtension,\n HighlightExtension,\n TextStyle,\n Color,\n CustomKeymap,\n GlobalDragHandle,\n];\n","import { generateText } from '@tiptap/core';\nimport { defaultExtensions } from '../../form/fields/editor/extensions';\n\nconst MAX_LENGTH = 100;\n\n/**\n * Renders a preview of the editor content.\n */\nexport function Editor({ value }: { value: string }) {\n let textValue;\n\n try {\n textValue = generateText(JSON.parse(value), defaultExtensions).substring(0, MAX_LENGTH);\n } catch (e) {\n textValue = value?.substring(0, MAX_LENGTH) ?? '';\n }\n\n return <div className=\"fk-truncate\">{textValue}</div>;\n}\n"]}
@@ -33,8 +33,49 @@ async function getToken(code) {
33
33
 
34
34
  // src/auth/core-handler.ts
35
35
  var domain2 = "api.flexkit.io";
36
+ var hopByHopHeaders = /* @__PURE__ */ new Set([
37
+ "connection",
38
+ "keep-alive",
39
+ "proxy-authenticate",
40
+ "proxy-authorization",
41
+ "te",
42
+ "trailer",
43
+ "transfer-encoding",
44
+ "upgrade"
45
+ ]);
46
+ function sanitizeForwardHeaders(headers) {
47
+ const sanitized = new Headers();
48
+ headers.forEach((value, key) => {
49
+ const normalizedKey = key.toLowerCase();
50
+ if (hopByHopHeaders.has(normalizedKey)) {
51
+ return;
52
+ }
53
+ if (normalizedKey === "host") {
54
+ return;
55
+ }
56
+ if (normalizedKey === "content-length") {
57
+ return;
58
+ }
59
+ if (normalizedKey === "content-encoding") {
60
+ return;
61
+ }
62
+ if (normalizedKey === "accept-encoding") {
63
+ return;
64
+ }
65
+ sanitized.set(key, value);
66
+ });
67
+ return sanitized;
68
+ }
69
+ function headersToObject(headers) {
70
+ const result = {};
71
+ headers.forEach((value, key) => {
72
+ result[key] = value;
73
+ });
74
+ return result;
75
+ }
36
76
  async function handleFlexkitRequest(ctx) {
37
77
  const { request, pathname, search, sessionToken, contentType } = ctx;
78
+ const { body: requestBody, method } = request;
38
79
  if (pathname === "/api/flexkit/get-token") {
39
80
  const url = new URL(request.url);
40
81
  const code = url.searchParams.get("code") ?? "";
@@ -55,7 +96,7 @@ async function handleFlexkitRequest(ctx) {
55
96
  setCookie: `sessionToken=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=0;`
56
97
  };
57
98
  }
58
- if (pathname === "/api/flexkit/set-token" && request.method === "POST") {
99
+ if (pathname === "/api/flexkit/set-token" && method === "POST") {
59
100
  const url = new URL(request.url);
60
101
  const redirect = url.searchParams.get("redirect") ?? "/";
61
102
  let sid = "";
@@ -77,7 +118,7 @@ async function handleFlexkitRequest(ctx) {
77
118
  const path = pathname.replace(`/api/flexkit/${projectId}`, "");
78
119
  let body;
79
120
  let forwardContentType = contentType ?? "application/json";
80
- if (request.method !== "GET" && request.method !== "HEAD") {
121
+ if (method !== "GET" && method !== "HEAD") {
81
122
  const normalizedContentType = (contentType ?? "").toLowerCase();
82
123
  const isJson = normalizedContentType.includes("application/json");
83
124
  const isTextPlain = normalizedContentType.startsWith("text/plain");
@@ -93,18 +134,24 @@ async function handleFlexkitRequest(ctx) {
93
134
  forwardContentType = contentType ?? "text/plain";
94
135
  }
95
136
  } else {
96
- body = request.body;
137
+ body = requestBody;
97
138
  }
98
139
  } catch {
99
140
  body = void 0;
100
141
  }
101
142
  }
143
+ const forwardHeaders = sanitizeForwardHeaders(request.headers);
144
+ if (sessionToken) {
145
+ forwardHeaders.set("Cookie", `sessionToken=${sessionToken}`);
146
+ } else {
147
+ forwardHeaders.delete("Cookie");
148
+ }
149
+ if (method !== "GET" && method !== "HEAD") {
150
+ forwardHeaders.set("Content-Type", forwardContentType);
151
+ }
102
152
  const requestInit = {
103
- headers: {
104
- "Content-Type": forwardContentType,
105
- Cookie: `sessionToken=${sessionToken}`
106
- },
107
- method: request.method,
153
+ headers: forwardHeaders,
154
+ method,
108
155
  body
109
156
  };
110
157
  if (body && typeof body !== "string") {
@@ -114,12 +161,13 @@ async function handleFlexkitRequest(ctx) {
114
161
  if (response.status === 204) {
115
162
  return { type: "json", status: 204, body: { status: 204 } };
116
163
  }
117
- if (response.headers.get("content-type")?.includes("text/plain")) {
118
- const text = await response.text();
119
- return { type: "text", status: response.status, body: text };
120
- }
121
- const jsonData = await response.json();
122
- return { type: "json", status: response.status, body: jsonData };
164
+ const responseHeaders = sanitizeForwardHeaders(response.headers);
165
+ return {
166
+ type: "response",
167
+ status: response.status,
168
+ body: response.body,
169
+ headers: headersToObject(responseHeaders)
170
+ };
123
171
  }
124
172
 
125
173
  export {
@@ -0,0 +1,37 @@
1
+ interface FlexkitHandlerContext {
2
+ request: Request;
3
+ pathname: string;
4
+ search: string;
5
+ sessionToken: string;
6
+ contentType: string | null;
7
+ }
8
+ type FlexkitHandlerHeaders = {
9
+ [key: string]: string;
10
+ };
11
+ type FlexkitHandlerResult = {
12
+ type: 'redirect';
13
+ status: number;
14
+ headers?: FlexkitHandlerHeaders;
15
+ setCookie?: string;
16
+ } | {
17
+ type: 'text';
18
+ status: number;
19
+ body: string;
20
+ headers?: FlexkitHandlerHeaders;
21
+ setCookie?: string;
22
+ } | {
23
+ type: 'json';
24
+ status: number;
25
+ body: unknown;
26
+ headers?: FlexkitHandlerHeaders;
27
+ setCookie?: string;
28
+ } | {
29
+ type: 'response';
30
+ status: number;
31
+ body: BodyInit | null;
32
+ headers?: FlexkitHandlerHeaders;
33
+ setCookie?: string;
34
+ };
35
+ declare function handleFlexkitRequest(ctx: FlexkitHandlerContext): Promise<FlexkitHandlerResult>;
36
+
37
+ export { type FlexkitHandlerContext as F, type FlexkitHandlerResult as a, handleFlexkitRequest as h };
@@ -0,0 +1,2 @@
1
+ import'./index.css';export{b as Editor}from'./chunk-HC5NUUAJ.js';//# sourceMappingURL=editor-ZLTDOUPT.js.map
2
+ //# sourceMappingURL=editor-ZLTDOUPT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"editor-VSCVCAL4.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"editor-ZLTDOUPT.js"}
package/dist/index.css CHANGED
@@ -1514,10 +1514,6 @@ body{
1514
1514
  left: 0px;
1515
1515
  }
1516
1516
 
1517
- .fk-left-1{
1518
- left: 0.25rem;
1519
- }
1520
-
1521
1517
  .fk-left-2{
1522
1518
  left: 0.5rem;
1523
1519
  }
@@ -1779,6 +1775,11 @@ body{
1779
1775
  height: 1rem;
1780
1776
  }
1781
1777
 
1778
+ .fk-size-\[--cell-size\]{
1779
+ width: var(--cell-size);
1780
+ height: var(--cell-size);
1781
+ }
1782
+
1782
1783
  .fk-h-1\.5{
1783
1784
  height: 0.375rem;
1784
1785
  }
@@ -1847,6 +1848,10 @@ body{
1847
1848
  height: 2.25rem;
1848
1849
  }
1849
1850
 
1851
+ .fk-h-\[--cell-size\]{
1852
+ height: var(--cell-size);
1853
+ }
1854
+
1850
1855
  .fk-h-\[100px\]{
1851
1856
  height: 100px;
1852
1857
  }
@@ -2039,6 +2044,10 @@ body{
2039
2044
  width: 2.25rem;
2040
2045
  }
2041
2046
 
2047
+ .fk-w-\[--cell-size\]{
2048
+ width: var(--cell-size);
2049
+ }
2050
+
2042
2051
  .fk-w-\[--sidebar-width\]{
2043
2052
  width: var(--sidebar-width);
2044
2053
  }
@@ -2112,6 +2121,10 @@ body{
2112
2121
  min-width: 1.25rem;
2113
2122
  }
2114
2123
 
2124
+ .fk-min-w-\[--cell-size\]{
2125
+ min-width: var(--cell-size);
2126
+ }
2127
+
2115
2128
  .fk-min-w-\[8rem\]{
2116
2129
  min-width: 8rem;
2117
2130
  }
@@ -2357,6 +2370,10 @@ body{
2357
2370
  gap: 0.25rem;
2358
2371
  }
2359
2372
 
2373
+ .fk-gap-1\.5{
2374
+ gap: 0.375rem;
2375
+ }
2376
+
2360
2377
  .fk-gap-2{
2361
2378
  gap: 0.5rem;
2362
2379
  }
@@ -2503,6 +2520,16 @@ body{
2503
2520
  border-bottom-left-radius: 20px;
2504
2521
  }
2505
2522
 
2523
+ .fk-rounded-l-md{
2524
+ border-top-left-radius: calc(var(--radius) - 2px);
2525
+ border-bottom-left-radius: calc(var(--radius) - 2px);
2526
+ }
2527
+
2528
+ .fk-rounded-r-md{
2529
+ border-top-right-radius: calc(var(--radius) - 2px);
2530
+ border-bottom-right-radius: calc(var(--radius) - 2px);
2531
+ }
2532
+
2506
2533
  .fk-border{
2507
2534
  border-width: 1px;
2508
2535
  }
@@ -2789,6 +2816,11 @@ body{
2789
2816
  padding-right: 2rem;
2790
2817
  }
2791
2818
 
2819
+ .fk-px-\[--cell-size\]{
2820
+ padding-left: var(--cell-size);
2821
+ padding-right: var(--cell-size);
2822
+ }
2823
+
2792
2824
  .fk-py-0{
2793
2825
  padding-top: 0px;
2794
2826
  padding-bottom: 0px;
@@ -2874,6 +2906,10 @@ body{
2874
2906
  padding-left: 2rem;
2875
2907
  }
2876
2908
 
2909
+ .fk-pr-1{
2910
+ padding-right: 0.25rem;
2911
+ }
2912
+
2877
2913
  .fk-pr-10{
2878
2914
  padding-right: 2.5rem;
2879
2915
  }
@@ -2894,10 +2930,6 @@ body{
2894
2930
  padding-top: 0.125rem;
2895
2931
  }
2896
2932
 
2897
- .fk-pt-1{
2898
- padding-top: 0.25rem;
2899
- }
2900
-
2901
2933
  .fk-pt-6{
2902
2934
  padding-top: 1.5rem;
2903
2935
  }
@@ -3128,6 +3160,10 @@ body{
3128
3160
  caret-color: transparent;
3129
3161
  }
3130
3162
 
3163
+ .fk-opacity-0{
3164
+ opacity: 0;
3165
+ }
3166
+
3131
3167
  .fk-opacity-40{
3132
3168
  opacity: 0.4;
3133
3169
  }
@@ -3346,6 +3382,10 @@ body{
3346
3382
  animation-timing-function: linear;
3347
3383
  }
3348
3384
 
3385
+ .\[--cell-size\:2rem\]{
3386
+ --cell-size: 2rem;
3387
+ }
3388
+
3349
3389
  .\[fk-animation-delay\:-0\.15s\]{
3350
3390
  fk-animation-delay: -0.15s;
3351
3391
  }
@@ -3749,14 +3789,6 @@ pre {
3749
3789
  content: var(--tw-content);
3750
3790
  }
3751
3791
 
3752
- .focus-within\:fk-relative:focus-within{
3753
- position: relative;
3754
- }
3755
-
3756
- .focus-within\:fk-z-20:focus-within{
3757
- z-index: 20;
3758
- }
3759
-
3760
3792
  .focus-within\:fk-outline-none:focus-within{
3761
3793
  outline: 2px solid transparent;
3762
3794
  outline-offset: 2px;
@@ -3815,10 +3847,6 @@ pre {
3815
3847
  background-color: rgb(157 23 77 / var(--tw-bg-opacity));
3816
3848
  }
3817
3849
 
3818
- .hover\:fk-bg-primary:hover{
3819
- background-color: hsl(var(--primary));
3820
- }
3821
-
3822
3850
  .hover\:fk-bg-primary\/80:hover{
3823
3851
  background-color: hsl(var(--primary) / 0.8);
3824
3852
  }
@@ -3868,10 +3896,6 @@ pre {
3868
3896
  color: hsl(var(--primary));
3869
3897
  }
3870
3898
 
3871
- .hover\:fk-text-primary-foreground:hover{
3872
- color: hsl(var(--primary-foreground));
3873
- }
3874
-
3875
3899
  .hover\:fk-text-sidebar-accent-foreground:hover{
3876
3900
  color: hsl(var(--sidebar-accent-foreground));
3877
3901
  }
@@ -3899,18 +3923,10 @@ pre {
3899
3923
  background-color: hsl(var(--accent));
3900
3924
  }
3901
3925
 
3902
- .focus\:fk-bg-primary:focus{
3903
- background-color: hsl(var(--primary));
3904
- }
3905
-
3906
3926
  .focus\:fk-text-accent-foreground:focus{
3907
3927
  color: hsl(var(--accent-foreground));
3908
3928
  }
3909
3929
 
3910
- .focus\:fk-text-primary-foreground:focus{
3911
- color: hsl(var(--primary-foreground));
3912
- }
3913
-
3914
3930
  .focus\:fk-outline-none:focus{
3915
3931
  outline: 2px solid transparent;
3916
3932
  outline-offset: 2px;
@@ -4104,10 +4120,6 @@ pre {
4104
4120
  background-color: hsl(var(--accent));
4105
4121
  }
4106
4122
 
4107
- .aria-selected\:fk-bg-accent\/50[aria-selected="true"]{
4108
- background-color: hsl(var(--accent) / 0.5);
4109
- }
4110
-
4111
4123
  .aria-selected\:fk-bg-muted[aria-selected="true"]{
4112
4124
  background-color: hsl(var(--muted));
4113
4125
  }
@@ -4120,14 +4132,6 @@ pre {
4120
4132
  color: hsl(var(--muted-foreground));
4121
4133
  }
4122
4134
 
4123
- .aria-selected\:fk-opacity-100[aria-selected="true"]{
4124
- opacity: 1;
4125
- }
4126
-
4127
- .aria-selected\:fk-opacity-30[aria-selected="true"]{
4128
- opacity: 0.3;
4129
- }
4130
-
4131
4135
  .aria-\[current\]\:fk-border-l-white[aria-current]{
4132
4136
  --tw-border-opacity: 1;
4133
4137
  border-left-color: rgb(255 255 255 / var(--tw-border-opacity));
@@ -4191,6 +4195,22 @@ pre {
4191
4195
  flex-direction: column;
4192
4196
  }
4193
4197
 
4198
+ .data-\[range-end\=true\]\:fk-rounded-md[data-range-end="true"]{
4199
+ border-radius: calc(var(--radius) - 2px);
4200
+ }
4201
+
4202
+ .data-\[range-middle\=true\]\:fk-rounded-none[data-range-middle="true"]{
4203
+ border-radius: 0px;
4204
+ }
4205
+
4206
+ .data-\[range-start\=true\]\:fk-rounded-md[data-range-start="true"]{
4207
+ border-radius: calc(var(--radius) - 2px);
4208
+ }
4209
+
4210
+ .data-\[selected\=true\]\:fk-rounded-none[data-selected="true"]{
4211
+ border-radius: 0px;
4212
+ }
4213
+
4194
4214
  .data-\[state\=active\]\:fk-border-l-current[data-state="active"]{
4195
4215
  border-left-color: currentColor;
4196
4216
  }
@@ -4199,6 +4219,22 @@ pre {
4199
4219
  background-color: hsl(var(--sidebar-accent));
4200
4220
  }
4201
4221
 
4222
+ .data-\[range-end\=true\]\:fk-bg-primary[data-range-end="true"]{
4223
+ background-color: hsl(var(--primary));
4224
+ }
4225
+
4226
+ .data-\[range-middle\=true\]\:fk-bg-accent[data-range-middle="true"]{
4227
+ background-color: hsl(var(--accent));
4228
+ }
4229
+
4230
+ .data-\[range-start\=true\]\:fk-bg-primary[data-range-start="true"]{
4231
+ background-color: hsl(var(--primary));
4232
+ }
4233
+
4234
+ .data-\[selected-single\=true\]\:fk-bg-primary[data-selected-single="true"]{
4235
+ background-color: hsl(var(--primary));
4236
+ }
4237
+
4202
4238
  .data-\[state\=active\]\:fk-bg-background[data-state="active"]{
4203
4239
  background-color: hsl(var(--background));
4204
4240
  }
@@ -4235,6 +4271,22 @@ pre {
4235
4271
  color: hsl(var(--sidebar-accent-foreground));
4236
4272
  }
4237
4273
 
4274
+ .data-\[range-end\=true\]\:fk-text-primary-foreground[data-range-end="true"]{
4275
+ color: hsl(var(--primary-foreground));
4276
+ }
4277
+
4278
+ .data-\[range-middle\=true\]\:fk-text-accent-foreground[data-range-middle="true"]{
4279
+ color: hsl(var(--accent-foreground));
4280
+ }
4281
+
4282
+ .data-\[range-start\=true\]\:fk-text-primary-foreground[data-range-start="true"]{
4283
+ color: hsl(var(--primary-foreground));
4284
+ }
4285
+
4286
+ .data-\[selected-single\=true\]\:fk-text-primary-foreground[data-selected-single="true"]{
4287
+ color: hsl(var(--primary-foreground));
4288
+ }
4289
+
4238
4290
  .data-\[state\=active\]\:fk-text-foreground[data-state="active"]{
4239
4291
  color: hsl(var(--foreground));
4240
4292
  }
@@ -4420,6 +4472,10 @@ pre {
4420
4472
  color: hsl(var(--sidebar-accent-foreground));
4421
4473
  }
4422
4474
 
4475
+ .fk-group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:fk-relative{
4476
+ position: relative;
4477
+ }
4478
+
4423
4479
  .fk-group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:fk-left-\[calc\(var\(--sidebar-width\)\*-1\)\]{
4424
4480
  left: calc(var(--sidebar-width) * -1);
4425
4481
  }
@@ -4436,6 +4492,10 @@ pre {
4436
4492
  left: 0px;
4437
4493
  }
4438
4494
 
4495
+ .fk-group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:fk-z-10{
4496
+ z-index: 10;
4497
+ }
4498
+
4439
4499
  .fk-group[data-collapsible="icon"] .group-data-\[collapsible\=icon\]\:fk--mt-8{
4440
4500
  margin-top: -2rem;
4441
4501
  }
@@ -4490,6 +4550,10 @@ pre {
4490
4550
  border-left-width: 1px;
4491
4551
  }
4492
4552
 
4553
+ .fk-group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:fk-border-ring{
4554
+ border-color: hsl(var(--ring));
4555
+ }
4556
+
4493
4557
  .fk-group[data-variant="floating"] .group-data-\[variant\=floating\]\:fk-border-sidebar-border{
4494
4558
  border-color: hsl(var(--sidebar-border));
4495
4559
  }
@@ -4504,6 +4568,16 @@ pre {
4504
4568
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
4505
4569
  }
4506
4570
 
4571
+ .fk-group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:fk-ring-\[3px\]{
4572
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
4573
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
4574
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
4575
+ }
4576
+
4577
+ .fk-group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:fk-ring-ring\/50{
4578
+ --tw-ring-color: hsl(var(--ring) / 0.5);
4579
+ }
4580
+
4507
4581
  .fk-group[data-collapsible="offcanvas"] .group-data-\[collapsible\=offcanvas\]\:after\:fk-left-full::after{
4508
4582
  content: var(--tw-content);
4509
4583
  left: 100%;
@@ -4570,18 +4644,6 @@ pre {
4570
4644
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
4571
4645
  }
4572
4646
 
4573
- .sm\:fk-space-x-4 > :not([hidden]) ~ :not([hidden]){
4574
- --tw-space-x-reverse: 0;
4575
- margin-right: calc(1rem * var(--tw-space-x-reverse));
4576
- margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
4577
- }
4578
-
4579
- .sm\:fk-space-y-0 > :not([hidden]) ~ :not([hidden]){
4580
- --tw-space-y-reverse: 0;
4581
- margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
4582
- margin-bottom: calc(0px * var(--tw-space-y-reverse));
4583
- }
4584
-
4585
4647
  .sm\:fk-rounded-lg{
4586
4648
  border-radius: var(--radius);
4587
4649
  }
@@ -4604,6 +4666,10 @@ pre {
4604
4666
  width: 100px;
4605
4667
  }
4606
4668
 
4669
+ .md\:fk-flex-row{
4670
+ flex-direction: row;
4671
+ }
4672
+
4607
4673
  .md\:fk-opacity-0{
4608
4674
  opacity: 0;
4609
4675
  }
@@ -4637,33 +4703,20 @@ pre {
4637
4703
  }
4638
4704
  }
4639
4705
 
4640
- .\[\&\:has\(\[aria-selected\]\)\]\:fk-bg-accent:has([aria-selected]){
4641
- background-color: hsl(var(--accent));
4642
- }
4643
-
4644
- .first\:\[\&\:has\(\[aria-selected\]\)\]\:fk-rounded-l-md:has([aria-selected]):first-child{
4706
+ .\[\&\:first-child\[data-selected\=true\]_button\]\:fk-rounded-l-md:first-child[data-selected=true] button{
4645
4707
  border-top-left-radius: calc(var(--radius) - 2px);
4646
4708
  border-bottom-left-radius: calc(var(--radius) - 2px);
4647
4709
  }
4648
4710
 
4649
- .last\:\[\&\:has\(\[aria-selected\]\)\]\:fk-rounded-r-md:has([aria-selected]):last-child{
4650
- border-top-right-radius: calc(var(--radius) - 2px);
4651
- border-bottom-right-radius: calc(var(--radius) - 2px);
4652
- }
4653
-
4654
- .\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:fk-bg-accent\/50:has([aria-selected].day-outside){
4655
- background-color: hsl(var(--accent) / 0.5);
4711
+ .\[\&\:has\(\[role\=checkbox\]\)\]\:fk-pr-0:has([role=checkbox]){
4712
+ padding-right: 0px;
4656
4713
  }
4657
4714
 
4658
- .\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:fk-rounded-r-md:has([aria-selected].day-range-end){
4715
+ .\[\&\:last-child\[data-selected\=true\]_button\]\:fk-rounded-r-md:last-child[data-selected=true] button{
4659
4716
  border-top-right-radius: calc(var(--radius) - 2px);
4660
4717
  border-bottom-right-radius: calc(var(--radius) - 2px);
4661
4718
  }
4662
4719
 
4663
- .\[\&\:has\(\[role\=checkbox\]\)\]\:fk-pr-0:has([role=checkbox]){
4664
- padding-right: 0px;
4665
- }
4666
-
4667
4720
  .\[\&\>button\]\:fk-hidden>button{
4668
4721
  display: none;
4669
4722
  }
@@ -4681,6 +4734,15 @@ pre {
4681
4734
  -webkit-line-clamp: 1;
4682
4735
  }
4683
4736
 
4737
+ .\[\&\>span\]\:fk-text-xs>span{
4738
+ font-size: 0.75rem;
4739
+ line-height: 1rem;
4740
+ }
4741
+
4742
+ .\[\&\>span\]\:fk-opacity-70>span{
4743
+ opacity: 0.7;
4744
+ }
4745
+
4684
4746
  .\[\&\>svg\+div\]\:fk-translate-y-\[-3px\]>svg+div{
4685
4747
  --tw-translate-y: -3px;
4686
4748
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -4698,6 +4760,11 @@ pre {
4698
4760
  top: 1rem;
4699
4761
  }
4700
4762
 
4763
+ .\[\&\>svg\]\:fk-size-3\.5>svg{
4764
+ width: 0.875rem;
4765
+ height: 0.875rem;
4766
+ }
4767
+
4701
4768
  .\[\&\>svg\]\:fk-size-4>svg{
4702
4769
  width: 1rem;
4703
4770
  height: 1rem;
@@ -4723,6 +4790,10 @@ pre {
4723
4790
  color: hsl(var(--foreground));
4724
4791
  }
4725
4792
 
4793
+ .\[\&\>svg\]\:fk-text-muted-foreground>svg{
4794
+ color: hsl(var(--muted-foreground));
4795
+ }
4796
+
4726
4797
  .\[\&\>svg\]\:fk-text-sidebar-accent-foreground>svg{
4727
4798
  color: hsl(var(--sidebar-accent-foreground));
4728
4799
  }
@@ -4849,3 +4920,11 @@ pre {
4849
4920
  [data-side=right] .\[\[data-side\=right\]_\&\]\:fk-cursor-e-resize{
4850
4921
  cursor: e-resize;
4851
4922
  }
4923
+
4924
+ [data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:fk-bg-transparent{
4925
+ background-color: transparent;
4926
+ }
4927
+
4928
+ [data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:fk-bg-transparent{
4929
+ background-color: transparent;
4930
+ }