@opensite/ui 1.2.9 → 1.3.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 (41) hide show
  1. package/dist/carousel-scale-focus.cjs +3 -2
  2. package/dist/carousel-scale-focus.d.cts +5 -1
  3. package/dist/carousel-scale-focus.d.ts +5 -1
  4. package/dist/carousel-scale-focus.js +3 -2
  5. package/dist/feature-badge-grid-six.cjs +88 -13
  6. package/dist/feature-badge-grid-six.d.cts +1 -1
  7. package/dist/feature-badge-grid-six.d.ts +1 -1
  8. package/dist/feature-badge-grid-six.js +88 -13
  9. package/dist/feature-category-image-cards.cjs +1 -1
  10. package/dist/feature-category-image-cards.d.cts +1 -1
  11. package/dist/feature-category-image-cards.d.ts +1 -1
  12. package/dist/feature-category-image-cards.js +1 -1
  13. package/dist/feature-checklist-image.cjs +5 -5
  14. package/dist/feature-checklist-image.js +5 -5
  15. package/dist/feature-icon-grid-accent.cjs +6 -6
  16. package/dist/feature-icon-grid-accent.js +6 -6
  17. package/dist/feature-icon-grid-bordered.cjs +5 -10
  18. package/dist/feature-icon-grid-bordered.d.cts +1 -1
  19. package/dist/feature-icon-grid-bordered.d.ts +1 -1
  20. package/dist/feature-icon-grid-bordered.js +5 -10
  21. package/dist/feature-icon-grid-muted.cjs +1 -1
  22. package/dist/feature-icon-grid-muted.js +1 -1
  23. package/dist/feature-icon-tabs-content.cjs +90 -108
  24. package/dist/feature-icon-tabs-content.js +90 -108
  25. package/dist/feature-image-cards-three-column.cjs +21 -15
  26. package/dist/feature-image-cards-three-column.d.cts +1 -1
  27. package/dist/feature-image-cards-three-column.d.ts +1 -1
  28. package/dist/feature-image-cards-three-column.js +21 -15
  29. package/dist/feature-numbered-cards.cjs +1 -1
  30. package/dist/feature-numbered-cards.js +1 -1
  31. package/dist/feature-tabbed-content-image.cjs +1 -1
  32. package/dist/feature-tabbed-content-image.d.cts +1 -1
  33. package/dist/feature-tabbed-content-image.d.ts +1 -1
  34. package/dist/feature-tabbed-content-image.js +1 -1
  35. package/dist/feature-three-column-values.cjs +472 -35
  36. package/dist/feature-three-column-values.d.cts +4 -0
  37. package/dist/feature-three-column-values.d.ts +4 -0
  38. package/dist/feature-three-column-values.js +472 -35
  39. package/dist/registry.cjs +275 -194
  40. package/dist/registry.js +275 -194
  41. package/package.json +1 -1
@@ -31,10 +31,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
31
  function cn(...inputs) {
32
32
  return tailwindMerge.twMerge(clsx.clsx(inputs));
33
33
  }
34
- function getAccentColor(parentBg, options) {
35
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
36
- return isDark ? "text-accent-foreground" : "text-primary";
37
- }
38
34
  var svgCache = /* @__PURE__ */ new Map();
