@cahyo-dimas/freeday 1.53.0 → 2.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 (145) hide show
  1. package/CHANGELOG.md +657 -535
  2. package/COMPONENTS.md +153 -135
  3. package/README.id.md +46 -45
  4. package/README.md +46 -43
  5. package/USAGE.md +39 -35
  6. package/adapters/blazor/FdyAppShell.razor +50 -0
  7. package/adapters/blazor/FdyAppShell.razor.cs +114 -0
  8. package/adapters/blazor/FdyCfl.razor.cs +1 -1
  9. package/adapters/blazor/FdyChart.razor +1 -1
  10. package/adapters/blazor/FdyChart.razor.cs +3 -3
  11. package/adapters/blazor/FdyChartSeries.cs +1 -1
  12. package/adapters/blazor/FdyCombo.razor.cs +2 -2
  13. package/adapters/blazor/FdyModal.razor +1 -1
  14. package/adapters/blazor/FdyTable.razor.cs +7 -7
  15. package/adapters/blazor/FdyTableFilter.razor +1 -1
  16. package/adapters/blazor/FdyTableFooter.razor +1 -1
  17. package/adapters/blazor/FdyTableFooter.razor.cs +4 -4
  18. package/adapters/blazor/Freeday.Blazor.csproj +1 -1
  19. package/adapters/blazor/FreedayComponentBase.cs +1 -1
  20. package/adapters/blazor/TableModel.cs +3 -3
  21. package/adapters/blazor/TableTypes.cs +3 -3
  22. package/adapters/blazor/freeday-blazor.js +5 -5
  23. package/adapters/core/app-shell.d.ts +30 -0
  24. package/adapters/core/app-shell.js +134 -0
  25. package/adapters/core/table-model.d.ts +2 -2
  26. package/adapters/core/table-model.js +8 -8
  27. package/adapters/react/components/FdyAppShell.tsx +159 -0
  28. package/adapters/react/components/FdyAutocomplete.tsx +1 -1
  29. package/adapters/react/components/FdyCascade.tsx +1 -1
  30. package/adapters/react/components/FdyCfl.tsx +11 -11
  31. package/adapters/react/components/FdyDateRange.tsx +2 -2
  32. package/adapters/react/components/FdyDatepicker.tsx +5 -5
  33. package/adapters/react/components/FdyDrawer.tsx +1 -1
  34. package/adapters/react/components/FdyModal.tsx +2 -2
  35. package/adapters/react/components/FdyTable.tsx +7 -7
  36. package/adapters/react/components/FdyTableFilter.tsx +1 -1
  37. package/adapters/react/components/FdyTableFooter.tsx +5 -5
  38. package/adapters/react/index.d.ts +2 -1
  39. package/adapters/react/index.js +1 -0
  40. package/adapters/react/useFreeday.js +3 -3
  41. package/adapters/vue/components/FdyAppShell.vue +160 -0
  42. package/adapters/vue/components/FdyAutocomplete.vue +1 -1
  43. package/adapters/vue/components/FdyCascade.vue +1 -1
  44. package/adapters/vue/components/FdyCfl.vue +8 -8
  45. package/adapters/vue/components/FdyChart.vue +2 -2
  46. package/adapters/vue/components/FdyCombo.vue +1 -1
  47. package/adapters/vue/components/FdyDateRange.vue +2 -2
  48. package/adapters/vue/components/FdyDatepicker.vue +5 -5
  49. package/adapters/vue/components/FdyDrawer.vue +3 -3
  50. package/adapters/vue/components/FdyModal.vue +3 -3
  51. package/adapters/vue/components/FdyTable.vue +7 -7
  52. package/adapters/vue/components/FdyTableFilter.vue +1 -1
  53. package/adapters/vue/components/FdyTableFooter.vue +5 -5
  54. package/adapters/vue/index.d.ts +3 -2
  55. package/adapters/vue/index.js +1 -0
  56. package/adapters/vue/useFreeday.js +3 -3
  57. package/dist/asset.d.ts +3 -3
  58. package/dist/freeday-app-shell.js +49 -9
  59. package/dist/freeday-autocomplete.js +2 -2
  60. package/dist/freeday-breakpoint.js +1 -1
  61. package/dist/freeday-carousel.js +5 -5
  62. package/dist/freeday-cascade.js +7 -7
  63. package/dist/freeday-cfl.js +9 -9
  64. package/dist/freeday-chart.js +11 -11
  65. package/dist/freeday-chip.js +3 -3
  66. package/dist/freeday-datepicker.js +11 -7
  67. package/dist/freeday-datetime.js +5 -5
  68. package/dist/freeday-drawer.js +1 -1
  69. package/dist/freeday-form.js +14 -14
  70. package/dist/freeday-mask.js +6 -6
  71. package/dist/freeday-menu.js +1 -1
  72. package/dist/freeday-number.js +3 -3
  73. package/dist/freeday-popover.js +3 -3
  74. package/dist/freeday-rating.js +2 -2
  75. package/dist/freeday-select.js +5 -5
  76. package/dist/freeday-slider.js +2 -2
  77. package/dist/freeday-stepper.js +7 -7
  78. package/dist/freeday-table.js +15 -15
  79. package/dist/freeday-tabs.js +1 -1
  80. package/dist/freeday-timepicker.js +2 -2
  81. package/dist/freeday-toast.js +8 -8
  82. package/dist/freeday-tree.js +3 -3
  83. package/dist/freeday-upload.js +25 -25
  84. package/dist/freeday.bundle.css +176 -176
  85. package/dist/freeday.css +170 -170
  86. package/dist/freeday.d.ts +2 -2
  87. package/dist/freeday.js +202 -158
  88. package/dist/freeday.tokens.css +5 -5
  89. package/docs/agent-onboarding.md +42 -42
  90. package/docs/getting-started.md +35 -35
  91. package/docs/integrations.md +18 -18
  92. package/docs/reference-screen.html +14 -14
  93. package/package.json +5 -4
  94. package/src/base.css +6 -6
  95. package/src/components/accordion.css +4 -4
  96. package/src/components/alert.css +1 -1
  97. package/src/components/app-shell.css +10 -10
  98. package/src/components/appbar.css +3 -3
  99. package/src/components/autocomplete.css +1 -1
  100. package/src/components/avatar.css +3 -3
  101. package/src/components/badge.css +5 -5
  102. package/src/components/breadcrumb.css +1 -1
  103. package/src/components/breakpoints.css +4 -4
  104. package/src/components/button.css +13 -13
  105. package/src/components/card.css +8 -8
  106. package/src/components/carousel.css +2 -2
  107. package/src/components/cascade.css +2 -2
  108. package/src/components/cfl.css +4 -4
  109. package/src/components/chart.css +3 -3
  110. package/src/components/chip.css +2 -2
  111. package/src/components/combo.css +3 -3
  112. package/src/components/composition.css +7 -7
  113. package/src/components/datepicker.css +6 -6
  114. package/src/components/datetimepicker.css +1 -1
  115. package/src/components/description-list.css +1 -1
  116. package/src/components/divider.css +1 -1
  117. package/src/components/drawer.css +1 -1
  118. package/src/components/file-upload.css +5 -5
  119. package/src/components/filterbar.css +7 -7
  120. package/src/components/form-grid.css +2 -2
  121. package/src/components/input-group.css +6 -6
  122. package/src/components/input.css +6 -6
  123. package/src/components/kbd.css +1 -1
  124. package/src/components/list.css +6 -6
  125. package/src/components/menu.css +3 -3
  126. package/src/components/modal.css +1 -1
  127. package/src/components/pagination.css +1 -1
  128. package/src/components/progress.css +1 -1
  129. package/src/components/rating.css +2 -2
  130. package/src/components/selection.css +4 -4
  131. package/src/components/skeleton.css +1 -1
  132. package/src/components/slider.css +1 -1
  133. package/src/components/spinner.css +1 -1
  134. package/src/components/states.css +1 -1
  135. package/src/components/stepper.css +2 -2
  136. package/src/components/table.css +15 -15
  137. package/src/components/tabs.css +3 -3
  138. package/src/components/timeline.css +1 -1
  139. package/src/components/timepicker.css +1 -1
  140. package/src/components/toast.css +3 -3
  141. package/src/components/tooltip.css +1 -1
  142. package/src/components/tree.css +2 -2
  143. package/tokens/breakpoints.d.ts +2 -2
  144. package/tokens/breakpoints.mjs +3 -3
  145. package/tokens/tokens.json +1 -1
