@yuneta/gobj-ui 2.6.0 → 4.0.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 (56) hide show
  1. package/README.md +331 -11
  2. package/dist/gobj-ui.cjs.js +21386 -17919
  3. package/dist/gobj-ui.es.js +26059 -22613
  4. package/index.js +45 -9
  5. package/package.json +4 -4
  6. package/src/c_g6_nodes_tree.js +128 -40
  7. package/src/c_yui_form.css +9 -0
  8. package/src/c_yui_form.js +113 -53
  9. package/src/c_yui_gobj_tree_js.js +58 -36
  10. package/src/c_yui_json.css +139 -0
  11. package/src/c_yui_json.js +928 -0
  12. package/src/c_yui_json_graph.js +110 -20
  13. package/src/c_yui_map.js +18 -36
  14. package/src/c_yui_nav.js +6 -9
  15. package/src/c_yui_period.css +184 -0
  16. package/src/c_yui_period.js +1441 -0
  17. package/src/c_yui_shell.css +120 -0
  18. package/src/c_yui_shell.js +672 -111
  19. package/src/c_yui_treedb_graph.js +639 -37
  20. package/src/c_yui_treedb_schema.js +478 -0
  21. package/src/c_yui_treedb_topic_with_form.css +18 -0
  22. package/src/c_yui_treedb_topic_with_form.js +153 -103
  23. package/src/c_yui_treedb_topics.css +73 -0
  24. package/src/c_yui_treedb_topics.js +1070 -29
  25. package/src/c_yui_window.css +22 -0
  26. package/src/c_yui_window.js +182 -97
  27. package/src/c_yui_window_manager.js +38 -4
  28. package/src/json_view_helpers.js +214 -0
  29. package/src/json_view_helpers.test.js +135 -0
  30. package/src/route_map_model.js +317 -0
  31. package/src/route_map_model.test.js +209 -0
  32. package/src/route_resolver.js +24 -1
  33. package/src/route_resolver.test.js +40 -1
  34. package/src/shell_modals.js +162 -52
  35. package/src/shell_route_map.css +225 -0
  36. package/src/shell_route_map.js +363 -0
  37. package/src/tabulator.css +245 -0
  38. package/src/yui_dev.js +130 -8
  39. package/src/yui_frontend_view.js +106 -0
  40. package/src/yui_icons.css +62 -0
  41. package/src/yui_inputs.css +8 -3
  42. package/src/yui_inputs.js +51 -8
  43. package/src/yui_tabulator_i18n.js +128 -0
  44. package/src/yui_theme.js +147 -0
  45. package/src/yui_time.js +666 -0
  46. package/src/yui_time.test.js +330 -0
  47. package/src/yui_toolbar.css +28 -0
  48. package/src/yui_toolbar.js +86 -43
  49. package/src/c_yui_main.css +0 -501
  50. package/src/c_yui_main.js +0 -1623
  51. package/src/c_yui_routing.css +0 -18
  52. package/src/c_yui_routing.js +0 -837
  53. package/src/c_yui_tabs.js +0 -487
  54. package/src/themes.js +0 -215
  55. package/src/ytable.css +0 -63
  56. package/src/ytable.js +0 -505
@@ -4,6 +4,31 @@
4
4
  * Depends on Bulma being loaded (uses .tabs, .menu, .level, is-*, etc.)
5
5
  ***********************************************************************/
6
6
 
7
+ /*============================================================
8
+ * Native control scheme
9
+ *
10
+ * The browser draws the ornaments of native controls itself —
11
+ * number-input spinners, the select chevron, scrollbars, the
12
+ * date picker — and picks their colours from `color-scheme`,
13
+ * NOT from the background/color we set. Nobody declared it, so
14
+ * they rendered light in a dark app whatever the CSS said.
15
+ * Bulma flips its palette on [data-theme]; this makes the
16
+ * browser's own chrome follow the same switch.
17
+ *============================================================*/
18
+ /* No [data-theme] is the "system" theme: Bulma renders per
19
+ * prefers-color-scheme, so `light dark` — "supports both, follow the
20
+ * OS" — is what tracks it. Pinning `light` here would force light
21
+ * controls inside a system-dark app: the very bug this fixes. */
22
+ :root {
23
+ color-scheme: light dark;
24
+ }
25
+ :root[data-theme="light"] {
26
+ color-scheme: light;
27
+ }
28
+ :root[data-theme="dark"] {
29
+ color-scheme: dark;
30
+ }
31
+
7
32
  /*============================================================
8
33
  * Root + layers
9
34
  *============================================================*/
@@ -590,6 +615,14 @@
590
615
  white-space: nowrap;
