@flexkit/studio 0.0.26 → 0.0.28

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 (113) hide show
  1. package/dist/asset-REAMGMQL.js +2 -0
  2. package/dist/{asset-HOJ43RVO.js.map → asset-REAMGMQL.js.map} +1 -1
  3. package/dist/astro.js +1 -1
  4. package/dist/{chunk-OXTER7HO.js → chunk-27Y2SQ67.js} +2 -2
  5. package/dist/{chunk-OXTER7HO.js.map → chunk-27Y2SQ67.js.map} +1 -1
  6. package/dist/{chunk-SW6NNU5D.js → chunk-2FFSI7IK.js} +2 -2
  7. package/dist/chunk-2FFSI7IK.js.map +1 -0
  8. package/dist/{chunk-FPK7J4BP.js → chunk-7GBAYC7G.js} +2 -2
  9. package/dist/chunk-7GBAYC7G.js.map +1 -0
  10. package/dist/{chunk-53TUQIKJ.js → chunk-AALMEPYG.js} +2 -2
  11. package/dist/chunk-AALMEPYG.js.map +1 -0
  12. package/dist/chunk-CPUC4QXH.js +2 -0
  13. package/dist/chunk-CPUC4QXH.js.map +1 -0
  14. package/dist/{chunk-V2UTZEJQ.js → chunk-CWHDJ7Q4.js} +2 -2
  15. package/dist/{chunk-V2UTZEJQ.js.map → chunk-CWHDJ7Q4.js.map} +1 -1
  16. package/dist/chunk-EOCJR5EY.js +2 -0
  17. package/dist/chunk-EOCJR5EY.js.map +1 -0
  18. package/dist/{chunk-6MOUYNN4.js → chunk-KGYH74NA.js} +2 -2
  19. package/dist/chunk-KGYH74NA.js.map +1 -0
  20. package/dist/chunk-KR7CLPY2.js +2 -0
  21. package/dist/chunk-KR7CLPY2.js.map +1 -0
  22. package/dist/{chunk-7XBIC5RC.js → chunk-M5AH5ERI.js} +2 -2
  23. package/dist/{chunk-7XBIC5RC.js.map → chunk-M5AH5ERI.js.map} +1 -1
  24. package/dist/{chunk-ND3OZVR5.js → chunk-NNRD7YZU.js} +2 -2
  25. package/dist/chunk-NNRD7YZU.js.map +1 -0
  26. package/dist/{chunk-PEYW7XOU.js → chunk-OEWYLKO7.js} +2 -2
  27. package/dist/chunk-OEWYLKO7.js.map +1 -0
  28. package/dist/{chunk-Z5CZVKD4.js → chunk-QXCD5JR4.js} +2 -2
  29. package/dist/chunk-QXCD5JR4.js.map +1 -0
  30. package/dist/chunk-R7N3MDOP.js +2 -0
  31. package/dist/chunk-R7N3MDOP.js.map +1 -0
  32. package/dist/{chunk-YXRNHQPG.js → chunk-TBCSVE5L.js} +2 -2
  33. package/dist/{chunk-YXRNHQPG.js.map → chunk-TBCSVE5L.js.map} +1 -1
  34. package/dist/{chunk-PCZI6VXG.js → chunk-UKLE7J3K.js} +2 -2
  35. package/dist/chunk-V6R4AWQS.js +2 -0
  36. package/dist/chunk-V6R4AWQS.js.map +1 -0
  37. package/dist/chunk-W3TUEJJL.js +2 -0
  38. package/dist/chunk-W3TUEJJL.js.map +1 -0
  39. package/dist/chunk-WDRCARCP.js +3 -0
  40. package/dist/{chunk-ZBV4BY36.js.map → chunk-WDRCARCP.js.map} +1 -1
  41. package/dist/chunk-WZ533Y4O.js +2 -0
  42. package/dist/chunk-WZ533Y4O.js.map +1 -0
  43. package/dist/{chunk-V7UK6RMM.js → chunk-X3S7TRCM.js} +2 -2
  44. package/dist/{chunk-V7UK6RMM.js.map → chunk-X3S7TRCM.js.map} +1 -1
  45. package/dist/{chunk-AOVXSAH5.js → chunk-XU2JGXYC.js} +2 -2
  46. package/dist/chunk-XU2JGXYC.js.map +1 -0
  47. package/dist/{chunk-5CKMFBWH.js → chunk-YW2EEXMV.js} +2 -2
  48. package/dist/chunk-YW2EEXMV.js.map +1 -0
  49. package/dist/chunk-ZEZ6TRCO.js +2 -0
  50. package/dist/chunk-ZEZ6TRCO.js.map +1 -0
  51. package/dist/{chunk-RVGMKQPC.js → chunk-ZSJAPCIZ.js} +2 -2
  52. package/dist/chunk-ZSJAPCIZ.js.map +1 -0
  53. package/dist/datetime-NQTYGZIC.js +2 -0
  54. package/dist/{datetime-VZJ7XF33.js.map → datetime-NQTYGZIC.js.map} +1 -1
  55. package/dist/editor-YIRZQR3D.js +2 -0
  56. package/dist/{editor-NFRMIYVJ.js.map → editor-YIRZQR3D.js.map} +1 -1
  57. package/dist/index.css +150 -16
  58. package/dist/index.d.ts +71 -14
  59. package/dist/index.js +259 -211
  60. package/dist/index.js.map +1 -1
  61. package/dist/nextjs.js +1 -1
  62. package/dist/{project-selector-TWMWLTCH.js → project-selector-X6YVZYKL.js} +2 -2
  63. package/dist/{project-selector-TWMWLTCH.js.map → project-selector-X6YVZYKL.js.map} +1 -1
  64. package/dist/{search-MG2W4GGN.js → search-YRDOJUQO.js} +2 -2
  65. package/dist/{search-MG2W4GGN.js.map → search-YRDOJUQO.js.map} +1 -1
  66. package/dist/select-A6I27JQU.js +2 -0
  67. package/dist/select-A6I27JQU.js.map +1 -0
  68. package/dist/switch-KVO3JRNX.js +2 -0
  69. package/dist/{switch-FBS75HI4.js.map → switch-KVO3JRNX.js.map} +1 -1
  70. package/dist/tanstack-start.js +1 -1
  71. package/dist/text-6F4QTCNT.js +2 -0
  72. package/dist/{text-FIBUDNGR.js.map → text-6F4QTCNT.js.map} +1 -1
  73. package/dist/text-ODG7ABSW.js +2 -0
  74. package/dist/{text-RZOXKHWE.js.map → text-ODG7ABSW.js.map} +1 -1
  75. package/dist/textarea-M4YPSJEC.js +2 -0
  76. package/dist/{textarea-OUJM7E6O.js.map → textarea-M4YPSJEC.js.map} +1 -1
  77. package/dist/{types.d-Da7sP-Fn.d.ts → types.d-DiQPwK_q.d.ts} +35 -10
  78. package/dist/ui.d.ts +3 -2
  79. package/dist/ui.js +1 -1
  80. package/dist/ui.js.map +1 -1
  81. package/dist/{user-nav-E7MLJ36Y.js → user-nav-QYO4X7CQ.js} +2 -2
  82. package/dist/{user-nav-E7MLJ36Y.js.map → user-nav-QYO4X7CQ.js.map} +1 -1
  83. package/package.json +3 -3
  84. package/dist/asset-HOJ43RVO.js +0 -2
  85. package/dist/chunk-4KGH7PU7.js +0 -2
  86. package/dist/chunk-4KGH7PU7.js.map +0 -1
  87. package/dist/chunk-53TUQIKJ.js.map +0 -1
  88. package/dist/chunk-5CKMFBWH.js.map +0 -1
  89. package/dist/chunk-6MOUYNN4.js.map +0 -1
  90. package/dist/chunk-6YHHL4XI.js +0 -2
  91. package/dist/chunk-6YHHL4XI.js.map +0 -1
  92. package/dist/chunk-7NQ6QCJD.js +0 -2
  93. package/dist/chunk-7NQ6QCJD.js.map +0 -1
  94. package/dist/chunk-AOVXSAH5.js.map +0 -1
  95. package/dist/chunk-FPK7J4BP.js.map +0 -1
  96. package/dist/chunk-I4C65MUI.js +0 -2
  97. package/dist/chunk-I4C65MUI.js.map +0 -1
  98. package/dist/chunk-JHDZP6RC.js +0 -2
  99. package/dist/chunk-JHDZP6RC.js.map +0 -1
  100. package/dist/chunk-ND3OZVR5.js.map +0 -1
  101. package/dist/chunk-PEYW7XOU.js.map +0 -1
  102. package/dist/chunk-RVGMKQPC.js.map +0 -1
  103. package/dist/chunk-SW6NNU5D.js.map +0 -1
  104. package/dist/chunk-SXZZFHMJ.js +0 -2
  105. package/dist/chunk-SXZZFHMJ.js.map +0 -1
  106. package/dist/chunk-Z5CZVKD4.js.map +0 -1
  107. package/dist/chunk-ZBV4BY36.js +0 -3
  108. package/dist/datetime-VZJ7XF33.js +0 -2
  109. package/dist/editor-NFRMIYVJ.js +0 -2
  110. package/dist/switch-FBS75HI4.js +0 -2
  111. package/dist/text-FIBUDNGR.js +0 -2
  112. package/dist/text-RZOXKHWE.js +0 -2
  113. package/dist/textarea-OUJM7E6O.js +0 -2
