@cahyo-dimas/freeday 3.7.0 → 3.9.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 (44) hide show
  1. package/CHANGELOG.md +197 -0
  2. package/COMPONENTS.md +214 -18
  3. package/README.id.md +4 -4
  4. package/README.md +4 -3
  5. package/adapters/blazor/FdyDatepicker.razor +3 -1
  6. package/adapters/blazor/FdyDatepicker.razor.cs +36 -1
  7. package/adapters/blazor/FdyMonthpicker.razor +29 -0
  8. package/adapters/blazor/FdyMonthpicker.razor.cs +102 -0
  9. package/adapters/blazor/FdyTable.razor +6 -1
  10. package/adapters/blazor/FdyTable.razor.cs +33 -0
  11. package/adapters/blazor/FdyTableFooter.razor +6 -6
  12. package/adapters/blazor/FdyTableFooter.razor.cs +36 -0
  13. package/adapters/core/month-grid.d.ts +116 -0
  14. package/adapters/core/month-grid.js +234 -0
  15. package/adapters/react/components/FdyDatepicker.tsx +164 -166
  16. package/adapters/react/components/FdyMonthpicker.tsx +400 -0
  17. package/adapters/react/components/FdyTable.tsx +38 -2
  18. package/adapters/react/components/FdyTableFilter.tsx +13 -1
  19. package/adapters/react/components/FdyTableFooter.tsx +37 -6
  20. package/adapters/react/index.d.ts +6 -2
  21. package/adapters/react/index.js +1 -0
  22. package/adapters/react/usePopover.ts +54 -9
  23. package/adapters/vue/components/FdyDatepicker.vue +158 -160
  24. package/adapters/vue/components/FdyMonthpicker.vue +387 -0
  25. package/adapters/vue/components/FdyTable.vue +33 -1
  26. package/adapters/vue/components/FdyTableFilter.vue +13 -1
  27. package/adapters/vue/components/FdyTableFooter.vue +39 -6
  28. package/adapters/vue/index.d.ts +16 -0
  29. package/adapters/vue/index.js +1 -0
  30. package/adapters/vue/usePopover.ts +53 -10
  31. package/dist/freeday-datepicker.js +68 -14
  32. package/dist/freeday-menu.js +15 -1
  33. package/dist/freeday-popover.js +33 -11
  34. package/dist/freeday-table.js +64 -5
  35. package/dist/freeday-tabs.js +21 -2
  36. package/dist/freeday.bundle.css +50 -2
  37. package/dist/freeday.css +50 -2
  38. package/dist/freeday.js +201 -33
  39. package/docs/agent-onboarding.md +3 -3
  40. package/docs/getting-started.md +6 -6
  41. package/docs/integrations.md +22 -4
  42. package/package.json +2 -2
  43. package/src/components/table.css +19 -2
  44. package/src/components/tabs.css +31 -0
@@ -32,3 +32,34 @@
32
32
  .fdy-tabs__panel[hidden]{display:none;}
33
33
  /* Reveal the newly-shown panel on tab switch (fade + rise), reduced-motion gated. */
34
34
  @media (prefers-reduced-motion:no-preference){.fdy-tabs__panel:not([hidden]){animation:fdy-combo-in var(--dur-base) var(--ease-standard);}}
35
+
36
+ /* VERTICAL VARIANT: the same tabs turned down the page, list on the leading side, panel beside it.
37
+ *
38
+ * Two markers, one each, and they are not interchangeable. The CLASS decides the look, because a
39
+ * stylesheet cannot reach a parent from a child and the two-column box belongs to `.fdy-tabs`
40
+ * itself. The ATTRIBUTE `aria-orientation="vertical"` on the tablist decides the keyboard, because
41
+ * that is the thing an assistive technology announces and APG requires it on a vertical tablist
42
+ * anyway. `freeday-tabs.js` writes the attribute when only the class is present, so an app states
43
+ * the axis once and the two can never disagree.
44
+ *
45
+ * Selection is a SOFT FILL here, not a leading edge bar. Sideways, the marker is an underline under
46
+ * the tab it belongs to; turned 90 degrees that line lands between two tabs and points at the wrong
47
+ * one. The kit already has an answer for "one item in a vertical list is where you are" and spends
48
+ * it in four places (`.fdy-nav__item[aria-current]`, the combo, cascade and autocomplete options):
49
+ * `--color-primary-soft` behind `--color-primary-strong`. Both are precomputed tone tokens, so this
50
+ * needs no color-mix() and no alpha of its own.
51
+ *
52
+ * What it deliberately does NOT do: pick a column width (set `--fdy-tabs-list-w`, default `auto`),
53
+ * and collapse to one column on a narrow screen. Whether these tabs are a whole page, a card or a
54
+ * drawer is the page's knowledge, not the component's, so the breakpoint is the page's to write. */
55
+ .fdy-tabs--vertical{display:flex;align-items:flex-start;gap:var(--space-5);}
56
+ /* `overflow:visible` on both axes, because the base strip scrolls sideways: a scroll container
57
+ clips to its padding box, and a column has no sideways overflow to scroll, only a focus ring to
58
+ lose. `box-shadow:none` drops the strip's own bottom line with it. */
59
+ .fdy-tabs--vertical .fdy-tabs__list{flex:none;flex-direction:column;width:var(--fdy-tabs-list-w,auto);overflow:visible;box-shadow:none;}
60
+ /* `white-space:normal` and `text-align:start` are corrections, not taste: a tab in a column of
61
+ fixed width that may not wrap will overflow it, and a button centres its label by default. */
62
+ .fdy-tabs--vertical .fdy-tabs__tab{border-bottom:0;border-radius:var(--radius-md);text-align:start;white-space:normal;}
63
+ .fdy-tabs--vertical .fdy-tabs__tab:focus-visible{border-radius:var(--radius-md);}
64
+ .fdy-tabs--vertical .fdy-tabs__tab[aria-selected="true"],.fdy-tabs--vertical .fdy-tabs__tab[aria-current="page"]{background:var(--color-primary-soft);color:var(--color-primary-strong);font-weight:var(--weight-semibold);}
65
+ .fdy-tabs--vertical .fdy-tabs__panel{flex:1;min-width:0;padding:0;}