39
35
  function DynamicIcon({
40
36
  name,
@@ -939,12 +935,12 @@ function FeatureIconGridBordered({
939
935
  features,
940
936
  featuresSlot,
941
937
  className,
942
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
943
938
  labelClassName,
944
939
  titleClassName,
945
940
  gridClassName,
946
941
  cardClassName,
947
942
  background,
943
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
948
944
  spacing = "py-12 md:py-32",
949
945
  pattern,
950
946
  patternOpacity,
@@ -964,23 +960,22 @@ function FeatureIconGridBordered({
964
960
  "div",
965
961
  {
966
962
  className: cn(
967
- "relative flex gap-3 rounded-none border-dashed md:block md:border-l md:p-5",
963
+ "relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-3 md:border-l md:px-5",
968
964
  cardClassName,
969
965
  feature.className
970
966
  ),
971
967
  children: [
972
968
  (feature.icon || feature.iconName) && /* @__PURE__ */ jsxRuntime.jsx(
973
- "span",
969
+ "div",
974
970
  {
975
971
  className: cn(
976
- "mb-8 flex size-10 shrink-0 items-center justify-center rounded-full text-primary-foreground md:size-16",
977
- getAccentColor(background),
972
+ "flex size-10 shrink-0 items-center justify-center rounded-lg md:size-12 text-accent-foreground bg-primary shadow-xl",
978
973
  feature.iconClassName
979
974
  ),
980
975
  children: renderIcon(feature)
981
976
  }
982
977
  ),
983
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
978
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 flex-col justify-end gap-2", children: [
984
979
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
985
980
  Pressable,
986
981
  {
@@ -126,6 +126,6 @@ interface FeatureIconGridBorderedProps {
126
126
  * />
127
127
  * ```
128
128
  */
129
- declare function FeatureIconGridBordered({ label, title, features, featuresSlot, className, containerClassName, labelClassName, titleClassName, gridClassName, cardClassName, background, spacing, pattern, patternOpacity, patternClassName, }: FeatureIconGridBorderedProps): React.JSX.Element;
129
+ declare function FeatureIconGridBordered({ label, title, features, featuresSlot, className, labelClassName, titleClassName, gridClassName, cardClassName, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, }: FeatureIconGridBorderedProps): React.JSX.Element;
130
130
 
131
131
  export { FeatureIconGridBordered, type FeatureIconGridBorderedProps };
@@ -126,6 +126,6 @@ interface FeatureIconGridBorderedProps {
126
126
  * />
127
127
  * ```
128
128
  */
129
- declare function FeatureIconGridBordered({ label, title, features, featuresSlot, className, containerClassName, labelClassName, titleClassName, gridClassName, cardClassName, background, spacing, pattern, patternOpacity, patternClassName, }: FeatureIconGridBorderedProps): React.JSX.Element;
129
+ declare function FeatureIconGridBordered({ label, title, features, featuresSlot, className, labelClassName, titleClassName, gridClassName, cardClassName, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, }: FeatureIconGridBorderedProps): React.JSX.Element;
130
130
 
131
131
  export { FeatureIconGridBordered, type FeatureIconGridBorderedProps };
@@ -10,10 +10,6 @@ import { cva } from 'class-variance-authority';
10
10
  function cn(...inputs) {
11
11
  return twMerge(clsx(inputs));
12
12
  }
13
- function getAccentColor(parentBg, options) {
14
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
15
- return isDark ? "text-accent-foreground" : "text-primary";
16
- }
17
13
  var svgCache = /* @__PURE__ */ new Map();
18
14
  function DynamicIcon({
19
15
  name,
@@ -918,12 +914,12 @@ function FeatureIconGridBordered({
918
914
  features,
919
915
  featuresSlot,
920
916
  className,
921
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
922
917
  labelClassName,
923
918
  titleClassName,
924
919
  gridClassName,
925
920
  cardClassName,
926
921
  background,
922
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
927
923
  spacing = "py-12 md:py-32",
928
924
  pattern,
929
925
  patternOpacity,
@@ -943,23 +939,22 @@ function FeatureIconGridBordered({
943
939
  "div",
944
940
  {
945
941
  className: cn(
946
- "relative flex gap-3 rounded-none border-dashed md:block md:border-l md:p-5",
942
+ "relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-3 md:border-l md:px-5",
947
943
  cardClassName,
948
944
  feature.className
949
945
  ),
950
946
  children: [
951
947
  (feature.icon || feature.iconName) && /* @__PURE__ */ jsx(
952
- "span",
948
+ "div",
953
949
  {
954
950
  className: cn(
955
- "mb-8 flex size-10 shrink-0 items-center justify-center rounded-full text-primary-foreground md:size-16",
956
- getAccentColor(background),
951
+ "flex size-10 shrink-0 items-center justify-center rounded-lg md:size-12 text-accent-foreground bg-primary shadow-xl",
957
952
  feature.iconClassName
958
953
  ),
959
954
  children: renderIcon(feature)
960
955
  }
961
956
  ),
962
- /* @__PURE__ */ jsxs("div", { children: [
957
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col justify-end gap-2", children: [
963
958
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx(
964
959
  Pressable,
965
960
  {
@@ -1047,7 +1047,7 @@ function FeatureIconGridMuted({
1047
1047
  "div",
1048
1048
  {
1049
1049
  className: cn(
1050
- "mx-auto mt-20 grid max-w-7xl gap-7 md:grid-cols-2 lg:grid-cols-3",
1050
+ "mx-auto grid max-w-full md:max-w-7xl gap-4 md:gap-7 grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
1051
1051
  gridClassName
1052
1052
  ),
1053
1053
  children: featuresContent
@@ -1026,7 +1026,7 @@ function FeatureIconGridMuted({
1026
1026
  "div",
1027
1027
  {
1028
1028
  className: cn(
1029
- "mx-auto mt-20 grid max-w-7xl gap-7 md:grid-cols-2 lg:grid-cols-3",
1029
+ "mx-auto grid max-w-full md:max-w-7xl gap-4 md:gap-7 grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
1030
1030
  gridClassName
1031
1031
  ),
1032
1032
  children: featuresContent
@@ -1079,7 +1079,7 @@ function FeatureIconTabsContent({
1079
1079
  tabsSlot,
1080
1080
  defaultTab,
1081
1081
  className,
1082
- containerClassName,
1082
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1083
1083
  headerClassName,
1084
1084
  badgeClassName,
1085
1085
  headingClassName,
@@ -1170,11 +1170,11 @@ function FeatureIconTabsContent({
1170
1170
  if (!tabs || tabs.length === 0) return null;
1171
1171
  const activeDefaultTab = defaultTab || tabs[0]?.value;
1172
1172
  return /* @__PURE__ */ jsxRuntime.jsxs(Tabs, { defaultValue: activeDefaultTab, className: "mt-8", children: [
1173
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container overflow-x-auto px-4 pb-2 md:px-6", children: /* @__PURE__ */ jsxRuntime.jsx(
1173
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container overflow-x-auto px-4 pb-2 md:px-6 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-border/50 hover:scrollbar-thumb-border md:overflow-x-visible [&::-webkit-scrollbar]:h-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border/30", children: /* @__PURE__ */ jsxRuntime.jsx(
1174
1174
  TabsList,
1175
1175
  {
1176
1176
  className: cn(
1177
- "inline-flex w-auto min-w-full items-center justify-start gap-2 bg-transparent md:justify-center md:gap-4",
1177
+ "inline-flex w-auto items-center justify-start gap-2 bg-transparent md:w-full md:justify-center md:gap-4 h-auto! p-0!",
1178
1178
  tabsListClassName
1179
1179
  ),
1180
1180
  children: tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1182,7 +1182,7 @@ function FeatureIconTabsContent({
1182
1182
  {
1183
1183
  value: tab.value,
1184
1184
  className: cn(
1185
- "flex shrink-0 items-center gap-2 rounded-lg border border-border px-4 py-2.5 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
1185
+ "flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border px-4 py-2.5 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
1186
1186
  `data-[state=active]:${getBorderColor(background, "accent")}`,
1187
1187
  tabTriggerClassName,
1188
1188
  tab.className
@@ -1196,99 +1196,87 @@ function FeatureIconTabsContent({
1196
1196
  ))
1197
1197
  }
1198
1198
  ) }),
1199
- /* @__PURE__ */ jsxRuntime.jsx(
1200
- "div",
1201
- {
1202
- className: cn(
1203
- "mx-auto mt-8 max-w-7xl rounded-2xl p-6 lg:p-16",
1204
- contentWrapperClassName
1205
- ),
1206
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: tabs.map((tab) => {
1207
- if (tab.contentSlot) {
1208
- return /* @__PURE__ */ jsxRuntime.jsx(
1209
- TabsContent,
1210
- {
1211
- value: tab.value,
1212
- className: tabContentClassName,
1213
- children: tab.contentSlot
1214
- },
1215
- tab.value
1216
- );
1217
- }
1218
- const content = tab.content;
1219
- if (!content) return null;
1220
- return /* @__PURE__ */ jsxRuntime.jsxs(
1221
- TabsContent,
1222
- {
1223
- value: tab.value,
1224
- className: cn(
1225
- "grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10",
1226
- tabContentClassName,
1227
- content.className
1199
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("py-6 lg:py-16", contentWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: tabs.map((tab) => {
1200
+ if (tab.contentSlot) {
1201
+ return /* @__PURE__ */ jsxRuntime.jsx(
1202
+ TabsContent,
1203
+ {
1204
+ value: tab.value,
1205
+ className: tabContentClassName,
1206
+ children: tab.contentSlot
1207
+ },
1208
+ tab.value
1209
+ );
1210
+ }
1211
+ const content = tab.content;
1212
+ if (!content) return null;
1213
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1214
+ TabsContent,
1215
+ {
1216
+ value: tab.value,
1217
+ className: cn(
1218
+ "grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10",
1219
+ tabContentClassName,
1220
+ content.className
1221
+ ),
1222
+ children: [
1223
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", children: [
1224
+ content.badge && /* @__PURE__ */ jsxRuntime.jsx(
1225
+ Badge,
1226
+ {
1227
+ variant: "outline",
1228
+ className: cn("w-fit", content.badgeClassName),
1229
+ children: content.badge
1230
+ }
1228
1231
  ),
1229
- children: [
1230
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", children: [
1231
- content.badge && /* @__PURE__ */ jsxRuntime.jsx(
1232
- Badge,
1233
- {
1234
- variant: "outline",
1235
- className: cn(
1236
- "w-fit",
1237
- content.badgeClassName
1238
- ),
1239
- children: content.badge
1240
- }
1232
+ content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1233
+ "h3",
1234
+ {
1235
+ className: cn(
1236
+ "text-3xl font-semibold lg:text-5xl",
1237
+ content.titleClassName
1241
1238
  ),
1242
- content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1243
- "h3",
1244
- {
1245
- className: cn(
1246
- "text-3xl font-semibold lg:text-5xl",
1247
- content.titleClassName
1248
- ),
1249
- children: content.title
1250
- }
1251
- ) : /* @__PURE__ */ jsxRuntime.jsx(
1252
- "div",
1253
- {
1254
- className: cn(
1255
- "text-3xl font-semibold lg:text-5xl",
1256
- content.titleClassName
1257
- ),
1258
- children: content.title
1259
- }
1260
- )),
1261
- content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1262
- "p",
1263
- {
1264
- className: cn(
1265
- "lg:text-lg",
1266
- getTextColor(background, "muted"),
1267
- content.descriptionClassName
1268
- ),
1269
- children: content.description
1270
- }
1271
- ) : /* @__PURE__ */ jsxRuntime.jsx(
1272
- "div",
1273
- {
1274
- className: cn(
1275
- "lg:text-lg",
1276
- getTextColor(background, "muted"),
1277
- content.descriptionClassName
1278
- ),
1279
- children: content.description
1280
- }
1281
- )),
1282
- (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
1283
- ] }),
1284
- (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
1285
- ]
1286
- },
1287
- tab.value
1288
- );
1289
- }) })
1290
- }
1291
- )
1239
+ children: content.title
1240
+ }
1241
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1242
+ "div",
1243
+ {
1244
+ className: cn(
1245
+ "text-3xl font-semibold lg:text-5xl",
1246
+ content.titleClassName
1247
+ ),
1248
+ children: content.title
1249
+ }
1250
+ )),
1251
+ content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1252
+ "p",
1253
+ {
1254
+ className: cn(
1255
+ "lg:text-lg",
1256
+ getTextColor(background, "muted"),
1257
+ content.descriptionClassName
1258
+ ),
1259
+ children: content.description
1260
+ }
1261
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1262
+ "div",
1263
+ {
1264
+ className: cn(
1265
+ "lg:text-lg",
1266
+ getTextColor(background, "muted"),
1267
+ content.descriptionClassName
1268
+ ),
1269
+ children: content.description
1270
+ }
1271
+ )),
1272
+ (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
1273
+ ] }),
1274
+ (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
1275
+ ]
1276
+ },
1277
+ tab.value
1278
+ );
1279
+ }) }) })
1292
1280
  ] });
1293
1281
  }, [
1294
1282
  tabsSlot,
@@ -1302,7 +1290,7 @@ function FeatureIconTabsContent({
1302
1290
  renderTabContentActions,
1303
1291
  renderTabContentImage
1304
1292
  ]);
1305
- return /* @__PURE__ */ jsxRuntime.jsxs(
1293
+ return /* @__PURE__ */ jsxRuntime.jsx(
1306
1294
  Section,
1307
1295
  {
1308
1296
  background,
@@ -1311,8 +1299,8 @@ function FeatureIconTabsContent({
1311
1299
  patternOpacity,
1312
1300
  patternClassName,
1313
1301
  className,
1314
- containerClassName: cn("mx-auto", containerClassName),
1315
- children: [
1302
+ containerClassName,
1303
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
1316
1304
  (badge || heading || description) && /* @__PURE__ */ jsxRuntime.jsxs(
1317
1305
  "div",
1318
1306
  {
@@ -1326,7 +1314,7 @@ function FeatureIconTabsContent({
1326
1314
  "h1",
1327
1315
  {
1328
1316
  className: cn(
1329
- "max-w-2xl text-3xl font-semibold md:text-4xl",
1317
+ "max-w-2xl text-3xl font-semibold md:text-4xl text-balance",
1330
1318
  headingClassName
1331
1319
  ),
1332
1320
  children: heading
@@ -1335,24 +1323,18 @@ function FeatureIconTabsContent({
1335
1323
  "div",
1336
1324
  {
1337
1325
  className: cn(
1338
- "max-w-2xl text-3xl font-semibold md:text-4xl",
1326
+ "max-w-2xl text-3xl font-semibold md:text-4xl text-balance",
1339
1327
  headingClassName
1340
1328
  ),
1341
1329
  children: heading
1342
1330
  }
1343
1331
  )),
1344
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
1345
- "div",
1346
- {
1347
- className: cn(getTextColor(background, "muted"), descriptionClassName),
1348
- children: description
1349
- }
1350
- ))
1332
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-balance", descriptionClassName), children: description }))
1351
1333
  ]
1352
1334
  }
1353
1335
  ),
1354
1336
  tabsContent
1355
- ]
1337
+ ] })
1356
1338
  }
1357
1339
  );
1358
1340
  }