package/dist/index.css CHANGED
@@ -48,6 +48,7 @@
48
48
  --fk-leading-relaxed: 1.625;
49
49
  --fk-radius-xs: 0.125rem;
50
50
  --fk-drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
51
+ --fk-ease-out: cubic-bezier(0, 0, 0.2, 1);
51
52
  --fk-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
52
53
  --fk-animate-spin: spin 1s linear infinite;
53
54
  --fk-animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
@@ -233,6 +234,9 @@
233
234
  .fk\:relative {
234
235
  position: relative;
235
236
  }
237
+ .fk\:sticky {
238
+ position: sticky;
239
+ }
236
240
  .fk\:inset-0 {
237
241
  inset: calc(var(--fk-spacing) * 0);
238
242
  }
@@ -263,6 +267,9 @@
263
267
  .fk\:top-4 {
264
268
  top: calc(var(--fk-spacing) * 4);
265
269
  }
270
+ .fk\:top-10\.25 {
271
+ top: calc(var(--fk-spacing) * 10.25);
272
+ }
266
273
  .fk\:top-\[0\.1875rem\] {
267
274
  top: 0.1875rem;
268
275
  }
@@ -272,6 +279,9 @@
272
279
  .fk\:right-0 {
273
280
  right: calc(var(--fk-spacing) * 0);
274
281
  }
