@frontlit/page-builder 0.1.0-alpha.6 → 0.1.0-alpha.8

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 (34) hide show
  1. package/dist/blocks/index.js +2 -2
  2. package/dist/builder/index.js +5 -5
  3. package/dist/{chunk-PQTDUFKU.js → chunk-HEKBPKGS.js} +6 -6
  4. package/dist/{chunk-PQTDUFKU.js.map → chunk-HEKBPKGS.js.map} +1 -1
  5. package/dist/{chunk-YXLOVEQZ.js → chunk-I2LRKHSL.js} +5 -5
  6. package/dist/{chunk-YXLOVEQZ.js.map → chunk-I2LRKHSL.js.map} +1 -1
  7. package/dist/{chunk-OEQJQ4OA.js → chunk-KRQWGGAJ.js} +244 -6
  8. package/dist/chunk-KRQWGGAJ.js.map +1 -0
  9. package/dist/{chunk-BWOGREWJ.js → chunk-LL6CG6KH.js} +3 -3
  10. package/dist/{chunk-BWOGREWJ.js.map → chunk-LL6CG6KH.js.map} +1 -1
  11. package/dist/{chunk-FZBLE44D.js → chunk-XQE4RVNO.js} +4 -4
  12. package/dist/chunk-XQE4RVNO.js.map +1 -0
  13. package/dist/components/index.js +2 -2
  14. package/dist/index.js +5 -5
  15. package/dist/primitives/index.d.ts +68 -1
  16. package/dist/primitives/index.js +1 -1
  17. package/dist/renderer/index.js +4 -4
  18. package/dist/server/index.js +4 -2
  19. package/dist/server/index.js.map +1 -1
  20. package/dist/server/islands/code-snippet.js +1 -1
  21. package/dist/server/islands/code-snippet.js.map +1 -1
  22. package/dist/server/islands/header-mobile-menu.js +1 -1
  23. package/dist/server/islands/header-mobile-menu.js.map +1 -1
  24. package/dist/server/islands/tabs.d.ts +23 -0
  25. package/dist/server/islands/tabs.js +86 -0
  26. package/dist/server/islands/tabs.js.map +1 -0
  27. package/dist/server/islands/theme-mode-switcher.d.ts +1 -1
  28. package/dist/server/primitives.d.ts +81 -1
  29. package/dist/server/primitives.js +231 -36
  30. package/dist/server/primitives.js.map +1 -1
  31. package/dist/styles.css +343 -0
  32. package/package.json +2 -2
  33. package/dist/chunk-FZBLE44D.js.map +0 -1
  34. package/dist/chunk-OEQJQ4OA.js.map +0 -1
package/dist/styles.css CHANGED
@@ -1174,6 +1174,9 @@
1174
1174
  .min-h-0 {
1175
1175
  min-height: 0px;
1176
1176
  }
1177
+ .min-h-10 {
1178
+ min-height: calc(var(--spacing) * 10);
1179
+ }
1177
1180
  .min-h-11 {
1178
1181
  min-height: calc(var(--spacing) * 11);
1179
1182
  }
@@ -1252,9 +1255,15 @@
1252
1255
  .w-12 {
1253
1256
  width: calc(var(--spacing) * 12);
1254
1257
  }
1258
+ .w-24 {
1259
+ width: calc(var(--spacing) * 24);
1260
+ }
1255
1261
  .w-28 {
1256
1262
  width: calc(var(--spacing) * 28);
1257
1263
  }
1264
+ .w-32 {
1265
+ width: calc(var(--spacing) * 32);
1266
+ }
1258
1267
  .w-40 {
1259
1268
  width: calc(var(--spacing) * 40);
1260
1269
  }
@@ -1345,6 +1354,9 @@
1345
1354
  .grow {
1346
1355
  flex-grow: 1;
1347
1356
  }
