// Path: shared/src/main/java/org/kobjects/nativehtml/css/CssEnum.java
// public enum CssEnum {
//   ERROR,
// 
//   AUTO, AQUA,
//   BLACK, BLOCK, BOTH, BOTTOM, BLUE,
//   CENTER, CIRCLE,
//   DECIMAL, DISC,
//   FIXED, FUCHSIA,
//   GRAY, GREEN,
//   INHERIT, INLINE, INLINE_BLOCK, INSIDE, ITALIC,
//   LEFT, LIME, LIST_ITEM, LOWER_LATIN, LOWER_GREEK, LOWER_ROMAN,
//   MAROON, MEDIUM, MIDDLE,
//   NAVY, NONE, NO_REPEAT,
//   OLIVE, OUTSIDE,
//   PRE, PURPLE,
//   RED, REPEAT, REPEAT_Y, REPEAT_X, RIGHT,
//   SCROLL, SILVER, SOLID, SQUARE, STATIC, SUPER, SUB,
//   TABLE, TABLE_CELL, TABLE_ROW, TEAL, TEXT, THIN, THICK, TOP,
//   UNDERLINE, UPPER_LATIN, UPPER_ROMAN,
//   WHITE,
//   YELLOW, LINE_THROUGH, RELATIVE, ABSOLUTE;
// }


import org.kobjects.nativehtml.css.CssEnum;
package org.kobjects.nativehtml.util;


public class Strings {
  

  // Visible for testing
  static final String toLetters(int n, char c0, int base) {
    StringBuilder sb = new StringBuilder();
    do {
      n--; // 1->0=a
      sb.insert(0, (char) (c0 + n % base));
      n /= base;
    } while (n != 0);
    return sb.toString();
  }

  private static final String[] ROMAN_DIGITS = {"M", "CM","D","CD","C", "XC", "L", "XL", "X","IX","V","IV","I"};
  private static final int[] ROMAN_VALUES = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

  static final String toRoman(int n) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < ROMAN_VALUES.length; i++) {
      while (n % ROMAN_VALUES[i] < n) {
        sb.append(ROMAN_DIGITS[i]);
        n -= ROMAN_VALUES[i];
      }
    }
    return sb.toString();
  }

  
// Path: shared/src/main/java/org/kobjects/nativehtml/css/CssEnum.java
// public enum CssEnum {
//   ERROR,
// 
//   AUTO, AQUA,
//   BLACK, BLOCK, BOTH, BOTTOM, BLUE,
//   CENTER, CIRCLE,
//   DECIMAL, DISC,
//   FIXED, FUCHSIA,
//   GRAY, GREEN,
//   INHERIT, INLINE, INLINE_BLOCK, INSIDE, ITALIC,
//   LEFT, LIME, LIST_ITEM, LOWER_LATIN, LOWER_GREEK, LOWER_ROMAN,
//   MAROON, MEDIUM, MIDDLE,
//   NAVY, NONE, NO_REPEAT,
//   OLIVE, OUTSIDE,
//   PRE, PURPLE,
//   RED, REPEAT, REPEAT_Y, REPEAT_X, RIGHT,
//   SCROLL, SILVER, SOLID, SQUARE, STATIC, SUPER, SUB,
//   TABLE, TABLE_CELL, TABLE_ROW, TEAL, TEXT, THIN, THICK, TOP,
//   UNDERLINE, UPPER_LATIN, UPPER_ROMAN,
//   WHITE,
//   YELLOW, LINE_THROUGH, RELATIVE, ABSOLUTE;
// }


// Path: shared/src/main/java/org/kobjects/nativehtml/util/Strings.java
import org.kobjects.nativehtml.css.CssEnum;

package org.kobjects.nativehtml.util;


public class Strings {
  

  // Visible for testing
  static final String toLetters(int n, char c0, int base) {
    StringBuilder sb = new StringBuilder();
    do {
      n--; // 1->0=a
      sb.insert(0, (char) (c0 + n % base));
      n /= base;
    } while (n != 0);
    return sb.toString();
  }

  private static final String[] ROMAN_DIGITS = {"M", "CM","D","CD","C", "XC", "L", "XL", "X","IX","V","IV","I"};
  private static final int[] ROMAN_VALUES = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

  static final String toRoman(int n) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < ROMAN_VALUES.length; i++) {
      while (n % ROMAN_VALUES[i] < n) {
        sb.append(ROMAN_DIGITS[i]);
        n -= ROMAN_VALUES[i];
      }
    }
    return sb.toString();
  }

  
  public static String getBullet(CssEnum listStyleType, int listIndex) {