@@ -1,5 +1,5 @@
1
- /* Freeday Tabs (WAI-ARIA APG) */
2
- /* position:relative containing block for out-of-flow content in the tabs (see base.css). */
1
+ /* Freeday. Tabs (WAI-ARIA APG) */
2
+ /* position:relative, containing block for out-of-flow content in the tabs (see base.css). */
3
3
  .fdy-tabs__list{position:relative;display:flex;gap:var(--space-1);border-bottom:var(--bw) solid var(--color-border);overflow-x:auto;}
4
4
  .fdy-tabs__tab{appearance:none;border:0;background:transparent;cursor:pointer;white-space:nowrap;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);padding:var(--space-3) var(--space-4);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard);}
5
5
  .fdy-tabs__tab:hover{color:var(--color-text);}
@@ -7,7 +7,7 @@
7
7
  .fdy-tabs__tab:disabled:hover,.fdy-tabs__tab[aria-disabled="true"]:hover{color:var(--color-text-muted);}
8
8
  /* `aria-current="page"` is honoured alongside `aria-selected="true"` so the tab look can be used for
9
9
  ROUTE-driven sub-navigation (/settings/profile · /settings/billing), where the tabs are real links.
10
- A link cannot be `aria-selected` that is invalid ARIA on an anchor; `aria-current` is the only
10
+ A link cannot be `aria-selected`, that is invalid ARIA on an anchor; `aria-current` is the only
11
11
  correct marker, and it is what a router sets. Use `.fdy-tabs` + `freeday-tabs.js` (roving tabindex,
12
12
  a panel per tab) for in-page tabs; use these classes on plain links for routed ones, and
13
13
  `.fdy-nav--horizontal` for an application's PRIMARY navigation. */
