@lostgradient/cinder 0.12.1 → 0.13.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 (59) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components.json +7 -5
  3. package/dist/components/diff-viewer/index.js +201 -101
  4. package/dist/components/json-schema-editor/index.js +229 -129
  5. package/dist/components/markdown-editor/index.js +207 -107
  6. package/dist/components/review-editor/index.js +291 -191
  7. package/dist/components/schedule-builder/index.js +205 -105
  8. package/dist/components/segment/index.js +119 -56
  9. package/dist/components/segment/segment.schema.d.ts +2 -2
  10. package/dist/components/segment/segment.schema.js +71 -33
  11. package/dist/components/segment/segment.svelte.d.ts +2 -1
  12. package/dist/components/segment/segment.types.d.ts +67 -10
  13. package/dist/components/segmented-control/index.js +193 -93
  14. package/dist/components/segmented-control/segmented-control-state.svelte.d.ts +4 -4
  15. package/dist/components/segmented-control/segmented-control.css +26 -6
  16. package/dist/components/segmented-control/segmented-control.schema.js +3 -3
  17. package/dist/components/segmented-control/segmented-control.svelte.d.ts +2 -1
  18. package/dist/components/segmented-control/segmented-control.types.d.ts +4 -4
  19. package/dist/components/sidebar/index.d.ts +1 -0
  20. package/dist/components/sidebar/index.js +9 -3
  21. package/dist/components/sidebar/sidebar.constants.d.ts +12 -0
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.js +466 -358
  24. package/dist/server/components/diff-viewer/index.js +4 -4
  25. package/dist/server/components/json-schema-editor/index.js +4 -4
  26. package/dist/server/components/markdown-editor/index.js +3 -3
  27. package/dist/server/components/review-editor/index.js +4 -4
  28. package/dist/server/components/schedule-builder/index.js +3 -3
  29. package/dist/server/components/segment/index.js +2 -2
  30. package/dist/server/components/segmented-control/index.js +3 -3
  31. package/dist/server/components/sidebar/index.js +7 -3
  32. package/dist/server/index.js +16 -10
  33. package/dist/server/{index.server-jgb8yh5k.js → index.server-2m1kenak.js} +1 -1
  34. package/dist/server/{index.server-jfrssta6.js → index.server-ck3fwrab.js} +1 -1
  35. package/dist/server/{index.server-sedjxt36.js → index.server-e89qfamd.js} +79 -35
  36. package/dist/server/{index.server-pag862vz.js → index.server-grgv455a.js} +2 -2
  37. package/dist/server/{index.server-2qj6s2mh.js → index.server-j570vb03.js} +7 -3
  38. package/dist/server/{index.server-xeqtpv61.js → index.server-mr68brd6.js} +49 -24
  39. package/dist/server/{index.server-qbkxz7r2.js → index.server-nx9c2ep1.js} +2 -2
  40. package/dist/server/{index.server-jj76374p.js → index.server-p071e531.js} +1 -1
  41. package/dist/server/{index.server-5gzyqv78.js → index.server-v3arexq8.js} +2 -2
  42. package/dist/server/{index.server-85p4ydph.js → index.server-zzd5wpbw.js} +1 -1
  43. package/package.json +1 -1
  44. package/src/components/segment/segment.schema.json +34 -7
  45. package/src/components/segment/segment.schema.ts +5 -47
  46. package/src/components/segment/segment.svelte +58 -23
  47. package/src/components/segment/segment.types.ts +81 -11
  48. package/src/components/segmented-control/segmented-control.css +26 -6
  49. package/src/components/segmented-control/segmented-control.examples.json +6 -0
  50. package/src/components/segmented-control/segmented-control.schema.json +2 -2
  51. package/src/components/segmented-control/segmented-control.schema.ts +2 -2
  52. package/src/components/segmented-control/segmented-control.svelte +50 -23
  53. package/src/components/segmented-control/segmented-control.types.ts +4 -7
  54. package/src/components/sidebar/index.ts +1 -0
  55. package/src/components/sidebar/sidebar.constants.ts +13 -0
  56. package/src/components/sidebar/sidebar.examples.json +6 -0
  57. package/src/components/sidebar/sidebar.svelte +4 -5
  58. package/src/index.ts +5 -1
  59. package/src/styles/foundation.css +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @lostgradient/cinder