282
+ .fk\:right-0\.5 {
283
+ right: calc(var(--fk-spacing) * 0.5);
284
+ }
275
285
  .fk\:right-0\.75 {
276
286
  right: calc(var(--fk-spacing) * 0.75);
277
287
  }
@@ -293,6 +303,9 @@
293
303
  .fk\:right-\[0\.1875rem\] {
294
304
  right: 0.1875rem;
295
305
  }
306
+ .fk\:right-px {
307
+ right: 1px;
308
+ }
296
309
  .fk\:bottom-0 {
297
310
  bottom: calc(var(--fk-spacing) * 0);
298
311
  }
@@ -308,6 +321,9 @@
308
321
  .fk\:left-\[50\%\] {
309
322
  left: 50%;
310
323
  }
324
+ .fk\:left-px {
325
+ left: 1px;
326
+ }
311
327
  .fk\:z-10 {
312
328
  z-index: 10;
313
329
  }
@@ -348,6 +364,9 @@
348
364
  max-width: 1400px;
349
365
  }
350
366
  }
367
+ .fk\:-mx-0\.5 {
368
+ margin-inline: calc(var(--fk-spacing) * -0.5);
369
+ }
351
370
  .fk\:-mx-1 {
352
371
  margin-inline: calc(var(--fk-spacing) * -1);
353
372
  }
@@ -1063,6 +1082,9 @@
1063
1082
  .fk\:ml-0\! {
1064
1083
  margin-left: calc(var(--fk-spacing) * 0) !important;
1065
1084
  }
1085
+ .fk\:ml-1 {
1086
+ margin-left: calc(var(--fk-spacing) * 1);
1087
+ }
1066
1088
  .fk\:ml-2 {
1067
1089
  margin-left: calc(var(--fk-spacing) * 2);
1068
1090
  }
@@ -1160,6 +1182,9 @@
1160
1182
  .fk\:h-\(--radix-select-trigger-height\) {
1161
1183
  height: var(--radix-select-trigger-height);
1162
1184
  }
1185
+ .fk\:h-0\.5 {
1186
+ height: calc(var(--fk-spacing) * 0.5);
1187
+ }
1163
1188
  .fk\:h-1\.5 {
1164
1189
  height: calc(var(--fk-spacing) * 1.5);
1165
1190
  }
@@ -1211,6 +1236,9 @@
1211
1236
  .fk\:h-\[2\.375rem\] {
1212
1237
  height: 2.375rem;
1213
1238
  }
1239
+ .fk\:h-\[17\.5rem\] {
1240
+ height: 17.5rem;
1241
+ }
1214
1242
  .fk\:h-\[20px\] {
1215
1243
  height: 20px;
1216
1244
  }
@@ -1253,9 +1281,6 @@
1253
1281
  .fk\:max-h-80 {
1254
1282
  max-height: calc(var(--fk-spacing) * 80);
1255
1283
  }
1256
- .fk\:max-h-\[17\.5rem\] {
1257
- max-height: 17.5rem;
1258
- }
1259
1284
  .fk\:max-h-\[220px\] {
1260
1285
  max-height: 220px;
1261
1286
  }
@@ -1289,9 +1314,6 @@
1289
1314
  .fk\:min-h-\[2\.5rem\] {
1290
1315
  min-height: 2.5rem;
1291
1316
  }
1292
- .fk\:min-h-\[2\.375rem\] {
1293
- min-height: 2.375rem;
1294
- }
1295
1317
  .fk\:min-h-\[3\.5rem\] {
1296
1318
  min-height: 3.5rem;
1297
1319
  }
@@ -1346,12 +1368,18 @@
1346
1368
  .fk\:w-28 {
1347
1369
  width: calc(var(--fk-spacing) * 28);
1348
1370
  }
1371
+ .fk\:w-44 {
1372
+ width: calc(var(--fk-spacing) * 44);
1373
+ }
1349
1374
  .fk\:w-48 {
1350
1375
  width: calc(var(--fk-spacing) * 48);
1351
1376
  }
1352
1377
  .fk\:w-48\! {
1353
1378
  width: calc(var(--fk-spacing) * 48) !important;
1354
1379
  }
1380
+ .fk\:w-50 {
1381
+ width: calc(var(--fk-spacing) * 50);
1382
+ }
1355
1383
  .fk\:w-52 {
1356
1384
  width: calc(var(--fk-spacing) * 52);
1357
1385
  }
@@ -1382,9 +1410,6 @@
1382
1410
  .fk\:w-\[150px\] {
1383
1411
  width: 150px;
1384
1412
  }
1385
- .fk\:w-\[200px\] {
1386
- width: 200px;
1387
- }
1388
1413
  .fk\:w-\[350px\] {
1389
1414
  width: 350px;
1390
1415
  }
@@ -1418,6 +1443,9 @@
1418
1443
  .fk\:max-w-screen-lg {
1419
1444
  max-width: var(--fk-breakpoint-lg);
1420
1445
  }