@@ -1,4 +1,4 @@
1
- /* Freeday Timeline (vertical event feed: dot markers on a connector line). Pure CSS. */
1
+ /* Freeday. Timeline (vertical event feed: dot markers on a connector line). Pure CSS. */
2
2
  .fdy-timeline{list-style:none;margin:0;padding:0;}
3
3
  .fdy-timeline__item{position:relative;padding:0 0 var(--space-5) var(--space-6);border-left:2px solid var(--color-border);}
4
4
  .fdy-timeline__item:last-child{border-left-color:transparent;padding-bottom:0;}
@@ -1,4 +1,4 @@
1
- /* Freeday Time picker (input-styled trigger + scrollable time-list popover).
1
+ /* Freeday. Time picker (input-styled trigger + scrollable time-list popover).
2
2
  * Built by freeday-timepicker.js from an empty [data-fdy-timepicker] wrapper.
3
3
  * Trigger visual mirrors the date picker for a consistent control family. */
4
4
  .fdy-timepicker{position:relative;display:inline-block;width:100%;max-width:11rem;}
@@ -1,11 +1,11 @@
1
- /* Freeday Toast (transient notification) */
1
+ /* Freeday. Toast (transient notification) */
2
2
  /* The region is a POPOVER, not merely a high z-index.
3
- `.fdy-modal` is a native <dialog> opened with showModal(), which puts it in the TOP LAYER a
3
+ `.fdy-modal` is a native <dialog> opened with showModal(), which puts it in the TOP LAYER, a
4
4
  layer above the whole z-index universe, so no number here could ever beat it. A toast raised by
5
5
  an action taken inside a modal was painted behind that modal's backdrop: dimmed, unreadable, and
6
6
  most of it under the dialog itself. `freeday-toast.js` calls showPopover() as each toast is
7
7
  added, which puts the region in the top layer too, and last-in wins there.
8
- Everything after `pointer-events` is undoing the UA's [popover] defaults it arrives with
8
+ Everything after `pointer-events` is undoing the UA's [popover] defaults, it arrives with
9
9
  inset:0, auto margins, a border, padding, a Canvas background and overflow:auto, none of which a
10
10
  toast stack wants. Where showPopover() is unavailable the element is still an ordinary fixed
11
11
  block at z-index 200, which is exactly what it was before. */
@@ -1,4 +1,4 @@
1
- /* Freeday Tooltip (CSS-only, hover/focus) */
1
+ /* Freeday. Tooltip (CSS-only, hover/focus) */
2
2
  .fdy-tooltip-wrap{position:relative;display:inline-flex;}
3
3
  .fdy-tooltip{position:absolute;bottom:calc(100% + var(--space-2));left:50%;z-index:150;max-width:16rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:var(--leading-snug);color:var(--color-inverse-text);background:var(--color-inverse-surface);box-shadow:var(--shadow-2);opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(4px);transition:opacity var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard);}