1357
+ .border-collapse {
1358
+ border-collapse: collapse;
1359
+ }
1348
1360
  .-translate-x-1 {
1349
1361
  --tw-translate-x: calc(var(--spacing) * -1);
1350
1362
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1603,6 +1615,15 @@
1603
1615
  .scroll-m-20 {
1604
1616
  scroll-margin: calc(var(--spacing) * 20);
1605
1617
  }
1618
+ .\[scrollbar-width\:none\] {
1619
+ scrollbar-width: none;
1620
+ }
1621
+ .\[scrollbar-width\:thin\] {
1622
+ scrollbar-width: thin;
1623
+ }
1624
+ .\[scrollbar-color\:var\(--border\)_transparent\] {
1625
+ scrollbar-color: var(--border) transparent;
1626
+ }
1606
1627
  .list-inside {
1607
1628
  list-style-position: inside;
1608
1629
  }
@@ -1786,6 +1807,9 @@
1786
1807
  .overflow-y-auto {
1787
1808
  overflow-y: auto;
1788
1809
  }
1810
+ .overflow-y-hidden {
1811
+ overflow-y: hidden;
1812
+ }
1789
1813
  .rounded {
1790
1814
  border-radius: 0.25rem;
1791
1815
  }
@@ -3257,6 +3281,9 @@
3257
3281
  .pl-2 {
3258
3282
  padding-left: calc(var(--spacing) * 2);
3259
3283
  }
3284
+ .pl-6 {
3285
+ padding-left: calc(var(--spacing) * 6);
3286
+ }
3260
3287
  .pl-8 {
3261
3288
  padding-left: calc(var(--spacing) * 8);
3262
3289
  }
@@ -3275,6 +3302,9 @@
3275
3302
  .text-right {
3276
3303
  text-align: right;
3277
3304
  }
3305
+ .align-top {
3306
+ vertical-align: top;
3307
+ }
3278
3308
  .font-alegreya {
3279
3309
  font-family: var(--font-alegreya, Alegreya), ui-serif, Georgia, Cambria, "Times New Roman",
3280
3310
  Times, serif;
@@ -3437,6 +3467,9 @@
3437
3467
  font-size: var(--text-xs);
3438
3468
  line-height: var(--tw-leading, var(--text-xs--line-height));
3439
3469
  }
3470
+ .text-\[0\.875em\] {
3471
+ font-size: 0.875em;
3472
+ }
3440
3473
  .text-\[10px\] {
3441
3474
  font-size: 10px;
3442
3475
  }
@@ -4621,6 +4654,9 @@
4621
4654
  .running {
4622
4655
  animation-play-state: running;
4623
4656
  }
4657
+ .group-open\:rotate-90:is(:where(.group):is([open], :popover-open, :open) *) {
4658
+ rotate: 90deg;
4659
+ }
4624
4660
  .group-open\:rotate-180:is(:where(.group):is([open], :popover-open, :open) *) {
4625
4661
  rotate: 180deg;
4626
4662
  }
@@ -4692,6 +4728,18 @@
4692
4728
  color: color-mix(in oklab, var(--muted-foreground) 70%, transparent);
4693
4729
  }
4694
4730
  }
4731
+ .before\:mr-2::before {
4732
+ content: var(--tw-content);
4733
+ margin-right: calc(var(--spacing) * 2);
4734
+ }
4735
+ .before\:text-muted-foreground::before {
4736
+ content: var(--tw-content);
4737
+ color: var(--muted-foreground);
4738
+ }
4739
+ .before\:content-\[attr\(data-label\)\'\:\'\]::before {
4740
+ --tw-content: attr(data-label)':';
4741
+ content: var(--tw-content);
4742
+ }
4695
4743
  .after\:absolute::after {
4696
4744
  content: var(--tw-content);
4697
4745
  position: absolute;
@@ -4759,6 +4807,10 @@
4759
4807
  border-style: var(--tw-border-style);
4760
4808
  border-width: 0px;
4761
4809
  }