1446
+ .fk\:max-w-xs {
1447
+ max-width: var(--fk-container-xs);
1448
+ }
1421
1449
  .fk\:min-w-\(--cell-size\) {
1422
1450
  min-width: var(--cell-size);
1423
1451
  }
@@ -1599,6 +1627,9 @@
1599
1627
  .fk\:justify-items-start {
1600
1628
  justify-items: start;
1601
1629
  }
1630
+ .fk\:gap-0 {
1631
+ gap: calc(var(--fk-spacing) * 0);
1632
+ }
1602
1633
  .fk\:gap-0\.5 {
1603
1634
  gap: calc(var(--fk-spacing) * 0.5);
1604
1635
  }
@@ -1705,9 +1736,6 @@
1705
1736
  .fk\:overflow-visible {
1706
1737
  overflow: visible;
1707
1738
  }
1708
- .fk\:overflow-x-auto {
1709
- overflow-x: auto;
1710
- }
1711
1739
  .fk\:overflow-x-hidden {
1712
1740
  overflow-x: hidden;
1713
1741
  }
@@ -1896,6 +1924,12 @@
1896
1924
  background-color: color-mix(in oklab, hsl(var(--muted)) 50%, transparent);
1897
1925
  }
1898
1926
  }
1927
+ .fk\:bg-muted\/80 {
1928
+ background-color: hsl(var(--muted));
1929
+ @supports (color: color-mix(in lab, red, red)) {
1930
+ background-color: color-mix(in oklab, hsl(var(--muted)) 80%, transparent);
1931
+ }
1932
+ }
1899
1933
  .fk\:bg-overlay\/75 {
1900
1934
  background-color: hsl(var(--overlay));
1901
1935
  @supports (color: color-mix(in lab, red, red)) {
@@ -1956,6 +1990,9 @@
1956
1990
  .fk\:p-0 {
1957
1991
  padding: calc(var(--fk-spacing) * 0);
1958
1992
  }
1993
+ .fk\:p-0\.5 {
1994
+ padding: calc(var(--fk-spacing) * 0.5);
1995
+ }
1959
1996
  .fk\:p-1 {
1960
1997
  padding: calc(var(--fk-spacing) * 1);
1961
1998
  }
@@ -1980,6 +2017,9 @@
1980
2017
  .fk\:px-\(--cell-size\) {
1981
2018
  padding-inline: var(--cell-size);
1982
2019
  }
2020
+ .fk\:px-0\.5 {
2021
+ padding-inline: calc(var(--fk-spacing) * 0.5);
2022
+ }
1983
2023
  .fk\:px-1 {
1984
2024
  padding-inline: calc(var(--fk-spacing) * 1);
1985
2025
  }
@@ -2055,6 +2095,9 @@
2055
2095
  .fk\:pr-3 {
2056
2096
  padding-right: calc(var(--fk-spacing) * 3);
2057
2097
  }
2098
+ .fk\:pr-4 {
2099
+ padding-right: calc(var(--fk-spacing) * 4);
2100
+ }
2058
2101
  .fk\:pr-6 {
2059
2102
  padding-right: calc(var(--fk-spacing) * 6);
2060
2103
  }
@@ -2064,8 +2107,8 @@
2064
2107
  .fk\:pr-9 {
2065
2108
  padding-right: calc(var(--fk-spacing) * 9);
2066
2109
  }
2067
- .fk\:pr-10 {
2068
- padding-right: calc(var(--fk-spacing) * 10);
2110
+ .fk\:pb-0 {
2111
+ padding-bottom: calc(var(--fk-spacing) * 0);
2069
2112
  }
2070
2113
  .fk\:pb-1\.5 {
2071
2114
  padding-bottom: calc(var(--fk-spacing) * 1.5);
@@ -2079,8 +2122,8 @@
2079
2122
  .fk\:pl-0 {
2080
2123
  padding-left: calc(var(--fk-spacing) * 0);
2081
2124
  }
2082
- .fk\:pl-0\! {
2083
- padding-left: calc(var(--fk-spacing) * 0) !important;
2125
+ .fk\:pl-1\! {
2126
+ padding-left: calc(var(--fk-spacing) * 1) !important;
2084
2127
  }
2085
2128
  .fk\:pl-2 {
2086
2129
  padding-left: calc(var(--fk-spacing) * 2);
@@ -2190,6 +2233,9 @@
2190
2233
  .fk\:text-balance {
2191
2234
  text-wrap: balance;
2192
2235
  }
2236
+ .fk\:wrap-break-word {
2237
+ overflow-wrap: break-word;
2238
+ }
2193
2239
  .fk\:whitespace-nowrap {
2194
2240
  white-space: nowrap;
2195
2241
  }
@@ -2232,6 +2278,9 @@
2232
2278
  color: color-mix(in oklab, hsl(var(--foreground)) 60%, transparent);
2233
2279
  }
2234
2280
  }
2281
+ .fk\:text-inherit {
2282
+ color: inherit;
2283
+ }
2235
2284
  .fk\:text-link {
2236
2285
  color: hsl(var(--link));
2237
2286
  }
@@ -2268,6 +2317,9 @@
2268
2317
  color: color-mix(in oklab, hsl(var(--sidebar-foreground)) 70%, transparent);
2269
2318
  }
2270
2319
  }
2320
+ .fk\:text-success {
2321
+ color: hsl(var(--success));
2322
+ }
2271
2323
  .fk\:text-white {
2272
2324
  color: var(--fk-color-white);
2273
2325
  }
@@ -2296,6 +2348,9 @@
2296
2348
  .fk\:opacity-0 {
2297
2349
  opacity: 0%;
2298
2350
  }
2351
+ .fk\:opacity-4 {
2352
+ opacity: 4%;
2353
+ }
2299
2354
  .fk\:opacity-40 {
2300
2355
  opacity: 40%;
2301
2356
  }
@@ -2305,6 +2360,9 @@
2305
2360
  .fk\:opacity-70 {
2306
2361
  opacity: 70%;
2307
2362
  }
2363
+ .fk\:opacity-100 {
2364
+ opacity: 100%;
2365
+ }
2308
2366
  .fk\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\] {
2309
2367
  --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));
