@loomui-ng/ui 0.0.0-stage → 0.1.1
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.
- package/LICENSE +21 -0
- package/README.md +46 -2
- package/accordion/README.md +38 -0
- package/alert/README.md +32 -0
- package/alert-dialog/README.md +37 -0
- package/aspect-ratio/README.md +24 -0
- package/attachment/README.md +40 -0
- package/avatar/README.md +34 -0
- package/badge/README.md +29 -0
- package/breadcrumb/README.md +33 -0
- package/bubble/README.md +32 -0
- package/button/README.md +31 -0
- package/button-group/README.md +30 -0
- package/calendar/README.md +35 -0
- package/card/README.md +41 -0
- package/carousel/README.md +41 -0
- package/chart/README.md +25 -0
- package/checkbox/README.md +31 -0
- package/collapsible/README.md +31 -0
- package/combobox/README.md +47 -0
- package/command/README.md +44 -0
- package/context-menu/README.md +36 -0
- package/data-table/README.md +39 -0
- package/date-picker/README.md +23 -0
- package/dialog/README.md +52 -0
- package/direction/README.md +19 -0
- package/drawer/README.md +37 -0
- package/dropdown-menu/README.md +46 -0
- package/empty/README.md +38 -0
- package/fesm2022/loomui-ng-ui-accordion.mjs +555 -0
- package/fesm2022/loomui-ng-ui-accordion.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-alert-dialog.mjs +652 -0
- package/fesm2022/loomui-ng-ui-alert-dialog.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-alert.mjs +286 -0
- package/fesm2022/loomui-ng-ui-alert.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-aspect-ratio.mjs +97 -0
- package/fesm2022/loomui-ng-ui-aspect-ratio.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-attachment.mjs +713 -0
- package/fesm2022/loomui-ng-ui-attachment.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-avatar.mjs +561 -0
- package/fesm2022/loomui-ng-ui-avatar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-badge.mjs +102 -0
- package/fesm2022/loomui-ng-ui-badge.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-breadcrumb.mjs +520 -0
- package/fesm2022/loomui-ng-ui-breadcrumb.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-bubble.mjs +386 -0
- package/fesm2022/loomui-ng-ui-bubble.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-button-group.mjs +193 -0
- package/fesm2022/loomui-ng-ui-button-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-button.mjs +162 -0
- package/fesm2022/loomui-ng-ui-button.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-calendar.mjs +681 -0
- package/fesm2022/loomui-ng-ui-calendar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-card.mjs +461 -0
- package/fesm2022/loomui-ng-ui-card.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-carousel.mjs +532 -0
- package/fesm2022/loomui-ng-ui-carousel.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-chart.mjs +373 -0
- package/fesm2022/loomui-ng-ui-chart.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-checkbox.mjs +265 -0
- package/fesm2022/loomui-ng-ui-checkbox.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-collapsible.mjs +274 -0
- package/fesm2022/loomui-ng-ui-collapsible.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-combobox.mjs +971 -0
- package/fesm2022/loomui-ng-ui-combobox.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-command.mjs +982 -0
- package/fesm2022/loomui-ng-ui-command.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-context-menu.mjs +1359 -0
- package/fesm2022/loomui-ng-ui-context-menu.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-data-table.mjs +535 -0
- package/fesm2022/loomui-ng-ui-data-table.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-date-picker.mjs +312 -0
- package/fesm2022/loomui-ng-ui-date-picker.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-dialog.mjs +508 -0
- package/fesm2022/loomui-ng-ui-dialog.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-direction.mjs +112 -0
- package/fesm2022/loomui-ng-ui-direction.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-drawer.mjs +590 -0
- package/fesm2022/loomui-ng-ui-drawer.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-dropdown-menu.mjs +1322 -0
- package/fesm2022/loomui-ng-ui-dropdown-menu.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-empty.mjs +408 -0
- package/fesm2022/loomui-ng-ui-empty.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-field.mjs +630 -0
- package/fesm2022/loomui-ng-ui-field.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-hover-card.mjs +230 -0
- package/fesm2022/loomui-ng-ui-hover-card.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-icon.mjs +498 -0
- package/fesm2022/loomui-ng-ui-icon.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-input-group.mjs +463 -0
- package/fesm2022/loomui-ng-ui-input-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-input-otp.mjs +586 -0
- package/fesm2022/loomui-ng-ui-input-otp.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-input.mjs +289 -0
- package/fesm2022/loomui-ng-ui-input.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-item.mjs +598 -0
- package/fesm2022/loomui-ng-ui-item.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-kbd.mjs +129 -0
- package/fesm2022/loomui-ng-ui-kbd.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-label.mjs +68 -0
- package/fesm2022/loomui-ng-ui-label.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-marker.mjs +234 -0
- package/fesm2022/loomui-ng-ui-marker.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-menubar.mjs +1523 -0
- package/fesm2022/loomui-ng-ui-menubar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-message-scroller.mjs +519 -0
- package/fesm2022/loomui-ng-ui-message-scroller.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-message.mjs +408 -0
- package/fesm2022/loomui-ng-ui-message.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-native-select.mjs +389 -0
- package/fesm2022/loomui-ng-ui-native-select.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-navigation-menu.mjs +609 -0
- package/fesm2022/loomui-ng-ui-navigation-menu.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-pagination.mjs +611 -0
- package/fesm2022/loomui-ng-ui-pagination.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-popover.mjs +358 -0
- package/fesm2022/loomui-ng-ui-popover.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-progress.mjs +159 -0
- package/fesm2022/loomui-ng-ui-progress.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-questionnaire.mjs +1012 -0
- package/fesm2022/loomui-ng-ui-questionnaire.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-radio-group.mjs +399 -0
- package/fesm2022/loomui-ng-ui-radio-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-resizable.mjs +518 -0
- package/fesm2022/loomui-ng-ui-resizable.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-scroll-area.mjs +135 -0
- package/fesm2022/loomui-ng-ui-scroll-area.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-select.mjs +863 -0
- package/fesm2022/loomui-ng-ui-select.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-separator.mjs +114 -0
- package/fesm2022/loomui-ng-ui-separator.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-sheet.mjs +530 -0
- package/fesm2022/loomui-ng-ui-sheet.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-sidebar.mjs +1918 -0
- package/fesm2022/loomui-ng-ui-sidebar.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-skeleton.mjs +69 -0
- package/fesm2022/loomui-ng-ui-skeleton.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-slider.mjs +390 -0
- package/fesm2022/loomui-ng-ui-slider.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-spinner.mjs +85 -0
- package/fesm2022/loomui-ng-ui-spinner.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-switch.mjs +212 -0
- package/fesm2022/loomui-ng-ui-switch.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-table.mjs +559 -0
- package/fesm2022/loomui-ng-ui-table.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-tabs.mjs +544 -0
- package/fesm2022/loomui-ng-ui-tabs.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-textarea.mjs +206 -0
- package/fesm2022/loomui-ng-ui-textarea.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-toast.mjs +432 -0
- package/fesm2022/loomui-ng-ui-toast.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-toggle-group.mjs +477 -0
- package/fesm2022/loomui-ng-ui-toggle-group.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-toggle.mjs +219 -0
- package/fesm2022/loomui-ng-ui-toggle.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-tooltip.mjs +240 -0
- package/fesm2022/loomui-ng-ui-tooltip.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-typography.mjs +129 -0
- package/fesm2022/loomui-ng-ui-typography.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui-utils.mjs +1533 -0
- package/fesm2022/loomui-ng-ui-utils.mjs.map +1 -0
- package/fesm2022/loomui-ng-ui.mjs +4 -0
- package/fesm2022/loomui-ng-ui.mjs.map +1 -0
- package/field/README.md +43 -0
- package/hover-card/README.md +31 -0
- package/icon/README.md +42 -0
- package/input/README.md +26 -0
- package/input-group/README.md +40 -0
- package/input-otp/README.md +35 -0
- package/item/README.md +33 -0
- package/kbd/README.md +21 -0
- package/label/README.md +24 -0
- package/marker/README.md +24 -0
- package/menubar/README.md +40 -0
- package/message/README.md +32 -0
- package/message-scroller/README.md +40 -0
- package/native-select/README.md +26 -0
- package/navigation-menu/README.md +39 -0
- package/package.json +325 -3
- package/pagination/README.md +37 -0
- package/popover/README.md +37 -0
- package/progress/README.md +25 -0
- package/questionnaire/README.md +52 -0
- package/radio-group/README.md +33 -0
- package/resizable/README.md +37 -0
- package/scroll-area/README.md +25 -0
- package/select/README.md +45 -0
- package/separator/README.md +28 -0
- package/sheet/README.md +38 -0
- package/sidebar/README.md +60 -0
- package/skeleton/README.md +21 -0
- package/slider/README.md +29 -0
- package/spinner/README.md +15 -0
- package/styles/loomui.css +330 -0
- package/switch/README.md +29 -0
- package/table/README.md +31 -0
- package/tabs/README.md +42 -0
- package/textarea/README.md +28 -0
- package/toast/README.md +27 -0
- package/toggle/README.md +27 -0
- package/toggle-group/README.md +37 -0
- package/tooltip/README.md +31 -0
- package/types/loomui-ng-ui-accordion.d.ts +141 -0
- package/types/loomui-ng-ui-alert-dialog.d.ts +175 -0
- package/types/loomui-ng-ui-alert.d.ts +77 -0
- package/types/loomui-ng-ui-aspect-ratio.d.ts +31 -0
- package/types/loomui-ng-ui-attachment.d.ts +192 -0
- package/types/loomui-ng-ui-avatar.d.ts +147 -0
- package/types/loomui-ng-ui-badge.d.ts +32 -0
- package/types/loomui-ng-ui-breadcrumb.d.ts +118 -0
- package/types/loomui-ng-ui-bubble.d.ts +100 -0
- package/types/loomui-ng-ui-button-group.d.ts +51 -0
- package/types/loomui-ng-ui-button.d.ts +57 -0
- package/types/loomui-ng-ui-calendar.d.ts +171 -0
- package/types/loomui-ng-ui-card.d.ts +123 -0
- package/types/loomui-ng-ui-carousel.d.ts +140 -0
- package/types/loomui-ng-ui-chart.d.ts +95 -0
- package/types/loomui-ng-ui-checkbox.d.ts +62 -0
- package/types/loomui-ng-ui-collapsible.d.ts +74 -0
- package/types/loomui-ng-ui-combobox.d.ts +229 -0
- package/types/loomui-ng-ui-command.d.ts +231 -0
- package/types/loomui-ng-ui-context-menu.d.ts +288 -0
- package/types/loomui-ng-ui-data-table.d.ts +111 -0
- package/types/loomui-ng-ui-date-picker.d.ts +63 -0
- package/types/loomui-ng-ui-dialog.d.ts +127 -0
- package/types/loomui-ng-ui-direction.d.ts +42 -0
- package/types/loomui-ng-ui-drawer.d.ts +149 -0
- package/types/loomui-ng-ui-dropdown-menu.d.ts +258 -0
- package/types/loomui-ng-ui-empty.d.ts +109 -0
- package/types/loomui-ng-ui-field.d.ts +169 -0
- package/types/loomui-ng-ui-hover-card.d.ts +62 -0
- package/types/loomui-ng-ui-icon.d.ts +156 -0
- package/types/loomui-ng-ui-input-group.d.ts +130 -0
- package/types/loomui-ng-ui-input-otp.d.ts +149 -0
- package/types/loomui-ng-ui-input.d.ts +89 -0
- package/types/loomui-ng-ui-item.d.ts +157 -0
- package/types/loomui-ng-ui-kbd.d.ts +36 -0
- package/types/loomui-ng-ui-label.d.ts +19 -0
- package/types/loomui-ng-ui-marker.d.ts +61 -0
- package/types/loomui-ng-ui-menubar.d.ts +321 -0
- package/types/loomui-ng-ui-message-scroller.d.ts +138 -0
- package/types/loomui-ng-ui-message.d.ts +109 -0
- package/types/loomui-ng-ui-native-select.d.ts +84 -0
- package/types/loomui-ng-ui-navigation-menu.d.ts +160 -0
- package/types/loomui-ng-ui-pagination.d.ts +130 -0
- package/types/loomui-ng-ui-popover.d.ts +90 -0
- package/types/loomui-ng-ui-progress.d.ts +39 -0
- package/types/loomui-ng-ui-questionnaire.d.ts +274 -0
- package/types/loomui-ng-ui-radio-group.d.ts +109 -0
- package/types/loomui-ng-ui-resizable.d.ts +121 -0
- package/types/loomui-ng-ui-scroll-area.d.ts +44 -0
- package/types/loomui-ng-ui-select.d.ts +204 -0
- package/types/loomui-ng-ui-separator.d.ts +35 -0
- package/types/loomui-ng-ui-sheet.d.ts +124 -0
- package/types/loomui-ng-ui-sidebar.d.ts +485 -0
- package/types/loomui-ng-ui-skeleton.d.ts +20 -0
- package/types/loomui-ng-ui-slider.d.ts +103 -0
- package/types/loomui-ng-ui-spinner.d.ts +19 -0
- package/types/loomui-ng-ui-switch.d.ts +56 -0
- package/types/loomui-ng-ui-table.d.ts +148 -0
- package/types/loomui-ng-ui-tabs.d.ts +148 -0
- package/types/loomui-ng-ui-textarea.d.ts +52 -0
- package/types/loomui-ng-ui-toast.d.ts +97 -0
- package/types/loomui-ng-ui-toggle-group.d.ts +138 -0
- package/types/loomui-ng-ui-toggle.d.ts +63 -0
- package/types/loomui-ng-ui-tooltip.d.ts +63 -0
- package/types/loomui-ng-ui-typography.d.ts +42 -0
- package/types/loomui-ng-ui-utils.d.ts +392 -0
- package/types/loomui-ng-ui.d.ts +5 -0
- package/typography/README.md +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loomui-ng-ui-calendar.mjs","names":[],"sources":["../../../libs/ui/calendar/calendar.classes.ts","../../../libs/ui/calendar/calendar.ts"],"sourcesContent":["// GENERATED by tools/gen-calendar-classes.mjs from docs/evidence (REA captures of the calendar + date-picker demos).\n// rdp-*/cn-* hook classes removed; pl/pr/rounded-l/rounded-r converted to logical.\n\nexport const calendarCalendarClass =\n 'w-fit group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent rtl:**:[.rdp-button\\\\_next>svg]:rotate-180 rtl:**:[.rdp-button\\\\_previous>svg]:rotate-180';\n\nexport const calendarMonthsClass =\n 'relative flex flex-col gap-4 md:flex-row';\n\nexport const calendarNavClass =\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1';\n\nexport const calendarNavButtonClass =\n 'group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 gap-1.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2 size-(--cell-size) p-0 select-none aria-disabled:opacity-50';\n\nexport const calendarMonthClass =\n 'flex w-full flex-col gap-4';\n\nexport const calendarCaptionClass =\n 'flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)';\n\nexport const calendarCaptionLabelClass =\n 'font-medium select-none text-sm';\n\nexport const calendarGridClass =\n 'w-full border-collapse';\n\nexport const calendarWeekdaysClass =\n 'flex';\n\nexport const calendarWeekdayClass =\n 'flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none'; // hand-fixed: generator matched rdp-weekdays; regenerate with the capture to verify\n\nexport const calendarWeekClass =\n 'mt-2 flex w-full';\n\n/** Day cell (td) classes by state, as observed. */\nexport const calendarDayCellClass: Record<string, string> = {\n 'outside': 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius) [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) text-muted-foreground aria-selected:text-muted-foreground',\n 'base': 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius) [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius)',\n 'selected+today': 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius) [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none',\n 'selected': 'group/day relative aspect-square h-full w-full p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-md [&:last-child[data-selected=true]_button]:rounded-e-md',\n 'today': 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius) [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none',\n 'disabled': 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius) [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) text-muted-foreground opacity-50 [&>button]:line-through opacity-100',\n 'hidden+outside': 'group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius) [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) invisible text-muted-foreground aria-selected:text-muted-foreground',\n};\n\n/** Day button: one string for every state; selection/range/today are driven by data-* attributes inside it. */\nexport const calendarDayButtonClass =\n 'group/button shrink-0 items-center justify-center rounded-lg border-transparent bg-clip-padding text-sm whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-e-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-s-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70';\n","import { Directionality } from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n numberAttribute,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '@loomui-ng/ui/utils';\nimport {\n calendarCalendarClass,\n calendarCaptionClass,\n calendarCaptionLabelClass,\n calendarDayButtonClass,\n calendarDayCellClass,\n calendarGridClass,\n calendarMonthClass,\n calendarMonthsClass,\n calendarNavButtonClass,\n calendarNavClass,\n calendarWeekClass,\n calendarWeekdayClass,\n calendarWeekdaysClass,\n} from './calendar.classes';\nimport { UiIconSvg } from '@loomui-ng/ui/icon';\nimport { UiElementHost } from '@loomui-ng/ui/utils';\n\nexport interface DateRange {\n from?: Date;\n to?: Date;\n}\nexport type CalendarSelection = Date | Date[] | DateRange | undefined;\n\ninterface DayCell {\n date: Date;\n key: string;\n outside: boolean;\n today: boolean;\n disabled: boolean;\n selected: boolean;\n rangeStart: boolean;\n rangeMiddle: boolean;\n rangeEnd: boolean;\n month: string;\n}\n\nconst startOfDay = (d: Date) => new Date(d.getFullYear(), d.getMonth(), d.getDate());\nconst addDays = (d: Date, n: number) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + n);\nconst addMonths = (d: Date, n: number) => {\n const t = new Date(d.getFullYear(), d.getMonth() + n, 1);\n const last = new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate();\n return new Date(t.getFullYear(), t.getMonth(), Math.min(d.getDate(), last));\n};\nconst sameDay = (a?: Date, b?: Date) => !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nconst iso = (d: Date) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;\n\n/**\n * <div uiCalendar mode=\"single\" [(selected)]=\"date\"></div>\n * Observed markup (react-day-picker v9): .rdp-root > months > nav + month > caption + table[role=grid] > thead + tbody > tr > td[role=gridcell][data-day]\n * > button. Keyboard (react-day-picker): arrows ±1 day / ±1 week (mirrored in RTL), PageUp/PageDown ±1 month (Shift: year),\n * Home/End start/end of week, Enter/Space select. Own implementation with native Date + Intl (no date library).\n */\n@Component({\n selector: 'div[uiCalendar], ui-calendar', hostDirectives: [UiElementHost],\n imports: [UiIconSvg],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => UiCalendar), multi: true }],\n host: {\n 'data-slot': 'calendar',\n '[attr.data-mode]': 'mode()',\n '[attr.data-multiple-months]': 'numberOfMonths() > 1 ? \"true\" : null',\n '[attr.dir]': 'dir.value',\n '[attr.class]': 'classes()',\n },\n template: `\n <div [class]=\"monthsClass\">\n <nav aria-label=\"\" [class]=\"navClass\">\n <button type=\"button\" [class]=\"navButtonClass\" aria-label=\"Go to the Previous Month\" [disabled]=\"prevDisabled()\" (click)=\"go(-1)\">\n <svg uiIcon=\"chevron-left\" class=\"size-4 rtl:rotate-180\"></svg>\n </button>\n <button type=\"button\" [class]=\"navButtonClass\" aria-label=\"Go to the Next Month\" [disabled]=\"nextDisabled()\" (click)=\"go(1)\">\n <svg uiIcon=\"chevron-right\" class=\"size-4 rtl:rotate-180\"></svg>\n </button>\n </nav>\n @for (m of months(); track m.key) {\n <div [class]=\"monthClass\">\n <div [class]=\"captionClass\"><span role=\"status\" aria-live=\"polite\" [class]=\"captionLabelClass\">{{ m.label }}</span></div>\n <table role=\"grid\" [attr.aria-multiselectable]=\"mode() !== 'single'\" [attr.aria-label]=\"m.label\" [class]=\"gridClass\">\n <thead aria-hidden=\"true\">\n <tr [class]=\"weekdaysClass\">\n @for (w of weekdays(); track w.long) {\n <th [attr.aria-label]=\"w.long\" [class]=\"weekdayClass\">{{ w.short }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (week of m.weeks; track $index) {\n <tr [class]=\"weekClass\">\n @for (d of week; track d.key) {\n <td\n role=\"gridcell\"\n [attr.aria-selected]=\"d.selected || null\"\n [attr.data-day]=\"d.key\"\n [attr.data-month]=\"m.key\"\n [attr.data-today]=\"d.today || null\"\n [attr.data-outside]=\"d.outside || null\"\n [attr.data-selected]=\"d.selected || null\"\n [attr.data-disabled]=\"d.disabled || null\"\n [attr.data-hidden]=\"d.outside && !showOutsideDays() || null\"\n [class]=\"cellClass(d)\"\n >\n @if (!(d.outside && !showOutsideDays())) {\n <button\n type=\"button\"\n data-slot=\"button\"\n data-variant=\"ghost\"\n data-size=\"icon\"\n [attr.data-day]=\"d.date.toLocaleDateString()\"\n [attr.data-selected-single]=\"mode() === 'single' && d.selected && !d.rangeStart && !d.rangeEnd && !d.rangeMiddle\"\n [attr.data-range-start]=\"d.rangeStart\"\n [attr.data-range-middle]=\"d.rangeMiddle\"\n [attr.data-range-end]=\"d.rangeEnd\"\n [attr.aria-label]=\"dayLabel(d.date)\"\n [disabled]=\"d.disabled\"\n [attr.tabindex]=\"d.key === tabKey() ? 0 : -1\"\n [class]=\"dayButtonClass\"\n (click)=\"pick(d)\"\n (focus)=\"focused.set(d.key)\"\n (keydown)=\"onKeydown($event, d)\"\n >{{ d.date.getDate() }}</button>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n `,\n})\nexport class UiCalendar implements ControlValueAccessor {\n readonly mode = input<'single' | 'multiple' | 'range'>('single');\n readonly selected = model<CalendarSelection>(undefined);\n readonly month = model<Date>(startOfDay(new Date()));\n readonly numberOfMonths = input(1, { transform: numberAttribute });\n readonly showOutsideDays = input(true, { transform: booleanAttribute });\n readonly weekStartsOn = input(0, { transform: numberAttribute });\n readonly locale = input<string>(typeof document !== 'undefined' ? document.documentElement.lang || 'en-US' : 'en-US');\n readonly minDate = input<Date | undefined>(undefined);\n readonly maxDate = input<Date | undefined>(undefined);\n /** Predicate or list of disabled dates. */\n readonly disabled = input<((d: Date) => boolean) | Date[] | undefined>(undefined);\n /** Day cell (td) uses fixed 6 weeks? Off by default (react-day-picker default). */\n readonly required = input(false, { transform: booleanAttribute });\n readonly userClass = input<string>('', { alias: 'class' });\n\n protected readonly dir = inject(Directionality);\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n protected readonly focused = signal<string | null>(null);\n private onChange: (v: CalendarSelection) => void = () => {};\n private onTouched: () => void = () => {};\n\n protected readonly classes = computed(() => cn(calendarCalendarClass, this.userClass()));\n protected readonly monthsClass = calendarMonthsClass;\n protected readonly navClass = calendarNavClass;\n protected readonly navButtonClass = calendarNavButtonClass;\n protected readonly monthClass = calendarMonthClass;\n protected readonly captionClass = calendarCaptionClass;\n protected readonly captionLabelClass = calendarCaptionLabelClass;\n protected readonly gridClass = calendarGridClass;\n protected readonly weekdaysClass = calendarWeekdaysClass;\n protected readonly weekdayClass = calendarWeekdayClass;\n protected readonly weekClass = calendarWeekClass;\n protected readonly dayButtonClass = calendarDayButtonClass;\n\n private readonly monthFmt = computed(() => new Intl.DateTimeFormat(this.locale(), { month: 'long', year: 'numeric' }));\n private readonly dayFmt = computed(() => new Intl.DateTimeFormat(this.locale(), { dateStyle: 'full' }));\n\n protected readonly weekdays = computed(() => {\n const start = this.weekStartsOn();\n const short = new Intl.DateTimeFormat(this.locale(), { weekday: 'short' });\n const long = new Intl.DateTimeFormat(this.locale(), { weekday: 'long' });\n const base = new Date(2023, 0, 1); // a Sunday\n return Array.from({ length: 7 }, (_, i) => {\n const d = addDays(base, (start + i) % 7);\n const s = short.format(d);\n return { short: this.locale().startsWith('en') ? s.slice(0, 2) : s, long: long.format(d) };\n });\n });\n\n private isDisabled(d: Date): boolean {\n const dis = this.disabled();\n if (this.minDate() && startOfDay(d) < startOfDay(this.minDate()!)) return true;\n if (this.maxDate() && startOfDay(d) > startOfDay(this.maxDate()!)) return true;\n if (Array.isArray(dis)) return dis.some((x) => sameDay(x, d));\n return !!dis?.(d);\n }\n\n private isSelected(d: Date): boolean {\n const s = this.selected();\n if (!s) return false;\n if (s instanceof Date) return sameDay(s, d);\n if (Array.isArray(s)) return s.some((x) => sameDay(x, d));\n const r = s as DateRange;\n if (r.from && r.to) return startOfDay(d) >= startOfDay(r.from) && startOfDay(d) <= startOfDay(r.to);\n return sameDay(r.from, d);\n }\n\n protected readonly months = computed(() => {\n const out = [];\n const first = this.month();\n const today = startOfDay(new Date());\n const r = this.mode() === 'range' ? ((this.selected() as DateRange) ?? {}) : null;\n for (let i = 0; i < this.numberOfMonths(); i++) {\n const base = new Date(first.getFullYear(), first.getMonth() + i, 1);\n const lead = (base.getDay() - this.weekStartsOn() + 7) % 7;\n const daysInMonth = new Date(base.getFullYear(), base.getMonth() + 1, 0).getDate();\n const total = Math.ceil((lead + daysInMonth) / 7) * 7;\n const cells: DayCell[] = [];\n for (let n = 0; n < total; n++) {\n const date = addDays(base, n - lead);\n const outside = date.getMonth() !== base.getMonth();\n const selected = this.isSelected(date);\n const rangeStart = !!r?.from && sameDay(r.from, date);\n const rangeEnd = !!r?.to && sameDay(r.to, date);\n cells.push({\n date,\n key: iso(date),\n outside,\n today: sameDay(date, today),\n disabled: this.isDisabled(date),\n selected,\n rangeStart,\n rangeEnd,\n rangeMiddle: !!r && selected && !rangeStart && !rangeEnd,\n month: iso(base).slice(0, 7),\n });\n }\n const weeks: DayCell[][] = [];\n for (let w = 0; w < cells.length; w += 7) weeks.push(cells.slice(w, w + 7));\n out.push({ key: iso(base).slice(0, 7), label: this.monthFmt().format(base), weeks });\n }\n return out;\n });\n\n protected readonly tabKey = computed(() => {\n const f = this.focused();\n const all = this.months().flatMap((m) => m.weeks.flat()).filter((d) => !d.outside && !d.disabled);\n if (f && all.some((d) => d.key === f)) return f;\n const sel = all.find((d) => d.selected);\n return (sel ?? all.find((d) => d.today) ?? all[0])?.key ?? null;\n });\n\n protected readonly prevDisabled = computed(() => {\n const m = this.minDate();\n return !!m && new Date(this.month().getFullYear(), this.month().getMonth(), 0) < startOfDay(m);\n });\n protected readonly nextDisabled = computed(() => {\n const m = this.maxDate();\n return !!m && new Date(this.month().getFullYear(), this.month().getMonth() + this.numberOfMonths(), 1) > startOfDay(m);\n });\n\n protected dayLabel(d: Date): string {\n return this.dayFmt().format(d);\n }\n\n protected cellClass(d: DayCell): string {\n const map = calendarDayCellClass;\n if (d.outside && !this.showOutsideDays()) return map['hidden+outside'] ?? map['base'];\n if (d.outside) return map['outside'] ?? map['base'];\n if (d.disabled) return map['disabled'] ?? map['base'];\n if (d.selected && d.today) return map['selected+today'] ?? map['selected'] ?? map['base'];\n if (d.selected && this.mode() === 'range') return map['selected'] ?? map['base'];\n if (d.today) return map['today'] ?? map['base'];\n return map['base'];\n }\n\n protected go(delta: number): void {\n this.month.set(addMonths(this.month(), delta));\n }\n\n protected pick(d: DayCell): void {\n if (d.disabled) return;\n const cur = this.selected();\n let next: CalendarSelection;\n switch (this.mode()) {\n case 'single':\n next = sameDay(cur as Date | undefined, d.date) && !this.required() ? undefined : d.date;\n break;\n case 'multiple': {\n const list = Array.isArray(cur) ? cur : [];\n next = list.some((x) => sameDay(x, d.date)) ? list.filter((x) => !sameDay(x, d.date)) : [...list, d.date];\n break;\n }\n case 'range': {\n const r = (cur as DateRange) ?? {};\n if (!r.from || (r.from && r.to)) next = { from: d.date, to: undefined };\n else next = d.date < r.from ? { from: d.date, to: r.from } : { from: r.from, to: d.date };\n break;\n }\n }\n this.selected.set(next);\n this.onChange(next);\n if (d.outside) this.month.set(new Date(d.date.getFullYear(), d.date.getMonth(), 1));\n }\n\n protected onKeydown(e: KeyboardEvent, d: DayCell): void {\n const rtl = this.dir.value === 'rtl';\n let target: Date | null = null;\n switch (e.key) {\n case 'ArrowLeft':\n target = addDays(d.date, rtl ? 1 : -1);\n break;\n case 'ArrowRight':\n target = addDays(d.date, rtl ? -1 : 1);\n break;\n case 'ArrowUp':\n target = addDays(d.date, -7);\n break;\n case 'ArrowDown':\n target = addDays(d.date, 7);\n break;\n case 'PageUp':\n target = addMonths(d.date, e.shiftKey ? -12 : -1);\n break;\n case 'PageDown':\n target = addMonths(d.date, e.shiftKey ? 12 : 1);\n break;\n case 'Home':\n target = addDays(d.date, -((d.date.getDay() - this.weekStartsOn() + 7) % 7));\n break;\n case 'End':\n target = addDays(d.date, 6 - ((d.date.getDay() - this.weekStartsOn() + 7) % 7));\n break;\n default:\n return;\n }\n e.preventDefault();\n this.focusDate(target);\n }\n\n private focusDate(date: Date): void {\n const first = this.month();\n const last = new Date(first.getFullYear(), first.getMonth() + this.numberOfMonths(), 0);\n if (date < new Date(first.getFullYear(), first.getMonth(), 1) || date > last) {\n this.month.set(new Date(date.getFullYear(), date.getMonth(), 1));\n }\n this.focused.set(iso(date));\n // wait for the grid to re-render, then focus the day button\n setTimeout(() => {\n this.el.querySelector<HTMLElement>(`td[data-day=\"${iso(date)}\"]:not([data-outside=\"true\"]) button`)?.focus();\n }, 0);\n }\n\n writeValue(v: CalendarSelection): void {\n this.selected.set(v ?? undefined);\n const first = v instanceof Date ? v : Array.isArray(v) ? v[0] : (v as DateRange | undefined)?.from;\n if (first) this.month.set(new Date(first.getFullYear(), first.getMonth(), 1));\n }\n registerOnChange(fn: (v: CalendarSelection) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n\nexport const UI_CALENDAR = [UiCalendar] as const;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { Directive, computed, input } from "@angular/core";
|
|
3
|
+
import * as i1 from "@loomui-ng/ui/utils";
|
|
4
|
+
import { UiElementHost, cn } from "@loomui-ng/ui/utils";
|
|
5
|
+
const CARD_BASE = "group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl";
|
|
6
|
+
var UiCard = class UiCard {
|
|
7
|
+
size = input("default", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
8
|
+
userClass = input("", {
|
|
9
|
+
...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
|
|
10
|
+
alias: "class"
|
|
11
|
+
});
|
|
12
|
+
classes = computed(() => cn(CARD_BASE, this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
14
|
+
minVersion: "12.0.0",
|
|
15
|
+
version: "22.2.2",
|
|
16
|
+
ngImport: i0,
|
|
17
|
+
type: UiCard,
|
|
18
|
+
deps: [],
|
|
19
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
20
|
+
});
|
|
21
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
22
|
+
minVersion: "17.1.0",
|
|
23
|
+
version: "22.2.2",
|
|
24
|
+
type: UiCard,
|
|
25
|
+
isStandalone: true,
|
|
26
|
+
selector: "[uiCard], ui-card",
|
|
27
|
+
inputs: {
|
|
28
|
+
size: {
|
|
29
|
+
classPropertyName: "size",
|
|
30
|
+
publicName: "size",
|
|
31
|
+
isSignal: true,
|
|
32
|
+
isRequired: false,
|
|
33
|
+
transformFunction: null
|
|
34
|
+
},
|
|
35
|
+
userClass: {
|
|
36
|
+
classPropertyName: "userClass",
|
|
37
|
+
publicName: "class",
|
|
38
|
+
isSignal: true,
|
|
39
|
+
isRequired: false,
|
|
40
|
+
transformFunction: null
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
host: {
|
|
44
|
+
attributes: { "data-slot": "card" },
|
|
45
|
+
properties: {
|
|
46
|
+
"attr.data-size": "size()",
|
|
47
|
+
"attr.class": "classes()"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
hostDirectives: [{ directive: i1.UiElementHost }],
|
|
51
|
+
ngImport: i0
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
55
|
+
minVersion: "12.0.0",
|
|
56
|
+
version: "22.2.2",
|
|
57
|
+
ngImport: i0,
|
|
58
|
+
type: UiCard,
|
|
59
|
+
decorators: [{
|
|
60
|
+
type: Directive,
|
|
61
|
+
args: [{
|
|
62
|
+
selector: "[uiCard], ui-card",
|
|
63
|
+
hostDirectives: [UiElementHost],
|
|
64
|
+
host: {
|
|
65
|
+
"data-slot": "card",
|
|
66
|
+
"[attr.data-size]": "size()",
|
|
67
|
+
"[attr.class]": "classes()"
|
|
68
|
+
}
|
|
69
|
+
}]
|
|
70
|
+
}],
|
|
71
|
+
propDecorators: {
|
|
72
|
+
size: [{
|
|
73
|
+
type: i0.Input,
|
|
74
|
+
args: [{
|
|
75
|
+
isSignal: true,
|
|
76
|
+
alias: "size",
|
|
77
|
+
required: false
|
|
78
|
+
}]
|
|
79
|
+
}],
|
|
80
|
+
userClass: [{
|
|
81
|
+
type: i0.Input,
|
|
82
|
+
args: [{
|
|
83
|
+
isSignal: true,
|
|
84
|
+
alias: "class",
|
|
85
|
+
required: false
|
|
86
|
+
}]
|
|
87
|
+
}]
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
var UiCardHeader = class UiCardHeader {
|
|
91
|
+
userClass = input("", {
|
|
92
|
+
...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
|
|
93
|
+
alias: "class"
|
|
94
|
+
});
|
|
95
|
+
classes = computed(() => cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
96
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
97
|
+
minVersion: "12.0.0",
|
|
98
|
+
version: "22.2.2",
|
|
99
|
+
ngImport: i0,
|
|
100
|
+
type: UiCardHeader,
|
|
101
|
+
deps: [],
|
|
102
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
103
|
+
});
|
|
104
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
105
|
+
minVersion: "17.1.0",
|
|
106
|
+
version: "22.2.2",
|
|
107
|
+
type: UiCardHeader,
|
|
108
|
+
isStandalone: true,
|
|
109
|
+
selector: "[uiCardHeader], ui-card-header",
|
|
110
|
+
inputs: { userClass: {
|
|
111
|
+
classPropertyName: "userClass",
|
|
112
|
+
publicName: "class",
|
|
113
|
+
isSignal: true,
|
|
114
|
+
isRequired: false,
|
|
115
|
+
transformFunction: null
|
|
116
|
+
} },
|
|
117
|
+
host: {
|
|
118
|
+
attributes: { "data-slot": "card-header" },
|
|
119
|
+
properties: { "attr.class": "classes()" }
|
|
120
|
+
},
|
|
121
|
+
hostDirectives: [{ directive: i1.UiElementHost }],
|
|
122
|
+
ngImport: i0
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
126
|
+
minVersion: "12.0.0",
|
|
127
|
+
version: "22.2.2",
|
|
128
|
+
ngImport: i0,
|
|
129
|
+
type: UiCardHeader,
|
|
130
|
+
decorators: [{
|
|
131
|
+
type: Directive,
|
|
132
|
+
args: [{
|
|
133
|
+
selector: "[uiCardHeader], ui-card-header",
|
|
134
|
+
hostDirectives: [UiElementHost],
|
|
135
|
+
host: {
|
|
136
|
+
"data-slot": "card-header",
|
|
137
|
+
"[attr.class]": "classes()"
|
|
138
|
+
}
|
|
139
|
+
}]
|
|
140
|
+
}],
|
|
141
|
+
propDecorators: { userClass: [{
|
|
142
|
+
type: i0.Input,
|
|
143
|
+
args: [{
|
|
144
|
+
isSignal: true,
|
|
145
|
+
alias: "class",
|
|
146
|
+
required: false
|
|
147
|
+
}]
|
|
148
|
+
}] }
|
|
149
|
+
});
|
|
150
|
+
var UiCardTitle = class UiCardTitle {
|
|
151
|
+
userClass = input("", {
|
|
152
|
+
...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
|
|
153
|
+
alias: "class"
|
|
154
|
+
});
|
|
155
|
+
classes = computed(() => cn("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
156
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
157
|
+
minVersion: "12.0.0",
|
|
158
|
+
version: "22.2.2",
|
|
159
|
+
ngImport: i0,
|
|
160
|
+
type: UiCardTitle,
|
|
161
|
+
deps: [],
|
|
162
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
163
|
+
});
|
|
164
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
165
|
+
minVersion: "17.1.0",
|
|
166
|
+
version: "22.2.2",
|
|
167
|
+
type: UiCardTitle,
|
|
168
|
+
isStandalone: true,
|
|
169
|
+
selector: "[uiCardTitle], ui-card-title",
|
|
170
|
+
inputs: { userClass: {
|
|
171
|
+
classPropertyName: "userClass",
|
|
172
|
+
publicName: "class",
|
|
173
|
+
isSignal: true,
|
|
174
|
+
isRequired: false,
|
|
175
|
+
transformFunction: null
|
|
176
|
+
} },
|
|
177
|
+
host: {
|
|
178
|
+
attributes: { "data-slot": "card-title" },
|
|
179
|
+
properties: { "attr.class": "classes()" }
|
|
180
|
+
},
|
|
181
|
+
hostDirectives: [{ directive: i1.UiElementHost }],
|
|
182
|
+
ngImport: i0
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
186
|
+
minVersion: "12.0.0",
|
|
187
|
+
version: "22.2.2",
|
|
188
|
+
ngImport: i0,
|
|
189
|
+
type: UiCardTitle,
|
|
190
|
+
decorators: [{
|
|
191
|
+
type: Directive,
|
|
192
|
+
args: [{
|
|
193
|
+
selector: "[uiCardTitle], ui-card-title",
|
|
194
|
+
hostDirectives: [UiElementHost],
|
|
195
|
+
host: {
|
|
196
|
+
"data-slot": "card-title",
|
|
197
|
+
"[attr.class]": "classes()"
|
|
198
|
+
}
|
|
199
|
+
}]
|
|
200
|
+
}],
|
|
201
|
+
propDecorators: { userClass: [{
|
|
202
|
+
type: i0.Input,
|
|
203
|
+
args: [{
|
|
204
|
+
isSignal: true,
|
|
205
|
+
alias: "class",
|
|
206
|
+
required: false
|
|
207
|
+
}]
|
|
208
|
+
}] }
|
|
209
|
+
});
|
|
210
|
+
var UiCardDescription = class UiCardDescription {
|
|
211
|
+
userClass = input("", {
|
|
212
|
+
...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
|
|
213
|
+
alias: "class"
|
|
214
|
+
});
|
|
215
|
+
classes = computed(() => cn("text-sm text-muted-foreground", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
216
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
217
|
+
minVersion: "12.0.0",
|
|
218
|
+
version: "22.2.2",
|
|
219
|
+
ngImport: i0,
|
|
220
|
+
type: UiCardDescription,
|
|
221
|
+
deps: [],
|
|
222
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
223
|
+
});
|
|
224
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
225
|
+
minVersion: "17.1.0",
|
|
226
|
+
version: "22.2.2",
|
|
227
|
+
type: UiCardDescription,
|
|
228
|
+
isStandalone: true,
|
|
229
|
+
selector: "[uiCardDescription], ui-card-description",
|
|
230
|
+
inputs: { userClass: {
|
|
231
|
+
classPropertyName: "userClass",
|
|
232
|
+
publicName: "class",
|
|
233
|
+
isSignal: true,
|
|
234
|
+
isRequired: false,
|
|
235
|
+
transformFunction: null
|
|
236
|
+
} },
|
|
237
|
+
host: {
|
|
238
|
+
attributes: { "data-slot": "card-description" },
|
|
239
|
+
properties: { "attr.class": "classes()" }
|
|
240
|
+
},
|
|
241
|
+
hostDirectives: [{ directive: i1.UiElementHost }],
|
|
242
|
+
ngImport: i0
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
246
|
+
minVersion: "12.0.0",
|
|
247
|
+
version: "22.2.2",
|
|
248
|
+
ngImport: i0,
|
|
249
|
+
type: UiCardDescription,
|
|
250
|
+
decorators: [{
|
|
251
|
+
type: Directive,
|
|
252
|
+
args: [{
|
|
253
|
+
selector: "[uiCardDescription], ui-card-description",
|
|
254
|
+
hostDirectives: [UiElementHost],
|
|
255
|
+
host: {
|
|
256
|
+
"data-slot": "card-description",
|
|
257
|
+
"[attr.class]": "classes()"
|
|
258
|
+
}
|
|
259
|
+
}]
|
|
260
|
+
}],
|
|
261
|
+
propDecorators: { userClass: [{
|
|
262
|
+
type: i0.Input,
|
|
263
|
+
args: [{
|
|
264
|
+
isSignal: true,
|
|
265
|
+
alias: "class",
|
|
266
|
+
required: false
|
|
267
|
+
}]
|
|
268
|
+
}] }
|
|
269
|
+
});
|
|
270
|
+
var UiCardAction = class UiCardAction {
|
|
271
|
+
userClass = input("", {
|
|
272
|
+
...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
|
|
273
|
+
alias: "class"
|
|
274
|
+
});
|
|
275
|
+
classes = computed(() => cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
276
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
277
|
+
minVersion: "12.0.0",
|
|
278
|
+
version: "22.2.2",
|
|
279
|
+
ngImport: i0,
|
|
280
|
+
type: UiCardAction,
|
|
281
|
+
deps: [],
|
|
282
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
283
|
+
});
|
|
284
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
285
|
+
minVersion: "17.1.0",
|
|
286
|
+
version: "22.2.2",
|
|
287
|
+
type: UiCardAction,
|
|
288
|
+
isStandalone: true,
|
|
289
|
+
selector: "[uiCardAction], ui-card-action",
|
|
290
|
+
inputs: { userClass: {
|
|
291
|
+
classPropertyName: "userClass",
|
|
292
|
+
publicName: "class",
|
|
293
|
+
isSignal: true,
|
|
294
|
+
isRequired: false,
|
|
295
|
+
transformFunction: null
|
|
296
|
+
} },
|
|
297
|
+
host: {
|
|
298
|
+
attributes: { "data-slot": "card-action" },
|
|
299
|
+
properties: { "attr.class": "classes()" }
|
|
300
|
+
},
|
|
301
|
+
hostDirectives: [{ directive: i1.UiElementHost }],
|
|
302
|
+
ngImport: i0
|
|
303
|
+
});
|
|
304
|
+
};
|
|
305
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
306
|
+
minVersion: "12.0.0",
|
|
307
|
+
version: "22.2.2",
|
|
308
|
+
ngImport: i0,
|
|
309
|
+
type: UiCardAction,
|
|
310
|
+
decorators: [{
|
|
311
|
+
type: Directive,
|
|
312
|
+
args: [{
|
|
313
|
+
selector: "[uiCardAction], ui-card-action",
|
|
314
|
+
hostDirectives: [UiElementHost],
|
|
315
|
+
host: {
|
|
316
|
+
"data-slot": "card-action",
|
|
317
|
+
"[attr.class]": "classes()"
|
|
318
|
+
}
|
|
319
|
+
}]
|
|
320
|
+
}],
|
|
321
|
+
propDecorators: { userClass: [{
|
|
322
|
+
type: i0.Input,
|
|
323
|
+
args: [{
|
|
324
|
+
isSignal: true,
|
|
325
|
+
alias: "class",
|
|
326
|
+
required: false
|
|
327
|
+
}]
|
|
328
|
+
}] }
|
|
329
|
+
});
|
|
330
|
+
var UiCardContent = class UiCardContent {
|
|
331
|
+
userClass = input("", {
|
|
332
|
+
...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
|
|
333
|
+
alias: "class"
|
|
334
|
+
});
|
|
335
|
+
classes = computed(() => cn("px-(--card-spacing)", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
336
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
337
|
+
minVersion: "12.0.0",
|
|
338
|
+
version: "22.2.2",
|
|
339
|
+
ngImport: i0,
|
|
340
|
+
type: UiCardContent,
|
|
341
|
+
deps: [],
|
|
342
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
343
|
+
});
|
|
344
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
345
|
+
minVersion: "17.1.0",
|
|
346
|
+
version: "22.2.2",
|
|
347
|
+
type: UiCardContent,
|
|
348
|
+
isStandalone: true,
|
|
349
|
+
selector: "[uiCardContent], ui-card-content",
|
|
350
|
+
inputs: { userClass: {
|
|
351
|
+
classPropertyName: "userClass",
|
|
352
|
+
publicName: "class",
|
|
353
|
+
isSignal: true,
|
|
354
|
+
isRequired: false,
|
|
355
|
+
transformFunction: null
|
|
356
|
+
} },
|
|
357
|
+
host: {
|
|
358
|
+
attributes: { "data-slot": "card-content" },
|
|
359
|
+
properties: { "attr.class": "classes()" }
|
|
360
|
+
},
|
|
361
|
+
hostDirectives: [{ directive: i1.UiElementHost }],
|
|
362
|
+
ngImport: i0
|
|
363
|
+
});
|
|
364
|
+
};
|
|
365
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
366
|
+
minVersion: "12.0.0",
|
|
367
|
+
version: "22.2.2",
|
|
368
|
+
ngImport: i0,
|
|
369
|
+
type: UiCardContent,
|
|
370
|
+
decorators: [{
|
|
371
|
+
type: Directive,
|
|
372
|
+
args: [{
|
|
373
|
+
selector: "[uiCardContent], ui-card-content",
|
|
374
|
+
hostDirectives: [UiElementHost],
|
|
375
|
+
host: {
|
|
376
|
+
"data-slot": "card-content",
|
|
377
|
+
"[attr.class]": "classes()"
|
|
378
|
+
}
|
|
379
|
+
}]
|
|
380
|
+
}],
|
|
381
|
+
propDecorators: { userClass: [{
|
|
382
|
+
type: i0.Input,
|
|
383
|
+
args: [{
|
|
384
|
+
isSignal: true,
|
|
385
|
+
alias: "class",
|
|
386
|
+
required: false
|
|
387
|
+
}]
|
|
388
|
+
}] }
|
|
389
|
+
});
|
|
390
|
+
var UiCardFooter = class UiCardFooter {
|
|
391
|
+
userClass = input("", {
|
|
392
|
+
...ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {},
|
|
393
|
+
alias: "class"
|
|
394
|
+
});
|
|
395
|
+
classes = computed(() => cn("flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)", this.userClass()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
396
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
397
|
+
minVersion: "12.0.0",
|
|
398
|
+
version: "22.2.2",
|
|
399
|
+
ngImport: i0,
|
|
400
|
+
type: UiCardFooter,
|
|
401
|
+
deps: [],
|
|
402
|
+
target: i0.ɵɵFactoryTarget.Directive
|
|
403
|
+
});
|
|
404
|
+
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
405
|
+
minVersion: "17.1.0",
|
|
406
|
+
version: "22.2.2",
|
|
407
|
+
type: UiCardFooter,
|
|
408
|
+
isStandalone: true,
|
|
409
|
+
selector: "[uiCardFooter], ui-card-footer",
|
|
410
|
+
inputs: { userClass: {
|
|
411
|
+
classPropertyName: "userClass",
|
|
412
|
+
publicName: "class",
|
|
413
|
+
isSignal: true,
|
|
414
|
+
isRequired: false,
|
|
415
|
+
transformFunction: null
|
|
416
|
+
} },
|
|
417
|
+
host: {
|
|
418
|
+
attributes: { "data-slot": "card-footer" },
|
|
419
|
+
properties: { "attr.class": "classes()" }
|
|
420
|
+
},
|
|
421
|
+
hostDirectives: [{ directive: i1.UiElementHost }],
|
|
422
|
+
ngImport: i0
|
|
423
|
+
});
|
|
424
|
+
};
|
|
425
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
426
|
+
minVersion: "12.0.0",
|
|
427
|
+
version: "22.2.2",
|
|
428
|
+
ngImport: i0,
|
|
429
|
+
type: UiCardFooter,
|
|
430
|
+
decorators: [{
|
|
431
|
+
type: Directive,
|
|
432
|
+
args: [{
|
|
433
|
+
selector: "[uiCardFooter], ui-card-footer",
|
|
434
|
+
hostDirectives: [UiElementHost],
|
|
435
|
+
host: {
|
|
436
|
+
"data-slot": "card-footer",
|
|
437
|
+
"[attr.class]": "classes()"
|
|
438
|
+
}
|
|
439
|
+
}]
|
|
440
|
+
}],
|
|
441
|
+
propDecorators: { userClass: [{
|
|
442
|
+
type: i0.Input,
|
|
443
|
+
args: [{
|
|
444
|
+
isSignal: true,
|
|
445
|
+
alias: "class",
|
|
446
|
+
required: false
|
|
447
|
+
}]
|
|
448
|
+
}] }
|
|
449
|
+
});
|
|
450
|
+
const UI_CARD = [
|
|
451
|
+
UiCard,
|
|
452
|
+
UiCardHeader,
|
|
453
|
+
UiCardTitle,
|
|
454
|
+
UiCardDescription,
|
|
455
|
+
UiCardAction,
|
|
456
|
+
UiCardContent,
|
|
457
|
+
UiCardFooter
|
|
458
|
+
];
|
|
459
|
+
export { UI_CARD, UiCard, UiCardAction, UiCardContent, UiCardDescription, UiCardFooter, UiCardHeader, UiCardTitle };
|
|
460
|
+
|
|
461
|
+
//# sourceMappingURL=loomui-ng-ui-card.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loomui-ng-ui-card.mjs","names":[],"sources":["../../../libs/ui/card/card.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { cn } from '@loomui-ng/ui/utils';\nimport { UiElementHost } from '@loomui-ng/ui/utils';\n\nconst CARD_BASE =\n 'group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl';\n\n/** <div uiCard size=\"sm\"> … </div> */\n@Directive({\n selector: '[uiCard], ui-card', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'card', '[attr.data-size]': 'size()', '[attr.class]': 'classes()' },\n})\nexport class UiCard {\n readonly size = input<'default' | 'sm'>('default');\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn(CARD_BASE, this.userClass()));\n}\n\n@Directive({\n selector: '[uiCardHeader], ui-card-header', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'card-header', '[attr.class]': 'classes()' },\n})\nexport class UiCardHeader {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() =>\n cn(\n 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)',\n this.userClass(),\n ),\n );\n}\n\n@Directive({\n selector: '[uiCardTitle], ui-card-title', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'card-title', '[attr.class]': 'classes()' },\n})\nexport class UiCardTitle {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() =>\n cn('text-base leading-snug font-medium group-data-[size=sm]/card:text-sm', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[uiCardDescription], ui-card-description', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'card-description', '[attr.class]': 'classes()' },\n})\nexport class UiCardDescription {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('text-sm text-muted-foreground', this.userClass()));\n}\n\n/** Logical placement: observed `col-start-2 … justify-self-end` already mirrors in RTL. */\n@Directive({\n selector: '[uiCardAction], ui-card-action', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'card-action', '[attr.class]': 'classes()' },\n})\nexport class UiCardAction {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() =>\n cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', this.userClass()),\n );\n}\n\n@Directive({\n selector: '[uiCardContent], ui-card-content', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'card-content', '[attr.class]': 'classes()' },\n})\nexport class UiCardContent {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn('px-(--card-spacing)', this.userClass()));\n}\n\n@Directive({\n selector: '[uiCardFooter], ui-card-footer', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'card-footer', '[attr.class]': 'classes()' },\n})\nexport class UiCardFooter {\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() =>\n cn('flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)', this.userClass()),\n );\n}\n\nexport const UI_CARD = [UiCard, UiCardHeader, UiCardTitle, UiCardDescription, UiCardAction, UiCardContent, UiCardFooter] as const;\n"],"mappings":"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"}
|