4
4
  .fdy-tooltip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:.3rem solid transparent;border-top-color:var(--color-inverse-surface);}
@@ -1,4 +1,4 @@
1
- /* Freeday Tree view (hierarchy via nested native <details>: keyboard-toggle, zero-JS).
1
+ /* Freeday. Tree view (hierarchy via nested native <details>: keyboard-toggle, zero-JS).
2
2
  * Branches expand/collapse; leaves are plain rows. Chevron + optional folder/file icons. */
3
3
  .fdy-tree{list-style:none;margin:0;padding:0;font-size:var(--text-sm);}
4
4
  .fdy-tree ul{list-style:none;margin:0;padding-left:var(--space-4);}
@@ -15,7 +15,7 @@
15
15
  /* Disabled row (branch summary or leaf): dimmed, no hover, not interactive. */
16
16
  .fdy-tree__leaf[aria-disabled="true"],.fdy-tree__branch[aria-disabled="true"] > summary{opacity:.5;cursor:not-allowed;pointer-events:none;}
17
17
 
18
- /* Checkbox variant a selectable tree (cascading parent/child via freeday-tree.js).
18
+ /* Checkbox variant, a selectable tree (cascading parent/child via freeday-tree.js).
19
19
  * A native <input class="fdy-checkbox"> sits at the start of every row; a partially
20
20
  * selected branch shows the native :indeterminate dash. The checkbox stops click
21
21
  * propagation, so toggling selection never expands/collapses the branch. */
@@ -1,8 +1,8 @@
1
- // Types for tokens/breakpoints.mjs the JS-side breakpoint scale in px
1
+ // Types for tokens/breakpoints.mjs: the JS-side breakpoint scale in px
2
2
  // (mirrors the sm/md/lg/xl utilities in src/components/breakpoints.css).
3
3
  export declare const breakpoints: {
4
4
  /** Width at which .fdy-app's sidebar turns from off-canvas drawer into a static column.
5
- * Not part of the sm/md/lg/xl ramp it mirrors app-shell.css and nothing else. */
5
+ * Not part of the sm/md/lg/xl ramp; it mirrors app-shell.css and nothing else. */
6
6
  nav: number;
7
7
  sm: number;
8
8
  md: number;
@@ -1,11 +1,11 @@
1
- // Freeday breakpoint scale in px mirrors src/components/breakpoints.css utilities
1
+ // Freeday breakpoint scale in px, mirrors src/components/breakpoints.css utilities
2
2
  // (sm/md/lg/xl). CSS @media can't read custom properties, so this is the JS-side
3
3
  // source of the scale for matchMedia / app @media alignment.
4
4
  //
5
5
  // `nav` is not part of the sm/md/lg/xl ramp: it is the width at which .fdy-app switches the
6
6
  // sidebar from an off-canvas drawer (below) to a static column (at and above), hard-wired in
7
- // src/components/app-shell.css. Anything that has to agree with the shell a matchMedia guard
7
+ // src/components/app-shell.css. Anything that has to agree with the shell, a matchMedia guard
8
8
  // deciding whether the nav toggle sets --nav-open or --nav-collapsed, a utility-framework
9
- // variant must use THIS number, not md. Aligning such code to md (960) leaves 721–959px
9
+ // variant, must use THIS number, not md. Aligning such code to md (960) leaves 721–959px
10
10
  // broken: the sidebar is already static while the script still thinks it is an overlay.
11
11
  export const breakpoints = { nav: 721, sm: 600, md: 960, lg: 1280, xl: 1920 };
@@ -118,7 +118,7 @@
118
118
  "tick": { "$value": "{slate.400}", "$dark": "{slate.600}" }
119
119
  },
120
120
 
121
- "_comment_tone": "General categorical palette the same 8 validated hues as chart, aliased under a chart-neutral name for avatars, chips, tags, legend swatches (theme-follows via chart's own $dark).",
121
+ "_comment_tone": "General categorical palette: the same 8 validated hues as chart, aliased under a chart-neutral name for avatars, chips, tags, legend swatches (theme-follows via chart's own $dark).",
122
122
  "tone": {
123
123
  "1": { "$value": "{chart.1}" },
124
124
  "2": { "$value": "{chart.2}" },