2310
2368
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2321,6 +2379,10 @@
2321
2379
  --tw-shadow: 0 0 #0000;
2322
2380
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2323
2381
  }
2382
+ .fk\:shadow-sm {
2383
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
2384
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2385
+ }
2324
2386
  .fk\:shadow-xl {
2325
2387
  --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
2326
2388
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2333,6 +2395,10 @@
2333
2395
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2334
2396
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2335
2397
  }
2398
+ .fk\:ring-1 {
2399
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2400
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2401
+ }
2336
2402
  .fk\:ring-2 {
2337
2403
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2338
2404
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2340,6 +2406,12 @@
2340
2406
  .fk\:ring-background {
2341
2407
  --tw-ring-color: hsl(var(--background));
2342
2408
  }
2409
+ .fk\:ring-border\/60 {
2410
+ --tw-ring-color: hsl(var(--border));
2411
+ @supports (color: color-mix(in lab, red, red)) {
2412
+ --tw-ring-color: color-mix(in oklab, hsl(var(--border)) 60%, transparent);
2413
+ }
2414
+ }
2343
2415
  .fk\:ring-ring {
2344
2416
  --tw-ring-color: hsl(var(--ring));
2345
2417
  }
@@ -2391,6 +2463,11 @@
2391
2463
  transition-timing-function: var(--tw-ease, var(--fk-default-transition-timing-function));
2392
2464
  transition-duration: var(--tw-duration, var(--fk-default-transition-duration));
2393
2465
  }
2466
+ .fk\:transition-\[transform\,background-color\] {
2467
+ transition-property: transform,background-color;
2468
+ transition-timing-function: var(--tw-ease, var(--fk-default-transition-timing-function));
2469
+ transition-duration: var(--tw-duration, var(--fk-default-transition-duration));
2470
+ }
2394
2471
  .fk\:transition-\[width\,height\,padding\] {
2395
2472
  transition-property: width,height,padding;
2396
2473
  transition-timing-function: var(--tw-ease, var(--fk-default-transition-timing-function));
@@ -2429,6 +2506,14 @@
2429
2506
  .fk\:transition-none {
2430
2507
  transition-property: none;
2431
2508
  }
2509
+ .fk\:duration-75 {
2510
+ --tw-duration: 75ms;
2511
+ transition-duration: 75ms;
2512
+ }
2513
+ .fk\:duration-100 {
2514
+ --tw-duration: 100ms;
2515
+ transition-duration: 100ms;
2516
+ }
2432
2517
  .fk\:duration-200 {
2433
2518
  --tw-duration: 200ms;
2434
2519
  transition-duration: 200ms;
@@ -2441,6 +2526,10 @@
2441
2526
  --tw-ease: linear;
2442
2527
  transition-timing-function: linear;
2443
2528
  }
2529
+ .fk\:ease-out {
2530
+ --tw-ease: var(--fk-ease-out);
2531
+ transition-timing-function: var(--fk-ease-out);
2532
+ }
2444
2533
  .fk\:animate-in {
2445
2534
  animation-name: enter;
2446
2535
  animation-duration: 150ms;
@@ -2461,6 +2550,12 @@
2461
2550
  .fk\:\[--cell-size\:--spacing\(8\)\] {
2462
2551
  --cell-size: calc(var(--fk-spacing) * 8);
2463
2552
  }
2553
+ .fk\:duration-75 {
2554
+ animation-duration: 75ms;
2555
+ }
2556
+ .fk\:duration-100 {
2557
+ animation-duration: 100ms;
2558
+ }
2464
2559
  .fk\:duration-200 {
2465
2560
  animation-duration: 200ms;
2466
2561
  }
@@ -2470,6 +2565,9 @@
2470
2565
  .fk\:ease-linear {
2471
2566
  animation-timing-function: linear;
2472
2567
  }
2568
+ .fk\:ease-out {
2569
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
2570
+ }
2473
2571
  .fk\:fade-in-0 {
2474
2572
  --tw-enter-opacity: 0;
2475
2573
  }
@@ -2481,6 +2579,13 @@
2481
2579
  opacity: 100%;
2482
2580
  }
2483
2581
  }
2582
+ .fk\:group-hover\/copyable\:opacity-100 {
2583
+ &:is(:where(.fk\:group\/copyable):hover *) {
2584
+ @media (hover: hover) {
2585
+ opacity: 100%;
2586
+ }
2587
+ }
2588
+ }
2484
2589
  .fk\:group-hover\/menu-item\:opacity-100 {
2485
2590
  &:is(:where(.fk\:group\/menu-item):hover *) {
2486
2591
  @media (hover: hover) {
@@ -2488,6 +2593,11 @@
2488
2593
  }
2489
2594
  }
2490
2595
  }