2
2
 
3
+ ## 0.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#740](https://github.com/stevekinney/cinder/pull/740) [`ddefe5c`](https://github.com/stevekinney/cinder/commit/ddefe5c7fb2beff3b2593ea1179cc1bb6ed56bae) Thanks [@stevekinney](https://github.com/stevekinney)! - Add link-backed SegmentedControl navigation options for route filters.
8
+
3
9
  ## 0.12.1
4
10
 
5
11
  ### Patch Changes
package/components.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "manifestVersion": 1,
4
4
  "package": {
5
5
  "name": "@lostgradient/cinder",
6
- "version": "0.12.1",
6
+ "version": "0.13.0",
7
7
  "framework": "svelte",
8
8
  "frameworkVersionRange": ">=5.56.0 <6",
9
9
  "classPrefix": "cinder-",
@@ -4377,11 +4377,12 @@
4377
4377
  "exportName": "Segment",
4378
4378
  "category": "form",
4379
4379
  "status": "stable",
4380
- "purpose": "Individual option inside a SegmentedControl that renders the button, wires the value, and forwards leading/trailing decorations.",
4380
+ "purpose": "Individual option inside a SegmentedControl that renders either a selection button or a route-backed link with shared segmented styling.",
4381
4381
  "tags": ["form", "selection"],
4382
4382
  "useWhen": [
4383
4383
  "Authoring SegmentedControl children declaratively so consumers can compose icons, labels, and badges per segment.",
4384
- "Mixing disabled and enabled segments inside a single radiogroup/tablist where each segment carries its own metadata."
4384
+ "Mixing disabled and enabled segments inside a single radiogroup/tablist where each segment carries its own metadata.",
4385
+ "Rendering route filters as real links inside `SegmentedControl variant=\"navigation\"`."
4385
4386
  ],
4386
4387
  "avoidWhen": [
4387
4388
  {
@@ -4406,11 +4407,12 @@
4406
4407
  "exportName": "SegmentedControl",
4407
4408
  "category": "form",
4408
4409
  "status": "stable",
4409
- "purpose": "Compact radio-style selector that surfaces a small fixed set of options as a single connected bar and binds the chosen value.",
4410
+ "purpose": "Compact segmented selector that surfaces a small fixed set of options as a connected bar, including bindable selections and route-backed links.",
4410
4411
  "tags": ["form", "selection"],
4411
4412
  "useWhen": [
4412
4413
  "Choosing one of two to five mutually exclusive options that all fit on screen at once.",
4413
- "Picking a view filter where seeing every option beats hiding them inside a toggle or tabs control."
4414
+ "Picking a view filter where seeing every option beats hiding them inside a toggle or tabs control.",
4415
+ "Rendering route-backed filters as real links with `variant=\"navigation\"` and `Segment href`."
4414
4416
  ],
4415
4417
  "avoidWhen": [
4416
4418
  {
@@ -1710,25 +1710,69 @@ var rest_excludes7 = new Set([
1710
1710
  "$$events",
1711
1711
  "$$legacy",
1712
1712
  "value",
1713
+ "href",
1714
+ "download",
1715
+ "target",
1716
+ "rel",
1717
+ "current",
1718
+ "currentToken",
1713
1719
  "disabled",
1714
1720
  "controls",
1715
1721
  "leading",
1716
1722
  "trailing",
1717
1723
  "children",
1718
- "class"
1724
+ "class",
1725
+ "onclick"
1719
1726
  ]);
1720
1727
  var root9 = $15.from_html(`<span class="cinder-segmented-control-option-icon" aria-hidden="true"><!></span>`);
1721
1728
  var root_15 = $15.from_html(`<span class="cinder-segmented-control-option-trailing" aria-hidden="true"><!></span>`);
1722
- var root_24 = $15.from_html(`<button><!> <!> <!></button>`);
1729
+ var root_24 = $15.from_html(`<!> <!> <!>`, 1);
1730
+ var root_34 = $15.from_html(`<a><!></a>`);
1731
+ var root_43 = $15.from_html(`<button><!></button>`);
1723
1732
  function Segment($$anchor, $$props) {
1724
1733
  $15.push($$props, true);
1725
- let disabled = $15.prop($$props, "disabled", 3, false), rest = $15.rest_props($$props, rest_excludes7);
1734
+ const content = ($$anchor2) => {
1735
+ var fragment = root_24();
1736
+ var node_1 = $15.first_child(fragment);
1737
+ {
1738
+ var consequent = ($$anchor3) => {
1739
+ var span = root9();
1740
+ var node_2 = $15.child(span);
1741
+ $15.snippet(node_2, () => $$props.leading);
1742
+ $15.reset(span);
1743
+ $15.append($$anchor3, span);
1744
+ };
1745
+ $15.if(node_1, ($$render) => {
1746
+ if ($$props.leading)
1747
+ $$render(consequent);
1748
+ });
1749
+ }
1750
+ var node_3 = $15.sibling(node_1, 2);
1751
+ $15.snippet(node_3, () => $$props.children ?? $15.noop);
1752
+ var node_4 = $15.sibling(node_3, 2);
1753
+ {
1754
+ var consequent_1 = ($$anchor3) => {
1755
+ var span_1 = root_15();
1756
+ var node_5 = $15.child(span_1);
1757
+ $15.snippet(node_5, () => $$props.trailing);
1758
+ $15.reset(span_1);
1759
+ $15.append($$anchor3, span_1);
1760
+ };
1761
+ $15.if(node_4, ($$render) => {
1762
+ if ($$props.trailing)
1763
+ $$render(consequent_1);
1764
+ });
1765
+ }
1766
+ $15.append($$anchor2, fragment);
1767
+ };
1768
+ let current = $15.prop($$props, "current", 3, false), currentToken = $15.prop($$props, "currentToken", 3, "page"), disabled = $15.prop($$props, "disabled", 3, false), rest = $15.rest_props($$props, rest_excludes7);
1726
1769
  const context = getSegmentedControlContext();
1770
+ const buttonValue = $15.derived(() => $$props.value ?? $$props.href ?? "");
1727
1771
  const registerSegment = (node) => {
1728
1772
  return untrack2(() => context.register({
1729
1773
  node,
1730
1774
  get value() {
1731
- return $$props.value;
1775
+ return $15.get(buttonValue);
1732
1776
  },
1733
1777
  get disabled() {
1734
1778
  return disabled() || context.controlDisabled;
@@ -1738,64 +1782,83 @@ function Segment($$anchor, $$props) {
1738
1782
  }
1739
1783
  }));
1740
1784
  };
1741
- const isSelected = $15.derived(() => context.isSelected($$props.value));
1742
- const isFocusable = $15.derived(() => context.isFocusable($$props.value));
1785
+ const isSelected = $15.derived(() => context.isSelected($15.get(buttonValue)));
1786
+ const isFocusable = $15.derived(() => context.isFocusable($15.get(buttonValue)));
1743
1787
  const effectiveDisabled = $15.derived(() => disabled() || context.controlDisabled);
1788
+ const isNavigationItem = $15.derived(() => context.variant === "navigation");
1789
+ const anchorDisabled = $15.derived(() => $15.get(effectiveDisabled) || $$props.href === undefined);
1790
+ const elementAttributes = $15.derived(() => rest);
1791
+ const anchorTabindex = $15.derived(() => $15.get(anchorDisabled) ? -1 : $15.get(elementAttributes).tabindex);
1744
1792
  const role = $15.derived(() => context.selectionMode === "multiple" ? undefined : context.variant === "tablist" ? "tab" : "radio");
1745
- var button = root_24();
1746
- var event_handler = () => context.toggle($$props.value);
1747
- $15.attribute_effect(button, ($0) => ({
1748
- ...rest,
1749
- type: "button",
1750
- role: $15.get(role),
1751
- "data-cinder-segment-value": $$props.value,
1752
- "aria-checked": $15.get(role) === "radio" ? $15.get(isSelected) : undefined,
1753
- "aria-selected": $15.get(role) === "tab" ? $15.get(isSelected) : undefined,
1754
- "aria-pressed": context.selectionMode === "multiple" ? $15.get(isSelected) : undefined,
1755
- "aria-controls": $15.get(role) === "tab" ? $$props.controls : undefined,
1756
- "aria-disabled": $15.get(effectiveDisabled) ? "true" : undefined,
1757
- disabled: context.selectionMode === "multiple" ? $15.get(effectiveDisabled) : undefined,
1758
- tabindex: $15.get(isFocusable) ? 0 : -1,
1759
- class: $0,
1760
- "data-cinder-selected": $15.get(isSelected) ? "" : undefined,
1761
- "data-cinder-pressed": context.selectionMode === "multiple" && $15.get(isSelected) ? "" : undefined,
1762
- onclick: event_handler
1763
- }), [
1764
- () => classNames("cinder-segmented-control-option", $$props.class)
1765
- ]);
1766
- var node_1 = $15.child(button);
1767
- {
1768
- var consequent = ($$anchor2) => {
1769
- var span = root9();
1770
- var node_2 = $15.child(span);
1771
- $15.snippet(node_2, () => $$props.leading);
1772
- $15.reset(span);
1773
- $15.append($$anchor2, span);
1774
- };
1775
- $15.if(node_1, ($$render) => {
1776
- if ($$props.leading)
1777
- $$render(consequent);
1778
- });
1793
+ function handleAnchorClick(event) {
1794
+ if ($15.get(anchorDisabled)) {
1795
+ event.preventDefault();
1796
+ return;
1797
+ }
1798
+ $$props.onclick?.(event);
1779
1799
  }
1780
- var node_3 = $15.sibling(node_1, 2);
1781
- $15.snippet(node_3, () => $$props.children ?? $15.noop);
1782
- var node_4 = $15.sibling(node_3, 2);
1800
+ var fragment_1 = $15.comment();
1801
+ var node_6 = $15.first_child(fragment_1);
1783
1802
  {
1784
- var consequent_1 = ($$anchor2) => {
1785
- var span_1 = root_15();
1786
- var node_5 = $15.child(span_1);
1787
- $15.snippet(node_5, () => $$props.trailing);
1788
- $15.reset(span_1);
1789
- $15.append($$anchor2, span_1);
1803
+ var consequent_2 = ($$anchor2) => {
1804
+ var a = root_34();
1805
+ $15.attribute_effect(a, ($0) => ({
1806
+ ...$15.get(elementAttributes),
1807
+ href: $15.get(anchorDisabled) ? undefined : $$props.href,
1808
+ download: $$props.download,
1809
+ target: $$props.target,
1810
+ rel: $$props.rel,
1811
+ "data-cinder-segment-value": $15.get(buttonValue),
1812
+ "aria-current": current() ? currentToken() : undefined,
1813
+ "aria-disabled": $15.get(anchorDisabled) ? "true" : undefined,
1814
+ tabindex: $15.get(anchorTabindex),
1815
+ class: $0,
1816
+ "data-cinder-current": current() ? "" : undefined,
1817
+ onclick: handleAnchorClick
1818
+ }), [
1819
+ () => classNames("cinder-segmented-control-option", $$props.class)
1820
+ ]);
1821
+ var node_7 = $15.child(a);
1822
+ content(node_7);
1823
+ $15.reset(a);
1824
+ $15.append($$anchor2, a);
1790
1825
  };
1791
- $15.if(node_4, ($$render) => {
1792
- if ($$props.trailing)
1793
- $$render(consequent_1);
1826
+ var alternate = ($$anchor2) => {
1827
+ var button = root_43();
1828
+ var event_handler = () => context.toggle($15.get(buttonValue));
1829
+ $15.attribute_effect(button, ($0) => ({
1830
+ ...$15.get(elementAttributes),
1831
+ type: "button",
1832
+ role: $15.get(role),
1833
+ "data-cinder-segment-value": $15.get(buttonValue),
1834
+ "aria-checked": $15.get(role) === "radio" ? $15.get(isSelected) : undefined,
1835
+ "aria-selected": $15.get(role) === "tab" ? $15.get(isSelected) : undefined,
1836
+ "aria-pressed": context.selectionMode === "multiple" ? $15.get(isSelected) : undefined,
1837
+ "aria-controls": $15.get(role) === "tab" ? $$props.controls : undefined,
1838
+ "aria-disabled": $15.get(effectiveDisabled) ? "true" : undefined,
1839
+ disabled: context.selectionMode === "multiple" ? $15.get(effectiveDisabled) : undefined,
1840
+ tabindex: $15.get(isFocusable) ? 0 : -1,
1841
+ class: $0,
1842
+ "data-cinder-selected": $15.get(isSelected) ? "" : undefined,
1843
+ "data-cinder-pressed": context.selectionMode === "multiple" && $15.get(isSelected) ? "" : undefined,
1844
+ onclick: event_handler
1845
+ }), [
1846
+ () => classNames("cinder-segmented-control-option", $$props.class)
1847
+ ]);
1848
+ var node_8 = $15.child(button);
1849
+ content(node_8);
1850
+ $15.reset(button);
1851
+ $15.attach(button, () => registerSegment);
1852
+ $15.append($$anchor2, button);
1853
+ };
1854
+ $15.if(node_6, ($$render) => {
1855
+ if ($15.get(isNavigationItem))
1856
+ $$render(consequent_2);
1857
+ else
1858
+ $$render(alternate, -1);
1794
1859
  });
1795
1860
  }
1796
- $15.reset(button);
1797
- $15.attach(button, () => registerSegment);
1798
- $15.append($$anchor, button);
1861
+ $15.append($$anchor, fragment_1);
1799
1862
  $15.pop();
1800
1863
  }
1801
1864
 
@@ -1826,9 +1889,11 @@ var rest_excludes8 = new Set([
1826
1889
  "onchange",
1827
1890
  "children"
1828
1891
  ]);
1829
- var root10 = $16.from_html(`<input type="hidden"/>`);
1830
- var root_16 = $16.from_html(`<input type="hidden" disabled=""/> <!>`, 1);
1831
- var root_25 = $16.from_html(`<div class="cinder-segmented-control-container"><span> </span> <div><!></div> <!></div>`);
1892
+ var root10 = $16.from_html(`<nav><!></nav>`);
1893
+ var root_16 = $16.from_html(`<div><!></div>`);
1894
+ var root_25 = $16.from_html(`<input type="hidden"/>`);
1895
+ var root_35 = $16.from_html(`<input type="hidden" disabled=""/> <!>`, 1);
1896
+ var root_44 = $16.from_html(`<div class="cinder-segmented-control-container"><span> </span> <!> <!></div>`);
1832
1897
  function Segmented_control($$anchor, $$props) {
1833
1898
  $16.push($$props, true);
1834
1899
  let value = $16.prop($$props, "value", 15), hideLabel = $16.prop($$props, "hideLabel", 3, false), disabled = $16.prop($$props, "disabled", 3, false), size = $16.prop($$props, "size", 3, "md"), orientation = $16.prop($$props, "orientation", 3, "horizontal"), detached = $16.prop($$props, "detached", 3, false), fullWidth = $16.prop($$props, "fullWidth", 3, false), variant = $16.prop($$props, "variant", 3, "radiogroup"), selectionMode = $16.prop($$props, "selectionMode", 3, "single"), disallowEmptySelection = $16.prop($$props, "disallowEmptySelection", 3, true), rest = $16.rest_props($$props, rest_excludes8);
@@ -1836,9 +1901,11 @@ function Segmented_control($$anchor, $$props) {
1836
1901
  let resetSyncTimeout;
1837
1902
  const initialSingleValue = untrack3(() => typeof value() === "string" ? value() : undefined);
1838
1903
  const initialMultipleValues = untrack3(() => selectionMode() === "multiple" && value() instanceof SvelteSet ? Array.from(value()) : undefined);
1904
+ const effectiveVariant = $16.derived(() => selectionMode() === "multiple" && variant() !== "radiogroup" ? "radiogroup" : variant());
1905
+ const rendersNavigation = $16.derived(() => $16.get(effectiveVariant) === "navigation");
1839
1906
  const controller = new SegmentedControlController({
1840
1907
  selectionMode: () => selectionMode(),
1841
- variant: () => variant(),
1908
+ variant: () => $16.get(effectiveVariant),
1842
1909
  orientation: () => orientation(),
1843
1910
  controlDisabled: () => disabled(),
1844
1911
  disallowEmptySelection: () => disallowEmptySelection(),
@@ -1853,7 +1920,7 @@ function Segmented_control($$anchor, $$props) {
1853
1920
  return selectionMode();
1854
1921
  },
1855
1922
  get variant() {
1856
- return variant();
1923
+ return $16.get(effectiveVariant);
1857
1924
  },
1858
1925
  get controlDisabled() {
1859
1926
  return disabled();
@@ -1864,7 +1931,7 @@ function Segmented_control($$anchor, $$props) {
1864
1931
  toggle: (segmentValue) => controller.toggle(segmentValue)
1865
1932
  };
1866
1933
  setSegmentedControlContext(contextValue);
1867
- const groupRole = $16.derived(() => selectionMode() === "multiple" ? "group" : variant() === "tablist" ? "tablist" : "radiogroup");
1934
+ const groupRole = $16.derived(() => selectionMode() === "multiple" ? "group" : variant() === "navigation" ? undefined : variant() === "tablist" ? "tablist" : "radiogroup");
1868
1935
  const effectiveSize = $16.derived(() => $$props.density === "toolbar" ? "sm" : size());
1869
1936
  const selectedValues = $16.derived(() => selectionMode() === "multiple" ? value() instanceof SvelteSet ? Array.from(value()) : [] : typeof value() === "string" ? [value()] : []);
1870
1937
  function resetToInitialValue(event) {
@@ -1895,41 +1962,74 @@ function Segmented_control($$anchor, $$props) {
1895
1962
  }
1896
1963
  };
1897
1964
  });
1898
- var div = root_25();
1965
+ var div = root_44();
1899
1966
  var span = $16.child(div);
1900
1967
  var text6 = $16.child(span, true);
1901
1968
  $16.reset(span);
1902
- var div_1 = $16.sibling(span, 2);
1903
- var event_handler = (event) => controller.handleKeydown(event);
1904
- $16.attribute_effect(div_1, ($0) => ({
1905
- ...rest,
1906
- id: $$props.id,
1907
- role: $16.get(groupRole),
1908
- "aria-labelledby": `${$$props.id}-label`,
1909
- "aria-disabled": disabled() ? "true" : undefined,
1910
- "aria-orientation": selectionMode() === "single" ? orientation() : undefined,
1911
- "data-cinder-orientation": orientation(),
1912
- "data-cinder-size": $16.get(effectiveSize),
1913
- "data-cinder-density": $$props.density === "toolbar" ? "toolbar" : undefined,
1914
- "data-cinder-selection-mode": selectionMode(),
1915
- "data-cinder-detached": detached() ? "" : undefined,
1916
- "data-cinder-full-width": fullWidth() ? "" : undefined,
1917
- "data-cinder-variant": variant(),
1918
- class: $0,
1919
- onkeydown: event_handler
1920
- }), [() => classNames("cinder-segmented-control", $$props.class)]);
1921
- var node = $16.child(div_1);
1922
- $16.snippet(node, () => $$props.children);
1923
- $16.reset(div_1);
1924
- var node_1 = $16.sibling(div_1, 2);
1969
+ var node = $16.sibling(span, 2);
1925
1970
  {
1926
1971
  var consequent = ($$anchor2) => {
1927
- var fragment = root_16();
1972
+ var nav = root10();
1973
+ $16.attribute_effect(nav, ($0) => ({
1974
+ ...rest,
1975
+ id: $$props.id,
1976
+ role: "navigation",
1977
+ "aria-labelledby": `${$$props.id}-label`,
1978
+ "data-cinder-orientation": orientation(),
1979
+ "data-cinder-size": $16.get(effectiveSize),
1980
+ "data-cinder-density": $$props.density === "toolbar" ? "toolbar" : undefined,
1981
+ "data-cinder-selection-mode": selectionMode(),
1982
+ "data-cinder-detached": detached() ? "" : undefined,
1983
+ "data-cinder-full-width": fullWidth() ? "" : undefined,
1984
+ "data-cinder-variant": $16.get(effectiveVariant),
1985
+ class: $0
1986
+ }), [() => classNames("cinder-segmented-control", $$props.class)]);
1987
+ var node_1 = $16.child(nav);
1988
+ $16.snippet(node_1, () => $$props.children);
1989
+ $16.reset(nav);
1990
+ $16.append($$anchor2, nav);
1991
+ };
1992
+ var alternate = ($$anchor2) => {
1993
+ var div_1 = root_16();
1994
+ var event_handler = (event) => controller.handleKeydown(event);
1995
+ $16.attribute_effect(div_1, ($0) => ({
1996
+ ...rest,
1997
+ id: $$props.id,
1998
+ role: $16.get(groupRole),
1999
+ "aria-labelledby": `${$$props.id}-label`,
2000
+ "aria-disabled": disabled() ? "true" : undefined,
2001
+ "aria-orientation": selectionMode() === "single" ? orientation() : undefined,
2002
+ "data-cinder-orientation": orientation(),
2003
+ "data-cinder-size": $16.get(effectiveSize),
2004
+ "data-cinder-density": $$props.density === "toolbar" ? "toolbar" : undefined,
2005
+ "data-cinder-selection-mode": selectionMode(),
2006
+ "data-cinder-detached": detached() ? "" : undefined,
2007
+ "data-cinder-full-width": fullWidth() ? "" : undefined,
2008
+ "data-cinder-variant": $16.get(effectiveVariant),
2009
+ class: $0,
2010
+ onkeydown: event_handler
2011
+ }), [() => classNames("cinder-segmented-control", $$props.class)]);
2012
+ var node_2 = $16.child(div_1);
2013
+ $16.snippet(node_2, () => $$props.children);
2014
+ $16.reset(div_1);
2015
+ $16.append($$anchor2, div_1);
2016
+ };
2017
+ $16.if(node, ($$render) => {
2018
+ if ($16.get(rendersNavigation))
2019
+ $$render(consequent);
2020
+ else
2021
+ $$render(alternate, -1);
2022
+ });
2023
+ }
2024
+ var node_3 = $16.sibling(node, 2);
2025
+ {
2026
+ var consequent_1 = ($$anchor2) => {
2027
+ var fragment = root_35();
1928
2028
  var input_1 = $16.first_child(fragment);
1929
2029
  $16.bind_this(input_1, ($$value) => $16.set(resetInputElement, $$value), () => $16.get(resetInputElement));
1930
- var node_2 = $16.sibling(input_1, 2);
1931
- $16.each(node_2, 16, () => $16.get(selectedValues), (selectedValue) => selectedValue, ($$anchor3, selectedValue) => {
1932
- var input_2 = root10();
2030
+ var node_4 = $16.sibling(input_1, 2);
2031
+ $16.each(node_4, 16, () => $16.get(selectedValues), (selectedValue) => selectedValue, ($$anchor3, selectedValue) => {
2032
+ var input_2 = root_25();
1933
2033
  $16.remove_input_defaults(input_2);
1934
2034
  $16.template_effect(() => {
1935
2035
  $16.set_attribute(input_2, "name", $$props.name);
@@ -1940,9 +2040,9 @@ function Segmented_control($$anchor, $$props) {
1940
2040
  });
1941
2041
  $16.append($$anchor2, fragment);
1942
2042
  };
1943
- $16.if(node_1, ($$render) => {
1944
- if ($$props.name)
1945
- $$render(consequent);
2043
+ $16.if(node_3, ($$render) => {
2044
+ if ($$props.name && !$16.get(rendersNavigation))
2045
+ $$render(consequent_1);
1946
2046
  });
1947
2047
  }
1948
2048
  $16.reset(div);
@@ -2055,8 +2155,8 @@ var rest_excludes10 = new Set([
2055
2155
  var root12 = $20.from_html(`<!> <!> <!>`, 1);
2056
2156
  var root_17 = $20.from_html(`<span class="no-changes svelte-1p8ursg">No changes</span>`);
2057
2157
  var root_26 = $20.from_html(`<!> Revert All`, 1);
2058
- var root_34 = $20.from_html(`<!> Compute Diff`, 1);
2059
- var root_43 = $20.from_html(`<div class="navigation svelte-1p8ursg"><!> <span class="change-counter svelte-1p8ursg"> </span> <!></div> <div class="shortcuts svelte-1p8ursg"><!> <!></div>`, 1);
2158
+ var root_36 = $20.from_html(`<!> Compute Diff`, 1);
2159
+ var root_45 = $20.from_html(`<div class="navigation svelte-1p8ursg"><!> <span class="change-counter svelte-1p8ursg"> </span> <!></div> <div class="shortcuts svelte-1p8ursg"><!> <!></div>`, 1);
2060
2160
  var root_53 = $20.from_html(`<span class="front-matter-only-hint svelte-1p8ursg">Front matter only</span>`);
2061
2161
  var root_62 = $20.from_html(`<div><div class="toolbar-left svelte-1p8ursg"><!> <div class="stats svelte-1p8ursg"><!> <!> <!> <!> <!> <!></div></div> <div class="toolbar-right svelte-1p8ursg"><!> <!> <!> <!></div></div>`);
2062
2162
  function Diff_toolbar($$anchor, $$props) {
@@ -2275,7 +2375,7 @@ function Diff_toolbar($$anchor, $$props) {
2275
2375
  return $20.get(isComputing);
2276
2376
  },
2277
2377
  children: ($$anchor3, $$slotProps) => {
2278
- var fragment_13 = root_34();
2378
+ var fragment_13 = root_36();
2279
2379
  var node_15 = $20.first_child(fragment_13);
2280
2380
  Refresh_cw(node_15, { class: "cinder-icon-sm" });
2281
2381
  $20.next();
@@ -2296,7 +2396,7 @@ function Diff_toolbar($$anchor, $$props) {
2296
2396
  var node_17 = $20.first_child(fragment_14);
2297
2397
  {
2298
2398
  var consequent_9 = ($$anchor3) => {
2299
- var fragment_15 = root_43();
2399
+ var fragment_15 = root_45();
2300
2400
  var div_4 = $20.first_child(fragment_15);
2301
2401
  var node_18 = $20.child(div_4);
2302
2402
  Button(node_18, {
@@ -2378,8 +2478,8 @@ function Diff_toolbar($$anchor, $$props) {
2378
2478
  var root13 = $21.from_html(`<span class="compute-time svelte-1fvc2en"> </span>`);
2379
2479
  var root_18 = $21.from_html(`<div class="diff-warning svelte-1fvc2en" role="status"> <!></div>`);
2380
2480
  var root_27 = $21.from_html(`<!> Revert`, 1);
2381
- var root_35 = $21.from_html(`<div class="hunk-header svelte-1fvc2en"><span class="hunk-range svelte-1fvc2en"> </span> <!></div>`);
2382
- var root_44 = $21.from_html(`<!> <!>`, 1);
2481
+ var root_37 = $21.from_html(`<div class="hunk-header svelte-1fvc2en"><span class="hunk-range svelte-1fvc2en"> </span> <!></div>`);
2482
+ var root_46 = $21.from_html(`<!> <!>`, 1);
2383
2483
  var root_54 = $21.from_html(`<!> <!> <div class="diff-content svelte-1fvc2en"><!> <!></div>`, 1);
2384
2484
  function Diff_viewer($$anchor, $$props) {
2385
2485
  const instanceId = $21.props_id();
@@ -2680,11 +2780,11 @@ ${match[1] ?? ""}
2680
2780
  $21.each(node_7, 17, () => $21.get(lineDiffs), $21.index, ($$anchor3, lineDiff, idx) => {
2681
2781
  const isSelected = $21.derived(() => $21.get(selectedLineIndex) === idx);
2682
2782
  const hunkAtLine = $21.derived(() => $21.get(hunkStartMap).get(idx));
2683
- var fragment_7 = root_44();
2783
+ var fragment_7 = root_46();
2684
2784
  var node_8 = $21.first_child(fragment_7);
2685
2785
  {
2686
2786
  var consequent_5 = ($$anchor4) => {
2687
- var div_2 = root_35();
2787
+ var div_2 = root_37();
2688
2788
  var span_1 = $21.child(div_2);
2689
2789
  var text_2 = $21.child(span_1);
2690
2790
  $21.reset(span_1);
@@ -2745,4 +2845,4 @@ export {
2745
2845
  Diff_viewer as DiffViewer
2746
2846
  };
2747
2847
 
2748
- //# debugId=D8CD827CC357804664756E2164756E21
2848
+ //# debugId=FA46603BE613BE0864756E2164756E21