@nowline/layout 0.0.0-dev.20260601071750.g04bdff9

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 (193) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +103 -0
  3. package/dist/band-scale.d.ts +56 -0
  4. package/dist/band-scale.d.ts.map +1 -0
  5. package/dist/band-scale.js +86 -0
  6. package/dist/band-scale.js.map +1 -0
  7. package/dist/calendar.d.ts +79 -0
  8. package/dist/calendar.d.ts.map +1 -0
  9. package/dist/calendar.js +210 -0
  10. package/dist/calendar.js.map +1 -0
  11. package/dist/capacity.d.ts +72 -0
  12. package/dist/capacity.d.ts.map +1 -0
  13. package/dist/capacity.js +163 -0
  14. package/dist/capacity.js.map +1 -0
  15. package/dist/dsl-utils.d.ts +5 -0
  16. package/dist/dsl-utils.d.ts.map +1 -0
  17. package/dist/dsl-utils.js +28 -0
  18. package/dist/dsl-utils.js.map +1 -0
  19. package/dist/edge-routing.d.ts +89 -0
  20. package/dist/edge-routing.d.ts.map +1 -0
  21. package/dist/edge-routing.js +435 -0
  22. package/dist/edge-routing.js.map +1 -0
  23. package/dist/frame-tab-geometry.d.ts +78 -0
  24. package/dist/frame-tab-geometry.d.ts.map +1 -0
  25. package/dist/frame-tab-geometry.js +115 -0
  26. package/dist/frame-tab-geometry.js.map +1 -0
  27. package/dist/header-card-geometry.d.ts +29 -0
  28. package/dist/header-card-geometry.d.ts.map +1 -0
  29. package/dist/header-card-geometry.js +41 -0
  30. package/dist/header-card-geometry.js.map +1 -0
  31. package/dist/i18n.d.ts +48 -0
  32. package/dist/i18n.d.ts.map +1 -0
  33. package/dist/i18n.js +114 -0
  34. package/dist/i18n.js.map +1 -0
  35. package/dist/include-chrome-geometry.d.ts +86 -0
  36. package/dist/include-chrome-geometry.d.ts.map +1 -0
  37. package/dist/include-chrome-geometry.js +104 -0
  38. package/dist/include-chrome-geometry.js.map +1 -0
  39. package/dist/index.d.ts +11 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +10 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/inline-date-pin-geometry.d.ts +46 -0
  44. package/dist/inline-date-pin-geometry.d.ts.map +1 -0
  45. package/dist/inline-date-pin-geometry.js +149 -0
  46. package/dist/inline-date-pin-geometry.js.map +1 -0
  47. package/dist/item-bar-geometry.d.ts +157 -0
  48. package/dist/item-bar-geometry.d.ts.map +1 -0
  49. package/dist/item-bar-geometry.js +214 -0
  50. package/dist/item-bar-geometry.js.map +1 -0
  51. package/dist/lane-utilization.d.ts +90 -0
  52. package/dist/lane-utilization.d.ts.map +1 -0
  53. package/dist/lane-utilization.js +206 -0
  54. package/dist/lane-utilization.js.map +1 -0
  55. package/dist/layout-context.d.ts +143 -0
  56. package/dist/layout-context.d.ts.map +1 -0
  57. package/dist/layout-context.js +8 -0
  58. package/dist/layout-context.js.map +1 -0
  59. package/dist/layout.d.ts +18 -0
  60. package/dist/layout.d.ts.map +1 -0
  61. package/dist/layout.js +1298 -0
  62. package/dist/layout.js.map +1 -0
  63. package/dist/nodes/anchor-node.d.ts +16 -0
  64. package/dist/nodes/anchor-node.d.ts.map +1 -0
  65. package/dist/nodes/anchor-node.js +68 -0
  66. package/dist/nodes/anchor-node.js.map +1 -0
  67. package/dist/nodes/footnote-node.d.ts +10 -0
  68. package/dist/nodes/footnote-node.d.ts.map +1 -0
  69. package/dist/nodes/footnote-node.js +41 -0
  70. package/dist/nodes/footnote-node.js.map +1 -0
  71. package/dist/nodes/group-node.d.ts +29 -0
  72. package/dist/nodes/group-node.d.ts.map +1 -0
  73. package/dist/nodes/group-node.js +195 -0
  74. package/dist/nodes/group-node.js.map +1 -0
  75. package/dist/nodes/include-node.d.ts +16 -0
  76. package/dist/nodes/include-node.d.ts.map +1 -0
  77. package/dist/nodes/include-node.js +117 -0
  78. package/dist/nodes/include-node.js.map +1 -0
  79. package/dist/nodes/item-node.d.ts +51 -0
  80. package/dist/nodes/item-node.d.ts.map +1 -0
  81. package/dist/nodes/item-node.js +108 -0
  82. package/dist/nodes/item-node.js.map +1 -0
  83. package/dist/nodes/marker-geometry.d.ts +22 -0
  84. package/dist/nodes/marker-geometry.d.ts.map +1 -0
  85. package/dist/nodes/marker-geometry.js +38 -0
  86. package/dist/nodes/marker-geometry.js.map +1 -0
  87. package/dist/nodes/milestone-node.d.ts +48 -0
  88. package/dist/nodes/milestone-node.d.ts.map +1 -0
  89. package/dist/nodes/milestone-node.js +210 -0
  90. package/dist/nodes/milestone-node.js.map +1 -0
  91. package/dist/nodes/parallel-node.d.ts +21 -0
  92. package/dist/nodes/parallel-node.d.ts.map +1 -0
  93. package/dist/nodes/parallel-node.js +88 -0
  94. package/dist/nodes/parallel-node.js.map +1 -0
  95. package/dist/nodes/roadmap-node.d.ts +76 -0
  96. package/dist/nodes/roadmap-node.d.ts.map +1 -0
  97. package/dist/nodes/roadmap-node.js +788 -0
  98. package/dist/nodes/roadmap-node.js.map +1 -0
  99. package/dist/nodes/swimlane-node.d.ts +38 -0
  100. package/dist/nodes/swimlane-node.d.ts.map +1 -0
  101. package/dist/nodes/swimlane-node.js +308 -0
  102. package/dist/nodes/swimlane-node.js.map +1 -0
  103. package/dist/renderable.d.ts +44 -0
  104. package/dist/renderable.d.ts.map +1 -0
  105. package/dist/renderable.js +21 -0
  106. package/dist/renderable.js.map +1 -0
  107. package/dist/row-packer.d.ts +125 -0
  108. package/dist/row-packer.d.ts.map +1 -0
  109. package/dist/row-packer.js +169 -0
  110. package/dist/row-packer.js.map +1 -0
  111. package/dist/style-resolution.d.ts +14 -0
  112. package/dist/style-resolution.d.ts.map +1 -0
  113. package/dist/style-resolution.js +191 -0
  114. package/dist/style-resolution.js.map +1 -0
  115. package/dist/themes/dark.d.ts +4 -0
  116. package/dist/themes/dark.d.ts.map +1 -0
  117. package/dist/themes/dark.js +241 -0
  118. package/dist/themes/dark.js.map +1 -0
  119. package/dist/themes/grayscale.d.ts +4 -0
  120. package/dist/themes/grayscale.d.ts.map +1 -0
  121. package/dist/themes/grayscale.js +237 -0
  122. package/dist/themes/grayscale.js.map +1 -0
  123. package/dist/themes/index.d.ts +19 -0
  124. package/dist/themes/index.d.ts.map +1 -0
  125. package/dist/themes/index.js +57 -0
  126. package/dist/themes/index.js.map +1 -0
  127. package/dist/themes/light.d.ts +4 -0
  128. package/dist/themes/light.d.ts.map +1 -0
  129. package/dist/themes/light.js +248 -0
  130. package/dist/themes/light.js.map +1 -0
  131. package/dist/themes/shape.d.ts +194 -0
  132. package/dist/themes/shape.d.ts.map +1 -0
  133. package/dist/themes/shape.js +6 -0
  134. package/dist/themes/shape.js.map +1 -0
  135. package/dist/themes/shared.d.ts +145 -0
  136. package/dist/themes/shared.d.ts.map +1 -0
  137. package/dist/themes/shared.js +310 -0
  138. package/dist/themes/shared.js.map +1 -0
  139. package/dist/time-scale.d.ts +39 -0
  140. package/dist/time-scale.d.ts.map +1 -0
  141. package/dist/time-scale.js +62 -0
  142. package/dist/time-scale.js.map +1 -0
  143. package/dist/types.d.ts +516 -0
  144. package/dist/types.d.ts.map +1 -0
  145. package/dist/types.js +6 -0
  146. package/dist/types.js.map +1 -0
  147. package/dist/view-preset.d.ts +23 -0
  148. package/dist/view-preset.d.ts.map +1 -0
  149. package/dist/view-preset.js +146 -0
  150. package/dist/view-preset.js.map +1 -0
  151. package/dist/working-calendar.d.ts +14 -0
  152. package/dist/working-calendar.d.ts.map +1 -0
  153. package/dist/working-calendar.js +74 -0
  154. package/dist/working-calendar.js.map +1 -0
  155. package/package.json +43 -0
  156. package/src/band-scale.ts +115 -0
  157. package/src/calendar.ts +244 -0
  158. package/src/capacity.ts +191 -0
  159. package/src/dsl-utils.ts +30 -0
  160. package/src/edge-routing.ts +550 -0
  161. package/src/frame-tab-geometry.ts +165 -0
  162. package/src/header-card-geometry.ts +48 -0
  163. package/src/i18n.ts +124 -0
  164. package/src/include-chrome-geometry.ts +156 -0
  165. package/src/index.ts +118 -0
  166. package/src/inline-date-pin-geometry.ts +196 -0
  167. package/src/item-bar-geometry.ts +271 -0
  168. package/src/lane-utilization.ts +259 -0
  169. package/src/layout-context.ts +182 -0
  170. package/src/layout.ts +1530 -0
  171. package/src/nodes/anchor-node.ts +77 -0
  172. package/src/nodes/footnote-node.ts +60 -0
  173. package/src/nodes/group-node.ts +260 -0
  174. package/src/nodes/include-node.ts +168 -0
  175. package/src/nodes/item-node.ts +171 -0
  176. package/src/nodes/marker-geometry.ts +43 -0
  177. package/src/nodes/milestone-node.ts +263 -0
  178. package/src/nodes/parallel-node.ts +110 -0
  179. package/src/nodes/roadmap-node.ts +957 -0
  180. package/src/nodes/swimlane-node.ts +423 -0
  181. package/src/renderable.ts +68 -0
  182. package/src/row-packer.ts +271 -0
  183. package/src/style-resolution.ts +243 -0
  184. package/src/themes/dark.ts +244 -0
  185. package/src/themes/grayscale.ts +240 -0
  186. package/src/themes/index.ts +66 -0
  187. package/src/themes/light.ts +251 -0
  188. package/src/themes/shape.ts +230 -0
  189. package/src/themes/shared.ts +369 -0
  190. package/src/time-scale.ts +78 -0
  191. package/src/types.ts +641 -0
  192. package/src/view-preset.ts +180 -0
  193. package/src/working-calendar.ts +91 -0