2596
+ .fk\:group-focus-visible\/copyable\:opacity-100 {
2597
+ &:is(:where(.fk\:group\/copyable):focus-visible *) {
2598
+ opacity: 100%;
2599
+ }
2600
+ }
2491
2601
  .fk\:group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8 {
2492
2602
  &:is(:where(.fk\:group\/menu-item):has(*[data-sidebar="menu-action"]) *) {
2493
2603
  padding-right: calc(var(--fk-spacing) * 8);
@@ -3491,6 +3601,25 @@
3491
3601
  outline-color: hsl(var(--ring));
3492
3602
  }
3493
3603
  }
3604
+ .fk\:active\:translate-y-px {
3605
+ &:active {
3606
+ --tw-translate-y: 1px;
3607
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3608
+ }
3609
+ }
3610
+ .fk\:active\:scale-\[0\.98\] {
3611
+ &:active {
3612
+ scale: 0.98;
3613
+ }
3614
+ }
3615
+ .fk\:active\:bg-muted\/70 {
3616
+ &:active {
3617
+ background-color: hsl(var(--muted));
3618
+ @supports (color: color-mix(in lab, red, red)) {
3619
+ background-color: color-mix(in oklab, hsl(var(--muted)) 70%, transparent);
3620
+ }
3621
+ }
3622
+ }
3494
3623
  .fk\:active\:bg-sidebar-accent {
3495
3624
  &:active {
3496
3625
  background-color: hsl(var(--sidebar-accent));
@@ -4625,6 +4754,11 @@
4625
4754
  padding-inline: calc(var(--fk-spacing) * 0);
4626
4755
  }
4627
4756
  }
