@birdycom/omniaui 0.12.3 → 0.12.5

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.
@@ -1,4 +1,4 @@
1
- /* File: oc-theme.css — generated from tokens/semantic.json by @birdycom/omniacss 0.12.3. Do not edit. */
1
+ /* File: oc-theme.css — generated from tokens/semantic.json by @birdycom/omniacss 0.12.5. Do not edit. */
2
2
  /* Semantic theme tokens: every color is light-dark() of an Omnia palette token (oc-colors.css). */
3
3
  /* Same source as the desktop export: npx omniacss tokens --format json|dtcg|python */
4
4
  :root {
@@ -3880,19 +3880,20 @@ details.oc-collapsible[open]::details-content { block-size: auto; }
3880
3880
  background: oklch(from var(--oc-accent-from) l c h / 0.14);
3881
3881
  color: light-dark(var(--oc-accent-from), oklch(from var(--oc-accent-from) max(l, 0.72) c h));
3882
3882
  }
3883
- /* Pulse: the ring starts at --oc-status-dot-pulse-alpha of the accent and grows to --oc-status-dot-pulse-size.
3883
+ /* Live dot in a pill (.oc-pill > .oc-status-dot): the ring starts at --oc-status-dot-pulse-alpha of the accent and grows
3884
+ to --oc-status-dot-pulse-size. Scoped to the pill: a plain .oc-status-dot is the status light (parts/app-status-dot.css).
3884
3885
  --strong starts at the full accent with a wider ring. */
3885
- .oc-status-dot {
3886
+ .oc-pill .oc-status-dot {
3886
3887
  --oc-status-dot-pulse-alpha: 0.6;
3887
3888
  --oc-status-dot-pulse-size: 8px;
3888
3889
  inline-size: 0.5rem;
3889
3890
  aspect-ratio: 1;
3890
3891
  border-radius: 50%;
3891
3892
  background: var(--oc-accent-from);
3892
- animation: oc-pulse 2s infinite;
3893
+ animation: oc-status-dot-ring 2s infinite;
3893
3894
  }
3894
- .oc-status-dot--strong { --oc-status-dot-pulse-alpha: 1; --oc-status-dot-pulse-size: 10px; }
3895
- @keyframes oc-pulse {
3895
+ .oc-pill .oc-status-dot--strong { --oc-status-dot-pulse-alpha: 1; --oc-status-dot-pulse-size: 10px; }
3896
+ @keyframes oc-status-dot-ring {
3896
3897
  0% { box-shadow: 0 0 0 0 oklch(from var(--oc-accent-from) l c h / var(--oc-status-dot-pulse-alpha)); }
3897
3898
  70%, 100% { box-shadow: 0 0 0 var(--oc-status-dot-pulse-size) transparent; }
3898
3899
  }
@@ -4053,7 +4054,7 @@ details.oc-collapsible[open]::details-content { block-size: auto; }
4053
4054
 
4054
4055
  @media (prefers-reduced-motion: reduce) {
4055
4056
  .oc-backdrop::before, .oc-backdrop::after, .oc-backdrop > .oc-backdrop__blob,
4056
- .oc-icon-tile--float, .oc-marquee__track, .oc-status-dot, .oc-reveal, .oc-site-header { animation: none; }
4057
+ .oc-icon-tile--float, .oc-marquee__track, .oc-pill .oc-status-dot, .oc-reveal, .oc-site-header { animation: none; }
4057
4058
  }
4058
4059
 
4059
4060
  /* ===================================================================
@@ -10113,9 +10114,9 @@ a.oc-message__quote:focus-visible { outline: 2px solid var(--oc-ring); outline-o
10113
10114
 
10114
10115
  /* parts/site-price-card.css */
10115
10116
  /* File: packages/ui/src/parts/site-price-card.css
10116
- Map: card -> head + discount badge -> period toggle -> monthly / yearly price (:has) -> features -> featured
10117
- Price card: one plan with a monthly / yearly switch (radio inputs + :has(), no JavaScript).
10118
- The toggle is the segmented component; give every card its own radio name. */
10117
+ Map: card -> head + discount badge -> period toggle -> monthly / yearly / lifetime price (:has) -> features -> featured
10118
+ Price card: one plan with a monthly / yearly switch, optionally a third "lifetime" option (radio inputs + :has(),
10119
+ no JavaScript). The toggle is the segmented component; give every card its own radio name. */
10119
10120
 
10120
10121
  .oc-price-card {
10121
10122
  display: flex;
@@ -10145,9 +10146,12 @@ a.oc-message__quote:focus-visible { outline: 2px solid var(--oc-ring); outline-o
10145
10146
  }
10146
10147
  .oc-price-card:has(.oc-price-card__toggle input[value="monthly"]:checked) .oc-price-card__discount { opacity: 0.55; }
10147
10148
 
10148
- .oc-price-card__toggle { align-self: flex-start; }
10149
+ .oc-price-card__toggle { align-self: flex-start; max-inline-size: 100%; }
10150
+ /* Three options (monthly / yearly / lifetime) take the full card width, in equal parts, so they fit a narrow card. */
10151
+ .oc-price-card__toggle:has(> :nth-child(3)) { align-self: stretch; }
10152
+ .oc-price-card__toggle:has(> :nth-child(3)) .oc-segmented-item { flex: 1; min-inline-size: 0; padding-inline: 0.25rem; letter-spacing: 0; text-align: center; }
10149
10153
 
10150
- /* Price rows: monthly shows by default, yearly when its radio is checked. */
10154
+ /* Price rows: monthly shows by default, yearly or lifetime when its radio is checked. */
10151
10155
  .oc-price-card__price {
10152
10156
  display: flex;
10153
10157
  flex-wrap: wrap;
@@ -10155,9 +10159,12 @@ a.oc-message__quote:focus-visible { outline: 2px solid var(--oc-ring); outline-o
10155
10159
  gap: 0.35rem;
10156
10160
  margin: 0;
10157
10161
  }
10158
- .oc-price-card__price--yearly { display: none; }
10159
- .oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--yearly { display: flex; }
10160
- .oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--monthly { display: none; }
10162
+ .oc-price-card__price--yearly,
10163
+ .oc-price-card__price--lifetime { display: none; }
10164
+ .oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--yearly,
10165
+ .oc-price-card:has(.oc-price-card__toggle input[value="lifetime"]:checked) .oc-price-card__price--lifetime { display: flex; }
10166
+ .oc-price-card:has(.oc-price-card__toggle input:is([value="yearly"], [value="lifetime"]):checked) .oc-price-card__price--monthly,
10167
+ .oc-price-card:has(.oc-price-card__toggle input[value="lifetime"]:checked) .oc-price-card__price--yearly { display: none; }
10161
10168
 
10162
10169
  .oc-price-card__amount { font-size: 2.5rem; font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
10163
10170
  .oc-price-card__period { color: var(--oc-muted-foreground); font-size: 0.9rem; }