591
616
  font-weight: 600;
592
617
  }
618
+ /* Separator between the data half and the translated kind half. CSS,
619
+ * not a text node: createElement2 trims text nodes and eats the spaces. */
620
+ .MODAL_TITLE_PREFIX + .MODAL_TITLE_KIND::before {
621
+ content: "·";
622
+ padding: 0 0.4em;
623
+ color: var(--bulma-text-weak);
624
+ font-weight: 400;
625
+ }
593
626
  .yui-dialog-back,
594
627
  .yui-dialog-x {
595
628
  flex: 0 0 auto;
@@ -643,3 +676,90 @@
643
676
  display: none;
644
677
  }
645
678
  }
679
+
680
+ /* Moved from c_yui_main.css (2.6.1): mobile Bulma columns edge-to-edge.
681
+ * Self-contained here so every consumer gets it without the
682
+ * legacy stack's stylesheet. */
683
+
684
+ @media screen and (max-width: 768px) {
685
+ .column {
686
+ padding: 0 !important;
687
+ margin-bottom: 16px !important;
688
+ }
689
+ }
690
+
691
+
692
+ /*============================================================
693
+ * Shell confirm dialogs (yui_shell_confirm_*):
694
+ * icon-centric layout ported from the legacy volatil
695
+ * modals (2.5.0 redesign; c_yui_main.js removed in 3.0.0).
696
+ * A narrow rounded card with a tinted round icon of the
697
+ * type; everything maps to Bulma vars so one rule set
698
+ * follows light and dark.
699
+ *============================================================*/
700
+ .modal.yui-confirm .modal-background {
701
+ background-color: color-mix(in srgb, var(--bulma-scheme-invert, #000) 45%, transparent);
702
+ }
703
+ .modal.yui-confirm .modal-card {
704
+ position: relative;
705
+ width: min(26rem, calc(100vw - 2rem));
706
+ border-radius: 0.75rem;
707
+ background: var(--bulma-scheme-main, #fff);
708
+ box-shadow: 0 12px 40px color-mix(in srgb, var(--bulma-scheme-invert, #000) 30%, transparent);
709
+ padding: 1.5rem 1.5rem 1.25rem;
710
+ }
711
+ .modal.yui-confirm .modal-card-body {
712
+ background: transparent;
713
+ padding: 0;
714
+ }
715
+ .modal.yui-confirm .modal-card-foot {
716
+ background: transparent;
717
+ border-top: none;
718
+ padding: 1rem 0 0;
719
+ justify-content: center;
720
+ }
721
+ .yui-confirm-icon {
722
+ width: 3.25rem;
723
+ height: 3.25rem;
724
+ border-radius: 9999px;
725
+ display: flex;
726
+ align-items: center;
727
+ justify-content: center;
728
+ margin: 0 auto 0.75rem;
729
+ font-size: 1.5rem;
730
+ background: color-mix(in srgb, var(--yui-confirm-base, var(--bulma-info, #3e8ed0)) 15%, transparent);
731
+ color: var(--yui-confirm-ink, var(--bulma-info, #3e8ed0));
732
+ }
733
+ .modal.yui-confirm.is-info,
734
+ .modal.yui-confirm.is-question {
735
+ --yui-confirm-base: var(--bulma-info, #3e8ed0);
736
+ --yui-confirm-ink: var(--bulma-info-on-scheme, #3e8ed0);
737
+ }
738
+ .modal.yui-confirm.is-success {
739
+ --yui-confirm-base: var(--bulma-success, #48c78e);
740
+ --yui-confirm-ink: var(--bulma-success-on-scheme, #257953);
741
+ }
742
+ .modal.yui-confirm.is-warning {
743
+ --yui-confirm-base: var(--bulma-warning, #ffe08a);
744
+ --yui-confirm-ink: var(--bulma-warning-on-scheme, #946c00);
745
+ }
746
+ .modal.yui-confirm.is-error {
747
+ --yui-confirm-base: var(--bulma-danger, #f14668);
748
+ --yui-confirm-ink: var(--bulma-danger-on-scheme, #cc0f35);
749
+ }
750
+ .yui-confirm-title {
751
+ font-size: 1.15rem;
752
+ font-weight: 600;
753
+ text-transform: capitalize;
754
+ margin-bottom: 0.25rem;
755
+ color: var(--bulma-text-strong, inherit);
756
+ }
757
+ .yui-confirm-x {
758
+ position: absolute;
759
+ top: 0.75rem;
760
+ right: 0.75rem;
761
+ }
762
+ .yui-confirm-msg {
763
+ font-size: 1.05rem;
764
+ color: var(--bulma-text, inherit);
765
+ }