4757
+ .fk\:lg\:px-3 {
4758
+ @media (width >= 64rem) {
4759
+ padding-inline: calc(var(--fk-spacing) * 3);
4760
+ }
4761
+ }
4628
4762
  .fk\:dark\:border-input {
4629
4763
  &:is([style="color-scheme: dark;"] *) {
4630
4764
  border-color: hsl(var(--input));
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as React$1 from 'react';
2
2
  import React__default, { Dispatch, JSX, SetStateAction, UIEvent, ReactElement } from 'react';
3
- import { A as AppContextType, a as ActionSetRelationship, b as ActionSetScope, C as Config, c as AppOptions, E as Entity, P as PluginOptions, d as ProjectOptions, O as OrderedAssetValue, e as SearchRequestProps, f as SearchResultItem, U as UseEntityQueryParams, M as MappedEntityItem, F as FormEntityItem, I as ImageValue, g as Schema, h as EntityData, i as AttributeValue, j as Attribute, k as MultipleRelationshipConnection, l as SingleRelationshipConnection } from './types.d-Da7sP-Fn.js';
4
- export { D as DataType, m as FormFieldParams, n as FormFieldProps, o as FormFieldValue, L as LogoProps, p as ScopeType, S as SingleProject } from './types.d-Da7sP-Fn.js';
3
+ import { A as AppContextType, a as ActionSetRelationship, b as ActionSetScope, C as Config, c as AppOptions, E as Entity, P as PluginOptions, d as ProjectOptions, O as OrderedAssetValue, e as SearchRequestProps, f as SearchResultItem, U as UseEntityQueryParams, M as MappedEntityItem, F as FormEntityItem, I as ImageValue, g as Schema, h as AttributeValue, i as Attribute, j as MultipleRelationshipConnection, k as SingleRelationshipConnection } from './types.d-DiQPwK_q.js';
4
+ export { D as DataType, l as DefaultValue, m as DefaultValueByDataType, n as EntityData, o as FormFieldParams, p as FormFieldProps, q as FormFieldValue, L as LogoProps, r as ScopeType, S as SingleProject } from './types.d-DiQPwK_q.js';
5
5
  export { Outlet, useLocation, useParams } from 'react-router-dom';
6
6
  import { OperationVariables, DocumentNode, ErrorLike } from '@apollo/client';
7
7
  export { gql } from '@apollo/client';
8
- import { Column, Row, ColumnDef, Table, RowSelectionState } from '@tanstack/react-table';
8
+ import { Column, Row, ColumnDef, Table, RowSelectionState, OnChangeFn, SortingState } from '@tanstack/react-table';
9
9
  export { ColumnDef, ColumnFiltersState, Table as ReactTable, Row, RowSelectionState, SortingState, TableMeta, Updater, VisibilityState, flexRender, getCoreRowModel, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';
10
10
  export { useVirtualizer } from '@tanstack/react-virtual';
11
11
  import * as react_jsx_runtime from 'react/jsx-runtime';
@@ -122,13 +122,15 @@ type FetchMoreOptions = {
122
122
  limit: number;
123
123
  };
124
124
  };
125
- declare function useEntityQuery({ entityNamePlural, schema, scope, variables, isForm }: UseEntityQueryParams): {
125
+ declare function useEntityQuery({ entityNamePlural, schema, scope, variables, isForm, selection, }: UseEntityQueryParams): {
126
126
  count: number;
127
127
  data: MappedEntityItem[] | FormEntityItem[] | ImageValue[] | undefined;
128
128
  fetchMore: (args: FetchMoreOptions) => void;
129
129
  isLoading: boolean;
130
+ isLoadingMore: boolean;
130
131
  isProjectDisabled: boolean;
131
132
  isProjectReadOnly: boolean;
133
+ reload: () => void;
132
134
  schemaErrorMessage: string | null;
133
135
  };
134
136
 
@@ -146,20 +148,52 @@ type EntityMutationResponse = [
146
148
  ];
147
149
  declare function useEntityMutation(): EntityMutationResponse;
148
150
 
151
+ /**
152
+ * Soft-refetch active list queries for an entity without clearing the current rows first.
153
+ * Prefer this after mutations; use `useEntityQuery().reload` when an explicit loading state is desired.
154
+ */
155
+ declare function useRefreshEntityList(entityNameOrPlural: string): () => Promise<void>;
156
+
157
+ type EntityListRowPatch = {
158
+ _id: string;
159
+ attributes: {
160
+ [key: string]: string;
161
+ };
162
+ };
163
+
164
+ /**
165
+ * Patch active list rows for an entity without a soft-refetch.
166
+ * Prefer this after mutations that only change row fields (e.g. tag connect/disconnect).
167
+ */
168
+ declare function usePatchEntityList(entityNameOrPlural: string): (patches: EntityListRowPatch[]) => void;
169
+
149
170
  type EntityQuery = {
150
171
  queryEntityName: string;
151
172
  query: string;
152
173
  };
153
- declare function getEntityQuery(entityNamePlural: string, scope: string, schema: Schema): EntityQuery;
174
+ declare function getEntityQuery(entityNamePlural: string, scope: string, schema: Schema, options?: {
175
+ selection?: 'list' | 'full';
176
+ }): EntityQuery;
154
177
  /**
155
178
  * Returns a string with the GraphQl query needed to mutate the dataToMutate object for the given entity and scope.
156
179
  */
157
- declare function getEntityUpdateMutation(entityNamePlural: string, entityId: string, scope: string, schema: Schema, originalData: FormEntityItem, dataToMutate: EntityData): string;
180
+ declare function getEntityUpdateMutation(entityNamePlural: string, entityId: string, scope: string, schema: Schema, originalData: FormEntityItem, dataToMutate: FormEntityItem, options?: {
181
+ responseFields?: string;
182
+ }): string;
158
183
  /**
159
- * Returns a string with the GraphQl mutation needed to delete an entity.
184
+ * Returns a string with the GraphQl mutation needed to delete one or more entities.
160
185
  */
161
- declare function getEntityDeleteMutation(entityName: string, schema: Schema, _id: string): string;
162
- declare function getEntityCreateMutation(entityNamePlural: string, schema: Schema, entityData: EntityData, _id: string): string;
186
+ declare function getEntityDeleteMutation(entityName: string, schema: Schema, ids: string | readonly string[]): string;
187
+ declare function getEntityDeleteWhere(ids: string | readonly string[]): {
188
+ _id: {
189
+ eq: string;
190
+ };
191
+ } | {
192
+ _id: {
193
+ in: string[];
194
+ };
195
+ };
196
+ declare function getEntityCreateMutation(entityNamePlural: string, schema: Schema, entityData: FormEntityItem, _id: string): string;
163
197
  declare function getEntitySchema(schema: Schema, entityNamePlural: string): Entity | undefined;
164
198
 
165
199
  interface DataTableFacetedFilterProps<TData, TValue> {
@@ -179,12 +213,20 @@ type Props<TData> = {
179
213
  attributesSchema: Attribute[];
180
214
  checkboxSelect?: 'single' | 'multiple';
181
215
  actionsComponent?: (row: Row<TData>) => JSX.Element;
216
+ enableColumnSorting?: boolean;
182
217
  };
183
218
  type ColumnDefinition<TData extends AttributeValue, TValue> = ColumnDef<TData, TValue> & {
184
219
  id?: string;
185
220
  size: number;
186
221
  };
187
- declare function useGridColumnsDefinition<TData extends AttributeValue, TValue>({ attributesSchema, checkboxSelect, actionsComponent, }: Props<TData>): ColumnDefinition<TData, TValue>[];
222
+ declare function useGridColumnsDefinition<TData extends AttributeValue, TValue>({ attributesSchema, checkboxSelect, actionsComponent, enableColumnSorting, }: Props<TData>): ColumnDefinition<TData, TValue>[];
223
+
224
+ interface DataTableColumnHeaderProps<TData, TValue> {
225
+ column: Column<TData, TValue>;
226
+ title: string;
227
+ className?: string;
228
+ }
229
+ declare function DataTableColumnHeader<TData, TValue>({ column, title, className, }: DataTableColumnHeaderProps<TData, TValue>): JSX.Element;
188
230
 
189
231
  interface DataTableRowActionsProps<TData> {
190
232
  entityName: string;
@@ -197,11 +239,18 @@ interface DataTableRowActionsProps<TData> {
197
239
  }
198
240
  declare function DataTableRowActions<TData>({ entityName, entityNamePlural, row, options, }: DataTableRowActionsProps<TData>): JSX.Element;
199
241
 
242
+ interface DataTableSortedByProps<TData> {
243
+ table: Table<TData>;
244
+ }
245
+ declare function DataTableSortedBy<TData>({ table }: DataTableSortedByProps<TData>): JSX.Element | null;
246
+
200
247
  interface DataTableToolbarProps<TData> {
201
248
  entityName: string;
249
+ isReloading?: boolean;
250
+ onReload?: () => void;
202
251
  table: Table<TData>;
203
252
  }
204
- declare function DataTableToolbar<TData>({ entityName, table }: DataTableToolbarProps<TData>): JSX.Element;
253
+ declare function DataTableToolbar<TData>({ entityName, isReloading, onReload, table, }: DataTableToolbarProps<TData>): JSX.Element;
205
254
 
206
255
  interface DataTableViewOptionsProps<TData> {
207
256
  table: Table<TData>;
@@ -212,21 +261,28 @@ interface DataTableProps<TData extends AttributeValue, TValue> {
212
261
  classNames?: {
213
262
  wrapper?: string;
214
263
  table?: string;
264
+ tableContainer?: string;
215
265
  row?: string;
216
266
  };
217
267
  columns: ColumnDef<AttributeValue, TValue>[];
218
268
  data: TData[];
219
269
  entityName: string;
270
+ hasMore?: boolean;
220
271
  initialSelectionState?: RowSelectionState;
272
+ isLoadingMore?: boolean;
221
273
  onEntitySelectionChange?: (rowSelection: string[]) => void;
274
+ onLoadMore?: () => void;
222
275
  onScroll?: (event: UIEvent<HTMLDivElement>) => void;
276
+ onSortingChange?: OnChangeFn<SortingState>;
223
277
  pageSize?: number;
224
278
  rowHeightEstimate?: number;
225
279
  rowAdditionState?: MultipleRelationshipConnection;
226
280
  rowDeletionState?: string[];
281
+ scrollToTopKey?: number;
282
+ sorting?: SortingState;
227
283
  toolbarComponent?: (table: Table<AttributeValue>) => ReactElement;
228
284
  }
229
- declare function DataTable<TData extends AttributeValue, TValue>({ classNames, columns, data, initialSelectionState, onEntitySelectionChange, onScroll, pageSize, rowHeightEstimate, rowAdditionState, rowDeletionState, toolbarComponent, }: DataTableProps<TData, TValue>): JSX.Element;
285
+ declare function DataTable<TData extends AttributeValue, TValue>({ classNames, columns, data, entityName, hasMore, initialSelectionState, isLoadingMore, onEntitySelectionChange, onLoadMore, onScroll, onSortingChange, pageSize, rowHeightEstimate, rowAdditionState, rowDeletionState, scrollToTopKey, sorting: sortingProp, toolbarComponent, }: DataTableProps<TData, TValue>): JSX.Element;
230
286
 
231
287
  type Action = ActionAddEntity | ActionEditEntity | ActionEditRelationship | ActionDeleteEntity | ActionDismiss | ActionAlertDialog;
232
288
  type ActionAddEntity = {
@@ -263,7 +319,8 @@ type ActionDeleteEntity = {
263
319
  _id?: string;
264
320
  type: 'DeleteEntity';
265
321
  payload: {
266
- entityId: string;
322
+ /** One id, or many ids for a single batch delete mutation. */
323
+ entityId: string | string[];
267
324
  entityName: string;
268
325
  silent?: boolean;
269
326
  };
@@ -297,4 +354,4 @@ declare const assetSchema: Entity;
297
354
 
298
355
  declare const tagSchema: Entity;
299
356
 
300
- export { AppOptions, Attribute, AttributeValue, type ConfigContext, DataTable, DataTableFacetedFilter, DataTableRowActions, DataTableToolbar, DataTableViewOptions, DefaultValueSwitch, Entity, EntityData, FlexkitStudio, FormEntityItem, IMAGES_BASE_URL, MappedEntityItem, PluginOptions, ProjectDisabled, Schema, SchemaError, SearchRequestProps, SearchResultItem, type UploadedFileResult, assetSchema, defineConfig, defineEntity, getEntityCreateMutation, getEntityDeleteMutation, getEntityQuery, getEntitySchema, getEntityUpdateMutation, tagSchema, useAppContext, useAppDispatch, useAuth, useConfig, useDispatch, useEntityMutation, useEntityQuery, useGraphQLError, useGridColumnsDefinition, useSearch, useUploadAssets };
357
+ export { AppOptions, Attribute, AttributeValue, type ConfigContext, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DataTableRowActions, DataTableSortedBy, DataTableToolbar, DataTableViewOptions, DefaultValueSwitch, Entity, type EntityListRowPatch, FlexkitStudio, FormEntityItem, IMAGES_BASE_URL, MappedEntityItem, PluginOptions, ProjectDisabled, Schema, SchemaError, SearchRequestProps, SearchResultItem, type UploadedFileResult, assetSchema, defineConfig, defineEntity, getEntityCreateMutation, getEntityDeleteMutation, getEntityDeleteWhere, getEntityQuery, getEntitySchema, getEntityUpdateMutation, tagSchema, useAppContext, useAppDispatch, useAuth, useConfig, useDispatch, useEntityMutation, useEntityQuery, useGraphQLError, useGridColumnsDefinition, usePatchEntityList, useRefreshEntityList, useSearch, useUploadAssets };