from ..controls.c_select import c_select from ..controls.c_checkbox import c_checkbox from ..bulma_variants import BULMA_COLOR_OPTIONS, BULMA_SIZE_OPTIONS _GROUP = "Style Bulma" # Chaque widget "natif Bulma" (voir fixed_attrs dans registry.py) expose ici # TOUTES les variantes que Bulma propose pour son composant — chacune ajoute # un jeton de classe indépendant (target "class:xxx", voir # save_element_controls.py et _visible_attrs.py) à la classe de base déjà # posée par fixed_attrs. Laissé à "" (par défaut) = aucun modificateur, look # Bulma nu. Les réglages de couleur/taille "libres" du widget (curseurs, # sélecteurs de couleur) restent utilisables par-dessus : un style en ligne # gagne toujours contre une classe CSS, donc personnaliser une couleur ou une # taille "à la main" continue de fonctionner exactement comme avant. BULMA_BUTTON_CONTROLS = [ c_select("bulma_couleur", "Couleur", "class:couleur", BULMA_COLOR_OPTIONS, default="", group=_GROUP), c_checkbox("bulma_nuance_claire", "Nuance claire (combinable avec une couleur)", "class:nuance", "is-light", "", group=_GROUP), c_select("bulma_taille", "Taille", "class:taille", BULMA_SIZE_OPTIONS, default="", group=_GROUP), c_checkbox("bulma_arrondi", "Coins bien arrondis", "class:arrondi", "is-rounded", "", group=_GROUP), c_checkbox("bulma_contour", "Contour seulement (fond transparent)", "class:contour", "is-outlined", "", group=_GROUP), c_checkbox("bulma_inverse", "Couleurs inversées", "class:inverse", "is-inverted", "", group=_GROUP), c_checkbox("bulma_statique", "Statique (non cliquable visuellement)", "class:statique", "is-static", "", group=_GROUP), c_checkbox("bulma_chargement", "Indicateur de chargement", "class:chargement", "is-loading", "", group=_GROUP), c_checkbox("bulma_pleine_largeur", "Pleine largeur", "class:largeur", "is-fullwidth", "", group=_GROUP), ] BULMA_TITLE_CONTROLS = [ c_select("bulma_taille", "Taille Bulma (indépendante du niveau de titre)", "class:taille", [("", "Automatique"), ("is-1", "1 — la plus grande"), ("is-2", "2"), ("is-3", "3"), ("is-4", "4"), ("is-5", "5"), ("is-6", "6 — la plus petite")], default="", group=_GROUP), c_checkbox("bulma_espace", "Garder l'espacement même sans sous-titre", "class:espace", "is-spaced", "", group=_GROUP), ] BULMA_PROGRESS_CONTROLS = [ c_select("bulma_taille", "Taille de la barre", "class:taille", BULMA_SIZE_OPTIONS, default="", group=_GROUP), ] BULMA_TABLE_CONTROLS = [ c_checkbox("bulma_bordure", "Bordures", "class:bordure", "is-bordered", "", default=True, group=_GROUP), c_checkbox("bulma_pleine_largeur", "Pleine largeur", "class:largeur", "is-fullwidth", "", default=True, group=_GROUP), c_checkbox("bulma_zebre", "Lignes zébrées", "class:zebre", "is-striped", "", group=_GROUP), c_checkbox("bulma_survol", "Ligne surlignée au survol", "class:survol", "is-hoverable", "", group=_GROUP), c_checkbox("bulma_compact", "Compact (cellules resserrées)", "class:compact", "is-narrow", "", group=_GROUP), ] BULMA_TABS_CONTROLS = [ c_select("bulma_alignement", "Alignement", "class:alignement", [("", "Gauche (par défaut)"), ("is-centered", "Centré"), ("is-right", "Droite")], default="", group=_GROUP), c_select("bulma_style", "Style", "class:style", [("", "Simple (soulignement)"), ("is-boxed", "Encadré"), ("is-toggle", "Boutons accolés"), ("is-toggle is-toggle-rounded", "Boutons accolés, arrondis")], default="", group=_GROUP), c_select("bulma_taille", "Taille", "class:taille", BULMA_SIZE_OPTIONS, default="", group=_GROUP), c_checkbox("bulma_pleine_largeur", "Pleine largeur (onglets étirés)", "class:largeur", "is-fullwidth", "", group=_GROUP), ] # Champs de formulaire (input/textarea/select) : mêmes variantes que Bulma # propose pour .input/.textarea/.select. BULMA_FIELD_CONTROLS = [ c_select("bulma_couleur", "Couleur", "class:couleur", BULMA_COLOR_OPTIONS, default="", group=_GROUP), c_select("bulma_taille", "Taille", "class:taille", BULMA_SIZE_OPTIONS, default="", group=_GROUP), c_checkbox("bulma_arrondi", "Coins bien arrondis", "class:arrondi", "is-rounded", "", group=_GROUP), c_checkbox("bulma_statique", "Statique (lecture seule visuelle)", "class:statique", "is-static", "", group=_GROUP), ]