@bookklik/senangstart-css 0.2.7 → 0.2.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.
@@ -13,6 +13,9 @@
13
13
  // Core module imports (bundled by esbuild)
14
14
  import { BREAKPOINTS, STATES } from '../core/constants.js';
15
15
  import { tokenize } from '../core/tokenizer-core.js';
16
+ import { generatePreflight } from '../compiler/generators/preflight.js';
17
+ import { sanitizeValue } from '../utils/common.js';
18
+ import { buildAllMaps } from '../definitions/index.js';
16
19
 
17
20
  (function() {
18
21
  'use strict';
@@ -497,271 +500,14 @@ import { tokenize } from '../core/tokenizer-core.js';
497
500
  // PREFLIGHT GENERATOR
498
501
  // ============================================
499
502
 
500
- function generatePreflight() {
501
- return `/* SenangStart Preflight - Opinionated Base Styles */
502
- *,
503
- ::before,
504
- ::after {
505
- box-sizing: border-box;
506
- border-width: 0;
507
- border-style: solid;
508
- border-color: currentColor;
509
- }
510
-
511
- html, :host {
512
- line-height: 1.5;
513
- -webkit-text-size-adjust: 100%;
514
- -moz-tab-size: 4;
515
- tab-size: 4;
516
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
517
- font-feature-settings: normal;
518
- font-variation-settings: normal;
519
- -webkit-tap-highlight-color: transparent;
520
- }
521
-
522
- body {
523
- margin: 0;
524
- line-height: inherit;
525
- }
526
-
527
- hr {
528
- height: 0;
529
- color: inherit;
530
- border-top-width: 1px;
531
- }
532
-
533
- h1, h2, h3, h4, h5, h6 {
534
- font-size: inherit;
535
- font-weight: inherit;
536
- }
537
-
538
- a {
539
- color: inherit;
540
- text-decoration: inherit;
541
- }
542
-
543
- b, strong {
544
- font-weight: bolder;
545
- }
546
-
547
- code, kbd, samp, pre {
548
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
549
- font-size: 1em;
550
- }
551
-
552
- small {
553
- font-size: 80%;
554
- }
555
-
556
- sub, sup {
557
- font-size: 75%;
558
- line-height: 0;
559
- position: relative;
560
- vertical-align: baseline;
561
- }
562
-
563
- sub { bottom: -0.25em; }
564
- sup { top: -0.5em; }
565
-
566
- table {
567
- text-indent: 0;
568
- border-color: inherit;
569
- border-collapse: collapse;
570
- }
571
-
572
- button, input, optgroup, select, textarea {
573
- font-family: inherit;
574
- font-size: 100%;
575
- font-weight: inherit;
576
- line-height: inherit;
577
- color: inherit;
578
- margin: 0;
579
- padding: 0;
580
- }
581
-
582
- button, select {
583
- text-transform: none;
584
- }
585
-
586
- button,
587
- input:where([type='button']),
588
- input:where([type='reset']),
589
- input:where([type='submit']) {
590
- -webkit-appearance: button;
591
- background-color: transparent;
592
- background-image: none;
593
- }
594
-
595
- progress {
596
- vertical-align: baseline;
597
- }
598
-
599
- [type='search'] {
600
- -webkit-appearance: textfield;
601
- outline-offset: -2px;
602
- }
603
-
604
- summary {
605
- display: list-item;
606
- }
607
-
608
- blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {
609
- margin: 0;
610
- }
611
-
612
- fieldset { margin: 0; padding: 0; }
613
- legend { padding: 0; }
614
-
615
- ol, ul, menu {
616
- list-style: none;
617
- margin: 0;
618
- padding: 0;
619
- }
620
-
621
- dialog { padding: 0; }
622
-
623
- textarea { resize: vertical; }
624
-
625
- input::placeholder, textarea::placeholder {
626
- opacity: 1;
627
- color: #9ca3af;
628
- }
629
-
630
- button, [role="button"] {
631
- cursor: pointer;
632
- }
633
-
634
- :disabled {
635
- cursor: default;
636
- }
637
-
638
- img, svg, video, canvas, audio, iframe, embed, object {
639
- display: block;
640
- vertical-align: middle;
641
- }
642
-
643
- img, video {
644
- max-width: 100%;
645
- height: auto;
646
- }
647
-
648
- [hidden] {
649
- display: none;
650
- }
651
-
652
- /* Keyframe Animations */
653
- @keyframes spin {
654
- to { transform: rotate(360deg); }
655
- }
656
-
657
- @keyframes ping {
658
- 75%, 100% {
659
- transform: scale(2);
660
- opacity: 0;
661
- }
662
- }
663
-
664
- @keyframes pulse {
665
- 50% { opacity: .5; }
666
- }
667
-
668
- @keyframes bounce {
669
- 0%, 100% {
670
- transform: translateY(-25%);
671
- animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
672
- }
673
- 50% {
674
- transform: none;
675
- animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
676
- }
677
- }
678
-
679
- `;
680
- }
503
+ // Preflight generator imported from compiler/generators/preflight.js
681
504
 
682
505
  // ============================================
683
506
  // LAYOUT KEYWORDS
684
507
  // ============================================
685
508
 
686
- const layoutKeywords = {
687
- // Display
688
- 'flex': 'display: flex;',
689
- 'grid': 'display: grid;',
690
- 'inline-flex': 'display: inline-flex;',
691
- 'inline-grid': 'display: inline-grid;',
692
- 'block': 'display: block;',
693
- 'inline': 'display: inline-block;',
694
- 'hidden': 'display: none;',
695
-
696
- // Flex Direction
697
- 'row': 'flex-direction: row;',
698
- 'col': 'flex-direction: column;',
699
- 'row-reverse': 'flex-direction: row-reverse;',
700
- 'col-reverse': 'flex-direction: column-reverse;',
701
-
702
- // Flex Wrap
703
- 'wrap': 'flex-wrap: wrap;',
704
- 'nowrap': 'flex-wrap: nowrap;',
705
- 'wrap-reverse': 'flex-wrap: wrap-reverse;',
706
-
707
- // Flex Item
708
- 'grow': 'flex-grow: 1;',
709
- 'grow-0': 'flex-grow: 0;',
710
- 'shrink': 'flex-shrink: 1;',
711
- 'shrink-0': 'flex-shrink: 0;',
712
-
713
- // Grid Auto Flow
714
- 'grid-flow-row': 'grid-auto-flow: row;',
715
- 'grid-flow-col': 'grid-auto-flow: column;',
716
- 'grid-flow-dense': 'grid-auto-flow: dense;',
717
- 'grid-flow-row-dense': 'grid-auto-flow: row dense;',
718
- 'grid-flow-col-dense': 'grid-auto-flow: column dense;',
719
-
720
- // Shorthand Alignment (backwards compat - simple keywords)
721
- 'center': 'justify-content: center; align-items: center;',
722
- 'start': 'justify-content: flex-start; align-items: flex-start;',
723
- 'end': 'justify-content: flex-end; align-items: flex-end;',
724
- 'between': 'justify-content: space-between;',
725
- 'around': 'justify-content: space-around;',
726
- 'evenly': 'justify-content: space-evenly;',
727
-
728
- // Position
729
- 'absolute': 'position: absolute;',
730
- 'relative': 'position: relative;',
731
- 'fixed': 'position: fixed;',
732
- 'sticky': 'position: sticky;',
733
- 'static': 'position: static;',
734
-
735
- // Visibility
736
- 'visible': 'visibility: visible;',
737
- 'invisible': 'visibility: hidden;',
738
-
739
- // Isolation
740
- 'isolate': 'isolation: isolate;',
741
- 'isolate-auto': 'isolation: auto;',
742
-
743
- // Box Sizing
744
- 'box-border': 'box-sizing: border-box;',
745
- 'box-content': 'box-sizing: content-box;',
746
-
747
- // Float
748
- 'float-left': 'float: left;',
749
- 'float-right': 'float: right;',
750
- 'float-none': 'float: none;',
751
-
752
- // Clear
753
- 'clear-left': 'clear: left;',
754
- 'clear-right': 'clear: right;',
755
- 'clear-both': 'clear: both;',
756
- 'clear-none': 'clear: none;',
757
-
758
- // Container
759
- 'container': 'width: 100%; margin-left: auto; margin-right: auto;',
760
-
761
- // Table Border Collapse
762
- 'border-collapse': 'border-collapse: collapse;',
763
- 'border-separate': 'border-collapse: separate;'
764
- };
509
+ // Initialize maps from definitions - Single Source of Truth
510
+ const { layoutMap: layoutKeywords, typographyKeywords } = buildAllMaps();
765
511
 
766
512
  // ============================================
767
513
  // RULE GENERATORS
@@ -1185,98 +931,10 @@ img, video {
1185
931
  const { property, value, isArbitrary } = token;
1186
932
 
1187
933
  // Static typography keywords
1188
- const typographyKeywords = {
1189
- // Font Style
1190
- 'italic': 'font-style: italic;',
1191
- 'not-italic': 'font-style: normal;',
1192
-
1193
- // Font Stretch
1194
- 'font-stretch-condensed': 'font-stretch: condensed;',
1195
- 'font-stretch-expanded': 'font-stretch: expanded;',
1196
- 'font-stretch-normal': 'font-stretch: normal;',
1197
-
1198
- // Font Smoothing
1199
- 'antialiased': '-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;',
1200
- 'subpixel-antialiased': '-webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto;',
1201
-
1202
- // Font Variant Numeric
1203
- 'normal-nums': 'font-variant-numeric: normal;',
1204
- 'ordinal': 'font-variant-numeric: ordinal;',
1205
- 'slashed-zero': 'font-variant-numeric: slashed-zero;',
1206
- 'lining-nums': 'font-variant-numeric: lining-nums;',
1207
- 'oldstyle-nums': 'font-variant-numeric: oldstyle-nums;',
1208
- 'proportional-nums': 'font-variant-numeric: proportional-nums;',
1209
- 'tabular-nums': 'font-variant-numeric: tabular-nums;',
1210
-
1211
- // Text Transform
1212
- 'uppercase': 'text-transform: uppercase;',
1213
- 'lowercase': 'text-transform: lowercase;',
1214
- 'capitalize': 'text-transform: capitalize;',
1215
- 'normal-case': 'text-transform: none;',
1216
-
1217
- // Text Decoration Line
1218
- 'underline': 'text-decoration-line: underline;',
1219
- 'overline': 'text-decoration-line: overline;',
1220
- 'line-through': 'text-decoration-line: line-through;',
1221
- 'no-underline': 'text-decoration-line: none;',
1222
-
1223
- // Text Decoration Style
1224
- 'decoration-solid': 'text-decoration-style: solid;',
1225
- 'decoration-double': 'text-decoration-style: double;',
1226
- 'decoration-dotted': 'text-decoration-style: dotted;',
1227
- 'decoration-dashed': 'text-decoration-style: dashed;',
1228
- 'decoration-wavy': 'text-decoration-style: wavy;',
1229
-
1230
- // Text Overflow
1231
- 'truncate': 'overflow: hidden; text-overflow: ellipsis; white-space: nowrap;',
1232
- 'text-ellipsis': 'text-overflow: ellipsis;',
1233
- 'text-clip': 'text-overflow: clip;',
1234
-
1235
- // Text Wrap
1236
- 'text-wrap': 'text-wrap: wrap;',
1237
- 'text-nowrap': 'text-wrap: nowrap;',
1238
- 'text-balance': 'text-wrap: balance;',
1239
- 'text-pretty': 'text-wrap: pretty;',
1240
-
1241
- // Whitespace
1242
- 'whitespace-normal': 'white-space: normal;',
1243
- 'whitespace-nowrap': 'white-space: nowrap;',
1244
- 'whitespace-pre': 'white-space: pre;',
1245
- 'whitespace-pre-line': 'white-space: pre-line;',
1246
- 'whitespace-pre-wrap': 'white-space: pre-wrap;',
1247
- 'whitespace-break-spaces': 'white-space: break-spaces;',
1248
-
1249
- // Word Break
1250
- 'break-normal': 'overflow-wrap: normal; word-break: normal;',
1251
- 'break-words': 'overflow-wrap: break-word;',
1252
- 'break-all': 'word-break: break-all;',
1253
- 'break-keep': 'word-break: keep-all;',
1254
-
1255
- // Hyphens
1256
- 'hyphens-none': 'hyphens: none;',
1257
- 'hyphens-manual': 'hyphens: manual;',
1258
- 'hyphens-auto': 'hyphens: auto;',
1259
-
1260
- // Vertical Align
1261
- 'align-baseline': 'vertical-align: baseline;',
1262
- 'align-top': 'vertical-align: top;',
1263
- 'align-middle': 'vertical-align: middle;',
1264
- 'align-bottom': 'vertical-align: bottom;',
1265
- 'align-text-top': 'vertical-align: text-top;',
1266
- 'align-text-bottom': 'vertical-align: text-bottom;',
1267
- 'align-sub': 'vertical-align: sub;',
1268
- 'align-super': 'vertical-align: super;',
1269
-
1270
- // List Style Type
1271
- 'list-none': 'list-style-type: none;',
1272
- 'list-disc': 'list-style-type: disc;',
1273
- 'list-decimal': 'list-style-type: decimal;',
1274
- 'list-square': 'list-style-type: square;',
1275
-
1276
- // List Style Position
1277
- 'list-inside': 'list-style-position: inside;',
1278
- 'list-outside': 'list-style-position: outside;'
1279
- };
934
+ // Static typography keywords check (using imported map)
935
+ if (typographyKeywords[property]) {
936
+ return typographyKeywords[property];
937
+ }
1280
938
 
1281
939
  // Check static keywords first
1282
940
  if (typographyKeywords[property]) {
@@ -4,22 +4,15 @@
4
4
  */
5
5
 
6
6
  import { generatePreflight } from './preflight.js';
7
+ import { sanitizeValue } from '../../utils/common.js';
8
+ import { buildAllMaps } from '../../definitions/index.js';
7
9
 
8
- /**
9
- * Sanitize arbitrary value to prevent CSS injection
10
- * @param {string} value - Value to sanitize
11
- * @returns {string} - Sanitized value
12
- */
10
+ // Initialize maps from definitions - Single Source of Truth
11
+ const { layoutMap, typographyKeywords } = buildAllMaps();
12
+
13
+ // Helper to sanitize arbitrary values using common utility
13
14
  function sanitizeArbitraryValue(value) {
14
- if (typeof value !== 'string') {
15
- return '';
16
- }
17
- // Remove potentially dangerous characters that could break CSS syntax
18
- const dangerousChars = /[;}{]/g;
19
- if (dangerousChars.test(value)) {
20
- return value.replace(dangerousChars, '_');
21
- }
22
- return value;
15
+ return sanitizeValue(value);
23
16
  }
24
17
 
25
18
  /**
@@ -88,8 +81,9 @@ export function generateCSSVariables(config) {
88
81
  '60': '15rem', '64': '16rem', '72': '18rem', '80': '20rem', '96': '24rem'
89
82
  };
90
83
  for (const [key, value] of Object.entries(twSpacing)) {
91
- css += ` --tw-${key}: ${value};\n`;
84
+ css += ` --tw-${key.replace(/\./g, '\\\\.')}: ${value};\n`;
92
85
  }
86
+
93
87
 
94
88
  // Tailwind Border Radius Scale
95
89
  const twRadius = {
@@ -161,95 +155,8 @@ export function generateCSSVariables(config) {
161
155
  function generateLayoutRule(token, config) {
162
156
  const { property, value, isArbitrary } = token;
163
157
 
164
- const layoutMap = {
165
- // Display
166
- 'flex': 'display: flex;',
167
- 'grid': 'display: grid;',
168
- 'inline-flex': 'display: inline-flex;',
169
- 'inline-grid': 'display: inline-grid;',
170
- 'block': 'display: block;',
171
- 'inline': 'display: inline-block;',
172
- 'hidden': 'display: none;',
173
-
174
- // Flex Direction
175
- 'row': 'flex-direction: row;',
176
- 'col': 'flex-direction: column;',
177
- 'row-reverse': 'flex-direction: row-reverse;',
178
- 'col-reverse': 'flex-direction: column-reverse;',
179
-
180
- // Flex Wrap
181
- 'wrap': 'flex-wrap: wrap;',
182
- 'nowrap': 'flex-wrap: nowrap;',
183
- 'wrap-reverse': 'flex-wrap: wrap-reverse;',
184
-
185
- // Flex Item
186
- 'grow': 'flex-grow: 1;',
187
- 'grow-0': 'flex-grow: 0;',
188
- 'shrink': 'flex-shrink: 1;',
189
- 'shrink-0': 'flex-shrink: 0;',
190
-
191
- // Grid Auto Flow
192
- 'grid-flow-row': 'grid-auto-flow: row;',
193
- 'grid-flow-col': 'grid-auto-flow: column;',
194
- 'grid-flow-dense': 'grid-auto-flow: dense;',
195
- 'grid-flow-row-dense': 'grid-auto-flow: row dense;',
196
- 'grid-flow-col-dense': 'grid-auto-flow: column dense;',
197
-
198
- // Shorthand Alignment (backwards compat - simple keywords)
199
- 'center': 'justify-content: center; align-items: center;',
200
- 'start': 'justify-content: flex-start; align-items: flex-start;',
201
- 'end': 'justify-content: flex-end; align-items: flex-end;',
202
- 'between': 'justify-content: space-between;',
203
- 'around': 'justify-content: space-around;',
204
- 'evenly': 'justify-content: space-evenly;',
205
-
206
- // Position
207
- 'absolute': 'position: absolute;',
208
- 'relative': 'position: relative;',
209
- 'fixed': 'position: fixed;',
210
- 'sticky': 'position: sticky;',
211
- 'static': 'position: static;',
212
-
213
- // Visibility
214
- 'visible': 'visibility: visible;',
215
- 'invisible': 'visibility: hidden;',
216
-
217
- // Isolation
218
- 'isolate': 'isolation: isolate;',
219
- 'isolate-auto': 'isolation: auto;',
220
-
221
- // Box Sizing
222
- 'box-border': 'box-sizing: border-box;',
223
- 'box-content': 'box-sizing: content-box;',
224
-
225
- // Float
226
- 'float-left': 'float: left;',
227
- 'float-right': 'float: right;',
228
- 'float-none': 'float: none;',
229
-
230
- // Clear
231
- 'clear-left': 'clear: left;',
232
- 'clear-right': 'clear: right;',
233
- 'clear-both': 'clear: both;',
234
- 'clear-none': 'clear: none;',
235
-
236
- // Table - Border Collapse
237
- 'border-collapse': 'border-collapse: collapse;',
238
- 'border-separate': 'border-collapse: separate;',
239
-
240
- // Table - Table Layout
241
- 'table-auto': 'table-layout: auto;',
242
- 'table-fixed': 'table-layout: fixed;',
243
-
244
- // Table - Caption Side
245
- 'caption-top': 'caption-side: top;',
246
- 'caption-bottom': 'caption-side: bottom;',
247
-
248
- // Container
249
- 'container': 'width: 100%; margin-left: auto; margin-right: auto;'
250
- };
251
-
252
158
  // Check for simple layout keywords first (property === value means it's a keyword like 'flex', 'grid', etc.)
159
+ // layoutMap is now imported from definitions
253
160
  if (property === value && layoutMap[property]) {
254
161
  return layoutMap[property];
255
162
  }
@@ -598,7 +505,7 @@ function generateSpaceRule(token, config) {
598
505
  let baseValue;
599
506
  if (cleanValue.startsWith('tw-')) {
600
507
  const twValue = cleanValue.slice(3); // Remove 'tw-' prefix
601
- baseValue = `var(--tw-${twValue})`;
508
+ baseValue = `var(--tw-${twValue.replace(/\./g, '\\\\.')})`;
602
509
  } else {
603
510
  baseValue = `var(--s-${cleanValue})`;
604
511
  }
@@ -667,100 +574,7 @@ function generateVisualRule(token, config) {
667
574
  const { property, value, isArbitrary } = token;
668
575
 
669
576
  // Static typography keywords
670
- const typographyKeywords = {
671
- // Font Style
672
- 'italic': 'font-style: italic;',
673
- 'not-italic': 'font-style: normal;',
674
-
675
- // Font Stretch
676
- 'font-stretch-condensed': 'font-stretch: condensed;',
677
- 'font-stretch-expanded': 'font-stretch: expanded;',
678
- 'font-stretch-normal': 'font-stretch: normal;',
679
-
680
- // Font Smoothing
681
- 'antialiased': '-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;',
682
- 'subpixel-antialiased': '-webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto;',
683
-
684
- // Font Variant Numeric
685
- 'normal-nums': 'font-variant-numeric: normal;',
686
- 'ordinal': 'font-variant-numeric: ordinal;',
687
- 'slashed-zero': 'font-variant-numeric: slashed-zero;',
688
- 'lining-nums': 'font-variant-numeric: lining-nums;',
689
- 'oldstyle-nums': 'font-variant-numeric: oldstyle-nums;',
690
- 'proportional-nums': 'font-variant-numeric: proportional-nums;',
691
- 'tabular-nums': 'font-variant-numeric: tabular-nums;',
692
-
693
- // Text Transform
694
- 'uppercase': 'text-transform: uppercase;',
695
- 'lowercase': 'text-transform: lowercase;',
696
- 'capitalize': 'text-transform: capitalize;',
697
- 'normal-case': 'text-transform: none;',
698
-
699
- // Text Decoration Line
700
- 'underline': 'text-decoration-line: underline;',
701
- 'overline': 'text-decoration-line: overline;',
702
- 'line-through': 'text-decoration-line: line-through;',
703
- 'no-underline': 'text-decoration-line: none;',
704
-
705
- // Text Decoration Style
706
- 'decoration-solid': 'text-decoration-style: solid;',
707
- 'decoration-double': 'text-decoration-style: double;',
708
- 'decoration-dotted': 'text-decoration-style: dotted;',
709
- 'decoration-dashed': 'text-decoration-style: dashed;',
710
- 'decoration-wavy': 'text-decoration-style: wavy;',
711
-
712
- // Text Overflow
713
- 'truncate': 'overflow: hidden; text-overflow: ellipsis; white-space: nowrap;',
714
- 'text-ellipsis': 'text-overflow: ellipsis;',
715
- 'text-clip': 'text-overflow: clip;',
716
-
717
- // Text Wrap
718
- 'text-wrap': 'text-wrap: wrap;',
719
- 'text-nowrap': 'text-wrap: nowrap;',
720
- 'text-balance': 'text-wrap: balance;',
721
- 'text-pretty': 'text-wrap: pretty;',
722
-
723
- // Whitespace
724
- 'whitespace-normal': 'white-space: normal;',
725
- 'whitespace-nowrap': 'white-space: nowrap;',
726
- 'whitespace-pre': 'white-space: pre;',
727
- 'whitespace-pre-line': 'white-space: pre-line;',
728
- 'whitespace-pre-wrap': 'white-space: pre-wrap;',
729
- 'whitespace-break-spaces': 'white-space: break-spaces;',
730
-
731
- // Word Break
732
- 'break-normal': 'overflow-wrap: normal; word-break: normal;',
733
- 'break-words': 'overflow-wrap: break-word;',
734
- 'break-all': 'word-break: break-all;',
735
- 'break-keep': 'word-break: keep-all;',
736
-
737
- // Hyphens
738
- 'hyphens-none': 'hyphens: none;',
739
- 'hyphens-manual': 'hyphens: manual;',
740
- 'hyphens-auto': 'hyphens: auto;',
741
-
742
- // Vertical Align
743
- 'align-baseline': 'vertical-align: baseline;',
744
- 'align-top': 'vertical-align: top;',
745
- 'align-middle': 'vertical-align: middle;',
746
- 'align-bottom': 'vertical-align: bottom;',
747
- 'align-text-top': 'vertical-align: text-top;',
748
- 'align-text-bottom': 'vertical-align: text-bottom;',
749
- 'align-sub': 'vertical-align: sub;',
750
- 'align-super': 'vertical-align: super;',
751
-
752
- // List Style Type
753
- 'list-none': 'list-style-type: none;',
754
- 'list-disc': 'list-style-type: disc;',
755
- 'list-decimal': 'list-style-type: decimal;',
756
- 'list-square': 'list-style-type: square;',
757
-
758
- // List Style Position
759
- 'list-inside': 'list-style-position: inside;',
760
- 'list-outside': 'list-style-position: outside;'
761
- };
762
-
763
- // Check static keywords first
577
+ // Check static keywords first (imported from definitions)
764
578
  if (typographyKeywords[property]) {
765
579
  return typographyKeywords[property];
766
580
  }
@@ -7,7 +7,6 @@
7
7
  export {
8
8
  tokenize,
9
9
  tokenizeAll,
10
- parseToken,
11
10
  sanitizeValue,
12
11
  isValidToken
13
12
  } from '../core/tokenizer-core.js';