4810
+ .last\:border-b-0:last-child {
4811
+ border-bottom-style: var(--tw-border-style);
4812
+ border-bottom-width: 0px;
4813
+ }
4762
4814
  .last\:pb-0:last-child {
4763
4815
  padding-bottom: 0px;
4764
4816
  }
@@ -6765,6 +6817,9 @@
6765
6817
  --tw-outline-style: none;
6766
6818
  outline-style: none;
6767
6819
  }
6820
+ .focus-visible\:ring-inset:focus-visible {
6821
+ --tw-ring-inset: inset;
6822
+ }
6768
6823
  .disabled\:pointer-events-none:disabled {
6769
6824
  pointer-events: none;
6770
6825
  }
@@ -8223,6 +8278,9 @@
8223
8278
  .disabled\:text-zinc-950:disabled {
8224
8279
  color: var(--color-zinc-950);
8225
8280
  }
8281
+ .disabled\:opacity-40:disabled {
8282
+ opacity: 40%;
8283
+ }
8226
8284
  .disabled\:opacity-50:disabled {
8227
8285
  opacity: 50%;
8228
8286
  }
@@ -8408,6 +8466,21 @@
8408
8466
  }
8409
8467
  }
8410
8468
  @media (width >= 48rem) {
8469
+ .md\:table {
8470
+ display: table;
8471
+ }
8472
+ .md\:table-cell {
8473
+ display: table-cell;
8474
+ }
8475
+ .md\:table-header-group {
8476
+ display: table-header-group;
8477
+ }
8478
+ .md\:table-row {
8479
+ display: table-row;
8480
+ }
8481
+ .md\:table-row-group {
8482
+ display: table-row-group;
8483
+ }
8411
8484
  .md\:w-1\/2 {
8412
8485
  width: calc(1 / 2 * 100%);
8413
8486
  }
@@ -8457,12 +8530,21 @@
8457
8530
  .md\:gap-10 {
8458
8531
  gap: calc(var(--spacing) * 10);
8459
8532
  }
8533
+ .md\:p-0 {
8534
+ padding: 0px;
8535
+ }
8460
8536
  .md\:p-10 {
8461
8537
  padding: calc(var(--spacing) * 10);
8462
8538
  }
8463
8539
  .md\:p-12 {
8464
8540
  padding: calc(var(--spacing) * 12);
8465
8541
  }
8542
+ .md\:px-3 {
8543
+ padding-inline: calc(var(--spacing) * 3);
8544
+ }
8545
+ .md\:py-2 {
8546
+ padding-block: calc(var(--spacing) * 2);
8547
+ }
8466
8548
  .md\:text-sm {
8467
8549
  font-size: var(--text-sm);
8468
8550
  line-height: var(--tw-leading, var(--text-sm--line-height));
@@ -8470,6 +8552,11 @@
8470
8552
  .md\:text-\[length\:var\(--pb-title-tablet\)\] {
8471
8553
  font-size: var(--pb-title-tablet);
8472
8554
  }
8555
+ .md\:before\:content-none::before {
8556
+ content: var(--tw-content);
8557
+ --tw-content: none;
8558
+ content: none;
8559
+ }
8473
8560
  }
8474
8561
  @media (width >= 64rem) {
8475
8562
  .lg\:\!block {
@@ -10601,6 +10688,262 @@
10601
10688
  border-radius: 0.5rem;
10602
10689
  margin: 1rem auto;
10603
10690
  }
10691
+ .tiptap-renderer .te-code-block__title {
10692
+ border: 1px solid var(--border, hsl(214.3 31.8% 91.4%));
10693
+ border-bottom: none;
10694
+ border-radius: 0.5rem 0.5rem 0 0;
10695
+ color: var(--muted-foreground, hsl(215.4 16.3% 46.9%));
10696
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
10697
+ font-size: 0.8125rem;
10698
+ padding: 0.5rem 1rem;
10699
+ padding-right: 2.75rem;
10700
+ }
10701
+ .tiptap-renderer .te-code-block__title + pre {
10702
+ border-top-left-radius: 0;
10703
+ border-top-right-radius: 0;
10704
+ }
10705
+ .tiptap-renderer .te-callout {
10706
+ --te-callout-accent: var(--primary, hsl(222.2 47.4% 11.2%));
10707
+ display: flex;
10708
+ gap: 0.75rem;
10709
+ margin: 1rem 0;
10710
+ padding: 0.75rem 1rem;
10711
+ border: 1px solid var(--te-callout-accent);
10712
+ @supports (color: color-mix(in lab, red, red)) {
10713
+ border: 1px solid color-mix(in srgb, var(--te-callout-accent) 35%, transparent);
10714
+ }
10715
+ border-radius: 0.5rem;
10716
+ background: var(--te-callout-accent);
10717
+ @supports (color: color-mix(in lab, red, red)) {
10718
+ background: color-mix(in srgb, var(--te-callout-accent) 7%, transparent);
10719
+ }
10720
+ }
10721
+ .tiptap-renderer .te-callout[data-type="tip"] {
10722
+ --te-callout-accent: hsl(142 71% 36%);
10723
+ }
10724
+ .tiptap-renderer .te-callout[data-type="warning"] {
10725
+ --te-callout-accent: hsl(38 92% 45%);
10726
+ }
10727
+ .tiptap-renderer .te-callout[data-type="danger"] {
10728
+ --te-callout-accent: hsl(0 72% 51%);
10729
+ }
10730
+ .tiptap-renderer .te-callout[data-type="note"] {
10731
+ --te-callout-accent: var(--muted-foreground, hsl(215.4 16.3% 46.9%));
10732
+ }
10733
+ .tiptap-renderer .te-callout__icon {
10734
+ flex-shrink: 0;
10735
+ width: 1.125rem;
10736
+ height: 1.125rem;
10737
+ margin-top: 0.2rem;
10738
+ color: var(--te-callout-accent);
10739
+ }
10740
+ .tiptap-renderer .te-callout__body {
10741
+ min-width: 0;
10742
+ flex: 1;
10743
+ }
10744
+ .tiptap-renderer .te-callout__body > :first-child {
10745
+ margin-top: 0;
10746
+ }
10747
+ .tiptap-renderer .te-callout__body > :last-child {
10748
+ margin-bottom: 0;
10749
+ }
10750
+ .tiptap-renderer .te-callout__title {
10751
+ font-weight: 600;
10752
+ }
10753
+ .tiptap-renderer .te-tabs {
10754
+ margin: 1rem 0;
10755
+ }
10756
+ .tiptap-renderer .te-tabs__list {
10757
+ display: flex;
10758
+ gap: 0.25rem;
10759
+ overflow-x: auto;
10760
+ border-bottom: 1px solid var(--border, hsl(214.3 31.8% 91.4%));
10761
+ }
10762
+ .tiptap-renderer .te-tabs__tab {
10763
+ appearance: none;
10764
+ background: none;
10765
+ border: none;
10766
+ border-bottom: 2px solid transparent;
10767
+ margin-bottom: -1px;
10768
+ padding: 0.5rem 0.75rem;
10769
+ color: var(--muted-foreground, hsl(215.4 16.3% 46.9%));
10770
+ font: inherit;
10771
+ font-size: 0.875rem;
10772
+ font-weight: 500;
10773
+ white-space: nowrap;
10774
+ cursor: pointer;
10775
+ }
10776
+ .tiptap-renderer .te-tabs__tab[aria-selected="true"] {
10777
+ border-bottom-color: var(--primary, hsl(222.2 47.4% 11.2%));
10778
+ color: var(--foreground, hsl(222.2 84% 4.9%));
10779
+ }
10780
+ .tiptap-renderer .te-tabs__panel > :first-child {
10781
+ margin-top: 0.75rem;
10782
+ }
10783
+ .tiptap-renderer .te-code-group .te-code-block__title {
10784
+ display: none;
10785
+ }
10786
+ .tiptap-renderer .te-steps {
10787
+ counter-reset: te-step;
10788
+ margin: 1rem 0;
10789
+ padding-left: 0;
10790
+ }
10791
+ .tiptap-renderer .te-steps > .te-step {
10792
+ counter-increment: te-step;
10793
+ list-style: none;
10794
+ position: relative;
10795
+ padding-left: 2.75rem;
10796
+ padding-bottom: 0.5rem;
10797
+ }
10798
+ .tiptap-renderer .te-steps > .te-step::before {
10799
+ content: counter(te-step);
10800
+ position: absolute;
10801
+ left: 0;
10802
+ top: 0;
10803
+ display: flex;
10804
+ align-items: center;
10805
+ justify-content: center;
10806
+ width: 1.75rem;
10807
+ height: 1.75rem;
10808
+ border: 1px solid var(--border, hsl(214.3 31.8% 91.4%));
10809
+ border-radius: 9999px;
10810
+ background: var(--muted, hsl(210 40% 96.1%));
10811
+ font-size: 0.875rem;
10812
+ font-weight: 600;
10813
+ }
10814
+ .tiptap-renderer .te-steps > .te-step::after {
10815
+ content: "";
10816
+ position: absolute;
10817
+ left: 0.875rem;
10818
+ top: 2.25rem;
10819
+ bottom: 0.25rem;
10820
+ border-left: 1px solid var(--border, hsl(214.3 31.8% 91.4%));
10821
+ }
10822
+ .tiptap-renderer .te-steps > .te-step > :first-child {
10823
+ margin-top: 0;
10824
+ }
10825
+ .tiptap-renderer .te-cards {
10826
+ display: grid;
10827
+ grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
10828
+ gap: 0.75rem;
10829
+ margin: 1rem 0;
10830
+ }
10831
+ .tiptap-renderer .te-card {
10832
+ display: flex;
10833
+ flex-direction: column;
10834
+ gap: 0.25rem;
10835
+ padding: 1rem;
10836
+ border: 1px solid var(--border, hsl(214.3 31.8% 91.4%));
10837
+ border-radius: 0.5rem;
10838
+ background: var(--card, transparent);
10839
+ color: inherit;
10840
+ text-decoration: none;
10841
+ }
10842
+ .tiptap-renderer a.te-card:hover {
10843
+ background: var(--muted, hsl(210 40% 96.1%));
10844
+ }
10845
+ .tiptap-renderer .te-card__icon {
10846
+ width: 1.25rem;
10847
+ height: 1.25rem;
10848
+ margin-bottom: 0.25rem;
10849
+ color: var(--muted-foreground, hsl(215.4 16.3% 46.9%));
10850
+ }
10851
+ .tiptap-renderer .te-card__title {
10852
+ font-weight: 600;
10853
+ }
10854
+ .tiptap-renderer .te-card__body {
10855
+ color: var(--muted-foreground, hsl(215.4 16.3% 46.9%));
10856
+ font-size: 0.875rem;
10857
+ }
10858
+ .tiptap-renderer .te-card__body > * {
10859
+ margin: 0;
10860
+ }
10861
+ .tiptap-renderer .te-accordions {
10862
+ margin: 1rem 0;
10863
+ border: 1px solid var(--border, hsl(214.3 31.8% 91.4%));
10864
+ border-radius: 0.5rem;
10865
+ }
10866
+ .tiptap-renderer .te-accordion + .te-accordion {
10867
+ border-top: 1px solid var(--border, hsl(214.3 31.8% 91.4%));
10868
+ }
10869
+ .tiptap-renderer .te-accordion__title {
10870
+ padding: 0.75rem 1rem;
10871
+ font-weight: 600;
10872
+ cursor: pointer;
10873
+ }
10874
+ .tiptap-renderer .te-accordion__body {
10875
+ padding: 0 1rem;
10876
+ }
10877
+ .tiptap-renderer .te-type-table {
10878
+ overflow-x: auto;
10879
+ }
10880
+ .tiptap-renderer .te-type-table table {
10881
+ table-layout: auto;
10882
+ }
10883
+ .tiptap-renderer .te-type-table__required {
10884
+ color: var(--muted-foreground, hsl(215.4 16.3% 46.9%));
10885
+ font-size: 0.75rem;
10886
+ }
10887
+ .tiptap-editor .ProseMirror .te-block {
10888
+ margin: 0.75rem 0;
10889
+ border: 1px solid var(--border);
10890
+ border-radius: 0.5rem;
10891
+ }
10892
+ .tiptap-editor .ProseMirror .te-block__bar {
10893
+ display: flex;
10894
+ flex-wrap: wrap;
10895
+ align-items: center;
10896
+ gap: 0.375rem;
10897
+ padding: 0.25rem 0.5rem;
10898
+ border-bottom: 1px solid var(--border);
10899
+ background: var(--muted);
10900
+ border-radius: 0.5rem 0.5rem 0 0;
10901
+ font-size: 0.75rem;
10902
+ }
10903
+ .tiptap-editor .ProseMirror .te-block__label {
10904
+ font-weight: 600;
10905
+ color: var(--muted-foreground);
10906
+ text-transform: uppercase;
10907
+ letter-spacing: 0.04em;
10908
+ }
10909
+ .tiptap-editor .ProseMirror .te-block__content {
10910
+ padding: 0.25rem 0.75rem;
10911
+ }
10912
+ .tiptap-editor .ProseMirror .te-block-item {
10913
+ margin: 0.5rem 0;
10914
+ border: 1px dashed var(--border);
10915
+ border-radius: 0.375rem;
10916
+ }
10917
+ .tiptap-editor .ProseMirror .te-block-item > .te-block__bar {
10918
+ background: transparent;
10919
+ }
10920
+ .tiptap-editor .ProseMirror .te-block[data-block="steps"] > .te-block__content {
10921
+ counter-reset: te-step;
10922
+ }
10923
+ .tiptap-editor .ProseMirror .te-block-item[data-block="step"]::before {
10924
+ counter-increment: te-step;
10925
+ content: "Step " counter(te-step);
10926
+ display: block;
10927
+ padding: 0.25rem 0.75rem 0;
10928
+ font-size: 0.75rem;
10929
+ font-weight: 600;
10930
+ color: var(--muted-foreground);
10931
+ }
10932
+ .tiptap-editor .ProseMirror .te-block-code {
10933
+ margin: 0.75rem 0;
10934
+ }
10935
+ .tiptap-editor .ProseMirror .te-block-code pre {
10936
+ margin-top: 0;
10937
+ border-top-left-radius: 0;
10938
+ border-top-right-radius: 0;
10939
+ }
10940
+ .tiptap-editor .ProseMirror .te-block-table {
10941
+ table-layout: auto;
10942
+ margin: 0.5rem 0;
10943
+ }
10944
+ .tiptap-editor .ProseMirror .te-block-table th, .tiptap-editor .ProseMirror .te-block-table td {
10945
+ padding: 0.25rem;
10946
+ }
10604
10947
  @property --tw-translate-x {
10605
10948
  syntax: "*";
10606
10949
  inherits: false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontlit/page-builder",
3
- "version": "0.1.0-alpha.6",
3
+ "version": "0.1.0-alpha.8",
4
4
  "description": "Block-based WYSIWYG page builder and renderer for React",
5
5
  "author": "FrontLit",
6
6
  "license": "MIT",
@@ -162,7 +162,7 @@
162
162
  },
163
163
  "dependencies": {
164
164
  "@frontlit/media-uploader": "0.1.0-alpha.1",
165
- "@frontlit/text-editor": "0.1.0-alpha.3",
165
+ "@frontlit/text-editor": "0.1.0-alpha.4",
166
166
  "@radix-ui/react-alert-dialog": "^1.1.23",
167
167
  "@radix-ui/react-avatar": "^1.2.6",
168
168
  "@radix-ui/react-checkbox": "^1.3.11",