@@ -0,0 +1,194 @@
1
+ import type { BorderKind, BracketKind, FontFamily, FontWeight, ShadowKind } from '../types.js';
2
+ export interface EntityStyle {
3
+ bg: string;
4
+ fg: string;
5
+ text: string;
6
+ border: BorderKind;
7
+ icon: string;
8
+ shadow: ShadowKind;
9
+ font: FontFamily;
10
+ weight: FontWeight;
11
+ italic: boolean;
12
+ textSize: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
13
+ padding: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
14
+ spacing: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
15
+ headerHeight: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
16
+ cornerRadius: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
17
+ bracket: BracketKind;
18
+ capacityIcon: string;
19
+ }
20
+ export interface Theme {
21
+ name: 'light' | 'dark' | string;
22
+ surface: {
23
+ page: string;
24
+ chart: string;
25
+ headerBox: string;
26
+ };
27
+ entities: {
28
+ roadmap: EntityStyle;
29
+ swimlane: EntityStyle;
30
+ item: EntityStyle;
31
+ parallel: EntityStyle;
32
+ group: EntityStyle;
33
+ anchor: EntityStyle;
34
+ milestone: EntityStyle;
35
+ footnote: EntityStyle;
36
+ label: EntityStyle;
37
+ };
38
+ swimlane: {
39
+ bandEven: string;
40
+ bandOdd: string;
41
+ separator: string;
42
+ frameTabText: string;
43
+ frameTabMuted: string;
44
+ border: string;
45
+ tabFill: string;
46
+ tabStroke: string;
47
+ tabText: string;
48
+ ownerText: string;
49
+ footnoteIndicator: string;
50
+ rowTintEven: string;
51
+ rowTintOdd: string;
52
+ utilizationOk: string;
53
+ utilizationWarn: string;
54
+ utilizationOver: string;
55
+ };
56
+ timeline: {
57
+ gridLine: string;
58
+ minorGridLine: string;
59
+ tickMark: string;
60
+ labelText: string;
61
+ panelFill: string;
62
+ border: string;
63
+ };
64
+ header: {
65
+ cardBorder: string;
66
+ author: string;
67
+ };
68
+ item: {
69
+ overflowX: string;
70
+ linkIconFg: string;
71
+ overflowTailFill: string;
72
+ overflowTailStroke: string;
73
+ overflowCaption: string;
74
+ };
75
+ parallel: {
76
+ bracketStroke: string;
77
+ };
78
+ anchorDiamond: {
79
+ fill: string;
80
+ stroke: string;
81
+ label: string;
82
+ cutLine: string;
83
+ };
84
+ milestoneDiamond: {
85
+ fill: string;
86
+ label: string;
87
+ cutLineNormal: string;
88
+ cutLineOverrun: string;
89
+ slack: string;
90
+ };
91
+ footnotePanel: {
92
+ fill: string;
93
+ border: string;
94
+ header: string;
95
+ title: string;
96
+ description: string;
97
+ number: string;
98
+ };
99
+ nowline: {
100
+ stroke: string;
101
+ labelText: string;
102
+ labelBg: string;
103
+ };
104
+ milestone: {
105
+ dashedInk: string;
106
+ overrun: string;
107
+ };
108
+ anchor: {
109
+ predecessorLine: string;
110
+ };
111
+ dependency: {
112
+ edgeStroke: string;
113
+ overflowStroke: string;
114
+ };
115
+ footnote: {
116
+ indicatorText: string;
117
+ descriptionMuted: string;
118
+ };
119
+ includeRegion: {
120
+ border: string;
121
+ label: string;
122
+ badge: string;
123
+ fill: string;
124
+ tabFill: string;
125
+ tabStroke: string;
126
+ tabText: string;
127
+ badgeFill: string;
128
+ badgeStroke: string;
129
+ badgeText: string;
130
+ };
131
+ arrowhead: {
132
+ neutral: string;
133
+ light: string;
134
+ dark: string;
135
+ };
136
+ status: {
137
+ done: string;
138
+ inProgress: string;
139
+ atRisk: string;
140
+ blocked: string;
141
+ planned: string;
142
+ neutral: string;
143
+ };
144
+ /**
145
+ * Upper-right status-dot colors. Two palettes — the renderer
146
+ * picks `onLight` for bars whose effective bg is light/pale and
147
+ * `onDark` for bars whose bg is dark/saturated. This lets the
148
+ * dot stay recognizably status-hued on the pale status-tint
149
+ * bars used by default AND on the saturated mid-tone bars that
150
+ * a label's `style:` ref can paint (e.g. `bg:blue` →
151
+ * `#1e88e5` in light theme, `#60a5fa` in dark theme). Both
152
+ * palettes appear in both themes — bar luminance is independent
153
+ * of overall theme, since a label can tint a bar bright or dark
154
+ * regardless of whether the chart background is light or dark.
155
+ */
156
+ statusDot: {
157
+ onLight: {
158
+ done: string;
159
+ inProgress: string;
160
+ atRisk: string;
161
+ blocked: string;
162
+ planned: string;
163
+ neutral: string;
164
+ };
165
+ onDark: {
166
+ done: string;
167
+ inProgress: string;
168
+ atRisk: string;
169
+ blocked: string;
170
+ planned: string;
171
+ neutral: string;
172
+ };
173
+ };
174
+ attribution: {
175
+ mark: string;
176
+ link: string;
177
+ };
178
+ diagnostic: {
179
+ overlayBg: string;
180
+ errorText: string;
181
+ };
182
+ }
183
+ export interface NamedColors {
184
+ red: string;
185
+ blue: string;
186
+ yellow: string;
187
+ green: string;
188
+ orange: string;
189
+ purple: string;
190
+ gray: string;
191
+ navy: string;
192
+ white: string;
193
+ }
194
+ //# sourceMappingURL=shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/themes/shape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ // The `Theme` interface is the single place that enumerates every role a
2
+ // theme must define. Every theme (light, dark, future custom) imports this
3
+ // and declares `const <name>Theme: Theme = { ... }`. `tsc` refuses to compile
4
+ // if any role is omitted — that's our primary drift-prevention mechanism.
5
+ export {};
6
+ //# sourceMappingURL=shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/themes/shape.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,0EAA0E"}
@@ -0,0 +1,145 @@
1
+ export declare const SPACING_PX: Record<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', number>;
2
+ export declare const PADDING_PX: Record<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', number>;
3
+ export declare const HEADER_HEIGHT_PX: Record<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', number>;
4
+ export declare const TEXT_SIZE_PX: Record<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', number>;
5
+ export declare const CORNER_RADIUS_PX: Record<'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full', number>;
6
+ export declare const LOGO_SIZE_PX: Record<'xs' | 'sm' | 'md' | 'lg' | 'xl', number>;
7
+ export declare const MIN_ITEM_WIDTH = 8;
8
+ export declare const PROGRESS_STRIP_HEIGHT_PX = 4;
9
+ export declare const TIMELINE_TICK_PANEL_HEIGHT_PX = 24;
10
+ /**
11
+ * Baseline Y of the tick-label text relative to the tick panel's top.
12
+ * Approximately vertically centers a 10 pt label in the panel.
13
+ */
14
+ export declare const TIMELINE_TICK_LABEL_BASELINE_OFFSET_PX = 15;
15
+ /**
16
+ * Horizontal breathing room (px) added to a track-block's right edge
17
+ * after sequencing. Applied to `group { ... }` and `parallel { ... }`
18
+ * blocks so successive blocks don't crowd each other. Items butt up
19
+ * against their neighbors (no gutter) — only block boundaries get this
20
+ * gutter.
21
+ */
22
+ export declare const TRACK_BLOCK_TAIL_GUTTER_PX = 8;
23
+ /** Height (px) of the frame-tab chiclet (swimlane + include region). */
24
+ export declare const FRAME_TAB_HEIGHT_PX = 22;
25
+ /** Baseline Y of the chiclet label relative to the tab's top edge. */
26
+ export declare const FRAME_TAB_LABEL_BASELINE_OFFSET_PX = 15;
27
+ /** Height (px) of the group-title chiclet anchored at the box's upper-left. */
28
+ export declare const GROUP_TITLE_TAB_HEIGHT_PX = 16;
29
+ /** Horizontal padding (px) on each side of the title text inside the chiclet. */
30
+ export declare const GROUP_TITLE_TAB_PAD_X_PX = 6;
31
+ /** Vertical gap (px) between the chiclet's bottom edge and the first inner row. */
32
+ export declare const GROUP_TITLE_TAB_GUTTER_PX = 4;
33
+ /** Baseline Y of the chiclet label relative to the chiclet's top edge.
34
+ * Tuned for a 9 pt bold glyph roughly vertically centered in a 16 px tab. */
35
+ export declare const GROUP_TITLE_TAB_LABEL_BASELINE_OFFSET_PX = 11;
36
+ /** Font size (px) of the group-title chiclet label. */
37
+ export declare const GROUP_TITLE_TAB_LABEL_FONT_SIZE_PX = 9;
38
+ /** Approximate per-character width factor used to size the chiclet to its
39
+ * title text. Mirrors the constant used in the renderer's pre-port code
40
+ * so the chiclet hugs short titles without clipping long ones. */
41
+ export declare const GROUP_TITLE_TAB_CHAR_WIDTH_PX = 5.5;
42
+ /** Padding (px) reserved on the inside-bottom of a styled group box before
43
+ * its lower stroke. Symmetric with the chiclet gutter so children breathe
44
+ * on both ends. */
45
+ export declare const GROUP_BOTTOM_PAD_PX = 4;
46
+ /**
47
+ * Vertical space (px) reserved ABOVE a bracket-style (no-fill) group's
48
+ * box to host its overhanging title label. Bracket groups paint their
49
+ * label at `box.y - 2` (baseline) in the renderer — the glyph extent
50
+ * lives entirely ABOVE box.y. Without an explicit reservation, that
51
+ * overhang collides with the previous sibling's bracket-foot when two
52
+ * bracket-titled groups stack in a parallel (the foot ends right where
53
+ * the next label's top would render). The group shifts its own box.y
54
+ * down by this amount so the label has clear space above it; the
55
+ * caller advances by `bracketLabelOverhang + box.height + interRowGap`.
56
+ *
57
+ * Filled-style ("chiclet") groups use `GROUP_TITLE_TAB_HEIGHT_PX +
58
+ * GROUP_TITLE_TAB_GUTTER_PX` instead — the chiclet sits INSIDE the box,
59
+ * so they need no above-box reservation.
60
+ */
61
+ export declare const GROUP_BRACKET_LABEL_OVERHANG_PX = 12;
62
+ /**
63
+ * Dashed-accent pattern (px on / px off) used for two nowline accents
64
+ * that read as "structural emphasis": the milestone vertical cut line
65
+ * and the include-region's dashed border. Coupling them in one constant
66
+ * keeps both surfaces visually in sync.
67
+ *
68
+ * Mirrors the spec samples (`stroke-dasharray="6 4"`).
69
+ */
70
+ export declare const ACCENT_DASH_PATTERN = "6 4";
71
+ /** Width (px) of the rounded "now" pill above the now-line. */
72
+ export declare const NOW_PILL_WIDTH_PX = 36;
73
+ /** Height (px) of the rounded "now" pill. Matches the pill row band
74
+ * reserved at the top of the timeline. */
75
+ export declare const NOW_PILL_HEIGHT_PX = 16;
76
+ /** Corner radius (px) of the pill — half of `NOW_PILL_HEIGHT_PX` so
77
+ * the rect renders as a fully-rounded chiclet. */
78
+ export declare const NOW_PILL_CORNER_RADIUS_PX: number;
79
+ /** Font size (px) of the "now" label inside the pill. */
80
+ export declare const NOW_PILL_LABEL_FONT_SIZE_PX = 10;
81
+ /** Baseline offset (px) of the label text from the pill's top edge.
82
+ * Tuned to vertically center a 10 pt bold glyph in a 16 px pill. */
83
+ export declare const NOW_PILL_LABEL_BASELINE_OFFSET_PX: number;
84
+ /**
85
+ * Horizontal inset (px) of the "now" label from the pill's squared
86
+ * edge in flag mode. In `flag-right` mode the label sits at
87
+ * `squaredEdgeX + INSET` (left-aligned past the line); in `flag-left`
88
+ * mode at `squaredEdgeX - INSET` (right-aligned before the line).
89
+ * Center mode ignores this — the label sits at `nowX` with
90
+ * `text-anchor=middle`.
91
+ */
92
+ export declare const NOW_PILL_LABEL_INSET_X_PX = 6;
93
+ /**
94
+ * Stroke width (px) of the now-line. Shared between the line itself
95
+ * and the flag-mode pill geometry so the squared edge of the pill
96
+ * lines up with the OUTER edge of the line stroke (SVG strokes are
97
+ * centered on their geometry, so without this offset the line
98
+ * stroke peeks past the pill's squared edge by half-stroke).
99
+ */
100
+ export declare const NOWLINE_STROKE_WIDTH_PX = 2.25;
101
+ export declare const ITEM_INSET_PX = 6;
102
+ export declare const GUTTER_PX: number;
103
+ export declare const DEFAULT_PIXELS_PER_DAY = 5;
104
+ export declare const HEADER_BESIDE_MIN_WIDTH_PX = 120;
105
+ export declare const HEADER_BESIDE_MAX_WIDTH_PX = 240;
106
+ export declare const HEADER_ABOVE_HEIGHT_PX = 72;
107
+ /** Height (px) of the header band above the entry rows. */
108
+ export declare const FOOTNOTE_HEADER_HEIGHT_PX = 28;
109
+ /**
110
+ * Single padding value (px) reused as: left/right text inset, bottom
111
+ * padding under the last row, gap between the header band and the
112
+ * first entry, and gap between the number column and the title column.
113
+ * Bumping it changes every footnote panel inset consistently.
114
+ */
115
+ export declare const FOOTNOTE_PANEL_PADDING_PX = 16;
116
+ /** Baseline Y of the "Footnotes" header text relative to the panel top. */
117
+ export declare const FOOTNOTE_HEADER_BASELINE_OFFSET_PX = 22;
118
+ /** Baseline-to-baseline spacing between footnote entry rows. */
119
+ export declare const FOOTNOTE_ROW_HEIGHT = 18;
120
+ export declare const ATTRIBUTION_TEXT = "Powered by";
121
+ export declare const ATTRIBUTION_LINK = "https://nowline.io";
122
+ export declare const ATTRIBUTION_SCALE = 0.22;
123
+ export declare const ATTRIBUTION_WORDMARK_FONT_SIZE = 40;
124
+ export declare const ATTRIBUTION_PREFIX_FONT_SIZE = 32;
125
+ export declare const ATTRIBUTION_PREFIX_LOGICAL_WIDTH: number;
126
+ export declare const ATTRIBUTION_PREFIX_TO_WORDMARK_GAP = 10;
127
+ export declare const ATTRIBUTION_NOW_LOGICAL_X: number;
128
+ export declare const ATTRIBUTION_BAR_LOGICAL_X: number;
129
+ export declare const ATTRIBUTION_BAR_LOGICAL_WIDTH = 5;
130
+ export declare const ATTRIBUTION_INE_LOGICAL_X: number;
131
+ export declare const ATTRIBUTION_INE_LOGICAL_WIDTH: number;
132
+ export declare const ATTRIBUTION_GLYPH_LOGICAL_WIDTH: number;
133
+ export declare const ATTRIBUTION_GLYPH_LOGICAL_HEIGHT: number;
134
+ export declare const ATTRIBUTION_GLYPH_WIDTH: number;
135
+ export declare const ATTRIBUTION_GLYPH_HEIGHT: number;
136
+ export declare const EDGE_CORNER_RADIUS = 4;
137
+ export declare const SHADOW_PARAMS: Record<'none' | 'subtle' | 'soft' | 'hard', {
138
+ dx: number;
139
+ dy: number;
140
+ stdDeviation: number;
141
+ opacity: number;
142
+ }>;
143
+ export declare const FONT_STACK: Record<'sans' | 'serif' | 'mono', string>;
144
+ export declare const LABEL_THINNING: Record<'days' | 'weeks' | 'months' | 'quarters' | 'years', number>;
145
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/themes/shared.ts"],"names":[],"mappings":"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"}